lutra 0.0.17 → 0.0.19

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.
Files changed (101) hide show
  1. package/dist/data/Stat.svelte.d.ts +12 -6
  2. package/dist/display/Avatar.svelte.d.ts +5 -0
  3. package/dist/display/Badge.svelte.d.ts +10 -6
  4. package/dist/display/Callout.svelte +8 -4
  5. package/dist/display/Callout.svelte.d.ts +11 -9
  6. package/dist/display/Close.svelte +58 -0
  7. package/dist/display/Close.svelte.d.ts +21 -0
  8. package/dist/display/Code.svelte.d.ts +10 -8
  9. package/dist/display/ContextTip.svelte +1 -2
  10. package/dist/display/ContextTip.svelte.d.ts +5 -0
  11. package/dist/display/Details.svelte.d.ts +11 -5
  12. package/dist/display/Hero.svelte.d.ts +9 -4
  13. package/dist/display/Icon.svelte +4 -6
  14. package/dist/display/Icon.svelte.d.ts +6 -0
  15. package/dist/display/IconButton.svelte +2 -3
  16. package/dist/display/IconButton.svelte.d.ts +8 -4
  17. package/dist/display/Image.svelte +63 -13
  18. package/dist/display/Image.svelte.d.ts +15 -2
  19. package/dist/display/Indicator.svelte.d.ts +5 -3
  20. package/dist/display/Inset.svelte.d.ts +5 -0
  21. package/dist/display/Notification.svelte +104 -0
  22. package/dist/display/Notification.svelte.d.ts +42 -0
  23. package/dist/display/Popup.svelte.d.ts +10 -4
  24. package/dist/display/Table.svelte +3 -0
  25. package/dist/display/Table.svelte.d.ts +11 -0
  26. package/dist/display/Tag.svelte.d.ts +11 -7
  27. package/dist/display/Tooltip.svelte.d.ts +9 -3
  28. package/dist/display/notifications.svelte.d.ts +21 -0
  29. package/dist/display/notifications.svelte.js +31 -0
  30. package/dist/form/Button.svelte.d.ts +12 -0
  31. package/dist/form/FieldActions.svelte +1 -1
  32. package/dist/form/FieldActions.svelte.d.ts +6 -0
  33. package/dist/form/FieldContainer.svelte +5 -0
  34. package/dist/form/FieldContainer.svelte.d.ts +6 -0
  35. package/dist/form/FieldContent.svelte +3 -0
  36. package/dist/form/FieldContent.svelte.d.ts +23 -0
  37. package/dist/form/FieldError.svelte.d.ts +4 -0
  38. package/dist/form/FieldSection.svelte +15 -1
  39. package/dist/form/FieldSection.svelte.d.ts +11 -0
  40. package/dist/form/Fieldset.svelte.d.ts +15 -7
  41. package/dist/form/Form.svelte +14 -12
  42. package/dist/form/Form.svelte.d.ts +10 -0
  43. package/dist/form/Input.svelte +4 -2
  44. package/dist/form/Input.svelte.d.ts +66 -55
  45. package/dist/form/InputLength.svelte.d.ts +4 -2
  46. package/dist/form/Label.svelte.d.ts +9 -3
  47. package/dist/form/Select.svelte +0 -1
  48. package/dist/form/Select.svelte.d.ts +44 -27
  49. package/dist/form/form.js +1 -1
  50. package/dist/grid/Column.svelte.d.ts +5 -0
  51. package/dist/grid/Grid.svelte.d.ts +6 -0
  52. package/dist/grid/Row.svelte.d.ts +6 -1
  53. package/dist/layout/Layout.svelte +2 -0
  54. package/dist/layout/Layout.svelte.d.ts +6 -2
  55. package/dist/layout/LayoutFooter.svelte.d.ts +3 -1
  56. package/dist/layout/LayoutGrid.svelte.d.ts +13 -5
  57. package/dist/layout/LayoutHeader.svelte.d.ts +13 -12
  58. package/dist/layout/LayoutSideMenu.svelte +54 -0
  59. package/dist/layout/LayoutSideMenu.svelte.d.ts +25 -0
  60. package/dist/layout/Overlay.svelte +20 -0
  61. package/dist/layout/Overlay.svelte.d.ts +35 -0
  62. package/dist/layout/OverlayContainer.svelte +28 -0
  63. package/dist/layout/OverlayContainer.svelte.d.ts +16 -0
  64. package/dist/layout/OverlayLayer.svelte +145 -0
  65. package/dist/layout/OverlayLayer.svelte.d.ts +22 -0
  66. package/dist/layout/PageContent.svelte +9 -1
  67. package/dist/layout/PageContent.svelte.d.ts +8 -3
  68. package/dist/layout/Theme.svelte +8 -0
  69. package/dist/layout/Theme.svelte.d.ts +6 -0
  70. package/dist/layout/UIContent.svelte.d.ts +5 -0
  71. package/dist/layout/overlays.svelte.d.ts +34 -0
  72. package/dist/layout/overlays.svelte.js +44 -0
  73. package/dist/nav/Breadcrumb.svelte.d.ts +9 -5
  74. package/dist/nav/Menu.svelte +43 -62
  75. package/dist/nav/Menu.svelte.d.ts +11 -4
  76. package/dist/nav/MenuItem.svelte +25 -7
  77. package/dist/nav/MenuItem.svelte.d.ts +9 -0
  78. package/dist/nav/NavMenu.svelte.d.ts +3 -1
  79. package/dist/nav/TabbedContent.svelte.d.ts +5 -3
  80. package/dist/nav/Tabs.svelte.d.ts +6 -4
  81. package/dist/style.css +74 -36
  82. package/dist/typo/Clamp.svelte.d.ts +8 -3
  83. package/dist/typo/H.svelte.d.ts +10 -5
  84. package/dist/typo/H1.svelte.d.ts +9 -4
  85. package/dist/typo/H2.svelte.d.ts +9 -4
  86. package/dist/typo/H3.svelte.d.ts +9 -4
  87. package/dist/typo/H4.svelte.d.ts +9 -4
  88. package/dist/typo/H5.svelte.d.ts +9 -4
  89. package/dist/typo/H6.svelte.d.ts +9 -4
  90. package/dist/typo/P.svelte.d.ts +9 -4
  91. package/dist/utils/StringOrComponentOrSnippet.svelte +3 -2
  92. package/dist/utils/StringOrComponentOrSnippet.svelte.d.ts +7 -0
  93. package/dist/utils/attr.d.ts +2 -2
  94. package/dist/utils/attr.js +2 -2
  95. package/dist/utils/dom.d.ts +15 -0
  96. package/dist/utils/dom.js +74 -0
  97. package/dist/utils/keyboard.svelte.d.ts +19 -0
  98. package/dist/utils/keyboard.svelte.js +22 -3
  99. package/dist/utils/transitions.d.ts +1 -0
  100. package/dist/utils/transitions.js +9 -2
  101. 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
- /** Whether the menu is open */
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 {};
@@ -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
- <li class:divider={item.type === 'divider'} class:header={item.type === 'header'} data-type="{item.type}" style="--color: {isSet && item.type !== 'divider' ? 'var(--status-'+item.color+')' : (item.type !== 'divider' && item.color ? item.color : 'var(--menu-text)')}">
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.5rem;
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.1);
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%, 50%);
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(max-width: 1280px) {
232
+ @media(min-width: 1280px) {
230
233
  :root {
231
234
  --grid-size: 16px;
232
235
  }
233
236
  }
234
237
 
235
- @media(max-width: 1024px) {
238
+ @media(max-width: 1280px) {
236
239
  :root {
237
240
  --grid-size: 14px;
238
241
  }
239
242
  }
240
243
 
241
- @media(max-width: 480px) {
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: var(--grid-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
- scrollbar-gutter: stable both-edges;
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 {};
@@ -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 {};
@@ -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 {};
@@ -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 {};
@@ -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 {};
@@ -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 {};
@@ -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 {};