@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
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
<Select.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 era-text-trim text-fg shadow-(--era-shadow) hover:bg-(--era-highlight) 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
|
</Select.Trigger>
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
the horizontal rhythm matches the vertical one.
|
|
52
52
|
-->
|
|
53
53
|
<div
|
|
54
|
-
class="-ml-(--era-inset-
|
|
54
|
+
class="-ml-(--era-inset-pill) flex min-w-0 flex-wrap items-center gap-(--era-pill-inset-control)"
|
|
55
55
|
>
|
|
56
56
|
{#each sel.selected as item (item.value)}
|
|
57
57
|
<Chip
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
* padded rd-lg surface is unchanged.
|
|
28
28
|
*/
|
|
29
29
|
header: {
|
|
30
|
-
true: '[--sheet-rd:var(--era-rd-
|
|
31
|
-
false: '[--sheet-rd:var(--era-rd-
|
|
30
|
+
true: '[--sheet-rd:var(--era-rd-control)]',
|
|
31
|
+
false: '[--sheet-rd:var(--era-rd-bar)] gap-(--era-gap) overflow-y-auto p-(--era-pad-card)'
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
defaultVariants: { side: 'bottom', header: false }
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
>
|
|
65
65
|
{#if header}
|
|
66
66
|
{@render header()}
|
|
67
|
-
<div class="flex min-h-0 flex-1 flex-col gap-(--era-gap) overflow-y-auto p-(--era-pad-
|
|
67
|
+
<div class="flex min-h-0 flex-1 flex-col gap-(--era-gap) overflow-y-auto p-(--era-pad-card)">
|
|
68
68
|
{@render children?.()}
|
|
69
69
|
</div>
|
|
70
70
|
{:else}
|
|
@@ -14,8 +14,8 @@ export declare const sheetVariants: import("tailwind-variants").TVReturnType<{
|
|
|
14
14
|
* padded rd-lg surface is unchanged.
|
|
15
15
|
*/
|
|
16
16
|
header: {
|
|
17
|
-
true: "[--sheet-rd:var(--era-rd-
|
|
18
|
-
false: "[--sheet-rd:var(--era-rd-
|
|
17
|
+
true: "[--sheet-rd:var(--era-rd-control)]";
|
|
18
|
+
false: "[--sheet-rd:var(--era-rd-bar)] gap-(--era-gap) overflow-y-auto p-(--era-pad-card)";
|
|
19
19
|
};
|
|
20
20
|
}, undefined, "fixed z-50 flex flex-col border border-divider bg-(--era-surface-bg) shadow-(--era-shadow-lg) glass-blur", {
|
|
21
21
|
side: {
|
|
@@ -32,8 +32,8 @@ export declare const sheetVariants: import("tailwind-variants").TVReturnType<{
|
|
|
32
32
|
* padded rd-lg surface is unchanged.
|
|
33
33
|
*/
|
|
34
34
|
header: {
|
|
35
|
-
true: "[--sheet-rd:var(--era-rd-
|
|
36
|
-
false: "[--sheet-rd:var(--era-rd-
|
|
35
|
+
true: "[--sheet-rd:var(--era-rd-control)]";
|
|
36
|
+
false: "[--sheet-rd:var(--era-rd-bar)] gap-(--era-gap) overflow-y-auto p-(--era-pad-card)";
|
|
37
37
|
};
|
|
38
38
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
39
39
|
side: {
|
|
@@ -50,8 +50,8 @@ export declare const sheetVariants: import("tailwind-variants").TVReturnType<{
|
|
|
50
50
|
* padded rd-lg surface is unchanged.
|
|
51
51
|
*/
|
|
52
52
|
header: {
|
|
53
|
-
true: "[--sheet-rd:var(--era-rd-
|
|
54
|
-
false: "[--sheet-rd:var(--era-rd-
|
|
53
|
+
true: "[--sheet-rd:var(--era-rd-control)]";
|
|
54
|
+
false: "[--sheet-rd:var(--era-rd-bar)] gap-(--era-gap) overflow-y-auto p-(--era-pad-card)";
|
|
55
55
|
};
|
|
56
56
|
}, undefined>>;
|
|
57
57
|
import type { Snippet } from 'svelte';
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
base: 'animate-[skeleton-pulse_2s_ease-in-out_infinite] bg-(--era-surface-bg-elevated)',
|
|
6
6
|
variants: {
|
|
7
7
|
variant: {
|
|
8
|
-
line: 'h-(--era-text) w-full rounded-(--era-rd-
|
|
9
|
-
circle: 'size-(--era-h-
|
|
10
|
-
block: 'h-24 w-full rounded-(--era-rd-
|
|
8
|
+
line: 'h-(--era-text) w-full rounded-(--era-rd-control)',
|
|
9
|
+
circle: 'size-(--era-h-bar) rounded-full',
|
|
10
|
+
block: 'h-24 w-full rounded-(--era-rd-control)'
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
defaultVariants: { variant: 'line' }
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
export declare const skeletonVariants: import("tailwind-variants").TVReturnType<{
|
|
2
2
|
variant: {
|
|
3
|
-
line: "h-(--era-text) w-full rounded-(--era-rd-
|
|
4
|
-
circle: "size-(--era-h-
|
|
5
|
-
block: "h-24 w-full rounded-(--era-rd-
|
|
3
|
+
line: "h-(--era-text) w-full rounded-(--era-rd-control)";
|
|
4
|
+
circle: "size-(--era-h-bar) rounded-full";
|
|
5
|
+
block: "h-24 w-full rounded-(--era-rd-control)";
|
|
6
6
|
};
|
|
7
7
|
}, undefined, "animate-[skeleton-pulse_2s_ease-in-out_infinite] bg-(--era-surface-bg-elevated)", {
|
|
8
8
|
variant: {
|
|
9
|
-
line: "h-(--era-text) w-full rounded-(--era-rd-
|
|
10
|
-
circle: "size-(--era-h-
|
|
11
|
-
block: "h-24 w-full rounded-(--era-rd-
|
|
9
|
+
line: "h-(--era-text) w-full rounded-(--era-rd-control)";
|
|
10
|
+
circle: "size-(--era-h-bar) rounded-full";
|
|
11
|
+
block: "h-24 w-full rounded-(--era-rd-control)";
|
|
12
12
|
};
|
|
13
13
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
14
14
|
variant: {
|
|
15
|
-
line: "h-(--era-text) w-full rounded-(--era-rd-
|
|
16
|
-
circle: "size-(--era-h-
|
|
17
|
-
block: "h-24 w-full rounded-(--era-rd-
|
|
15
|
+
line: "h-(--era-text) w-full rounded-(--era-rd-control)";
|
|
16
|
+
circle: "size-(--era-h-bar) rounded-full";
|
|
17
|
+
block: "h-24 w-full rounded-(--era-rd-control)";
|
|
18
18
|
};
|
|
19
19
|
}, undefined>>;
|
|
20
20
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
<span
|
|
27
27
|
class={cn(
|
|
28
|
-
'relative h-[calc(var(--era-sp)/2)] w-full grow cursor-pointer overflow-hidden rounded-(--era-rd-
|
|
28
|
+
'relative h-[calc(var(--era-sp)/2)] w-full grow cursor-pointer overflow-hidden rounded-(--era-rd-control) bg-(--era-surface-bg-elevated) shadow-(--era-shadow-well)',
|
|
29
29
|
trackClass
|
|
30
30
|
)}
|
|
31
31
|
>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<Slider.Thumb
|
|
9
9
|
bind:ref
|
|
10
10
|
class={cn(
|
|
11
|
-
"relative block size-(--era-h-
|
|
11
|
+
"relative block size-(--era-h-icon) cursor-pointer rounded-(--era-rd-icon) bg-fg shadow-(--era-shadow) transition-transform duration-(--era-duration) will-change-transform after:absolute after:inset-[-13px] after:content-[''] hover:scale-105 focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:scale-[0.96]",
|
|
12
12
|
className
|
|
13
13
|
)}
|
|
14
14
|
{...restProps}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<Collapsible.Content bind:ref class="era-collapse" {...restProps}>
|
|
18
18
|
<div
|
|
19
19
|
class={cn(
|
|
20
|
-
'mt-(--era-gap) mb-(--era-gap) flex min-w-0 flex-col gap-(--era-pad-
|
|
20
|
+
'mt-(--era-gap) mb-(--era-gap) flex min-w-0 flex-col gap-(--era-pad-panel) rounded-(--era-rd-control) bg-(--era-surface-bg) p-(--era-pad-panel) shadow-(--era-shadow-well)',
|
|
21
21
|
className
|
|
22
22
|
)}
|
|
23
23
|
>
|
|
@@ -26,19 +26,19 @@
|
|
|
26
26
|
<Collapsible.Trigger
|
|
27
27
|
bind:ref
|
|
28
28
|
class={cn(
|
|
29
|
-
'flex h-(--era-h-
|
|
29
|
+
'flex h-(--era-h-control) w-full min-w-0 era-interactive cursor-pointer items-center gap-(--era-gap) rounded-(--era-rd-control) px-(--era-inset-control) text-body era-text-trim text-muted transition-colors duration-(--era-duration) ease-(--era-ease) hover:text-fg',
|
|
30
30
|
className
|
|
31
31
|
)}
|
|
32
32
|
{...restProps}
|
|
33
33
|
>
|
|
34
34
|
{#if step.status === 'running'}
|
|
35
|
-
<LoaderCircle class="size-(--era-h-
|
|
35
|
+
<LoaderCircle class="size-(--era-h-icon) shrink-0 animate-spin" aria-hidden="true" />
|
|
36
36
|
{:else if step.status === 'done'}
|
|
37
|
-
<CircleCheck class="size-(--era-h-
|
|
37
|
+
<CircleCheck class="size-(--era-h-icon) shrink-0 text-success" aria-hidden="true" />
|
|
38
38
|
{:else if step.status === 'error'}
|
|
39
|
-
<CircleX class="size-(--era-h-
|
|
39
|
+
<CircleX class="size-(--era-h-icon) shrink-0 text-destructive" aria-hidden="true" />
|
|
40
40
|
{:else}
|
|
41
|
-
<CircleDashed class="size-(--era-h-
|
|
41
|
+
<CircleDashed class="size-(--era-h-icon) shrink-0" aria-hidden="true" />
|
|
42
42
|
{/if}
|
|
43
43
|
<span
|
|
44
44
|
class={cn(
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
{@render children?.()}
|
|
50
50
|
</span>
|
|
51
51
|
<ChevronDown
|
|
52
|
-
class="size-(--era-h-
|
|
52
|
+
class="size-(--era-h-icon) shrink-0 transition-transform duration-(--era-duration) ease-(--era-ease) group-data-[state=open]/step:rotate-180"
|
|
53
53
|
aria-hidden="true"
|
|
54
54
|
/>
|
|
55
55
|
</Collapsible.Trigger>
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
// "activated" — rather than --color-hover, which is calibrated for
|
|
22
22
|
// transient list-hover feedback, not a persistent on/off signal.
|
|
23
23
|
// justify-center is load-bearing, not cosmetic: it lets the thumb travel
|
|
24
|
-
// be expressed as ±h-
|
|
24
|
+
// be expressed as ±h-icon/2 about the CONTENT-box centre, which absorbs the
|
|
25
25
|
// 1px border on both sides automatically — exactly how items-center
|
|
26
26
|
// already gets the vertical gap right. Offsetting from the content-box
|
|
27
27
|
// ORIGIN instead (translate-x = xs-inset-sm) silently adds the border to
|
|
28
28
|
// the left gap and subtracts it from the right, so the thumb rests 1px
|
|
29
29
|
// too far right in both states and the two ends differ by 2px.
|
|
30
|
-
'inline-flex h-(--era-h-
|
|
30
|
+
'inline-flex h-(--era-h-chip) w-[calc(var(--era-h-chip)+var(--era-h-icon))] shrink-0 era-interactive cursor-pointer items-center justify-center rounded-(--era-rd-chip) border border-divider bg-(--era-surface-bg-elevated) shadow-(--era-shadow-well) hover:bg-(--era-highlight) data-[state=checked]:bg-fg',
|
|
31
31
|
className
|
|
32
32
|
)}
|
|
33
33
|
{...restProps}
|
|
@@ -38,6 +38,6 @@
|
|
|
38
38
|
vs bevel track-slide) scopes a rule to its own surface — see the
|
|
39
39
|
surface-animation recipe in surfaces/base.css. -->
|
|
40
40
|
<Switch.Thumb
|
|
41
|
-
class="pointer-events-none block size-(--era-h-
|
|
41
|
+
class="pointer-events-none block size-(--era-h-icon) -translate-x-[calc(var(--era-h-icon)/2)] rounded-(--era-rd-icon) bg-fg transition-transform duration-(--era-duration) ease-(--era-ease) data-[state=checked]:translate-x-[calc(var(--era-h-icon)/2)] data-[state=checked]:bg-2"
|
|
42
42
|
/>
|
|
43
43
|
</Switch.Root>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<td
|
|
18
18
|
bind:this={ref}
|
|
19
19
|
class={cn(
|
|
20
|
-
'h-(--era-h-
|
|
20
|
+
'h-(--era-h-control) px-(--era-inset-control) text-left align-middle [table[data-variant=cells]_&]:rounded-(--era-rd-chip) [table[data-variant=cells]_&]:bg-(--era-surface-bg-elevated) [table[data-variant=cells]_&]:px-(--era-inset-chip) [table[data-variant=cells]_&]:shadow-(--era-shadow)',
|
|
21
21
|
className
|
|
22
22
|
)}
|
|
23
23
|
{...restProps}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<th
|
|
18
18
|
bind:this={ref}
|
|
19
19
|
class={cn(
|
|
20
|
-
'h-(--era-h-
|
|
20
|
+
'h-(--era-h-control) px-(--era-inset-control) text-left align-middle font-medium text-muted [table[data-variant=cells]_&]:rounded-(--era-rd-chip) [table[data-variant=cells]_&]:bg-fill [table[data-variant=cells]_&]:px-(--era-inset-chip) [table[data-variant=cells]_&]:text-bright [table[data-variant=cells]_&]:shadow-(--era-shadow)',
|
|
21
21
|
className
|
|
22
22
|
)}
|
|
23
23
|
{...restProps}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<TimeField.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}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<TimeRangeField.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}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<ToggleGroup.Item
|
|
11
11
|
bind:ref
|
|
12
12
|
class={cn(
|
|
13
|
-
'inline-flex h-(--era-h-
|
|
13
|
+
'inline-flex h-(--era-h-control) min-w-(--era-h-control) items-center justify-center rounded-(--era-rd-control) px-(--era-inset-control) text-body text-fg shadow-(--era-shadow) hover:bg-(--era-highlight) hover:shadow-(--era-highlight-shadow) focus:outline-none active:shadow-(--era-shadow-pressed) disabled:opacity-50 data-[state=on]:bg-fill data-[state=on]:text-bright data-[state=on]:shadow-(--era-shadow-pressed)',
|
|
14
14
|
className
|
|
15
15
|
)}
|
|
16
16
|
{...restProps}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<Tooltip.Content
|
|
16
16
|
bind:ref
|
|
17
17
|
class={cn(
|
|
18
|
-
'z-50 inline-flex h-(--era-h-
|
|
18
|
+
'z-50 inline-flex h-(--era-h-pill) items-center gap-(--era-gap) rounded-(--era-rd-pill) bg-(--era-surface-bg-elevated) px-(--era-inset-pill) text-body leading-none whitespace-nowrap text-fg shadow-(--era-shadow-lg) glass-blur has-[svg]:gap-(--era-inset-pill)',
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
{sideOffset}
|
|
@@ -814,7 +814,7 @@
|
|
|
814
814
|
volumeOrientation === 'vertical' ? 'vertical' : 'horizontal'
|
|
815
815
|
);
|
|
816
816
|
// In vertical mode the popup is anchored to the mute icon — same width
|
|
817
|
-
// (h-
|
|
817
|
+
// (h-control), shared bg, rounded top + flat bottom — so it reads as the icon
|
|
818
818
|
// extending upward (vidstack has no native API for this). The sleeve's
|
|
819
819
|
// box runs all the way down to the button (`bottom-full`, no offset) so
|
|
820
820
|
// the cursor crossing the visual gap stays inside the cluster's hover
|
|
@@ -828,16 +828,16 @@
|
|
|
828
828
|
// against the mute button below. Visibility is in the scoped style block.
|
|
829
829
|
const volumeSleeveClass = $derived(
|
|
830
830
|
resolvedVolumeOrientation === 'vertical'
|
|
831
|
-
? 'absolute bottom-full left-1/2 z-20 h-[calc(var(--era-h-
|
|
832
|
-
: 'relative h-(--era-h-
|
|
831
|
+
? 'absolute bottom-full left-1/2 z-20 h-[calc(var(--era-h-bar)*3)] w-(--era-h-control) -translate-x-1/2 rounded-t-(--era-rd-control) bg-hover shadow-(--era-shadow) glass-blur'
|
|
832
|
+
: 'relative h-(--era-h-chip) w-[calc(var(--era-h-control)*3)]'
|
|
833
833
|
);
|
|
834
834
|
// Slider IS the visible track. Range and Thumb (both bg-fg) live inside
|
|
835
835
|
// and blend into one filled column.
|
|
836
836
|
const volumeSliderClass = $derived(
|
|
837
|
-
`absolute touch-none select-none overflow-hidden rounded-(--era-rd-
|
|
837
|
+
`absolute touch-none select-none overflow-hidden rounded-(--era-rd-icon) bg-3 shadow-(--era-shadow) focus:outline-none ${
|
|
838
838
|
resolvedVolumeOrientation === 'vertical'
|
|
839
|
-
? 'top-(--era-gap) bottom-(--era-gap) left-1/2 w-(--era-h-
|
|
840
|
-
: 'inset-x-(--era-
|
|
839
|
+
? 'top-(--era-gap) bottom-(--era-gap) left-1/2 w-(--era-h-icon) -translate-x-1/2'
|
|
840
|
+
: 'inset-x-(--era-icon-inset-chip) top-1/2 h-(--era-h-icon) -translate-y-1/2'
|
|
841
841
|
}`
|
|
842
842
|
);
|
|
843
843
|
// Bits-ui's slider needs a thumb element to handle pointer events, but
|
|
@@ -871,7 +871,7 @@
|
|
|
871
871
|
<media-player
|
|
872
872
|
bind:this={ref}
|
|
873
873
|
class={cn(
|
|
874
|
-
'relative block w-full overflow-hidden [border-radius:calc(var(--era-rd-
|
|
874
|
+
'relative block w-full overflow-hidden [border-radius:calc(var(--era-rd-bar)+var(--era-gap))] bg-black',
|
|
875
875
|
className
|
|
876
876
|
)}
|
|
877
877
|
{src}
|
|
@@ -959,7 +959,7 @@
|
|
|
959
959
|
aria-hidden="true"
|
|
960
960
|
class="pointer-events-none absolute inset-0 z-10 flex items-center justify-center"
|
|
961
961
|
>
|
|
962
|
-
<LoaderCircle class="size-(--era-h-
|
|
962
|
+
<LoaderCircle class="size-(--era-h-bar) animate-spin text-fg" />
|
|
963
963
|
</span>
|
|
964
964
|
{/if}
|
|
965
965
|
|
|
@@ -974,18 +974,18 @@
|
|
|
974
974
|
aria-label={`Back ${skipBy} seconds`}
|
|
975
975
|
onclick={(e: MouseEvent) => seekBy(-skipBy, e)}
|
|
976
976
|
>
|
|
977
|
-
<Rewind class="size-(--era-h-
|
|
977
|
+
<Rewind class="size-(--era-h-icon)" aria-hidden="true" />
|
|
978
978
|
</Button>
|
|
979
979
|
{/if}
|
|
980
980
|
|
|
981
981
|
{#if showPlay && !mobileMode}
|
|
982
982
|
<Button icon aria-label={playLabel} onclick={togglePlay}>
|
|
983
983
|
{#if ended}
|
|
984
|
-
<RotateCcw class="size-(--era-h-
|
|
984
|
+
<RotateCcw class="size-(--era-h-icon)" aria-hidden="true" />
|
|
985
985
|
{:else if paused}
|
|
986
|
-
<Play class="size-(--era-h-
|
|
986
|
+
<Play class="size-(--era-h-icon)" aria-hidden="true" />
|
|
987
987
|
{:else}
|
|
988
|
-
<Pause class="size-(--era-h-
|
|
988
|
+
<Pause class="size-(--era-h-icon)" aria-hidden="true" />
|
|
989
989
|
{/if}
|
|
990
990
|
</Button>
|
|
991
991
|
{/if}
|
|
@@ -996,7 +996,7 @@
|
|
|
996
996
|
aria-label={`Forward ${skipBy} seconds`}
|
|
997
997
|
onclick={(e: MouseEvent) => seekBy(skipBy, e)}
|
|
998
998
|
>
|
|
999
|
-
<FastForward class="size-(--era-h-
|
|
999
|
+
<FastForward class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1000
1000
|
</Button>
|
|
1001
1001
|
{/if}
|
|
1002
1002
|
|
|
@@ -1016,7 +1016,7 @@
|
|
|
1016
1016
|
aria-valuenow={seekAriaValue}
|
|
1017
1017
|
aria-valuetext={seekValueText}
|
|
1018
1018
|
aria-disabled={seekDisabled}
|
|
1019
|
-
class="relative h-(--era-h-
|
|
1019
|
+
class="relative h-(--era-h-chip) min-w-0 flex-1 touch-none select-none focus:outline-none focus-visible:outline focus-visible:outline-offset-2 focus-visible:outline-fg data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50"
|
|
1020
1020
|
style="--era-video-played-scale: 0; --era-video-buffered-scale: 0; --era-video-hover-pct: 0%;"
|
|
1021
1021
|
data-seek-root
|
|
1022
1022
|
data-disabled={seekDisabled}
|
|
@@ -1030,10 +1030,10 @@
|
|
|
1030
1030
|
>
|
|
1031
1031
|
<span
|
|
1032
1032
|
aria-hidden="true"
|
|
1033
|
-
class="pointer-events-none absolute inset-0 rounded-(--era-rd-
|
|
1033
|
+
class="pointer-events-none absolute inset-0 rounded-(--era-rd-chip)"
|
|
1034
1034
|
>
|
|
1035
1035
|
<span
|
|
1036
|
-
class="absolute inset-(--era-
|
|
1036
|
+
class="absolute inset-(--era-icon-inset-chip) overflow-hidden rounded-(--era-rd-icon) bg-3 shadow-(--era-shadow)"
|
|
1037
1037
|
>
|
|
1038
1038
|
<span
|
|
1039
1039
|
class="absolute inset-y-0 left-0 w-full origin-left scale-x-(--era-video-buffered-scale) bg-4"
|
|
@@ -1054,14 +1054,14 @@
|
|
|
1054
1054
|
{#if seekPreviewVisible}
|
|
1055
1055
|
<!--
|
|
1056
1056
|
Anchored to the seek-timeline div, but the timeline sits
|
|
1057
|
-
centered inside the taller Bar (h-
|
|
1057
|
+
centered inside the taller Bar (h-bar around h-chip). To
|
|
1058
1058
|
keep a `--era-gap`-sized clearance above the visible Bar
|
|
1059
1059
|
surface — not just above the timeline div's top — we
|
|
1060
1060
|
add half the bar/timeline height delta to the offset.
|
|
1061
1061
|
-->
|
|
1062
1062
|
<span
|
|
1063
1063
|
aria-hidden="true"
|
|
1064
|
-
class="pointer-events-none absolute bottom-[calc(100%+(var(--era-h-
|
|
1064
|
+
class="pointer-events-none absolute bottom-[calc(100%+(var(--era-h-bar)-var(--era-h-chip))/2+var(--era-gap))] left-(--era-video-hover-pct) inline-flex h-(--era-h-pill) -translate-x-1/2 items-center gap-(--era-gap) rounded-(--era-rd-pill) bg-(--era-surface-bg-elevated) px-(--era-inset-pill) font-mono text-body leading-none whitespace-nowrap text-fg shadow-(--era-shadow-lg) glass-blur"
|
|
1065
1065
|
>
|
|
1066
1066
|
<span class="tabular-nums">{hoverTimeLabel}</span>
|
|
1067
1067
|
{#if hoverChapter}
|
|
@@ -1089,11 +1089,11 @@
|
|
|
1089
1089
|
onclick={(e: MouseEvent) => remote.toggleMuted(e)}
|
|
1090
1090
|
>
|
|
1091
1091
|
{#if mutedState || volumeState === 0}
|
|
1092
|
-
<VolumeX class="size-(--era-h-
|
|
1092
|
+
<VolumeX class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1093
1093
|
{:else if volumeState < 0.5}
|
|
1094
|
-
<Volume1 class="size-(--era-h-
|
|
1094
|
+
<Volume1 class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1095
1095
|
{:else}
|
|
1096
|
-
<Volume2 class="size-(--era-h-
|
|
1096
|
+
<Volume2 class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1097
1097
|
{/if}
|
|
1098
1098
|
</Button>
|
|
1099
1099
|
|
|
@@ -1133,7 +1133,7 @@
|
|
|
1133
1133
|
<BitsDropdownMenu.Trigger>
|
|
1134
1134
|
{#snippet child({ props })}
|
|
1135
1135
|
<Button icon aria-label="Playback speed" {...props}>
|
|
1136
|
-
<Gauge class="size-(--era-h-
|
|
1136
|
+
<Gauge class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1137
1137
|
</Button>
|
|
1138
1138
|
{/snippet}
|
|
1139
1139
|
</BitsDropdownMenu.Trigger>
|
|
@@ -1147,7 +1147,7 @@
|
|
|
1147
1147
|
{#snippet children({ checked })}
|
|
1148
1148
|
<span>{r === 1 ? 'Normal' : `${r}x`}</span>
|
|
1149
1149
|
{#if checked}
|
|
1150
|
-
<Check class="ml-auto size-(--era-h-
|
|
1150
|
+
<Check class="ml-auto size-(--era-h-icon) text-muted" aria-hidden="true" />
|
|
1151
1151
|
{/if}
|
|
1152
1152
|
{/snippet}
|
|
1153
1153
|
</DropdownMenu.RadioItem>
|
|
@@ -1167,7 +1167,7 @@
|
|
|
1167
1167
|
<BitsDropdownMenu.Trigger>
|
|
1168
1168
|
{#snippet child({ props })}
|
|
1169
1169
|
<Button icon aria-label="Quality" {...props}>
|
|
1170
|
-
<Settings class="size-(--era-h-
|
|
1170
|
+
<Settings class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1171
1171
|
</Button>
|
|
1172
1172
|
{/snippet}
|
|
1173
1173
|
</BitsDropdownMenu.Trigger>
|
|
@@ -1180,7 +1180,7 @@
|
|
|
1180
1180
|
{#snippet children({ checked })}
|
|
1181
1181
|
<span>Auto</span>
|
|
1182
1182
|
{#if checked}
|
|
1183
|
-
<Check class="ml-auto size-(--era-h-
|
|
1183
|
+
<Check class="ml-auto size-(--era-h-icon) text-muted" aria-hidden="true" />
|
|
1184
1184
|
{/if}
|
|
1185
1185
|
{/snippet}
|
|
1186
1186
|
</DropdownMenu.RadioItem>
|
|
@@ -1189,7 +1189,7 @@
|
|
|
1189
1189
|
{#snippet children({ checked })}
|
|
1190
1190
|
<span>{q.height}p</span>
|
|
1191
1191
|
{#if checked}
|
|
1192
|
-
<Check class="ml-auto size-(--era-h-
|
|
1192
|
+
<Check class="ml-auto size-(--era-h-icon) text-muted" aria-hidden="true" />
|
|
1193
1193
|
{/if}
|
|
1194
1194
|
{/snippet}
|
|
1195
1195
|
</DropdownMenu.RadioItem>
|
|
@@ -1206,9 +1206,9 @@
|
|
|
1206
1206
|
onclick={(e: MouseEvent) => remote.togglePictureInPicture(e)}
|
|
1207
1207
|
>
|
|
1208
1208
|
{#if pipState}
|
|
1209
|
-
<PictureInPicture2 class="size-(--era-h-
|
|
1209
|
+
<PictureInPicture2 class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1210
1210
|
{:else}
|
|
1211
|
-
<PictureInPicture class="size-(--era-h-
|
|
1211
|
+
<PictureInPicture class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1212
1212
|
{/if}
|
|
1213
1213
|
</Button>
|
|
1214
1214
|
{/if}
|
|
@@ -1220,9 +1220,9 @@
|
|
|
1220
1220
|
onclick={(e: MouseEvent) => remote.toggleFullscreen(FULLSCREEN_TARGET, e)}
|
|
1221
1221
|
>
|
|
1222
1222
|
{#if fullscreenState}
|
|
1223
|
-
<Minimize class="size-(--era-h-
|
|
1223
|
+
<Minimize class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1224
1224
|
{:else}
|
|
1225
|
-
<Maximize class="size-(--era-h-
|
|
1225
|
+
<Maximize class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1226
1226
|
{/if}
|
|
1227
1227
|
</Button>
|
|
1228
1228
|
{/if}
|
|
@@ -1246,11 +1246,11 @@
|
|
|
1246
1246
|
<ContextMenu.Content onOpenAutoFocus={(e: Event) => e.preventDefault()}>
|
|
1247
1247
|
<ContextMenu.Item onSelect={togglePlay}>
|
|
1248
1248
|
{#if ended}
|
|
1249
|
-
<RotateCcw class="size-(--era-h-
|
|
1249
|
+
<RotateCcw class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1250
1250
|
{:else if paused}
|
|
1251
|
-
<Play class="size-(--era-h-
|
|
1251
|
+
<Play class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1252
1252
|
{:else}
|
|
1253
|
-
<Pause class="size-(--era-h-
|
|
1253
|
+
<Pause class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1254
1254
|
{/if}
|
|
1255
1255
|
<span>{playLabel}</span>
|
|
1256
1256
|
</ContextMenu.Item>
|
|
@@ -1258,11 +1258,11 @@
|
|
|
1258
1258
|
{#if showVolume && !mobileMode}
|
|
1259
1259
|
<ContextMenu.Item onSelect={(e: Event) => remote.toggleMuted(e)}>
|
|
1260
1260
|
{#if mutedState || volumeState === 0}
|
|
1261
|
-
<VolumeX class="size-(--era-h-
|
|
1261
|
+
<VolumeX class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1262
1262
|
{:else if volumeState < 0.5}
|
|
1263
|
-
<Volume1 class="size-(--era-h-
|
|
1263
|
+
<Volume1 class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1264
1264
|
{:else}
|
|
1265
|
-
<Volume2 class="size-(--era-h-
|
|
1265
|
+
<Volume2 class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1266
1266
|
{/if}
|
|
1267
1267
|
<span>{muteLabel}</span>
|
|
1268
1268
|
</ContextMenu.Item>
|
|
@@ -1271,7 +1271,7 @@
|
|
|
1271
1271
|
{#if showSpeed && !mobileMode}
|
|
1272
1272
|
<ContextMenu.Sub>
|
|
1273
1273
|
<ContextMenu.SubTrigger>
|
|
1274
|
-
<Gauge class="size-(--era-h-
|
|
1274
|
+
<Gauge class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1275
1275
|
<span class="flex-1">Speed</span>
|
|
1276
1276
|
<span class="ml-auto pl-(--era-gap) text-muted">
|
|
1277
1277
|
{rateState === 1 ? '1x' : `${rateState}x`}
|
|
@@ -1295,7 +1295,7 @@
|
|
|
1295
1295
|
{#if showQualityMenu && !mobileMode}
|
|
1296
1296
|
<ContextMenu.Sub>
|
|
1297
1297
|
<ContextMenu.SubTrigger>
|
|
1298
|
-
<Settings class="size-(--era-h-
|
|
1298
|
+
<Settings class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1299
1299
|
<span class="flex-1">Quality</span>
|
|
1300
1300
|
<span class="ml-auto pl-(--era-gap) text-muted">{qualityHint}</span>
|
|
1301
1301
|
</ContextMenu.SubTrigger>
|
|
@@ -1316,9 +1316,9 @@
|
|
|
1316
1316
|
{#if showPip && canEnterPip && !mobileMode}
|
|
1317
1317
|
<ContextMenu.Item onSelect={(e: Event) => remote.togglePictureInPicture(e)}>
|
|
1318
1318
|
{#if pipState}
|
|
1319
|
-
<PictureInPicture2 class="size-(--era-h-
|
|
1319
|
+
<PictureInPicture2 class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1320
1320
|
{:else}
|
|
1321
|
-
<PictureInPicture class="size-(--era-h-
|
|
1321
|
+
<PictureInPicture class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1322
1322
|
{/if}
|
|
1323
1323
|
<span>{pipState ? 'Exit picture-in-picture' : 'Picture-in-picture'}</span>
|
|
1324
1324
|
</ContextMenu.Item>
|
|
@@ -1327,9 +1327,9 @@
|
|
|
1327
1327
|
{#if canEnterFullscreen}
|
|
1328
1328
|
<ContextMenu.Item onSelect={(e: Event) => remote.toggleFullscreen(FULLSCREEN_TARGET, e)}>
|
|
1329
1329
|
{#if fullscreenState}
|
|
1330
|
-
<Minimize class="size-(--era-h-
|
|
1330
|
+
<Minimize class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1331
1331
|
{:else}
|
|
1332
|
-
<Maximize class="size-(--era-h-
|
|
1332
|
+
<Maximize class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1333
1333
|
{/if}
|
|
1334
1334
|
<span>{fullscreenState ? 'Exit fullscreen' : 'Fullscreen'}</span>
|
|
1335
1335
|
</ContextMenu.Item>
|
|
@@ -1338,7 +1338,7 @@
|
|
|
1338
1338
|
<ContextMenu.Separator />
|
|
1339
1339
|
|
|
1340
1340
|
<ContextMenu.Item onSelect={downloadVideo}>
|
|
1341
|
-
<Download class="size-(--era-h-
|
|
1341
|
+
<Download class="size-(--era-h-icon)" aria-hidden="true" />
|
|
1342
1342
|
<span>Download video</span>
|
|
1343
1343
|
</ContextMenu.Item>
|
|
1344
1344
|
</ContextMenu.Content>
|
|
@@ -1361,7 +1361,7 @@
|
|
|
1361
1361
|
bits-ui slider thumb is being dragged (its `data-active` is set on
|
|
1362
1362
|
pointerdown and cleared on pointerup, even if the cursor strays
|
|
1363
1363
|
outside the cluster). Plain CSS rather than Tailwind variants on the
|
|
1364
|
-
button sidesteps cascade ambiguity with `rounded-(--era-rd-
|
|
1364
|
+
button sidesteps cascade ambiguity with `rounded-(--era-rd-control)`. */
|
|
1365
1365
|
:global([data-volume-cluster] [data-volume-sleeve]) {
|
|
1366
1366
|
visibility: hidden;
|
|
1367
1367
|
}
|
package/dist/utils/index.js
CHANGED
|
@@ -5,11 +5,11 @@ import { createTV } from 'tailwind-variants';
|
|
|
5
5
|
// so it must conflict-resolve against the backdrop-blur group. text-body is
|
|
6
6
|
// a registered font-size token — without this it would be misread as a color.
|
|
7
7
|
// The rest teaches tailwind-merge era's named class API (styles/index.css):
|
|
8
|
-
// values it can't know about (h-
|
|
9
|
-
// must land in their real class groups, or a consumer's `class="h-
|
|
10
|
-
// fail to replace a component's h-(--era-h-
|
|
8
|
+
// values it can't know about (h-control, px-inset-control, gap-gutter, shadow-well, …)
|
|
9
|
+
// must land in their real class groups, or a consumer's `class="h-bar"` would
|
|
10
|
+
// fail to replace a component's h-(--era-h-control) and both would apply.
|
|
11
11
|
// Colors (bg-elevated, bg-highlight, …) need no entry — the bg group already
|
|
12
|
-
// accepts any name. rounded-
|
|
12
|
+
// accepts any name. rounded-icon/sm/md/lg and bare shadow/shadow-lg are stock
|
|
13
13
|
// names tailwind-merge knows; only era's additions to those scales are listed.
|
|
14
14
|
const TIERS = ['xs', 'xxs', 'sm', 'md', 'lg'];
|
|
15
15
|
const INSETS = ['inset-xxs', 'inset-sm', 'inset-md'];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signal9/era-ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "vite dev --host",
|
|
6
6
|
"build": "vite build && npm run prepack",
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
},
|
|
80
80
|
"./styles": "./dist/styles/index.css",
|
|
81
81
|
"./styles/video-player": "./dist/styles/video-player.css",
|
|
82
|
+
"./styles/prose": "./dist/styles/prose.css",
|
|
82
83
|
"./styles/themes": "./dist/styles/themes.css",
|
|
83
84
|
"./css": "./dist/era-ui.css",
|
|
84
85
|
"./utilities.json": "./dist/generated-docs/utilities.json",
|