svelte-tweakpane-ui 1.0.0 → 1.0.2
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/dist/control/ButtonGrid.svelte +6 -7
- package/dist/control/ButtonGrid.svelte.d.ts +6 -4
- package/dist/control/Checkbox.svelte.d.ts +2 -4
- package/dist/control/Color.svelte.d.ts +2 -4
- package/dist/control/CubicBezier.svelte +13 -21
- package/dist/control/CubicBezier.svelte.d.ts +5 -2
- package/dist/control/Image.svelte.d.ts +7 -9
- package/dist/control/IntervalSlider.svelte.d.ts +2 -4
- package/dist/control/List.svelte +14 -20
- package/dist/control/List.svelte.d.ts +3 -5
- package/dist/control/Point.svelte.d.ts +29 -31
- package/dist/control/RadioGrid.svelte.d.ts +2 -4
- package/dist/control/Ring.svelte.d.ts +2 -4
- package/dist/control/RotationEuler.svelte.d.ts +66 -4
- package/dist/control/RotationQuaternion.svelte.d.ts +2 -4
- package/dist/control/Slider.svelte.d.ts +2 -4
- package/dist/control/Text.svelte +1 -1
- package/dist/control/Text.svelte.d.ts +2 -4
- package/dist/control/Textarea.svelte +1 -1
- package/dist/control/Textarea.svelte.d.ts +2 -4
- package/dist/control/Wheel.svelte.d.ts +2 -4
- package/dist/core/Blade.svelte +1 -1
- package/dist/core/TabGroup.svelte +3 -5
- package/dist/core/TabPage.svelte +2 -2
- package/dist/extra/AutoObject.svelte +7 -7
- package/dist/extra/AutoValue.svelte.d.ts +6 -4
- package/dist/extra/Element.svelte +2 -4
- package/dist/extra/Element.svelte.d.ts +30 -23
- package/dist/index.js +5 -5
- package/dist/internal/ClsPad.svelte +3 -7
- package/dist/internal/ClsPad.svelte.d.ts +10 -0
- package/dist/internal/GenericBinding.svelte.d.ts +2 -4
- package/dist/internal/GenericBladeFolding.svelte +5 -5
- package/dist/internal/GenericInput.svelte.d.ts +2 -4
- package/dist/internal/GenericInputFolding.svelte +5 -5
- package/dist/internal/GenericInputFolding.svelte.d.ts +2 -4
- package/dist/internal/GenericMonitor.svelte +1 -1
- package/dist/internal/GenericMonitor.svelte.d.ts +2 -4
- package/dist/internal/GenericPane.svelte +4 -7
- package/dist/internal/GenericSlider.svelte.d.ts +2 -4
- package/dist/internal/InternalMonitorBoolean.svelte.d.ts +2 -4
- package/dist/internal/InternalMonitorNumber.svelte.d.ts +2 -4
- package/dist/internal/InternalMonitorString.svelte.d.ts +2 -4
- package/dist/internal/InternalPaneDraggable.svelte +72 -64
- package/dist/internal/InternalPaneFixed.svelte +1 -3
- package/dist/internal/InternalPaneInline.svelte +3 -3
- package/dist/monitor/FpsGraph.svelte +6 -3
- package/dist/monitor/FpsGraph.svelte.d.ts +2 -2
- package/dist/monitor/Monitor.svelte.d.ts +24 -32
- package/dist/monitor/Profiler.svelte +10 -7
- package/dist/monitor/Profiler.svelte.d.ts +8 -5
- package/dist/monitor/WaveformMonitor.svelte.d.ts +2 -4
- package/dist/theme.d.ts +1 -3
- package/dist/theme.js +30 -39
- package/dist/utils.d.ts +10 -7
- package/dist/utils.js +53 -46
- package/package.json +26 -43
- package/{README.md → readme.md} +10 -3
- /package/{LICENSE → license.txt} +0 -0
package/dist/utils.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type SimplifyDeep<Type> = Type extends Theme
|
|
|
8
8
|
? Type
|
|
9
9
|
: {
|
|
10
10
|
[TypeKey in keyof Type]: SimplifyDeep<Type[TypeKey]>;
|
|
11
|
-
|
|
11
|
+
};
|
|
12
12
|
export type HasKey<U, V extends PropertyKey> = V extends keyof U ? U[V] : unknown;
|
|
13
13
|
import type { Bindable, BladeApi, BladeController, TpPluginBundle, View } from '@tweakpane/core';
|
|
14
14
|
export type BindingObject = Bindable;
|
|
@@ -65,13 +65,16 @@ export declare function enforceReadonly(
|
|
|
65
65
|
internal: unknown,
|
|
66
66
|
external: unknown,
|
|
67
67
|
componentName?: string,
|
|
68
|
-
|
|
68
|
+
propertyName?: string,
|
|
69
69
|
allowAssignmentToUndefined?: boolean
|
|
70
70
|
): void;
|
|
71
71
|
export declare function isRootPane(container: Container): boolean;
|
|
72
72
|
export declare function clamp(value: number, min: number, max: number): number;
|
|
73
73
|
export declare function getElementIndex(element: HTMLElement): number;
|
|
74
|
-
export declare function removeKeys<T extends
|
|
74
|
+
export declare function removeKeys<T extends Record<string, unknown>>(
|
|
75
|
+
object: T,
|
|
76
|
+
...keys: string[]
|
|
77
|
+
): T;
|
|
75
78
|
export declare function updateCollapsibility(
|
|
76
79
|
isUserExpandableEnabled: boolean,
|
|
77
80
|
element: HTMLElement,
|
|
@@ -103,19 +106,19 @@ export declare function tupleToObject<
|
|
|
103
106
|
}
|
|
104
107
|
>(tuple: number[], keys: T[]): O;
|
|
105
108
|
export declare function objectToTuple<T extends string, O extends Record<T, number>>(
|
|
106
|
-
|
|
109
|
+
object: O,
|
|
107
110
|
keys: [T]
|
|
108
111
|
): [number];
|
|
109
112
|
export declare function objectToTuple<T extends string, O extends Record<T, number>>(
|
|
110
|
-
|
|
113
|
+
object: O,
|
|
111
114
|
keys: [T, T]
|
|
112
115
|
): [number, number];
|
|
113
116
|
export declare function objectToTuple<T extends string, O extends Record<T, number>>(
|
|
114
|
-
|
|
117
|
+
object: O,
|
|
115
118
|
keys: [T, T, T]
|
|
116
119
|
): [number, number, number];
|
|
117
120
|
export declare function objectToTuple<T extends string, O extends Record<T, number>>(
|
|
118
|
-
|
|
121
|
+
object: O,
|
|
119
122
|
keys: [T, T, T, T]
|
|
120
123
|
): [number, number, number, number];
|
|
121
124
|
export declare function pickerIsOpen(blade: BladeApi<BladeController<View>>): boolean;
|
package/dist/utils.js
CHANGED
|
@@ -1,29 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unnecessary-type-arguments */
|
|
2
|
+
// Utility functions
|
|
3
3
|
/**
|
|
4
4
|
* For CLS SSR calculation
|
|
5
5
|
*/
|
|
6
|
-
export function rowsForMonitor(buffer
|
|
6
|
+
export function rowsForMonitor(buffer, rows, graph) {
|
|
7
7
|
if (graph) {
|
|
8
8
|
return Math.max(rows ?? 3, 3);
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
|
+
if (buffer === undefined && rows === undefined) {
|
|
10
11
|
return 1;
|
|
11
|
-
}
|
|
12
|
+
}
|
|
13
|
+
if (buffer === undefined && rows !== undefined) {
|
|
12
14
|
return 1;
|
|
13
|
-
}
|
|
15
|
+
}
|
|
16
|
+
if (buffer !== undefined && rows === undefined) {
|
|
14
17
|
return buffer > 1 ? 3 : 1;
|
|
15
|
-
}
|
|
18
|
+
}
|
|
19
|
+
if (buffer === 1) {
|
|
16
20
|
return 1;
|
|
17
|
-
} else {
|
|
18
|
-
// both defined
|
|
19
|
-
return rows ?? 1; // TODO
|
|
20
21
|
}
|
|
22
|
+
// Both defined
|
|
23
|
+
return rows ?? 1; // TODO
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
23
26
|
* Fills an array of length `quantity` with a `value`
|
|
24
27
|
*/
|
|
25
28
|
export function fillWith(value, quantity) {
|
|
26
|
-
return
|
|
29
|
+
return Array.from({ length: quantity }, () => value);
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
32
|
* There's no way to enforce readonly properties in Svelte components, so this is a workaround. See
|
|
@@ -52,7 +55,7 @@ export function enforceReadonly(
|
|
|
52
55
|
internal,
|
|
53
56
|
external,
|
|
54
57
|
componentName,
|
|
55
|
-
|
|
58
|
+
propertyName,
|
|
56
59
|
allowAssignmentToUndefined
|
|
57
60
|
) {
|
|
58
61
|
allowAssignmentToUndefined ??= false;
|
|
@@ -63,9 +66,11 @@ export function enforceReadonly(
|
|
|
63
66
|
)
|
|
64
67
|
) {
|
|
65
68
|
const componentString = componentName ? `<${componentName}> ` : '';
|
|
66
|
-
const
|
|
69
|
+
const propertyString = propertyName ? `property "${propertyName}" ` : '';
|
|
67
70
|
console.error(
|
|
68
|
-
`Svelte component ${componentString}property ${
|
|
71
|
+
`Svelte component "${componentString}" property "${propertyString}" is intended for readonly use.\nAssigning\n"${String(
|
|
72
|
+
external
|
|
73
|
+
)}"\nto\n"${String(internal)}"\nis not allowed.`
|
|
69
74
|
);
|
|
70
75
|
}
|
|
71
76
|
}
|
|
@@ -73,43 +78,45 @@ export function isRootPane(container) {
|
|
|
73
78
|
return container.constructor.name === 'Pane';
|
|
74
79
|
}
|
|
75
80
|
export function clamp(value, min, max) {
|
|
76
|
-
//
|
|
81
|
+
// Prioritize min over max
|
|
77
82
|
return Math.min(Math.max(value, min), max);
|
|
78
83
|
}
|
|
79
84
|
export function getElementIndex(element) {
|
|
80
85
|
let index = 0;
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
81
87
|
let sibling = element;
|
|
82
88
|
while ((sibling = sibling.previousElementSibling) !== null) {
|
|
83
89
|
index++;
|
|
84
90
|
}
|
|
85
91
|
return index;
|
|
86
92
|
}
|
|
87
|
-
//
|
|
88
|
-
export function removeKeys(
|
|
89
|
-
|
|
90
|
-
if (key in
|
|
91
|
-
delete
|
|
93
|
+
// Doesn't create a new object, only works with string keys
|
|
94
|
+
export function removeKeys(object, ...keys) {
|
|
95
|
+
for (const key of keys) {
|
|
96
|
+
if (key in object) {
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
98
|
+
delete object[key];
|
|
92
99
|
}
|
|
93
|
-
}
|
|
94
|
-
return
|
|
100
|
+
}
|
|
101
|
+
return object;
|
|
95
102
|
}
|
|
96
|
-
function clickBlocker(
|
|
97
|
-
//
|
|
98
|
-
console.log(
|
|
99
|
-
if (
|
|
103
|
+
function clickBlocker(event) {
|
|
104
|
+
// Only block user clicks, not programmatic ones
|
|
105
|
+
console.log(event.detail);
|
|
106
|
+
if (event.isTrusted) event.stopPropagation();
|
|
100
107
|
}
|
|
101
|
-
//
|
|
108
|
+
// Used by folder and pane TODO rewrite to use getSwatchButton etc.
|
|
102
109
|
export function updateCollapsibility(isUserExpandableEnabled, element, titleBarClass, iconClass) {
|
|
103
110
|
if (element) {
|
|
104
|
-
const titleBarElement = element.
|
|
105
|
-
if (titleBarElement
|
|
106
|
-
const iconElement = iconClass ? element.
|
|
111
|
+
const titleBarElement = element.querySelector(`.${titleBarClass}`);
|
|
112
|
+
if (titleBarElement) {
|
|
113
|
+
const iconElement = iconClass ? element.querySelector(`.${iconClass}`) : undefined;
|
|
107
114
|
if (isUserExpandableEnabled) {
|
|
108
115
|
titleBarElement.removeEventListener('click', clickBlocker, { capture: true });
|
|
109
116
|
titleBarElement.style.cursor = 'pointer';
|
|
110
117
|
if (iconElement) iconElement.style.display = 'block';
|
|
111
118
|
} else {
|
|
112
|
-
//
|
|
119
|
+
// Expanded = true;
|
|
113
120
|
titleBarElement.addEventListener('click', clickBlocker, { capture: true });
|
|
114
121
|
titleBarElement.style.cursor = 'default';
|
|
115
122
|
if (iconElement) iconElement.style.display = 'none';
|
|
@@ -130,7 +137,8 @@ export function updateCollapsibility(isUserExpandableEnabled, element, titleBarC
|
|
|
130
137
|
* If both constraints are provided, values may be clipped.
|
|
131
138
|
*/
|
|
132
139
|
export function getGridDimensions(itemCount, maxColumns, maxRows) {
|
|
133
|
-
let rows
|
|
140
|
+
let rows;
|
|
141
|
+
let columns;
|
|
134
142
|
if (maxColumns && maxRows) {
|
|
135
143
|
// No flexing; items can exceed the available slots
|
|
136
144
|
rows = Math.min(Math.ceil(itemCount / maxColumns), maxRows);
|
|
@@ -151,17 +159,18 @@ export function getGridDimensions(itemCount, maxColumns, maxRows) {
|
|
|
151
159
|
return { columns, rows };
|
|
152
160
|
}
|
|
153
161
|
export function tupleToObject(tuple, keys) {
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
154
163
|
const result = {};
|
|
155
|
-
keys.
|
|
164
|
+
for (const [index, key] of keys.entries()) {
|
|
156
165
|
// Assert that the assignment is safe
|
|
157
166
|
result[key] = tuple[index];
|
|
158
|
-
}
|
|
167
|
+
}
|
|
159
168
|
return result;
|
|
160
169
|
}
|
|
161
|
-
export function objectToTuple(
|
|
162
|
-
return keys.map((key) =>
|
|
170
|
+
export function objectToTuple(object, keys) {
|
|
171
|
+
return keys.map((key) => object[key]);
|
|
163
172
|
}
|
|
164
|
-
//
|
|
173
|
+
// Tweakpane helpers
|
|
165
174
|
export function pickerIsOpen(blade) {
|
|
166
175
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
167
176
|
return blade.controller.valueController?.foldable_?.valMap_?.expanded?.value_;
|
|
@@ -174,7 +183,7 @@ export function getSwatchButton(blade) {
|
|
|
174
183
|
blade.controller?.valueController?.view?.buttonElement;
|
|
175
184
|
return swatch;
|
|
176
185
|
}
|
|
177
|
-
//
|
|
186
|
+
// Utility functions
|
|
178
187
|
function quaternionToCssTransform(quaternion) {
|
|
179
188
|
const [x, y, z, w] = Array.isArray(quaternion)
|
|
180
189
|
? quaternion
|
|
@@ -197,22 +206,20 @@ function quaternionToCssTransform(quaternion) {
|
|
|
197
206
|
}
|
|
198
207
|
function eulerToCssTransform(
|
|
199
208
|
rotation,
|
|
200
|
-
units = 'rad' //
|
|
209
|
+
units = 'rad' // Rad is component default
|
|
201
210
|
) {
|
|
202
211
|
const [x, y, z] = Array.isArray(rotation) ? rotation : [rotation.x, rotation.y, rotation.z];
|
|
203
|
-
//
|
|
212
|
+
// Note negative z
|
|
204
213
|
return `rotateX(${x}${units}) rotateY(${y}${units}) rotateZ(${-z}${units})`;
|
|
205
214
|
}
|
|
206
215
|
function cubicBezierToEaseFunction(cubicBezier) {
|
|
207
|
-
|
|
208
|
-
const [x1, y1, x2, y2] = Array.isArray(cubicBezier)
|
|
216
|
+
const [_x1, y1, _x2, y2] = Array.isArray(cubicBezier)
|
|
209
217
|
? cubicBezier
|
|
210
218
|
: [cubicBezier.x1, cubicBezier.y1, cubicBezier.x2, cubicBezier.y2];
|
|
211
|
-
return (t) =>
|
|
212
|
-
|
|
213
|
-
};
|
|
219
|
+
return (t) =>
|
|
220
|
+
(1 - t) ** 3 * 0 + (1 - t) ** 2 * t * 3 * y1 + (1 - t) * t ** 2 * 3 * y2 + t ** 3 * 1;
|
|
214
221
|
}
|
|
215
|
-
//
|
|
222
|
+
// Library exports
|
|
216
223
|
export default {
|
|
217
224
|
/**
|
|
218
225
|
* Convenience function for creating easing functions ready for Svelte's tween and animation
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svelte-tweakpane-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "https://github.com/kitschpatrol/svelte-tweakpane-ui"
|
|
7
|
+
"url": "git+https://github.com/kitschpatrol/svelte-tweakpane-ui.git"
|
|
8
8
|
},
|
|
9
9
|
"homepage": "https:///kitschpatrol.com/svelte-tweakpane-ui",
|
|
10
10
|
"bugs": {
|
|
@@ -187,57 +187,46 @@
|
|
|
187
187
|
"@0b5vr/tweakpane-plugin-rotation": "^0.2.0",
|
|
188
188
|
"@kitschpatrol/tweakpane-image-plugin": "^2.0.0",
|
|
189
189
|
"@kitschpatrol/tweakpane-textarea-plugin": "^2.0.1",
|
|
190
|
-
"@tweakpane/core": "^2.0.
|
|
190
|
+
"@tweakpane/core": "^2.0.2",
|
|
191
191
|
"@tweakpane/plugin-camerakit": "^0.3.0",
|
|
192
192
|
"@tweakpane/plugin-essentials": "^0.2.0",
|
|
193
|
+
"bumpp": "^9.2.1",
|
|
193
194
|
"esm-env": "^1.0.0",
|
|
194
|
-
"nanoid": "^5.0.
|
|
195
|
+
"nanoid": "^5.0.4",
|
|
195
196
|
"svelte-local-storage-store": "^0.6.4",
|
|
196
|
-
"tweakpane": "^4.0.
|
|
197
|
+
"tweakpane": "^4.0.2",
|
|
197
198
|
"tweakpane-plugin-waveform": "^1.0.0"
|
|
198
199
|
},
|
|
199
200
|
"devDependencies": {
|
|
201
|
+
"@kitschpatrol/shared-config": "^4.0.0",
|
|
200
202
|
"@phenomnomnominal/tsquery": "^6.1.3",
|
|
201
203
|
"@stkb/rewrap": "^0.1.0",
|
|
202
204
|
"@sveltejs/adapter-static": "^2.0.3",
|
|
203
|
-
"@sveltejs/kit": "^1.
|
|
205
|
+
"@sveltejs/kit": "^1.30.3",
|
|
204
206
|
"@sveltejs/package": "^2.2.3",
|
|
205
|
-
"@types/eslint": "^8.44.
|
|
207
|
+
"@types/eslint": "^8.44.9",
|
|
206
208
|
"@types/fs-extra": "^11.0.4",
|
|
207
|
-
"@types/node": "^20.10.
|
|
208
|
-
"
|
|
209
|
-
"@typescript-eslint/parser": "^6.13.1",
|
|
210
|
-
"cspell": "^8.1.0",
|
|
211
|
-
"eslint": "^8.55.0",
|
|
212
|
-
"eslint-config-prettier": "^9.0.0",
|
|
213
|
-
"eslint-plugin-perfectionist": "^2.5.0",
|
|
214
|
-
"eslint-plugin-svelte": "^2.35.1",
|
|
209
|
+
"@types/node": "^20.10.4",
|
|
210
|
+
"eslint": "^8.56.0",
|
|
215
211
|
"fs-extra": "^11.2.0",
|
|
216
212
|
"glob": "^10.3.10",
|
|
217
|
-
"markdownlint": "^0.32.1",
|
|
218
|
-
"markdownlint-cli": "^0.37.0",
|
|
219
213
|
"npm-run-all": "^4.1.5",
|
|
220
214
|
"postcss-html": "^1.5.0",
|
|
221
|
-
"prettier": "^3.1.0",
|
|
222
|
-
"prettier-plugin-astro": "^0.12.2",
|
|
223
|
-
"prettier-plugin-pkg": "^0.18.0",
|
|
224
|
-
"prettier-plugin-svelte": "^3.1.2",
|
|
225
215
|
"publint": "^0.2.6",
|
|
226
|
-
"
|
|
227
|
-
"stylelint-config-clean-order": "^5.2.0",
|
|
228
|
-
"stylelint-config-html": "^1.1.0",
|
|
229
|
-
"stylelint-config-standard": "^34.0.0",
|
|
216
|
+
"read-package-up": "^11.0.0",
|
|
230
217
|
"svelte": "^4.2.8",
|
|
231
218
|
"svelte-check": "^3.6.2",
|
|
232
219
|
"svelte-language-server": "^0.16.1",
|
|
233
220
|
"svelte2tsx": "^0.6.27",
|
|
234
|
-
"ts-morph": "^
|
|
221
|
+
"ts-morph": "^21.0.1",
|
|
235
222
|
"tslib": "^2.6.2",
|
|
236
|
-
"tsx": "^4.6.
|
|
237
|
-
"typescript": "^5.3.
|
|
238
|
-
"vite": "^4.5.
|
|
223
|
+
"tsx": "^4.6.2",
|
|
224
|
+
"typescript": "^5.3.3",
|
|
225
|
+
"vite": "^4.5.1",
|
|
239
226
|
"yaml": "^2.3.4"
|
|
240
227
|
},
|
|
228
|
+
"_id": "svelte-tweakpane-ui@1.0.2",
|
|
229
|
+
"readme": "ERROR: No README data found!",
|
|
241
230
|
"scripts": {
|
|
242
231
|
"build": "run-s --print-label build:*",
|
|
243
232
|
"build:01-sync": "pnpm run check",
|
|
@@ -246,9 +235,9 @@
|
|
|
246
235
|
"build:04-format": "pnpm run format",
|
|
247
236
|
"build:05-package": "svelte-package && publint",
|
|
248
237
|
"build:06-heal-dts-comments": "tsx ./scripts/heal-dts-comments.ts",
|
|
249
|
-
"build:07-strip-component-
|
|
238
|
+
"build:07-strip-component-documentation": "tsx ./scripts/strip-component-documentation.ts",
|
|
250
239
|
"build:08-format-library": "prettier --ignore-path --plugin prettier-plugin-svelte --write ./dist",
|
|
251
|
-
"build:09-doc-data": "tsx ./scripts/generate-
|
|
240
|
+
"build:09-doc-data": "tsx ./scripts/generate-documentation-data.ts",
|
|
252
241
|
"build:10-examples-to-kit": "tsx ./scripts/generate-kit-examples.ts",
|
|
253
242
|
"build:11-examples-to-docs": "tsx ./scripts/generate-example-components.ts",
|
|
254
243
|
"build:12-acknowledgments-data": "mkdir -p ./docs/src/content/acknowledgments && pnpm licenses list --json > ./docs/src/content/acknowledgments/acknowledgments-lib.json",
|
|
@@ -260,21 +249,15 @@
|
|
|
260
249
|
"docs-dev": "pnpm -C ./docs run dev",
|
|
261
250
|
"docs-preview": "pnpm -C ./docs run preview",
|
|
262
251
|
"format": "run-s --print-label format:*",
|
|
263
|
-
"format:1-
|
|
264
|
-
"format:2-
|
|
265
|
-
"format:3-rewrap": "rewrap -i --column 100 `find src \\( -name '*.svelte' -o -name '*.ts' -o -name '*.html' \\) -type f | grep -v src/examples`",
|
|
266
|
-
"format:4-prettier": "prettier --plugin=prettier-plugin-svelte --plugin=prettier-plugin-astro --write .",
|
|
267
|
-
"format:5-embedded": "tsx ./scripts/format-embedded-code.ts",
|
|
252
|
+
"format:1-shared": "shared-config --fix",
|
|
253
|
+
"format:2-embedded": "tsx ./scripts/format-embedded-code.ts",
|
|
268
254
|
"kit-build": "pnpm run kit-examples && vite build",
|
|
269
255
|
"kit-dev": " pnpm run kit-examples && vite dev",
|
|
270
256
|
"kit-examples": "tsx ./scripts/generate-kit-examples.ts",
|
|
271
257
|
"kit-preview": "vite preview",
|
|
272
|
-
"lint": "
|
|
273
|
-
"
|
|
274
|
-
"
|
|
275
|
-
"
|
|
276
|
-
"lint:spelling": "cspell --quiet .",
|
|
277
|
-
"lint:stylelint": "stylelint './src/**/*.{css,svelte,html}'",
|
|
278
|
-
"lint:typescript": "tsc --noEmit"
|
|
258
|
+
"lint": "shared-config --check",
|
|
259
|
+
"release": "pnpm bumpp --commit 'Release: %s' --tag '%s' && pnpm publish --otp $(op read 'op://Personal/Npmjs/one-time password?attribute=otp')",
|
|
260
|
+
"rewrap": "rewrap -i --column 100 `find src \\( -name '*.svelte' -o -name '*.ts' -o -name '*.html' \\) -type f | grep -v src/examples`",
|
|
261
|
+
"type-check": "tsc --noEmit"
|
|
279
262
|
}
|
|
280
263
|
}
|
package/{README.md → readme.md}
RENAMED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
# svelte-tweakpane-ui
|
|
2
2
|
|
|
3
|
+
[](https://npmjs.com/package/svelte-tweakpane-ui)
|
|
4
|
+
[](https://kitschpatrol.com/svelte-tweakpane-ui)
|
|
5
|
+
|
|
3
6
|
## Overview
|
|
4
7
|
|
|
5
|
-
🎛️ **_Svelte Tweakpane UI_** wraps user-interface elements from the excellent [Tweakpane](https://cocopon.github.io/tweakpane/) library in a collection of 31 idiomatic, reactive, type-safe, carefully-crafted [Svelte](https://svelte.dev) components.
|
|
8
|
+
🎛️ **_Svelte Tweakpane UI_** wraps user-interface elements from the excellent [Tweakpane](https://cocopon.github.io/tweakpane/) library in a collection of 31 idiomatic, reactive, type-safe, carefully-crafted, and obsessively-documented [Svelte](https://svelte.dev) components.
|
|
6
9
|
|
|
7
|
-
The library makes it easy to quickly and declaratively add knobs and dials to your projects using components that feel like they
|
|
10
|
+
The library makes it easy to quickly and declaratively add knobs and dials to your projects using components that feel like they were made for Svelte. It also augments Tweakpane with a few [extra features](https://kitschpatrol.com/svelte-tweakpane-ui/docs/features) for your convenience and enjoyment.
|
|
8
11
|
|
|
9
12
|
[The components](https://kitschpatrol.com/svelte-tweakpane-ui/docs#components) should be useful for integrating controls and value monitoring in parametrically driven artworks or simulations.
|
|
10
13
|
|
|
14
|
+
## Demo
|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
11
18
|
## Documentation
|
|
12
19
|
|
|
13
20
|
**_Please see the documentation site for much more information:_**
|
|
@@ -28,7 +35,7 @@ npm install svelte-tweakpane-ui
|
|
|
28
35
|
import { Button } from 'svelte-tweakpane-ui';
|
|
29
36
|
</script>
|
|
30
37
|
|
|
31
|
-
<Button on:click={() => alert('
|
|
38
|
+
<Button on:click={() => alert('🎛️')} />
|
|
32
39
|
```
|
|
33
40
|
|
|
34
41
|
---
|
/package/{LICENSE → license.txt}
RENAMED
|
File without changes
|