lutra 0.0.18 → 0.0.20
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/data/Stat.svelte.d.ts +12 -6
- package/dist/display/Avatar.svelte.d.ts +5 -0
- package/dist/display/Badge.svelte.d.ts +10 -6
- package/dist/display/Callout.svelte +8 -4
- package/dist/display/Callout.svelte.d.ts +11 -9
- package/dist/display/Close.svelte +58 -0
- package/dist/display/Close.svelte.d.ts +21 -0
- package/dist/display/Code.svelte.d.ts +10 -8
- package/dist/display/ContextTip.svelte +1 -2
- package/dist/display/ContextTip.svelte.d.ts +5 -0
- package/dist/display/Details.svelte.d.ts +11 -5
- package/dist/display/Hero.svelte.d.ts +9 -4
- package/dist/display/Icon.svelte +4 -6
- package/dist/display/Icon.svelte.d.ts +6 -0
- package/dist/display/IconButton.svelte +2 -3
- package/dist/display/IconButton.svelte.d.ts +8 -4
- package/dist/display/Image.svelte +63 -13
- package/dist/display/Image.svelte.d.ts +15 -2
- package/dist/display/Indicator.svelte.d.ts +5 -3
- package/dist/display/Inset.svelte.d.ts +5 -0
- package/dist/display/Notification.svelte +104 -0
- package/dist/display/Notification.svelte.d.ts +42 -0
- package/dist/display/Popup.svelte.d.ts +10 -4
- package/dist/display/Table.svelte +3 -0
- package/dist/display/Table.svelte.d.ts +11 -0
- package/dist/display/Tag.svelte.d.ts +11 -7
- package/dist/display/Tooltip.svelte +1 -1
- package/dist/display/Tooltip.svelte.d.ts +9 -3
- package/dist/display/notifications.svelte.d.ts +21 -0
- package/dist/display/notifications.svelte.js +31 -0
- package/dist/form/Button.svelte.d.ts +12 -0
- package/dist/form/FieldActions.svelte +1 -1
- package/dist/form/FieldActions.svelte.d.ts +6 -0
- package/dist/form/FieldContainer.svelte +5 -0
- package/dist/form/FieldContainer.svelte.d.ts +6 -0
- package/dist/form/FieldContent.svelte +3 -0
- package/dist/form/FieldContent.svelte.d.ts +23 -0
- package/dist/form/FieldError.svelte.d.ts +4 -0
- package/dist/form/FieldSection.svelte +13 -1
- package/dist/form/FieldSection.svelte.d.ts +11 -0
- package/dist/form/Fieldset.svelte.d.ts +15 -7
- package/dist/form/Form.svelte +15 -12
- package/dist/form/Form.svelte.d.ts +10 -0
- package/dist/form/Input.svelte +4 -2
- package/dist/form/Input.svelte.d.ts +66 -55
- package/dist/form/InputLength.svelte.d.ts +4 -2
- package/dist/form/Label.svelte.d.ts +9 -3
- package/dist/form/Select.svelte +0 -1
- package/dist/form/Select.svelte.d.ts +44 -27
- package/dist/form/form.js +1 -1
- package/dist/grid/Column.svelte.d.ts +5 -0
- package/dist/grid/Grid.svelte.d.ts +6 -0
- package/dist/grid/Row.svelte.d.ts +6 -1
- package/dist/layout/Layout.svelte +2 -0
- package/dist/layout/Layout.svelte.d.ts +6 -2
- package/dist/layout/LayoutFooter.svelte.d.ts +3 -1
- package/dist/layout/LayoutGrid.svelte.d.ts +13 -5
- package/dist/layout/LayoutHeader.svelte.d.ts +13 -12
- package/dist/layout/LayoutSideMenu.svelte +54 -0
- package/dist/layout/LayoutSideMenu.svelte.d.ts +25 -0
- package/dist/layout/Overlay.svelte +20 -0
- package/dist/layout/Overlay.svelte.d.ts +35 -0
- package/dist/layout/OverlayContainer.svelte +28 -0
- package/dist/layout/OverlayContainer.svelte.d.ts +16 -0
- package/dist/layout/OverlayLayer.svelte +145 -0
- package/dist/layout/OverlayLayer.svelte.d.ts +22 -0
- package/dist/layout/PageContent.svelte +9 -1
- package/dist/layout/PageContent.svelte.d.ts +8 -3
- package/dist/layout/Theme.svelte +8 -0
- package/dist/layout/Theme.svelte.d.ts +6 -0
- package/dist/layout/UIContent.svelte.d.ts +5 -0
- package/dist/layout/overlays.svelte.d.ts +34 -0
- package/dist/layout/overlays.svelte.js +44 -0
- package/dist/nav/Breadcrumb.svelte.d.ts +9 -5
- package/dist/nav/Menu.svelte +43 -62
- package/dist/nav/Menu.svelte.d.ts +11 -4
- package/dist/nav/MenuItem.svelte +25 -7
- package/dist/nav/MenuItem.svelte.d.ts +9 -0
- package/dist/nav/NavMenu.svelte.d.ts +3 -1
- package/dist/nav/TabbedContent.svelte.d.ts +5 -3
- package/dist/nav/Tabs.svelte.d.ts +6 -4
- package/dist/style.css +74 -36
- package/dist/typo/Clamp.svelte.d.ts +8 -3
- package/dist/typo/H.svelte.d.ts +10 -5
- package/dist/typo/H1.svelte.d.ts +9 -4
- package/dist/typo/H2.svelte.d.ts +9 -4
- package/dist/typo/H3.svelte.d.ts +9 -4
- package/dist/typo/H4.svelte.d.ts +9 -4
- package/dist/typo/H5.svelte.d.ts +9 -4
- package/dist/typo/H6.svelte.d.ts +9 -4
- package/dist/typo/P.svelte.d.ts +9 -4
- package/dist/utils/StringOrComponentOrSnippet.svelte +3 -2
- package/dist/utils/StringOrComponentOrSnippet.svelte.d.ts +7 -0
- package/dist/utils/attr.d.ts +2 -2
- package/dist/utils/attr.js +2 -2
- package/dist/utils/dom.d.ts +15 -0
- package/dist/utils/dom.js +74 -0
- package/dist/utils/keyboard.svelte.d.ts +19 -0
- package/dist/utils/keyboard.svelte.js +22 -3
- package/dist/utils/transitions.d.ts +1 -0
- package/dist/utils/transitions.js +9 -2
- package/package.json +11 -9
@@ -3,11 +3,8 @@ import type { ComponentType, Snippet } from "svelte";
|
|
3
3
|
import type { MenuItem as Item } from "./MenuTypes.js";
|
4
4
|
declare const __propDef: {
|
5
5
|
props: {
|
6
|
-
|
7
|
-
open?: boolean | undefined;
|
8
|
-
/** The items to display in the menu */
|
6
|
+
open?: import("svelte").Bindable<boolean | undefined>;
|
9
7
|
items: Item[];
|
10
|
-
/** The trigger for the menu */
|
11
8
|
trigger: string | ComponentType | Snippet<[{
|
12
9
|
toggle: () => void;
|
13
10
|
isOpen: boolean;
|
@@ -22,5 +19,15 @@ export type MenuProps = typeof __propDef.props;
|
|
22
19
|
export type MenuEvents = typeof __propDef.events;
|
23
20
|
export type MenuSlots = typeof __propDef.slots;
|
24
21
|
export default class Menu extends SvelteComponent<MenuProps, MenuEvents, MenuSlots> {
|
22
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
23
|
+
open?: import("svelte").Bindable<boolean | undefined>;
|
24
|
+
items: Item[];
|
25
|
+
trigger: string | ComponentType | ((this: void, args_0: {
|
26
|
+
toggle: () => void;
|
27
|
+
isOpen: boolean;
|
28
|
+
}) => typeof import("svelte").SnippetReturn & {
|
29
|
+
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
30
|
+
});
|
31
|
+
}>);
|
25
32
|
}
|
26
33
|
export {};
|
package/dist/nav/MenuItem.svelte
CHANGED
@@ -2,12 +2,30 @@
|
|
2
2
|
import { isStatusColor } from "../utils/color.js";
|
3
3
|
import { isComponent, isSnippet } from "../utils/isSnippet.js";
|
4
4
|
let {
|
5
|
-
item
|
5
|
+
item,
|
6
|
+
index,
|
7
|
+
onmouseover,
|
8
|
+
keyboardHasFocus
|
6
9
|
} = $props();
|
7
10
|
let isSet = $derived(item.type !== "divider" ? isStatusColor(item.color) : false);
|
11
|
+
let el = $state(null);
|
12
|
+
function mouseover(e) {
|
13
|
+
if (onmouseover && item.type === "item") {
|
14
|
+
el?.focus();
|
15
|
+
}
|
16
|
+
}
|
8
17
|
</script>
|
9
18
|
|
10
|
-
|
19
|
+
<!-- svelte-ignore a11y_mouse_events_have_key_events -->
|
20
|
+
<li
|
21
|
+
onmouseover={mouseover}
|
22
|
+
data-index={index}
|
23
|
+
class:keyboardHasFocus
|
24
|
+
class:divider={item.type === 'divider'}
|
25
|
+
class:header={item.type === 'header'}
|
26
|
+
data-type="{item.type}"
|
27
|
+
style="--color: {isSet && item.type !== 'divider' ? 'var(--status-'+item.color+')' : (item.type !== 'divider' && item.color ? item.color : 'var(--menu-text)')}"
|
28
|
+
>
|
11
29
|
{#if item.type === 'divider'}
|
12
30
|
<hr />
|
13
31
|
{:else if item.type === 'header'}
|
@@ -16,7 +34,7 @@ let isSet = $derived(item.type !== "divider" ? isStatusColor(item.color) : false
|
|
16
34
|
</div>
|
17
35
|
{:else if item.type === 'item'}
|
18
36
|
{#if item.href}
|
19
|
-
<a href="{item.href}" class="Item">
|
37
|
+
<a href="{item.href}" class="Item" bind:this={el}>
|
20
38
|
<span class="Content">
|
21
39
|
<StringOrComponentOrSnippet content={item.content} />
|
22
40
|
</span>
|
@@ -25,7 +43,7 @@ let isSet = $derived(item.type !== "divider" ? isStatusColor(item.color) : false
|
|
25
43
|
{/if}
|
26
44
|
</a>
|
27
45
|
{:else if item.onclick}
|
28
|
-
<button type="button" onclick={(e) => item.type === 'item' ? item.onclick!(e, item) : undefined} class="Item">
|
46
|
+
<button type="button" onclick={(e) => item.type === 'item' ? item.onclick!(e, item) : undefined} class="Item" bind:this={el}>
|
29
47
|
<span class="Content">
|
30
48
|
<StringOrComponentOrSnippet content={item.content} />
|
31
49
|
</span>
|
@@ -74,7 +92,7 @@ let isSet = $derived(item.type !== "divider" ? isStatusColor(item.color) : false
|
|
74
92
|
font-weight: 600;
|
75
93
|
}
|
76
94
|
|
77
|
-
li .Item:not(.Custom):hover,
|
95
|
+
li:not(.keyboardHasFocus) .Item:not(.Custom):hover,
|
78
96
|
li .Item:not(.Custom):focus-visible {
|
79
97
|
background-color: var(--menu-bg-hover);
|
80
98
|
cursor: pointer;
|
@@ -103,11 +121,11 @@ let isSet = $derived(item.type !== "divider" ? isStatusColor(item.color) : false
|
|
103
121
|
}
|
104
122
|
|
105
123
|
li:first-child[data-type="item"] {
|
106
|
-
margin-block-start: 0.5rem;
|
124
|
+
margin-block-start: var(--menu-item-margin, 0.5rem);
|
107
125
|
}
|
108
126
|
|
109
127
|
li:first-child[data-type="header"]:has(+ li[data-type="item"]) {
|
110
|
-
margin-block-end: 0.
|
128
|
+
margin-block-end: 0.125rem;
|
111
129
|
}
|
112
130
|
|
113
131
|
li:nth-last-child(2)[data-type="item"]:has(+ li[data-type="header"]:last-child) {
|
@@ -3,6 +3,9 @@ import type { MenuItem as Item } from "./MenuTypes.js";
|
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
5
|
item: Item;
|
6
|
+
index: number;
|
7
|
+
onmouseover?: ((e: MouseEvent, item: Item, index: number) => void) | undefined;
|
8
|
+
keyboardHasFocus?: boolean | undefined;
|
6
9
|
};
|
7
10
|
events: {
|
8
11
|
[evt: string]: CustomEvent<any>;
|
@@ -13,5 +16,11 @@ export type MenuItemProps = typeof __propDef.props;
|
|
13
16
|
export type MenuItemEvents = typeof __propDef.events;
|
14
17
|
export type MenuItemSlots = typeof __propDef.slots;
|
15
18
|
export default class MenuItem extends SvelteComponent<MenuItemProps, MenuItemEvents, MenuItemSlots> {
|
19
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
20
|
+
item: Item;
|
21
|
+
index: number;
|
22
|
+
onmouseover?: ((e: MouseEvent, item: Item, index: number) => void) | undefined;
|
23
|
+
keyboardHasFocus?: boolean | undefined;
|
24
|
+
}>);
|
16
25
|
}
|
17
26
|
export {};
|
@@ -2,7 +2,6 @@ import { SvelteComponent } from "svelte";
|
|
2
2
|
import type { MenuItem } from "./MenuTypes.js";
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
|
-
/** Menu items to display */
|
6
5
|
items: MenuItem[];
|
7
6
|
};
|
8
7
|
events: {
|
@@ -14,5 +13,8 @@ export type NavMenuProps = typeof __propDef.props;
|
|
14
13
|
export type NavMenuEvents = typeof __propDef.events;
|
15
14
|
export type NavMenuSlots = typeof __propDef.slots;
|
16
15
|
export default class NavMenu extends SvelteComponent<NavMenuProps, NavMenuEvents, NavMenuSlots> {
|
16
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
17
|
+
items: MenuItem[];
|
18
|
+
}>);
|
17
19
|
}
|
18
20
|
export {};
|
@@ -2,11 +2,8 @@ import { SvelteComponent } from "svelte";
|
|
2
2
|
import type { TabbedContentItem } from "./MenuTypes.js";
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
|
-
/** Tab items to display. */
|
6
5
|
items: TabbedContentItem[];
|
7
|
-
/** Contain the element in a box. */
|
8
6
|
contained?: boolean | undefined;
|
9
|
-
/** Round the corners of the element if contained. */
|
10
7
|
rounded?: boolean | undefined;
|
11
8
|
};
|
12
9
|
events: {
|
@@ -18,5 +15,10 @@ export type TabbedContentProps = typeof __propDef.props;
|
|
18
15
|
export type TabbedContentEvents = typeof __propDef.events;
|
19
16
|
export type TabbedContentSlots = typeof __propDef.slots;
|
20
17
|
export default class TabbedContent extends SvelteComponent<TabbedContentProps, TabbedContentEvents, TabbedContentSlots> {
|
18
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
19
|
+
items: TabbedContentItem[];
|
20
|
+
contained?: boolean | undefined;
|
21
|
+
rounded?: boolean | undefined;
|
22
|
+
}>);
|
21
23
|
}
|
22
24
|
export {};
|
@@ -2,13 +2,9 @@ import { SvelteComponent } from "svelte";
|
|
2
2
|
import type { TabItem } from "./MenuTypes.js";
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
|
-
/** Tab items to display. */
|
6
5
|
items: TabItem[];
|
7
|
-
/** Underline the active tab. The underline will slide to the selected tab unless reduced motion is enabled. */
|
8
6
|
underline?: boolean | undefined;
|
9
|
-
/** Contain the element in a box. */
|
10
7
|
contained?: boolean | undefined;
|
11
|
-
/** Round the corners of the element if contained. */
|
12
8
|
rounded?: boolean | undefined;
|
13
9
|
};
|
14
10
|
events: {
|
@@ -20,5 +16,11 @@ export type TabsProps = typeof __propDef.props;
|
|
20
16
|
export type TabsEvents = typeof __propDef.events;
|
21
17
|
export type TabsSlots = typeof __propDef.slots;
|
22
18
|
export default class Tabs extends SvelteComponent<TabsProps, TabsEvents, TabsSlots> {
|
19
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
20
|
+
items: TabItem[];
|
21
|
+
underline?: boolean | undefined;
|
22
|
+
contained?: boolean | undefined;
|
23
|
+
rounded?: boolean | undefined;
|
24
|
+
}>);
|
23
25
|
}
|
24
26
|
export {};
|
package/dist/style.css
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
--l-bg-app: hsl(215, 3%, 99.5%);
|
44
44
|
--l-bg-subtle: hsl(240, 7%, 97%);
|
45
45
|
--l-bg-overlay: rgba(255,255,255,0.85);
|
46
|
-
--l-shadow: rgba(0, 0, 0, 0.
|
46
|
+
--l-shadow: rgba(0, 0, 0, 0.15);
|
47
47
|
/* border */
|
48
48
|
--l-border-color: hsl(215, 6%, 80%);
|
49
49
|
--l-border-subtle-color: hsl(215, 5%, 87%);
|
@@ -54,7 +54,7 @@
|
|
54
54
|
--l-focus-outline: var(--focus-size) solid var(--l-focus-color);
|
55
55
|
/* text */
|
56
56
|
--l-text: hsl(240, 2%, 20%);
|
57
|
-
--l-text-subtle: hsl(240, 2%,
|
57
|
+
--l-text-subtle: hsl(240, 2%, 40%);
|
58
58
|
--l-text-highlight: hsl(206, 99%, 47%);
|
59
59
|
--l-text-heading: hsl(240, 3%, 12%);
|
60
60
|
--l-text-link: hsl(215, 70%, 55%);
|
@@ -128,6 +128,8 @@
|
|
128
128
|
--l-status-warn: #ffc107;
|
129
129
|
--l-status-info: #038ac8;
|
130
130
|
--l-status-task: #007bff;
|
131
|
+
/* scrollbar */
|
132
|
+
--l-scrollbar-color: hsl(215, 8%, 70%) hsl(215, 20%, 98%);
|
131
133
|
|
132
134
|
/**
|
133
135
|
* Dark theme
|
@@ -224,21 +226,22 @@
|
|
224
226
|
--d-status-warn: #ffeb3b;
|
225
227
|
--d-status-info: #0362c8;
|
226
228
|
--d-status-task: #1e88e5;
|
229
|
+
--d-scrollbar-color: hsl(215, 10%, 55%) hsla(215, 10%, 35%, 0.5);
|
227
230
|
}
|
228
231
|
|
229
|
-
@media(
|
232
|
+
@media(min-width: 1280px) {
|
230
233
|
:root {
|
231
234
|
--grid-size: 16px;
|
232
235
|
}
|
233
236
|
}
|
234
237
|
|
235
|
-
@media(max-width:
|
238
|
+
@media(max-width: 1280px) {
|
236
239
|
:root {
|
237
240
|
--grid-size: 14px;
|
238
241
|
}
|
239
242
|
}
|
240
243
|
|
241
|
-
@media(max-width:
|
244
|
+
@media(max-width: 640px) {
|
242
245
|
:root {
|
243
246
|
--grid-size: 13px;
|
244
247
|
}
|
@@ -246,14 +249,14 @@
|
|
246
249
|
|
247
250
|
body {
|
248
251
|
font-family: var(--font-family);
|
249
|
-
font-size:
|
252
|
+
font-size: 100%;
|
250
253
|
text-rendering: optimizeLegibility;
|
251
254
|
-webkit-font-smoothing: antialiased;
|
252
255
|
-moz-osx-font-smoothing: grayscale;
|
253
256
|
scrollbar-width: thin;
|
254
257
|
font-kerning: auto;
|
255
258
|
min-width: 280px;
|
256
|
-
|
259
|
+
overscroll-behavior: none;
|
257
260
|
}
|
258
261
|
|
259
262
|
body * {
|
@@ -262,12 +265,23 @@ body * {
|
|
262
265
|
padding: 0;
|
263
266
|
}
|
264
267
|
|
268
|
+
html:has(.Layout .Theme.dark) {
|
269
|
+
--scrollbar-color: var(--d-scrollbar-color);
|
270
|
+
}
|
271
|
+
|
272
|
+
html:has(.Layout .Theme.light) {
|
273
|
+
--scrollbar-color: var(--l-scrollbar-color);
|
274
|
+
}
|
275
|
+
|
265
276
|
html, body, .app {
|
266
277
|
padding: 0;
|
267
278
|
margin: 0;
|
268
279
|
inline-size: 100%;
|
269
280
|
min-block-size: 100%;
|
270
281
|
block-size: 100%;
|
282
|
+
scrollbar-width: thin;
|
283
|
+
scrollbar-color: var(--scrollbar-color);
|
284
|
+
scrollbar-gutter: stable;
|
271
285
|
}
|
272
286
|
|
273
287
|
html {
|
@@ -279,6 +293,7 @@ html, body {
|
|
279
293
|
}
|
280
294
|
|
281
295
|
input, textarea, select, button {
|
296
|
+
touch-action: manipulation;
|
282
297
|
font-family: var(--font-family);
|
283
298
|
}
|
284
299
|
|
@@ -290,6 +305,26 @@ input, textarea, select, button {
|
|
290
305
|
transform: translateZ(0);
|
291
306
|
}
|
292
307
|
|
308
|
+
.scrollbar {
|
309
|
+
width: 8px;
|
310
|
+
height: 100%;
|
311
|
+
background: transparent;
|
312
|
+
position: absolute;
|
313
|
+
top: 0;
|
314
|
+
right: 0;
|
315
|
+
z-index: 1000;
|
316
|
+
}
|
317
|
+
|
318
|
+
.scrollbar .grabber {
|
319
|
+
width: calc(100% - 2px);
|
320
|
+
height: 100px;
|
321
|
+
background: var(--text);
|
322
|
+
cursor: grab;
|
323
|
+
border-radius: 9999px;
|
324
|
+
position: absolute;
|
325
|
+
left: 1px;
|
326
|
+
}
|
327
|
+
|
293
328
|
/**
|
294
329
|
* Typography
|
295
330
|
*/
|
@@ -506,7 +541,8 @@ button {
|
|
506
541
|
padding: 0;
|
507
542
|
}
|
508
543
|
|
509
|
-
.button
|
544
|
+
.button,
|
545
|
+
::file-selector-button {
|
510
546
|
font-size: var(--font-size, 1em);
|
511
547
|
line-height: 1.5;
|
512
548
|
font-weight: 500;
|
@@ -582,43 +618,45 @@ button:active,
|
|
582
618
|
|
583
619
|
@scope (.PageContent) to (.UIContent) {
|
584
620
|
|
585
|
-
.button { margin-block-start: 0.5rem; }
|
586
|
-
.button.lg { margin-block-start: 0.75rem; }
|
587
|
-
.button.xl { margin-block-start: 1rem; }
|
588
|
-
.button:has(+.button) { margin-inline-end: 0.5rem; }
|
589
|
-
.button.lg:has(+.button) { margin-inline-end: 1rem; }
|
590
|
-
.button.xl:has(+.button) { margin-inline-end: 1.5rem; }
|
591
|
-
|
592
|
-
p { margin-block: 0.75rem; }
|
593
|
-
h1 { margin-block: 3rem 1.5rem; }
|
594
|
-
h2 { margin-block: 3rem 1.5rem; }
|
621
|
+
.button { margin-block-start: calc(0.5rem * var(--margin-scale, 1)); }
|
622
|
+
.button.lg { margin-block-start: calc(0.75rem * var(--margin-scale, 1)); }
|
623
|
+
.button.xl { margin-block-start: calc(1rem * var(--margin-scale, 1)); }
|
624
|
+
.button:has(+.button) { margin-inline-end: calc(0.5rem * var(--margin-scale, 1)); }
|
625
|
+
.button.lg:has(+.button) { margin-inline-end: calc(1rem * var(--margin-scale, 1)); }
|
626
|
+
.button.xl:has(+.button) { margin-inline-end: calc(1.5rem * var(--margin-scale, 1)); }
|
627
|
+
|
628
|
+
p { margin-block: calc(0.75rem * var(--margin-scale, 1)); }
|
629
|
+
h1 { margin-block: calc(3rem * var(--margin-scale, 1)) calc(1.5rem * var(--margin-scale, 1)); }
|
630
|
+
h2 { margin-block: calc(3rem * var(--margin-scale, 1)) calc(1.5rem * var(--margin-scale, 1)); }
|
595
631
|
h1+h2 {
|
596
632
|
margin-block-start: 0;
|
597
633
|
}
|
598
634
|
h1:has(+h2) {
|
599
|
-
margin-block-end: 0.75rem;
|
635
|
+
margin-block-end: calc(0.75rem * var(--margin-scale, 1));
|
636
|
+
}
|
637
|
+
h3 {
|
638
|
+
margin-block: calc(2rem * var(--margin-scale, 1)) calc(1.5rem * var(--margin-scale, 1));
|
600
639
|
}
|
601
|
-
h3 { margin-block: 2rem 1.5rem; }
|
602
640
|
h3:has(+p, +ul, +ol) {
|
603
|
-
margin-block-end: 0.75rem;
|
641
|
+
margin-block-end: calc(0.75rem * var(--margin-scale, 1));
|
604
642
|
}
|
605
643
|
h4,
|
606
644
|
h5 {
|
607
|
-
margin-block: 1.5rem 0.5rem;
|
645
|
+
margin-block: calc(1.5rem * var(--margin-scale, 1)) calc(0.5rem * var(--margin-scale, 1));
|
608
646
|
}
|
609
647
|
p {
|
610
648
|
hyphens: auto;
|
611
649
|
}
|
612
650
|
|
613
651
|
ul, ol {
|
614
|
-
margin-block: 1.5rem;
|
652
|
+
margin-block: calc(1.5rem * var(--margin-scale, 1));
|
615
653
|
}
|
616
654
|
ul {
|
617
655
|
list-style-type: "– ";
|
618
656
|
list-style-position: outside;
|
619
657
|
}
|
620
658
|
li {
|
621
|
-
margin-block: 0.5em;
|
659
|
+
margin-block: calc(0.5em * var(--margin-scale, 1));
|
622
660
|
}
|
623
661
|
@media(max-width: 960px) {
|
624
662
|
ul, ol {
|
@@ -628,39 +666,39 @@ button:active,
|
|
628
666
|
margin-inline-start: 0;
|
629
667
|
}
|
630
668
|
ul li:before {
|
631
|
-
margin-inline-start: 0.5rem;
|
669
|
+
margin-inline-start: calc(0.5rem * var(--margin-scale, 1));
|
632
670
|
}
|
633
671
|
}
|
634
672
|
li p {
|
635
|
-
margin-block: 0.5rem;
|
673
|
+
margin-block: calc(0.5rem * var(--margin-scale, 1));
|
636
674
|
}
|
637
675
|
li:not(:last-child) p:last-child {
|
638
|
-
margin-block-end: 0.85em;
|
676
|
+
margin-block-end: calc(0.85em * var(--margin-scale, 1));
|
639
677
|
}
|
640
678
|
ul:has(+p), ol:has(+p) {
|
641
|
-
margin-block-end: 1em;
|
679
|
+
margin-block-end: calc(1em * var(--margin-scale, 1));
|
642
680
|
}
|
643
681
|
|
644
682
|
p+ul, p+ol {
|
645
|
-
margin-block-start: 1em;
|
683
|
+
margin-block-start: calc(1em * var(--margin-scale, 1));
|
646
684
|
}
|
647
685
|
|
648
686
|
h3+p,
|
649
687
|
h3+ul,
|
650
688
|
h3+ol {
|
651
|
-
margin-block-start: 1em;
|
689
|
+
margin-block-start: calc(1em * var(--margin-scale, 1));
|
652
690
|
}
|
653
691
|
|
654
692
|
h4+p,
|
655
693
|
h4+ul,
|
656
694
|
h4+ol {
|
657
|
-
margin-block-start: 0.75em;
|
695
|
+
margin-block-start: calc(0.75em * var(--margin-scale, 1));
|
658
696
|
}
|
659
697
|
|
660
698
|
h5+p,
|
661
699
|
h5+ul,
|
662
700
|
h5+ol {
|
663
|
-
margin-block-start: 0.5em;
|
701
|
+
margin-block-start: calc(0.5em * var(--margin-scale, 1));
|
664
702
|
}
|
665
703
|
|
666
704
|
/** Links */
|
@@ -671,7 +709,7 @@ button:active,
|
|
671
709
|
|
672
710
|
/** Dividers */
|
673
711
|
hr {
|
674
|
-
margin-block: 2em;
|
712
|
+
margin-block: calc(2em * var(--margin-scale, 1));
|
675
713
|
border-top: var(--border-subtle);
|
676
714
|
}
|
677
715
|
|
@@ -720,7 +758,7 @@ button:active,
|
|
720
758
|
|
721
759
|
/** Tables */
|
722
760
|
table {
|
723
|
-
margin-block: 1.5em;
|
761
|
+
margin-block: calc(1.5em * var(--margin-scale, 1));
|
724
762
|
border-collapse: collapse;
|
725
763
|
font-size: var(--font-size, 1em);
|
726
764
|
}
|
@@ -789,12 +827,12 @@ button:active,
|
|
789
827
|
/** Forms */
|
790
828
|
fieldset label,
|
791
829
|
fieldset input {
|
792
|
-
margin-block-end: 0.5rem;
|
830
|
+
margin-block-end: calc(0.5rem * var(--margin-scale, 1));
|
793
831
|
}
|
794
832
|
|
795
833
|
/** Blockquote */
|
796
834
|
blockquote {
|
797
|
-
margin-block: 1.5rem;
|
835
|
+
margin-block: calc(1.5rem * var(--margin-scale, 1));
|
798
836
|
padding: 1.5rem 1.5rem;
|
799
837
|
inline-size: calc(100% + 2rem);
|
800
838
|
margin-inline: -1rem;
|
@@ -3,11 +3,8 @@ import { type Snippet } from "svelte";
|
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
5
|
children: Snippet;
|
6
|
-
/** Clamp in the logical inline direction */
|
7
6
|
inline?: string | undefined;
|
8
|
-
/** Clamp in the logical block direction */
|
9
7
|
block?: string | undefined;
|
10
|
-
/** Clip the text */
|
11
8
|
clip?: boolean | undefined;
|
12
9
|
};
|
13
10
|
events: {
|
@@ -19,5 +16,13 @@ export type ClampProps = typeof __propDef.props;
|
|
19
16
|
export type ClampEvents = typeof __propDef.events;
|
20
17
|
export type ClampSlots = typeof __propDef.slots;
|
21
18
|
export default class Clamp extends SvelteComponent<ClampProps, ClampEvents, ClampSlots> {
|
19
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
20
|
+
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
21
|
+
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
22
|
+
};
|
23
|
+
inline?: string | undefined;
|
24
|
+
block?: string | undefined;
|
25
|
+
clip?: boolean | undefined;
|
26
|
+
}>);
|
22
27
|
}
|
23
28
|
export {};
|
package/dist/typo/H.svelte.d.ts
CHANGED
@@ -3,15 +3,10 @@ import { type Snippet } from "svelte";
|
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
5
|
children: Snippet;
|
6
|
-
/** Language of the element */
|
7
6
|
lang?: string | undefined;
|
8
|
-
/** The level of the heading. */
|
9
7
|
level?: 5 | 3 | 2 | 1 | 4 | 6 | undefined;
|
10
|
-
/** Center the text. */
|
11
8
|
center?: boolean | undefined;
|
12
|
-
/** Make the text subtle. */
|
13
9
|
subtle?: boolean | undefined;
|
14
|
-
/** Add a horizontal rule below the text. */
|
15
10
|
hr?: boolean | undefined;
|
16
11
|
};
|
17
12
|
events: {
|
@@ -23,5 +18,15 @@ export type HProps = typeof __propDef.props;
|
|
23
18
|
export type HEvents = typeof __propDef.events;
|
24
19
|
export type HSlots = typeof __propDef.slots;
|
25
20
|
export default class H extends SvelteComponent<HProps, HEvents, HSlots> {
|
21
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
22
|
+
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
23
|
+
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
24
|
+
};
|
25
|
+
lang?: string | undefined;
|
26
|
+
level?: 5 | 3 | 2 | 1 | 4 | 6 | undefined;
|
27
|
+
center?: boolean | undefined;
|
28
|
+
subtle?: boolean | undefined;
|
29
|
+
hr?: boolean | undefined;
|
30
|
+
}>);
|
26
31
|
}
|
27
32
|
export {};
|
package/dist/typo/H1.svelte.d.ts
CHANGED
@@ -2,13 +2,9 @@ import { SvelteComponent } from "svelte";
|
|
2
2
|
import { type Snippet } from "svelte";
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
|
-
/** Center the text. */
|
6
5
|
center?: boolean | undefined;
|
7
|
-
/** Language of the element */
|
8
6
|
lang?: string | undefined;
|
9
|
-
/** Add a horizontal rule below the text. */
|
10
7
|
hr?: boolean | undefined;
|
11
|
-
/** Make the text subtle. */
|
12
8
|
subtle?: boolean | undefined;
|
13
9
|
children: Snippet;
|
14
10
|
};
|
@@ -21,5 +17,14 @@ export type H1Props = typeof __propDef.props;
|
|
21
17
|
export type H1Events = typeof __propDef.events;
|
22
18
|
export type H1Slots = typeof __propDef.slots;
|
23
19
|
export default class H1 extends SvelteComponent<H1Props, H1Events, H1Slots> {
|
20
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
21
|
+
center?: boolean | undefined;
|
22
|
+
lang?: string | undefined;
|
23
|
+
hr?: boolean | undefined;
|
24
|
+
subtle?: boolean | undefined;
|
25
|
+
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
26
|
+
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
27
|
+
};
|
28
|
+
}>);
|
24
29
|
}
|
25
30
|
export {};
|
package/dist/typo/H2.svelte.d.ts
CHANGED
@@ -2,13 +2,9 @@ import { SvelteComponent } from "svelte";
|
|
2
2
|
import { type Snippet } from "svelte";
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
|
-
/** Center the text. */
|
6
5
|
center?: boolean | undefined;
|
7
|
-
/** Language of the element */
|
8
6
|
lang?: string | undefined;
|
9
|
-
/** Add a horizontal rule below the text. */
|
10
7
|
hr?: boolean | undefined;
|
11
|
-
/** Make the text subtle. */
|
12
8
|
subtle?: boolean | undefined;
|
13
9
|
children: Snippet;
|
14
10
|
};
|
@@ -21,5 +17,14 @@ export type H2Props = typeof __propDef.props;
|
|
21
17
|
export type H2Events = typeof __propDef.events;
|
22
18
|
export type H2Slots = typeof __propDef.slots;
|
23
19
|
export default class H2 extends SvelteComponent<H2Props, H2Events, H2Slots> {
|
20
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
21
|
+
center?: boolean | undefined;
|
22
|
+
lang?: string | undefined;
|
23
|
+
hr?: boolean | undefined;
|
24
|
+
subtle?: boolean | undefined;
|
25
|
+
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
26
|
+
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
27
|
+
};
|
28
|
+
}>);
|
24
29
|
}
|
25
30
|
export {};
|
package/dist/typo/H3.svelte.d.ts
CHANGED
@@ -2,13 +2,9 @@ import { SvelteComponent } from "svelte";
|
|
2
2
|
import { type Snippet } from "svelte";
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
|
-
/** Center the text. */
|
6
5
|
center?: boolean | undefined;
|
7
|
-
/** Language of the element */
|
8
6
|
lang?: string | undefined;
|
9
|
-
/** Add a horizontal rule below the text. */
|
10
7
|
hr?: boolean | undefined;
|
11
|
-
/** Make the text subtle. */
|
12
8
|
subtle?: boolean | undefined;
|
13
9
|
children: Snippet;
|
14
10
|
};
|
@@ -21,5 +17,14 @@ export type H3Props = typeof __propDef.props;
|
|
21
17
|
export type H3Events = typeof __propDef.events;
|
22
18
|
export type H3Slots = typeof __propDef.slots;
|
23
19
|
export default class H3 extends SvelteComponent<H3Props, H3Events, H3Slots> {
|
20
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
21
|
+
center?: boolean | undefined;
|
22
|
+
lang?: string | undefined;
|
23
|
+
hr?: boolean | undefined;
|
24
|
+
subtle?: boolean | undefined;
|
25
|
+
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
26
|
+
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
27
|
+
};
|
28
|
+
}>);
|
24
29
|
}
|
25
30
|
export {};
|
package/dist/typo/H4.svelte.d.ts
CHANGED
@@ -2,13 +2,9 @@ import { SvelteComponent } from "svelte";
|
|
2
2
|
import { type Snippet } from "svelte";
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
|
-
/** Center the text. */
|
6
5
|
center?: boolean | undefined;
|
7
|
-
/** Language of the element */
|
8
6
|
lang?: string | undefined;
|
9
|
-
/** Add a horizontal rule below the text. */
|
10
7
|
hr?: boolean | undefined;
|
11
|
-
/** Make the text subtle. */
|
12
8
|
subtle?: boolean | undefined;
|
13
9
|
children: Snippet;
|
14
10
|
};
|
@@ -21,5 +17,14 @@ export type H4Props = typeof __propDef.props;
|
|
21
17
|
export type H4Events = typeof __propDef.events;
|
22
18
|
export type H4Slots = typeof __propDef.slots;
|
23
19
|
export default class H4 extends SvelteComponent<H4Props, H4Events, H4Slots> {
|
20
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
21
|
+
center?: boolean | undefined;
|
22
|
+
lang?: string | undefined;
|
23
|
+
hr?: boolean | undefined;
|
24
|
+
subtle?: boolean | undefined;
|
25
|
+
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
26
|
+
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
27
|
+
};
|
28
|
+
}>);
|
24
29
|
}
|
25
30
|
export {};
|
package/dist/typo/H5.svelte.d.ts
CHANGED
@@ -2,13 +2,9 @@ import { SvelteComponent } from "svelte";
|
|
2
2
|
import { type Snippet } from "svelte";
|
3
3
|
declare const __propDef: {
|
4
4
|
props: {
|
5
|
-
/** Center the text. */
|
6
5
|
center?: boolean | undefined;
|
7
|
-
/** Language of the element */
|
8
6
|
lang?: string | undefined;
|
9
|
-
/** Add a horizontal rule below the text. */
|
10
7
|
hr?: boolean | undefined;
|
11
|
-
/** Make the text subtle. */
|
12
8
|
subtle?: boolean | undefined;
|
13
9
|
children: Snippet;
|
14
10
|
};
|
@@ -21,5 +17,14 @@ export type H5Props = typeof __propDef.props;
|
|
21
17
|
export type H5Events = typeof __propDef.events;
|
22
18
|
export type H5Slots = typeof __propDef.slots;
|
23
19
|
export default class H5 extends SvelteComponent<H5Props, H5Events, H5Slots> {
|
20
|
+
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
21
|
+
center?: boolean | undefined;
|
22
|
+
lang?: string | undefined;
|
23
|
+
hr?: boolean | undefined;
|
24
|
+
subtle?: boolean | undefined;
|
25
|
+
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
26
|
+
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
27
|
+
};
|
28
|
+
}>);
|
24
29
|
}
|
25
30
|
export {};
|