lutra 0.0.20 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +4 -24
  2. package/dist/components/AspectRatio.svelte +26 -0
  3. package/dist/components/AspectRatio.svelte.d.ts +8 -0
  4. package/dist/components/Dialog.svelte +78 -0
  5. package/dist/components/Dialog.svelte.d.ts +14 -0
  6. package/dist/components/Layout.svelte +32 -0
  7. package/dist/components/Layout.svelte.d.ts +11 -0
  8. package/dist/components/PageContent.svelte +108 -0
  9. package/dist/components/PageContent.svelte.d.ts +38 -0
  10. package/dist/components/Theme.svelte +87 -0
  11. package/dist/components/Theme.svelte.d.ts +17 -0
  12. package/dist/{display → components}/Tooltip.svelte +37 -11
  13. package/dist/components/Tooltip.svelte.d.ts +12 -0
  14. package/dist/config.d.ts +30 -0
  15. package/dist/config.js +18 -0
  16. package/dist/css/0-layers.css +1 -0
  17. package/dist/css/1-props.css +775 -0
  18. package/dist/css/2-base.css +209 -0
  19. package/dist/css/3-typo.css +65 -0
  20. package/dist/css/4-layout.css +5 -0
  21. package/dist/css/5-media.css +21 -0
  22. package/dist/css/lutra.css +6 -0
  23. package/dist/index.d.ts +5 -1
  24. package/dist/index.js +5 -2
  25. package/dist/types.d.ts +39 -0
  26. package/dist/types.js +25 -0
  27. package/package.json +29 -75
  28. package/dist/data/Stat.svelte +0 -89
  29. package/dist/data/Stat.svelte.d.ts +0 -39
  30. package/dist/data/index.d.ts +0 -1
  31. package/dist/data/index.js +0 -1
  32. package/dist/display/Avatar.svelte +0 -61
  33. package/dist/display/Avatar.svelte.d.ts +0 -23
  34. package/dist/display/Badge.svelte +0 -93
  35. package/dist/display/Badge.svelte.d.ts +0 -34
  36. package/dist/display/Callout.svelte +0 -109
  37. package/dist/display/Callout.svelte.d.ts +0 -36
  38. package/dist/display/Close.svelte +0 -58
  39. package/dist/display/Close.svelte.d.ts +0 -21
  40. package/dist/display/Code.svelte +0 -195
  41. package/dist/display/Code.svelte.d.ts +0 -31
  42. package/dist/display/ContextTip.svelte +0 -26
  43. package/dist/display/ContextTip.svelte.d.ts +0 -22
  44. package/dist/display/Details.svelte +0 -49
  45. package/dist/display/Details.svelte.d.ts +0 -32
  46. package/dist/display/Hero.svelte +0 -50
  47. package/dist/display/Hero.svelte.d.ts +0 -30
  48. package/dist/display/Icon.svelte +0 -40
  49. package/dist/display/Icon.svelte.d.ts +0 -24
  50. package/dist/display/IconButton.svelte +0 -84
  51. package/dist/display/IconButton.svelte.d.ts +0 -30
  52. package/dist/display/Image.svelte +0 -91
  53. package/dist/display/Image.svelte.d.ts +0 -37
  54. package/dist/display/Indicator.svelte +0 -352
  55. package/dist/display/Indicator.svelte.d.ts +0 -24
  56. package/dist/display/Inset.svelte +0 -18
  57. package/dist/display/Inset.svelte.d.ts +0 -22
  58. package/dist/display/Notification.svelte +0 -104
  59. package/dist/display/Notification.svelte.d.ts +0 -42
  60. package/dist/display/Popup.svelte +0 -111
  61. package/dist/display/Popup.svelte.d.ts +0 -30
  62. package/dist/display/Table.svelte +0 -24
  63. package/dist/display/Table.svelte.d.ts +0 -34
  64. package/dist/display/Tag.svelte +0 -90
  65. package/dist/display/Tag.svelte.d.ts +0 -35
  66. package/dist/display/Tooltip.svelte.d.ts +0 -28
  67. package/dist/display/index.d.ts +0 -14
  68. package/dist/display/index.js +0 -14
  69. package/dist/display/notifications.svelte.d.ts +0 -21
  70. package/dist/display/notifications.svelte.js +0 -31
  71. package/dist/form/Button.svelte +0 -34
  72. package/dist/form/Button.svelte.d.ts +0 -36
  73. package/dist/form/FieldActions.svelte +0 -46
  74. package/dist/form/FieldActions.svelte.d.ts +0 -24
  75. package/dist/form/FieldContainer.svelte +0 -37
  76. package/dist/form/FieldContainer.svelte.d.ts +0 -24
  77. package/dist/form/FieldContent.svelte +0 -134
  78. package/dist/form/FieldContent.svelte.d.ts +0 -59
  79. package/dist/form/FieldError.svelte +0 -14
  80. package/dist/form/FieldError.svelte.d.ts +0 -21
  81. package/dist/form/FieldSection.svelte +0 -86
  82. package/dist/form/FieldSection.svelte.d.ts +0 -34
  83. package/dist/form/Fieldset.svelte +0 -68
  84. package/dist/form/Fieldset.svelte.d.ts +0 -42
  85. package/dist/form/Form.svelte +0 -98
  86. package/dist/form/Form.svelte.d.ts +0 -33
  87. package/dist/form/Input.svelte +0 -287
  88. package/dist/form/Input.svelte.d.ts +0 -142
  89. package/dist/form/InputLength.svelte +0 -32
  90. package/dist/form/InputLength.svelte.d.ts +0 -21
  91. package/dist/form/Label.svelte +0 -27
  92. package/dist/form/Label.svelte.d.ts +0 -31
  93. package/dist/form/Select.svelte +0 -88
  94. package/dist/form/Select.svelte.d.ts +0 -97
  95. package/dist/form/client.svelte.d.ts +0 -45
  96. package/dist/form/client.svelte.js +0 -90
  97. package/dist/form/form.d.ts +0 -52
  98. package/dist/form/form.js +0 -326
  99. package/dist/form/index.d.ts +0 -15
  100. package/dist/form/index.js +0 -15
  101. package/dist/form/types.d.ts +0 -52
  102. package/dist/form/types.js +0 -1
  103. package/dist/grid/Column.svelte +0 -11
  104. package/dist/grid/Column.svelte.d.ts +0 -22
  105. package/dist/grid/Grid.svelte +0 -19
  106. package/dist/grid/Grid.svelte.d.ts +0 -24
  107. package/dist/grid/Row.svelte +0 -44
  108. package/dist/grid/Row.svelte.d.ts +0 -24
  109. package/dist/icons/Alert.svelte +0 -3
  110. package/dist/icons/Alert.svelte.d.ts +0 -23
  111. package/dist/icons/Copy.svelte +0 -3
  112. package/dist/icons/Copy.svelte.d.ts +0 -23
  113. package/dist/icons/Done.svelte +0 -3
  114. package/dist/icons/Done.svelte.d.ts +0 -23
  115. package/dist/icons/Error.svelte +0 -3
  116. package/dist/icons/Error.svelte.d.ts +0 -23
  117. package/dist/icons/Help.svelte +0 -3
  118. package/dist/icons/Help.svelte.d.ts +0 -23
  119. package/dist/icons/Hide.svelte +0 -3
  120. package/dist/icons/Hide.svelte.d.ts +0 -23
  121. package/dist/icons/Info.svelte +0 -3
  122. package/dist/icons/Info.svelte.d.ts +0 -23
  123. package/dist/icons/Link.svelte +0 -3
  124. package/dist/icons/Link.svelte.d.ts +0 -23
  125. package/dist/icons/MenuBurger.svelte +0 -3
  126. package/dist/icons/MenuBurger.svelte.d.ts +0 -23
  127. package/dist/icons/MenuDots.svelte +0 -3
  128. package/dist/icons/MenuDots.svelte.d.ts +0 -23
  129. package/dist/icons/Show.svelte +0 -3
  130. package/dist/icons/Show.svelte.d.ts +0 -23
  131. package/dist/icons/Success.svelte +0 -3
  132. package/dist/icons/Success.svelte.d.ts +0 -23
  133. package/dist/icons/Warning.svelte +0 -3
  134. package/dist/icons/Warning.svelte.d.ts +0 -23
  135. package/dist/icons/index.d.ts +0 -11
  136. package/dist/icons/index.js +0 -11
  137. package/dist/layout/Layout.svelte +0 -45
  138. package/dist/layout/Layout.svelte.d.ts +0 -25
  139. package/dist/layout/LayoutFooter.svelte +0 -21
  140. package/dist/layout/LayoutFooter.svelte.d.ts +0 -19
  141. package/dist/layout/LayoutGrid.svelte +0 -51
  142. package/dist/layout/LayoutGrid.svelte.d.ts +0 -38
  143. package/dist/layout/LayoutHeader.svelte +0 -94
  144. package/dist/layout/LayoutHeader.svelte.d.ts +0 -39
  145. package/dist/layout/LayoutSideMenu.svelte +0 -54
  146. package/dist/layout/LayoutSideMenu.svelte.d.ts +0 -25
  147. package/dist/layout/LayoutTypes.d.ts +0 -15
  148. package/dist/layout/LayoutTypes.js +0 -9
  149. package/dist/layout/Overlay.svelte +0 -20
  150. package/dist/layout/Overlay.svelte.d.ts +0 -35
  151. package/dist/layout/OverlayContainer.svelte +0 -28
  152. package/dist/layout/OverlayContainer.svelte.d.ts +0 -16
  153. package/dist/layout/OverlayLayer.svelte +0 -145
  154. package/dist/layout/OverlayLayer.svelte.d.ts +0 -22
  155. package/dist/layout/PageContent.svelte +0 -97
  156. package/dist/layout/PageContent.svelte.d.ts +0 -28
  157. package/dist/layout/Theme.svelte +0 -228
  158. package/dist/layout/Theme.svelte.d.ts +0 -24
  159. package/dist/layout/UIContent.svelte +0 -15
  160. package/dist/layout/UIContent.svelte.d.ts +0 -22
  161. package/dist/layout/index.d.ts +0 -7
  162. package/dist/layout/index.js +0 -7
  163. package/dist/layout/overlays.svelte.d.ts +0 -34
  164. package/dist/layout/overlays.svelte.js +0 -44
  165. package/dist/nav/Breadcrumb.svelte +0 -82
  166. package/dist/nav/Breadcrumb.svelte.d.ts +0 -33
  167. package/dist/nav/Menu.svelte +0 -177
  168. package/dist/nav/Menu.svelte.d.ts +0 -33
  169. package/dist/nav/MenuItem.svelte +0 -140
  170. package/dist/nav/MenuItem.svelte.d.ts +0 -26
  171. package/dist/nav/MenuTypes.d.ts +0 -58
  172. package/dist/nav/MenuTypes.js +0 -1
  173. package/dist/nav/NavMenu.svelte +0 -183
  174. package/dist/nav/NavMenu.svelte.d.ts +0 -20
  175. package/dist/nav/TabbedContent.svelte +0 -43
  176. package/dist/nav/TabbedContent.svelte.d.ts +0 -24
  177. package/dist/nav/Tabs.svelte +0 -118
  178. package/dist/nav/Tabs.svelte.d.ts +0 -26
  179. package/dist/nav/index.d.ts +0 -6
  180. package/dist/nav/index.js +0 -5
  181. package/dist/style.css +0 -853
  182. package/dist/typo/Clamp.svelte +0 -25
  183. package/dist/typo/Clamp.svelte.d.ts +0 -28
  184. package/dist/typo/H.svelte +0 -52
  185. package/dist/typo/H.svelte.d.ts +0 -32
  186. package/dist/typo/H1.svelte +0 -14
  187. package/dist/typo/H1.svelte.d.ts +0 -30
  188. package/dist/typo/H2.svelte +0 -14
  189. package/dist/typo/H2.svelte.d.ts +0 -30
  190. package/dist/typo/H3.svelte +0 -14
  191. package/dist/typo/H3.svelte.d.ts +0 -30
  192. package/dist/typo/H4.svelte +0 -14
  193. package/dist/typo/H4.svelte.d.ts +0 -30
  194. package/dist/typo/H5.svelte +0 -14
  195. package/dist/typo/H5.svelte.d.ts +0 -30
  196. package/dist/typo/H6.svelte +0 -14
  197. package/dist/typo/H6.svelte.d.ts +0 -30
  198. package/dist/typo/P.svelte +0 -34
  199. package/dist/typo/P.svelte.d.ts +0 -30
  200. package/dist/typo/index.d.ts +0 -9
  201. package/dist/typo/index.js +0 -9
  202. package/dist/utils/StringOrComponentOrSnippet.svelte +0 -14
  203. package/dist/utils/StringOrComponentOrSnippet.svelte.d.ts +0 -24
  204. package/dist/utils/attr.d.ts +0 -5
  205. package/dist/utils/attr.js +0 -21
  206. package/dist/utils/color.d.ts +0 -51
  207. package/dist/utils/color.js +0 -97
  208. package/dist/utils/defaults.d.ts +0 -4
  209. package/dist/utils/defaults.js +0 -1
  210. package/dist/utils/dom.d.ts +0 -15
  211. package/dist/utils/dom.js +0 -74
  212. package/dist/utils/hooks.server.d.ts +0 -2
  213. package/dist/utils/hooks.server.js +0 -16
  214. package/dist/utils/id.d.ts +0 -1
  215. package/dist/utils/id.js +0 -3
  216. package/dist/utils/index.d.ts +0 -8
  217. package/dist/utils/index.js +0 -5
  218. package/dist/utils/isSnippet.d.ts +0 -5
  219. package/dist/utils/isSnippet.js +0 -6
  220. package/dist/utils/keyboard.svelte.d.ts +0 -22
  221. package/dist/utils/keyboard.svelte.js +0 -161
  222. /package/dist/{utils → util}/transitions.d.ts +0 -0
  223. /package/dist/{utils → util}/transitions.js +0 -0
@@ -1,145 +0,0 @@
1
- <script lang="ts">import {} from "./overlays.svelte.js";
2
- import { slidefade } from "../utils/transitions.js";
3
- import { BROWSER } from "esm-env";
4
- import { isComponent, isSnippet } from "../utils/isSnippet.js";
5
- import { untrack } from "svelte";
6
- let {
7
- position,
8
- items
9
- } = $props();
10
- const fudge = 8;
11
- let contentEls = $state({});
12
- let scrollX = $state(BROWSER ? window.scrollX : 0);
13
- let scrollY = $state(BROWSER ? window.scrollY : 0);
14
- let innerWidth = $state(BROWSER ? window.innerWidth : 0);
15
- let innerHeight = $state(BROWSER ? window.innerHeight : 0);
16
- let positions = $derived.by(() => {
17
- innerWidth;
18
- innerHeight;
19
- scrollX;
20
- scrollY;
21
- contentEls;
22
- return items.map((item) => {
23
- const contentEl = contentEls[item.id];
24
- if (!item.anchor || !contentEl)
25
- return { left: 0, top: 0, index: 1 };
26
- const triggerPos = item.anchor.getBoundingClientRect();
27
- const height = contentEl.clientHeight;
28
- const width = contentEl.clientWidth;
29
- const isOffBottom = triggerPos.bottom + height > window.innerHeight - fudge;
30
- const isOffRight = triggerPos.left + width > window.innerWidth - fudge;
31
- let left = triggerPos.left;
32
- let top = triggerPos.top + triggerPos.height + fudge;
33
- if (isOffRight)
34
- left = left - width + triggerPos.width;
35
- if (isOffBottom)
36
- top = top - height - triggerPos.height - fudge * 2;
37
- return {
38
- left,
39
- top,
40
- index: 1
41
- };
42
- });
43
- });
44
- let originCache = $state({});
45
- let origins = $derived.by(() => {
46
- return items.map((item, index) => {
47
- if (!item.anchor || item.position !== "anchor") {
48
- return item.position || "center";
49
- }
50
- const triggerPos = item.anchor.getBoundingClientRect();
51
- const contentEl = document.getElementById(item.id);
52
- const contentRect = contentEl?.getBoundingClientRect();
53
- const height = contentRect.height;
54
- const width = contentRect.width;
55
- const isOffBottom = triggerPos.bottom + height > innerHeight - fudge;
56
- const isOffRight = triggerPos.left + width > innerWidth - fudge;
57
- let text = "top left";
58
- if (isOffRight)
59
- text = text.replace("left", "right");
60
- if (isOffBottom)
61
- text = text.replace("top", "bottom");
62
- return text;
63
- });
64
- });
65
- $effect(() => {
66
- origins;
67
- origins.forEach((origin, index) => {
68
- originCache[untrack(() => items[index].id)] = origin;
69
- });
70
- });
71
- function introstart(item) {
72
- document.getElementById(item.id).style.pointerEvents = "none";
73
- }
74
- function introend(item) {
75
- document.getElementById(item.id).style.pointerEvents = "auto";
76
- }
77
- </script>
78
-
79
- <svelte:window bind:scrollX bind:scrollY bind:innerWidth bind:innerHeight />
80
-
81
- <div class="Layer {position}">
82
- {#each items as item, index (item.id)}
83
- <div
84
- id={item.id}
85
- bind:this={contentEls[item.id]}
86
- class="LayerItem"
87
- class:anchor={item.anchor ? true : false}
88
- onintrostart={() => introstart(item)}
89
- onintroend={() => introend(item)}
90
- transition:slidefade|global={{ duration: 150, origin: originCache[item.id] || origins[index], noMargin: !!!item.anchor }}
91
- style="--index: {index}; --z: {item.z}; --left: {positions[index].left}px; --top: {positions[index].top}px;"
92
- >
93
- {#if isComponent(item.content)}
94
- <svelte:component this={item.content} {...item.props} />
95
- {:else if isSnippet(item.content)}
96
- {@render item.content()}
97
- {/if}
98
- </div>
99
- {/each}
100
- </div>
101
-
102
- <style>
103
- .Layer {
104
- pointer-events: auto;
105
- position: absolute;
106
- display: flex;
107
- flex-direction: column-reverse;
108
- gap: 0.75rem;
109
- }
110
- .Layer.center {
111
- left: 50%;
112
- right: auto;
113
- transform: translateX(-50%);
114
- }
115
- .Layer.top {
116
- top: calc(1rem + env(safe-area-inset-top));
117
- bottom: unset;
118
- }
119
- .Layer.bottom {
120
- top: unset;
121
- bottom: calc(1rem + env(safe-area-inset-bottom));
122
- }
123
- .Layer.right {
124
- left: unset;
125
- right: calc(1rem + env(safe-area-inset-right));
126
- }
127
- .Layer.left {
128
- left: calc(1rem + env(safe-area-inset-left));
129
- right: unset;
130
- }
131
- .Layer.center:not(.top):not(.bottom):not(.anchor) {
132
- top: 50%;
133
- bottom: auto;
134
- transform: translate(calc(-50% + env(safe-area-inset-left) + env(safe-area-inset-right)), calc(-50% + env(safe-area-inset-top) + env(safe-area-inset-bottom)));
135
- }
136
- .LayerItem {
137
- position: relative;
138
- z-index: calc(100 + var(--z, 1) - var(--index, 0));
139
- }
140
- .LayerItem.anchor {
141
- position: absolute;
142
- top: var(--top, 0);
143
- left: var(--left, 0);
144
- }
145
- </style>
@@ -1,22 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- import { type OverlayItem, type OverlayPosition } from "./overlays.svelte.js";
3
- declare const __propDef: {
4
- props: {
5
- position?: OverlayPosition | undefined;
6
- items: OverlayItem[];
7
- };
8
- events: {
9
- [evt: string]: CustomEvent<any>;
10
- };
11
- slots: {};
12
- };
13
- export type OverlayLayerProps = typeof __propDef.props;
14
- export type OverlayLayerEvents = typeof __propDef.events;
15
- export type OverlayLayerSlots = typeof __propDef.slots;
16
- export default class OverlayLayer extends SvelteComponent<OverlayLayerProps, OverlayLayerEvents, OverlayLayerSlots> {
17
- constructor(options?: import("svelte").ComponentConstructorOptions<{
18
- position?: OverlayPosition | undefined;
19
- items: OverlayItem[];
20
- }>);
21
- }
22
- export {};
@@ -1,97 +0,0 @@
1
- <script lang="ts">import { setContext } from "svelte";
2
- let {
3
- children,
4
- pad = false,
5
- middle = false,
6
- center = false
7
- } = $props();
8
- let style = $derived.by(() => {
9
- if (typeof pad === "boolean") {
10
- return `--padBlockStart: ${pad ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padBlockEnd: ${pad ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padInlineStart: ${pad ? "var(--padding, var(--padding-inline, 4rem))" : "0"}; --padInlineEnd: ${pad ? "var(--padding, var(--padding-inline, 4rem))" : "0"};`;
11
- } else if (typeof pad === "string") {
12
- return `--padBlockStart: ${pad}; --padBlockEnd: ${pad}; --padInlineStart: ${pad}; --padInlineEnd: ${pad};`;
13
- } else if (Array.isArray(pad) && pad.length > 1 && typeof pad[0] === "string") {
14
- switch (pad.length) {
15
- case 2:
16
- return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[0]}; --padInlineStart: ${pad[1]}; --padInlineEnd: ${pad[1]};`;
17
- case 3:
18
- return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[1]}; --padInlineStart: ${pad[2]}; --padInlineEnd: ${pad[2]};`;
19
- case 4:
20
- return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[1]}; --padInlineStart: ${pad[2]}; --padInlineEnd: ${pad[3]};`;
21
- }
22
- } else if (Array.isArray(pad) && pad.length > 1) {
23
- switch (pad.length) {
24
- case 2:
25
- return `--padBlockStart: ${pad[0] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padBlockEnd: ${pad[0] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padInlineStart: ${pad[1] ? "var(--padding, var(--padding-inline, 4rem))" : "0"}; --padInlineEnd: ${pad[1] ? "var(--padding, var(--padding-inline, 4rem))" : "0"};`;
26
- case 3:
27
- return `--padBlockStart: ${pad[0] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padBlockEnd: ${pad[1] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padInlineStart: ${pad[2] ? "var(--padding, var(--padding-inline, 4rem))" : "0"}; --padInlineEnd: ${pad[2] ? "var(--padding, var(--padding-inline, 4rem))" : "0"};`;
28
- case 4:
29
- return `--padBlockStart: ${pad[0] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padBlockEnd: ${pad[1] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padInlineStart: ${pad[2] ? "var(--padding, var(--padding-inline, 4rem))" : "0"}; --padInlineEnd: ${pad[3] ? "var(--padding, var(--padding-inline, 4rem))" : "0"};`;
30
- }
31
- }
32
- return "";
33
- });
34
- </script>
35
-
36
- <article
37
- class="Page"
38
- class:middle
39
- class:center
40
- style={style}
41
- >
42
- <div class="PaddingContainer">
43
- <div class="PageContent">
44
- {@render children()}
45
- </div>
46
- </div>
47
- </article>
48
-
49
- <style>
50
- .Page {
51
- inline-size: 100%;
52
- display: grid;
53
- grid-template-columns: 1fr;
54
- container-type: inline-size;
55
- container-name: page;
56
- position: relative;
57
- }
58
- .PageContent {
59
- max-inline-size: var(--max-inline-size, 1560px);
60
- flex-grow: 1;
61
- --isPage: 1;
62
- }
63
- .Page.center {
64
- justify-content: center;
65
- }
66
- .Page.middle {
67
- block-size: 100%;
68
- align-items: center;
69
- }
70
- .Page .PaddingContainer {
71
- padding-block-start: var(--padBlockStart);
72
- padding-block-end: var(--padBlockEnd);
73
- padding-inline-start: var(--padInlineStart);
74
- padding-inline-end: var(--padInlineEnd);
75
- display: flex;
76
- }
77
- .Page.center .PaddingContainer {
78
- justify-content: center;
79
- }
80
-
81
- @media (max-width: 1280px) {
82
- .Page .PaddingContainer {
83
- padding-block-start: calc(var(--padBlockStart) / 2);
84
- padding-block-end: calc(var(--padBlockEnd) / 2);
85
- padding-inline-start: calc(var(--padInlineStart) / 2);
86
- padding-inline-end: calc(var(--padInlineEnd) / 2);
87
- }
88
- }
89
- @media (max-width: 640px) {
90
- .Page .PaddingContainer {
91
- padding-block-start: calc(var(--padBlockStart) / 4);
92
- padding-block-end: calc(var(--padBlockEnd) / 4);
93
- padding-inline-start: calc(var(--padInlineStart) / 4);
94
- padding-inline-end: calc(var(--padInlineEnd) / 4);
95
- }
96
- }
97
- </style>
@@ -1,28 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- import { type Snippet } from "svelte";
3
- declare const __propDef: {
4
- props: {
5
- children: Snippet;
6
- pad?: string | boolean | [boolean, boolean] | [boolean, boolean, boolean] | [boolean, boolean, boolean, boolean] | [string, string] | [string, string, string] | [string, string, string, string] | undefined;
7
- middle?: boolean | undefined;
8
- center?: boolean | undefined;
9
- };
10
- events: {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {};
14
- };
15
- export type PageContentProps = typeof __propDef.props;
16
- export type PageContentEvents = typeof __propDef.events;
17
- export type PageContentSlots = typeof __propDef.slots;
18
- export default class PageContent extends SvelteComponent<PageContentProps, PageContentEvents, PageContentSlots> {
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
- pad?: string | boolean | [boolean, boolean] | [boolean, boolean, boolean] | [boolean, boolean, boolean, boolean] | [string, string] | [string, string, string] | [string, string, string, string] | undefined;
24
- middle?: boolean | undefined;
25
- center?: boolean | undefined;
26
- }>);
27
- }
28
- export {};
@@ -1,228 +0,0 @@
1
- <script lang="ts">import { browser } from "$app/environment";
2
- import { getContext, setContext } from "svelte";
3
- let {
4
- theme,
5
- children
6
- } = $props();
7
- const root = getContext("theme") === void 0;
8
- if (theme === "invert") {
9
- const previousTheme = getContext("theme") || "light";
10
- theme = previousTheme === "light" ? "dark" : "light";
11
- } else {
12
- theme = theme || (browser ? localStorage.getItem("theme") || window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : "light");
13
- }
14
- const existingTheme = getContext("theme");
15
- setContext("theme", theme);
16
- </script>
17
-
18
- <svelte:body style="background-color: var(--bg-app);" />
19
-
20
- <svelte:head>
21
- {#if !existingTheme}
22
- <meta name="theme-color" content="{theme === 'dark' ? '#000' : '#fff'}" />
23
- {/if}
24
- </svelte:head>
25
-
26
- <span class="Theme {theme ? theme : ''}" class:root>
27
- {@render children()}
28
- </span>
29
-
30
- <style>
31
- .Theme {
32
- display: contents;
33
- }
34
- .Theme.light :global(:root) {
35
- --scrollbar-color: var(--l-scrollbar-color);
36
- }
37
- .Theme.dark :global(:root) {
38
- --scrollbar-color: var(--d-scrollbar-color);
39
- }
40
- .Theme.light {
41
- --mix-target: var(--l-mix-target);
42
- /* bg */
43
- --bg-app: var(--l-bg-app);
44
- --bg-subtle: var(--l-bg-subtle);
45
- --bg-overlay: var(--l-bg-overlay);
46
- --shadow: var(--l-shadow);
47
- /* border */
48
- --border-color: var(--l-border-color);
49
- --border-subtle-color: var(--l-border-subtle-color);
50
- --focus-color: var(--l-focus-color);
51
- --focus-color-error: var(--l-focus-color-error);
52
- --border: var(--l-border);
53
- --border-subtle: var(--l-border-subtle);
54
- --focus-outline: var(--l-focus-outline);
55
- /* text */
56
- --text: var(--l-text);
57
- --text-subtle: var(--l-text-subtle);
58
- --text-highlight: var(--l-text-highlight);
59
- --text-heading: var(--l-text-heading);
60
- --text-link: var(--l-text-link);
61
- --text-warn: var(--l-text-warn);
62
- --text-icon: var(--l-text-icon);
63
- --text-subtle-icon: var(--l-text-subtle-icon);
64
- --text-warn-icon: var(--l-text-warn-icon);
65
- /* fields */
66
- --field-bg: var(--l-field-bg);
67
- --field-border-color: var(--l-field-border-color);
68
- --field-border-color-error: var(--l-field-border-color-error);
69
- --field-border: var(--l-field-border);
70
- --field-text: var(--l-field-text);
71
- --field-placeholder: var(--l-field-placeholder);
72
- --field-label: var(--l-field-label);
73
- /* toggle */
74
- --toggle-on: var(--l-toggle-on);
75
- --toggle-off: var(--l-toggle-off);
76
- /* buttons */
77
- --button-bg: var(--l-button-bg);
78
- --button-text: var(--l-button-text);
79
- --button-border-color: var(--l-button-border-color);
80
- --button-border: var(--l-button-border);
81
- /* buttons: secondary */
82
- --button-secondary-bg: var(--l-button-secondary-bg);
83
- --button-secondary-text: var(--l-button-secondary-text);
84
- --button-secondary-border-color: var(--l-button-secondary-border-color);
85
- --button-secondary-border: var(--l-button-secondary-border);
86
- /* buttons: disabled */
87
- --button-disabled-bg: var(--l-button-disabled-bg);
88
- --button-disabled-text: var(--l-button-disabled-text);
89
- --button-disabled-border-color: var(--l-button-disabled-border-color);
90
- --button-disabled-border: var(--l-button-disabled-border);
91
- /* buttons: outlined */
92
- --button-outlined-text: var(--l-button-outlined-text);
93
- --button-outlined-border-color: var(--l-button-outlined-border-color);
94
- --button-outlined-border: var(--l-button-outlined-border);
95
- /* buttons: warn */
96
- --button-warn-bg: var(--l-button-warn-bg);
97
- --button-warn-text: var(--l-button-warn-text);
98
- --button-warn-border-color: var(--l-button-warn-border-color);
99
- --button-warn-border: var(--l-button-warn-border);
100
- /* warn */
101
- --warn-bg: var(--l-warn-bg);
102
- --warn-border: var(--l-warn-border);
103
- --warn-text: var(--l-warn-text);
104
- /* success */
105
- --success-bg: var(--l-success-bg);
106
- --success-border: var(--l-success-border);
107
- --success-text: var(--l-success-text);
108
- /* error */
109
- --error-bg: var(--l-error-bg);
110
- --error-border: var(--l-error-border);
111
- --error-text: var(--l-error-text);
112
- /* info */
113
- --info-bg: var(--l-info-bg);
114
- --info-border: var(--l-info-border);
115
- --info-text: var(--l-info-text);
116
- /* menu */
117
- --menu-bg: var(--l-menu-bg);
118
- --menu-bg-active: var(--l-menu-bg-active);
119
- --menu-bg-hover: var(--l-menu-bg-hover);
120
- --menu-border: var(--l-menu-border);
121
- --menu-text: var(--l-menu-text);
122
- --menu-text-subtle: var(--l-menu-text-subtle);
123
- --menu-text-active: var(--l-menu-text-active);
124
- /* status */
125
- --status-default: var(--l-status-default);
126
- --status-ok: var(--l-status-ok);
127
- --status-alert: var(--l-status-alert);
128
- --status-warn: var(--l-status-warn);
129
- --status-info: var(--l-status-info);
130
- --status-task: var(--l-status-task);
131
- --scrollbar-color: var(--l-scrollbar-color);
132
- }
133
- .Theme.dark {
134
- --mix-target: var(--d-mix-target);
135
- /* bg */
136
- --bg-app: var(--d-bg-app);
137
- --bg-subtle: var(--d-bg-subtle);
138
- --bg-overlay: var(--d-bg-overlay);
139
- --shadow: var(--d-shadow);
140
- /* border */
141
- --border-color: var(--d-border-color);
142
- --border-subtle-color: var(--d-border-subtle-color);
143
- --focus-color: var(--d-focus-color);
144
- --focus-color-error: var(--d-focus-color-error);
145
- --border: var(--d-border);
146
- --border-subtle: var(--d-border-subtle);
147
- --focus-outline: var(--d-focus-outline);
148
- /* text */
149
- --text: var(--d-text);
150
- --text-subtle: var(--d-text-subtle);
151
- --text-highlight: var(--d-text-highlight);
152
- --text-heading: var(--d-text-heading);
153
- --text-link: var(--d-text-link);
154
- --text-link-hover: var(--d-text-link-hover);
155
- --text-warn: var(--d-text-warn);
156
- --text-icon: var(--d-text-icon);
157
- --text-subtle-icon: var(--d-text-subtle-icon);
158
- --text-warn-icon: var(--d-text-warn-icon);
159
- /* fields */
160
- --field-bg: var(--d-field-bg);
161
- --field-border-color: var(--d-field-border-color);
162
- --field-border-color-error: var(--d-field-border-color-error);
163
- --field-border: var(--d-field-border);
164
- --field-text: var(--d-field-text);
165
- --field-placeholder: var(--d-field-placeholder);
166
- --field-label: var(--d-field-label);
167
- /* toggle */
168
- --toggle-on: var(--d-toggle-on);
169
- --toggle-on-hover: var(--d-toggle-on-hover);
170
- --toggle-off: var(--d-toggle-off);
171
- --toggle-off-hover: var(--d-toggle-off-hover);
172
- /* buttons */
173
- --button-bg: var(--d-button-bg);
174
- --button-text: var(--d-button-text);
175
- --button-border-color: var(--d-button-border-color);
176
- --button-border: var(--d-button-border);
177
- /* buttons: secondary */
178
- --button-secondary-bg: var(--d-button-secondary-bg);
179
- --button-secondary-text: var(--d-button-secondary-text);
180
- --button-secondary-border-color: var(--d-button-secondary-border-color);
181
- --button-secondary-border: var(--d-button-secondary-border);
182
- /* buttons: disabled */
183
- --button-disabled-bg: var(--d-button-disabled-bg);
184
- --button-disabled-text: var(--d-button-disabled-text);
185
- --button-disabled-border-color: var(--d-button-disabled-border-color);
186
- --button-disabled-border: var(--d-button-disabled-border);
187
- /* buttons: outlined */
188
- --button-outlined-text: var(--d-button-outlined-text);
189
- --button-outlined-border-color: var(--d-button-outlined-border-color);
190
- --button-outlined-border: var(--d-button-outlined-border);
191
- /* buttons: warn */
192
- --button-warn-bg: var(--d-button-warn-bg);
193
- --button-warn-text: var(--d-button-warn-text);
194
- --button-warn-border-color: var(--d-button-warn-border-color);
195
- --button-warn-border: var(--d-button-warn-border);
196
- /* warn */
197
- --warn-bg: var(--d-warn-bg);
198
- --warn-border: var(--d-warn-border);
199
- --warn-text: var(--d-warn-text);
200
- /* success */
201
- --success-bg: var(--d-success-bg);
202
- --success-border: var(--d-success-border);
203
- --success-text: var(--d-success-text);
204
- /* error */
205
- --error-bg: var(--d-error-bg);
206
- --error-border: var(--d-error-border);
207
- --error-text: var(--d-error-text);
208
- /* info */
209
- --info-bg: var(--d-info-bg);
210
- --info-border: var(--d-info-border);
211
- --info-text: var(--d-info-text);
212
- /* menu */
213
- --menu-bg: var(--d-menu-bg);
214
- --menu-bg-active: var(--d-menu-bg-active);
215
- --menu-border: var(--d-menu-border);
216
- --menu-text: var(--d-menu-text);
217
- --menu-text-subtle: var(--d-menu-text-subtle);
218
- --menu-text-active: var(--d-menu-text-active);
219
- /* status */
220
- --status-default: var(--d-status-default);
221
- --status-ok: var(--d-status-ok);
222
- --status-alert: var(--d-status-alert);
223
- --status-warn: var(--d-status-warn);
224
- --status-info: var(--d-status-info);
225
- --status-task: var(--d-status-task);
226
- --scrollbar-color: var(--d-scrollbar-color);
227
- }
228
- </style>
@@ -1,24 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- import { type Snippet } from "svelte";
3
- declare const __propDef: {
4
- props: {
5
- theme?: "light" | "dark" | "invert" | undefined;
6
- children: Snippet;
7
- };
8
- events: {
9
- [evt: string]: CustomEvent<any>;
10
- };
11
- slots: {};
12
- };
13
- export type ThemeProps = typeof __propDef.props;
14
- export type ThemeEvents = typeof __propDef.events;
15
- export type ThemeSlots = typeof __propDef.slots;
16
- export default class Theme extends SvelteComponent<ThemeProps, ThemeEvents, ThemeSlots> {
17
- constructor(options?: import("svelte").ComponentConstructorOptions<{
18
- theme?: "light" | "dark" | "invert" | undefined;
19
- children: (this: void) => typeof import("svelte").SnippetReturn & {
20
- _: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
21
- };
22
- }>);
23
- }
24
- export {};
@@ -1,15 +0,0 @@
1
- <script lang="ts">let {
2
- children
3
- } = $props();
4
- </script>
5
-
6
- <div class="UIContent">
7
- {@render children()}
8
- </div>
9
-
10
- <style>
11
- .UIContent {
12
- display: contents;
13
- --isPage: 0;
14
- }
15
- </style>
@@ -1,22 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- import type { Snippet } from "svelte";
3
- declare const __propDef: {
4
- props: {
5
- children: Snippet;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- };
12
- export type UiContentProps = typeof __propDef.props;
13
- export type UiContentEvents = typeof __propDef.events;
14
- export type UiContentSlots = typeof __propDef.slots;
15
- export default class UiContent extends SvelteComponent<UiContentProps, UiContentEvents, UiContentSlots> {
16
- constructor(options?: import("svelte").ComponentConstructorOptions<{
17
- children: (this: void) => typeof import("svelte").SnippetReturn & {
18
- _: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
19
- };
20
- }>);
21
- }
22
- export {};
@@ -1,7 +0,0 @@
1
- export { default as Layout } from './Layout.svelte';
2
- export { default as LayoutGrid } from './LayoutGrid.svelte';
3
- export { default as LayoutFooter } from './LayoutFooter.svelte';
4
- export { default as LayoutHeader } from './LayoutHeader.svelte';
5
- export { default as PageContent } from './PageContent.svelte';
6
- export { default as UIContent } from './UIContent.svelte';
7
- export { default as Theme } from './Theme.svelte';
@@ -1,7 +0,0 @@
1
- export { default as Layout } from './Layout.svelte';
2
- export { default as LayoutGrid } from './LayoutGrid.svelte';
3
- export { default as LayoutFooter } from './LayoutFooter.svelte';
4
- export { default as LayoutHeader } from './LayoutHeader.svelte';
5
- export { default as PageContent } from './PageContent.svelte';
6
- export { default as UIContent } from './UIContent.svelte';
7
- export { default as Theme } from './Theme.svelte';
@@ -1,34 +0,0 @@
1
- import type { ComponentType, Snippet } from "svelte";
2
- export type OverlayPosition = "top left" | "top center" | "top right" | "bottom left" | "bottom center" | "bottom right" | "center" | "anchor";
3
- export type TransitionOpts = {
4
- y?: number;
5
- x?: number;
6
- duration?: number;
7
- origin?: string;
8
- easing?: (t: number) => number;
9
- };
10
- export type OverlayItem = {
11
- id: string;
12
- z?: number;
13
- content: string | Snippet | ComponentType;
14
- props?: Record<string, any>;
15
- layer?: string;
16
- anchor?: HTMLElement;
17
- transition?: TransitionOpts;
18
- position?: OverlayPosition;
19
- sticky?: boolean;
20
- stack?: string;
21
- };
22
- declare let overlays: {
23
- topRight: OverlayItem[];
24
- topLeft: OverlayItem[];
25
- topCenter: OverlayItem[];
26
- bottomRight: OverlayItem[];
27
- bottomLeft: OverlayItem[];
28
- bottomCenter: OverlayItem[];
29
- center: OverlayItem[];
30
- anchor: OverlayItem[];
31
- };
32
- declare function addOverlay(opts: OverlayItem): void;
33
- declare function removeOverlay(id: string): void;
34
- export { overlays, addOverlay, removeOverlay };
@@ -1,44 +0,0 @@
1
- let overlays = $state({
2
- topRight: [],
3
- topLeft: [],
4
- topCenter: [],
5
- bottomRight: [],
6
- bottomLeft: [],
7
- bottomCenter: [],
8
- center: [],
9
- anchor: [],
10
- });
11
- function addOverlay(opts) {
12
- switch (opts.position) {
13
- case "top left":
14
- overlays.topLeft.push(opts);
15
- break;
16
- case "top right":
17
- overlays.topRight.push(opts);
18
- break;
19
- case "top center":
20
- overlays.topCenter.push(opts);
21
- break;
22
- case "bottom left":
23
- overlays.bottomLeft.push(opts);
24
- break;
25
- case "bottom right":
26
- overlays.bottomRight.push(opts);
27
- break;
28
- case "bottom center":
29
- overlays.bottomCenter.push(opts);
30
- break;
31
- case "center":
32
- overlays.center.push(opts);
33
- break;
34
- default:
35
- overlays.anchor.push(opts);
36
- break;
37
- }
38
- }
39
- function removeOverlay(id) {
40
- for (const key in overlays) {
41
- overlays[key] = overlays[key].filter((o) => o.id !== id);
42
- }
43
- }
44
- export { overlays, addOverlay, removeOverlay };