lutra 0.0.33 → 0.1.4

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 (274) 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/Avatar.svelte +105 -0
  5. package/dist/components/Avatar.svelte.d.ts +14 -0
  6. package/dist/{display → components}/Close.svelte +25 -7
  7. package/dist/components/Close.svelte.d.ts +7 -0
  8. package/dist/components/ContextTip.svelte +41 -0
  9. package/dist/components/ContextTip.svelte.d.ts +7 -0
  10. package/dist/components/Dialog.svelte +78 -0
  11. package/dist/components/Dialog.svelte.d.ts +14 -0
  12. package/dist/components/Icon.svelte +62 -0
  13. package/dist/components/Icon.svelte.d.ts +8 -0
  14. package/dist/{display → components}/IconButton.svelte +43 -14
  15. package/dist/components/IconButton.svelte.d.ts +16 -0
  16. package/dist/components/Image.svelte +172 -0
  17. package/dist/components/Image.svelte.d.ts +56 -0
  18. package/dist/{display → components}/Indicator.svelte +44 -9
  19. package/dist/components/Indicator.svelte.d.ts +12 -0
  20. package/dist/{display → components}/Inset.svelte +8 -3
  21. package/dist/components/Inset.svelte.d.ts +7 -0
  22. package/dist/components/Layout.svelte +33 -0
  23. package/dist/components/Layout.svelte.d.ts +11 -0
  24. package/dist/components/MenuDropdown.svelte +195 -0
  25. package/dist/components/MenuDropdown.svelte.d.ts +16 -0
  26. package/dist/{nav → components}/MenuItem.svelte +46 -38
  27. package/dist/components/MenuItem.svelte.d.ts +11 -0
  28. package/dist/components/MenuItemContent.svelte +25 -0
  29. package/dist/components/MenuItemContent.svelte.d.ts +10 -0
  30. package/dist/{nav → components}/MenuTypes.d.ts +19 -5
  31. package/dist/components/Modal.svelte +149 -0
  32. package/dist/components/Modal.svelte.d.ts +16 -0
  33. package/dist/{display → components}/Notification.svelte +33 -22
  34. package/dist/components/Notification.svelte.d.ts +12 -0
  35. package/dist/components/Overlay.svelte +31 -0
  36. package/dist/components/Overlay.svelte.d.ts +14 -0
  37. package/dist/{layout → components}/OverlayContainer.svelte +6 -3
  38. package/dist/{layout → components}/OverlayContainer.svelte.d.ts +4 -1
  39. package/dist/components/OverlayLayer.svelte +168 -0
  40. package/dist/components/OverlayLayer.svelte.d.ts +8 -0
  41. package/dist/components/PageContent.svelte +108 -0
  42. package/dist/components/PageContent.svelte.d.ts +38 -0
  43. package/dist/components/TabbedContent.svelte +74 -0
  44. package/dist/components/TabbedContent.svelte.d.ts +11 -0
  45. package/dist/components/TabbedContentItem.svelte +33 -0
  46. package/dist/components/TabbedContentItem.svelte.d.ts +10 -0
  47. package/dist/components/Table.svelte +41 -0
  48. package/dist/components/Table.svelte.d.ts +13 -0
  49. package/dist/{nav → components}/Tabs.svelte +99 -41
  50. package/dist/components/Tabs.svelte.d.ts +20 -0
  51. package/dist/components/Tag.svelte +120 -0
  52. package/dist/components/Tag.svelte.d.ts +21 -0
  53. package/dist/components/Theme.svelte +105 -0
  54. package/dist/components/Theme.svelte.d.ts +17 -0
  55. package/dist/{display → components}/Tooltip.svelte +41 -16
  56. package/dist/components/Tooltip.svelte.d.ts +12 -0
  57. package/dist/components/UIContent.svelte +19 -0
  58. package/dist/components/UIContent.svelte.d.ts +7 -0
  59. package/dist/components/index.d.ts +28 -0
  60. package/dist/components/index.js +29 -0
  61. package/dist/{display → components}/notifications.svelte.d.ts +1 -1
  62. package/dist/{display → components}/notifications.svelte.js +3 -4
  63. package/dist/{layout → components}/overlays.svelte.d.ts +4 -2
  64. package/dist/config.d.ts +30 -0
  65. package/dist/config.js +18 -0
  66. package/dist/css/1-props.css +440 -0
  67. package/dist/css/2-base.css +343 -0
  68. package/dist/css/3-typo.css +106 -0
  69. package/dist/css/4-layout.css +368 -0
  70. package/dist/css/5-media.css +116 -0
  71. package/dist/css/lutra.css +7 -0
  72. package/dist/css/themes/DefaultTheme.css +209 -0
  73. package/dist/form/Button.svelte +35 -16
  74. package/dist/form/Button.svelte.d.ts +8 -19
  75. package/dist/form/Datepicker.svelte +311 -0
  76. package/dist/form/Datepicker.svelte.d.ts +9 -0
  77. package/dist/form/FieldContent.svelte +69 -44
  78. package/dist/form/FieldContent.svelte.d.ts +7 -17
  79. package/dist/form/FieldError.svelte +16 -6
  80. package/dist/form/FieldError.svelte.d.ts +4 -15
  81. package/dist/form/Fieldset.svelte +48 -13
  82. package/dist/form/Fieldset.svelte.d.ts +5 -16
  83. package/dist/form/Form.svelte +158 -74
  84. package/dist/form/Form.svelte.d.ts +17 -17
  85. package/dist/form/{FieldActions.svelte → FormActions.svelte} +29 -17
  86. package/dist/form/FormActions.svelte.d.ts +9 -0
  87. package/dist/form/FormSection.svelte +96 -0
  88. package/dist/form/FormSection.svelte.d.ts +9 -0
  89. package/dist/form/ImageUpload.svelte +134 -94
  90. package/dist/form/ImageUpload.svelte.d.ts +5 -16
  91. package/dist/form/Input.svelte +254 -136
  92. package/dist/form/Input.svelte.d.ts +12 -21
  93. package/dist/form/InputLength.svelte +15 -5
  94. package/dist/form/InputLength.svelte.d.ts +4 -15
  95. package/dist/form/Label.svelte +55 -11
  96. package/dist/form/Label.svelte.d.ts +6 -15
  97. package/dist/form/LogoUpload.svelte +36 -21
  98. package/dist/form/LogoUpload.svelte.d.ts +4 -15
  99. package/dist/form/Select.svelte +100 -50
  100. package/dist/form/Select.svelte.d.ts +5 -16
  101. package/dist/form/Textarea.svelte +200 -98
  102. package/dist/form/Textarea.svelte.d.ts +11 -24
  103. package/dist/form/Toggle.svelte +3 -1
  104. package/dist/form/Toggle.svelte.d.ts +4 -1
  105. package/dist/form/client.svelte.d.ts +1 -0
  106. package/dist/form/client.svelte.js +6 -2
  107. package/dist/form/form.d.ts +10 -9
  108. package/dist/form/form.js +37 -32
  109. package/dist/form/index.d.ts +3 -4
  110. package/dist/form/index.js +3 -4
  111. package/dist/form/types.d.ts +9 -16
  112. package/dist/icons/IconAlert.svelte.d.ts +4 -1
  113. package/dist/icons/IconCopy.svelte.d.ts +4 -1
  114. package/dist/icons/IconDone.svelte.d.ts +4 -1
  115. package/dist/icons/IconError.svelte.d.ts +4 -1
  116. package/dist/icons/IconHelp.svelte.d.ts +4 -1
  117. package/dist/icons/IconHide.svelte.d.ts +4 -1
  118. package/dist/icons/IconInfo.svelte.d.ts +4 -1
  119. package/dist/icons/IconLink.svelte.d.ts +4 -1
  120. package/dist/icons/IconMenuBurger.svelte.d.ts +4 -1
  121. package/dist/icons/IconMenuDots.svelte.d.ts +4 -1
  122. package/dist/icons/IconSearch.svelte.d.ts +4 -1
  123. package/dist/icons/IconShow.svelte.d.ts +4 -1
  124. package/dist/icons/IconSuccess.svelte.d.ts +4 -1
  125. package/dist/icons/IconWarning.svelte.d.ts +4 -1
  126. package/dist/index.d.ts +3 -1
  127. package/dist/index.js +3 -2
  128. package/dist/types.d.ts +39 -0
  129. package/dist/types.js +25 -0
  130. package/dist/util/StringOrComponent.svelte +20 -0
  131. package/dist/util/StringOrComponent.svelte.d.ts +8 -0
  132. package/dist/util/StringOrSnippet.svelte +16 -0
  133. package/dist/util/StringOrSnippet.svelte.d.ts +8 -0
  134. package/dist/{utils → util}/dom.js +1 -2
  135. package/dist/util/locale.d.ts +1 -0
  136. package/dist/util/locale.js +47 -0
  137. package/dist/util/settings.d.ts +4 -0
  138. package/package.json +35 -79
  139. package/dist/color.css +0 -0
  140. package/dist/display/Avatar.svelte +0 -61
  141. package/dist/display/Avatar.svelte.d.ts +0 -19
  142. package/dist/display/Badge.svelte +0 -91
  143. package/dist/display/Badge.svelte.d.ts +0 -30
  144. package/dist/display/Callout.svelte +0 -109
  145. package/dist/display/Callout.svelte.d.ts +0 -28
  146. package/dist/display/Close.svelte.d.ts +0 -18
  147. package/dist/display/Code.svelte +0 -190
  148. package/dist/display/Code.svelte.d.ts +0 -32
  149. package/dist/display/ContextTip.svelte +0 -23
  150. package/dist/display/ContextTip.svelte.d.ts +0 -18
  151. package/dist/display/DataList.svelte +0 -16
  152. package/dist/display/DataList.svelte.d.ts +0 -21
  153. package/dist/display/Details.svelte +0 -49
  154. package/dist/display/Details.svelte.d.ts +0 -27
  155. package/dist/display/Hero.svelte +0 -50
  156. package/dist/display/Hero.svelte.d.ts +0 -26
  157. package/dist/display/Icon.svelte +0 -39
  158. package/dist/display/Icon.svelte.d.ts +0 -19
  159. package/dist/display/IconButton.svelte.d.ts +0 -27
  160. package/dist/display/Image.svelte +0 -91
  161. package/dist/display/Image.svelte.d.ts +0 -26
  162. package/dist/display/Indicator.svelte.d.ts +0 -23
  163. package/dist/display/Inset.svelte.d.ts +0 -18
  164. package/dist/display/LineChart.svelte +0 -385
  165. package/dist/display/LineChart.svelte.d.ts +0 -24
  166. package/dist/display/LoadingIndicator.svelte +0 -33
  167. package/dist/display/LoadingIndicator.svelte.d.ts +0 -15
  168. package/dist/display/Modal.svelte +0 -116
  169. package/dist/display/Modal.svelte.d.ts +0 -27
  170. package/dist/display/Notification.svelte.d.ts +0 -23
  171. package/dist/display/Panel.svelte +0 -23
  172. package/dist/display/Panel.svelte.d.ts +0 -19
  173. package/dist/display/Popup.svelte +0 -111
  174. package/dist/display/Popup.svelte.d.ts +0 -25
  175. package/dist/display/Stat.svelte +0 -81
  176. package/dist/display/Stat.svelte.d.ts +0 -30
  177. package/dist/display/Table.svelte +0 -28
  178. package/dist/display/Table.svelte.d.ts +0 -24
  179. package/dist/display/TablePaginator.svelte +0 -51
  180. package/dist/display/TablePaginator.svelte.d.ts +0 -21
  181. package/dist/display/Tag.svelte +0 -90
  182. package/dist/display/Tag.svelte.d.ts +0 -32
  183. package/dist/display/Tooltip.svelte.d.ts +0 -23
  184. package/dist/display/chart.d.ts +0 -78
  185. package/dist/display/chart.js +0 -212
  186. package/dist/display/index.d.ts +0 -24
  187. package/dist/display/index.js +0 -24
  188. package/dist/form/FieldActions.svelte.d.ts +0 -20
  189. package/dist/form/FieldContainer.svelte +0 -37
  190. package/dist/form/FieldContainer.svelte.d.ts +0 -19
  191. package/dist/form/FieldSection.svelte +0 -86
  192. package/dist/form/FieldSection.svelte.d.ts +0 -20
  193. package/dist/layout/Layout.svelte +0 -47
  194. package/dist/layout/Layout.svelte.d.ts +0 -22
  195. package/dist/layout/LayoutFooter.svelte +0 -21
  196. package/dist/layout/LayoutFooter.svelte.d.ts +0 -18
  197. package/dist/layout/LayoutGrid.svelte +0 -51
  198. package/dist/layout/LayoutGrid.svelte.d.ts +0 -27
  199. package/dist/layout/LayoutHeader.svelte +0 -97
  200. package/dist/layout/LayoutHeader.svelte.d.ts +0 -34
  201. package/dist/layout/LayoutSideMenu.svelte +0 -55
  202. package/dist/layout/LayoutSideMenu.svelte.d.ts +0 -21
  203. package/dist/layout/LayoutTypes.d.ts +0 -15
  204. package/dist/layout/LayoutTypes.js +0 -9
  205. package/dist/layout/Overlay.svelte +0 -20
  206. package/dist/layout/Overlay.svelte.d.ts +0 -25
  207. package/dist/layout/OverlayLayer.svelte +0 -140
  208. package/dist/layout/OverlayLayer.svelte.d.ts +0 -19
  209. package/dist/layout/PageContent.svelte +0 -82
  210. package/dist/layout/PageContent.svelte.d.ts +0 -25
  211. package/dist/layout/Theme.svelte +0 -243
  212. package/dist/layout/Theme.svelte.d.ts +0 -19
  213. package/dist/layout/UIContent.svelte +0 -15
  214. package/dist/layout/UIContent.svelte.d.ts +0 -18
  215. package/dist/layout/index.d.ts +0 -11
  216. package/dist/layout/index.js +0 -11
  217. package/dist/nav/Breadcrumb.svelte +0 -82
  218. package/dist/nav/Breadcrumb.svelte.d.ts +0 -28
  219. package/dist/nav/Menu.svelte +0 -170
  220. package/dist/nav/Menu.svelte.d.ts +0 -27
  221. package/dist/nav/MenuItem.svelte.d.ts +0 -22
  222. package/dist/nav/NavMenu.svelte +0 -181
  223. package/dist/nav/NavMenu.svelte.d.ts +0 -19
  224. package/dist/nav/TabbedContent.svelte +0 -43
  225. package/dist/nav/TabbedContent.svelte.d.ts +0 -23
  226. package/dist/nav/Tabs.svelte.d.ts +0 -25
  227. package/dist/nav/index.d.ts +0 -7
  228. package/dist/nav/index.js +0 -6
  229. package/dist/style.css +0 -950
  230. package/dist/typo/Clamp.svelte +0 -25
  231. package/dist/typo/Clamp.svelte.d.ts +0 -24
  232. package/dist/typo/H.svelte +0 -52
  233. package/dist/typo/H.svelte.d.ts +0 -28
  234. package/dist/typo/H1.svelte +0 -14
  235. package/dist/typo/H1.svelte.d.ts +0 -26
  236. package/dist/typo/H2.svelte +0 -14
  237. package/dist/typo/H2.svelte.d.ts +0 -26
  238. package/dist/typo/H3.svelte +0 -14
  239. package/dist/typo/H3.svelte.d.ts +0 -26
  240. package/dist/typo/H4.svelte +0 -14
  241. package/dist/typo/H4.svelte.d.ts +0 -26
  242. package/dist/typo/H5.svelte +0 -14
  243. package/dist/typo/H5.svelte.d.ts +0 -26
  244. package/dist/typo/H6.svelte +0 -14
  245. package/dist/typo/H6.svelte.d.ts +0 -26
  246. package/dist/typo/P.svelte +0 -34
  247. package/dist/typo/P.svelte.d.ts +0 -26
  248. package/dist/typo/index.d.ts +0 -9
  249. package/dist/typo/index.js +0 -9
  250. package/dist/utils/StringOrComponent.svelte +0 -14
  251. package/dist/utils/StringOrComponent.svelte.d.ts +0 -19
  252. package/dist/utils/StringOrSnippet.svelte +0 -11
  253. package/dist/utils/StringOrSnippet.svelte.d.ts +0 -19
  254. package/dist/utils/defaults.d.ts +0 -4
  255. package/dist/utils/hooks.server.d.ts +0 -2
  256. package/dist/utils/hooks.server.js +0 -16
  257. package/dist/utils/id.d.ts +0 -1
  258. package/dist/utils/id.js +0 -3
  259. package/dist/utils/index.d.ts +0 -9
  260. package/dist/utils/index.js +0 -6
  261. package/dist/utils/isSnippet.d.ts +0 -3
  262. package/dist/utils/isSnippet.js +0 -11
  263. /package/dist/{nav → components}/MenuTypes.js +0 -0
  264. /package/dist/{layout → components}/overlays.svelte.js +0 -0
  265. /package/dist/{utils → util}/attr.d.ts +0 -0
  266. /package/dist/{utils → util}/attr.js +0 -0
  267. /package/dist/{utils → util}/color.d.ts +0 -0
  268. /package/dist/{utils → util}/color.js +0 -0
  269. /package/dist/{utils → util}/dom.d.ts +0 -0
  270. /package/dist/{utils → util}/keyboard.svelte.d.ts +0 -0
  271. /package/dist/{utils → util}/keyboard.svelte.js +0 -0
  272. /package/dist/{utils/defaults.js → util/settings.js} +0 -0
  273. /package/dist/{utils → util}/transitions.d.ts +0 -0
  274. /package/dist/{utils → util}/transitions.js +0 -0
@@ -1,97 +0,0 @@
1
- <script lang="ts">import {} from "svelte";
2
- let {
3
- left,
4
- center,
5
- right,
6
- sticky,
7
- skipToContentText = "Skip to content"
8
- } = $props();
9
- </script>
10
-
11
- <header class="LayoutHeader" class:sticky>
12
- <a href="#skip" class="Skip">{skipToContentText}</a>
13
- <ul>
14
- {#if left}
15
- <li class="left">
16
- {@render left()}
17
- </li>
18
- {/if}
19
- {#if center}
20
- <li class="center">
21
- {@render center()}
22
- </li>
23
- {/if}
24
- {#if right}
25
- <li class="right">
26
- {@render right()}
27
- </li>
28
- {/if}
29
- </ul>
30
- </header>
31
-
32
- <style>
33
- .LayoutHeader {
34
- position: relative;
35
- z-index: 1;
36
- padding: 0.5rem 1rem;
37
- background: color-mix(in srgb, var(--bg-app) 50%, transparent 50%);
38
- backdrop-filter: blur(16px);
39
- -webkit-backdrop-filter: blur(16px);
40
- display: flex;
41
- place-items: center;
42
- }
43
- .LayoutHeader.sticky {
44
- position: sticky;
45
- top: 0;
46
- }
47
- .Skip {
48
- position: absolute;
49
- top: -40px;
50
- left: 0;
51
- padding: 0.5rem;
52
- background: var(--bg-app);
53
- font-size: 1rem;
54
- z-index: 1000;
55
- }
56
- .Skip:focus {
57
- top: 0;
58
- }
59
- .right :global(a) {
60
- color: var(--text);
61
- }
62
- .right :global(a:hover) {
63
- color: var(--text-link);
64
- }
65
- ul {
66
- list-style: none;
67
- padding: 0;
68
- margin: 0;
69
- display: grid;
70
- grid-template-areas: "left center right";
71
- grid-template-columns: 1fr auto 1fr;
72
- align-items: center;
73
- max-width: var(--max-width, 100%);
74
- }
75
- li {
76
- padding: 0;
77
- margin: 0;
78
- flex-basis: 0;
79
- display: flex;
80
- align-items: center;
81
- flex-wrap: nowrap;
82
- gap: 1rem;
83
- }
84
- li.left { grid-area: left; }
85
- li.center { grid-area: center; }
86
- li.right { grid-area: right; }
87
- ul > :not(:first-child):not(:last-child) {
88
- grid-column: center;
89
- }
90
- ul > :first-child:last-child {
91
- grid-column: 1 / -1;
92
- }
93
- li.right {
94
- display: flex;
95
- justify-content: flex-end;
96
- }
97
- </style>
@@ -1,34 +0,0 @@
1
- import { type Snippet } from "svelte";
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports;
10
- z_$$bindings?: Bindings;
11
- }
12
- declare const LayoutHeader: $$__sveltets_2_IsomorphicComponent<{
13
- left?: Snippet;
14
- /**
15
- * The center of the header (usually a menu), search bar, etc.
16
- */
17
- center?: Snippet;
18
- /**
19
- * The right side of the header (usually user info, settings, etc.)
20
- */
21
- right?: Snippet;
22
- /**
23
- * The text to display for the skip to content link
24
- */
25
- skipToContentText?: string;
26
- /**
27
- * Whether the header should be sticky
28
- */
29
- sticky?: boolean;
30
- }, {
31
- [evt: string]: CustomEvent<any>;
32
- }, {}, {}, "">;
33
- type LayoutHeader = InstanceType<typeof LayoutHeader>;
34
- export default LayoutHeader;
@@ -1,55 +0,0 @@
1
- <script lang="ts">import MenuItem from "../nav/MenuItem.svelte";
2
- let {
3
- items,
4
- children,
5
- navContainer
6
- } = $props();
7
- </script>
8
-
9
- {#snippet content()}
10
- <nav>
11
- <ul>
12
- {#each items as item, index}
13
- <MenuItem {index} {item} />
14
- {/each}
15
- </ul>
16
- </nav>
17
- {/snippet}
18
-
19
- <main>
20
- <aside>
21
- {#if navContainer}
22
- {@render navContainer(content)}
23
- {:else}
24
- {@render content()}
25
- {/if}
26
- </aside>
27
- {@render children()}
28
- </main>
29
-
30
- <style>
31
- main {
32
- display: grid;
33
- grid-template-columns: clamp(10rem, 20%, 20rem) 1fr;
34
- min-height: 100%;
35
- }
36
- nav {
37
- --menu-item-margin: 0;
38
- }
39
- ul {
40
- list-style: none;
41
- margin: 0;
42
- padding: 0;
43
- position: sticky;
44
- top: -1rem;
45
- border-left: 1px solid var(--border);
46
- }
47
- @media(max-width: 800px) {
48
- main {
49
- grid-template-columns: 1fr;
50
- }
51
- nav {
52
- padding: 0 1rem;
53
- }
54
- }
55
- </style>
@@ -1,21 +0,0 @@
1
- import type { Snippet } from "svelte";
2
- import type { MenuItem as Item } from "../nav/MenuTypes.js";
3
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports;
11
- z_$$bindings?: Bindings;
12
- }
13
- declare const LayoutSideMenu: $$__sveltets_2_IsomorphicComponent<{
14
- items: Item[];
15
- children: Snippet;
16
- navContainer?: Snippet<[content: Snippet]>;
17
- }, {
18
- [evt: string]: CustomEvent<any>;
19
- }, {}, {}, "">;
20
- type LayoutSideMenu = InstanceType<typeof LayoutSideMenu>;
21
- export default LayoutSideMenu;
@@ -1,15 +0,0 @@
1
- /**
2
- * Layout container types.
3
- * `ui` is for UI components. It will not add margins.
4
- * `page` is for page content. It will add automatic margins to typography and other page content.
5
- */
6
- export type LayoutContainerType = 'ui' | 'page';
7
- export declare const BREAKPOINTS: {
8
- s: number;
9
- m: number;
10
- l: number;
11
- };
12
- export declare const BREAKPOINT_SIZES: number[];
13
- export declare const SMALLEST_BREAKPOINT: number;
14
- export declare const LARGEST_BREAKPOINT: number;
15
- export declare const MIN_WIDTH = 280;
@@ -1,9 +0,0 @@
1
- export const BREAKPOINTS = {
2
- s: 320,
3
- m: 672,
4
- l: 1312,
5
- };
6
- export const BREAKPOINT_SIZES = Object.values(BREAKPOINTS);
7
- export const SMALLEST_BREAKPOINT = BREAKPOINT_SIZES[0];
8
- export const LARGEST_BREAKPOINT = BREAKPOINT_SIZES[BREAKPOINT_SIZES.length - 1];
9
- export const MIN_WIDTH = 280;
@@ -1,20 +0,0 @@
1
- <script lang="ts">import { onDestroy, onMount } from "svelte";
2
- import { addOverlay, removeOverlay } from "./overlays.svelte.js";
3
- import { createId } from "../utils/id.js";
4
- let {
5
- id = createId(),
6
- children,
7
- position = "center",
8
- anchor,
9
- layer,
10
- transition,
11
- z
12
- } = $props();
13
- onMount(() => {
14
- addOverlay({ id, z, layer, content: children, transition, position, anchor });
15
- });
16
- onDestroy(() => {
17
- removeOverlay(id);
18
- });
19
- </script>
20
-
@@ -1,25 +0,0 @@
1
- import { type Snippet } from "svelte";
2
- import { type OverlayPosition, type TransitionOpts } from "./overlays.svelte.js";
3
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports;
11
- z_$$bindings?: Bindings;
12
- }
13
- declare const Overlay: $$__sveltets_2_IsomorphicComponent<{
14
- id?: string;
15
- children: Snippet;
16
- anchor?: HTMLElement;
17
- layer?: string;
18
- position?: OverlayPosition;
19
- transition?: TransitionOpts;
20
- z?: number;
21
- }, {
22
- [evt: string]: CustomEvent<any>;
23
- }, {}, {}, "">;
24
- type Overlay = InstanceType<typeof Overlay>;
25
- export default Overlay;
@@ -1,140 +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) return { left: 0, top: 0, index: 1 };
25
- const triggerPos = item.anchor.getBoundingClientRect();
26
- const height = contentEl.clientHeight;
27
- const width = contentEl.clientWidth;
28
- const isOffBottom = triggerPos.bottom + height > window.innerHeight - fudge;
29
- const isOffRight = triggerPos.left + width > window.innerWidth - fudge;
30
- let left = triggerPos.left;
31
- let top = triggerPos.top + triggerPos.height + fudge;
32
- if (isOffRight) left = left - width + triggerPos.width;
33
- if (isOffBottom) top = top - height - triggerPos.height - fudge * 2;
34
- return {
35
- left,
36
- top,
37
- index: 1
38
- };
39
- });
40
- });
41
- let originCache = $state({});
42
- let origins = $derived.by(() => {
43
- return items.map((item, index) => {
44
- if (!item.anchor || item.position !== "anchor") {
45
- return item.position || "center";
46
- }
47
- const triggerPos = item.anchor.getBoundingClientRect();
48
- const contentEl = document.getElementById(item.id);
49
- const contentRect = contentEl?.getBoundingClientRect();
50
- const height = contentRect.height;
51
- const width = contentRect.width;
52
- const isOffBottom = triggerPos.bottom + height > innerHeight - fudge;
53
- const isOffRight = triggerPos.left + width > innerWidth - fudge;
54
- let text = "top left";
55
- if (isOffRight) text = text.replace("left", "right");
56
- if (isOffBottom) text = text.replace("top", "bottom");
57
- return text;
58
- });
59
- });
60
- $effect(() => {
61
- origins;
62
- origins.forEach((origin, index) => {
63
- originCache[untrack(() => items[index].id)] = origin;
64
- });
65
- });
66
- function introstart(item) {
67
- document.getElementById(item.id).style.pointerEvents = "none";
68
- }
69
- function introend(item) {
70
- document.getElementById(item.id).style.pointerEvents = "auto";
71
- }
72
- </script>
73
-
74
- <svelte:window bind:scrollX bind:scrollY bind:innerWidth bind:innerHeight />
75
-
76
- <div class="Layer {position}">
77
- {#each items as item, index (item.id)}
78
- <div
79
- id={item.id}
80
- bind:this={contentEls[item.id]}
81
- class="LayerItem"
82
- class:anchor={item.anchor ? true : false}
83
- onintrostart={() => introstart(item)}
84
- onintroend={() => introend(item)}
85
- transition:slidefade|global={{ duration: 150, origin: originCache[item.id] || origins[index], noMargin: !!!item.anchor }}
86
- style="--index: {index}; --z: {item.z}; --left: {positions[index].left}px; --top: {positions[index].top}px;"
87
- >
88
- {#if isComponent(item.content)}
89
- <item.content {...item.props} />
90
- {:else if isSnippet(item.content)}
91
- {@render item.content()}
92
- {/if}
93
- </div>
94
- {/each}
95
- </div>
96
-
97
- <style>
98
- .Layer {
99
- pointer-events: auto;
100
- position: absolute;
101
- display: flex;
102
- flex-direction: column-reverse;
103
- gap: 0.75rem;
104
- }
105
- .Layer.center {
106
- left: 50%;
107
- right: auto;
108
- transform: translateX(-50%);
109
- }
110
- .Layer.top {
111
- top: calc(1rem + env(safe-area-inset-top));
112
- bottom: unset;
113
- }
114
- .Layer.bottom {
115
- top: unset;
116
- bottom: calc(1rem + env(safe-area-inset-bottom));
117
- }
118
- .Layer.right {
119
- left: unset;
120
- right: calc(1rem + env(safe-area-inset-right));
121
- }
122
- .Layer.left {
123
- left: calc(1rem + env(safe-area-inset-left));
124
- right: unset;
125
- }
126
- .Layer.center:not(.top):not(.bottom):not(.anchor) {
127
- top: 50%;
128
- bottom: auto;
129
- 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)));
130
- }
131
- .LayerItem {
132
- position: relative;
133
- z-index: calc(100 + var(--z, 1) - var(--index, 0));
134
- }
135
- .LayerItem.anchor {
136
- position: absolute;
137
- top: var(--top, 0);
138
- left: var(--left, 0);
139
- }
140
- </style>
@@ -1,19 +0,0 @@
1
- import { type OverlayItem, type OverlayPosition } from "./overlays.svelte.js";
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports;
10
- z_$$bindings?: Bindings;
11
- }
12
- declare const OverlayLayer: $$__sveltets_2_IsomorphicComponent<{
13
- position?: OverlayPosition;
14
- items: OverlayItem[];
15
- }, {
16
- [evt: string]: CustomEvent<any>;
17
- }, {}, {}, "">;
18
- type OverlayLayer = InstanceType<typeof OverlayLayer>;
19
- export default OverlayLayer;
@@ -1,82 +0,0 @@
1
- <script lang="ts">import { setContext } from "svelte";
2
- let {
3
- children,
4
- pad = false,
5
- middle = false,
6
- center = false,
7
- style
8
- } = $props();
9
- let padStyle = $derived.by(() => {
10
- if (typeof pad === "boolean") {
11
- return `--padBlockStart: ${pad ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padBlockEnd: ${pad ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padInlineStart: ${pad ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"}; --padInlineEnd: ${pad ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"};`;
12
- } else if (typeof pad === "string") {
13
- return `--padBlockStart: ${pad}; --padBlockEnd: ${pad}; --padInlineStart: ${pad}; --padInlineEnd: ${pad};`;
14
- } else if (Array.isArray(pad) && pad.length > 1 && typeof pad[0] === "string") {
15
- switch (pad.length) {
16
- case 2:
17
- return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[0]}; --padInlineStart: ${pad[1]}; --padInlineEnd: ${pad[1]};`;
18
- case 3:
19
- return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[1]}; --padInlineStart: ${pad[2]}; --padInlineEnd: ${pad[2]};`;
20
- case 4:
21
- return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[1]}; --padInlineStart: ${pad[2]}; --padInlineEnd: ${pad[3]};`;
22
- }
23
- } else if (Array.isArray(pad) && pad.length > 1) {
24
- switch (pad.length) {
25
- case 2:
26
- return `--padBlockStart: ${pad[0] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padBlockEnd: ${pad[0] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padInlineStart: ${pad[1] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"}; --padInlineEnd: ${pad[1] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"};`;
27
- case 3:
28
- return `--padBlockStart: ${pad[0] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padBlockEnd: ${pad[1] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padInlineStart: ${pad[2] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"}; --padInlineEnd: ${pad[2] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"};`;
29
- case 4:
30
- return `--padBlockStart: ${pad[0] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padBlockEnd: ${pad[1] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padInlineStart: ${pad[2] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"}; --padInlineEnd: ${pad[3] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"};`;
31
- }
32
- }
33
- return "";
34
- });
35
- </script>
36
-
37
- <article
38
- class="Page"
39
- class:middle
40
- class:center
41
- style="{padStyle} {style}"
42
- >
43
- <div class="PaddingContainer">
44
- <div class="PageContent">
45
- {@render children()}
46
- </div>
47
- </div>
48
- </article>
49
-
50
- <style>
51
- .Page {
52
- inline-size: 100%;
53
- display: grid;
54
- grid-template-columns: 1fr;
55
- container-type: inline-size;
56
- container-name: page;
57
- position: relative;
58
- }
59
- .PageContent {
60
- container-type: inline-size;
61
- max-inline-size: var(--max-inline-size, 1560px);
62
- flex-grow: 1;
63
- --isPage: 1;
64
- }
65
- .Page.center {
66
- justify-content: center;
67
- }
68
- .Page.middle {
69
- block-size: 100%;
70
- align-items: center;
71
- }
72
- .Page .PaddingContainer {
73
- padding-block-start: var(--padBlockStart);
74
- padding-block-end: var(--padBlockEnd);
75
- padding-inline-start: var(--padInlineStart);
76
- padding-inline-end: var(--padInlineEnd);
77
- display: flex;
78
- }
79
- .Page.center .PaddingContainer {
80
- justify-content: center;
81
- }
82
- </style>
@@ -1,25 +0,0 @@
1
- import { type Snippet } from "svelte";
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports;
10
- z_$$bindings?: Bindings;
11
- }
12
- declare const PageContent: $$__sveltets_2_IsomorphicComponent<{
13
- children: Snippet;
14
- /** Add padding to the container. Pass in either a boolean or an array of booleans to specify padding on the block and inline axes. */
15
- pad?: boolean | [boolean, boolean] | [boolean, boolean, boolean] | [boolean, boolean, boolean, boolean] | string | [string, string] | [string, string, string] | [string, string, string, string];
16
- /** Center the content in the block direction. */
17
- middle?: boolean;
18
- /** Center the content in the inline direction. */
19
- center?: boolean;
20
- style?: string;
21
- }, {
22
- [evt: string]: CustomEvent<any>;
23
- }, {}, {}, "">;
24
- type PageContent = InstanceType<typeof PageContent>;
25
- export default PageContent;