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
package/README.md ADDED
@@ -0,0 +1,58 @@
1
+ # create-svelte
2
+
3
+ Everything you need to build a Svelte library, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
4
+
5
+ Read more about creating a library [in the docs](https://kit.svelte.dev/docs/packaging).
6
+
7
+ ## Creating a project
8
+
9
+ If you're seeing this, you've probably already done this step. Congrats!
10
+
11
+ ```bash
12
+ # create a new project in the current directory
13
+ npm create svelte@latest
14
+
15
+ # create a new project in my-app
16
+ npm create svelte@latest my-app
17
+ ```
18
+
19
+ ## Developing
20
+
21
+ Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
22
+
23
+ ```bash
24
+ npm run dev
25
+
26
+ # or start the server and open the app in a new browser tab
27
+ npm run dev -- --open
28
+ ```
29
+
30
+ Everything inside `src/lib` is part of your library, everything inside `src/routes` can be used as a showcase or preview app.
31
+
32
+ ## Building
33
+
34
+ To build your library:
35
+
36
+ ```bash
37
+ npm run package
38
+ ```
39
+
40
+ To create a production version of your showcase app:
41
+
42
+ ```bash
43
+ npm run build
44
+ ```
45
+
46
+ You can preview the production build with `npm run preview`.
47
+
48
+ > To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
49
+
50
+ ## Publishing
51
+
52
+ Go into the `package.json` and give your package the desired name through the `"name"` option. Also consider adding a `"license"` field and point it to a `LICENSE` file which you can create from a template (one popular option is the [MIT license](https://opensource.org/license/mit/)).
53
+
54
+ To publish your library to [npm](https://www.npmjs.com):
55
+
56
+ ```bash
57
+ npm publish
58
+ ```
@@ -0,0 +1,172 @@
1
+ <script>import { injectVars } from "./util";
2
+ export let center = false;
3
+ export let fixedHeight = false;
4
+ export let bg = null;
5
+ export let fg = null;
6
+ export let padding = null;
7
+ export let width = null;
8
+ export let height = null;
9
+ let cssVars = injectVars($$props, "card", [
10
+ "bg",
11
+ "fg",
12
+ "padding",
13
+ "width",
14
+ "height"
15
+ ]);
16
+ $:
17
+ if (height) {
18
+ fixedHeight = true;
19
+ }
20
+ let hasHeader = $$slots.header;
21
+ let hasFooter = $$slots.footer;
22
+ </script>
23
+
24
+ <div class="card" class:center class:fixedHeight style={cssVars}>
25
+ <header class:hide={!hasHeader}>
26
+ <slot name="header" />
27
+ </header>
28
+ <section>
29
+ <slot />
30
+ </section>
31
+ <footer class:hide={!hasFooter}>
32
+ <slot name="footer" />
33
+ </footer>
34
+ </div>
35
+
36
+ <style>/* Convenience groupings */
37
+ /* Warning: because we define a fallback
38
+ media query, the media query can override the container
39
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
40
+ Put min-width queries *after* max-width queries so that smaller
41
+ container queries don't get their styles overridden by large media queries.
42
+ */
43
+ .card {
44
+ --w: var(--card-width);
45
+ --h: var(--card-height);
46
+ box-shadow: var(--card-shadow-distance, var(--container-shadow-distance, var(--shadow-distance, var(--space-md)))) var(--card-shadow-distance, var(--container-shadow-distance, var(--shadow-distance, var(--space-md)))) var(--card-shadow-blur, var(--container-shadow-blur, var(--shadow-blur, var(--space)))) var(--card-shadow-color, var(--container-shadow-color, var(--shadow-color, rgba(127, 127, 127, 0.4))));
47
+ background: var(--card-bg, var(--container-bg, var(--bg, white)));
48
+ color: var(--card-fg, var(--container-fg, var(--fg, black)));
49
+ font-family: var(--card-font-family, var(--container-font-family, var(--font-family, sans-serif)));
50
+ text-transform: var(--card-text-transform, var(--container-text-transform, var(--text-transform, none)));
51
+ text-decoration: var(--card-text-decoration, var(--container-text-decoration, var(--text-decoration, none)));
52
+ font-size: var(--card-font-size, var(--container-font-size, var(--font-size, 16px)));
53
+ font-weight: var(--card-font-weight, var(--container-font-weight, var(--font-weight, 400)));
54
+ line-height: var(--card-line-height, var(--container-line-height, var(--line-height, 1.5)));
55
+ letter-spacing: var(--card-letter-spacing, var(--container-letter-spacing, var(--letter-spacing, 0.05em)));
56
+ border-radius: var(--card-border-radius, var(--container-border-radius, var(--border-radius, 0)));
57
+ border: var(--card-border, var(--container-border, var(--border, var(--border-width) var(--border-style) var(--border-color))));
58
+ display: flex;
59
+ flex-direction: column;
60
+ }
61
+ .card :global(p), .card :global(blockquote), .card :global(dl), .card :global(ul), .card :global(ol) {
62
+ max-width: var(--card-line-width, var(--container-line-width, var(--line-width, 40em)));
63
+ font-family: var(--card-body-font-family, var(--container-body-font-family, var(--body-font-family, var(--font-family))));
64
+ line-height: var(--card-line-height, var(--container-line-height, var(--line-height, 1.5)));
65
+ margin-left: auto;
66
+ margin-right: auto;
67
+ font-weight: var(--card-body-font-weight, var(--container-body-font-weight, var(--body-font-weight, var(--normal))));
68
+ }
69
+ .card :global(h1),
70
+ .card :global(h2),
71
+ .card :global(h3),
72
+ .card :global(h4),
73
+ .card :global(h5),
74
+ .card :global(h6) {
75
+ max-width: var(--card-line-width, var(--container-line-width, var(--line-width, 40em)));
76
+ font-family: var(--card-heading-font-family, var(--container-heading-font-family, var(--heading-font-family, var(--font-family))));
77
+ line-height: var(--card-heading-line-height, var(--container-heading-line-height, var(--heading-line-height, var(--line-height))));
78
+ margin-left: auto;
79
+ margin-right: auto;
80
+ color: var(--heading-color, card, container, var(--fg));
81
+ font-weight: var(--heading-font-weight, card, container, var(--bold));
82
+ }
83
+ .card section {
84
+ flex-grow: 1;
85
+ }
86
+ @container (max-width: 600px) {
87
+ .card {
88
+ --w: var(--card-width-small);
89
+ --h: var(--card-height-small);
90
+ --sidebar-width: calc(var(--card-width-small) - var(--padding) * 2);
91
+ }
92
+ }
93
+ @container (min-width: 1921px) {
94
+ .card {
95
+ --w: var(--card-width-large);
96
+ --h: var(--card-height-large);
97
+ }
98
+ }
99
+ .card.center {
100
+ display: grid;
101
+ place-content: center;
102
+ }
103
+ .card {
104
+ overflow-x: hidden;
105
+ container-type: inline-size;
106
+ width: var(--w);
107
+ }
108
+ .card section {
109
+ line-height: var(--line-height);
110
+ max-width: var(--line-width);
111
+ }
112
+ .card.fixedHeight {
113
+ height: var(--h);
114
+ container-type: size;
115
+ overflow-y: auto;
116
+ scrollbar-width: var(--card-scrollbar-width, var(--container-scrollbar-width, var(--scrollbar-width, thin)));
117
+ scrollbar-color: var(--card-scrollbar-thumb-bg, var(--container-scrollbar-thumb-bg, var(--scrollbar-thumb-bg, #888))) var(--card-scrollbar-track-bg, var(--container-scrollbar-track-bg, var(--scrollbar-track-bg, var(--border-color))));
118
+ }
119
+ .card.fixedHeight::-webkit-scrollbar {
120
+ width: var(--card-scrollbar-width, var(--container-scrollbar-width, var(--scrollbar-width, var(--space-md))));
121
+ height: var(--card-scrollbar-height, var(--container-scrollbar-height, var(--scrollbar-height, var(--gap))));
122
+ }
123
+ .card.fixedHeight::-webkit-scrollbar-track {
124
+ background: var(--card-scrollbar-track-bg, var(--container-scrollbar-track-bg, var(--scrollbar-track-bg, var(--bg))));
125
+ }
126
+ .card.fixedHeight::-webkit-scrollbar-thumb {
127
+ background: var(--card-scrollbar-thumb-bg, var(--container-scrollbar-thumb-bg, var(--scrollbar-thumb-bg, var(--stripe-bg))));
128
+ border-radius: var(--card-scrollbar-thumb-radius, var(--container-scrollbar-thumb-radius, var(--scrollbar-thumb-radius, var(--border-radius))));
129
+ }
130
+ .card.fixedHeight::-webkit-scrollbar-thumb:hover {
131
+ background: var(--card-scrollbar-thumb-hover-bg, var(--container-scrollbar-thumb-hover-bg, var(--scrollbar-thumb-hover-bg, var(--secondary-bg))));
132
+ }
133
+ header,
134
+ section {
135
+ padding: var(--padding);
136
+ border-top-right-radius: var(--border-radius);
137
+ border-top-left-radius: var(--border-radius);
138
+ border-bottom: var(--card-header-border);
139
+ }
140
+ header {
141
+ background: var(--card-header-bg, var(--secondary-bg, var(--bg, white)));
142
+ color: var(--card-header-fg, var(--secondary-fg, var(--fg, black)));
143
+ box-sizing: border-box;
144
+ padding: var(--card-header-padding, var(--bar-padding, var(--padding, 4px)));
145
+ border: var(--card-header-border, var(--bar-border, var(--border, none)));
146
+ border-top: var(--card-header-border-top, var(--bar-border-top, var(--border-top, var(--card-header-border, var(--bar-border, var(--border, none))))));
147
+ border-right: var(--card-header-border-right, var(--bar-border-right, var(--border-right, var(--card-header-border, var(--bar-border, var(--border, none))))));
148
+ border-bottom: var(--card-header-border-bottom, var(--bar-border-bottom, var(--border-bottom, var(--card-header-border, var(--bar-border, var(--border, none))))));
149
+ border-left: var(--card-header-border-left, var(--bar-border-left, var(--border-left, var(--card-header-border, var(--bar-border, var(--border, none))))));
150
+ border-top-right-radius: var(--card-header-border-radius, var(--border-radius, bar));
151
+ border-top-left-radius: var(--card-header-border-radius, var(--border-radius, bar));
152
+ display: flex;
153
+ align-items: center;
154
+ height: var(--card-header-height, var(--bar-height, var(--height, 2em)));
155
+ }
156
+ footer {
157
+ background: var(--card-footer-bg, var(--secondary-bg, var(--bg, white)));
158
+ color: var(--card-footer-fg, var(--secondary-fg, var(--fg, black)));
159
+ box-sizing: border-box;
160
+ padding: var(--card-footer-padding, var(--bar-padding, var(--padding, 4px)));
161
+ border: var(--card-footer-border, var(--bar-border, var(--border, none)));
162
+ border-top: var(--card-footer-border-top, var(--bar-border-top, var(--border-top, var(--card-footer-border, var(--bar-border, var(--border, none))))));
163
+ border-right: var(--card-footer-border-right, var(--bar-border-right, var(--border-right, var(--card-footer-border, var(--bar-border, var(--border, none))))));
164
+ border-bottom: var(--card-footer-border-bottom, var(--bar-border-bottom, var(--border-bottom, var(--card-footer-border, var(--bar-border, var(--border, none))))));
165
+ border-left: var(--card-footer-border-left, var(--bar-border-left, var(--border-left, var(--card-footer-border, var(--bar-border, var(--border, none))))));
166
+ border-bottom-right-radius: var(--card-footer-border-radius, var(--border-radius, bar));
167
+ border-bottom-left-radius: var(--card-footer-border-radius, var(--border-radius, bar));
168
+ height: var(--card-header-height, var(--bar-height, var(--height, 2em)));
169
+ }
170
+ .hide {
171
+ display: none;
172
+ }</style>
@@ -0,0 +1,27 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ center?: boolean | undefined;
6
+ fixedHeight?: boolean | undefined;
7
+ bg?: string | null | undefined;
8
+ fg?: string | null | undefined;
9
+ padding?: string | null | undefined;
10
+ width?: string | null | undefined;
11
+ height?: string | null | undefined;
12
+ };
13
+ events: {
14
+ [evt: string]: CustomEvent<any>;
15
+ };
16
+ slots: {
17
+ header: {};
18
+ default: {};
19
+ footer: {};
20
+ };
21
+ };
22
+ export type CardProps = typeof __propDef.props;
23
+ export type CardEvents = typeof __propDef.events;
24
+ export type CardSlots = typeof __propDef.slots;
25
+ export default class Card extends SvelteComponent<CardProps, CardEvents, CardSlots> {
26
+ }
27
+ export {};
@@ -0,0 +1,74 @@
1
+ <script>import { injectVars } from "../util";
2
+ export let primary = false;
3
+ export let warning = false;
4
+ let iconSlotted = $$slots.icon;
5
+ export let bg = null;
6
+ export let fg = null;
7
+ export let padding = null;
8
+ export let width = null;
9
+ export let height = null;
10
+ let cssVars = injectVars($$props, "button", [
11
+ "bg",
12
+ "fg",
13
+ "padding",
14
+ "width",
15
+ "height"
16
+ ]);
17
+ </script>
18
+
19
+ <button
20
+ style={cssVars}
21
+ on:click
22
+ class:primary
23
+ class:warning
24
+ class:has-icon={iconSlotted}
25
+ >
26
+ <span class="content"><slot /></span>
27
+ <span class:hidden={!iconSlotted} class="icon"><slot name="icon" /></span>
28
+ </button>
29
+
30
+ <style>/* Convenience groupings */
31
+ /* Warning: because we define a fallback
32
+ media query, the media query can override the container
33
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
34
+ Put min-width queries *after* max-width queries so that smaller
35
+ container queries don't get their styles overridden by large media queries.
36
+ */
37
+ button.has-icon {
38
+ display: flex;
39
+ gap: var(--space);
40
+ }
41
+ button {
42
+ width: var(--button-width);
43
+ height: var(--button-height);
44
+ box-sizing: border-box;
45
+ padding: var(--button-padding, var(--control-padding, var(--secondary-padding, var(--padding, 4px))));
46
+ border: var(--button-border, var(--control-border, var(--secondary-border, var(--border, none))));
47
+ border-top: var(--button-border-top, var(--control-border-top, var(--secondary-border-top, var(--border-top, var(--button-border, var(--control-border, var(--secondary-border, var(--border, none))))))));
48
+ border-right: var(--button-border-right, var(--control-border-right, var(--secondary-border-right, var(--border-right, var(--button-border, var(--control-border, var(--secondary-border, var(--border, none))))))));
49
+ border-bottom: var(--button-border-bottom, var(--control-border-bottom, var(--secondary-border-bottom, var(--border-bottom, var(--button-border, var(--control-border, var(--secondary-border, var(--border, none))))))));
50
+ border-left: var(--button-border-left, var(--control-border-left, var(--secondary-border-left, var(--border-left, var(--button-border, var(--control-border, var(--secondary-border, var(--border, none))))))));
51
+ border-radius: var(--button-border-radius, var(--control-border-radius, var(--secondary-border-radius, var(--border-radius, none))));
52
+ background: var(--button-bg, var(--control-bg, var(--secondary-bg, var(--bg, white))));
53
+ color: var(--button-fg, var(--control-fg, var(--secondary-fg, var(--fg, black))));
54
+ font-family: var(--button-font);
55
+ cursor: pointer;
56
+ transition: filter, transform var(--button-transition, var(--control-transition, var(--transition, 300ms)));
57
+ margin: var(--button-margin, var(--control-margin, var(--margin, var(--space))));
58
+ }
59
+ button:hover {
60
+ filter: var(--button-hover-filter, var(--clickable-hover-filter, var(--hover-filter, brightness(1.1))));
61
+ transform: var(--button-hover-transform, var(--clickable-hover-transform, var(--hover-transform, none)));
62
+ }
63
+ button:active {
64
+ filter: var(--button-hover-filter, var(--clickable-hover-filter, var(--hover-filter, brightness(0.9))));
65
+ transform: var(--button-hover-transform, var(--clickable-hover-transform, var(--hover-transform, translate(var(--space), var(--space)))));
66
+ }
67
+ button.primary {
68
+ background: var(--primary-bg, var(--button-bg, var(--control-bg, var(--bg, white))));
69
+ color: var(--primary-fg, var(--button-fg, var(--control-fg, var(--fg, black))));
70
+ }
71
+ button.warning {
72
+ background: var(--warning-bg, var(--button-bg, var(--control-bg, var(--bg, white))));
73
+ color: var(--warning-fg, var(--button-fg, var(--control-fg, var(--fg, black))));
74
+ }</style>
@@ -0,0 +1,28 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ primary?: boolean | undefined;
6
+ warning?: boolean | undefined;
7
+ bg?: string | null | undefined;
8
+ fg?: string | null | undefined;
9
+ padding?: string | null | undefined;
10
+ width?: string | null | undefined;
11
+ height?: string | null | undefined;
12
+ };
13
+ events: {
14
+ click: MouseEvent;
15
+ } & {
16
+ [evt: string]: CustomEvent<any>;
17
+ };
18
+ slots: {
19
+ default: {};
20
+ icon: {};
21
+ };
22
+ };
23
+ export type ButtonProps = typeof __propDef.props;
24
+ export type ButtonEvents = typeof __propDef.events;
25
+ export type ButtonSlots = typeof __propDef.slots;
26
+ export default class Button extends SvelteComponent<ButtonProps, ButtonEvents, ButtonSlots> {
27
+ }
28
+ export {};
@@ -0,0 +1,111 @@
1
+ <script>export let checked;
2
+ let ref;
3
+ let labelContent;
4
+ let labelWidth;
5
+ $: {
6
+ if (ref) {
7
+ labelContent = ref.innerHTML;
8
+ }
9
+ }
10
+ </script>
11
+
12
+ <label>
13
+ <input type="checkbox" bind:checked />
14
+ <span style:--label-width="{labelWidth + 4}px" bind:this={ref}><slot /></span>
15
+ </label>
16
+ <!-- Off-screen span for measuring -->
17
+ <span class="offscreen" bind:clientWidth={labelWidth}>{@html labelContent}</span
18
+ >
19
+
20
+ <style>@charset "UTF-8";
21
+ /* Convenience groupings */
22
+ /* Warning: because we define a fallback
23
+ media query, the media query can override the container
24
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
25
+ Put min-width queries *after* max-width queries so that smaller
26
+ container queries don't get their styles overridden by large media queries.
27
+ */
28
+ :root {
29
+ /* --checkbox-size: var(--font-size);
30
+ --checkbox-bg: var(--inactive-bg);
31
+ --checkbox-fg: var(--inactive-fg);
32
+ --checkbox-checked-bg: var(--primary-bg);
33
+ --checkbox-checked-fg: var(--primary-fg);
34
+ --checkbox-border: 1px solid var(--white);
35
+ --checkbox-checked-border: 1px solid var(--white);
36
+ --checkbox-check: "✓"; */
37
+ }
38
+ .offscreen,
39
+ label {
40
+ font-family: var(--checkbox-font-family, var(--ui-font-family, var(--font-family, sans-serif)));
41
+ text-transform: var(--checkbox-text-transform, var(--ui-text-transform, var(--text-transform, none)));
42
+ text-decoration: var(--checkbox-text-decoration, var(--ui-text-decoration, var(--text-decoration, none)));
43
+ font-size: var(--checkbox-font-size, var(--ui-font-size, var(--font-size, 16px)));
44
+ font-weight: var(--checkbox-font-weight, var(--ui-font-weight, var(--font-weight, 400)));
45
+ line-height: var(--checkbox-line-height, var(--ui-line-height, var(--line-height, 1.5)));
46
+ letter-spacing: var(--checkbox-letter-spacing, var(--ui-letter-spacing, var(--letter-spacing, 0.05em)));
47
+ }
48
+ .offscreen {
49
+ visibility: hidden;
50
+ font-weight: var(--checkbox-checked-weight, var(--checked-weight, var(--weight, active)));
51
+ position: absolute;
52
+ }
53
+ label {
54
+ display: inline-flex;
55
+ align-items: center;
56
+ box-sizing: border-box;
57
+ line-height: 1.2;
58
+ position: relative;
59
+ user-select: none;
60
+ gap: var(--radio-button-space, var(--toggle-space, var(--space-md)));
61
+ }
62
+ label:hover {
63
+ filter: var(--checkbox-hover-filter);
64
+ transform: var(--checkbox-hover-transform);
65
+ }
66
+ label:has(:global(*:active)) {
67
+ filter: var(--checkbox-active-filter, var(--active-filter, control));
68
+ transform: var(--checkbox-active-transform, var(--active-transform, control));
69
+ }
70
+ label span {
71
+ width: var(--label-width);
72
+ }
73
+ label:has(input:checked) {
74
+ font-weight: var(--checkbox-checked-weight, var(--checked-weight, var(--weight, active)));
75
+ }
76
+ input {
77
+ display: none;
78
+ }
79
+ label::before {
80
+ transition: all var(--checkbox-transition, var(--transition, control));
81
+ display: inline-grid;
82
+ place-content: center;
83
+ content: " ";
84
+ width: var(--checkbox-size, var(--toggle-size, var(--font-size, var(--size, 1em))));
85
+ height: var(--checkbox-size, var(--toggle-size, var(--font-size, var(--size, 1em))));
86
+ background: var(--checkbox-bg, var(--toggle-bg, var(--inactive-bg, var(--secondary-bg, var(--bg, white)))));
87
+ color: var(--checkbox-fg, var(--toggle-fg, var(--inactive-fg, var(--secondary-fg, var(--fg, black)))));
88
+ border: var(--checkbox-border, var(--border, 1px solid var(--border-color)));
89
+ box-sizing: border-box;
90
+ }
91
+ label:has(input:checked)::before {
92
+ background: var(--checkbox-checked-bg, var(--toggle-on-bg, var(--primary-bg, var(--checkbox-bg, var(--bg, white)))));
93
+ color: var(--checkbox-checked-fg, var(--toggle-on-fg, var(--primary-fg, var(--checkbox-fg, var(--fg, black)))));
94
+ }
95
+ label:has(input:checked)::after {
96
+ content: var(--checkbox-check, "✓");
97
+ font-size: var(--checkbox-size, var(--toggle-size, var(--font-size, var(--size, 1em))));
98
+ color: var(--checkbox-checked-fg, var(--toggle-on-fg, var(--primary-fg, var(--fg, checkbox))));
99
+ position: absolute;
100
+ left: 0;
101
+ animation: checkbox-check var(--checkbox-transition) ease-in-out;
102
+ }
103
+ @keyframes checkbox-check {
104
+ 0% {
105
+ width: 0;
106
+ overflow: hidden;
107
+ }
108
+ 100% {
109
+ width: var(--checkbox-size, var(--toggle-size, var(--font-size, var(--size, 1em))));
110
+ }
111
+ }</style>
@@ -0,0 +1,18 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ checked: boolean;
5
+ };
6
+ events: {
7
+ [evt: string]: CustomEvent<any>;
8
+ };
9
+ slots: {
10
+ default: {};
11
+ };
12
+ };
13
+ export type CheckboxProps = typeof __propDef.props;
14
+ export type CheckboxEvents = typeof __propDef.events;
15
+ export type CheckboxSlots = typeof __propDef.slots;
16
+ export default class Checkbox extends SvelteComponent<CheckboxProps, CheckboxEvents, CheckboxSlots> {
17
+ }
18
+ export {};
@@ -0,0 +1,33 @@
1
+ <script>export let value;
2
+ export let placeholder = "";
3
+ </script>
4
+
5
+ <input {placeholder} bind:value on:input on:change on:blur on:focus />
6
+
7
+ <style>/* Convenience groupings */
8
+ /* Warning: because we define a fallback
9
+ media query, the media query can override the container
10
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
11
+ Put min-width queries *after* max-width queries so that smaller
12
+ container queries don't get their styles overridden by large media queries.
13
+ */
14
+ input {
15
+ font-family: var(--input-font-family, var(--ui-font-family, var(--font-family, sans-serif)));
16
+ text-transform: var(--input-text-transform, var(--ui-text-transform, var(--text-transform, none)));
17
+ text-decoration: var(--input-text-decoration, var(--ui-text-decoration, var(--text-decoration, none)));
18
+ font-size: var(--input-font-size, var(--ui-font-size, var(--font-size, 16px)));
19
+ font-weight: var(--input-font-weight, var(--ui-font-weight, var(--font-weight, 400)));
20
+ line-height: var(--input-line-height, var(--ui-line-height, var(--line-height, 1.5)));
21
+ letter-spacing: var(--input-letter-spacing, var(--ui-letter-spacing, var(--letter-spacing, 0.05em)));
22
+ box-sizing: border-box;
23
+ padding: var(--input-padding, var(--ui-padding, var(--padding, 4px)));
24
+ border: var(--input-border, var(--ui-border, var(--border, none)));
25
+ border-top: var(--input-border-top, var(--ui-border-top, var(--border-top, var(--input-border, var(--ui-border, var(--border, none))))));
26
+ border-right: var(--input-border-right, var(--ui-border-right, var(--border-right, var(--input-border, var(--ui-border, var(--border, none))))));
27
+ border-bottom: var(--input-border-bottom, var(--ui-border-bottom, var(--border-bottom, var(--input-border, var(--ui-border, var(--border, none))))));
28
+ border-left: var(--input-border-left, var(--ui-border-left, var(--border-left, var(--input-border, var(--ui-border, var(--border, none))))));
29
+ border-radius: var(--input-border-radius, var(--ui-border-radius, var(--border-radius, none)));
30
+ background: var(--input-bg, var(--ui-bg, var(--bg, white)));
31
+ color: var(--input-fg, var(--ui-fg, var(--fg, black)));
32
+ width: var(--input-width);
33
+ }</style>
@@ -0,0 +1,22 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ value: string;
5
+ placeholder?: string | undefined;
6
+ };
7
+ events: {
8
+ input: Event;
9
+ change: Event;
10
+ blur: FocusEvent;
11
+ focus: FocusEvent;
12
+ } & {
13
+ [evt: string]: CustomEvent<any>;
14
+ };
15
+ slots: {};
16
+ };
17
+ export type InputProps = typeof __propDef.props;
18
+ export type InputEvents = typeof __propDef.events;
19
+ export type InputSlots = typeof __propDef.slots;
20
+ export default class Input extends SvelteComponent<InputProps, InputEvents, InputSlots> {
21
+ }
22
+ export {};
@@ -0,0 +1,78 @@
1
+ <script>export let primary = false;
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
+ import { injectVars } from "../util";
8
+ let style = injectVars($$props, "mini-button", [
9
+ "bg",
10
+ "fg",
11
+ "padding",
12
+ "width",
13
+ "height"
14
+ ]);
15
+ </script>
16
+
17
+ <button
18
+ {style}
19
+ class:primary
20
+ on:click
21
+ on:blur
22
+ on:dblclick
23
+ on:focus
24
+ on:keydown
25
+ on:keyup
26
+ >
27
+ <slot />
28
+ </button>
29
+
30
+ <style>/* Convenience groupings */
31
+ /* Warning: because we define a fallback
32
+ media query, the media query can override the container
33
+ if we stack a bunch of these in a row and aren't thoughtful about the order.
34
+ Put min-width queries *after* max-width queries so that smaller
35
+ container queries don't get their styles overridden by large media queries.
36
+ */
37
+ button.primary {
38
+ background: var(--primary-bg, var(--button-bg, var(--control-bg, var(--bg, white))));
39
+ color: var(--primary-fg, var(--button-fg, var(--control-fg, var(--fg, black))));
40
+ }
41
+ button {
42
+ font-family: var(--button-font-family, var(--control-font-family, var(--font-family, sans-serif)));
43
+ text-transform: var(--button-text-transform, var(--control-text-transform, var(--text-transform, none)));
44
+ text-decoration: var(--button-text-decoration, var(--control-text-decoration, var(--text-decoration, none)));
45
+ font-size: var(--button-font-size, var(--control-font-size, var(--font-size, 16px)));
46
+ font-weight: var(--button-font-weight, var(--control-font-weight, var(--font-weight, 400)));
47
+ line-height: var(--button-line-height, var(--control-line-height, var(--line-height, 1.5)));
48
+ letter-spacing: var(--button-letter-spacing, var(--control-letter-spacing, var(--letter-spacing, 0.05em)));
49
+ background: var(--mini-button-bg, var(--button-bg, var(--control-bg, var(--secondary-bg, var(--bg, white)))));
50
+ color: var(--mini-button-fg, var(--button-fg, var(--control-fg, var(--secondary-fg, var(--fg, black)))));
51
+ font-family: var(--button-font);
52
+ cursor: pointer;
53
+ transition: filter, transform var(--button-transition, var(--control-transition, var(--transition, 300ms)));
54
+ box-shadow: var(--mini-button-shadow-distance, var(--button-shadow-distance, var(--control-shadow-distance, var(--shadow-distance, var(--space-md))))) var(--mini-button-shadow-distance, var(--button-shadow-distance, var(--control-shadow-distance, var(--shadow-distance, var(--space-md))))) var(--mini-button-shadow-blur, var(--button-shadow-blur, var(--control-shadow-blur, var(--shadow-blur, var(--space))))) var(--mini-button-shadow-color, var(--button-shadow-color, var(--control-shadow-color, var(--shadow-color, rgba(127, 127, 127, 0.4)))));
55
+ margin: var(--button-margin, var(--control-margin, var(--margin, var(--space))));
56
+ width: var(--mini-button-size, var(--icon-size, 1em));
57
+ height: var(--mini-button-size, var(--icon-size, 1em));
58
+ border-radius: var(--mini-button-radius, 50%);
59
+ border: var(--mini-button-border, button-border, none);
60
+ display: inline-grid;
61
+ place-content: center;
62
+ }
63
+ button:hover {
64
+ filter: var(--mini-button-hover-filter, var(--button-hover-filter, var(--clickable-hover-filter, var(--hover-filter, brightness(1.1)))));
65
+ transform: var(--mini-button-hover-transform, var(--button-hover-transform, var(--clickable-hover-transform, var(--hover-transform, none))));
66
+ }
67
+ button:active {
68
+ filter: var(--mini-button-hover-filter, var(--button-hover-filter, var(--clickable-hover-filter, var(--hover-filter, brightness(0.9)))));
69
+ transform: var(--mini-button-hover-transform, var(--button-hover-transform, var(--clickable-hover-transform, var(--hover-transform, translate(var(--space), var(--space))))));
70
+ }
71
+ button.primary {
72
+ background: var(--primary-bg, var(--button-bg, var(--control-bg, var(--bg, white))));
73
+ color: var(--primary-fg, var(--button-fg, var(--control-fg, var(--fg, black))));
74
+ }
75
+ button.warning {
76
+ background: var(--warning-bg, var(--button-bg, var(--control-bg, var(--bg, white))));
77
+ color: var(--warning-fg, var(--button-fg, var(--control-fg, var(--fg, black))));
78
+ }</style>
@@ -0,0 +1,31 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ primary?: boolean | undefined;
6
+ bg?: string | null | undefined;
7
+ fg?: string | null | undefined;
8
+ padding?: string | null | undefined;
9
+ width?: string | null | undefined;
10
+ height?: string | null | undefined;
11
+ };
12
+ events: {
13
+ click: MouseEvent;
14
+ blur: FocusEvent;
15
+ dblclick: MouseEvent;
16
+ focus: FocusEvent;
17
+ keydown: KeyboardEvent;
18
+ keyup: KeyboardEvent;
19
+ } & {
20
+ [evt: string]: CustomEvent<any>;
21
+ };
22
+ slots: {
23
+ default: {};
24
+ };
25
+ };
26
+ export type MiniButtonProps = typeof __propDef.props;
27
+ export type MiniButtonEvents = typeof __propDef.events;
28
+ export type MiniButtonSlots = typeof __propDef.slots;
29
+ export default class MiniButton extends SvelteComponent<MiniButtonProps, MiniButtonEvents, MiniButtonSlots> {
30
+ }
31
+ export {};