contain-css-svelte 0.0.1

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 (74) hide show
  1. package/README.md +58 -0
  2. package/dist/Card.svelte +172 -0
  3. package/dist/Card.svelte.d.ts +27 -0
  4. package/dist/controls/Button.svelte +74 -0
  5. package/dist/controls/Button.svelte.d.ts +28 -0
  6. package/dist/controls/Checkbox.svelte +111 -0
  7. package/dist/controls/Checkbox.svelte.d.ts +18 -0
  8. package/dist/controls/Input.svelte +33 -0
  9. package/dist/controls/Input.svelte.d.ts +22 -0
  10. package/dist/controls/MiniButton.svelte +78 -0
  11. package/dist/controls/MiniButton.svelte.d.ts +31 -0
  12. package/dist/controls/RadioButton.svelte +109 -0
  13. package/dist/controls/RadioButton.svelte.d.ts +25 -0
  14. package/dist/controls/Select.svelte +135 -0
  15. package/dist/controls/Select.svelte.d.ts +20 -0
  16. package/dist/controls/Slider.svelte +45 -0
  17. package/dist/controls/Slider.svelte.d.ts +29 -0
  18. package/dist/controls/TabItem.svelte +56 -0
  19. package/dist/controls/TabItem.svelte.d.ts +29 -0
  20. package/dist/cssprops.d.ts +1 -0
  21. package/dist/cssprops.js +189 -0
  22. package/dist/dropdowns/DropdownMenu.svelte +234 -0
  23. package/dist/dropdowns/DropdownMenu.svelte.d.ts +19 -0
  24. package/dist/index.d.ts +23 -0
  25. package/dist/index.js +24 -0
  26. package/dist/layout/Bar.svelte +57 -0
  27. package/dist/layout/Bar.svelte.d.ts +27 -0
  28. package/dist/layout/Column.svelte +40 -0
  29. package/dist/layout/Column.svelte.d.ts +19 -0
  30. package/dist/layout/Columns.svelte +21 -0
  31. package/dist/layout/Columns.svelte.d.ts +27 -0
  32. package/dist/layout/Container.svelte +105 -0
  33. package/dist/layout/Container.svelte.d.ts +27 -0
  34. package/dist/layout/FormItem.svelte +97 -0
  35. package/dist/layout/FormItem.svelte.d.ts +35 -0
  36. package/dist/layout/GridLayout.svelte +22 -0
  37. package/dist/layout/GridLayout.svelte.d.ts +16 -0
  38. package/dist/layout/Hero.svelte +86 -0
  39. package/dist/layout/Hero.svelte.d.ts +23 -0
  40. package/dist/layout/MenuList.svelte +108 -0
  41. package/dist/layout/MenuList.svelte.d.ts +29 -0
  42. package/dist/layout/Page.svelte +189 -0
  43. package/dist/layout/Page.svelte.d.ts +31 -0
  44. package/dist/layout/ResponsiveText.svelte +99 -0
  45. package/dist/layout/ResponsiveText.svelte.d.ts +26 -0
  46. package/dist/layout/Row.svelte +39 -0
  47. package/dist/layout/Row.svelte.d.ts +19 -0
  48. package/dist/layout/Sidebar.svelte +264 -0
  49. package/dist/layout/Sidebar.svelte.d.ts +23 -0
  50. package/dist/layout/SplitPane.svelte +160 -0
  51. package/dist/layout/SplitPane.svelte.d.ts +21 -0
  52. package/dist/layout/TabBar.svelte +49 -0
  53. package/dist/layout/TabBar.svelte.d.ts +28 -0
  54. package/dist/layout/Tile.svelte +172 -0
  55. package/dist/layout/Tile.svelte.d.ts +27 -0
  56. package/dist/misc/Code.svelte +27 -0
  57. package/dist/misc/Code.svelte.d.ts +18 -0
  58. package/dist/sass/_containers.scss +117 -0
  59. package/dist/sass/_mixins.scss +309 -0
  60. package/dist/typography/TextLayout.svelte +46 -0
  61. package/dist/typography/TextLayout.svelte.d.ts +27 -0
  62. package/dist/util.d.ts +3 -0
  63. package/dist/util.js +13 -0
  64. package/dist/vars/affordances.css +26 -0
  65. package/dist/vars/colors.css +345 -0
  66. package/dist/vars/defaults.css +14 -0
  67. package/dist/vars/layout.css +39 -0
  68. package/dist/vars/themes/lightordark.css +39 -0
  69. package/dist/vars/themes/purple.css +18 -0
  70. package/dist/vars/themes/typography-airy.css +13 -0
  71. package/dist/vars/themes/typography-browser.css +20 -0
  72. package/dist/vars/themes/typography-carbon.css +20 -0
  73. package/dist/vars/typography.css +16 -0
  74. package/package.json +52 -0
@@ -0,0 +1,234 @@
1
+ <script context="module">let addedGlobalDiv;
2
+ </script>
3
+
4
+ <script>import { cssProperties } from "../cssprops";
5
+ import MenuList from "../layout/MenuList.svelte";
6
+ import { injectVars } from "../util";
7
+ import { portal } from "svelte-portal";
8
+ import { onMount } from "svelte";
9
+ onMount(() => {
10
+ console.log("Mounted");
11
+ if (!addedGlobalDiv) {
12
+ let div = document.createElement("div");
13
+ div.id = "dropdowns";
14
+ document.body.appendChild(div);
15
+ addedGlobalDiv = true;
16
+ }
17
+ });
18
+ let buttonElement;
19
+ let dropdownContentElement;
20
+ let style = injectVars($$props, "menu", [
21
+ "bg",
22
+ "fg",
23
+ "padding",
24
+ "width",
25
+ "height"
26
+ ]);
27
+ let dropdownTop;
28
+ let dropdownLeft;
29
+ let dropdownMaxHeight;
30
+ function triggerMenu() {
31
+ open = !open;
32
+ if (open) {
33
+ injectVariablesIntoDropdown();
34
+ let dropdownRect = dropdownContentElement.getBoundingClientRect();
35
+ let buttonRect = buttonElement.getBoundingClientRect();
36
+ dropdownTop = buttonRect.bottom;
37
+ dropdownLeft = buttonRect.left;
38
+ if (dropdownLeft + dropdownRect.width > window.innerWidth) {
39
+ dropdownLeft = window.innerWidth - dropdownRect.width;
40
+ }
41
+ if (dropdownTop + dropdownRect.height > window.innerHeight) {
42
+ dropdownTop = Math.max(0, window.innerHeight - dropdownRect.height);
43
+ }
44
+ if (dropdownTop + dropdownRect.height > window.innerHeight) {
45
+ dropdownMaxHeight = window.innerHeight - dropdownTop;
46
+ }
47
+ setTimeout(() => window.addEventListener("click", closeMenu), 0);
48
+ }
49
+ }
50
+ function closeMenu() {
51
+ open = false;
52
+ window.removeEventListener("click", closeMenu);
53
+ }
54
+ let searchString = "";
55
+ let lastPress;
56
+ function handleKeystroke(event) {
57
+ if (event.key == "Backspace" && searchString) {
58
+ searchString = searchString.slice(0, -1);
59
+ } else if (event.key.length == 1) {
60
+ if (searchString || event.key != " ") {
61
+ searchString += event.key;
62
+ maybeFocusMatch(searchString);
63
+ }
64
+ } else {
65
+ searchString = "";
66
+ if (event.key === "Escape") {
67
+ closeMenu();
68
+ } else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
69
+ event.preventDefault();
70
+ navigateMenu(event.key);
71
+ searchString = "";
72
+ }
73
+ }
74
+ console.log("Got ", event.key, "in menu");
75
+ }
76
+ function maybeFocusMatch(searchString2) {
77
+ console.log("Maybe focus", searchString2);
78
+ let focusableItems = dropdownContentElement.querySelectorAll(
79
+ "a,button,[tabindex]"
80
+ );
81
+ for (let element of focusableItems) {
82
+ if (element.textContent && element.textContent.toLowerCase().startsWith(searchString2.toLowerCase())) {
83
+ console.log("Found", element);
84
+ if (element.focus) {
85
+ element.focus();
86
+ return;
87
+ }
88
+ }
89
+ }
90
+ }
91
+ function navigateMenu(direction) {
92
+ const focusableItems = Array.from(
93
+ dropdownContentElement.querySelectorAll(
94
+ "button, a, [tabindex]:not([tabindex='-1'])"
95
+ )
96
+ );
97
+ let currentIndex = focusableItems.findIndex(
98
+ (item) => item === document.activeElement
99
+ );
100
+ if (direction === "ArrowDown") {
101
+ currentIndex = (currentIndex + 1) % focusableItems.length;
102
+ } else if (direction === "ArrowUp") {
103
+ currentIndex = (currentIndex - 1 + focusableItems.length) % focusableItems.length;
104
+ }
105
+ focusableItems[currentIndex]?.focus();
106
+ }
107
+ let open = false;
108
+ let cssVariableContext = "";
109
+ function injectVariablesIntoDropdown() {
110
+ cssVariableContext = "";
111
+ let buttonStyle = getComputedStyle(buttonElement);
112
+ for (let prop of cssProperties) {
113
+ if (buttonStyle.getPropertyValue(prop).trim()) {
114
+ cssVariableContext += `${prop}: ${buttonStyle.getPropertyValue(prop).trim()};`;
115
+ }
116
+ }
117
+ }
118
+ </script>
119
+
120
+ <nav class="dropdown-menu" on:keydown={handleKeystroke} class:open>
121
+ <button bind:this={buttonElement} on:click={triggerMenu}>
122
+ <slot name="label">Menu</slot>
123
+ </button>
124
+ <div
125
+ use:portal={"#dropdowns"}
126
+ on:keydown={handleKeystroke}
127
+ class="dropdown-container"
128
+ class:open
129
+ hidden
130
+ style:top="{dropdownTop}px"
131
+ style:left="{dropdownLeft}px"
132
+ style:max-height="{dropdownMaxHeight}px"
133
+ >
134
+ <div
135
+ class="dropdown-content"
136
+ bind:this={dropdownContentElement}
137
+ style={cssVariableContext}
138
+ >
139
+ <MenuList>
140
+ <slot />
141
+ </MenuList>
142
+ </div>
143
+ </div>
144
+ </nav>
145
+
146
+ <style>/* Convenience groupings */
147
+ /* Warning: because we define a fallback
148
+ media query, the media query can override the container
149
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
150
+ Put min-width queries *after* max-width queries so that smaller
151
+ container queries don't get their styles overridden by large media queries.
152
+ */
153
+ button {
154
+ background: var(--menu-bg, var(--button-bg, var(--container-bg, var(--bg, white))));
155
+ color: var(--menu-fg, var(--button-fg, var(--container-fg, var(--fg, black))));
156
+ box-sizing: border-box;
157
+ border: var(--menu-border, var(--button-border, var(--container-border, var(--border, none))));
158
+ border-top: var(--menu-border-top, var(--button-border-top, var(--container-border-top, var(--border-top, var(--menu-border, var(--button-border, var(--container-border, var(--border, none))))))));
159
+ border-right: var(--menu-border-right, var(--button-border-right, var(--container-border-right, var(--border-right, var(--menu-border, var(--button-border, var(--container-border, var(--border, none))))))));
160
+ border-bottom: var(--menu-border-bottom, var(--button-border-bottom, var(--container-border-bottom, var(--border-bottom, var(--menu-border, var(--button-border, var(--container-border, var(--border, none))))))));
161
+ border-left: var(--menu-border-left, var(--button-border-left, var(--container-border-left, var(--border-left, var(--menu-border, var(--button-border, var(--container-border, var(--border, none))))))));
162
+ padding: var(--menu-padding, var(--button-padding, var(--container-padding, var(--padding, 4px))));
163
+ border-radius: var(--menu-square-radius, var(--button-square-radius, var(--container-square-radius, var(--square-radius, 0))));
164
+ cursor: pointer;
165
+ transition: filter, transform var(--button-transition, var(--control-transition, var(--transition, 300ms)));
166
+ }
167
+ button:hover {
168
+ filter: var(--menu-hover-filter, var(--button-hover-filter, var(--control-hover-filter, var(--hover-filter, brightness(1.1)))));
169
+ transform: var(--menu-hover-transform, var(--button-hover-transform, var(--control-hover-transform, var(--hover-transform, none))));
170
+ }
171
+ button:active {
172
+ filter: var(--menu-hover-filter, var(--button-hover-filter, var(--control-hover-filter, var(--hover-filter, brightness(0.9)))));
173
+ transform: var(--menu-hover-transform, var(--button-hover-transform, var(--control-hover-transform, var(--hover-transform, translate(var(--space), var(--space))))));
174
+ }
175
+ .menu {
176
+ background: var(--menu-bg, var(--container-bg, var(--bg, white)));
177
+ color: var(--menu-fg, var(--container-fg, var(--fg, black)));
178
+ box-sizing: border-box;
179
+ padding: var(--menu-padding, var(--padding, 4px));
180
+ border: var(--menu-border, var(--border, none));
181
+ border-top: var(--menu-border-top, var(--border-top, var(--menu-border, var(--border, none))));
182
+ border-right: var(--menu-border-right, var(--border-right, var(--menu-border, var(--border, none))));
183
+ border-bottom: var(--menu-border-bottom, var(--border-bottom, var(--menu-border, var(--border, none))));
184
+ border-left: var(--menu-border-left, var(--border-left, var(--menu-border, var(--border, none))));
185
+ border-radius: var(--menu-border-radius, var(--border-radius, none));
186
+ font-family: var(--menu-font-family, var(--container-font-family, var(--font-family, sans-serif)));
187
+ text-transform: var(--menu-text-transform, var(--container-text-transform, var(--text-transform, none)));
188
+ text-decoration: var(--menu-text-decoration, var(--container-text-decoration, var(--text-decoration, none)));
189
+ font-size: var(--menu-font-size, var(--container-font-size, var(--font-size, 16px)));
190
+ font-weight: var(--menu-font-weight, var(--container-font-weight, var(--font-weight, 400)));
191
+ line-height: var(--menu-line-height, var(--container-line-height, var(--line-height, 1.5)));
192
+ letter-spacing: var(--menu-letter-spacing, var(--container-letter-spacing, var(--letter-spacing, 0.05em)));
193
+ cursor: pointer;
194
+ transition: filter, transform var(--button-transition, var(--control-transition, var(--transition, 300ms)));
195
+ }
196
+ .menu:hover {
197
+ filter: var(--menu-hover-filter, var(--button-hover-filter, var(--control-hover-filter, var(--hover-filter, brightness(1.1)))));
198
+ transform: var(--menu-hover-transform, var(--button-hover-transform, var(--control-hover-transform, var(--hover-transform, none))));
199
+ }
200
+ .menu:active {
201
+ filter: var(--menu-hover-filter, var(--button-hover-filter, var(--control-hover-filter, var(--hover-filter, brightness(0.9)))));
202
+ transform: var(--menu-hover-transform, var(--button-hover-transform, var(--control-hover-transform, var(--hover-transform, translate(var(--space), var(--space))))));
203
+ }
204
+ .dropdown-container {
205
+ position: fixed;
206
+ opacity: 0;
207
+ pointer-events: none;
208
+ transition: var(--dropdown-transition, 150ms) opacity;
209
+ overflow-y: auto;
210
+ scrollbar-width: var(--dropdown-menu-scrollbar-width, var(--menu-scrollbar-width, var(--scrollbar-width, thin)));
211
+ scrollbar-color: var(--dropdown-menu-scrollbar-thumb-bg, var(--menu-scrollbar-thumb-bg, var(--scrollbar-thumb-bg, #888))) var(--dropdown-menu-scrollbar-track-bg, var(--menu-scrollbar-track-bg, var(--scrollbar-track-bg, var(--border-color))));
212
+ }
213
+ .dropdown-container::-webkit-scrollbar {
214
+ width: var(--dropdown-menu-scrollbar-width, var(--menu-scrollbar-width, var(--scrollbar-width, var(--space-md))));
215
+ height: var(--dropdown-menu-scrollbar-height, var(--menu-scrollbar-height, var(--scrollbar-height, var(--gap))));
216
+ }
217
+ .dropdown-container::-webkit-scrollbar-track {
218
+ background: var(--dropdown-menu-scrollbar-track-bg, var(--menu-scrollbar-track-bg, var(--scrollbar-track-bg, var(--bg))));
219
+ }
220
+ .dropdown-container::-webkit-scrollbar-thumb {
221
+ background: var(--dropdown-menu-scrollbar-thumb-bg, var(--menu-scrollbar-thumb-bg, var(--scrollbar-thumb-bg, var(--stripe-bg))));
222
+ border-radius: var(--dropdown-menu-scrollbar-thumb-radius, var(--menu-scrollbar-thumb-radius, var(--scrollbar-thumb-radius, var(--border-radius))));
223
+ }
224
+ .dropdown-container::-webkit-scrollbar-thumb:hover {
225
+ background: var(--dropdown-menu-scrollbar-thumb-hover-bg, var(--menu-scrollbar-thumb-hover-bg, var(--scrollbar-thumb-hover-bg, var(--secondary-bg))));
226
+ }
227
+ .dropdown-container.open {
228
+ opacity: 1;
229
+ pointer-events: all;
230
+ }
231
+ .dropdown-content {
232
+ width: var(--dropdown-menu-width, 12em);
233
+ box-shadow: var(--dropdown-menu-shadow-distance, var(--dropdown-shadow-distance, var(--shadow-distance, var(--space-md)))) var(--dropdown-menu-shadow-distance, var(--dropdown-shadow-distance, var(--shadow-distance, var(--space-md)))) var(--dropdown-menu-shadow-blur, var(--dropdown-shadow-blur, var(--shadow-blur, var(--space)))) var(--dropdown-menu-shadow-color, var(--dropdown-shadow-color, var(--shadow-color, rgba(127, 127, 127, 0.4))));
234
+ }</style>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ };
6
+ events: {
7
+ [evt: string]: CustomEvent<any>;
8
+ };
9
+ slots: {
10
+ label: {};
11
+ default: {};
12
+ };
13
+ };
14
+ export type DropdownMenuProps = typeof __propDef.props;
15
+ export type DropdownMenuEvents = typeof __propDef.events;
16
+ export type DropdownMenuSlots = typeof __propDef.slots;
17
+ export default class DropdownMenu extends SvelteComponent<DropdownMenuProps, DropdownMenuEvents, DropdownMenuSlots> {
18
+ }
19
+ export {};
@@ -0,0 +1,23 @@
1
+ import Card from "./Card.svelte";
2
+ import Button from "./controls/Button.svelte";
3
+ import Checkbox from "./controls/Checkbox.svelte";
4
+ import Input from "./controls/Input.svelte";
5
+ import Slider from "./controls/Slider.svelte";
6
+ import Bar from "./layout/Bar.svelte";
7
+ import Column from "./layout/Column.svelte";
8
+ import Columns from "./layout/Columns.svelte";
9
+ import Container from "./layout/Container.svelte";
10
+ import FormItem from "./layout/FormItem.svelte";
11
+ import GridLayout from "./layout/GridLayout.svelte";
12
+ import MenuList from "./layout/MenuList.svelte";
13
+ import Page from "./layout/Page.svelte";
14
+ import ResponsiveText from "./layout/ResponsiveText.svelte";
15
+ import Row from "./layout/Row.svelte";
16
+ import Tile from "./layout/Tile.svelte";
17
+ import Code from "./misc/Code.svelte";
18
+ import TextLayout from "./typography/TextLayout.svelte";
19
+ export { Button, Checkbox, Input, Slider };
20
+ export { Bar, Container, GridLayout, MenuList, Page, ResponsiveText };
21
+ export { TextLayout, Code };
22
+ export { Card, Tile, FormItem };
23
+ export { Row, Column, Columns };
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
1
+ // Reexport your entry components here
2
+ import Card from "./Card.svelte";
3
+ import Button from "./controls/Button.svelte";
4
+ import Checkbox from "./controls/Checkbox.svelte";
5
+ import Input from "./controls/Input.svelte";
6
+ import Slider from "./controls/Slider.svelte";
7
+ import Bar from "./layout/Bar.svelte";
8
+ import Column from "./layout/Column.svelte";
9
+ import Columns from "./layout/Columns.svelte";
10
+ import Container from "./layout/Container.svelte";
11
+ import FormItem from "./layout/FormItem.svelte";
12
+ import GridLayout from "./layout/GridLayout.svelte";
13
+ import MenuList from "./layout/MenuList.svelte";
14
+ import Page from "./layout/Page.svelte";
15
+ import ResponsiveText from "./layout/ResponsiveText.svelte";
16
+ import Row from "./layout/Row.svelte";
17
+ import Tile from "./layout/Tile.svelte";
18
+ import Code from "./misc/Code.svelte";
19
+ import TextLayout from "./typography/TextLayout.svelte";
20
+ export { Button, Checkbox, Input, Slider };
21
+ export { Bar, Container, GridLayout, MenuList, Page, ResponsiveText };
22
+ export { TextLayout, Code };
23
+ export { Card, Tile, FormItem };
24
+ export { Row, Column, Columns };
@@ -0,0 +1,57 @@
1
+ <script>import { injectVars } from "../util";
2
+ export let bg = null;
3
+ export let fg = null;
4
+ export let padding = null;
5
+ export let width = null;
6
+ export let height = null;
7
+ export let marginBottom = null;
8
+ export let marginTop = null;
9
+ export let justify = null;
10
+ export let align = null;
11
+ let style = injectVars($$props, "bar", [
12
+ "bg",
13
+ "fg",
14
+ "padding",
15
+ "width",
16
+ "height",
17
+ "justify",
18
+ "align",
19
+ "marginBottom"
20
+ ]);
21
+ </script>
22
+
23
+ <div class="bar" {style}>
24
+ <slot />
25
+ </div>
26
+
27
+ <style>/* Convenience groupings */
28
+ /* Warning: because we define a fallback
29
+ media query, the media query can override the container
30
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
31
+ Put min-width queries *after* max-width queries so that smaller
32
+ container queries don't get their styles overridden by large media queries.
33
+ */
34
+ .bar {
35
+ display: flex;
36
+ align-items: var(--bar-align, center);
37
+ justify-content: var(--bar-justify, space-between);
38
+ padding: var(--bar-padding, var(--padding, 8px));
39
+ border-bottom: var(--bar-border-bottom, var(--bar-border-width, var(--border-width, 1px)) var(--bar-border-style, var(--border-style, 1px)) var(--bar-border-color, var(--border-color, 1px)));
40
+ border-top: var(--bar-border-top, var(--bar-border-width, var(--border-width, 1px)) var(--bar-border-style, var(--border-style, 1px)) var(--bar-border-color, var(--border-color, 1px)));
41
+ margin-bottom: var(--bar-margin-bottom, 1em);
42
+ min-height: var(--bar-min-height);
43
+ height: var(--bar-height, 3em);
44
+ max-height: var(--bar-max-height);
45
+ background: var(--bar-bg, var(--container-bg, var(--bg, white)));
46
+ color: var(--bar-fg, var(--container-fg, var(--fg, black)));
47
+ gap: var(--bar-gap, var(--gap, 8px));
48
+ /* Add other styles like background, border, etc., as needed */
49
+ }
50
+ .bar :global(h1),
51
+ .bar :global(h2),
52
+ .bar :global(h3),
53
+ .bar :global(h4),
54
+ .bar :global(h5),
55
+ .bar :global(h6) {
56
+ margin: 0;
57
+ }</style>
@@ -0,0 +1,27 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ bg?: string | null | undefined;
6
+ fg?: string | null | undefined;
7
+ padding?: string | null | undefined;
8
+ width?: string | null | undefined;
9
+ height?: string | null | undefined;
10
+ marginBottom?: string | null | undefined;
11
+ marginTop?: string | null | undefined;
12
+ justify?: "center" | "space-between" | "space-around" | "space-evenly" | "start" | "end" | null | undefined;
13
+ align?: "center" | "start" | "end" | "stretch" | null | undefined;
14
+ };
15
+ events: {
16
+ [evt: string]: CustomEvent<any>;
17
+ };
18
+ slots: {
19
+ default: {};
20
+ };
21
+ };
22
+ export type BarProps = typeof __propDef.props;
23
+ export type BarEvents = typeof __propDef.events;
24
+ export type BarSlots = typeof __propDef.slots;
25
+ export default class Bar extends SvelteComponent<BarProps, BarEvents, BarSlots> {
26
+ }
27
+ export {};
@@ -0,0 +1,40 @@
1
+ <script>export let size = "medium";
2
+ export let customWidth = null;
3
+ </script>
4
+
5
+ <section
6
+ class="column"
7
+ class:small={size == "small"}
8
+ class:medium={size == "medium"}
9
+ class:large={size == "large"}
10
+ style:--custom-width={customWidth}
11
+ >
12
+ <slot />
13
+ </section>
14
+
15
+ <style>/* Convenience groupings */
16
+ /* Warning: because we define a fallback
17
+ media query, the media query can override the container
18
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
19
+ Put min-width queries *after* max-width queries so that smaller
20
+ container queries don't get their styles overridden by large media queries.
21
+ */
22
+ .small {
23
+ --w: 120px;
24
+ }
25
+ .medium {
26
+ --w: 240px;
27
+ }
28
+ .large {
29
+ --w: 320px;
30
+ }
31
+ section {
32
+ display: flex;
33
+ flex-direction: column;
34
+ width: var(--custom-width, var(--w, 200px));
35
+ gap: var(--column-gap, var(--container-gap, var(--gap, 8px)));
36
+ container-type: inline-size;
37
+ overflow: auto;
38
+ justify-content: start;
39
+ align-items: center;
40
+ }</style>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ size?: "small" | "medium" | "large" | undefined;
5
+ customWidth?: string | null | undefined;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {
11
+ default: {};
12
+ };
13
+ };
14
+ export type ColumnProps = typeof __propDef.props;
15
+ export type ColumnEvents = typeof __propDef.events;
16
+ export type ColumnSlots = typeof __propDef.slots;
17
+ export default class Column extends SvelteComponent<ColumnProps, ColumnEvents, ColumnSlots> {
18
+ }
19
+ export {};
@@ -0,0 +1,21 @@
1
+ <script>
2
+ </script>
3
+
4
+ <div class="columns">
5
+ <slot />
6
+ </div>
7
+
8
+ <style>/* Convenience groupings */
9
+ /* Warning: because we define a fallback
10
+ media query, the media query can override the container
11
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
12
+ Put min-width queries *after* max-width queries so that smaller
13
+ container queries don't get their styles overridden by large media queries.
14
+ */
15
+ .columns {
16
+ display: flex;
17
+ flex-direction: row;
18
+ flex-wrap: wrap;
19
+ gap: var(--columns-gap, var(--container-gap, var(--gap, 8px)));
20
+ justify-content: center;
21
+ }</style>
@@ -0,0 +1,27 @@
1
+ /** @typedef {typeof __propDef.props} ColumnsProps */
2
+ /** @typedef {typeof __propDef.events} ColumnsEvents */
3
+ /** @typedef {typeof __propDef.slots} ColumnsSlots */
4
+ export default class Columns extends SvelteComponent<{
5
+ [x: string]: never;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {
9
+ default: {};
10
+ }> {
11
+ }
12
+ export type ColumnsProps = typeof __propDef.props;
13
+ export type ColumnsEvents = typeof __propDef.events;
14
+ export type ColumnsSlots = typeof __propDef.slots;
15
+ import { SvelteComponent } from "svelte";
16
+ declare const __propDef: {
17
+ props: {
18
+ [x: string]: never;
19
+ };
20
+ events: {
21
+ [evt: string]: CustomEvent<any>;
22
+ };
23
+ slots: {
24
+ default: {};
25
+ };
26
+ };
27
+ export {};
@@ -0,0 +1,105 @@
1
+ <script>import { injectVars } from "../util";
2
+ export let bg = null;
3
+ export let fg = null;
4
+ export let margin = null;
5
+ export let maxWidth = null;
6
+ export let padding = null;
7
+ export let height = null;
8
+ export let border = false;
9
+ export let paddingTop = null;
10
+ export let borderTop = null;
11
+ const style = injectVars($$props, "container", [
12
+ "bg",
13
+ "fg",
14
+ "margin",
15
+ "maxWidth",
16
+ "padding",
17
+ "height",
18
+ "paddingTop",
19
+ "borderTop"
20
+ ]);
21
+ </script>
22
+
23
+ <section class:border {style}>
24
+ <slot />
25
+ </section>
26
+
27
+ <style>/* Convenience groupings */
28
+ /* Warning: because we define a fallback
29
+ media query, the media query can override the container
30
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
31
+ Put min-width queries *after* max-width queries so that smaller
32
+ container queries don't get their styles overridden by large media queries.
33
+ */
34
+ section {
35
+ margin: auto;
36
+ max-width: var(--container-max-width, var(--block-max-width, var(--max-width, 900px)));
37
+ box-sizing: border-box;
38
+ padding: var(--container-padding, var(--padding, 8px));
39
+ background: var(--container-bg, var(--block-bg, var(--bg, white)));
40
+ color: var(--container-fg, var(--block-fg, var(--fg, black)));
41
+ box-sizing: border-box;
42
+ padding: var(--container-padding, var(--block-padding, var(--padding, 4px)));
43
+ border: var(--container-border, var(--block-border, var(--border, none)));
44
+ border-top: var(--container-border-top, var(--block-border-top, var(--border-top, var(--container-border, var(--block-border, var(--border, none))))));
45
+ border-right: var(--container-border-right, var(--block-border-right, var(--border-right, var(--container-border, var(--block-border, var(--border, none))))));
46
+ border-bottom: var(--container-border-bottom, var(--block-border-bottom, var(--border-bottom, var(--container-border, var(--block-border, var(--border, none))))));
47
+ border-left: var(--container-border-left, var(--block-border-left, var(--border-left, var(--container-border, var(--block-border, var(--border, none))))));
48
+ border-radius: var(--container-border-radius, var(--block-border-radius, var(--border-radius, none)));
49
+ font-family: var(--container-font-family, var(--block-font-family, var(--font-family, sans-serif)));
50
+ text-transform: var(--container-text-transform, var(--block-text-transform, var(--text-transform, none)));
51
+ text-decoration: var(--container-text-decoration, var(--block-text-decoration, var(--text-decoration, none)));
52
+ font-size: var(--container-font-size, var(--block-font-size, var(--font-size, 16px)));
53
+ font-weight: var(--container-font-weight, var(--block-font-weight, var(--font-weight, 400)));
54
+ line-height: var(--container-line-height, var(--block-line-height, var(--line-height, 1.5)));
55
+ letter-spacing: var(--container-letter-spacing, var(--block-letter-spacing, var(--letter-spacing, 0.05em)));
56
+ margin-top: var(--container-margin, var(--block-margin, var(--margin, var(--gap))));
57
+ margin-bottom: var(--container-margin, var(--block-margin, var(--margin, var(--gap))));
58
+ /* Why is this suddenly causing a scroll? */
59
+ container-type: inline-size;
60
+ overflow-x: hidden;
61
+ height: var(--container-height);
62
+ overflow-y: auto;
63
+ overflow-y: auto;
64
+ scrollbar-width: var(--container-scrollbar-width, var(--scrollbar-width, thin));
65
+ scrollbar-color: var(--container-scrollbar-thumb-bg, var(--scrollbar-thumb-bg, #888)) var(--container-scrollbar-track-bg, var(--scrollbar-track-bg, var(--border-color)));
66
+ }
67
+ section :global(p), section :global(blockquote), section :global(dl), section :global(ul), section :global(ol) {
68
+ max-width: var(--container-line-width, var(--block-line-width, var(--line-width, 40em)));
69
+ font-family: var(--container-body-font-family, var(--block-body-font-family, var(--body-font-family, var(--font-family))));
70
+ line-height: var(--container-line-height, var(--block-line-height, var(--line-height, 1.5)));
71
+ margin-left: auto;
72
+ margin-right: auto;
73
+ font-weight: var(--container-body-font-weight, var(--block-body-font-weight, var(--body-font-weight, var(--normal))));
74
+ }
75
+ section :global(h1),
76
+ section :global(h2),
77
+ section :global(h3),
78
+ section :global(h4),
79
+ section :global(h5),
80
+ section :global(h6) {
81
+ max-width: var(--container-line-width, var(--block-line-width, var(--line-width, 40em)));
82
+ font-family: var(--container-heading-font-family, var(--block-heading-font-family, var(--heading-font-family, var(--font-family))));
83
+ line-height: var(--container-heading-line-height, var(--block-heading-line-height, var(--heading-line-height, var(--line-height))));
84
+ margin-left: auto;
85
+ margin-right: auto;
86
+ color: var(--heading-color, container, block, var(--fg));
87
+ font-weight: var(--heading-font-weight, container, block, var(--bold));
88
+ }
89
+ section::-webkit-scrollbar {
90
+ width: var(--container-scrollbar-width, var(--scrollbar-width, var(--space-md)));
91
+ height: var(--container-scrollbar-height, var(--scrollbar-height, var(--gap)));
92
+ }
93
+ section::-webkit-scrollbar-track {
94
+ background: var(--container-scrollbar-track-bg, var(--scrollbar-track-bg, var(--bg)));
95
+ }
96
+ section::-webkit-scrollbar-thumb {
97
+ background: var(--container-scrollbar-thumb-bg, var(--scrollbar-thumb-bg, var(--stripe-bg)));
98
+ border-radius: var(--container-scrollbar-thumb-radius, var(--scrollbar-thumb-radius, var(--border-radius)));
99
+ }
100
+ section::-webkit-scrollbar-thumb:hover {
101
+ background: var(--container-scrollbar-thumb-hover-bg, var(--scrollbar-thumb-hover-bg, var(--secondary-bg)));
102
+ }
103
+ .border {
104
+ border: var(--container-border, var(--border, var(--border-width) var(--border-style) var(--border-color)));
105
+ }</style>
@@ -0,0 +1,27 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ bg?: string | null | undefined;
6
+ fg?: string | null | undefined;
7
+ margin?: string | null | undefined;
8
+ maxWidth?: string | null | undefined;
9
+ padding?: string | null | undefined;
10
+ height?: string | null | undefined;
11
+ border?: boolean | undefined;
12
+ paddingTop?: string | null | undefined;
13
+ borderTop?: string | null | undefined;
14
+ };
15
+ events: {
16
+ [evt: string]: CustomEvent<any>;
17
+ };
18
+ slots: {
19
+ default: {};
20
+ };
21
+ };
22
+ export type ContainerProps = typeof __propDef.props;
23
+ export type ContainerEvents = typeof __propDef.events;
24
+ export type ContainerSlots = typeof __propDef.slots;
25
+ export default class Container extends SvelteComponent<ContainerProps, ContainerEvents, ContainerSlots> {
26
+ }
27
+ export {};