@threadlabs/looma 0.7.4 → 0.8.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.
Files changed (40) hide show
  1. package/components/ui-avatar/ui-avatar.html +1 -1
  2. package/components/ui-avatar-group/ui-avatar-group.html +1 -1
  3. package/components/ui-button/ui-button.html +2 -2
  4. package/components/ui-combobox/ui-combobox.html +1 -1
  5. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +1 -1
  6. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +1 -1
  7. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +1 -1
  8. package/components/ui-form-field/ui-form-field.html +3 -3
  9. package/components/ui-tree-item/ui-tree-item.html +1 -1
  10. package/dist/index.js +1 -1
  11. package/package.json +1 -1
  12. package/styles/ui-avatar-group.css +1 -1
  13. package/styles/ui-avatar.css +1 -1
  14. package/styles/ui-button.css +2 -2
  15. package/styles/ui-combobox.css +1 -1
  16. package/styles/ui-editor-slash-menu.css +1 -1
  17. package/styles/ui-editor-table-context-menu.css +1 -1
  18. package/styles/ui-editor-table-toolbar.css +1 -1
  19. package/styles/ui-form-field.css +3 -3
  20. package/styles/ui-tree-item.css +1 -1
  21. package/tokens.css +2 -3
  22. package/vue/UiAvatar.vue +1 -1
  23. package/vue/UiAvatarGroup.vue +1 -1
  24. package/vue/UiButton.vue +2 -2
  25. package/vue/UiCombobox.vue +1 -1
  26. package/vue/UiEditorSlashMenu.vue +1 -1
  27. package/vue/UiEditorTableContextMenu.vue +1 -1
  28. package/vue/UiEditorTableToolbar.vue +1 -1
  29. package/vue/UiFormField.vue +3 -3
  30. package/vue/UiTreeItem.vue +1 -1
  31. package/vue/chunks/UiAvatar.js +1 -1
  32. package/vue/chunks/UiAvatarGroup.js +1 -1
  33. package/vue/chunks/UiButton.js +1 -1
  34. package/vue/chunks/UiCombobox.js +1 -1
  35. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  36. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  37. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  38. package/vue/chunks/UiFormField.js +1 -1
  39. package/vue/chunks/UiTreeItem.js +1 -1
  40. package/vue/components.css +228 -228
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threadlabs/looma",
3
- "version": "0.7.4",
3
+ "version": "0.8.0",
4
4
  "type": "module",
5
5
  "description": "Looma components as HTML, Vue, and plain DOM, with design tokens.",
6
6
  "license": "MIT",
@@ -30,7 +30,7 @@
30
30
  var(--ui-avatar-group-overlap-shadow, var(--_overlap-shadow)),
31
31
  var(--ui-avatar-group-edge-ring, var(--_edge-ring));
32
32
  font: inherit;
33
- font-size: 0.75rem;
33
+ font-size: var(--ui-font-size-xs);
34
34
  font-weight: 600;
35
35
  flex-shrink: 0;
36
36
  }
@@ -11,7 +11,7 @@
11
11
  background: var(--ui-avatar-surface, var(--ui-accent-soft));
12
12
  color: var(--ui-avatar-text, var(--ui-accent-solid));
13
13
  font: inherit;
14
- font-size: 0.875rem;
14
+ font-size: var(--ui-font-size-sm);
15
15
  font-weight: 600;
16
16
  text-transform: uppercase;
17
17
  }
@@ -65,13 +65,13 @@
65
65
  :scope[data-ui-button-state~="size=sm"] {
66
66
  min-block-size: var(--ui-control-size-sm);
67
67
  padding: var(--ui-space-1) var(--ui-space-2);
68
- font-size: 0.875rem;
68
+ font-size: var(--ui-font-size-sm);
69
69
  }
70
70
 
71
71
  :scope[data-ui-button-state~="size=lg"] {
72
72
  min-block-size: var(--ui-control-size-lg);
73
73
  padding: var(--ui-space-3) var(--ui-space-4);
74
- font-size: 1rem;
74
+ font-size: var(--ui-font-size-md);
75
75
  }
76
76
 
77
77
  /* A link is never :enabled, so interactive states test "not unavailable" instead: for a button that
@@ -9,7 +9,7 @@
9
9
  }
10
10
  label {
11
11
  color: var(--ui-combobox-label-text, var(--ui-text-primary));
12
- font-size: var(--ui-combobox-label-font-size, 0.875rem);
12
+ font-size: var(--ui-combobox-label-font-size, var(--ui-font-size-sm));
13
13
  font-weight: 500;
14
14
  }
15
15
  /* The field and anything that annotates it sit on one row; the help button is beside the box,
@@ -152,7 +152,7 @@
152
152
  align-items: center;
153
153
  justify-content: center;
154
154
  font-family: var(--ui-font-family-mono, ui-monospace, monospace);
155
- font-size: 10px;
155
+ font-size: var(--ui-font-size-2xs);
156
156
  background: var(--ui-surface-hover);
157
157
  border: 1px solid var(--ui-border);
158
158
  border-radius: 3px;
@@ -101,7 +101,7 @@
101
101
 
102
102
  .heading {
103
103
  padding: var(--ui-space-1) var(--ui-space-2);
104
- font-size: 0.6875rem;
104
+ font-size: var(--ui-font-size-2xs);
105
105
  font-weight: 700;
106
106
  letter-spacing: 0.05em;
107
107
  text-transform: uppercase;
@@ -141,7 +141,7 @@
141
141
 
142
142
  .menu-heading {
143
143
  padding: var(--ui-space-1) var(--ui-space-2);
144
- font-size: 0.6875rem;
144
+ font-size: var(--ui-font-size-2xs);
145
145
  font-weight: 700;
146
146
  letter-spacing: 0.05em;
147
147
  text-transform: uppercase;
@@ -18,12 +18,12 @@
18
18
 
19
19
  .label {
20
20
  color: var(--ui-text-secondary);
21
- font-size: 0.95rem;
21
+ font-size: var(--ui-font-size-sm);
22
22
  }
23
23
 
24
24
  .help {
25
25
  color: var(--ui-text-muted);
26
- font-size: 0.875rem;
26
+ font-size: var(--ui-font-size-sm);
27
27
  line-height: var(--ui-line-height-md);
28
28
  }
29
29
 
@@ -43,7 +43,7 @@
43
43
  .error,
44
44
  :where([data-slotted], [data-slotted] *):is([role="alert"]) {
45
45
  color: var(--ui-accent-active);
46
- font-size: 0.875rem;
46
+ font-size: var(--ui-font-size-sm);
47
47
  }
48
48
 
49
49
  /* A component that sets its display still honours the hidden attribute on its root. */
@@ -17,7 +17,7 @@
17
17
  align-items: center;
18
18
  min-block-size: var(--ui-tree-item-min-block-size, var(--_tree-row-min-height));
19
19
  min-inline-size: 0;
20
- font-size: var(--ui-tree-item-font-size, var(--ui-font-size-ui));
20
+ font-size: var(--ui-tree-item-font-size, var(--ui-font-size-sm));
21
21
  border-radius: var(--ui-radius-md);
22
22
  color: var(--ui-text-secondary);
23
23
  transition:
package/tokens.css CHANGED
@@ -36,7 +36,6 @@
36
36
  "Segoe UI Emoji";
37
37
  --ui-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
38
38
  --ui-font-size: 1rem;
39
- --ui-font-size-sm: 0.875rem;
40
39
  --ui-font-medium: 500;
41
40
  --ui-line-height: 1.4;
42
41
 
@@ -78,8 +77,8 @@
78
77
  /* Type scale, from the base size. */
79
78
  --ui-font-size-2xs: calc(var(--ui-font-size) * 0.6875);
80
79
  --ui-font-size-xs: calc(var(--ui-font-size) * 0.75);
81
- /* Dense interactive text: legible without body-copy spacing. */
82
- --ui-font-size-ui: calc(var(--ui-font-size) * 0.9375);
80
+ /* Dense text: controls, labels, and metadata. Two steps below body copy, never one pixel. */
81
+ --ui-font-size-sm: calc(var(--ui-font-size) * 0.875);
83
82
  --ui-font-size-md: var(--ui-font-size);
84
83
  --ui-font-size-lg: calc(var(--ui-font-size) * 1.125);
85
84
  --ui-font-size-xl: calc(var(--ui-font-size) * 1.25);
package/vue/UiAvatar.vue CHANGED
@@ -62,7 +62,7 @@ useComponentHost(controllerModule.default, {
62
62
  background: var(--ui-avatar-surface, var(--ui-accent-soft));
63
63
  color: var(--ui-avatar-text, var(--ui-accent-solid));
64
64
  font: inherit;
65
- font-size: 0.875rem;
65
+ font-size: var(--ui-font-size-sm);
66
66
  font-weight: 600;
67
67
  text-transform: uppercase;
68
68
  }
@@ -85,7 +85,7 @@ useComponentHost(controllerModule.default, {
85
85
  var(--ui-avatar-group-overlap-shadow, var(--_overlap-shadow)),
86
86
  var(--ui-avatar-group-edge-ring, var(--_edge-ring));
87
87
  font: inherit;
88
- font-size: 0.75rem;
88
+ font-size: var(--ui-font-size-xs);
89
89
  font-weight: 600;
90
90
  flex-shrink: 0;
91
91
  }
package/vue/UiButton.vue CHANGED
@@ -140,13 +140,13 @@ function attribute(value: unknown): any {
140
140
  [data-component~="ui-button"][data-ui-button-state~="size=sm"] {
141
141
  min-block-size: var(--ui-control-size-sm);
142
142
  padding: var(--ui-space-1) var(--ui-space-2);
143
- font-size: 0.875rem;
143
+ font-size: var(--ui-font-size-sm);
144
144
  }
145
145
 
146
146
  [data-component~="ui-button"][data-ui-button-state~="size=lg"] {
147
147
  min-block-size: var(--ui-control-size-lg);
148
148
  padding: var(--ui-space-3) var(--ui-space-4);
149
- font-size: 1rem;
149
+ font-size: var(--ui-font-size-md);
150
150
  }
151
151
 
152
152
  /* A link is never :enabled, so interactive states test "not unavailable" instead: for a button that
@@ -648,7 +648,7 @@ defineExpose({
648
648
  }
649
649
  label {
650
650
  color: var(--ui-combobox-label-text, var(--ui-text-primary));
651
- font-size: var(--ui-combobox-label-font-size, 0.875rem);
651
+ font-size: var(--ui-combobox-label-font-size, var(--ui-font-size-sm));
652
652
  font-weight: 500;
653
653
  }
654
654
  /* The field and anything that annotates it sit on one row; the help button is beside the box,
@@ -246,7 +246,7 @@ useComponentHost(controllerModule.default, {
246
246
  align-items: center;
247
247
  justify-content: center;
248
248
  font-family: var(--ui-font-family-mono, ui-monospace, monospace);
249
- font-size: 10px;
249
+ font-size: var(--ui-font-size-2xs);
250
250
  background: var(--ui-surface-hover);
251
251
  border: 1px solid var(--ui-border);
252
252
  border-radius: 3px;
@@ -260,7 +260,7 @@ useComponentHost(controllerModule.default, {
260
260
 
261
261
  .heading {
262
262
  padding: var(--ui-space-1) var(--ui-space-2);
263
- font-size: 0.6875rem;
263
+ font-size: var(--ui-font-size-2xs);
264
264
  font-weight: 700;
265
265
  letter-spacing: 0.05em;
266
266
  text-transform: uppercase;
@@ -356,7 +356,7 @@ useComponentHost(controllerModule.default, {
356
356
 
357
357
  .menu-heading {
358
358
  padding: var(--ui-space-1) var(--ui-space-2);
359
- font-size: 0.6875rem;
359
+ font-size: var(--ui-font-size-2xs);
360
360
  font-weight: 700;
361
361
  letter-spacing: 0.05em;
362
362
  text-transform: uppercase;
@@ -58,12 +58,12 @@ useComponentHost(controllerModule.default, {
58
58
 
59
59
  .label {
60
60
  color: var(--ui-text-secondary);
61
- font-size: 0.95rem;
61
+ font-size: var(--ui-font-size-sm);
62
62
  }
63
63
 
64
64
  .help {
65
65
  color: var(--ui-text-muted);
66
- font-size: 0.875rem;
66
+ font-size: var(--ui-font-size-sm);
67
67
  line-height: var(--ui-line-height-md);
68
68
  }
69
69
 
@@ -74,7 +74,7 @@ useComponentHost(controllerModule.default, {
74
74
  .error,
75
75
  :slotted([role="alert"]) {
76
76
  color: var(--ui-accent-active);
77
- font-size: 0.875rem;
77
+ font-size: var(--ui-font-size-sm);
78
78
  }
79
79
 
80
80
  /* A component that sets its display still honours the hidden attribute on its root. */
@@ -179,7 +179,7 @@ useComponentHost(controllerModule.default, {
179
179
  align-items: center;
180
180
  min-block-size: var(--ui-tree-item-min-block-size, var(--_tree-row-min-height));
181
181
  min-inline-size: 0;
182
- font-size: var(--ui-tree-item-font-size, var(--ui-font-size-ui));
182
+ font-size: var(--ui-tree-item-font-size, var(--ui-font-size-sm));
183
183
  border-radius: var(--ui-radius-md);
184
184
  color: var(--ui-text-secondary);
185
185
  transition:
@@ -57,6 +57,6 @@ var UiAvatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
57
57
  ], 16);
58
58
  };
59
59
  }
60
- }), [["__scopeId", "data-v-64e52bdd"]]);
60
+ }), [["__scopeId", "data-v-eb16b513"]]);
61
61
  //#endregion
62
62
  export { UiAvatar_default as t };
@@ -44,6 +44,6 @@ var UiAvatarGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
44
44
  }, toDisplayString(`+${overflowCount.value}`), 9, _hoisted_2)], 16, _hoisted_1);
45
45
  };
46
46
  }
47
- }), [["__scopeId", "data-v-cbb93f58"]]);
47
+ }), [["__scopeId", "data-v-9e8e1291"]]);
48
48
  //#endregion
49
49
  export { UiAvatarGroup_default as t };
@@ -83,6 +83,6 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
83
83
  ]);
84
84
  };
85
85
  }
86
- }), [["__scopeId", "data-v-852dd10e"]]);
86
+ }), [["__scopeId", "data-v-1cd0b390"]]);
87
87
  //#endregion
88
88
  export { UiButton_default as t };
@@ -451,6 +451,6 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
451
451
  ], 16, _hoisted_1);
452
452
  };
453
453
  }
454
- }), [["__scopeId", "data-v-1aba7b21"]]);
454
+ }), [["__scopeId", "data-v-3b8b0ecf"]]);
455
455
  //#endregion
456
456
  export { UiCombobox_default as t };
@@ -95,6 +95,6 @@ var UiEditorSlashMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
95
95
  ], 16, _hoisted_1);
96
96
  };
97
97
  }
98
- }), [["__scopeId", "data-v-346835f7"]]);
98
+ }), [["__scopeId", "data-v-e7d0f904"]]);
99
99
  //#endregion
100
100
  export { UiEditorSlashMenu_default as t };
@@ -93,6 +93,6 @@ var UiEditorTableContextMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_d
93
93
  }), 128))], 16, _hoisted_1);
94
94
  };
95
95
  }
96
- }), [["__scopeId", "data-v-ae062630"]]);
96
+ }), [["__scopeId", "data-v-2d9eb67c"]]);
97
97
  //#endregion
98
98
  export { UiEditorTableContextMenu_default as t };
@@ -175,6 +175,6 @@ var UiEditorTableToolbar_default = /*#__PURE__*/ _plugin_vue_export_helper_defau
175
175
  ], 16, _hoisted_1);
176
176
  };
177
177
  }
178
- }), [["__scopeId", "data-v-31b70e7c"]]);
178
+ }), [["__scopeId", "data-v-1b253cb1"]]);
179
179
  //#endregion
180
180
  export { UiEditorTableToolbar_default as t };
@@ -46,6 +46,6 @@ var UiFormField_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
46
46
  ], 16);
47
47
  };
48
48
  }
49
- }), [["__scopeId", "data-v-605db5c0"]]);
49
+ }), [["__scopeId", "data-v-13b85af2"]]);
50
50
  //#endregion
51
51
  export { UiFormField_default as t };
@@ -210,6 +210,6 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
210
210
  ], 16, _hoisted_1);
211
211
  };
212
212
  }
213
- }), [["__scopeId", "data-v-9b8fd08d"]]);
213
+ }), [["__scopeId", "data-v-d093d318"]]);
214
214
  //#endregion
215
215
  export { UiTreeItem_default as t };