@signal9/era-ui 8.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/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 +99 -119
- package/dist/generated-docs/llms.txt +11 -12
- 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 +12 -12
- 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 +1 -1
package/dist/styles/prose.css
CHANGED
|
@@ -147,15 +147,15 @@
|
|
|
147
147
|
|
|
148
148
|
/* Code — inline chips take the xxs radius, blocks the lg one a Card uses. */
|
|
149
149
|
.era-notes-prose .tiptap code {
|
|
150
|
-
padding: 1px var(--era-inset-
|
|
151
|
-
border-radius: var(--era-rd-
|
|
150
|
+
padding: 1px var(--era-inset-pill);
|
|
151
|
+
border-radius: var(--era-rd-pill);
|
|
152
152
|
background: var(--era-surface-bg-elevated);
|
|
153
153
|
}
|
|
154
154
|
.era-notes-prose .tiptap pre {
|
|
155
155
|
overflow-x: auto;
|
|
156
156
|
margin: 0 0 var(--era-gap);
|
|
157
|
-
padding: var(--era-inset-
|
|
158
|
-
border-radius: var(--era-rd-
|
|
157
|
+
padding: var(--era-inset-control);
|
|
158
|
+
border-radius: var(--era-rd-bar);
|
|
159
159
|
background: var(--color-surface);
|
|
160
160
|
box-shadow: var(--era-shadow);
|
|
161
161
|
}
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
/* Blockquote */
|
|
204
204
|
.era-notes-prose .tiptap blockquote {
|
|
205
205
|
margin: 0 0 var(--era-gap);
|
|
206
|
-
padding-left: var(--era-inset-
|
|
206
|
+
padding-left: var(--era-inset-control);
|
|
207
207
|
border-left: 2px solid var(--era-divider-color);
|
|
208
208
|
color: var(--color-muted);
|
|
209
209
|
}
|
|
@@ -241,9 +241,9 @@
|
|
|
241
241
|
}
|
|
242
242
|
.era-notes-prose .tiptap .task-item input[type='checkbox'] {
|
|
243
243
|
flex-shrink: 0;
|
|
244
|
-
width: calc(var(--era-h-
|
|
245
|
-
height: calc(var(--era-h-
|
|
246
|
-
border-radius: var(--era-rd-
|
|
244
|
+
width: calc(var(--era-h-icon) - 4px);
|
|
245
|
+
height: calc(var(--era-h-icon) - 4px);
|
|
246
|
+
border-radius: var(--era-rd-icon);
|
|
247
247
|
background: var(--era-surface-bg-elevated);
|
|
248
248
|
box-shadow: var(--era-shadow-well);
|
|
249
249
|
appearance: none;
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
}
|
|
308
308
|
.era-notes-prose .tiptap .note-table td,
|
|
309
309
|
.era-notes-prose .tiptap .note-table th {
|
|
310
|
-
padding: var(--era-inset-
|
|
310
|
+
padding: var(--era-inset-chip) var(--era-inset-control);
|
|
311
311
|
border: 1px solid var(--era-divider-color);
|
|
312
312
|
text-align: left;
|
|
313
313
|
vertical-align: top;
|
|
@@ -325,8 +325,8 @@
|
|
|
325
325
|
/* Details (collapsible) */
|
|
326
326
|
.era-notes-prose .tiptap details {
|
|
327
327
|
margin: 0 0 var(--era-gap);
|
|
328
|
-
padding: var(--era-inset-
|
|
329
|
-
border-radius: var(--era-rd-
|
|
328
|
+
padding: var(--era-inset-chip) var(--era-inset-control);
|
|
329
|
+
border-radius: var(--era-rd-control);
|
|
330
330
|
background: var(--era-surface-bg-elevated);
|
|
331
331
|
box-shadow: var(--era-shadow);
|
|
332
332
|
}
|
|
@@ -343,7 +343,7 @@
|
|
|
343
343
|
.era-notes-prose .tiptap img {
|
|
344
344
|
max-width: 100%;
|
|
345
345
|
height: auto;
|
|
346
|
-
border-radius: var(--era-rd-
|
|
346
|
+
border-radius: var(--era-rd-control);
|
|
347
347
|
}
|
|
348
348
|
|
|
349
349
|
/*
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
|
|
162
162
|
/* Concentric radius for a row inside a panel: the panel's radius minus its
|
|
163
163
|
* inset. Declared on the universal selector (like the density ladder) so it
|
|
164
|
-
* re-derives against each element's own --era-rd-
|
|
164
|
+
* re-derives against each element's own --era-rd-control — density subtree
|
|
165
165
|
* overrides stay correct.
|
|
166
166
|
*
|
|
167
167
|
* NO SURFACE GATE. This used to be multiplied by --era-item-rd-scale, which
|
|
@@ -172,13 +172,13 @@
|
|
|
172
172
|
* owns radii, globally, with no exceptions for a consumer to discover.
|
|
173
173
|
*
|
|
174
174
|
* The gate was also redundant. The formula already answers both axes on its
|
|
175
|
-
* own: at data-corners="square" --era-rd-
|
|
175
|
+
* own: at data-corners="square" --era-rd-control collapses to 0, so this collapses
|
|
176
176
|
* with it; on flat --era-panel-inset is 0, so a flush full-width row simply
|
|
177
177
|
* takes the panel's own radius — which is the concentric answer for a row
|
|
178
178
|
* whose panel has no frame to nest inside. Flat menus keep their flush,
|
|
179
179
|
* full-width rows; only the highlight's corners now follow the axis. */
|
|
180
180
|
* {
|
|
181
|
-
--era-item-rd: max(0px, calc(var(--era-rd-
|
|
181
|
+
--era-item-rd: max(0px, calc(var(--era-rd-control) - var(--era-panel-inset)));
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
/*
|
|
@@ -110,8 +110,8 @@
|
|
|
110
110
|
/*
|
|
111
111
|
* SMALL-BUTTON SINK — the depression, scaled to the keycap.
|
|
112
112
|
*
|
|
113
|
-
* The 1px content sink is tuned for a default (h-
|
|
114
|
-
* the box. On the h-
|
|
113
|
+
* The 1px content sink is tuned for a default (h-control) button, where it is ~4% of
|
|
114
|
+
* the box. On the h-icon tier — size="xs" and size="icon", the 14px squares a
|
|
115
115
|
* pane's close X is built from — that same 1px is ~7% of the box and the glyph,
|
|
116
116
|
* which fills the button, visibly drops too far on press. Half the sink
|
|
117
117
|
* (proportional: 14/24 ≈ 0.58, rounded to 0.5) puts the small keycap's travel
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
<Accordion.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) px-(--era-inset-control) text-body text-fg hover:bg-(--era-highlight) hover:shadow-(--era-highlight-shadow) focus:outline-none disabled:opacity-50',
|
|
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
|
</Accordion.Trigger>
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<AlertDialog.Content
|
|
16
16
|
bind:ref
|
|
17
17
|
class={cn(
|
|
18
|
-
'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 gap-(--era-gap) rounded-(--era-rd-
|
|
18
|
+
'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 gap-(--era-gap) rounded-(--era-rd-bar) border border-divider bg-(--era-surface-bg) p-(--era-pad-card) shadow-(--era-shadow-lg) glass-blur',
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
{...restProps}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<Avatar.Root
|
|
14
14
|
bind:ref
|
|
15
15
|
class={cn(
|
|
16
|
-
'inline-flex size-(--era-h-
|
|
16
|
+
'inline-flex size-(--era-h-control) shrink-0 items-center justify-center overflow-hidden rounded-full bg-(--era-surface-bg-elevated) text-fg shadow-(--era-shadow)',
|
|
17
17
|
className
|
|
18
18
|
)}
|
|
19
19
|
{...restProps}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
// that cost. A badge holding an icon must stay flex to lay the icon out
|
|
20
20
|
// beside the text, and keeps the general trim — its line-height:1 plus
|
|
21
21
|
// flex centring, which is the best available when the text is anonymous.
|
|
22
|
-
base: 'inline-flex h-(--era-h-
|
|
22
|
+
base: 'inline-flex h-(--era-h-pill) min-w-(--era-h-pill) shrink-0 items-center justify-center gap-(--era-gap) rounded-(--era-rd-pill) px-(--era-pill-px) font-mono text-body leading-none whitespace-nowrap has-[svg]:gap-(--era-inset-pill) era-text-trim not-has-[svg]:era-token-ink',
|
|
23
23
|
variants: {
|
|
24
24
|
tone: {
|
|
25
25
|
default: 'bg-fill text-fg',
|
|
@@ -6,7 +6,7 @@ export declare const badgeVariants: import("tailwind-variants").TVReturnType<{
|
|
|
6
6
|
success: "bg-success text-success-fg";
|
|
7
7
|
warning: "bg-warning text-warning-fg";
|
|
8
8
|
};
|
|
9
|
-
}, undefined, "inline-flex h-(--era-h-
|
|
9
|
+
}, undefined, "inline-flex h-(--era-h-pill) min-w-(--era-h-pill) shrink-0 items-center justify-center gap-(--era-gap) rounded-(--era-rd-pill) px-(--era-pill-px) font-mono text-body leading-none whitespace-nowrap has-[svg]:gap-(--era-inset-pill) era-text-trim not-has-[svg]:era-token-ink", {
|
|
10
10
|
tone: {
|
|
11
11
|
default: "bg-fill text-fg";
|
|
12
12
|
accent: "bg-primary text-primary-fg";
|
package/dist/ui/bar/bar.svelte
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
base: 'flex items-center era-text-trim',
|
|
14
14
|
variants: {
|
|
15
15
|
size: {
|
|
16
|
-
sm: 'h-(--era-h-
|
|
17
|
-
md: 'h-(--era-h-
|
|
18
|
-
lg: 'h-(--era-h-
|
|
16
|
+
sm: 'h-(--era-h-chip) rounded-(--era-rd-chip)',
|
|
17
|
+
md: 'h-(--era-h-control) rounded-(--era-rd-control)',
|
|
18
|
+
lg: 'h-(--era-h-bar) rounded-(--era-rd-bar)'
|
|
19
19
|
},
|
|
20
20
|
/**
|
|
21
21
|
* The tier of the CONTROLS inside, because that is what the bar's own
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
* had each restated the two-tier value by hand, and the geometry spec had
|
|
26
26
|
* been rewritten twice chasing which token they were restating.
|
|
27
27
|
*
|
|
28
|
-
* - `tier` (default) — one tier smaller, the pairing above.
|
|
29
|
-
* and
|
|
30
|
-
* - `
|
|
28
|
+
* - `tier` (default) — one tier smaller, the pairing above. chip⊃icon, control⊃chip
|
|
29
|
+
* and bar⊃control all equal sp/2, which is why one token covers every size.
|
|
30
|
+
* - `pill` — the compact pairing: pills and fields (a filter beside an
|
|
31
31
|
* xxs icon button, a title bar). Two tiers down, so the inset differs
|
|
32
32
|
* per size and comes from the compounds below.
|
|
33
33
|
*/
|
|
34
34
|
content: {
|
|
35
|
-
tier: 'gap-(--era-
|
|
35
|
+
tier: 'gap-(--era-icon-inset-chip) px-(--era-icon-inset-chip)',
|
|
36
36
|
xxs: ''
|
|
37
37
|
},
|
|
38
38
|
/**
|
|
@@ -54,18 +54,26 @@
|
|
|
54
54
|
* both. Collapses to flat in square mode like every radius.
|
|
55
55
|
*/
|
|
56
56
|
divider: {
|
|
57
|
-
true: 'shrink-0 rounded-t-none rounded-b-(--era-rd-
|
|
57
|
+
true: 'shrink-0 rounded-t-none rounded-b-(--era-rd-control) [box-shadow:0_1px_0_var(--color-divider-faded)]',
|
|
58
58
|
false: ''
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
compoundVariants: [
|
|
62
|
-
//
|
|
63
|
-
{
|
|
64
|
-
|
|
62
|
+
// control ⊃ pill = (3sp − sp − 10)/2 — the named token.
|
|
63
|
+
{
|
|
64
|
+
size: 'md',
|
|
65
|
+
content: 'xxs',
|
|
66
|
+
class: 'gap-(--era-pill-inset-control) px-(--era-pill-inset-control)'
|
|
67
|
+
},
|
|
68
|
+
// chip ⊃ pill — its own token, not the text inset it used to borrow. The two
|
|
65
69
|
// were the same number only while type was 14px at every density; dense's
|
|
66
|
-
// 12px broke the tie and left this pairing a pixel wide. (
|
|
70
|
+
// 12px broke the tie and left this pairing a pixel wide. (bar ⊃ pill has no
|
|
67
71
|
// token because nothing pairs a page header with pill-tier controls.)
|
|
68
|
-
{
|
|
72
|
+
{
|
|
73
|
+
size: 'sm',
|
|
74
|
+
content: 'xxs',
|
|
75
|
+
class: 'gap-(--era-pill-inset-chip) px-(--era-pill-inset-chip)'
|
|
76
|
+
}
|
|
69
77
|
],
|
|
70
78
|
defaultVariants: { size: 'lg', content: 'tier', divider: false }
|
|
71
79
|
});
|
|
@@ -89,8 +97,8 @@
|
|
|
89
97
|
size?: 'sm' | 'md' | 'lg';
|
|
90
98
|
/**
|
|
91
99
|
* Tier of the controls inside — drives the bar's padding and gap so they
|
|
92
|
-
* stay concentric to them. `tier` (default) is one tier smaller; `
|
|
93
|
-
* the compact pairing (
|
|
100
|
+
* stay concentric to them. `tier` (default) is one tier smaller; `pill` is
|
|
101
|
+
* the compact pairing (pills/fields in an sm or md bar).
|
|
94
102
|
*/
|
|
95
103
|
content?: 'tier' | 'xxs';
|
|
96
104
|
/** The flush cap-a-panel chrome: outset divider below, bottom rd-md. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const barVariants: import("tailwind-variants").TVReturnType<{
|
|
2
2
|
size: {
|
|
3
|
-
sm: "h-(--era-h-
|
|
4
|
-
md: "h-(--era-h-
|
|
5
|
-
lg: "h-(--era-h-
|
|
3
|
+
sm: "h-(--era-h-chip) rounded-(--era-rd-chip)";
|
|
4
|
+
md: "h-(--era-h-control) rounded-(--era-rd-control)";
|
|
5
|
+
lg: "h-(--era-h-bar) rounded-(--era-rd-bar)";
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
8
8
|
* The tier of the CONTROLS inside, because that is what the bar's own
|
|
@@ -12,14 +12,14 @@ export declare const barVariants: import("tailwind-variants").TVReturnType<{
|
|
|
12
12
|
* had each restated the two-tier value by hand, and the geometry spec had
|
|
13
13
|
* been rewritten twice chasing which token they were restating.
|
|
14
14
|
*
|
|
15
|
-
* - `tier` (default) — one tier smaller, the pairing above.
|
|
16
|
-
* and
|
|
17
|
-
* - `
|
|
15
|
+
* - `tier` (default) — one tier smaller, the pairing above. chip⊃icon, control⊃chip
|
|
16
|
+
* and bar⊃control all equal sp/2, which is why one token covers every size.
|
|
17
|
+
* - `pill` — the compact pairing: pills and fields (a filter beside an
|
|
18
18
|
* xxs icon button, a title bar). Two tiers down, so the inset differs
|
|
19
19
|
* per size and comes from the compounds below.
|
|
20
20
|
*/
|
|
21
21
|
content: {
|
|
22
|
-
tier: "gap-(--era-
|
|
22
|
+
tier: "gap-(--era-icon-inset-chip) px-(--era-icon-inset-chip)";
|
|
23
23
|
xxs: "";
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
@@ -41,14 +41,14 @@ export declare const barVariants: import("tailwind-variants").TVReturnType<{
|
|
|
41
41
|
* both. Collapses to flat in square mode like every radius.
|
|
42
42
|
*/
|
|
43
43
|
divider: {
|
|
44
|
-
true: "shrink-0 rounded-t-none rounded-b-(--era-rd-
|
|
44
|
+
true: "shrink-0 rounded-t-none rounded-b-(--era-rd-control) [box-shadow:0_1px_0_var(--color-divider-faded)]";
|
|
45
45
|
false: "";
|
|
46
46
|
};
|
|
47
47
|
}, undefined, "flex items-center era-text-trim", {
|
|
48
48
|
size: {
|
|
49
|
-
sm: "h-(--era-h-
|
|
50
|
-
md: "h-(--era-h-
|
|
51
|
-
lg: "h-(--era-h-
|
|
49
|
+
sm: "h-(--era-h-chip) rounded-(--era-rd-chip)";
|
|
50
|
+
md: "h-(--era-h-control) rounded-(--era-rd-control)";
|
|
51
|
+
lg: "h-(--era-h-bar) rounded-(--era-rd-bar)";
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
54
|
* The tier of the CONTROLS inside, because that is what the bar's own
|
|
@@ -58,14 +58,14 @@ export declare const barVariants: import("tailwind-variants").TVReturnType<{
|
|
|
58
58
|
* had each restated the two-tier value by hand, and the geometry spec had
|
|
59
59
|
* been rewritten twice chasing which token they were restating.
|
|
60
60
|
*
|
|
61
|
-
* - `tier` (default) — one tier smaller, the pairing above.
|
|
62
|
-
* and
|
|
63
|
-
* - `
|
|
61
|
+
* - `tier` (default) — one tier smaller, the pairing above. chip⊃icon, control⊃chip
|
|
62
|
+
* and bar⊃control all equal sp/2, which is why one token covers every size.
|
|
63
|
+
* - `pill` — the compact pairing: pills and fields (a filter beside an
|
|
64
64
|
* xxs icon button, a title bar). Two tiers down, so the inset differs
|
|
65
65
|
* per size and comes from the compounds below.
|
|
66
66
|
*/
|
|
67
67
|
content: {
|
|
68
|
-
tier: "gap-(--era-
|
|
68
|
+
tier: "gap-(--era-icon-inset-chip) px-(--era-icon-inset-chip)";
|
|
69
69
|
xxs: "";
|
|
70
70
|
};
|
|
71
71
|
/**
|
|
@@ -87,14 +87,14 @@ export declare const barVariants: import("tailwind-variants").TVReturnType<{
|
|
|
87
87
|
* both. Collapses to flat in square mode like every radius.
|
|
88
88
|
*/
|
|
89
89
|
divider: {
|
|
90
|
-
true: "shrink-0 rounded-t-none rounded-b-(--era-rd-
|
|
90
|
+
true: "shrink-0 rounded-t-none rounded-b-(--era-rd-control) [box-shadow:0_1px_0_var(--color-divider-faded)]";
|
|
91
91
|
false: "";
|
|
92
92
|
};
|
|
93
93
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
94
94
|
size: {
|
|
95
|
-
sm: "h-(--era-h-
|
|
96
|
-
md: "h-(--era-h-
|
|
97
|
-
lg: "h-(--era-h-
|
|
95
|
+
sm: "h-(--era-h-chip) rounded-(--era-rd-chip)";
|
|
96
|
+
md: "h-(--era-h-control) rounded-(--era-rd-control)";
|
|
97
|
+
lg: "h-(--era-h-bar) rounded-(--era-rd-bar)";
|
|
98
98
|
};
|
|
99
99
|
/**
|
|
100
100
|
* The tier of the CONTROLS inside, because that is what the bar's own
|
|
@@ -104,14 +104,14 @@ export declare const barVariants: import("tailwind-variants").TVReturnType<{
|
|
|
104
104
|
* had each restated the two-tier value by hand, and the geometry spec had
|
|
105
105
|
* been rewritten twice chasing which token they were restating.
|
|
106
106
|
*
|
|
107
|
-
* - `tier` (default) — one tier smaller, the pairing above.
|
|
108
|
-
* and
|
|
109
|
-
* - `
|
|
107
|
+
* - `tier` (default) — one tier smaller, the pairing above. chip⊃icon, control⊃chip
|
|
108
|
+
* and bar⊃control all equal sp/2, which is why one token covers every size.
|
|
109
|
+
* - `pill` — the compact pairing: pills and fields (a filter beside an
|
|
110
110
|
* xxs icon button, a title bar). Two tiers down, so the inset differs
|
|
111
111
|
* per size and comes from the compounds below.
|
|
112
112
|
*/
|
|
113
113
|
content: {
|
|
114
|
-
tier: "gap-(--era-
|
|
114
|
+
tier: "gap-(--era-icon-inset-chip) px-(--era-icon-inset-chip)";
|
|
115
115
|
xxs: "";
|
|
116
116
|
};
|
|
117
117
|
/**
|
|
@@ -133,7 +133,7 @@ export declare const barVariants: import("tailwind-variants").TVReturnType<{
|
|
|
133
133
|
* both. Collapses to flat in square mode like every radius.
|
|
134
134
|
*/
|
|
135
135
|
divider: {
|
|
136
|
-
true: "shrink-0 rounded-t-none rounded-b-(--era-rd-
|
|
136
|
+
true: "shrink-0 rounded-t-none rounded-b-(--era-rd-control) [box-shadow:0_1px_0_var(--color-divider-faded)]";
|
|
137
137
|
false: "";
|
|
138
138
|
};
|
|
139
139
|
}, undefined>>;
|
|
@@ -145,8 +145,8 @@ type $$ComponentProps = HTMLAttributes<HTMLDivElement> & {
|
|
|
145
145
|
size?: 'sm' | 'md' | 'lg';
|
|
146
146
|
/**
|
|
147
147
|
* Tier of the controls inside — drives the bar's padding and gap so they
|
|
148
|
-
* stay concentric to them. `tier` (default) is one tier smaller; `
|
|
149
|
-
* the compact pairing (
|
|
148
|
+
* stay concentric to them. `tier` (default) is one tier smaller; `pill` is
|
|
149
|
+
* the compact pairing (pills/fields in an sm or md bar).
|
|
150
150
|
*/
|
|
151
151
|
content?: 'tier' | 'xxs';
|
|
152
152
|
/** The flush cap-a-panel chrome: outset divider below, bottom rd-md. */
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
-->
|
|
73
73
|
<span data-button-content class="inline-flex items-center justify-center [gap:inherit]">
|
|
74
74
|
{#if loading}
|
|
75
|
-
<LoaderCircle class="size-(--era-h-
|
|
75
|
+
<LoaderCircle class="size-(--era-h-icon) shrink-0 animate-spin" aria-hidden="true" />
|
|
76
76
|
{#if loadingLabel}<span class="sr-only">{loadingLabel}</span>{/if}
|
|
77
77
|
{/if}
|
|
78
78
|
{@render children?.()}
|
|
@@ -25,27 +25,27 @@ export const buttonVariants = tv({
|
|
|
25
25
|
{
|
|
26
26
|
variant: 'filled',
|
|
27
27
|
size: 'default',
|
|
28
|
-
class: 'h-(--era-h-
|
|
28
|
+
class: 'h-(--era-h-control) min-w-(--era-h-control) rounded-(--era-rd-control)'
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
variant: 'filled',
|
|
32
32
|
size: 'sm',
|
|
33
|
-
class: 'h-(--era-h-
|
|
33
|
+
class: 'h-(--era-h-chip) min-w-(--era-h-chip) rounded-(--era-rd-chip)'
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
variant: 'filled',
|
|
37
37
|
size: 'xxs',
|
|
38
|
-
class: 'h-(--era-h-
|
|
38
|
+
class: 'h-(--era-h-pill) min-w-(--era-h-pill) rounded-(--era-rd-pill)'
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
variant: 'filled',
|
|
42
42
|
size: 'xs',
|
|
43
|
-
class: 'h-(--era-h-
|
|
43
|
+
class: 'h-(--era-h-icon) min-w-(--era-h-icon) rounded-(--era-rd-icon)'
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
variant: 'filled',
|
|
47
47
|
size: 'icon',
|
|
48
|
-
class: 'h-(--era-h-
|
|
48
|
+
class: 'h-(--era-h-icon) min-w-(--era-h-icon) rounded-(--era-rd-icon)'
|
|
49
49
|
},
|
|
50
50
|
// filled insets; icon buttons go square instead. When an icon is present,
|
|
51
51
|
// gap widens to match the wall inset so the icon sits in rhythm with it.
|
|
@@ -53,23 +53,23 @@ export const buttonVariants = tv({
|
|
|
53
53
|
variant: 'filled',
|
|
54
54
|
icon: false,
|
|
55
55
|
size: 'default',
|
|
56
|
-
class: 'px-(--era-inset-
|
|
56
|
+
class: 'px-(--era-inset-control) has-[svg]:gap-(--era-inset-control)'
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
variant: 'filled',
|
|
60
60
|
icon: false,
|
|
61
61
|
size: 'sm',
|
|
62
|
-
class: 'px-(--era-inset-
|
|
62
|
+
class: 'px-(--era-inset-chip) has-[svg]:gap-(--era-inset-chip)'
|
|
63
63
|
},
|
|
64
|
-
{ variant: 'filled', icon: false, size: 'xxs', class: 'px-(--era-pill-
|
|
65
|
-
{ variant: 'filled', icon: false, size: 'xs', class: 'px-(--era-
|
|
66
|
-
{ variant: 'filled', icon: false, size: 'icon', class: 'px-(--era-
|
|
64
|
+
{ variant: 'filled', icon: false, size: 'xxs', class: 'px-(--era-pill-px)' },
|
|
65
|
+
{ variant: 'filled', icon: false, size: 'xs', class: 'px-(--era-gap)' },
|
|
66
|
+
{ variant: 'filled', icon: false, size: 'icon', class: 'px-(--era-gap)' },
|
|
67
67
|
{ variant: 'filled', icon: true, class: 'aspect-square px-0' },
|
|
68
|
-
// Icon glyph sizing. The glyph is the icon tier (h-
|
|
68
|
+
// Icon glyph sizing. The glyph is the icon tier (h-icon) at default/sm —
|
|
69
69
|
// matching every text button's icon — but at the tight tiers, where the box
|
|
70
|
-
// itself nears h-
|
|
70
|
+
// itself nears h-icon, it steps below the legibility floor so it doesn't fill
|
|
71
71
|
// the box: sp+4 in xxs (pad 3), sp+2 in xs/icon (pad 2). Scoped to icon:true
|
|
72
|
-
// so text+icon buttons keep their h-
|
|
72
|
+
// so text+icon buttons keep their h-icon glyph. The descendant selector
|
|
73
73
|
// outranks the consumer's own size-* on the svg, so no call site changes.
|
|
74
74
|
//
|
|
75
75
|
// default/sm were DESCRIBED by the comment above but had no rule, so an
|
|
@@ -78,11 +78,11 @@ export const buttonVariants = tv({
|
|
|
78
78
|
// notes "new note" button rendered a 24px glyph in a 24px box — flush,
|
|
79
79
|
// no padding at all. Stating them makes the documented intent real and
|
|
80
80
|
// removes the dependency on every call site remembering.
|
|
81
|
-
{ icon: true, size: 'default', class: '[&_svg]:size-(--era-h-
|
|
82
|
-
{ icon: true, size: 'sm', class: '[&_svg]:size-(--era-h-
|
|
83
|
-
{ icon: true, size: 'xxs', class: '[&_svg]:size-(--era-
|
|
84
|
-
{ icon: true, size: 'xs', class: '[&_svg]:size-(--era-icon
|
|
85
|
-
{ icon: true, size: 'icon', class: '[&_svg]:size-(--era-icon
|
|
81
|
+
{ icon: true, size: 'default', class: '[&_svg]:size-(--era-h-icon)' },
|
|
82
|
+
{ icon: true, size: 'sm', class: '[&_svg]:size-(--era-h-icon)' },
|
|
83
|
+
{ icon: true, size: 'xxs', class: '[&_svg]:size-(--era-glyph-pill)' },
|
|
84
|
+
{ icon: true, size: 'xs', class: '[&_svg]:size-(--era-glyph-icon)' },
|
|
85
|
+
{ icon: true, size: 'icon', class: '[&_svg]:size-(--era-glyph-icon)' },
|
|
86
86
|
// filled tones
|
|
87
87
|
{
|
|
88
88
|
variant: 'filled',
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
// shrink-0: a segmented control is its buttons' width — Badge/Chip's law
|
|
23
23
|
// one tier up. Squeezed, its rounded fill slid out from under the end
|
|
24
24
|
// buttons (measured 4px at touch on the board).
|
|
25
|
-
'flex shrink-0 gap-(--era-
|
|
25
|
+
'flex shrink-0 gap-(--era-icon-inset-chip)',
|
|
26
26
|
orientation === 'vertical'
|
|
27
|
-
? 'flex-col items-stretch p-(--era-
|
|
27
|
+
? 'flex-col items-stretch p-(--era-icon-inset-chip) [&>*]:justify-start'
|
|
28
28
|
: 'items-center',
|
|
29
29
|
className
|
|
30
30
|
)}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<Calendar.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}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<Calendar.HeadCell
|
|
9
9
|
bind:ref
|
|
10
10
|
class={cn(
|
|
11
|
-
'flex size-(--era-h-
|
|
11
|
+
'flex size-(--era-h-control) items-center justify-center text-body font-normal text-muted',
|
|
12
12
|
className
|
|
13
13
|
)}
|
|
14
14
|
{...restProps}
|
package/dist/ui/card/card.svelte
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { cn, tv } from '../../utils/index.js';
|
|
3
3
|
|
|
4
4
|
export const cardVariants = tv({
|
|
5
|
-
base: 'block w-full rounded-(--era-rd-
|
|
5
|
+
base: 'block w-full rounded-(--era-rd-bar) text-left text-fg',
|
|
6
6
|
variants: {
|
|
7
7
|
tone: {
|
|
8
8
|
elevated: 'bg-(--era-surface-bg-elevated) shadow-(--era-shadow)',
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
// reported it as "cards aren't evenly spaced", which is exactly what it
|
|
32
32
|
// was: the even-gap law, broken by default, in the component that
|
|
33
33
|
// bounds more consumer content than any other.
|
|
34
|
-
sectioned: { true: 'p-0', false: 'p-(--era-pad-
|
|
34
|
+
sectioned: { true: 'p-0', false: 'p-(--era-pad-card)' },
|
|
35
35
|
interactive: {
|
|
36
36
|
true: 'cursor-pointer hover:bg-(--era-highlight) hover:shadow-(--era-highlight-shadow) focus-visible:bg-(--era-highlight) era-interactive aria-disabled:cursor-not-allowed aria-disabled:opacity-50'
|
|
37
37
|
}
|
|
@@ -113,15 +113,15 @@
|
|
|
113
113
|
{#snippet body()}
|
|
114
114
|
{#if sectioned}
|
|
115
115
|
{#if header}
|
|
116
|
-
<div class="border-b border-divider-faded p-(--era-pad-
|
|
116
|
+
<div class="border-b border-divider-faded p-(--era-pad-card) text-bright">
|
|
117
117
|
{@render header()}
|
|
118
118
|
</div>
|
|
119
119
|
{/if}
|
|
120
|
-
<div class="p-(--era-pad-
|
|
120
|
+
<div class="p-(--era-pad-card)">
|
|
121
121
|
{@render children?.()}
|
|
122
122
|
</div>
|
|
123
123
|
{#if footer}
|
|
124
|
-
<div class="border-t border-divider-faded p-(--era-pad-
|
|
124
|
+
<div class="border-t border-divider-faded p-(--era-pad-card)">
|
|
125
125
|
{@render footer()}
|
|
126
126
|
</div>
|
|
127
127
|
{/if}
|
|
@@ -7,12 +7,12 @@ export declare const cardVariants: import("tailwind-variants").TVReturnType<{
|
|
|
7
7
|
};
|
|
8
8
|
sectioned: {
|
|
9
9
|
true: "p-0";
|
|
10
|
-
false: "p-(--era-pad-
|
|
10
|
+
false: "p-(--era-pad-card)";
|
|
11
11
|
};
|
|
12
12
|
interactive: {
|
|
13
13
|
true: "cursor-pointer hover:bg-(--era-highlight) hover:shadow-(--era-highlight-shadow) focus-visible:bg-(--era-highlight) era-interactive aria-disabled:cursor-not-allowed aria-disabled:opacity-50";
|
|
14
14
|
};
|
|
15
|
-
}, undefined, "block w-full rounded-(--era-rd-
|
|
15
|
+
}, undefined, "block w-full rounded-(--era-rd-bar) text-left text-fg", {
|
|
16
16
|
tone: {
|
|
17
17
|
elevated: "bg-(--era-surface-bg-elevated) shadow-(--era-shadow)";
|
|
18
18
|
surface: "bg-(--era-surface-bg)";
|
|
@@ -21,7 +21,7 @@ export declare const cardVariants: import("tailwind-variants").TVReturnType<{
|
|
|
21
21
|
};
|
|
22
22
|
sectioned: {
|
|
23
23
|
true: "p-0";
|
|
24
|
-
false: "p-(--era-pad-
|
|
24
|
+
false: "p-(--era-pad-card)";
|
|
25
25
|
};
|
|
26
26
|
interactive: {
|
|
27
27
|
true: "cursor-pointer hover:bg-(--era-highlight) hover:shadow-(--era-highlight-shadow) focus-visible:bg-(--era-highlight) era-interactive aria-disabled:cursor-not-allowed aria-disabled:opacity-50";
|
|
@@ -35,7 +35,7 @@ export declare const cardVariants: import("tailwind-variants").TVReturnType<{
|
|
|
35
35
|
};
|
|
36
36
|
sectioned: {
|
|
37
37
|
true: "p-0";
|
|
38
|
-
false: "p-(--era-pad-
|
|
38
|
+
false: "p-(--era-pad-card)";
|
|
39
39
|
};
|
|
40
40
|
interactive: {
|
|
41
41
|
true: "cursor-pointer hover:bg-(--era-highlight) hover:shadow-(--era-highlight-shadow) focus-visible:bg-(--era-highlight) era-interactive aria-disabled:cursor-not-allowed aria-disabled:opacity-50";
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
bind:checked
|
|
19
19
|
bind:indeterminate
|
|
20
20
|
class={cn(
|
|
21
|
-
'group/checkbox flex size-(--era-h-
|
|
21
|
+
'group/checkbox flex size-(--era-h-icon) shrink-0 era-interactive cursor-pointer items-center justify-center rounded-(--era-rd-control) bg-(--era-surface-bg-elevated) shadow-(--era-shadow-well) hover:bg-(--era-highlight)',
|
|
22
22
|
className
|
|
23
23
|
)}
|
|
24
24
|
{...restProps}
|
|
25
25
|
>
|
|
26
26
|
{#snippet children({ checked, indeterminate })}
|
|
27
27
|
{#if indeterminate}
|
|
28
|
-
<Minus class="size-[calc(var(--era-h-
|
|
28
|
+
<Minus class="size-[calc(var(--era-h-icon)*0.75)] text-fg" />
|
|
29
29
|
{:else if checked}
|
|
30
|
-
<Check class="size-[calc(var(--era-h-
|
|
30
|
+
<Check class="size-[calc(var(--era-h-icon)*0.75)] text-fg" />
|
|
31
31
|
{/if}
|
|
32
32
|
{/snippet}
|
|
33
33
|
</Checkbox.Root>
|