@signal9/era-ui 4.7.2 → 4.9.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 (48) hide show
  1. package/dist/ai/swarm/index.d.ts +2 -1
  2. package/dist/ai/swarm/index.js +2 -1
  3. package/dist/ai/swarm/swarm-actions.svelte +86 -0
  4. package/dist/ai/swarm/swarm-actions.svelte.d.ts +31 -0
  5. package/dist/ai/swarm/swarm-agent.svelte +9 -43
  6. package/dist/ai/swarm/swarm-artifact.svelte +2 -6
  7. package/dist/ai/swarm/swarm-artifacts.svelte +1 -10
  8. package/dist/ai/swarm/swarm-artifacts.svelte.d.ts +0 -2
  9. package/dist/ai/swarm/swarm-barriers.svelte +39 -0
  10. package/dist/ai/swarm/swarm-barriers.svelte.d.ts +13 -0
  11. package/dist/ai/swarm/swarm-counts.svelte +1 -4
  12. package/dist/ai/swarm/swarm-counts.svelte.d.ts +0 -2
  13. package/dist/ai/swarm/swarm-footer.svelte +20 -13
  14. package/dist/ai/swarm/swarm-header.svelte +3 -5
  15. package/dist/ai/swarm/swarm-node.svelte +8 -64
  16. package/dist/ai/swarm/swarm-role.svelte +2 -9
  17. package/dist/ai/swarm/swarm-sandbox.svelte +45 -0
  18. package/dist/ai/swarm/swarm-sandbox.svelte.d.ts +10 -0
  19. package/dist/ai/swarm/swarm-tree.svelte +22 -8
  20. package/dist/ai/swarm/swarm.d.ts +8 -0
  21. package/dist/ai/swarm/swarm.js +11 -2
  22. package/dist/ai/swarm/swarm.svelte.d.ts +0 -1
  23. package/dist/ai/swarm/swarm.svelte.js +10 -12
  24. package/dist/apps/llm-shell/llm-shell.svelte +2 -36
  25. package/dist/apps/llm-shell/llm-swarm.svelte +64 -0
  26. package/dist/apps/llm-shell/llm-swarm.svelte.d.ts +23 -0
  27. package/dist/apps/llm-shell/types.d.ts +2 -0
  28. package/dist/apps/notes/editor/bubble-toolbar.svelte +2 -1
  29. package/dist/apps/notes/notes.svelte +13 -10
  30. package/dist/dev/audit/audits/clipped-glyphs.js +33 -11
  31. package/dist/docs/llms-txt.js +1 -1
  32. package/dist/era-ui.css +1 -1
  33. package/dist/generated-docs/bar.md +3 -0
  34. package/dist/generated-docs/input.md +3 -1
  35. package/dist/generated-docs/llms-full.txt +15 -6
  36. package/dist/generated-docs/llms.txt +1 -1
  37. package/dist/generated-docs/manifest.json +5 -5
  38. package/dist/generated-docs/utilities.json +2 -2
  39. package/dist/generated-docs/utilities.md +8 -4
  40. package/dist/styles/density.css +42 -9
  41. package/dist/styles/index.css +8 -4
  42. package/dist/ui/bar/bar.svelte +37 -3
  43. package/dist/ui/bar/bar.svelte.d.ts +61 -1
  44. package/dist/ui/input/input.svelte +24 -4
  45. package/dist/ui/input/input.svelte.d.ts +6 -1
  46. package/dist/ui/input/variants.d.ts +99 -30
  47. package/dist/ui/input/variants.js +45 -19
  48. package/package.json +1 -1
@@ -24,7 +24,7 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
24
24
  * edge to edge so the two have no gap between them.
25
25
  */
26
26
  bare: {
27
- false: "rounded-(--era-rd-md) bg-(--era-field-bg) shadow-(--era-shadow-well) hover:bg-(--era-field-highlight) focus-within:bg-(--era-field-highlight) focus:bg-(--era-field-highlight)";
27
+ false: "bg-(--era-field-bg) shadow-(--era-shadow-well) hover:bg-(--era-field-highlight) focus-within:bg-(--era-field-highlight) focus:bg-(--era-field-highlight)";
28
28
  true: "bg-transparent shadow-none";
29
29
  };
30
30
  /**
@@ -42,21 +42,44 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
42
42
  true: "bg-transparent shadow-none hover:bg-(--era-field-bg) hover:shadow-(--era-shadow-well) focus-within:shadow-(--era-shadow-well) focus:shadow-(--era-shadow-well)";
43
43
  false: "";
44
44
  };
45
- /** Vertical size. `auto` is for a field that grows with its content (Textarea). */
45
+ /**
46
+ * The field's TIER — height, radius and side padding travel together,
47
+ * because they are one decision. Split them and a field ends up md-tall
48
+ * with xxs corners, which is how the ladder stops being a ladder.
49
+ *
50
+ * - `md` (default) — THE field, and the pairing an md bar's md content
51
+ * expects. Its --era-field-px is glyph-advance derived: the padding a
52
+ * STRING of text wants, not a single centred glyph.
53
+ * - `xxs` — the pill-tier field, at badge height (18/20/22/26). This is the
54
+ * SMALLEST tier that can hold body text at all: its inset is
55
+ * (h-xxs − text)/2, so 2px remain to centre 14px text in, where the tier
56
+ * below (h-xs) IS the text size and has none left. For compact chrome —
57
+ * a filter that sits level with an xxs icon button, a title bar that
58
+ * shouldn't outweigh the document under it. Side padding is
59
+ * --era-pill-xxs, exactly what Badge and Chip use, so a field and a pill
60
+ * on this tier read as one family.
61
+ */
62
+ size: {
63
+ md: "h-(--era-h-md) rounded-(--era-rd-md) px-(--era-field-px)";
64
+ xxs: "h-(--era-h-xxs) rounded-(--era-rd-xxs) px-(--era-pill-xxs)";
65
+ };
66
+ /**
67
+ * Height OVERRIDES, for the fields that are not their tier's height. No
68
+ * default: the tier sets the height, and these take it back.
69
+ */
46
70
  height: {
47
- md: "h-(--era-h-md)";
48
71
  full: "h-full";
49
- auto: "min-h-(--era-h-md)";
72
+ auto: "h-auto min-h-(--era-h-md)";
50
73
  };
51
74
  /**
52
- * Side padding. `trailing` is for a field that holds a control at its end
53
- * (the date picker's calendar trigger): the leading edge keeps the shared
54
- * text inset so the text still lines up with every other field, and the
55
- * trailing edge becomes the concentric inset for that sm-tier control, so
56
- * its gap to the field edge equals its gap above and below.
75
+ * Side-padding OVERRIDES, same rule. `trailing` is for a field that holds a
76
+ * control at its end (the date picker's calendar trigger): the leading edge
77
+ * keeps the shared text inset so the text still lines up with every other
78
+ * field, and the trailing edge becomes the concentric inset for that
79
+ * sm-tier control, so its gap to the field edge equals its gap above and
80
+ * below.
57
81
  */
58
82
  pad: {
59
- even: "px-(--era-field-px)";
60
83
  trailing: "ps-(--era-field-px) pe-(--era-sm-inset-md)";
61
84
  none: "px-0";
62
85
  };
@@ -69,7 +92,7 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
69
92
  * edge to edge so the two have no gap between them.
70
93
  */
71
94
  bare: {
72
- false: "rounded-(--era-rd-md) bg-(--era-field-bg) shadow-(--era-shadow-well) hover:bg-(--era-field-highlight) focus-within:bg-(--era-field-highlight) focus:bg-(--era-field-highlight)";
95
+ false: "bg-(--era-field-bg) shadow-(--era-shadow-well) hover:bg-(--era-field-highlight) focus-within:bg-(--era-field-highlight) focus:bg-(--era-field-highlight)";
73
96
  true: "bg-transparent shadow-none";
74
97
  };
75
98
  /**
@@ -87,21 +110,44 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
87
110
  true: "bg-transparent shadow-none hover:bg-(--era-field-bg) hover:shadow-(--era-shadow-well) focus-within:shadow-(--era-shadow-well) focus:shadow-(--era-shadow-well)";
88
111
  false: "";
89
112
  };
90
- /** Vertical size. `auto` is for a field that grows with its content (Textarea). */
113
+ /**
114
+ * The field's TIER — height, radius and side padding travel together,
115
+ * because they are one decision. Split them and a field ends up md-tall
116
+ * with xxs corners, which is how the ladder stops being a ladder.
117
+ *
118
+ * - `md` (default) — THE field, and the pairing an md bar's md content
119
+ * expects. Its --era-field-px is glyph-advance derived: the padding a
120
+ * STRING of text wants, not a single centred glyph.
121
+ * - `xxs` — the pill-tier field, at badge height (18/20/22/26). This is the
122
+ * SMALLEST tier that can hold body text at all: its inset is
123
+ * (h-xxs − text)/2, so 2px remain to centre 14px text in, where the tier
124
+ * below (h-xs) IS the text size and has none left. For compact chrome —
125
+ * a filter that sits level with an xxs icon button, a title bar that
126
+ * shouldn't outweigh the document under it. Side padding is
127
+ * --era-pill-xxs, exactly what Badge and Chip use, so a field and a pill
128
+ * on this tier read as one family.
129
+ */
130
+ size: {
131
+ md: "h-(--era-h-md) rounded-(--era-rd-md) px-(--era-field-px)";
132
+ xxs: "h-(--era-h-xxs) rounded-(--era-rd-xxs) px-(--era-pill-xxs)";
133
+ };
134
+ /**
135
+ * Height OVERRIDES, for the fields that are not their tier's height. No
136
+ * default: the tier sets the height, and these take it back.
137
+ */
91
138
  height: {
92
- md: "h-(--era-h-md)";
93
139
  full: "h-full";
94
- auto: "min-h-(--era-h-md)";
140
+ auto: "h-auto min-h-(--era-h-md)";
95
141
  };
96
142
  /**
97
- * Side padding. `trailing` is for a field that holds a control at its end
98
- * (the date picker's calendar trigger): the leading edge keeps the shared
99
- * text inset so the text still lines up with every other field, and the
100
- * trailing edge becomes the concentric inset for that sm-tier control, so
101
- * its gap to the field edge equals its gap above and below.
143
+ * Side-padding OVERRIDES, same rule. `trailing` is for a field that holds a
144
+ * control at its end (the date picker's calendar trigger): the leading edge
145
+ * keeps the shared text inset so the text still lines up with every other
146
+ * field, and the trailing edge becomes the concentric inset for that
147
+ * sm-tier control, so its gap to the field edge equals its gap above and
148
+ * below.
102
149
  */
103
150
  pad: {
104
- even: "px-(--era-field-px)";
105
151
  trailing: "ps-(--era-field-px) pe-(--era-sm-inset-md)";
106
152
  none: "px-0";
107
153
  };
@@ -114,7 +160,7 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
114
160
  * edge to edge so the two have no gap between them.
115
161
  */
116
162
  bare: {
117
- false: "rounded-(--era-rd-md) bg-(--era-field-bg) shadow-(--era-shadow-well) hover:bg-(--era-field-highlight) focus-within:bg-(--era-field-highlight) focus:bg-(--era-field-highlight)";
163
+ false: "bg-(--era-field-bg) shadow-(--era-shadow-well) hover:bg-(--era-field-highlight) focus-within:bg-(--era-field-highlight) focus:bg-(--era-field-highlight)";
118
164
  true: "bg-transparent shadow-none";
119
165
  };
120
166
  /**
@@ -132,21 +178,44 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
132
178
  true: "bg-transparent shadow-none hover:bg-(--era-field-bg) hover:shadow-(--era-shadow-well) focus-within:shadow-(--era-shadow-well) focus:shadow-(--era-shadow-well)";
133
179
  false: "";
134
180
  };
135
- /** Vertical size. `auto` is for a field that grows with its content (Textarea). */
181
+ /**
182
+ * The field's TIER — height, radius and side padding travel together,
183
+ * because they are one decision. Split them and a field ends up md-tall
184
+ * with xxs corners, which is how the ladder stops being a ladder.
185
+ *
186
+ * - `md` (default) — THE field, and the pairing an md bar's md content
187
+ * expects. Its --era-field-px is glyph-advance derived: the padding a
188
+ * STRING of text wants, not a single centred glyph.
189
+ * - `xxs` — the pill-tier field, at badge height (18/20/22/26). This is the
190
+ * SMALLEST tier that can hold body text at all: its inset is
191
+ * (h-xxs − text)/2, so 2px remain to centre 14px text in, where the tier
192
+ * below (h-xs) IS the text size and has none left. For compact chrome —
193
+ * a filter that sits level with an xxs icon button, a title bar that
194
+ * shouldn't outweigh the document under it. Side padding is
195
+ * --era-pill-xxs, exactly what Badge and Chip use, so a field and a pill
196
+ * on this tier read as one family.
197
+ */
198
+ size: {
199
+ md: "h-(--era-h-md) rounded-(--era-rd-md) px-(--era-field-px)";
200
+ xxs: "h-(--era-h-xxs) rounded-(--era-rd-xxs) px-(--era-pill-xxs)";
201
+ };
202
+ /**
203
+ * Height OVERRIDES, for the fields that are not their tier's height. No
204
+ * default: the tier sets the height, and these take it back.
205
+ */
136
206
  height: {
137
- md: "h-(--era-h-md)";
138
207
  full: "h-full";
139
- auto: "min-h-(--era-h-md)";
208
+ auto: "h-auto min-h-(--era-h-md)";
140
209
  };
141
210
  /**
142
- * Side padding. `trailing` is for a field that holds a control at its end
143
- * (the date picker's calendar trigger): the leading edge keeps the shared
144
- * text inset so the text still lines up with every other field, and the
145
- * trailing edge becomes the concentric inset for that sm-tier control, so
146
- * its gap to the field edge equals its gap above and below.
211
+ * Side-padding OVERRIDES, same rule. `trailing` is for a field that holds a
212
+ * control at its end (the date picker's calendar trigger): the leading edge
213
+ * keeps the shared text inset so the text still lines up with every other
214
+ * field, and the trailing edge becomes the concentric inset for that
215
+ * sm-tier control, so its gap to the field edge equals its gap above and
216
+ * below.
147
217
  */
148
218
  pad: {
149
- even: "px-(--era-field-px)";
150
219
  trailing: "ps-(--era-field-px) pe-(--era-sm-inset-md)";
151
220
  none: "px-0";
152
221
  };
@@ -27,7 +27,7 @@ export const inputVariants = tv({
27
27
  * edge to edge so the two have no gap between them.
28
28
  */
29
29
  bare: {
30
- false: 'rounded-(--era-rd-md) bg-(--era-field-bg) shadow-(--era-shadow-well) hover:bg-(--era-field-highlight) focus-within:bg-(--era-field-highlight) focus:bg-(--era-field-highlight)',
30
+ false: 'bg-(--era-field-bg) shadow-(--era-shadow-well) hover:bg-(--era-field-highlight) focus-within:bg-(--era-field-highlight) focus:bg-(--era-field-highlight)',
31
31
  true: 'bg-transparent shadow-none'
32
32
  },
33
33
  /**
@@ -45,34 +45,60 @@ export const inputVariants = tv({
45
45
  true: 'bg-transparent shadow-none hover:bg-(--era-field-bg) hover:shadow-(--era-shadow-well) focus-within:shadow-(--era-shadow-well) focus:shadow-(--era-shadow-well)',
46
46
  false: ''
47
47
  },
48
- /** Vertical size. `auto` is for a field that grows with its content (Textarea). */
48
+ /**
49
+ * The field's TIER — height, radius and side padding travel together,
50
+ * because they are one decision. Split them and a field ends up md-tall
51
+ * with xxs corners, which is how the ladder stops being a ladder.
52
+ *
53
+ * - `md` (default) — THE field, and the pairing an md bar's md content
54
+ * expects. Its --era-field-px is glyph-advance derived: the padding a
55
+ * STRING of text wants, not a single centred glyph.
56
+ * - `xxs` — the pill-tier field, at badge height (18/20/22/26). This is the
57
+ * SMALLEST tier that can hold body text at all: its inset is
58
+ * (h-xxs − text)/2, so 2px remain to centre 14px text in, where the tier
59
+ * below (h-xs) IS the text size and has none left. For compact chrome —
60
+ * a filter that sits level with an xxs icon button, a title bar that
61
+ * shouldn't outweigh the document under it. Side padding is
62
+ * --era-pill-xxs, exactly what Badge and Chip use, so a field and a pill
63
+ * on this tier read as one family.
64
+ */
65
+ size: {
66
+ md: 'h-(--era-h-md) rounded-(--era-rd-md) px-(--era-field-px)',
67
+ xxs: 'h-(--era-h-xxs) rounded-(--era-rd-xxs) px-(--era-pill-xxs)'
68
+ },
69
+ /**
70
+ * Height OVERRIDES, for the fields that are not their tier's height. No
71
+ * default: the tier sets the height, and these take it back.
72
+ */
49
73
  height: {
50
- md: 'h-(--era-h-md)',
51
- // h-full, NOT the md tier: a bare input's container IS the field, so it
52
- // takes that container's height. Keeping h-md here made a bare input
53
- // inside an h-md Bar overflow it by the bar's border a −0.5px gap,
54
- // which is the even-gap law failing by a hair rather than obviously.
74
+ // h-full, NOT a tier height: a bare input's container IS the field, so it
75
+ // takes that container's height. Keeping a tier height here made a bare
76
+ // input inside an h-md Bar overflow it by the bar's border — a −0.5px
77
+ // gap, which is the even-gap law failing by a hair rather than obviously.
55
78
  full: 'h-full',
56
- auto: 'min-h-(--era-h-md)'
79
+ // h-auto is load-bearing — it is what outranks the tier's own height so
80
+ // the field can grow with its content (Textarea).
81
+ auto: 'h-auto min-h-(--era-h-md)'
57
82
  },
58
83
  /**
59
- * Side padding. `trailing` is for a field that holds a control at its end
60
- * (the date picker's calendar trigger): the leading edge keeps the shared
61
- * text inset so the text still lines up with every other field, and the
62
- * trailing edge becomes the concentric inset for that sm-tier control, so
63
- * its gap to the field edge equals its gap above and below.
84
+ * Side-padding OVERRIDES, same rule. `trailing` is for a field that holds a
85
+ * control at its end (the date picker's calendar trigger): the leading edge
86
+ * keeps the shared text inset so the text still lines up with every other
87
+ * field, and the trailing edge becomes the concentric inset for that
88
+ * sm-tier control, so its gap to the field edge equals its gap above and
89
+ * below.
64
90
  */
65
91
  pad: {
66
- even: 'px-(--era-field-px)',
67
92
  trailing: 'ps-(--era-field-px) pe-(--era-sm-inset-md)',
68
93
  none: 'px-0'
69
94
  }
70
95
  },
71
96
  compoundVariants: [
72
- // Chrome and padding travel together: a field with no chrome has no box to
73
- // pad. Spelling this as a compound rather than leaving it to the caller is
74
- // what stops `bare` from becoming a second, differently-padded field.
75
- { bare: true, class: 'h-full px-0' }
97
+ // Chrome, padding and corners travel together: a field with no chrome has
98
+ // no box to pad and no corners to round. Spelling this as a compound rather
99
+ // than leaving it to the caller is what stops `bare` from becoming a
100
+ // second, differently-padded field.
101
+ { bare: true, class: 'h-full rounded-none px-0' }
76
102
  ],
77
- defaultVariants: { bare: false, reveal: false, height: 'md', pad: 'even' }
103
+ defaultVariants: { bare: false, reveal: false, size: 'md' }
78
104
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signal9/era-ui",
3
- "version": "4.7.2",
3
+ "version": "4.9.0",
4
4
  "scripts": {
5
5
  "dev": "vite dev --host",
6
6
  "build": "vite build && npm run prepack",