slexkit 0.3.1 → 0.3.3
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/CHANGELOG.md +18 -0
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/ai/llms-full.txt +53 -21
- package/dist/ai/llms.txt +1 -1
- package/dist/ai/slexkit-ai-manifest.json +29 -29
- package/dist/base.css +0 -46
- package/dist/components/index.js +12 -10
- package/dist/components/input.css +85 -13
- package/dist/components/slider.css +56 -13
- package/dist/components/slider.js +12 -10
- package/dist/components/text-input.css +29 -0
- package/dist/runtime.cjs +46 -24
- package/dist/runtime.js +46 -24
- package/dist/slexkit.cjs +58 -34
- package/dist/slexkit.css +85 -59
- package/dist/slexkit.js +58 -34
- package/dist/types/engine/types.d.ts +1 -1
- package/dist/types/version.d.ts +2 -2
- package/dist/umd/slexkit.tooling.umd.js +57 -33
- package/dist/umd/slexkit.umd.js +58 -34
- package/package.json +1 -1
- package/src/components/svelte/input/Slider.svelte +15 -13
- package/src/styles/components/slider.css +56 -13
- package/src/styles/components/text-input.css +29 -0
- package/src/styles/layout.css +0 -46
package/dist/slexkit.css
CHANGED
|
@@ -904,52 +904,6 @@ color-scheme: dark;
|
|
|
904
904
|
box-sizing: border-box;
|
|
905
905
|
}
|
|
906
906
|
|
|
907
|
-
body[data-mobile-nav-open] {
|
|
908
|
-
overflow: hidden;
|
|
909
|
-
overscroll-behavior: contain;
|
|
910
|
-
}
|
|
911
|
-
|
|
912
|
-
#mobileNav {
|
|
913
|
-
--mobile-nav-backdrop-opacity: 0;
|
|
914
|
-
--mobile-nav-panel-translate: -100%;
|
|
915
|
-
pointer-events: none;
|
|
916
|
-
}
|
|
917
|
-
|
|
918
|
-
#mobileNav[data-open="true"] {
|
|
919
|
-
--mobile-nav-backdrop-opacity: 1;
|
|
920
|
-
--mobile-nav-panel-translate: 0px;
|
|
921
|
-
pointer-events: auto;
|
|
922
|
-
}
|
|
923
|
-
|
|
924
|
-
#mobileNav [data-mobile-nav-backdrop] {
|
|
925
|
-
opacity: var(--mobile-nav-backdrop-opacity);
|
|
926
|
-
touch-action: pan-y;
|
|
927
|
-
transition: opacity 180ms ease;
|
|
928
|
-
}
|
|
929
|
-
|
|
930
|
-
#mobileNav [data-mobile-nav-panel] {
|
|
931
|
-
transform: translateX(var(--mobile-nav-panel-translate));
|
|
932
|
-
touch-action: pan-y;
|
|
933
|
-
transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
|
|
934
|
-
will-change: transform;
|
|
935
|
-
}
|
|
936
|
-
|
|
937
|
-
#mobileNav[data-dragging="true"] [data-mobile-nav-backdrop],
|
|
938
|
-
#mobileNav[data-dragging="true"] [data-mobile-nav-panel] {
|
|
939
|
-
transition: none;
|
|
940
|
-
}
|
|
941
|
-
|
|
942
|
-
@media (prefers-reduced-motion: reduce) {
|
|
943
|
-
#mobileNav [data-mobile-nav-backdrop],
|
|
944
|
-
#mobileNav [data-mobile-nav-panel] {
|
|
945
|
-
transition: none;
|
|
946
|
-
}
|
|
947
|
-
}
|
|
948
|
-
|
|
949
|
-
.slexkit-for-wrapper {
|
|
950
|
-
display: contents;
|
|
951
|
-
}
|
|
952
|
-
|
|
953
907
|
.slexkit-source-toolbar {
|
|
954
908
|
display: flex;
|
|
955
909
|
align-items: center;
|
|
@@ -3206,22 +3160,71 @@ body[data-mobile-nav-open] {
|
|
|
3206
3160
|
font-weight: 600;
|
|
3207
3161
|
}
|
|
3208
3162
|
|
|
3163
|
+
.slex-slider-control {
|
|
3164
|
+
position: relative;
|
|
3165
|
+
box-sizing: border-box;
|
|
3166
|
+
width: 100%;
|
|
3167
|
+
height: 1rem;
|
|
3168
|
+
}
|
|
3169
|
+
|
|
3170
|
+
.slex-slider-track {
|
|
3171
|
+
position: absolute;
|
|
3172
|
+
inset-inline: 0;
|
|
3173
|
+
top: 50%;
|
|
3174
|
+
height: 0.5rem;
|
|
3175
|
+
border-radius: 999px;
|
|
3176
|
+
background: linear-gradient(
|
|
3177
|
+
to right,
|
|
3178
|
+
var(--primary) 0%,
|
|
3179
|
+
var(--primary) var(--slex-slider-progress, 0%),
|
|
3180
|
+
var(--secondary) var(--slex-slider-progress, 0%),
|
|
3181
|
+
var(--secondary) 100%
|
|
3182
|
+
);
|
|
3183
|
+
pointer-events: none;
|
|
3184
|
+
transform: translateY(-50%);
|
|
3185
|
+
}
|
|
3186
|
+
|
|
3209
3187
|
.slex-slider {
|
|
3188
|
+
position: relative;
|
|
3189
|
+
z-index: 1;
|
|
3210
3190
|
box-sizing: border-box;
|
|
3191
|
+
display: block;
|
|
3211
3192
|
width: 100%;
|
|
3212
3193
|
height: 1rem;
|
|
3194
|
+
margin: 0;
|
|
3213
3195
|
padding: 0;
|
|
3214
3196
|
border: 0;
|
|
3215
3197
|
border-radius: 999px;
|
|
3216
3198
|
-webkit-appearance: none;
|
|
3217
3199
|
appearance: none;
|
|
3218
3200
|
background: transparent;
|
|
3201
|
+
color: transparent;
|
|
3219
3202
|
accent-color: var(--primary);
|
|
3220
3203
|
cursor: pointer;
|
|
3221
3204
|
overflow: visible;
|
|
3222
3205
|
transition: box-shadow 150ms ease, filter 150ms ease;
|
|
3223
3206
|
}
|
|
3224
3207
|
|
|
3208
|
+
.slexkit-root .slex-slider-control input.slex-slider {
|
|
3209
|
+
position: relative;
|
|
3210
|
+
z-index: 1;
|
|
3211
|
+
box-sizing: border-box;
|
|
3212
|
+
display: block;
|
|
3213
|
+
width: 100%;
|
|
3214
|
+
height: 1rem;
|
|
3215
|
+
min-height: 0;
|
|
3216
|
+
margin: 0;
|
|
3217
|
+
padding: 0;
|
|
3218
|
+
border: 0;
|
|
3219
|
+
border-radius: 999px;
|
|
3220
|
+
box-shadow: none;
|
|
3221
|
+
background: transparent;
|
|
3222
|
+
color: transparent;
|
|
3223
|
+
-webkit-appearance: none;
|
|
3224
|
+
appearance: none;
|
|
3225
|
+
overflow: visible;
|
|
3226
|
+
}
|
|
3227
|
+
|
|
3225
3228
|
.slex-slider:focus-visible {
|
|
3226
3229
|
outline: 2px solid var(--ring);
|
|
3227
3230
|
outline-offset: 4px;
|
|
@@ -3231,7 +3234,7 @@ body[data-mobile-nav-open] {
|
|
|
3231
3234
|
box-sizing: border-box;
|
|
3232
3235
|
width: 1rem;
|
|
3233
3236
|
height: 1rem;
|
|
3234
|
-
margin-top:
|
|
3237
|
+
margin-top: 0;
|
|
3235
3238
|
border: 2px solid var(--primary);
|
|
3236
3239
|
border-radius: 999px;
|
|
3237
3240
|
background-color: var(--background);
|
|
@@ -3245,16 +3248,10 @@ body[data-mobile-nav-open] {
|
|
|
3245
3248
|
.slex-slider::-webkit-slider-runnable-track {
|
|
3246
3249
|
box-sizing: border-box;
|
|
3247
3250
|
width: 100%;
|
|
3248
|
-
height:
|
|
3251
|
+
height: 1rem;
|
|
3249
3252
|
border: 0;
|
|
3250
3253
|
border-radius: 999px;
|
|
3251
|
-
background:
|
|
3252
|
-
to right,
|
|
3253
|
-
var(--primary) 0%,
|
|
3254
|
-
var(--primary) var(--slex-slider-progress, 0%),
|
|
3255
|
-
var(--secondary) var(--slex-slider-progress, 0%),
|
|
3256
|
-
var(--secondary) 100%
|
|
3257
|
-
);
|
|
3254
|
+
background: transparent;
|
|
3258
3255
|
}
|
|
3259
3256
|
|
|
3260
3257
|
.slex-slider::-moz-range-thumb {
|
|
@@ -3290,16 +3287,16 @@ body[data-mobile-nav-open] {
|
|
|
3290
3287
|
}
|
|
3291
3288
|
|
|
3292
3289
|
.slex-slider::-moz-range-track {
|
|
3293
|
-
height:
|
|
3290
|
+
height: 1rem;
|
|
3294
3291
|
border: 0;
|
|
3295
3292
|
border-radius: 999px;
|
|
3296
|
-
background:
|
|
3293
|
+
background: transparent;
|
|
3297
3294
|
}
|
|
3298
3295
|
|
|
3299
3296
|
.slex-slider::-moz-range-progress {
|
|
3300
|
-
height:
|
|
3297
|
+
height: 1rem;
|
|
3301
3298
|
border-radius: 999px;
|
|
3302
|
-
background:
|
|
3299
|
+
background: transparent;
|
|
3303
3300
|
}
|
|
3304
3301
|
|
|
3305
3302
|
.slex-slider-label-text {
|
|
@@ -3486,11 +3483,40 @@ body[data-mobile-nav-open] {
|
|
|
3486
3483
|
transition: border-color 150ms ease, box-shadow 150ms ease;
|
|
3487
3484
|
}
|
|
3488
3485
|
|
|
3486
|
+
.slexkit-root .slex-input-control input.slex-input {
|
|
3487
|
+
box-sizing: border-box;
|
|
3488
|
+
display: block;
|
|
3489
|
+
flex: 1 1 auto;
|
|
3490
|
+
width: 100%;
|
|
3491
|
+
min-width: 0;
|
|
3492
|
+
min-height: 2.5625rem;
|
|
3493
|
+
height: auto;
|
|
3494
|
+
margin: 0;
|
|
3495
|
+
padding: 0.5rem 0.75rem;
|
|
3496
|
+
border: 1px solid var(--input);
|
|
3497
|
+
border-radius: var(--radius);
|
|
3498
|
+
box-shadow: none;
|
|
3499
|
+
background: var(--background);
|
|
3500
|
+
background-clip: padding-box;
|
|
3501
|
+
color: var(--foreground);
|
|
3502
|
+
font-family: inherit;
|
|
3503
|
+
font-size: 0.875rem;
|
|
3504
|
+
line-height: 1.5;
|
|
3505
|
+
outline: none;
|
|
3506
|
+
-webkit-appearance: none;
|
|
3507
|
+
appearance: none;
|
|
3508
|
+
}
|
|
3509
|
+
|
|
3489
3510
|
.slex-input-control[data-has-unit="true"] .slex-input {
|
|
3490
3511
|
border-top-right-radius: 0;
|
|
3491
3512
|
border-bottom-right-radius: 0;
|
|
3492
3513
|
}
|
|
3493
3514
|
|
|
3515
|
+
.slexkit-root .slex-input-control[data-has-unit="true"] input.slex-input {
|
|
3516
|
+
border-top-right-radius: 0;
|
|
3517
|
+
border-bottom-right-radius: 0;
|
|
3518
|
+
}
|
|
3519
|
+
|
|
3494
3520
|
.slex-input-unit {
|
|
3495
3521
|
box-sizing: border-box;
|
|
3496
3522
|
display: inline-flex;
|
package/dist/slexkit.js
CHANGED
|
@@ -396,19 +396,31 @@ function configureComponentScope(options) {
|
|
|
396
396
|
function createComponentAccessor(read) {
|
|
397
397
|
const subscribers = new Set;
|
|
398
398
|
let current = read();
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
399
|
+
let stopEffect;
|
|
400
|
+
const start = () => {
|
|
401
|
+
if (stopEffect)
|
|
402
|
+
return;
|
|
403
|
+
stopEffect = createEffect(() => {
|
|
404
404
|
current = read();
|
|
405
|
-
for (const subscriber of subscribers)
|
|
405
|
+
for (const subscriber of Array.from(subscribers))
|
|
406
406
|
subscriber(current);
|
|
407
407
|
flushDom?.();
|
|
408
408
|
});
|
|
409
|
+
};
|
|
410
|
+
const accessor = () => current;
|
|
411
|
+
accessor.subscribe = (run) => {
|
|
412
|
+
const wasIdle = subscribers.size === 0;
|
|
413
|
+
subscribers.add(run);
|
|
414
|
+
if (wasIdle)
|
|
415
|
+
start();
|
|
416
|
+
else
|
|
417
|
+
run(current);
|
|
409
418
|
return () => {
|
|
410
419
|
subscribers.delete(run);
|
|
411
|
-
|
|
420
|
+
if (subscribers.size === 0) {
|
|
421
|
+
stopEffect?.();
|
|
422
|
+
stopEffect = undefined;
|
|
423
|
+
}
|
|
412
424
|
};
|
|
413
425
|
};
|
|
414
426
|
return accessor;
|
|
@@ -1259,9 +1271,10 @@ function renderForNode(fullKey, props, container, g, components, componentTypes,
|
|
|
1259
1271
|
const renderer = getRenderer(type);
|
|
1260
1272
|
if (!renderer)
|
|
1261
1273
|
return;
|
|
1262
|
-
const
|
|
1263
|
-
|
|
1264
|
-
|
|
1274
|
+
const doc = container.ownerDocument || document;
|
|
1275
|
+
const startAnchor = doc.createComment(`slexkit-for:${fullKey}:start`);
|
|
1276
|
+
const endAnchor = doc.createComment(`slexkit-for:${fullKey}:end`);
|
|
1277
|
+
container.append(startAnchor, endAnchor);
|
|
1265
1278
|
const evalCtx = buildComponentEvalContext(g, components, componentTypes, api, forCtx);
|
|
1266
1279
|
const items = createMemo(() => trackForCollection(evalRead(props.$for, evalCtx, ns, `${fullKey}:$for`)));
|
|
1267
1280
|
const $keyProp = props.$key;
|
|
@@ -1274,8 +1287,10 @@ function renderForNode(fullKey, props, container, g, components, componentTypes,
|
|
|
1274
1287
|
disposedSlots.add(slot);
|
|
1275
1288
|
leavingSlots.delete(slot);
|
|
1276
1289
|
callHook(g, name, "onUnmount");
|
|
1277
|
-
|
|
1278
|
-
|
|
1290
|
+
if (slot.el) {
|
|
1291
|
+
disposeComponent(slot.el);
|
|
1292
|
+
slot.el.remove();
|
|
1293
|
+
}
|
|
1279
1294
|
if (slot.dispose)
|
|
1280
1295
|
slot.dispose();
|
|
1281
1296
|
};
|
|
@@ -1300,12 +1315,16 @@ function renderForNode(fullKey, props, container, g, components, componentTypes,
|
|
|
1300
1315
|
}
|
|
1301
1316
|
}
|
|
1302
1317
|
for (const slot of deletedSlots) {
|
|
1303
|
-
container.appendChild(slot.el);
|
|
1304
1318
|
leavingSlots.add(slot);
|
|
1319
|
+
if (!slot.el) {
|
|
1320
|
+
disposeSlot(slot);
|
|
1321
|
+
continue;
|
|
1322
|
+
}
|
|
1305
1323
|
applyLeaveAnimation(slot.el, slot.props, () => {
|
|
1306
1324
|
disposeSlot(slot);
|
|
1307
1325
|
});
|
|
1308
1326
|
}
|
|
1327
|
+
let cursor = startAnchor;
|
|
1309
1328
|
arr.forEach((item, index) => {
|
|
1310
1329
|
item = asReactiveValue(item, g);
|
|
1311
1330
|
const keyVal = newKeys[index];
|
|
@@ -1333,20 +1352,22 @@ function renderForNode(fullKey, props, container, g, components, componentTypes,
|
|
|
1333
1352
|
const indexSignal = createSignal(index);
|
|
1334
1353
|
const revisionSignal = createSignal(0);
|
|
1335
1354
|
slot = renderAndMountSlot(item, index, keyVal, indexSignal, revisionSignal, renderer, type, name, props, container, g, components, componentTypes, api, forCtx, ns, fullKey, options);
|
|
1336
|
-
if (slot.el) {
|
|
1337
|
-
|
|
1338
|
-
|
|
1355
|
+
if (!slot.el) {
|
|
1356
|
+
disposeSlot(slot);
|
|
1357
|
+
return;
|
|
1339
1358
|
}
|
|
1359
|
+
applyEnterAnimation(slot.el, slot.props);
|
|
1360
|
+
callHook(g, name, "onMount");
|
|
1340
1361
|
slotMap.set(keyVal, slot);
|
|
1341
1362
|
}
|
|
1342
|
-
const
|
|
1343
|
-
if (slot.el &&
|
|
1344
|
-
|
|
1363
|
+
const nextChild = cursor.nextSibling;
|
|
1364
|
+
if (slot.el && nextChild !== slot.el) {
|
|
1365
|
+
container.insertBefore(slot.el, nextChild ?? endAnchor);
|
|
1366
|
+
}
|
|
1367
|
+
if (slot.el) {
|
|
1368
|
+
cursor = slot.el;
|
|
1345
1369
|
}
|
|
1346
1370
|
});
|
|
1347
|
-
while (forWrapper.children.length > arr.length) {
|
|
1348
|
-
forWrapper.lastChild.remove();
|
|
1349
|
-
}
|
|
1350
1371
|
});
|
|
1351
1372
|
onCleanup(() => {
|
|
1352
1373
|
for (const slot of Array.from(slotMap.values()))
|
|
@@ -1354,7 +1375,8 @@ function renderForNode(fullKey, props, container, g, components, componentTypes,
|
|
|
1354
1375
|
slotMap.clear();
|
|
1355
1376
|
for (const slot of Array.from(leavingSlots))
|
|
1356
1377
|
disposeSlot(slot);
|
|
1357
|
-
|
|
1378
|
+
startAnchor.remove();
|
|
1379
|
+
endAnchor.remove();
|
|
1358
1380
|
});
|
|
1359
1381
|
}
|
|
1360
1382
|
function renderNormalNode(fullKey, props, container, g, components, componentTypes, api, forCtx, ns, options) {
|
|
@@ -1731,7 +1753,7 @@ ${parseSource}
|
|
|
1731
1753
|
var parseSlexKitDsl = parseSlexSource;
|
|
1732
1754
|
|
|
1733
1755
|
// src/version.ts
|
|
1734
|
-
var SLEXKIT_VERSION = "0.3.
|
|
1756
|
+
var SLEXKIT_VERSION = "0.3.3";
|
|
1735
1757
|
var SLEX_PROTOCOL_VERSION = "0.1";
|
|
1736
1758
|
var SLEXKIT_COMPONENTS_VERSION = SLEXKIT_VERSION;
|
|
1737
1759
|
function getSlexKitInfo() {
|
|
@@ -12138,7 +12160,7 @@ function Row($$anchor, $$props) {
|
|
|
12138
12160
|
}
|
|
12139
12161
|
|
|
12140
12162
|
// src/components/svelte/input/Slider.svelte
|
|
12141
|
-
var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <input type="range" class="slex-slider"/></div>`);
|
|
12163
|
+
var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <div class="slex-slider-control"><span class="slex-slider-track" aria-hidden="true"></span> <input type="range" class="slex-slider"/></div></div>`);
|
|
12142
12164
|
function Slider($$anchor, $$props) {
|
|
12143
12165
|
push($$props, true);
|
|
12144
12166
|
let p = state(proxy({}));
|
|
@@ -12238,30 +12260,32 @@ function Slider($$anchor, $$props) {
|
|
|
12238
12260
|
}
|
|
12239
12261
|
reset(span_2);
|
|
12240
12262
|
reset(div_1);
|
|
12241
|
-
var
|
|
12263
|
+
var div_2 = sibling(div_1, 2);
|
|
12264
|
+
var input_1 = sibling(child(div_2), 2);
|
|
12242
12265
|
remove_input_defaults(input_1);
|
|
12266
|
+
reset(div_2);
|
|
12243
12267
|
reset(div);
|
|
12244
12268
|
template_effect(($0, $1, $2, $3, $4, $5, $6, $7, $8) => {
|
|
12245
12269
|
set_attribute2(div, "data-orientation", $0);
|
|
12246
12270
|
set_text(text_1, $1);
|
|
12247
12271
|
set_text(text_2, $2);
|
|
12248
|
-
|
|
12249
|
-
set_attribute2(input_1, "
|
|
12250
|
-
set_attribute2(input_1, "
|
|
12251
|
-
|
|
12272
|
+
set_style(div_2, $3);
|
|
12273
|
+
set_attribute2(input_1, "min", $4);
|
|
12274
|
+
set_attribute2(input_1, "max", $5);
|
|
12275
|
+
set_attribute2(input_1, "step", $6);
|
|
12276
|
+
set_value(input_1, $7);
|
|
12252
12277
|
input_1.disabled = !!get2(p).disabled;
|
|
12253
|
-
set_attribute2(input_1, "aria-label", $
|
|
12254
|
-
set_style(input_1, $8);
|
|
12278
|
+
set_attribute2(input_1, "aria-label", $8);
|
|
12255
12279
|
}, [
|
|
12256
12280
|
() => text2(get2(p).orientation, "horizontal"),
|
|
12257
12281
|
() => text2(get2(p).label ?? $$props.componentName),
|
|
12258
12282
|
() => text2(get2(value) ?? 0),
|
|
12283
|
+
() => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`,
|
|
12259
12284
|
() => Number(get2(p).min ?? 0),
|
|
12260
12285
|
() => Number(get2(p).max ?? 100),
|
|
12261
12286
|
() => Number(get2(p).step ?? 1),
|
|
12262
12287
|
() => Number(get2(value) ?? 0),
|
|
12263
|
-
() => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName)
|
|
12264
|
-
() => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`
|
|
12288
|
+
() => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName)
|
|
12265
12289
|
]);
|
|
12266
12290
|
delegated("pointerdown", input_1, grabSlider);
|
|
12267
12291
|
delegated("input", input_1, (event2) => choose(Number(event2.target.value)));
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export declare const SLEXKIT_VERSION = "0.3.
|
|
1
|
+
export declare const SLEXKIT_VERSION = "0.3.3";
|
|
2
2
|
export declare const SLEX_PROTOCOL_VERSION = "0.1";
|
|
3
|
-
export declare const SLEXKIT_COMPONENTS_VERSION = "0.3.
|
|
3
|
+
export declare const SLEXKIT_COMPONENTS_VERSION = "0.3.3";
|
|
4
4
|
export declare function getSlexKitInfo(): {
|
|
5
5
|
version: string;
|
|
6
6
|
protocolVersion: string;
|
|
@@ -493,19 +493,31 @@
|
|
|
493
493
|
function createComponentAccessor(read) {
|
|
494
494
|
const subscribers = new Set;
|
|
495
495
|
let current = read();
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
496
|
+
let stopEffect;
|
|
497
|
+
const start = () => {
|
|
498
|
+
if (stopEffect)
|
|
499
|
+
return;
|
|
500
|
+
stopEffect = createEffect(() => {
|
|
501
501
|
current = read();
|
|
502
|
-
for (const subscriber of subscribers)
|
|
502
|
+
for (const subscriber of Array.from(subscribers))
|
|
503
503
|
subscriber(current);
|
|
504
504
|
flushDom?.();
|
|
505
505
|
});
|
|
506
|
+
};
|
|
507
|
+
const accessor = () => current;
|
|
508
|
+
accessor.subscribe = (run) => {
|
|
509
|
+
const wasIdle = subscribers.size === 0;
|
|
510
|
+
subscribers.add(run);
|
|
511
|
+
if (wasIdle)
|
|
512
|
+
start();
|
|
513
|
+
else
|
|
514
|
+
run(current);
|
|
506
515
|
return () => {
|
|
507
516
|
subscribers.delete(run);
|
|
508
|
-
|
|
517
|
+
if (subscribers.size === 0) {
|
|
518
|
+
stopEffect?.();
|
|
519
|
+
stopEffect = undefined;
|
|
520
|
+
}
|
|
509
521
|
};
|
|
510
522
|
};
|
|
511
523
|
return accessor;
|
|
@@ -1356,9 +1368,10 @@
|
|
|
1356
1368
|
const renderer = getRenderer(type);
|
|
1357
1369
|
if (!renderer)
|
|
1358
1370
|
return;
|
|
1359
|
-
const
|
|
1360
|
-
|
|
1361
|
-
|
|
1371
|
+
const doc = container.ownerDocument || document;
|
|
1372
|
+
const startAnchor = doc.createComment(`slexkit-for:${fullKey}:start`);
|
|
1373
|
+
const endAnchor = doc.createComment(`slexkit-for:${fullKey}:end`);
|
|
1374
|
+
container.append(startAnchor, endAnchor);
|
|
1362
1375
|
const evalCtx = buildComponentEvalContext(g, components, componentTypes, api, forCtx);
|
|
1363
1376
|
const items = createMemo(() => trackForCollection(evalRead(props.$for, evalCtx, ns, `${fullKey}:$for`)));
|
|
1364
1377
|
const $keyProp = props.$key;
|
|
@@ -1371,8 +1384,10 @@
|
|
|
1371
1384
|
disposedSlots.add(slot);
|
|
1372
1385
|
leavingSlots.delete(slot);
|
|
1373
1386
|
callHook(g, name, "onUnmount");
|
|
1374
|
-
|
|
1375
|
-
|
|
1387
|
+
if (slot.el) {
|
|
1388
|
+
disposeComponent(slot.el);
|
|
1389
|
+
slot.el.remove();
|
|
1390
|
+
}
|
|
1376
1391
|
if (slot.dispose)
|
|
1377
1392
|
slot.dispose();
|
|
1378
1393
|
};
|
|
@@ -1397,12 +1412,16 @@
|
|
|
1397
1412
|
}
|
|
1398
1413
|
}
|
|
1399
1414
|
for (const slot of deletedSlots) {
|
|
1400
|
-
container.appendChild(slot.el);
|
|
1401
1415
|
leavingSlots.add(slot);
|
|
1416
|
+
if (!slot.el) {
|
|
1417
|
+
disposeSlot(slot);
|
|
1418
|
+
continue;
|
|
1419
|
+
}
|
|
1402
1420
|
applyLeaveAnimation(slot.el, slot.props, () => {
|
|
1403
1421
|
disposeSlot(slot);
|
|
1404
1422
|
});
|
|
1405
1423
|
}
|
|
1424
|
+
let cursor = startAnchor;
|
|
1406
1425
|
arr.forEach((item, index) => {
|
|
1407
1426
|
item = asReactiveValue(item, g);
|
|
1408
1427
|
const keyVal = newKeys[index];
|
|
@@ -1430,20 +1449,22 @@
|
|
|
1430
1449
|
const indexSignal = createSignal(index);
|
|
1431
1450
|
const revisionSignal = createSignal(0);
|
|
1432
1451
|
slot = renderAndMountSlot(item, index, keyVal, indexSignal, revisionSignal, renderer, type, name, props, container, g, components, componentTypes, api, forCtx, ns, fullKey, options);
|
|
1433
|
-
if (slot.el) {
|
|
1434
|
-
|
|
1435
|
-
|
|
1452
|
+
if (!slot.el) {
|
|
1453
|
+
disposeSlot(slot);
|
|
1454
|
+
return;
|
|
1436
1455
|
}
|
|
1456
|
+
applyEnterAnimation(slot.el, slot.props);
|
|
1457
|
+
callHook(g, name, "onMount");
|
|
1437
1458
|
slotMap.set(keyVal, slot);
|
|
1438
1459
|
}
|
|
1439
|
-
const
|
|
1440
|
-
if (slot.el &&
|
|
1441
|
-
|
|
1460
|
+
const nextChild = cursor.nextSibling;
|
|
1461
|
+
if (slot.el && nextChild !== slot.el) {
|
|
1462
|
+
container.insertBefore(slot.el, nextChild ?? endAnchor);
|
|
1463
|
+
}
|
|
1464
|
+
if (slot.el) {
|
|
1465
|
+
cursor = slot.el;
|
|
1442
1466
|
}
|
|
1443
1467
|
});
|
|
1444
|
-
while (forWrapper.children.length > arr.length) {
|
|
1445
|
-
forWrapper.lastChild.remove();
|
|
1446
|
-
}
|
|
1447
1468
|
});
|
|
1448
1469
|
onCleanup(() => {
|
|
1449
1470
|
for (const slot of Array.from(slotMap.values()))
|
|
@@ -1451,7 +1472,8 @@
|
|
|
1451
1472
|
slotMap.clear();
|
|
1452
1473
|
for (const slot of Array.from(leavingSlots))
|
|
1453
1474
|
disposeSlot(slot);
|
|
1454
|
-
|
|
1475
|
+
startAnchor.remove();
|
|
1476
|
+
endAnchor.remove();
|
|
1455
1477
|
});
|
|
1456
1478
|
}
|
|
1457
1479
|
function renderNormalNode(fullKey, props, container, g, components, componentTypes, api, forCtx, ns, options) {
|
|
@@ -11134,7 +11156,7 @@ ${pad}}`;
|
|
|
11134
11156
|
}
|
|
11135
11157
|
|
|
11136
11158
|
// src/components/svelte/input/Slider.svelte
|
|
11137
|
-
var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <input type="range" class="slex-slider"/></div>`);
|
|
11159
|
+
var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <div class="slex-slider-control"><span class="slex-slider-track" aria-hidden="true"></span> <input type="range" class="slex-slider"/></div></div>`);
|
|
11138
11160
|
function Slider($$anchor, $$props) {
|
|
11139
11161
|
push($$props, true);
|
|
11140
11162
|
let p = state(proxy({}));
|
|
@@ -11234,30 +11256,32 @@ ${pad}}`;
|
|
|
11234
11256
|
}
|
|
11235
11257
|
reset(span_2);
|
|
11236
11258
|
reset(div_1);
|
|
11237
|
-
var
|
|
11259
|
+
var div_2 = sibling(div_1, 2);
|
|
11260
|
+
var input_1 = sibling(child(div_2), 2);
|
|
11238
11261
|
remove_input_defaults(input_1);
|
|
11262
|
+
reset(div_2);
|
|
11239
11263
|
reset(div);
|
|
11240
11264
|
template_effect(($0, $1, $2, $3, $4, $5, $6, $7, $8) => {
|
|
11241
11265
|
set_attribute2(div, "data-orientation", $0);
|
|
11242
11266
|
set_text(text_1, $1);
|
|
11243
11267
|
set_text(text_2, $2);
|
|
11244
|
-
|
|
11245
|
-
set_attribute2(input_1, "
|
|
11246
|
-
set_attribute2(input_1, "
|
|
11247
|
-
|
|
11268
|
+
set_style(div_2, $3);
|
|
11269
|
+
set_attribute2(input_1, "min", $4);
|
|
11270
|
+
set_attribute2(input_1, "max", $5);
|
|
11271
|
+
set_attribute2(input_1, "step", $6);
|
|
11272
|
+
set_value(input_1, $7);
|
|
11248
11273
|
input_1.disabled = !!get2(p).disabled;
|
|
11249
|
-
set_attribute2(input_1, "aria-label", $
|
|
11250
|
-
set_style(input_1, $8);
|
|
11274
|
+
set_attribute2(input_1, "aria-label", $8);
|
|
11251
11275
|
}, [
|
|
11252
11276
|
() => text2(get2(p).orientation, "horizontal"),
|
|
11253
11277
|
() => text2(get2(p).label ?? $$props.componentName),
|
|
11254
11278
|
() => text2(get2(value) ?? 0),
|
|
11279
|
+
() => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`,
|
|
11255
11280
|
() => Number(get2(p).min ?? 0),
|
|
11256
11281
|
() => Number(get2(p).max ?? 100),
|
|
11257
11282
|
() => Number(get2(p).step ?? 1),
|
|
11258
11283
|
() => Number(get2(value) ?? 0),
|
|
11259
|
-
() => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName)
|
|
11260
|
-
() => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`
|
|
11284
|
+
() => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName)
|
|
11261
11285
|
]);
|
|
11262
11286
|
delegated("pointerdown", input_1, grabSlider);
|
|
11263
11287
|
delegated("input", input_1, (event2) => choose(Number(event2.target.value)));
|