lapikit 0.6.4 → 0.6.6
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/components/accordion/accordion.svelte +38 -33
- package/dist/components/accordion/modules/accordion-item.svelte +15 -9
- package/dist/components/alert/alert.svelte +36 -31
- package/dist/components/app/app.svelte +89 -38
- package/dist/components/appbar/appbar.svelte +36 -37
- package/dist/components/appbar/appbar.types.d.ts +2 -1
- package/dist/components/aspect-ratio/aspect-ratio.svelte +1 -2
- package/dist/components/avatar/avatar.svelte +33 -38
- package/dist/components/btn/btn.svelte +36 -37
- package/dist/components/card/card.svelte +16 -11
- package/dist/components/card/modules/card-actions.svelte +1 -1
- package/dist/components/card/modules/card-content.svelte +9 -1
- package/dist/components/card/modules/card-title.svelte +9 -2
- package/dist/components/chip/chip.svelte +37 -36
- package/dist/components/dialog/dialog.svelte +21 -18
- package/dist/components/dropdown/dropdown.svelte +14 -11
- package/dist/components/icon/icon.svelte +16 -9
- package/dist/components/list/list.svelte +48 -34
- package/dist/components/list/modules/list-item.svelte +17 -37
- package/dist/components/modal/modal.svelte +23 -20
- package/dist/components/popover/popover.svelte +15 -12
- package/dist/components/popover/popover.types.d.ts +1 -1
- package/dist/components/separator/separator.svelte +15 -4
- package/dist/components/textfield/textfield.svelte +32 -38
- package/dist/components/toolbar/toolbar.svelte +35 -45
- package/dist/components/tooltip/tooltip.svelte +15 -15
- package/package.json +1 -1
|
@@ -53,8 +53,6 @@
|
|
|
53
53
|
: `${classContent ?? ''}`.trim()
|
|
54
54
|
);
|
|
55
55
|
|
|
56
|
-
let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
|
|
57
|
-
|
|
58
56
|
$effect(() => {
|
|
59
57
|
if (!ref) return;
|
|
60
58
|
|
|
@@ -97,12 +95,23 @@
|
|
|
97
95
|
if (event.target !== ref || persistent) return;
|
|
98
96
|
open = false;
|
|
99
97
|
}
|
|
98
|
+
|
|
99
|
+
let resolvedStyle = $derived(
|
|
100
|
+
[
|
|
101
|
+
componentStyle,
|
|
102
|
+
color ? `--kit-dialog-fg:${color && `var(--kit-color-${color})`}` : '',
|
|
103
|
+
background ? `--kit-dialog-bg:${background && `var(--kit-color-${background})`}` : '',
|
|
104
|
+
space ? `--kit-dialog-space:${space}` : ''
|
|
105
|
+
]
|
|
106
|
+
.filter(Boolean)
|
|
107
|
+
.join('; ')
|
|
108
|
+
);
|
|
100
109
|
</script>
|
|
101
110
|
|
|
102
111
|
<dialog
|
|
103
112
|
bind:this={ref}
|
|
104
113
|
class={componentClass}
|
|
105
|
-
style={
|
|
114
|
+
style={resolvedStyle}
|
|
106
115
|
data-size={size}
|
|
107
116
|
data-position={position}
|
|
108
117
|
data-persistent={persistent}
|
|
@@ -119,9 +128,6 @@
|
|
|
119
128
|
data-elevation-hover={elevationState.hover}
|
|
120
129
|
data-elevation-active={elevationState.active}
|
|
121
130
|
onclick={(event: MouseEvent) => event.stopPropagation()}
|
|
122
|
-
style:--kit-dialog-fg={color && `var(--kit-color-${color})`}
|
|
123
|
-
style:--kit-dialog-bg={background && `var(--kit-color-${background})`}
|
|
124
|
-
style:--kit-dialog-space={space}
|
|
125
131
|
>
|
|
126
132
|
{@render children?.()}
|
|
127
133
|
</div>
|
|
@@ -183,27 +189,27 @@
|
|
|
183
189
|
*/
|
|
184
190
|
.kit-dialog[data-size='xs'] {
|
|
185
191
|
--kit-dialog-max: 20rem;
|
|
186
|
-
--kit-dialog-
|
|
192
|
+
--kit-dialog-p: 12px;
|
|
187
193
|
}
|
|
188
194
|
|
|
189
195
|
.kit-dialog[data-size='sm'] {
|
|
190
196
|
--kit-dialog-max: 24rem;
|
|
191
|
-
--kit-dialog-
|
|
197
|
+
--kit-dialog-p: 14px;
|
|
192
198
|
}
|
|
193
199
|
|
|
194
200
|
.kit-dialog[data-size='md'] {
|
|
195
201
|
--kit-dialog-max: 32rem;
|
|
196
|
-
--kit-dialog-
|
|
202
|
+
--kit-dialog-p: 16px;
|
|
197
203
|
}
|
|
198
204
|
|
|
199
205
|
.kit-dialog[data-size='lg'] {
|
|
200
206
|
--kit-dialog-max: 42rem;
|
|
201
|
-
--kit-dialog-
|
|
207
|
+
--kit-dialog-p: 20px;
|
|
202
208
|
}
|
|
203
209
|
|
|
204
210
|
.kit-dialog[data-size='xl'] {
|
|
205
211
|
--kit-dialog-max: 56rem;
|
|
206
|
-
--kit-dialog-
|
|
212
|
+
--kit-dialog-p: 24px;
|
|
207
213
|
}
|
|
208
214
|
|
|
209
215
|
.kit-dialog__content {
|
|
@@ -214,7 +220,7 @@
|
|
|
214
220
|
width: min(100%, min(var(--kit-dialog-max), calc(100vw - 2rem)));
|
|
215
221
|
max-height: calc(100dvh - 2rem);
|
|
216
222
|
overflow: auto;
|
|
217
|
-
padding: calc(var(--kit-dialog-
|
|
223
|
+
padding: calc(var(--kit-dialog-p) + var(--kit-dialog-density-offset) / 2);
|
|
218
224
|
border: 0;
|
|
219
225
|
border-radius: var(--kit-dialog-radius);
|
|
220
226
|
background: var(--kit-dialog-bg);
|
|
@@ -226,17 +232,14 @@
|
|
|
226
232
|
* density
|
|
227
233
|
* @link no links
|
|
228
234
|
*/
|
|
229
|
-
.kit-dialog__content[data-density='none'] {
|
|
230
|
-
--kit-dialog-density-scale: 0;
|
|
231
|
-
}
|
|
232
235
|
.kit-dialog__content[data-density='compact'] {
|
|
233
|
-
--kit-dialog-density-
|
|
236
|
+
--kit-dialog-density-offset: var(--kit-density-compact);
|
|
234
237
|
}
|
|
235
238
|
.kit-dialog__content[data-density='default'] {
|
|
236
|
-
--kit-dialog-density-
|
|
239
|
+
--kit-dialog-density-offset: var(--kit-density-default);
|
|
237
240
|
}
|
|
238
241
|
.kit-dialog__content[data-density='comfortable'] {
|
|
239
|
-
--kit-dialog-density-
|
|
242
|
+
--kit-dialog-density-offset: var(--kit-density-comfortable);
|
|
240
243
|
}
|
|
241
244
|
|
|
242
245
|
/**
|
|
@@ -47,7 +47,15 @@
|
|
|
47
47
|
})
|
|
48
48
|
);
|
|
49
49
|
|
|
50
|
-
let
|
|
50
|
+
let resolvedStyle = $derived(
|
|
51
|
+
[
|
|
52
|
+
componentStyle,
|
|
53
|
+
color ? `--kit-dropdown-fg:${color && `var(--kit-color-${color})`}` : '',
|
|
54
|
+
background ? `--kit-dropdown-bg:${background && `var(--kit-color-${background})`}` : ''
|
|
55
|
+
]
|
|
56
|
+
.filter(Boolean)
|
|
57
|
+
.join('; ')
|
|
58
|
+
);
|
|
51
59
|
|
|
52
60
|
const positioner = getPositions();
|
|
53
61
|
|
|
@@ -154,7 +162,7 @@
|
|
|
154
162
|
<div
|
|
155
163
|
bind:this={contentRef}
|
|
156
164
|
class={componentClass}
|
|
157
|
-
style={`left:${axis.x}px; top:${axis.y}px; ${
|
|
165
|
+
style={`left:${axis.x}px; top:${axis.y}px; ${resolvedStyle}`}
|
|
158
166
|
role="menu"
|
|
159
167
|
data-rounded={rounded}
|
|
160
168
|
data-position={axis.location ?? position}
|
|
@@ -169,8 +177,6 @@
|
|
|
169
177
|
data-elevation-hover={elevationState.hover}
|
|
170
178
|
data-elevation-active={elevationState.active}
|
|
171
179
|
use:clickOutside={{ exclude: [contentRef, activatorRef], onClose: handleClose }}
|
|
172
|
-
style:--kit-dropdown-fg={color && `var(--kit-color-${color})`}
|
|
173
|
-
style:--kit-dropdown-bg={background && `var(--kit-color-${background})`}
|
|
174
180
|
{...restProps}
|
|
175
181
|
>
|
|
176
182
|
{@render children?.()}
|
|
@@ -186,7 +192,7 @@
|
|
|
186
192
|
z-index: 1800;
|
|
187
193
|
min-width: 12rem;
|
|
188
194
|
max-width: min(22rem, calc(100vw - 1rem));
|
|
189
|
-
padding:
|
|
195
|
+
padding: calc(var(--kit-space-default) + var(--kit-dropdown-density-offset) / 2);
|
|
190
196
|
border: 0;
|
|
191
197
|
border-radius: var(--kit-dropdown-radius);
|
|
192
198
|
background: var(--kit-dropdown-bg);
|
|
@@ -222,17 +228,14 @@
|
|
|
222
228
|
* density
|
|
223
229
|
* @link no url
|
|
224
230
|
*/
|
|
225
|
-
.kit-dropdown-content[data-density='none'] {
|
|
226
|
-
--kit-dropdown-density-scale: 0;
|
|
227
|
-
}
|
|
228
231
|
.kit-dropdown-content[data-density='compact'] {
|
|
229
|
-
--kit-dropdown-density-
|
|
232
|
+
--kit-dropdown-density-offset: var(--kit-density-compact);
|
|
230
233
|
}
|
|
231
234
|
.kit-dropdown-content[data-density='default'] {
|
|
232
|
-
--kit-dropdown-density-
|
|
235
|
+
--kit-dropdown-density-offset: var(--kit-density-default);
|
|
233
236
|
}
|
|
234
237
|
.kit-dropdown-content[data-density='comfortable'] {
|
|
235
|
-
--kit-dropdown-density-
|
|
238
|
+
--kit-dropdown-density-offset: var(--kit-density-comfortable);
|
|
236
239
|
}
|
|
237
240
|
|
|
238
241
|
@keyframes kit-dropdown-enter {
|
|
@@ -47,6 +47,16 @@
|
|
|
47
47
|
})
|
|
48
48
|
);
|
|
49
49
|
|
|
50
|
+
let resolvedStyle = $derived(
|
|
51
|
+
[
|
|
52
|
+
componentStyle,
|
|
53
|
+
color ? `--kit-icon-color:${color && `var(--kit-color-${color})`}` : '',
|
|
54
|
+
color ? `color:${color && `var(--kit-color-${color})`}` : ''
|
|
55
|
+
]
|
|
56
|
+
.filter(Boolean)
|
|
57
|
+
.join('; ')
|
|
58
|
+
);
|
|
59
|
+
|
|
50
60
|
let resolvedSrc = $derived(src ?? (icon?.includes('/') ? icon : undefined));
|
|
51
61
|
let resolvedName = $derived(name ?? (!icon?.includes('/') ? icon : undefined));
|
|
52
62
|
let hasChildren = $derived(!!children);
|
|
@@ -68,7 +78,6 @@
|
|
|
68
78
|
let useFilterMode = $derived(
|
|
69
79
|
!!resolvedSrc && !!imgFilter && (colorMode === 'filter' || colorMode === 'auto')
|
|
70
80
|
);
|
|
71
|
-
let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
|
|
72
81
|
</script>
|
|
73
82
|
|
|
74
83
|
{#if hasContent}
|
|
@@ -76,13 +85,11 @@
|
|
|
76
85
|
this={is}
|
|
77
86
|
bind:this={ref}
|
|
78
87
|
class={classWithIconName}
|
|
79
|
-
style={
|
|
88
|
+
style={resolvedStyle}
|
|
80
89
|
data-size={size}
|
|
81
90
|
role={iconRole}
|
|
82
91
|
aria-label={iconAriaLabel}
|
|
83
92
|
aria-hidden={iconAriaHidden}
|
|
84
|
-
style:--kit-icon-color={color && `var(--kit-color-${color})`}
|
|
85
|
-
style:color={color && `var(--kit-color-${color})`}
|
|
86
93
|
{...restProps}
|
|
87
94
|
>
|
|
88
95
|
{#if hasChildren}
|
|
@@ -145,18 +152,18 @@
|
|
|
145
152
|
* @link https://lapikit.dev/docs/components/icon#size
|
|
146
153
|
*/
|
|
147
154
|
.kit-icon[data-size='xs'] {
|
|
148
|
-
--kit-icon-current-size:
|
|
155
|
+
--kit-icon-current-size: 12px;
|
|
149
156
|
}
|
|
150
157
|
.kit-icon[data-size='sm'] {
|
|
151
|
-
--kit-icon-current-size:
|
|
158
|
+
--kit-icon-current-size: 14px;
|
|
152
159
|
}
|
|
153
160
|
.kit-icon[data-size='md'] {
|
|
154
|
-
--kit-icon-current-size:
|
|
161
|
+
--kit-icon-current-size: 16px;
|
|
155
162
|
}
|
|
156
163
|
.kit-icon[data-size='lg'] {
|
|
157
|
-
--kit-icon-current-size:
|
|
164
|
+
--kit-icon-current-size: 18px;
|
|
158
165
|
}
|
|
159
166
|
.kit-icon[data-size='xl'] {
|
|
160
|
-
--kit-icon-current-size:
|
|
167
|
+
--kit-icon-current-size: 20px;
|
|
161
168
|
}
|
|
162
169
|
</style>
|
|
@@ -42,22 +42,28 @@
|
|
|
42
42
|
})
|
|
43
43
|
);
|
|
44
44
|
|
|
45
|
-
let
|
|
45
|
+
let resolvedStyle = $derived(
|
|
46
|
+
[
|
|
47
|
+
componentStyle,
|
|
48
|
+
color ? `--kit-list-item-fg:${color && `var(--kit-color-${color})`}` : '',
|
|
49
|
+
background ? `--kit-list-item-bg:${background && `var(--kit-color-${background})`}` : ''
|
|
50
|
+
]
|
|
51
|
+
.filter(Boolean)
|
|
52
|
+
.join('; ')
|
|
53
|
+
);
|
|
46
54
|
</script>
|
|
47
55
|
|
|
48
56
|
<svelte:element
|
|
49
57
|
this={is}
|
|
50
58
|
bind:this={ref}
|
|
51
59
|
class={componentClass}
|
|
52
|
-
style={
|
|
60
|
+
style={resolvedStyle}
|
|
53
61
|
data-size={size}
|
|
54
62
|
data-variant={variant}
|
|
55
63
|
data-density={density}
|
|
56
64
|
data-rounded={rounded}
|
|
57
65
|
data-nav={nav}
|
|
58
66
|
role={nav ? 'navigation' : is === 'ul' ? undefined : 'list'}
|
|
59
|
-
style:--kit-list-item-fg={color && `var(--kit-color-${color})`}
|
|
60
|
-
style:--kit-list-item-bg={background && `var(--kit-color-${background})`}
|
|
61
67
|
{...restProps}
|
|
62
68
|
>
|
|
63
69
|
{@render children?.()}
|
|
@@ -90,21 +96,14 @@
|
|
|
90
96
|
* density
|
|
91
97
|
* @link https://lapikit.dev/docs/components/list#density
|
|
92
98
|
*/
|
|
93
|
-
.kit-list[data-density='none'] {
|
|
94
|
-
--kit-list-density-scale: 0;
|
|
95
|
-
--kit-list-density-h-scale: 0;
|
|
96
|
-
}
|
|
97
99
|
.kit-list[data-density='compact'] {
|
|
98
|
-
--kit-list-density-
|
|
99
|
-
--kit-list-density-h-scale: 0.92;
|
|
100
|
+
--kit-list-density-offset: var(--kit-space-compact);
|
|
100
101
|
}
|
|
101
102
|
.kit-list[data-density='default'] {
|
|
102
|
-
--kit-list-density-
|
|
103
|
-
--kit-list-density-h-scale: 1;
|
|
103
|
+
--kit-list-density-offset: var(--kit-space-default);
|
|
104
104
|
}
|
|
105
105
|
.kit-list[data-density='comfortable'] {
|
|
106
|
-
--kit-list-density-
|
|
107
|
-
--kit-list-density-h-scale: 1.15;
|
|
106
|
+
--kit-list-density-offset: var(--kit-space-comfortable);
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
/**
|
|
@@ -169,7 +168,22 @@
|
|
|
169
168
|
* @link https://lapikit.dev/docs/components/list#nav
|
|
170
169
|
*/
|
|
171
170
|
.kit-list[data-nav='true'] {
|
|
172
|
-
padding:
|
|
171
|
+
padding: calc(var(--kit-space-default) + var(--kit-list-density-offset) / 2);
|
|
172
|
+
}
|
|
173
|
+
.kit-list[data-nav='true'] :global(.kit-list-item) {
|
|
174
|
+
border-radius: var(--kit-list-item-radius);
|
|
175
|
+
}
|
|
176
|
+
.kit-list:not([data-nav='true']) :global(.kit-list-item:first-child) {
|
|
177
|
+
border-top-left-radius: var(--kit-list-item-radius);
|
|
178
|
+
border-top-right-radius: var(--kit-list-item-radius);
|
|
179
|
+
}
|
|
180
|
+
.kit-list:not([data-nav='true']) :global(.kit-list-item:last-child) {
|
|
181
|
+
border-bottom-left-radius: var(--kit-list-item-radius);
|
|
182
|
+
border-bottom-right-radius: var(--kit-list-item-radius);
|
|
183
|
+
}
|
|
184
|
+
.kit-list:not([data-nav='true']) :global(.kit-list-item:not(:first-child)),
|
|
185
|
+
.kit-list:not([data-nav='true']) :global(.kit-list-item:not(:last-child)) {
|
|
186
|
+
--kit-list-item-radius: 0;
|
|
173
187
|
}
|
|
174
188
|
|
|
175
189
|
/**
|
|
@@ -178,32 +192,32 @@
|
|
|
178
192
|
*/
|
|
179
193
|
.kit-list[data-size='xs'] :global(.kit-list-item) {
|
|
180
194
|
--kit-list-item-h: 28px;
|
|
181
|
-
--kit-list-item-
|
|
182
|
-
--kit-list-item-gap:
|
|
183
|
-
--kit-list-item-font:
|
|
195
|
+
--kit-list-item-p: 12px;
|
|
196
|
+
--kit-list-item-gap: var(--kit-space-compact);
|
|
197
|
+
--kit-list-item-font: var(--kit-font-xs);
|
|
184
198
|
}
|
|
185
199
|
.kit-list[data-size='sm'] :global(.kit-list-item) {
|
|
186
|
-
--kit-list-item-h:
|
|
187
|
-
--kit-list-item-
|
|
188
|
-
--kit-list-item-gap:
|
|
189
|
-
--kit-list-item-font:
|
|
200
|
+
--kit-list-item-h: 36px;
|
|
201
|
+
--kit-list-item-p: 14px;
|
|
202
|
+
--kit-list-item-gap: var(--kit-space-default);
|
|
203
|
+
--kit-list-item-font: var(--kit-font-sm);
|
|
190
204
|
}
|
|
191
205
|
.kit-list[data-size='md'] :global(.kit-list-item) {
|
|
192
|
-
--kit-list-item-h:
|
|
193
|
-
--kit-list-item-
|
|
194
|
-
--kit-list-item-gap:
|
|
195
|
-
--kit-list-item-font:
|
|
206
|
+
--kit-list-item-h: 44px;
|
|
207
|
+
--kit-list-item-p: 16px;
|
|
208
|
+
--kit-list-item-gap: var(--kit-space-default);
|
|
209
|
+
--kit-list-item-font: var(--kit-font-md);
|
|
196
210
|
}
|
|
197
211
|
.kit-list[data-size='lg'] :global(.kit-list-item) {
|
|
198
|
-
--kit-list-item-h:
|
|
199
|
-
--kit-list-item-
|
|
200
|
-
--kit-list-item-gap:
|
|
201
|
-
--kit-list-item-font:
|
|
212
|
+
--kit-list-item-h: 52px;
|
|
213
|
+
--kit-list-item-p: 20px;
|
|
214
|
+
--kit-list-item-gap: var(--kit-space-default);
|
|
215
|
+
--kit-list-item-font: var(--kit-font-lg);
|
|
202
216
|
}
|
|
203
217
|
.kit-list[data-size='xl'] :global(.kit-list-item) {
|
|
204
|
-
--kit-list-item-h:
|
|
205
|
-
--kit-list-item-
|
|
206
|
-
--kit-list-item-gap:
|
|
207
|
-
--kit-list-item-font:
|
|
218
|
+
--kit-list-item-h: 60px;
|
|
219
|
+
--kit-list-item-p: 24px;
|
|
220
|
+
--kit-list-item-gap: var(--kit-space-comfortable);
|
|
221
|
+
--kit-list-item-font: var(--kit-font-xl);
|
|
208
222
|
}
|
|
209
223
|
</style>
|
|
@@ -49,14 +49,22 @@
|
|
|
49
49
|
})
|
|
50
50
|
);
|
|
51
51
|
|
|
52
|
-
let
|
|
52
|
+
let resolvedStyle = $derived(
|
|
53
|
+
[
|
|
54
|
+
componentStyle,
|
|
55
|
+
color ? `--kit-list-item-fg:${color && `var(--kit-color-${color})`}` : '',
|
|
56
|
+
background ? `--kit-list-item-bg:${background && `var(--kit-color-${background})`}` : ''
|
|
57
|
+
]
|
|
58
|
+
.filter(Boolean)
|
|
59
|
+
.join('; ')
|
|
60
|
+
);
|
|
53
61
|
</script>
|
|
54
62
|
|
|
55
63
|
<svelte:element
|
|
56
64
|
this={tag}
|
|
57
65
|
bind:this={ref}
|
|
58
66
|
class={componentClass}
|
|
59
|
-
style={
|
|
67
|
+
style={resolvedStyle}
|
|
60
68
|
href={href && !disabled ? href : undefined}
|
|
61
69
|
data-active={active}
|
|
62
70
|
data-disabled={disabled}
|
|
@@ -67,8 +75,6 @@
|
|
|
67
75
|
data-append={append && true}
|
|
68
76
|
data-prepend={prepend && true}
|
|
69
77
|
data-interactive={isInteractive}
|
|
70
|
-
style:--kit-list-item-fg={color && `var(--kit-color-${color})`}
|
|
71
|
-
style:--kit-list-item-bg={background && `var(--kit-color-${background})`}
|
|
72
78
|
use:ripple={{
|
|
73
79
|
component: 'list-item',
|
|
74
80
|
disabled: noRipple || !isInteractive
|
|
@@ -96,13 +102,13 @@
|
|
|
96
102
|
<style>
|
|
97
103
|
.kit-list-item {
|
|
98
104
|
width: 100%;
|
|
99
|
-
min-height: calc(var(--kit-list-item-h)
|
|
105
|
+
min-height: calc(var(--kit-list-item-h) + var(--kit-list-density-offset) / 2);
|
|
100
106
|
position: relative;
|
|
101
107
|
display: grid;
|
|
102
108
|
grid-template-columns: 1fr;
|
|
103
109
|
align-items: center;
|
|
104
110
|
gap: var(--kit-list-item-gap);
|
|
105
|
-
border-radius: var(--kit-list-item-radius);
|
|
111
|
+
/* border-radius: var(--kit-list-item-radius); */
|
|
106
112
|
border: 0;
|
|
107
113
|
background: var(--kit-list-item-bg);
|
|
108
114
|
color: var(--kit-list-item-fg);
|
|
@@ -112,15 +118,15 @@
|
|
|
112
118
|
|
|
113
119
|
.kit-list-item .kit-list-item__prepend,
|
|
114
120
|
.kit-list-item:not([data-prepend='true']) .kit-list-item__content {
|
|
115
|
-
margin-left: calc(var(--kit-list-item-
|
|
121
|
+
margin-left: calc(var(--kit-list-item-p) + var(--kit-list-density-offset) / 2);
|
|
116
122
|
}
|
|
117
123
|
.kit-list-item .kit-list-item__append,
|
|
118
124
|
.kit-list-item:not([data-append='true']) .kit-list-item__content {
|
|
119
|
-
margin-right: calc(var(--kit-list-item-
|
|
125
|
+
margin-right: calc(var(--kit-list-item-p) + var(--kit-list-density-offset) / 2);
|
|
120
126
|
}
|
|
121
127
|
.kit-list-item:not([data-prepend='true']):not([data-append='true']) .kit-list-item__content {
|
|
122
|
-
margin-left: calc(var(--kit-list-item-
|
|
123
|
-
margin-right: calc(var(--kit-list-item-
|
|
128
|
+
margin-left: calc(var(--kit-list-item-p) + var(--kit-list-density-offset) / 2);
|
|
129
|
+
margin-right: calc(var(--kit-list-item-p) + var(--kit-list-density-offset) / 2);
|
|
124
130
|
}
|
|
125
131
|
|
|
126
132
|
.kit-list-item[data-prepend='true']:not([data-append='true']) {
|
|
@@ -162,7 +168,7 @@
|
|
|
162
168
|
}
|
|
163
169
|
|
|
164
170
|
.kit-list-item[data-interactive='true'][data-disabled='false']:focus-visible {
|
|
165
|
-
outline: 2px solid var(--kit-focus);
|
|
171
|
+
outline: 2px solid var(--kit-color-focus);
|
|
166
172
|
outline-offset: 2px;
|
|
167
173
|
}
|
|
168
174
|
|
|
@@ -188,30 +194,4 @@
|
|
|
188
194
|
.kit-list-item .outline {
|
|
189
195
|
--outline-color: var(--kit-list-item-bd);
|
|
190
196
|
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* rounded
|
|
194
|
-
* @link ...
|
|
195
|
-
*/
|
|
196
|
-
.kit-list-item[data-rounded='0'] {
|
|
197
|
-
--kit-list-item-radius: var(--kit-shape-none);
|
|
198
|
-
}
|
|
199
|
-
.kit-list-item[data-rounded='xs'] {
|
|
200
|
-
--kit-list-item-radius: var(--kit-shape-xs);
|
|
201
|
-
}
|
|
202
|
-
.kit-list-item[data-rounded='sm'] {
|
|
203
|
-
--kit-list-item-radius: var(--kit-shape-sm);
|
|
204
|
-
}
|
|
205
|
-
.kit-list-item[data-rounded='md'] {
|
|
206
|
-
--kit-list-item-radius: var(--kit-shape-md);
|
|
207
|
-
}
|
|
208
|
-
.kit-list-item[data-rounded='lg'] {
|
|
209
|
-
--kit-list-item-radius: var(--kit-shape-lg);
|
|
210
|
-
}
|
|
211
|
-
.kit-list-item[data-rounded='xl'] {
|
|
212
|
-
--kit-list-item-radius: var(--kit-shape-xl);
|
|
213
|
-
}
|
|
214
|
-
.kit-list-item[data-rounded='full'] {
|
|
215
|
-
--kit-list-item-radius: var(--kit-shape-full);
|
|
216
|
-
}
|
|
217
197
|
</style>
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
rounded = 'md',
|
|
25
25
|
density = 'default',
|
|
26
26
|
classContent = '',
|
|
27
|
-
color
|
|
28
|
-
background
|
|
27
|
+
color,
|
|
28
|
+
background,
|
|
29
29
|
closeWithEsc = true,
|
|
30
30
|
space,
|
|
31
31
|
elevation = '2',
|
|
@@ -61,8 +61,6 @@
|
|
|
61
61
|
: `${classContent ?? ''}`.trim()
|
|
62
62
|
);
|
|
63
63
|
|
|
64
|
-
let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
|
|
65
|
-
|
|
66
64
|
$effect(() => {
|
|
67
65
|
if (open && !wasPushed) {
|
|
68
66
|
pushModal(modalId);
|
|
@@ -111,13 +109,24 @@
|
|
|
111
109
|
function handleClose() {
|
|
112
110
|
if (!persistent) open = false;
|
|
113
111
|
}
|
|
112
|
+
|
|
113
|
+
let resolvedStyle = $derived(
|
|
114
|
+
[
|
|
115
|
+
componentStyle,
|
|
116
|
+
color ? `--kit-modal-fg:${color && `var(--kit-color-${color})`}` : '',
|
|
117
|
+
background ? `--kit-modal-bg:${background && `var(--kit-color-${background})`}` : '',
|
|
118
|
+
space ? `--kit-modal-space:${space}` : ''
|
|
119
|
+
]
|
|
120
|
+
.filter(Boolean)
|
|
121
|
+
.join('; ')
|
|
122
|
+
);
|
|
114
123
|
</script>
|
|
115
124
|
|
|
116
125
|
{#if open}
|
|
117
126
|
<div
|
|
118
127
|
bind:this={ref}
|
|
119
128
|
class={componentClass}
|
|
120
|
-
style={
|
|
129
|
+
style={resolvedStyle}
|
|
121
130
|
role="dialog"
|
|
122
131
|
aria-modal={!contain}
|
|
123
132
|
data-contain={contain}
|
|
@@ -137,9 +146,6 @@
|
|
|
137
146
|
data-elevation-hover={elevationState.hover}
|
|
138
147
|
data-elevation-active={elevationState.active}
|
|
139
148
|
onclick={(event: MouseEvent) => event.stopPropagation()}
|
|
140
|
-
style:--kit-modal-fg={color && `var(--kit-color-${color})`}
|
|
141
|
-
style:--kit-modal-bg={background && `var(--kit-color-${background})`}
|
|
142
|
-
style:--kit-modal-space={space}
|
|
143
149
|
>
|
|
144
150
|
{@render children?.()}
|
|
145
151
|
</div>
|
|
@@ -182,7 +188,7 @@
|
|
|
182
188
|
width: min(calc(100vw - 2rem), var(--kit-modal-max));
|
|
183
189
|
max-height: calc(100dvh - 2rem);
|
|
184
190
|
overflow: auto;
|
|
185
|
-
padding: calc(var(--kit-modal-
|
|
191
|
+
padding: calc(var(--kit-modal-p) + var(--kit-modal-density-offset) / 2);
|
|
186
192
|
border: 0;
|
|
187
193
|
border-radius: var(--kit-modal-radius);
|
|
188
194
|
background: var(--kit-modal-bg);
|
|
@@ -200,27 +206,27 @@
|
|
|
200
206
|
*/
|
|
201
207
|
.kit-modal__content[data-size='xs'] {
|
|
202
208
|
--kit-modal-max: 20rem;
|
|
203
|
-
--kit-modal-
|
|
209
|
+
--kit-modal-p: 12px;
|
|
204
210
|
}
|
|
205
211
|
|
|
206
212
|
.kit-modal__content[data-size='sm'] {
|
|
207
213
|
--kit-modal-max: 24rem;
|
|
208
|
-
--kit-modal-
|
|
214
|
+
--kit-modal-p: 14px;
|
|
209
215
|
}
|
|
210
216
|
|
|
211
217
|
.kit-modal__content[data-size='md'] {
|
|
212
218
|
--kit-modal-max: 32rem;
|
|
213
|
-
--kit-modal-
|
|
219
|
+
--kit-modal-p: 16px;
|
|
214
220
|
}
|
|
215
221
|
|
|
216
222
|
.kit-modal__content[data-size='lg'] {
|
|
217
223
|
--kit-modal-max: 42rem;
|
|
218
|
-
--kit-modal-
|
|
224
|
+
--kit-modal-p: 20px;
|
|
219
225
|
}
|
|
220
226
|
|
|
221
227
|
.kit-modal__content[data-size='xl'] {
|
|
222
228
|
--kit-modal-max: 56rem;
|
|
223
|
-
--kit-modal-
|
|
229
|
+
--kit-modal-p: 24px;
|
|
224
230
|
}
|
|
225
231
|
|
|
226
232
|
.kit-modal__content[data-size='full'] {
|
|
@@ -240,17 +246,14 @@
|
|
|
240
246
|
* density
|
|
241
247
|
* @link no links
|
|
242
248
|
*/
|
|
243
|
-
.kit-modal__content[data-density='none'] {
|
|
244
|
-
--kit-modal-density-scale: 0;
|
|
245
|
-
}
|
|
246
249
|
.kit-modal__content[data-density='compact'] {
|
|
247
|
-
--kit-modal-density-
|
|
250
|
+
--kit-modal-density-offset: var(--kit-space-compact);
|
|
248
251
|
}
|
|
249
252
|
.kit-modal__content[data-density='default'] {
|
|
250
|
-
--kit-modal-density-
|
|
253
|
+
--kit-modal-density-offset: var(--kit-space-default);
|
|
251
254
|
}
|
|
252
255
|
.kit-modal__content[data-density='comfortable'] {
|
|
253
|
-
--kit-modal-density-
|
|
256
|
+
--kit-modal-density-offset: var(--kit-space-comfortable);
|
|
254
257
|
}
|
|
255
258
|
|
|
256
259
|
/**
|
|
@@ -45,8 +45,6 @@
|
|
|
45
45
|
})
|
|
46
46
|
);
|
|
47
47
|
|
|
48
|
-
let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
|
|
49
|
-
|
|
50
48
|
const positioner = getPositions();
|
|
51
49
|
|
|
52
50
|
let contentRef = $state<HTMLElement | null>(null);
|
|
@@ -97,6 +95,16 @@
|
|
|
97
95
|
$effect(() => {
|
|
98
96
|
ref = contentRef;
|
|
99
97
|
});
|
|
98
|
+
|
|
99
|
+
let resolvedStyle = $derived(
|
|
100
|
+
[
|
|
101
|
+
componentStyle,
|
|
102
|
+
color ? `--kit-popover-fg:${color && `var(--kit-color-${color})`}` : '',
|
|
103
|
+
background ? `--kit-popover-bg:${background && `var(--kit-color-${background})`}` : ''
|
|
104
|
+
]
|
|
105
|
+
.filter(Boolean)
|
|
106
|
+
.join('; ')
|
|
107
|
+
);
|
|
100
108
|
</script>
|
|
101
109
|
|
|
102
110
|
<svelte:window bind:innerHeight bind:innerWidth bind:scrollX bind:scrollY />
|
|
@@ -107,7 +115,7 @@
|
|
|
107
115
|
<div
|
|
108
116
|
bind:this={contentRef}
|
|
109
117
|
class={componentClass}
|
|
110
|
-
style={`left:${axis.x}px; top:${axis.y}px; ${
|
|
118
|
+
style={`left:${axis.x}px; top:${axis.y}px; ${resolvedStyle}`}
|
|
111
119
|
role="dialog"
|
|
112
120
|
data-rounded={rounded}
|
|
113
121
|
data-position={axis.location ?? position}
|
|
@@ -115,8 +123,6 @@
|
|
|
115
123
|
data-elevation={elevationState.base}
|
|
116
124
|
data-elevation-hover={elevationState.hover}
|
|
117
125
|
data-elevation-active={elevationState.active}
|
|
118
|
-
style:--kit-modal-fg={color && `var(--kit-color-${color})`}
|
|
119
|
-
style:--kit-modal-bg={background && `var(--kit-color-${background})`}
|
|
120
126
|
use:clickOutside={{ exclude: [contentRef, activatorRef], onClose: () => (open = false) }}
|
|
121
127
|
{...restProps}
|
|
122
128
|
>
|
|
@@ -134,7 +140,7 @@
|
|
|
134
140
|
display: inline-block;
|
|
135
141
|
width: auto;
|
|
136
142
|
max-width: min(28rem, calc(100vw - 1rem));
|
|
137
|
-
padding: calc(
|
|
143
|
+
padding: calc(var(--kit-space-default) + var(--kit-popover-density-offset) / 2);
|
|
138
144
|
border: 0;
|
|
139
145
|
border-radius: var(--kit-popover-radius);
|
|
140
146
|
background: var(--kit-popover-bg);
|
|
@@ -170,16 +176,13 @@
|
|
|
170
176
|
* density
|
|
171
177
|
* @link no url
|
|
172
178
|
*/
|
|
173
|
-
.kit-popover-content[data-density='none'] {
|
|
174
|
-
--kit-popover-density-scale: 0;
|
|
175
|
-
}
|
|
176
179
|
.kit-popover-content[data-density='compact'] {
|
|
177
|
-
--kit-popover-density-
|
|
180
|
+
--kit-popover-density-offset: var(--kit-space-compact);
|
|
178
181
|
}
|
|
179
182
|
.kit-popover-content[data-density='default'] {
|
|
180
|
-
--kit-popover-density-
|
|
183
|
+
--kit-popover-density-offset: var(--kit-space-default);
|
|
181
184
|
}
|
|
182
185
|
.kit-popover-content[data-density='comfortable'] {
|
|
183
|
-
--kit-popover-density-
|
|
186
|
+
--kit-popover-density-offset: var(--kit-space-comfortable);
|
|
184
187
|
}
|
|
185
188
|
</style>
|
|
@@ -11,7 +11,7 @@ export type ModelPopoverProps = {
|
|
|
11
11
|
export interface PopoverProps extends Component {
|
|
12
12
|
ref?: HTMLElement | null;
|
|
13
13
|
open?: boolean;
|
|
14
|
-
rounded?: RoundedType
|
|
14
|
+
rounded?: RoundedType;
|
|
15
15
|
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
16
16
|
color?: string;
|
|
17
17
|
background?: string;
|