@geoffcox/sterling-svelte 0.0.14 → 0.0.16
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.
- package/@types/clickOutside.d.ts +9 -3
- package/buttons/Button.svelte +1 -1
- package/buttons/Button.svelte.d.ts +4 -1
- package/buttons/MenuButton.svelte +102 -0
- package/buttons/MenuButton.svelte.d.ts +54 -0
- package/clickOutside.js +3 -1
- package/containers/List.svelte +1 -1
- package/containers/Menu.svelte +100 -0
- package/containers/Menu.svelte.d.ts +20 -0
- package/containers/MenuBar.svelte +97 -0
- package/containers/MenuBar.svelte.d.ts +43 -0
- package/containers/MenuItem.svelte +350 -0
- package/containers/MenuItem.svelte.d.ts +61 -0
- package/containers/MenuItemDisplay.svelte +97 -0
- package/containers/MenuItemDisplay.svelte.d.ts +21 -0
- package/containers/MenuSeparator.svelte +42 -0
- package/containers/MenuSeparator.svelte.d.ts +76 -0
- package/containers/Menus.constants.d.ts +2 -0
- package/containers/Menus.constants.js +2 -0
- package/containers/Menus.types.d.ts +22 -0
- package/containers/Menus.types.js +1 -0
- package/containers/Menus.utils.d.ts +5 -0
- package/containers/Menus.utils.js +20 -0
- package/containers/Tab.svelte +327 -0
- package/containers/Tab.svelte.d.ts +55 -0
- package/containers/TabList.svelte +126 -0
- package/containers/TabList.svelte.d.ts +56 -0
- package/containers/Tabs.constants.d.ts +1 -0
- package/containers/Tabs.constants.js +1 -0
- package/containers/Tabs.types.d.ts +12 -0
- package/containers/Tabs.types.js +1 -0
- package/containers/TreeNode.svelte +0 -1
- package/forwardEvents.d.ts +12 -0
- package/forwardEvents.js +34 -0
- package/index.d.ts +12 -2
- package/index.js +9 -1
- package/inputs/Checkbox.svelte +2 -2
- package/inputs/Checkbox.svelte.d.ts +4 -1
- package/inputs/Input.svelte +1 -1
- package/inputs/Select.svelte +5 -5
- package/inputs/TextArea.svelte +2 -2
- package/package.json +18 -1
- package/portal.d.ts +8 -0
- package/portal.js +19 -0
- package/surfaces/Portal.svelte +14 -0
- package/surfaces/Portal.svelte.d.ts +21 -0
package/index.js
CHANGED
|
@@ -7,19 +7,27 @@ export { lightTheme } from './theme/lightTheme';
|
|
|
7
7
|
export { neutrals } from './theme/colors';
|
|
8
8
|
export { toggleDarkTheme } from './theme/toggleDarkTheme';
|
|
9
9
|
export { clickOutside } from './clickOutside';
|
|
10
|
+
export { menuBarContextKey, menuItemContextKey } from './containers/Menus.constants';
|
|
10
11
|
import Button from './buttons/Button.svelte';
|
|
11
12
|
import Checkbox from './inputs/Checkbox.svelte';
|
|
12
13
|
import Dialog from './surfaces/Dialog.svelte';
|
|
13
14
|
import Input from './inputs/Input.svelte';
|
|
14
15
|
import Label from './display/Label.svelte';
|
|
15
16
|
import List from './containers/List.svelte';
|
|
17
|
+
import Menu from './containers/Menu.svelte';
|
|
18
|
+
import MenuBar from './containers/MenuBar.svelte';
|
|
19
|
+
import MenuButton from './buttons/MenuButton.svelte';
|
|
20
|
+
import MenuItem from './containers/MenuItem.svelte';
|
|
21
|
+
import MenuSeparator from './containers/MenuSeparator.svelte';
|
|
16
22
|
import Progress from './display/Progress.svelte';
|
|
17
23
|
import Radio from './inputs/Radio.svelte';
|
|
18
24
|
import Select from './inputs/Select.svelte';
|
|
19
25
|
import Slider from './inputs/Slider.svelte';
|
|
20
26
|
import Switch from './inputs/Switch.svelte';
|
|
27
|
+
import Tab from './containers/Tab.svelte';
|
|
28
|
+
import TabList from './containers/TabList.svelte';
|
|
21
29
|
import TextArea from './inputs/TextArea.svelte';
|
|
22
30
|
import Tree from './containers/Tree.svelte';
|
|
23
31
|
import TreeChevron from './containers/TreeChevron.svelte';
|
|
24
32
|
import TreeItem from './containers/TreeItem.svelte';
|
|
25
|
-
export { Button, Checkbox, Dialog, Input, Label, List, Progress, Radio, Select, Slider, Switch, TextArea, Tree, TreeChevron, TreeItem };
|
|
33
|
+
export { Button, Checkbox, Dialog, Input, Label, List, Menu, MenuBar, MenuButton, MenuItem, MenuSeparator, Progress, Radio, Select, Slider, Switch, Tab, TabList, TextArea, Tree, TreeChevron, TreeItem };
|
package/inputs/Checkbox.svelte
CHANGED
|
@@ -43,7 +43,7 @@ const inputId = uuid();
|
|
|
43
43
|
{#if $$slots.label}
|
|
44
44
|
<div class="label">
|
|
45
45
|
<Label {disabled} for={inputId}>
|
|
46
|
-
<slot name="label" />
|
|
46
|
+
<slot name="label" {checked} {disabled} />
|
|
47
47
|
</Label>
|
|
48
48
|
</div>
|
|
49
49
|
{/if}
|
|
@@ -136,7 +136,7 @@ const inputId = uuid();
|
|
|
136
136
|
height: 14px;
|
|
137
137
|
left: 50%;
|
|
138
138
|
position: absolute;
|
|
139
|
-
top:
|
|
139
|
+
top: 45%;
|
|
140
140
|
transform: translate(-50%, -50%) rotate(45deg);
|
|
141
141
|
transform-origin: center;
|
|
142
142
|
transition: border-color 250ms;
|
package/inputs/Input.svelte
CHANGED
package/inputs/Select.svelte
CHANGED
|
@@ -142,7 +142,6 @@ A single item that can be selected from a popup list of items.
|
|
|
142
142
|
-->
|
|
143
143
|
<div
|
|
144
144
|
bind:this={selectRef}
|
|
145
|
-
use:clickOutside
|
|
146
145
|
aria-controls={popupId}
|
|
147
146
|
aria-haspopup="listbox"
|
|
148
147
|
aria-expanded={open}
|
|
@@ -150,8 +149,7 @@ A single item that can be selected from a popup list of items.
|
|
|
150
149
|
class:disabled
|
|
151
150
|
role="combobox"
|
|
152
151
|
tabindex="0"
|
|
153
|
-
|
|
154
|
-
on:click={onSelectClick}
|
|
152
|
+
use:clickOutside
|
|
155
153
|
on:blur
|
|
156
154
|
on:click
|
|
157
155
|
on:copy
|
|
@@ -160,7 +158,6 @@ A single item that can be selected from a popup list of items.
|
|
|
160
158
|
on:focus
|
|
161
159
|
on:focusin
|
|
162
160
|
on:focusout
|
|
163
|
-
on:keydown={onSelectKeydown}
|
|
164
161
|
on:keydown
|
|
165
162
|
on:keypress
|
|
166
163
|
on:keyup
|
|
@@ -173,6 +170,9 @@ A single item that can be selected from a popup list of items.
|
|
|
173
170
|
on:mouseup
|
|
174
171
|
on:wheel
|
|
175
172
|
on:paste
|
|
173
|
+
on:click={onSelectClick}
|
|
174
|
+
on:click_outside={() => (open = false)}
|
|
175
|
+
on:keydown={onSelectKeydown}
|
|
176
176
|
{...$$restProps}
|
|
177
177
|
>
|
|
178
178
|
{#if $$slots.label}
|
|
@@ -276,7 +276,7 @@ A single item that can be selected from a popup list of items.
|
|
|
276
276
|
|
|
277
277
|
.sterling-select > :global(label) {
|
|
278
278
|
font-size: 0.7em;
|
|
279
|
-
margin: 0.5em 0.7em;
|
|
279
|
+
margin: 0.5em 0 0 0.7em;
|
|
280
280
|
}
|
|
281
281
|
|
|
282
282
|
.sterling-select > :global(label):empty {
|
package/inputs/TextArea.svelte
CHANGED
|
@@ -39,7 +39,6 @@ $:
|
|
|
39
39
|
on:focus
|
|
40
40
|
on:focusin
|
|
41
41
|
on:focusout
|
|
42
|
-
on:input={onInput}
|
|
43
42
|
on:input
|
|
44
43
|
on:invalid
|
|
45
44
|
on:keydown
|
|
@@ -56,6 +55,7 @@ $:
|
|
|
56
55
|
on:submit
|
|
57
56
|
on:reset
|
|
58
57
|
on:wheel
|
|
58
|
+
on:input={onInput}
|
|
59
59
|
{disabled}
|
|
60
60
|
rows="1"
|
|
61
61
|
{...$$restProps}
|
|
@@ -138,7 +138,7 @@ $:
|
|
|
138
138
|
|
|
139
139
|
.sterling-text-area > :global(label) {
|
|
140
140
|
font-size: 0.7em;
|
|
141
|
-
margin: 0.5em 0.7em;
|
|
141
|
+
margin: 0.5em 0 0 0.7em;
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
.sterling-text-area > :global(label):empty {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geoffcox/sterling-svelte",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"author": "Geoff Cox",
|
|
5
5
|
"description": "A modern, accessible, and lightweight component library for Svelte.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"type": "module",
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@floating-ui/dom": "^1.1.0",
|
|
48
|
+
"keyborg": "^2.0.0",
|
|
48
49
|
"lodash-es": "^4.17.21",
|
|
49
50
|
"uuid": "^9.0.0"
|
|
50
51
|
},
|
|
@@ -52,9 +53,22 @@
|
|
|
52
53
|
"./package.json": "./package.json",
|
|
53
54
|
"./buttons/Button.svelte": "./buttons/Button.svelte",
|
|
54
55
|
"./buttons/Button.types": "./buttons/Button.types.js",
|
|
56
|
+
"./buttons/MenuButton.svelte": "./buttons/MenuButton.svelte",
|
|
55
57
|
"./clickOutside": "./clickOutside.js",
|
|
56
58
|
"./containers/List.svelte": "./containers/List.svelte",
|
|
57
59
|
"./containers/ListItem.svelte": "./containers/ListItem.svelte",
|
|
60
|
+
"./containers/Menu.svelte": "./containers/Menu.svelte",
|
|
61
|
+
"./containers/MenuBar.svelte": "./containers/MenuBar.svelte",
|
|
62
|
+
"./containers/MenuItem.svelte": "./containers/MenuItem.svelte",
|
|
63
|
+
"./containers/MenuItemDisplay.svelte": "./containers/MenuItemDisplay.svelte",
|
|
64
|
+
"./containers/MenuSeparator.svelte": "./containers/MenuSeparator.svelte",
|
|
65
|
+
"./containers/Menus.constants": "./containers/Menus.constants.js",
|
|
66
|
+
"./containers/Menus.types": "./containers/Menus.types.js",
|
|
67
|
+
"./containers/Menus.utils": "./containers/Menus.utils.js",
|
|
68
|
+
"./containers/Tab.svelte": "./containers/Tab.svelte",
|
|
69
|
+
"./containers/TabList.svelte": "./containers/TabList.svelte",
|
|
70
|
+
"./containers/Tabs.constants": "./containers/Tabs.constants.js",
|
|
71
|
+
"./containers/Tabs.types": "./containers/Tabs.types.js",
|
|
58
72
|
"./containers/Tree.constants": "./containers/Tree.constants.js",
|
|
59
73
|
"./containers/Tree.svelte": "./containers/Tree.svelte",
|
|
60
74
|
"./containers/Tree.types": "./containers/Tree.types.js",
|
|
@@ -64,6 +78,7 @@
|
|
|
64
78
|
"./display/Label.svelte": "./display/Label.svelte",
|
|
65
79
|
"./display/Progress.svelte": "./display/Progress.svelte",
|
|
66
80
|
"./display/Progress.types": "./display/Progress.types.js",
|
|
81
|
+
"./forwardEvents": "./forwardEvents.js",
|
|
67
82
|
".": "./index.js",
|
|
68
83
|
"./inputs/Checkbox.svelte": "./inputs/Checkbox.svelte",
|
|
69
84
|
"./inputs/Input.svelte": "./inputs/Input.svelte",
|
|
@@ -73,8 +88,10 @@
|
|
|
73
88
|
"./inputs/Switch.svelte": "./inputs/Switch.svelte",
|
|
74
89
|
"./inputs/TextArea.svelte": "./inputs/TextArea.svelte",
|
|
75
90
|
"./inputs/TextArea.types": "./inputs/TextArea.types.js",
|
|
91
|
+
"./portal": "./portal.js",
|
|
76
92
|
"./surfaces/CloseX.svelte": "./surfaces/CloseX.svelte",
|
|
77
93
|
"./surfaces/Dialog.svelte": "./surfaces/Dialog.svelte",
|
|
94
|
+
"./surfaces/Portal.svelte": "./surfaces/Portal.svelte",
|
|
78
95
|
"./theme/applyDarkTheme": "./theme/applyDarkTheme.js",
|
|
79
96
|
"./theme/applyLightTheme": "./theme/applyLightTheme.js",
|
|
80
97
|
"./theme/applyTheme": "./theme/applyTheme.js",
|
package/portal.d.ts
ADDED
package/portal.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const portal = (node, params) => {
|
|
2
|
+
const child = node;
|
|
3
|
+
let portaled = false;
|
|
4
|
+
const createPortal = (node, params) => {
|
|
5
|
+
if (!portaled && params.target && node) {
|
|
6
|
+
params.target.appendChild(node);
|
|
7
|
+
portaled = true;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
createPortal(child, params);
|
|
11
|
+
return {
|
|
12
|
+
update: (params) => createPortal(child, params),
|
|
13
|
+
destroy() {
|
|
14
|
+
if (portaled) {
|
|
15
|
+
child?.parentNode?.removeChild(child);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script>import { portal } from "../portal";
|
|
2
|
+
export let target = document.body;
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="portal" use:portal={{ target }}>
|
|
6
|
+
<slot {...$$restProps} />
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<style>
|
|
10
|
+
.portal {
|
|
11
|
+
position: relative;
|
|
12
|
+
overflow: visible;
|
|
13
|
+
}
|
|
14
|
+
</style>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
[x: string]: any;
|
|
5
|
+
target?: HTMLElement | undefined;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {
|
|
11
|
+
default: {
|
|
12
|
+
[x: string]: any;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export type PortalProps = typeof __propDef.props;
|
|
17
|
+
export type PortalEvents = typeof __propDef.events;
|
|
18
|
+
export type PortalSlots = typeof __propDef.slots;
|
|
19
|
+
export default class Portal extends SvelteComponentTyped<PortalProps, PortalEvents, PortalSlots> {
|
|
20
|
+
}
|
|
21
|
+
export {};
|