@signal9/era-ui 4.15.0 → 4.15.2

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.
@@ -14,7 +14,7 @@
14
14
  <Select.Content
15
15
  bind:ref
16
16
  align="start"
17
- // p-gutter, not p-(--era-panel-inset): the inset is SURFACE-owned and resolves
17
+ // p-(--era-panel-inset), not p-(--era-panel-inset): the inset is SURFACE-owned and resolves
18
18
  // to 0 on flat, so a menu there sat its rows flush against its own edges —
19
19
  // the highlight ran edge to edge and the panel read as a list with no frame.
20
20
  // The gutter is --era-gap, the same distance that separates the rows from
@@ -22,8 +22,13 @@
22
22
  // conversations rail already documents). It is >= the panel inset at every
23
23
  // density, so glass and bevel keep the frame protection the inset exists
24
24
  // for.
25
+ // p-(--era-panel-inset), SURFACE-owned on purpose: 0 on flat — rows run the
26
+ // panel's full width, flush, and the first row sits directly under the
27
+ // anchor bar (the reference terminal look) — while glass and bevel keep the
28
+ // 2px frame that stops a full-width highlight from breaking their chrome.
29
+ // A fixed gutter was tried here and rejected: it padded flat menus too.
25
30
  class={cn(
26
- 'z-50 w-max min-w-(--bits-select-anchor-width) overflow-hidden rounded-(--era-rd-md) bg-(--era-surface-bg-elevated) p-gutter shadow-(--era-shadow-lg) glass-blur data-[side=bottom]:rounded-t-none data-[side=top]:rounded-b-none',
31
+ 'z-50 w-max min-w-(--bits-select-anchor-width) overflow-hidden rounded-(--era-rd-md) bg-(--era-surface-bg-elevated) p-(--era-panel-inset) shadow-(--era-shadow-lg) glass-blur data-[side=bottom]:rounded-t-none data-[side=top]:rounded-b-none',
27
32
  className
28
33
  )}
29
34
  {sideOffset}
@@ -9,11 +9,15 @@
9
9
  export const sheetVariants = tv({
10
10
  base: 'fixed z-50 flex flex-col border border-divider bg-(--era-surface-bg) shadow-(--era-shadow-lg) glass-blur',
11
11
  variants: {
12
+ // The two axes meet at the corners: the SIDE picks which corners are
13
+ // detached from the screen edge, the HEADER picks their radius. Stated
14
+ // once each — the side rounds a variable (--sheet-rd) and the header
15
+ // sets it — instead of the 8-row side x header product it replaces.
12
16
  side: {
13
- top: 'inset-x-0 top-0 max-h-[85dvh]',
14
- bottom: 'inset-x-0 bottom-0 max-h-[85dvh]',
15
- left: 'inset-y-0 left-0 w-[min(20rem,85vw)]',
16
- right: 'inset-y-0 right-0 w-[min(20rem,85vw)]'
17
+ top: 'inset-x-0 top-0 max-h-[85dvh] rounded-b-(--sheet-rd)',
18
+ bottom: 'inset-x-0 bottom-0 max-h-[85dvh] rounded-t-(--sheet-rd)',
19
+ left: 'inset-y-0 left-0 w-[min(20rem,85vw)] rounded-r-(--sheet-rd)',
20
+ right: 'inset-y-0 right-0 w-[min(20rem,85vw)] rounded-l-(--sheet-rd)'
17
21
  },
18
22
  /**
19
23
  * With a header the sheet is sectioned (the bar flush, the BODY scrolls
@@ -22,18 +26,11 @@
22
26
  * holding xxs controls, the pane's own corner law. Without one, the
23
27
  * padded rd-lg surface is unchanged.
24
28
  */
25
- header: { true: '', false: 'gap-(--era-gap) overflow-y-auto p-(--era-pad-md)' }
29
+ header: {
30
+ true: '[--sheet-rd:var(--era-rd-md)]',
31
+ false: '[--sheet-rd:var(--era-rd-lg)] gap-(--era-gap) overflow-y-auto p-(--era-pad-md)'
32
+ }
26
33
  },
27
- compoundVariants: [
28
- { side: 'top', header: false, class: 'rounded-b-(--era-rd-lg)' },
29
- { side: 'bottom', header: false, class: 'rounded-t-(--era-rd-lg)' },
30
- { side: 'left', header: false, class: 'rounded-r-(--era-rd-lg)' },
31
- { side: 'right', header: false, class: 'rounded-l-(--era-rd-lg)' },
32
- { side: 'top', header: true, class: 'rounded-b-(--era-rd-md)' },
33
- { side: 'bottom', header: true, class: 'rounded-t-(--era-rd-md)' },
34
- { side: 'left', header: true, class: 'rounded-r-(--era-rd-md)' },
35
- { side: 'right', header: true, class: 'rounded-l-(--era-rd-md)' }
36
- ],
37
34
  defaultVariants: { side: 'bottom', header: false }
38
35
  });
39
36
  </script>
@@ -41,6 +38,7 @@
41
38
  <script lang="ts">
42
39
  import type { Snippet } from 'svelte';
43
40
  import { Dialog } from 'bits-ui';
41
+ import Overlay from '../dialog/dialog-overlay.svelte';
44
42
 
45
43
  let {
46
44
  ref = $bindable(null),
@@ -58,7 +56,7 @@
58
56
  </script>
59
57
 
60
58
  <Dialog.Portal>
61
- <Dialog.Overlay class="fixed inset-0 z-50 bg-(--era-overlay-bg)" />
59
+ <Overlay />
62
60
  <Dialog.Content
63
61
  bind:ref
64
62
  class={cn(sheetVariants({ side, header: header != null }), className)}
@@ -1,10 +1,10 @@
1
1
  import { type PartProps } from '../../utils/index.js';
2
2
  export declare const sheetVariants: import("tailwind-variants").TVReturnType<{
3
3
  side: {
4
- top: "inset-x-0 top-0 max-h-[85dvh]";
5
- bottom: "inset-x-0 bottom-0 max-h-[85dvh]";
6
- left: "inset-y-0 left-0 w-[min(20rem,85vw)]";
7
- right: "inset-y-0 right-0 w-[min(20rem,85vw)]";
4
+ top: "inset-x-0 top-0 max-h-[85dvh] rounded-b-(--sheet-rd)";
5
+ bottom: "inset-x-0 bottom-0 max-h-[85dvh] rounded-t-(--sheet-rd)";
6
+ left: "inset-y-0 left-0 w-[min(20rem,85vw)] rounded-r-(--sheet-rd)";
7
+ right: "inset-y-0 right-0 w-[min(20rem,85vw)] rounded-l-(--sheet-rd)";
8
8
  };
9
9
  /**
10
10
  * With a header the sheet is sectioned (the bar flush, the BODY scrolls
@@ -14,15 +14,15 @@ export declare const sheetVariants: import("tailwind-variants").TVReturnType<{
14
14
  * padded rd-lg surface is unchanged.
15
15
  */
16
16
  header: {
17
- true: "";
18
- false: "gap-(--era-gap) overflow-y-auto p-(--era-pad-md)";
17
+ true: "[--sheet-rd:var(--era-rd-md)]";
18
+ false: "[--sheet-rd:var(--era-rd-lg)] gap-(--era-gap) overflow-y-auto p-(--era-pad-md)";
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: {
22
- top: "inset-x-0 top-0 max-h-[85dvh]";
23
- bottom: "inset-x-0 bottom-0 max-h-[85dvh]";
24
- left: "inset-y-0 left-0 w-[min(20rem,85vw)]";
25
- right: "inset-y-0 right-0 w-[min(20rem,85vw)]";
22
+ top: "inset-x-0 top-0 max-h-[85dvh] rounded-b-(--sheet-rd)";
23
+ bottom: "inset-x-0 bottom-0 max-h-[85dvh] rounded-t-(--sheet-rd)";
24
+ left: "inset-y-0 left-0 w-[min(20rem,85vw)] rounded-r-(--sheet-rd)";
25
+ right: "inset-y-0 right-0 w-[min(20rem,85vw)] rounded-l-(--sheet-rd)";
26
26
  };
27
27
  /**
28
28
  * With a header the sheet is sectioned (the bar flush, the BODY scrolls
@@ -32,15 +32,15 @@ export declare const sheetVariants: import("tailwind-variants").TVReturnType<{
32
32
  * padded rd-lg surface is unchanged.
33
33
  */
34
34
  header: {
35
- true: "";
36
- false: "gap-(--era-gap) overflow-y-auto p-(--era-pad-md)";
35
+ true: "[--sheet-rd:var(--era-rd-md)]";
36
+ false: "[--sheet-rd:var(--era-rd-lg)] gap-(--era-gap) overflow-y-auto p-(--era-pad-md)";
37
37
  };
38
38
  }, undefined, import("tailwind-variants").TVReturnTypeLike<{
39
39
  side: {
40
- top: "inset-x-0 top-0 max-h-[85dvh]";
41
- bottom: "inset-x-0 bottom-0 max-h-[85dvh]";
42
- left: "inset-y-0 left-0 w-[min(20rem,85vw)]";
43
- right: "inset-y-0 right-0 w-[min(20rem,85vw)]";
40
+ top: "inset-x-0 top-0 max-h-[85dvh] rounded-b-(--sheet-rd)";
41
+ bottom: "inset-x-0 bottom-0 max-h-[85dvh] rounded-t-(--sheet-rd)";
42
+ left: "inset-y-0 left-0 w-[min(20rem,85vw)] rounded-r-(--sheet-rd)";
43
+ right: "inset-y-0 right-0 w-[min(20rem,85vw)] rounded-l-(--sheet-rd)";
44
44
  };
45
45
  /**
46
46
  * With a header the sheet is sectioned (the bar flush, the BODY scrolls
@@ -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: "";
54
- false: "gap-(--era-gap) overflow-y-auto p-(--era-pad-md)";
53
+ true: "[--sheet-rd:var(--era-rd-md)]";
54
+ false: "[--sheet-rd:var(--era-rd-lg)] gap-(--era-gap) overflow-y-auto p-(--era-pad-md)";
55
55
  };
56
56
  }, undefined>>;
57
57
  import type { Snippet } from 'svelte';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signal9/era-ui",
3
- "version": "4.15.0",
3
+ "version": "4.15.2",
4
4
  "scripts": {
5
5
  "dev": "vite dev --host",
6
6
  "build": "vite build && npm run prepack",
@@ -90,12 +90,12 @@
90
90
  "devDependencies": {
91
91
  "@eslint/compat": "^2.1.0",
92
92
  "@eslint/js": "^9.39.2",
93
- "@playwright/test": "^1.62.0",
93
+ "@playwright/test": "^1.62.1",
94
94
  "@semantic-release/changelog": "^6.0.3",
95
95
  "@semantic-release/exec": "^7.1.0",
96
96
  "@semantic-release/git": "^10.0.1",
97
97
  "@sveltejs/adapter-cloudflare": "^7.2.9",
98
- "@sveltejs/kit": "^2.70.1",
98
+ "@sveltejs/kit": "^2.70.2",
99
99
  "@sveltejs/package": "^2.5.8",
100
100
  "@sveltejs/vite-plugin-svelte": "^6.2.4",
101
101
  "@tailwindcss/cli": "^4.3.3",
@@ -103,19 +103,19 @@
103
103
  "@threlte/core": "^8.5.16",
104
104
  "@threlte/extras": "^9.21.0",
105
105
  "@tiptap/core": "^3.29.0",
106
- "@tiptap/extension-code-block-lowlight": "^3.29.0",
107
- "@tiptap/extension-details": "^3.29.0",
108
- "@tiptap/extension-highlight": "^3.29.0",
109
- "@tiptap/extension-image": "^3.29.0",
110
- "@tiptap/extension-placeholder": "^3.29.0",
111
- "@tiptap/extension-table": "^3.29.0",
112
- "@tiptap/extension-task-item": "^3.29.0",
113
- "@tiptap/extension-task-list": "^3.29.0",
114
- "@tiptap/extension-typography": "^3.29.0",
115
- "@tiptap/extension-unique-id": "^3.29.0",
106
+ "@tiptap/extension-code-block-lowlight": "^3.29.2",
107
+ "@tiptap/extension-details": "^3.29.2",
108
+ "@tiptap/extension-highlight": "^3.29.2",
109
+ "@tiptap/extension-image": "^3.29.2",
110
+ "@tiptap/extension-placeholder": "^3.29.2",
111
+ "@tiptap/extension-table": "^3.29.2",
112
+ "@tiptap/extension-task-item": "^3.29.2",
113
+ "@tiptap/extension-task-list": "^3.29.2",
114
+ "@tiptap/extension-typography": "^3.29.2",
115
+ "@tiptap/extension-unique-id": "^3.29.2",
116
116
  "@tiptap/pm": "^3.29.0",
117
- "@tiptap/starter-kit": "^3.29.0",
118
- "@tiptap/suggestion": "^3.29.0",
117
+ "@tiptap/starter-kit": "^3.29.2",
118
+ "@tiptap/suggestion": "^3.29.2",
119
119
  "@types/node": "^24.13.3",
120
120
  "@types/three": "^0.184.1",
121
121
  "@xyflow/svelte": "^1.6.2",
@@ -130,9 +130,9 @@
130
130
  "prettier-plugin-tailwindcss": "^0.7.4",
131
131
  "publint": "^0.3.22",
132
132
  "semantic-release": "^25.0.8",
133
- "shiki": "^4.3.1",
133
+ "shiki": "^4.4.1",
134
134
  "svelte": "^5.56.8",
135
- "svelte-check": "^4.7.3",
135
+ "svelte-check": "^4.7.4",
136
136
  "tailwindcss": "^4.1.18",
137
137
  "three": "^0.184.0",
138
138
  "tiptap-markdown": "^0.9.0",
@@ -140,7 +140,7 @@
140
140
  "typescript-eslint": "^8.65.0",
141
141
  "vite": "^7.3.6",
142
142
  "vite-plugin-devtools-json": "^1.1.0",
143
- "wrangler": "^4.114.0"
143
+ "wrangler": "^4.118.0"
144
144
  },
145
145
  "keywords": [
146
146
  "svelte"
@@ -153,7 +153,7 @@
153
153
  "url": "git+https://github.com/sig-nine/era-ui.git"
154
154
  },
155
155
  "dependencies": {
156
- "@internationalized/date": "^3.12.2",
156
+ "@internationalized/date": "^3.12.3",
157
157
  "@lucide/svelte": "^0.577.0",
158
158
  "@neodrag/svelte": "^3.0.0-next.8",
159
159
  "bits-ui": "^2.18.1",