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,28 +0,0 @@
1
- import type { Component, 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 Callout: $$__sveltets_2_IsomorphicComponent<{
13
- /** The icon to display. If not specified, it will default to the type. */
14
- icon?: string | Component;
15
- /** The type of callout. If not specified and no icon is provided, no icon will be displayed. */
16
- type?: "alert" | "info" | "ok" | "warn" | "task";
17
- /** Whether to contain the element in a box. */
18
- contained?: boolean;
19
- /** Whether to round the corners of the element. */
20
- rounded?: boolean;
21
- /** Whether the callout is dismissable. */
22
- dismissable?: boolean;
23
- children: Snippet;
24
- }, {
25
- [evt: string]: CustomEvent<any>;
26
- }, {}, {}, "">;
27
- type Callout = InstanceType<typeof Callout>;
28
- export default Callout;
@@ -1,18 +0,0 @@
1
- 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> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports;
9
- z_$$bindings?: Bindings;
10
- }
11
- declare const Close: $$__sveltets_2_IsomorphicComponent<{
12
- onclick?: (e: MouseEvent) => void;
13
- position?: "top left" | "top right" | "bottom left" | "bottom right";
14
- }, {
15
- [evt: string]: CustomEvent<any>;
16
- }, {}, {}, "">;
17
- type Close = InstanceType<typeof Close>;
18
- export default Close;
@@ -1,190 +0,0 @@
1
- <script lang="ts">import Copy from "../icons/IconCopy.svelte";
2
- import Done from "../icons/IconDone.svelte";
3
- import IconButton from "./IconButton.svelte";
4
- import Tooltip from "./Tooltip.svelte";
5
- let {
6
- code = $bindable(""),
7
- highlight,
8
- copyable,
9
- contained,
10
- rounded,
11
- singleLine,
12
- lineNumbers,
13
- readonly
14
- } = $props();
15
- const numberOfLines = $derived(code.split("\n").length);
16
- let title = $state("Copy");
17
- let open = $state(false);
18
- let btnIcon = $state(Copy);
19
- let el = $state(null);
20
- let scrollTop = $state(0);
21
- let scrollLeft = $state(0);
22
- function copy() {
23
- if (!el) return;
24
- if (navigator.clipboard) {
25
- navigator.clipboard.writeText(code);
26
- } else {
27
- el.focus();
28
- el.select();
29
- document.execCommand("copy");
30
- }
31
- btnIcon = Done;
32
- title = "Copied!";
33
- open = true;
34
- setTimeout(() => {
35
- btnIcon = Copy;
36
- title = "Copy";
37
- open = false;
38
- }, 1500);
39
- }
40
- function onscroll(e) {
41
- console.log("scrolling");
42
- scrollTop = e.target.scrollTop;
43
- scrollLeft = e.target.scrollLeft;
44
- }
45
- let codeLines = $derived.by(() => {
46
- return (highlight ? highlight(code) : code).split("\n") || [];
47
- });
48
- </script>
49
-
50
- <div class="Code" class:lineNumbers class:singleLine class:rounded class:copyable class:contained class:hasOverlay={highlight}>
51
- {#if singleLine}
52
- <input class="CodeInput" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" {readonly} bind:this={el} bind:value={code} title={copyable ? code : undefined} {onscroll} />
53
- {:else}
54
- <textarea class="CodeInput" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" {readonly} bind:this={el} bind:value={code} {onscroll}></textarea>
55
- {/if}
56
- {#if highlight}
57
- <div class="Overlay" tabindex="-1" aria-hidden="true" style="top: {-scrollTop}px; left: {-scrollLeft}px;">
58
- {#each codeLines as line, index}
59
- <div class="Line">
60
- {#if lineNumbers}
61
- <div class="Number">
62
- <span>{index + 1}</span>
63
- </div>
64
- {/if}
65
- <div class="Content">
66
- {@html line}
67
- </div>
68
- </div>
69
- {/each}
70
- </div>
71
- {/if}
72
- {#if copyable}
73
- <Tooltip tip={title} {open}>
74
- <IconButton icon={btnIcon} onclick={copy} disabled={open} />
75
- </Tooltip>
76
- {/if}
77
- </div>
78
-
79
- <style>
80
- .Code {
81
- display: grid;
82
- align-items: start;
83
- grid-template-columns: 1fr;
84
- grid-template-areas: "content";
85
- }
86
- .Code.lineNumbers {
87
- grid-template-columns: auto 1fr;
88
- grid-template-areas: "lines content";
89
- margin-inline-start: -2rem;
90
- width: calc(100% + 2rem);
91
- }
92
- .CodeInput,
93
- .Overlay {
94
- font-family: var(--font-family-mono);
95
- font-size: var(--font-size, 1em);
96
- line-height: 1.5;
97
- margin: 0;
98
- border: 0;
99
- grid-area: content;
100
- background: var(--field-bg);
101
- scrollbar-width: thin;
102
- }
103
- textarea {
104
- width: 100%;
105
- height: 100%;
106
- white-space: pre-wrap;
107
- word-break: normal;
108
- overflow-wrap: anywhere;
109
- direction: ltr;
110
- writing-mode: lr;
111
- resize: none;
112
- z-index: -1;
113
- scrollbar-width: thin;
114
- }
115
- .Code.lineNumbers textarea {
116
- padding-inline-start: 2rem;
117
- width: calc(100% - 2rem);
118
- }
119
- .Code.hasOverlay .CodeInput {
120
- color: transparent;
121
- caret-color: var(--text);
122
- }
123
- .Code.rounded,
124
- .Code.rounded .CodeInput {
125
- border-radius: var(--border-radius);
126
- }
127
- .Code.singleLine.copyable .CodeInput {
128
- border-top-right-radius: 0;
129
- border-bottom-right-radius: 0;
130
- }
131
-
132
- /**
133
- * Contained
134
- */
135
-
136
- .Code.contained {
137
- border: var(--border);
138
- }
139
- .Code.contained .CodeInput,
140
- .Code.contained .Overlay {
141
- height: auto;
142
- min-height: auto;
143
- padding: var(--padding, 0.5rem 1rem);
144
- }
145
- .Code.contained:focus-within {
146
- outline: var(--focus-outline);
147
- }
148
- .Code.contained:focus-within .CodeInput {
149
- outline: none;
150
- }
151
- .Code.contained:focus-within:has(:focus:not(.CodeInput)) {
152
- outline: none;
153
- }
154
-
155
- /**
156
- * Single line
157
- */
158
-
159
- .Code.singleLine {
160
- align-items: center;
161
- overflow-inline: clip;
162
- }
163
- .Code.singleLine.copyable {
164
- grid-template-columns: 1fr auto;
165
- grid-template-areas: "content button";
166
- }
167
- .Code.singleLine.copyable .CodeInput,
168
- .Code.singleLine.copyable .Overlay {
169
- text-overflow: ellipsis;
170
- white-space: nowrap;
171
- padding: var(--padding, 0.35rem 0.75rem);
172
- }
173
- .Code.singleLine .CodeInput,
174
- .Code.singleLine .Overlay {
175
- resize: none;
176
- line-height: 1;
177
- }
178
-
179
- .Line {
180
- display: grid;
181
- }
182
- .Code.lineNumbers .Line {
183
- display: grid;
184
- grid-template-columns: 2rem 1fr;
185
- }
186
- .Line .Number {
187
- text-align: end;
188
- padding-inline-end: 0.5rem;
189
- }
190
- </style>
@@ -1,32 +0,0 @@
1
- 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> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports;
9
- z_$$bindings?: Bindings;
10
- }
11
- declare const Code: $$__sveltets_2_IsomorphicComponent<{
12
- /** The code to display. */
13
- code: string;
14
- /** A function to highlight parts of the code. */
15
- highlight?: (code: string) => string;
16
- /** Whether the code is copyable. */
17
- copyable?: boolean;
18
- /** Whether to contain the element in a box. */
19
- contained?: boolean;
20
- /** Whether to round the corners of the element. */
21
- rounded?: boolean;
22
- /** Whether the code is a single line. */
23
- singleLine?: boolean;
24
- /** Whether to show line numbers. */
25
- lineNumbers?: boolean;
26
- /** Whether the code is readonly. */
27
- readonly?: boolean;
28
- }, {
29
- [evt: string]: CustomEvent<any>;
30
- }, {}, {}, "code">;
31
- type Code = InstanceType<typeof Code>;
32
- export default Code;
@@ -1,23 +0,0 @@
1
- <script lang="ts">import Tooltip from "./Tooltip.svelte";
2
- import Help from "../icons/IconHelp.svelte";
3
- import Icon from "./Icon.svelte";
4
- let {
5
- tip
6
- } = $props();
7
- </script>
8
-
9
- <Tooltip {tip}>
10
- <a href="#contexttip" onclick={(e) => { e.preventDefault(); e.stopPropagation(); }}>
11
- <Icon icon={Help} --icon-width="16px" --icon-height="16px" --cursor="help" --vertical-align="baseline" />
12
- </a>
13
- </Tooltip>
14
-
15
- <style>
16
- a {
17
- border-radius: 50%;
18
- color: var(--text);
19
- height: 16px;
20
- width: 16px;
21
- display: inline-block;
22
- }
23
- </style>
@@ -1,18 +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 ContextTip: $$__sveltets_2_IsomorphicComponent<{
13
- tip: string | Snippet;
14
- }, {
15
- [evt: string]: CustomEvent<any>;
16
- }, {}, {}, "">;
17
- type ContextTip = InstanceType<typeof ContextTip>;
18
- export default ContextTip;
@@ -1,16 +0,0 @@
1
- <script lang="ts">import StringOrSnippet from "../utils/StringOrSnippet.svelte";
2
- let {
3
- items
4
- } = $props();
5
- </script>
6
-
7
- <div class="data-list">
8
- {#each items as { label, value }, i}
9
- <div class="data-list-item">
10
- <div class="data-list-item-label">{label}</div>
11
- <div class="data-list-item-value">
12
- <StringOrSnippet content={value} />
13
- </div>
14
- </div>
15
- {/each}
16
- </div>
@@ -1,21 +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 DataList: $$__sveltets_2_IsomorphicComponent<{
13
- items: {
14
- label: string;
15
- value: string | Snippet;
16
- }[];
17
- }, {
18
- [evt: string]: CustomEvent<any>;
19
- }, {}, {}, "">;
20
- type DataList = InstanceType<typeof DataList>;
21
- export default DataList;
@@ -1,49 +0,0 @@
1
- <script lang="ts">let {
2
- summary,
3
- contained,
4
- rounded,
5
- open,
6
- children
7
- } = $props();
8
- </script>
9
-
10
- <details class:contained class:rounded bind:open>
11
- <summary>
12
- {#if typeof summary === 'string'}
13
- <span>{summary}</span>
14
- {:else}
15
- {@render summary()}
16
- {/if}
17
- </summary>
18
- <section>
19
- {@render children()}
20
- </section>
21
- </details>
22
-
23
- <style>
24
- summary {
25
- font-weight: 600;
26
- font-size: var(--font-size, 1em);
27
- cursor: pointer;
28
- padding-block-end: 0.5rem;
29
- }
30
- details.rounded {
31
- border-radius: var(--border-radius);
32
- }
33
- details.contained {
34
- border: var(--border);
35
- overflow: hidden;
36
- }
37
- details.contained[open] summary {
38
- border-block-end: var(--border);
39
- }
40
- details.contained summary {
41
- padding: var(--padding, 0.5em 1em);
42
- background-color: var(--summary-bg, var(--bg-subtle));
43
- }
44
- details.contained section {
45
- font-size: var(--font-size, 1em);
46
- padding: var(--padding, 0.5em 1em);
47
- background-color: var(--content-bg, transparent);
48
- }
49
- </style>
@@ -1,27 +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 Details: $$__sveltets_2_IsomorphicComponent<{
13
- /** The summary of the element. Can be a string or a snippet. */
14
- summary: string | Snippet;
15
- /** Contain the element in a box. */
16
- contained?: boolean;
17
- /** Round the corners of the element if contained. */
18
- rounded?: boolean;
19
- /** Whether the details are open. */
20
- open?: boolean;
21
- /** The content of the element. */
22
- children: Snippet;
23
- }, {
24
- [evt: string]: CustomEvent<any>;
25
- }, {}, {}, "">;
26
- type Details = InstanceType<typeof Details>;
27
- export default Details;
@@ -1,50 +0,0 @@
1
- <script lang="ts">import { setContext } from "svelte";
2
- let {
3
- children,
4
- pad = true,
5
- center = false,
6
- fullWidth = false,
7
- contained = false
8
- } = $props();
9
- </script>
10
-
11
- <section class="Hero" class:pad class:fullWidth class:center class:contained>
12
- <main>
13
- {@render children()}
14
- </main>
15
- </section>
16
-
17
- <style>
18
- .Hero {
19
- background: var(--bg, var(--bg-subtle));
20
- container-type: inline-size;
21
- text-wrap: balance;
22
- }
23
- .Hero.contained main {
24
- max-inline-size: var(--max-inline-size, 1560px);
25
- }
26
- /** Header areas where h1 is followed by h2 */
27
- .Hero :global(h1:has(+ h2)) {
28
- margin-block-end: 1rem;
29
- }
30
- .Hero :global(h1 + h2) {
31
- color: var(--text-subtle);
32
- margin-block-start: 0rem;
33
- }
34
- .Hero {
35
- block-size: 100%;
36
- margin-inline: 0;
37
- }
38
- .Hero.fullWidth {
39
- inline-size: 100cqi;
40
- margin-inline: calc(50% - 50cqi);
41
- min-inline-size: 100%;
42
- }
43
- .Hero.center main {
44
- margin-inline: auto;
45
- }
46
- .Hero.pad {
47
- padding-block: var(--padding, var(--padding-block, 4rem));
48
- padding-inline: var(--padding, var(--padding-inline, 4rem));
49
- }
50
- </style>
@@ -1,26 +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 Hero: $$__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. */
17
- center?: boolean;
18
- /** Make the hero full width to the container (nearest element with `container-type: inline-size;`) */
19
- fullWidth?: boolean;
20
- /** Contain the hero to the container (nearest element with `container-type: inline-size;`) */
21
- contained?: boolean;
22
- }, {
23
- [evt: string]: CustomEvent<any>;
24
- }, {}, {}, "">;
25
- type Hero = InstanceType<typeof Hero>;
26
- export default Hero;
@@ -1,39 +0,0 @@
1
- <script lang="ts">import { isComponent, isSnippet } from "../utils/isSnippet.js";
2
- let {
3
- icon,
4
- alt
5
- } = $props();
6
- let Icon = icon;
7
- </script>
8
-
9
- <span class="Icon" aria-label="icon">
10
- {#if typeof icon === "string"}
11
- <img src={icon} alt={alt ? alt : 'Icon'} width="100%" height="100%" />
12
- {:else}
13
- <Icon />
14
- {/if}
15
- </span>
16
-
17
- <style>
18
- .Icon {
19
- display: inline-flex;
20
- align-items: center;
21
- justify-content: center;
22
- font-size: 1em;
23
- line-height: inherit;
24
- width: max(
25
- var(--icon-width,
26
- var(--icon-height, 1rem)
27
- ), 16px);
28
- height: max(var(--icon-height, auto), 16px);
29
- overflow: clip;
30
- vertical-align: var(--vertical-align, text-bottom);
31
- cursor: var(--cursor, default);
32
- }
33
- img,
34
- .Icon :global(svg) {
35
- width: 100%;
36
- height: auto;
37
- display: block;
38
- }
39
- </style>
@@ -1,19 +0,0 @@
1
- import type { Component } 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 Icon: $$__sveltets_2_IsomorphicComponent<{
13
- icon: string | Component;
14
- alt?: string;
15
- }, {
16
- [evt: string]: CustomEvent<any>;
17
- }, {}, {}, "">;
18
- type Icon = InstanceType<typeof Icon>;
19
- export default Icon;
@@ -1,27 +0,0 @@
1
- import type { Component, 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 IconButton: $$__sveltets_2_IsomorphicComponent<{
13
- /** The icon to display. */
14
- icon: string | Component;
15
- /** The children to display. */
16
- children?: Snippet;
17
- /** The onclick event. */
18
- onclick?: (event: MouseEvent) => void;
19
- /** Whether the button is disabled. */
20
- disabled?: boolean;
21
- /** Whether to mask the content. */
22
- mask?: boolean;
23
- }, {
24
- [evt: string]: CustomEvent<any>;
25
- }, {}, {}, "">;
26
- type IconButton = InstanceType<typeof IconButton>;
27
- export default IconButton;
@@ -1,91 +0,0 @@
1
- <script lang="ts">import { decode } from "blurhash";
2
- import { fade } from "svelte/transition";
3
- let {
4
- hash,
5
- width,
6
- height,
7
- aspectRatio,
8
- fit,
9
- src,
10
- srcset,
11
- alt,
12
- style,
13
- class: className
14
- } = $props();
15
- let canvas = $state(null);
16
- let el = $state(null);
17
- let elWidth = $state(32);
18
- let elHeight = $state(32);
19
- if (!src && srcset) {
20
- const [src1] = srcset.split(", ");
21
- src = src1.split(" ")[0];
22
- }
23
- if (!style) {
24
- style = `aspect-ratio: ${aspectRatio};`;
25
- } else {
26
- style += ` aspect-ratio: ${aspectRatio};`;
27
- }
28
- let decoded = $state(false);
29
- let loaded = $state(false);
30
- const onload = () => {
31
- loaded = true;
32
- };
33
- $effect(() => {
34
- if (hash) {
35
- setTimeout(() => {
36
- const pixels = decode(hash, elWidth, elHeight);
37
- const ctx = canvas.getContext("2d");
38
- const imageData = ctx.createImageData(elWidth, elHeight);
39
- imageData.data.set(pixels);
40
- ctx.putImageData(imageData, 0, 0);
41
- decoded = true;
42
- }, 0);
43
- }
44
- });
45
- </script>
46
-
47
- <div class="BlurHashImage" class:loaded>
48
- <img
49
- bind:this={el}
50
- bind:clientWidth={elWidth}
51
- bind:clientHeight={elHeight}
52
- onload={onload}
53
- src={src}
54
- srcset={srcset}
55
- alt={alt}
56
- width={width}
57
- height={height}
58
- style={style}
59
- class="{className} {fit}"
60
- />
61
- {#if !loaded && hash}
62
- <canvas class:decoded out:fade={{ duration: 100 }} width={elWidth} height={elHeight} bind:this={canvas}></canvas>
63
- {/if}
64
- </div>
65
-
66
- <style>
67
- .BlurHashImage {
68
- position: relative;
69
- display: grid;
70
- grid-template-areas: "img";
71
- }
72
- canvas {
73
- z-index: 2;
74
- opacity: 0;
75
- width: 100%;
76
- grid-area: img;
77
- transition: opacity 200ms;
78
- }
79
- canvas.decoded {
80
- opacity: 1;
81
- }
82
- img {
83
- z-index: 1;
84
- grid-area: img;
85
- display: inline-block;
86
- vertical-align: middle;
87
- }
88
- img.cover { object-fit: cover; }
89
- img.contain { object-fit: contain; }
90
- img.scale-down { object-fit: scale-down; }
91
- </style>