@signal9/era-ui 7.0.0 → 9.0.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/dist/ai/artifact/artifact-close.svelte +1 -1
- package/dist/ai/artifact/artifact-content.svelte +1 -1
- package/dist/ai/artifact/artifact-header.svelte +1 -1
- package/dist/ai/artifact/artifact.svelte +1 -1
- package/dist/ai/chain-of-thought/chain-of-thought-step.svelte +1 -1
- package/dist/ai/chain-of-thought/chain-of-thought.svelte +1 -1
- package/dist/ai/checkpoint.svelte +1 -1
- package/dist/ai/confirmation/confirmation-args.svelte +2 -2
- package/dist/ai/confirmation/confirmation.svelte +4 -4
- package/dist/ai/context/context.svelte +1 -1
- package/dist/ai/conversation/conversation-content.svelte +1 -1
- package/dist/ai/conversation/conversation-empty-state.svelte +1 -1
- package/dist/ai/conversation/conversation-scroll-button.svelte +2 -2
- package/dist/ai/conversations/conversations-group.svelte +1 -1
- package/dist/ai/conversations/conversations-item.svelte +7 -7
- package/dist/ai/error-panel/error-panel.svelte +4 -4
- package/dist/ai/image.svelte +1 -1
- package/dist/ai/inline-citation/inline-citation.svelte +2 -2
- package/dist/ai/loader.svelte +1 -1
- package/dist/ai/message/message-branch-selector.svelte +3 -3
- package/dist/ai/message/message-content.svelte +1 -1
- package/dist/ai/message/message-usage.svelte +4 -4
- package/dist/ai/model-selector/model-selector.svelte +1 -1
- package/dist/ai/open-in-chat/open-in-chat.svelte +2 -2
- package/dist/ai/plan/plan-content.svelte +1 -1
- package/dist/ai/plan/plan-header.svelte +2 -2
- package/dist/ai/plan/plan.svelte +1 -1
- package/dist/ai/prompt-input/prompt-input-add-attachments.svelte +1 -1
- package/dist/ai/prompt-input/prompt-input-attachments.svelte +5 -5
- package/dist/ai/prompt-input/prompt-input-submit.svelte +3 -3
- package/dist/ai/prompt-input/prompt-input-textarea.svelte +3 -3
- package/dist/ai/prompt-input/prompt-input.svelte +1 -1
- package/dist/ai/queue/queue-item.svelte +1 -1
- package/dist/ai/queue/queue.svelte +1 -1
- package/dist/ai/reasoning/reasoning-trigger.svelte +1 -1
- package/dist/ai/response/response.svelte +2 -2
- package/dist/ai/run-status/run-status.svelte +5 -5
- package/dist/ai/runtime-feed/runtime-feed-item.svelte +1 -1
- package/dist/ai/sources/source.svelte +1 -1
- package/dist/ai/sources/sources-trigger.svelte +1 -1
- package/dist/ai/structured-value/structured-value.svelte +1 -1
- package/dist/ai/suggestion/suggestion.svelte +2 -2
- package/dist/ai/swarm/swarm-agent.svelte +1 -1
- package/dist/ai/swarm/swarm-artifact.svelte +1 -1
- package/dist/ai/swarm/swarm-barrier.svelte +1 -1
- package/dist/ai/swarm/swarm-barriers.svelte +1 -1
- package/dist/ai/swarm/swarm-counts.svelte +1 -1
- package/dist/ai/swarm/swarm-footer.svelte +1 -1
- package/dist/ai/swarm/swarm-grid.svelte +2 -2
- package/dist/ai/swarm/swarm-header.svelte +1 -1
- package/dist/ai/swarm/swarm-node.svelte +7 -7
- package/dist/ai/swarm/swarm-role.svelte +1 -1
- package/dist/ai/swarm/swarm-root.svelte +1 -1
- package/dist/ai/swarm/swarm-sandbox.svelte +3 -3
- package/dist/ai/swarm/swarm-tree.svelte +1 -1
- package/dist/ai/task/task-content.svelte +1 -1
- package/dist/ai/task/task-trigger.svelte +1 -1
- package/dist/ai/tool/tool-chip.svelte +2 -2
- package/dist/ai/tool/tool-exec.svelte +3 -3
- package/dist/ai/tool/tool-header.svelte +1 -1
- package/dist/ai/web-preview/web-preview.svelte +3 -3
- package/dist/ai/workflow/canvas.svelte +1 -1
- package/dist/ai/workflow/node.svelte +3 -3
- package/dist/apps/llm-shell/llm-shell.svelte +7 -7
- package/dist/apps/notes/editor/slash-menu.svelte +7 -5
- package/dist/apps/notes/note-editor.svelte +7 -364
- package/dist/apps/notes/note-editor.svelte.d.ts +1 -0
- package/dist/apps/notes/notes.svelte +9 -9
- package/dist/dev/audit/audits/_helpers.js +1 -1
- package/dist/dev/audit/audits/resting-gap.js +1 -1
- package/dist/dev/audit/audits/single-glyph-square.js +2 -2
- package/dist/dev/audit-overlay.svelte +7 -7
- package/dist/dev/measure.d.ts +1 -1
- package/dist/dev/measure.js +1 -1
- package/dist/docs/badge.md +1 -1
- package/dist/docs/css-utilities.d.ts +1 -1
- package/dist/docs/css-utilities.js +8 -8
- package/dist/docs/llms-txt.js +1 -1
- package/dist/era-ui.css +1 -1
- package/dist/generated-docs/badge.md +1 -1
- package/dist/generated-docs/bar.md +2 -2
- package/dist/generated-docs/chip.md +1 -1
- package/dist/generated-docs/input.md +1 -1
- package/dist/generated-docs/llms-full.txt +100 -120
- package/dist/generated-docs/llms.txt +12 -13
- package/dist/generated-docs/manifest.json +52 -65
- package/dist/generated-docs/utilities.json +45 -57
- package/dist/generated-docs/utilities.md +87 -106
- package/dist/os/notification-center.svelte +6 -6
- package/dist/os/pane.svelte +7 -5
- package/dist/os/taskbar.svelte +10 -10
- package/dist/os/toast.svelte +3 -3
- package/dist/os/toaster.svelte +1 -1
- package/dist/styles/density.css +93 -67
- package/dist/styles/index.css +89 -101
- package/dist/styles/prose.css +384 -0
- package/dist/styles/surfaces/base.css +3 -3
- package/dist/styles/surfaces/bevel.css +2 -2
- package/dist/ui/accordion/accordion-trigger.svelte +2 -2
- package/dist/ui/alert-dialog/alert-dialog-content.svelte +1 -1
- package/dist/ui/aspect-ratio/aspect-ratio.svelte +1 -1
- package/dist/ui/avatar/avatar-root.svelte +1 -1
- package/dist/ui/badge/badge.svelte +1 -1
- package/dist/ui/badge/badge.svelte.d.ts +1 -1
- package/dist/ui/bar/bar.svelte +23 -15
- package/dist/ui/bar/bar.svelte.d.ts +26 -26
- package/dist/ui/button/button.svelte +1 -1
- package/dist/ui/button/variants.js +18 -18
- package/dist/ui/button-group/button-group.svelte +2 -2
- package/dist/ui/calendar/calendar-day.svelte +1 -1
- package/dist/ui/calendar/calendar-head-cell.svelte +1 -1
- package/dist/ui/calendar/calendar-header.svelte +1 -1
- package/dist/ui/calendar/calendar-next-button.svelte +1 -1
- package/dist/ui/calendar/calendar-prev-button.svelte +1 -1
- package/dist/ui/card/card.svelte +5 -5
- package/dist/ui/card/card.svelte.d.ts +4 -4
- package/dist/ui/checkbox/checkbox.svelte +3 -3
- package/dist/ui/chip/chip.svelte +14 -10
- package/dist/ui/chip/chip.svelte.d.ts +7 -7
- package/dist/ui/code-block/code-block.svelte +6 -6
- package/dist/ui/collapsible/collapsible-trigger.svelte +1 -1
- package/dist/ui/combobox/combobox-content.svelte +1 -1
- package/dist/ui/combobox/combobox-empty.svelte +4 -1
- package/dist/ui/combobox/combobox-group-heading.svelte +4 -1
- package/dist/ui/combobox/combobox-item.svelte +1 -1
- package/dist/ui/combobox/combobox-trigger.svelte +2 -2
- package/dist/ui/command/command-group-heading.svelte +4 -1
- package/dist/ui/command/command-item.svelte +1 -1
- package/dist/ui/command/command-link-item.svelte +1 -1
- package/dist/ui/command/command-root.svelte +1 -1
- package/dist/ui/command-bar/command-bar.svelte +16 -12
- package/dist/ui/context-menu/context-menu-checkbox-item.svelte +1 -1
- package/dist/ui/context-menu/context-menu-content.svelte +1 -1
- package/dist/ui/context-menu/context-menu-group-heading.svelte +4 -1
- package/dist/ui/context-menu/context-menu-item.svelte +1 -1
- package/dist/ui/context-menu/context-menu-radio-item.svelte +1 -1
- package/dist/ui/context-menu/context-menu-sub-content.svelte +1 -1
- package/dist/ui/context-menu/context-menu-sub-trigger.svelte +2 -2
- package/dist/ui/copy-button/copy-button.svelte +2 -2
- package/dist/ui/cycle/cycle.svelte +1 -1
- package/dist/ui/date-field/date-field-segment.svelte +1 -1
- package/dist/ui/date-picker/date-picker-content.svelte +1 -1
- package/dist/ui/date-picker/date-picker-day.svelte +1 -1
- package/dist/ui/date-picker/date-picker-head-cell.svelte +1 -1
- package/dist/ui/date-picker/date-picker-header.svelte +1 -1
- package/dist/ui/date-picker/date-picker-next-button.svelte +1 -1
- package/dist/ui/date-picker/date-picker-prev-button.svelte +1 -1
- package/dist/ui/date-picker/date-picker-segment.svelte +1 -1
- package/dist/ui/date-picker/date-picker-trigger.svelte +2 -2
- package/dist/ui/date-range-field/date-range-field-segment.svelte +1 -1
- package/dist/ui/date-range-picker/date-range-picker-content.svelte +1 -1
- package/dist/ui/date-range-picker/date-range-picker-day.svelte +1 -1
- package/dist/ui/date-range-picker/date-range-picker-head-cell.svelte +1 -1
- package/dist/ui/date-range-picker/date-range-picker-header.svelte +1 -1
- package/dist/ui/date-range-picker/date-range-picker-next-button.svelte +1 -1
- package/dist/ui/date-range-picker/date-range-picker-prev-button.svelte +1 -1
- package/dist/ui/date-range-picker/date-range-picker-segment.svelte +1 -1
- package/dist/ui/date-range-picker/date-range-picker-trigger.svelte +2 -2
- package/dist/ui/dialog/dialog-content.svelte +4 -2
- package/dist/ui/dialog/dialog-header.svelte +2 -2
- package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +1 -1
- package/dist/ui/dropdown-menu/dropdown-menu-content.svelte +1 -1
- package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte +4 -1
- package/dist/ui/dropdown-menu/dropdown-menu-item.svelte +1 -1
- package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte +1 -1
- package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte +1 -1
- package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +2 -2
- package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte +2 -2
- package/dist/ui/file-upload/file-upload.svelte +2 -2
- package/dist/ui/input/input.svelte +3 -3
- package/dist/ui/input/input.svelte.d.ts +1 -1
- package/dist/ui/input/textarea.svelte +1 -1
- package/dist/ui/input/variants.d.ts +24 -24
- package/dist/ui/input/variants.js +9 -9
- package/dist/ui/kv/kv.svelte +2 -2
- package/dist/ui/link-preview/link-preview-content.svelte +1 -1
- package/dist/ui/menubar/menubar-checkbox-item.svelte +1 -1
- package/dist/ui/menubar/menubar-content.svelte +1 -1
- package/dist/ui/menubar/menubar-group-heading.svelte +4 -1
- package/dist/ui/menubar/menubar-item.svelte +1 -1
- package/dist/ui/menubar/menubar-radio-item.svelte +1 -1
- package/dist/ui/menubar/menubar-root.svelte +1 -1
- package/dist/ui/menubar/menubar-sub-content.svelte +1 -1
- package/dist/ui/menubar/menubar-sub-trigger.svelte +2 -2
- package/dist/ui/menubar/menubar-trigger.svelte +1 -1
- package/dist/ui/meter/meter.svelte +1 -1
- package/dist/ui/pagination/pagination-next-button.svelte +1 -1
- package/dist/ui/pagination/pagination-prev-button.svelte +1 -1
- package/dist/ui/pane/pane-close.svelte +2 -2
- package/dist/ui/pane/pane-content.svelte +1 -1
- package/dist/ui/pane/pane-handle.svelte +3 -3
- package/dist/ui/pane/pane-root.svelte +12 -12
- package/dist/ui/pane/pane-tab-list.svelte +1 -1
- package/dist/ui/pane/pane-tab-panel.svelte +1 -1
- package/dist/ui/pane/pane-tab.svelte +1 -1
- package/dist/ui/pane/pane.svelte +1 -1
- package/dist/ui/pin-input/pin-input-cell.svelte +1 -1
- package/dist/ui/popover/popover-content.svelte +1 -1
- package/dist/ui/progress/progress.svelte +1 -1
- package/dist/ui/radio-group/radio-group-item.svelte +2 -2
- package/dist/ui/rating-group/rating-group-item.svelte +1 -1
- package/dist/ui/scroll-area/scroll-area-thumb.svelte +1 -1
- package/dist/ui/scroll-area/scroll-area.svelte +1 -1
- package/dist/ui/select/select-content.svelte +1 -1
- package/dist/ui/select/select-group-heading.svelte +4 -1
- package/dist/ui/select/select-item.svelte +1 -1
- package/dist/ui/select/select-trigger.svelte +2 -2
- package/dist/ui/select/select-value.svelte +1 -1
- package/dist/ui/sheet/sheet-content.svelte +3 -3
- package/dist/ui/sheet/sheet-content.svelte.d.ts +6 -6
- package/dist/ui/skeleton/skeleton.svelte +3 -3
- package/dist/ui/skeleton/skeleton.svelte.d.ts +9 -9
- package/dist/ui/slider/slider-range.svelte +1 -1
- package/dist/ui/slider/slider-thumb.svelte +1 -1
- package/dist/ui/step/step-content.svelte +1 -1
- package/dist/ui/step/step-summary.svelte +6 -6
- package/dist/ui/switch/switch.svelte +3 -3
- package/dist/ui/table/table-cell.svelte +1 -1
- package/dist/ui/table/table-head-cell.svelte +1 -1
- package/dist/ui/time-field/time-field-segment.svelte +1 -1
- package/dist/ui/time-range-field/time-range-field-segment.svelte +1 -1
- package/dist/ui/toggle-group/toggle-group-item.svelte +1 -1
- package/dist/ui/tooltip/tooltip-content.svelte +1 -1
- package/dist/ui/video-player/video-player.svelte +44 -44
- package/dist/utils/index.js +4 -4
- package/package.json +2 -1
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
// glass-blur, like every other floating panel (menus, dialogs, pickers):
|
|
25
25
|
// inert on opaque surfaces, blurs the backdrop when the palette floats.
|
|
26
26
|
!bare &&
|
|
27
|
-
'overflow-hidden rounded-(--era-rd-
|
|
27
|
+
'overflow-hidden rounded-(--era-rd-bar) border border-(color:--era-border-color) bg-(--era-surface-bg) p-(--era-gap) shadow-(--era-shadow-lg) glass-blur',
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
{...restProps}
|
|
@@ -190,25 +190,27 @@
|
|
|
190
190
|
glass-blur: a flat sheet on flat (shadow resolves to none), the chisel frame
|
|
191
191
|
on bevel, frost on glass — so it reads as "dedicated" on every surface, not
|
|
192
192
|
an undifferentiated rectangle. -->
|
|
193
|
-
<div
|
|
194
|
-
|
|
193
|
+
<div
|
|
194
|
+
class={cn('relative flex h-(--era-h-control) w-full min-w-0 items-center font-mono', className)}
|
|
195
|
+
>
|
|
196
|
+
<ChevronRight class="mx-(--era-gap) size-(--era-h-icon) shrink-0 text-fg" />
|
|
195
197
|
|
|
196
198
|
<!-- Completed segments: the locked prefix. Backspace (empty input) pops. -->
|
|
197
199
|
<!-- ONE chevron, one size, everywhere in the bar: the prompt's, the
|
|
198
|
-
breadcrumb separators', and the submenu indicator's are all h-
|
|
200
|
+
breadcrumb separators', and the submenu indicator's are all h-icon — the
|
|
199
201
|
icon tier every other glyph in the bar sits on. They differ only in
|
|
200
202
|
ink (fg for the live prompt, muted for the locked path), so
|
|
201
203
|
"> workspace > which workspace" reads as one repeated mark, not three
|
|
202
204
|
sizes of it. -->
|
|
203
205
|
{#each stack as seg (seg.value)}
|
|
204
206
|
<span class="shrink-0 text-body text-muted">{seg.label}</span>
|
|
205
|
-
<ChevronRight class="mx-(--era-gap) size-(--era-h-
|
|
207
|
+
<ChevronRight class="mx-(--era-gap) size-(--era-h-icon) shrink-0 text-muted" />
|
|
206
208
|
{/each}
|
|
207
209
|
|
|
208
210
|
<!-- ONE source of truth for the field's type: font size and text colour live on
|
|
209
211
|
the container, and both the input and the ghost mirror inherit them. Change
|
|
210
212
|
the field's look here and the ghost follows automatically. -->
|
|
211
|
-
<!-- leading-(--era-h-
|
|
213
|
+
<!-- leading-(--era-h-control) is the whole trick for vertical alignment: line-height
|
|
212
214
|
equals the field height, so a single line of text fills the box and centres
|
|
213
215
|
itself by the font's own metrics. The input and the ghost mirror BOTH inherit
|
|
214
216
|
it, so they centre by the identical mechanism — no native-input-centering vs
|
|
@@ -217,9 +219,9 @@
|
|
|
217
219
|
MIRROR that actually paints it did not — so in a host narrower than the
|
|
218
220
|
prompt line (placeholder included), the text bled past the bar's rounded
|
|
219
221
|
end where any real input would clip. Safe with the line-height centring:
|
|
220
|
-
the box is the bar's full h-
|
|
222
|
+
the box is the bar's full h-control, well above the ink (clipped-glyphs' law). -->
|
|
221
223
|
<div
|
|
222
|
-
class="relative h-full min-w-0 flex-1 overflow-hidden text-body leading-(--era-h-
|
|
224
|
+
class="relative h-full min-w-0 flex-1 overflow-hidden text-body leading-(--era-h-control) text-bright"
|
|
223
225
|
>
|
|
224
226
|
<!-- Transparent input: it owns editing and the caret only, so the visible text
|
|
225
227
|
can come entirely from the mirror below (see it for why). Everything but
|
|
@@ -270,7 +272,9 @@
|
|
|
270
272
|
onmousedown={(e) => e.preventDefault()}
|
|
271
273
|
>
|
|
272
274
|
{#if !filtered.length}
|
|
273
|
-
<div
|
|
275
|
+
<div
|
|
276
|
+
class="flex h-(--era-h-control) items-center px-(--era-inset-control) text-body text-muted"
|
|
277
|
+
>
|
|
274
278
|
{empty}
|
|
275
279
|
</div>
|
|
276
280
|
{:else}
|
|
@@ -286,7 +290,7 @@
|
|
|
286
290
|
tabindex={-1}
|
|
287
291
|
aria-selected={i === selectedIndex}
|
|
288
292
|
class={cn(
|
|
289
|
-
'flex h-(--era-h-
|
|
293
|
+
'flex h-(--era-h-control) cursor-default items-center gap-(--era-gap) px-(--era-inset-control) text-body era-text-trim whitespace-nowrap',
|
|
290
294
|
i === selectedIndex ? 'bg-3 text-bright' : 'text-fg'
|
|
291
295
|
)}
|
|
292
296
|
onclick={() => choose(item)}
|
|
@@ -295,14 +299,14 @@
|
|
|
295
299
|
<span class="shrink-0">{item.icon}</span>
|
|
296
300
|
{:else if item.icon}
|
|
297
301
|
{@const Icon = item.icon}
|
|
298
|
-
<Icon class="size-(--era-h-
|
|
302
|
+
<Icon class="size-(--era-h-icon) shrink-0 text-muted" />
|
|
299
303
|
{/if}
|
|
300
304
|
<span class="shrink-0">{item.label}</span>
|
|
301
305
|
{#if item.items}
|
|
302
|
-
<ChevronRight class="size-(--era-h-
|
|
306
|
+
<ChevronRight class="size-(--era-h-icon) shrink-0 text-muted" />
|
|
303
307
|
{/if}
|
|
304
308
|
{#if item.sublabel}
|
|
305
|
-
<span class="ml-auto truncate pl-(--era-inset-
|
|
309
|
+
<span class="ml-auto truncate pl-(--era-inset-control) text-body text-muted">
|
|
306
310
|
{item.sublabel}
|
|
307
311
|
</span>
|
|
308
312
|
{/if}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
bind:ref
|
|
15
15
|
bind:checked
|
|
16
16
|
class={cn(
|
|
17
|
-
'flex h-(--era-h-
|
|
17
|
+
'flex h-(--era-h-control) cursor-pointer items-center rounded-(--era-item-rd) px-(--era-inset-control) text-body text-fg data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow)',
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...restProps}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
// 2px frame that stops a full-width highlight from breaking their chrome.
|
|
22
22
|
// A fixed gutter was tried here and rejected: it padded flat menus too.
|
|
23
23
|
class={cn(
|
|
24
|
-
'z-50 w-max overflow-hidden rounded-(--era-rd-
|
|
24
|
+
'z-50 w-max overflow-hidden rounded-(--era-rd-control) bg-(--era-surface-bg-elevated) p-(--era-panel-inset) shadow-(--era-shadow-lg) glass-blur',
|
|
25
25
|
className
|
|
26
26
|
)}
|
|
27
27
|
{sideOffset}
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
<ContextMenu.GroupHeading
|
|
13
13
|
bind:ref
|
|
14
|
-
class={cn(
|
|
14
|
+
class={cn(
|
|
15
|
+
'flex h-(--era-h-control) items-center px-(--era-inset-control) text-body text-muted',
|
|
16
|
+
className
|
|
17
|
+
)}
|
|
15
18
|
{...restProps}
|
|
16
19
|
/>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<ContextMenu.Item
|
|
14
14
|
bind:ref
|
|
15
15
|
class={cn(
|
|
16
|
-
'flex h-(--era-h-
|
|
16
|
+
'flex h-(--era-h-control) cursor-pointer items-center gap-(--era-gap) rounded-(--era-item-rd) px-(--era-inset-control) text-body text-fg data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow)',
|
|
17
17
|
className
|
|
18
18
|
)}
|
|
19
19
|
{...restProps}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<ContextMenu.RadioItem
|
|
13
13
|
bind:ref
|
|
14
14
|
class={cn(
|
|
15
|
-
'flex h-(--era-h-
|
|
15
|
+
'flex h-(--era-h-control) cursor-pointer items-center rounded-(--era-item-rd) px-(--era-inset-control) text-body text-fg data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow)',
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...restProps}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<ContextMenu.SubContent
|
|
16
16
|
bind:ref
|
|
17
17
|
class={cn(
|
|
18
|
-
'z-50 w-max overflow-hidden rounded-(--era-rd-
|
|
18
|
+
'z-50 w-max overflow-hidden rounded-(--era-rd-control) bg-(--era-surface-bg-elevated) p-(--era-panel-inset) shadow-(--era-shadow-lg) glass-blur',
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
{sideOffset}
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
<ContextMenu.SubTrigger
|
|
15
15
|
bind:ref
|
|
16
16
|
class={cn(
|
|
17
|
-
'flex h-(--era-h-
|
|
17
|
+
'flex h-(--era-h-control) cursor-pointer items-center justify-between gap-(--era-icon-inset-chip) rounded-(--era-item-rd) px-(--era-inset-control) text-body text-fg data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow) data-[state=open]:bg-hover',
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...restProps}
|
|
21
21
|
>
|
|
22
22
|
{@render children?.()}
|
|
23
|
-
<ChevronRight class="size-(--era-h-
|
|
23
|
+
<ChevronRight class="size-(--era-h-icon) text-muted" />
|
|
24
24
|
</ContextMenu.SubTrigger>
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
// leaving one does the reverse; timing rides the motion axis, so the swap
|
|
76
76
|
// snaps at instant, is decisive at normal, and overshoots at extra.
|
|
77
77
|
const iconBase =
|
|
78
|
-
'absolute inset-0 size-(--era-h-
|
|
78
|
+
'absolute inset-0 size-(--era-h-icon) transition-[opacity,scale,filter] duration-(--era-duration) ease-(--era-ease)';
|
|
79
79
|
const iconIn = 'scale-100 opacity-100 blur-none';
|
|
80
80
|
const iconOut = 'scale-25 opacity-0 blur-xs';
|
|
81
81
|
</script>
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
onclick={copy}
|
|
90
90
|
{...restProps}
|
|
91
91
|
>
|
|
92
|
-
<span class="relative block size-(--era-h-
|
|
92
|
+
<span class="relative block size-(--era-h-icon) shrink-0">
|
|
93
93
|
<IdleIcon class={cn(iconBase, status === 'idle' ? iconIn : iconOut)} />
|
|
94
94
|
<SuccessIcon class={cn(iconBase, 'text-success', status === 'success' ? iconIn : iconOut)} />
|
|
95
95
|
<FailureIcon
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<DateField.Segment
|
|
9
9
|
bind:ref
|
|
10
10
|
class={cn(
|
|
11
|
-
'inline-flex h-(--era-h-
|
|
11
|
+
'inline-flex h-(--era-h-chip) items-center rounded-(--era-rd-chip) px-[calc(var(--era-sp)/2)] focus:bg-(--era-highlight) focus:text-bright focus:outline-none aria-[valuetext=Empty]:text-muted data-[segment=literal]:text-muted',
|
|
12
12
|
className
|
|
13
13
|
)}
|
|
14
14
|
{...restProps}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
bind:ref
|
|
16
16
|
align="start"
|
|
17
17
|
class={cn(
|
|
18
|
-
'z-50 rounded-(--era-rd-
|
|
18
|
+
'z-50 rounded-(--era-rd-bar) bg-(--era-surface-bg-elevated) p-(--era-pad-content) shadow-(--era-shadow-lg) glass-blur',
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
{sideOffset}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<DatePicker.Day
|
|
9
9
|
bind:ref
|
|
10
10
|
class={cn(
|
|
11
|
-
'inline-flex size-(--era-h-
|
|
11
|
+
'inline-flex size-(--era-h-control) cursor-default items-center justify-center rounded-(--era-rd-control) text-body text-fg hover:bg-(--era-highlight) focus:outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[outside-month]:pointer-events-none data-[outside-month]:text-muted/40 data-[selected]:bg-hover data-[selected]:text-bright data-[unavailable]:text-muted data-[unavailable]:line-through',
|
|
12
12
|
className
|
|
13
13
|
)}
|
|
14
14
|
{...restProps}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<DatePicker.HeadCell
|
|
13
13
|
bind:ref
|
|
14
14
|
class={cn(
|
|
15
|
-
'flex size-(--era-h-
|
|
15
|
+
'flex size-(--era-h-control) items-center justify-center text-body font-normal text-muted',
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...restProps}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<DatePicker.Segment
|
|
9
9
|
bind:ref
|
|
10
10
|
class={cn(
|
|
11
|
-
'inline-flex h-(--era-h-
|
|
11
|
+
'inline-flex h-(--era-h-chip) items-center rounded-(--era-rd-chip) px-[calc(var(--era-sp)/2)] focus:bg-(--era-highlight) focus:text-bright focus:outline-none aria-[valuetext=Empty]:text-muted data-[segment=literal]:text-muted',
|
|
12
12
|
className
|
|
13
13
|
)}
|
|
14
14
|
{...restProps}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<DatePicker.Trigger
|
|
15
15
|
bind:ref
|
|
16
16
|
class={cn(
|
|
17
|
-
'ml-auto flex size-(--era-h-
|
|
17
|
+
'ml-auto flex size-(--era-h-chip) shrink-0 items-center justify-center rounded-(--era-rd-chip) text-muted hover:bg-(--era-highlight) hover:text-fg focus:outline-none',
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...restProps}
|
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
{#if children}
|
|
23
23
|
{@render children()}
|
|
24
24
|
{:else}
|
|
25
|
-
<CalendarDays class="size-(--era-h-
|
|
25
|
+
<CalendarDays class="size-(--era-h-icon)" />
|
|
26
26
|
{/if}
|
|
27
27
|
</DatePicker.Trigger>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<DateRangeField.Segment
|
|
13
13
|
bind:ref
|
|
14
14
|
class={cn(
|
|
15
|
-
'inline-flex h-(--era-h-
|
|
15
|
+
'inline-flex h-(--era-h-chip) items-center rounded-(--era-rd-chip) px-[calc(var(--era-sp)/2)] focus:bg-(--era-highlight) focus:text-bright focus:outline-none aria-[valuetext=Empty]:text-muted data-[segment=literal]:text-muted',
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...restProps}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
bind:ref
|
|
16
16
|
align="start"
|
|
17
17
|
class={cn(
|
|
18
|
-
'z-50 rounded-(--era-rd-
|
|
18
|
+
'z-50 rounded-(--era-rd-bar) bg-(--era-surface-bg-elevated) p-(--era-pad-content) shadow-(--era-shadow-lg) glass-blur',
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
{sideOffset}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<DateRangePicker.Day
|
|
13
13
|
bind:ref
|
|
14
14
|
class={cn(
|
|
15
|
-
'inline-flex size-(--era-h-
|
|
15
|
+
'inline-flex size-(--era-h-control) cursor-default items-center justify-center rounded-(--era-rd-control) text-body text-fg hover:bg-(--era-highlight) focus:outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow) data-[outside-month]:pointer-events-none data-[outside-month]:text-muted/40 data-[range-end]:bg-primary data-[range-end]:text-primary-fg data-[range-start]:bg-primary data-[range-start]:text-primary-fg data-[selected]:bg-hover data-[selected]:text-bright data-[unavailable]:text-muted data-[unavailable]:line-through',
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...restProps}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<DateRangePicker.HeadCell
|
|
13
13
|
bind:ref
|
|
14
14
|
class={cn(
|
|
15
|
-
'flex size-(--era-h-
|
|
15
|
+
'flex size-(--era-h-control) items-center justify-center text-body font-normal text-muted',
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...restProps}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<DateRangePicker.Segment
|
|
13
13
|
bind:ref
|
|
14
14
|
class={cn(
|
|
15
|
-
'inline-flex h-(--era-h-
|
|
15
|
+
'inline-flex h-(--era-h-chip) items-center rounded-(--era-rd-chip) px-[calc(var(--era-sp)/2)] focus:bg-(--era-highlight) focus:text-bright focus:outline-none aria-[valuetext=Empty]:text-muted data-[segment=literal]:text-muted',
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...restProps}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<DateRangePicker.Trigger
|
|
15
15
|
bind:ref
|
|
16
16
|
class={cn(
|
|
17
|
-
'ml-auto flex size-(--era-h-
|
|
17
|
+
'ml-auto flex size-(--era-h-chip) shrink-0 items-center justify-center rounded-(--era-rd-chip) text-muted hover:bg-(--era-highlight) hover:text-fg focus:outline-none',
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...restProps}
|
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
{#if children}
|
|
23
23
|
{@render children()}
|
|
24
24
|
{:else}
|
|
25
|
-
<CalendarDays class="size-(--era-h-
|
|
25
|
+
<CalendarDays class="size-(--era-h-icon)" />
|
|
26
26
|
{/if}
|
|
27
27
|
</DateRangePicker.Trigger>
|
|
@@ -31,14 +31,16 @@
|
|
|
31
31
|
bind:ref
|
|
32
32
|
class={cn(
|
|
33
33
|
'fixed top-1/2 left-1/2 z-50 flex w-full max-w-md -translate-x-1/2 -translate-y-1/2 flex-col border border-divider bg-(--era-surface-bg) shadow-(--era-shadow-lg) glass-blur',
|
|
34
|
-
header
|
|
34
|
+
header
|
|
35
|
+
? 'rounded-(--era-rd-control)'
|
|
36
|
+
: 'gap-(--era-gap) rounded-(--era-rd-bar) p-(--era-pad-card)',
|
|
35
37
|
className
|
|
36
38
|
)}
|
|
37
39
|
{...restProps}
|
|
38
40
|
>
|
|
39
41
|
{#if header}
|
|
40
42
|
{@render header()}
|
|
41
|
-
<div class="flex min-h-0 flex-col gap-(--era-gap) p-(--era-pad-
|
|
43
|
+
<div class="flex min-h-0 flex-col gap-(--era-gap) p-(--era-pad-card)">
|
|
42
44
|
{@render children?.()}
|
|
43
45
|
</div>
|
|
44
46
|
{:else}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
variant IS the cap law (outset divider, rd-md corners), shared with
|
|
22
22
|
Pane.Handle. What this part adds:
|
|
23
23
|
|
|
24
|
-
· the leading side at --era-inset-
|
|
24
|
+
· the leading side at --era-inset-control: a title has no corner to nest, so
|
|
25
25
|
it takes the text inset, the same asymmetry the pane and the
|
|
26
26
|
Conversations row document
|
|
27
27
|
· the × is the dismiss family's: an xxs `Dialog.Close` whose tier
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
`header` snippet, so the bar spans the panel edge to edge and the panel's
|
|
32
32
|
radius follows this corner region (rd-md — the same law that sizes the
|
|
33
33
|
pane's own corners). -->
|
|
34
|
-
<Bar size="md" content="xxs" divider class={cn('pl-(--era-inset-
|
|
34
|
+
<Bar size="md" content="xxs" divider class={cn('pl-(--era-inset-control) select-none', className)}>
|
|
35
35
|
{@render children?.()}
|
|
36
36
|
{#if dismissable}
|
|
37
37
|
<Close icon size="xxs" tone="destructive" aria-label="Close" class="ml-auto">
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
bind:ref
|
|
15
15
|
bind:checked
|
|
16
16
|
class={cn(
|
|
17
|
-
'flex h-(--era-h-
|
|
17
|
+
'flex h-(--era-h-control) cursor-pointer items-center rounded-(--era-item-rd) px-(--era-inset-control) text-body text-fg data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow)',
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...restProps}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
// floating menu, like the context menu it should match: full radius, a
|
|
30
30
|
// gutter of air, shadow doing the separating.
|
|
31
31
|
class={cn(
|
|
32
|
-
'z-50 w-max min-w-(--bits-dropdown-menu-anchor-width) overflow-hidden rounded-(--era-rd-
|
|
32
|
+
'z-50 w-max min-w-(--bits-dropdown-menu-anchor-width) overflow-hidden rounded-(--era-rd-control) bg-(--era-surface-bg-elevated) p-(--era-panel-inset) shadow-(--era-shadow-lg) glass-blur',
|
|
33
33
|
className
|
|
34
34
|
)}
|
|
35
35
|
{sideOffset}
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
<DropdownMenu.GroupHeading
|
|
13
13
|
bind:ref
|
|
14
|
-
class={cn(
|
|
14
|
+
class={cn(
|
|
15
|
+
'flex h-(--era-h-control) items-center px-(--era-inset-control) text-body text-muted',
|
|
16
|
+
className
|
|
17
|
+
)}
|
|
15
18
|
{...restProps}
|
|
16
19
|
/>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<DropdownMenu.Item
|
|
14
14
|
bind:ref
|
|
15
15
|
class={cn(
|
|
16
|
-
'flex h-(--era-h-
|
|
16
|
+
'flex h-(--era-h-control) cursor-pointer items-center gap-(--era-gap) rounded-(--era-item-rd) px-(--era-inset-control) text-body text-fg data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow)',
|
|
17
17
|
className
|
|
18
18
|
)}
|
|
19
19
|
{...restProps}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<DropdownMenu.RadioItem
|
|
13
13
|
bind:ref
|
|
14
14
|
class={cn(
|
|
15
|
-
'flex h-(--era-h-
|
|
15
|
+
'flex h-(--era-h-control) cursor-pointer items-center rounded-(--era-item-rd) px-(--era-inset-control) text-body text-fg data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow)',
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...restProps}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<DropdownMenu.SubContent
|
|
16
16
|
bind:ref
|
|
17
17
|
class={cn(
|
|
18
|
-
'z-50 w-max overflow-hidden rounded-(--era-rd-
|
|
18
|
+
'z-50 w-max overflow-hidden rounded-(--era-rd-control) bg-(--era-surface-bg-elevated) p-(--era-panel-inset) shadow-(--era-shadow-lg) glass-blur',
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
{sideOffset}
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
<DropdownMenu.SubTrigger
|
|
15
15
|
bind:ref
|
|
16
16
|
class={cn(
|
|
17
|
-
'flex h-(--era-h-
|
|
17
|
+
'flex h-(--era-h-control) cursor-pointer items-center justify-between gap-(--era-icon-inset-chip) rounded-(--era-item-rd) px-(--era-inset-control) text-body text-fg data-[highlighted]:bg-(--era-highlight) data-[highlighted]:shadow-(--era-highlight-shadow) data-[state=open]:bg-hover',
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...restProps}
|
|
21
21
|
>
|
|
22
22
|
{@render children?.()}
|
|
23
|
-
<ChevronRight class="size-(--era-h-
|
|
23
|
+
<ChevronRight class="size-(--era-h-icon) text-muted" />
|
|
24
24
|
</DropdownMenu.SubTrigger>
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
<DropdownMenu.Trigger
|
|
15
15
|
bind:ref
|
|
16
16
|
class={cn(
|
|
17
|
-
'flex h-(--era-h-
|
|
17
|
+
'flex h-(--era-h-control) w-full items-center justify-between gap-(--era-icon-inset-chip) rounded-(--era-rd-control) bg-(--era-surface-bg-elevated) px-(--era-inset-control) text-body text-fg shadow-(--era-shadow) focus:bg-(--era-highlight) focus:outline-none disabled:opacity-50 data-[state=open]:rounded-b-none data-[state=open]:shadow-(--era-shadow-pressed)',
|
|
18
18
|
className
|
|
19
19
|
)}
|
|
20
20
|
{...restProps}
|
|
21
21
|
>
|
|
22
22
|
{@render children?.()}
|
|
23
|
-
<ChevronDown class="size-(--era-h-
|
|
23
|
+
<ChevronDown class="size-(--era-h-icon) text-muted" />
|
|
24
24
|
</DropdownMenu.Trigger>
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
data-dragging={dragging || undefined}
|
|
75
75
|
data-disabled={disabled || undefined}
|
|
76
76
|
class={cn(
|
|
77
|
-
'flex h-(--era-h-
|
|
77
|
+
'flex h-(--era-h-control) w-full items-center gap-(--era-gap) rounded-(--era-rd-control) bg-(--era-surface-bg-elevated) px-(--era-inset-control) font-mono text-body leading-none text-fg shadow-(--era-shadow-well) transition-colors duration-(--era-duration) focus-within:bg-(--era-highlight) hover:bg-(--era-highlight) data-[disabled]:pointer-events-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[dragging]:bg-(--era-highlight) data-[dragging]:text-bright',
|
|
78
78
|
className
|
|
79
79
|
)}
|
|
80
80
|
ondragenter={onDragEnter}
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
ondragover={onDragOver}
|
|
83
83
|
ondrop={onDrop}
|
|
84
84
|
>
|
|
85
|
-
<Upload class="size-(--era-h-
|
|
85
|
+
<Upload class="size-(--era-h-icon) shrink-0" />
|
|
86
86
|
<span class="truncate {files && files.length > 0 ? 'text-bright' : 'text-muted'}">
|
|
87
87
|
{label()}
|
|
88
88
|
</span>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
/** Lucide glyph rendered inside the field, left of the text. */
|
|
25
25
|
icon?: Component<IconProps> | null;
|
|
26
26
|
/**
|
|
27
|
-
* Field tier. `
|
|
27
|
+
* Field tier. `pill` is badge height — for compact chrome where the field
|
|
28
28
|
* sits level with xxs buttons. See inputVariants.
|
|
29
29
|
*/
|
|
30
30
|
size?: 'md' | 'xxs';
|
|
@@ -51,10 +51,10 @@
|
|
|
51
51
|
|
|
52
52
|
// The field's glyph is the icon tier OF ITS OWN TIER, which is what puts it on
|
|
53
53
|
// the same optical footing as the icon button beside it: an md field pairs
|
|
54
|
-
// with a default button (h-
|
|
54
|
+
// with a default button (h-icon glyph), an xxs field with a pill-tier button
|
|
55
55
|
// (icon-xxs). One size for both would leave the two glyphs in one bar drawn at
|
|
56
56
|
// different weights.
|
|
57
|
-
const glyphClass = $derived(size === 'xxs' ? 'size-(--era-
|
|
57
|
+
const glyphClass = $derived(size === 'xxs' ? 'size-(--era-glyph-pill)' : 'size-(--era-h-icon)');
|
|
58
58
|
</script>
|
|
59
59
|
|
|
60
60
|
{#if icon}
|
|
@@ -6,7 +6,7 @@ type $$ComponentProps = Omit<HTMLInputAttributes, 'size'> & {
|
|
|
6
6
|
/** Lucide glyph rendered inside the field, left of the text. */
|
|
7
7
|
icon?: Component<IconProps> | null;
|
|
8
8
|
/**
|
|
9
|
-
* Field tier. `
|
|
9
|
+
* Field tier. `pill` is badge height — for compact chrome where the field
|
|
10
10
|
* sits level with xxs buttons. See inputVariants.
|
|
11
11
|
*/
|
|
12
12
|
size?: 'md' | 'xxs';
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
inputVariants({ height: 'auto' }),
|
|
22
22
|
// It grows, so the vertical inset has to be stated: the tier height is what
|
|
23
23
|
// centres one line of text in every other field, and there isn't one here.
|
|
24
|
-
'resize-y py-(--era-inset-
|
|
24
|
+
'resize-y py-(--era-inset-control)',
|
|
25
25
|
className
|
|
26
26
|
)}
|
|
27
27
|
{...restProps}></textarea>
|