slexkit 0.3.0 → 0.3.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +4 -3
  3. package/README.zh-CN.md +4 -3
  4. package/dist/ai/llms-components.txt +2 -1
  5. package/dist/ai/llms-full.txt +85 -42
  6. package/dist/ai/llms-runtime.txt +11 -12
  7. package/dist/ai/llms.txt +1 -1
  8. package/dist/ai/slexkit-ai-manifest.json +77 -73
  9. package/dist/base.css +0 -46
  10. package/dist/components/checkbox.js +1 -0
  11. package/dist/components/choice.css +2 -2
  12. package/dist/components/display.css +1 -1
  13. package/dist/components/index.js +56 -153
  14. package/dist/components/input.css +53 -119
  15. package/dist/components/input.js +33 -143
  16. package/dist/components/radio-group.js +1 -0
  17. package/dist/components/select.css +0 -6
  18. package/dist/components/slider.css +27 -18
  19. package/dist/components/specs.js +2 -1
  20. package/dist/components/switch.css +3 -3
  21. package/dist/components/switch.js +1 -0
  22. package/dist/components/text-input.css +21 -90
  23. package/dist/components/text.js +12 -0
  24. package/dist/components/tooling.css +0 -1
  25. package/dist/runtime.cjs +67 -28
  26. package/dist/runtime.js +67 -28
  27. package/dist/slexkit.cjs +123 -181
  28. package/dist/slexkit.css +54 -167
  29. package/dist/slexkit.js +123 -181
  30. package/dist/types/engine/types.d.ts +1 -1
  31. package/dist/types/version.d.ts +2 -2
  32. package/dist/umd/slexkit.tooling.umd.js +122 -181
  33. package/dist/umd/slexkit.umd.js +123 -181
  34. package/package.json +3 -2
  35. package/skills/slexkit-host-integration/SKILL.md +1 -1
  36. package/src/components/svelte/display/Text.svelte +14 -1
  37. package/src/components/svelte/input/Checkbox.svelte +1 -1
  38. package/src/components/svelte/input/Input.svelte +0 -110
  39. package/src/components/svelte/input/RadioGroup.svelte +1 -1
  40. package/src/components/svelte/input/Switch.svelte +1 -1
  41. package/src/styles/components/choice.css +2 -2
  42. package/src/styles/components/select.css +0 -6
  43. package/src/styles/components/slider.css +27 -18
  44. package/src/styles/components/switch.css +3 -3
  45. package/src/styles/components/text-input.css +21 -90
  46. package/src/styles/display.css +1 -1
  47. package/src/styles/layout.css +0 -46
  48. package/src/styles/tooling.css +0 -1
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;
@@ -1846,7 +1800,6 @@ body[data-mobile-nav-open] {
1846
1800
  overflow: hidden;
1847
1801
  clip: rect(0 0 0 0);
1848
1802
  white-space: nowrap;
1849
- clip-path: inset(50%);
1850
1803
  }
1851
1804
 
1852
1805
  .slex-playground-error {
@@ -2365,7 +2318,7 @@ body[data-mobile-nav-open] {
2365
2318
  display: block;
2366
2319
  }
2367
2320
 
2368
- .slex-stat-character[data-stat-change] {
2321
+ .slex-stat-character[data-stat-kind="digit"][data-stat-change] {
2369
2322
  overflow: hidden;
2370
2323
  }
2371
2324
 
@@ -3210,53 +3163,62 @@ body[data-mobile-nav-open] {
3210
3163
  .slex-slider {
3211
3164
  box-sizing: border-box;
3212
3165
  width: 100%;
3213
- height: 0.5rem;
3166
+ height: 1rem;
3167
+ padding: 0;
3168
+ border: 0;
3214
3169
  border-radius: 999px;
3215
3170
  -webkit-appearance: none;
3216
3171
  appearance: none;
3217
- background: linear-gradient(
3218
- to right,
3219
- var(--primary) 0%,
3220
- var(--primary) var(--slex-slider-progress, 0%),
3221
- var(--secondary) var(--slex-slider-progress, 0%),
3222
- var(--secondary) 100%
3223
- );
3172
+ background: transparent;
3224
3173
  accent-color: var(--primary);
3225
3174
  cursor: pointer;
3175
+ overflow: visible;
3226
3176
  transition: box-shadow 150ms ease, filter 150ms ease;
3227
3177
  }
3228
3178
 
3229
- .slex-slider:hover {
3230
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
3231
- }
3232
-
3233
- .slex-slider:active {
3234
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
3235
- }
3236
-
3237
3179
  .slex-slider:focus-visible {
3238
3180
  outline: 2px solid var(--ring);
3239
3181
  outline-offset: 4px;
3240
3182
  }
3241
3183
 
3242
3184
  .slex-slider::-webkit-slider-thumb {
3185
+ box-sizing: border-box;
3243
3186
  width: 1rem;
3244
3187
  height: 1rem;
3188
+ margin-top: -0.25rem;
3245
3189
  border: 2px solid var(--primary);
3246
3190
  border-radius: 999px;
3247
- background: var(--background) !important;
3191
+ background-color: var(--background);
3192
+ background-clip: padding-box;
3248
3193
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
3249
3194
  -webkit-appearance: none;
3250
3195
  appearance: none;
3251
3196
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
3252
3197
  }
3253
3198
 
3199
+ .slex-slider::-webkit-slider-runnable-track {
3200
+ box-sizing: border-box;
3201
+ width: 100%;
3202
+ height: 0.5rem;
3203
+ border: 0;
3204
+ border-radius: 999px;
3205
+ background: linear-gradient(
3206
+ to right,
3207
+ var(--primary) 0%,
3208
+ var(--primary) var(--slex-slider-progress, 0%),
3209
+ var(--secondary) var(--slex-slider-progress, 0%),
3210
+ var(--secondary) 100%
3211
+ );
3212
+ }
3213
+
3254
3214
  .slex-slider::-moz-range-thumb {
3215
+ box-sizing: border-box;
3255
3216
  width: 1rem;
3256
3217
  height: 1rem;
3257
3218
  border: 2px solid var(--primary);
3258
3219
  border-radius: 999px;
3259
- background: var(--background) !important;
3220
+ background-color: var(--background);
3221
+ background-clip: padding-box;
3260
3222
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
3261
3223
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
3262
3224
  }
@@ -3409,12 +3371,12 @@ body[data-mobile-nav-open] {
3409
3371
  opacity: 0.55;
3410
3372
  }
3411
3373
 
3412
- .slex-switch:has(.slex-switch-input:disabled) {
3374
+ .slex-switch[data-disabled="true"] {
3413
3375
  cursor: not-allowed;
3414
3376
  }
3415
3377
 
3416
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control,
3417
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control::after {
3378
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control,
3379
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control::after {
3418
3380
  box-shadow: none;
3419
3381
  }
3420
3382
 
@@ -3467,16 +3429,18 @@ body[data-mobile-nav-open] {
3467
3429
  border: 1px solid var(--input);
3468
3430
  border-radius: var(--radius);
3469
3431
  background: var(--background);
3432
+ background-clip: padding-box;
3470
3433
  color: var(--foreground);
3471
3434
  font-family: inherit;
3472
3435
  font-size: 0.875rem;
3473
3436
  line-height: 1.5;
3474
3437
  outline: none;
3438
+ -webkit-appearance: none;
3439
+ appearance: none;
3475
3440
  transition: border-color 150ms ease, box-shadow 150ms ease;
3476
3441
  }
3477
3442
 
3478
- .slex-input-control[data-has-unit="true"] .slex-input,
3479
- .slex-input-control[data-has-controls="true"] .slex-input {
3443
+ .slex-input-control[data-has-unit="true"] .slex-input {
3480
3444
  border-top-right-radius: 0;
3481
3445
  border-bottom-right-radius: 0;
3482
3446
  }
@@ -3500,79 +3464,16 @@ body[data-mobile-nav-open] {
3500
3464
  transition: border-color 150ms ease, box-shadow 150ms ease;
3501
3465
  }
3502
3466
 
3503
- .slex-input-control[data-has-controls="true"] .slex-input-unit {
3504
- border-radius: 0;
3505
- }
3506
-
3507
- .slex-input-controls {
3508
- box-sizing: border-box;
3509
- display: inline-grid;
3510
- grid-template-rows: repeat(2, minmax(0, 1fr));
3511
- align-items: stretch;
3512
- flex: 0 0 auto;
3513
- width: 1.875rem;
3514
- min-width: 1.875rem;
3515
- min-height: 2.5625rem;
3516
- overflow: hidden;
3517
- border: 1px solid var(--input);
3518
- border-left: 0;
3519
- border-radius: 0 var(--radius) var(--radius) 0;
3520
- background: var(--background);
3521
- transition: border-color 150ms ease, box-shadow 150ms ease;
3522
- }
3523
-
3524
- .slex-input-step {
3525
- box-sizing: border-box;
3526
- display: inline-flex;
3527
- align-items: center;
3528
- justify-content: center;
3529
- width: 100%;
3530
- min-width: 0;
3531
- min-height: 0;
3532
- padding: 0;
3533
- border: 0;
3534
- border-top: 1px solid var(--input);
3535
- border-radius: 0;
3536
- background: transparent;
3537
- color: var(--foreground);
3538
- font: inherit;
3539
- font-size: 0.75rem;
3540
- font-weight: 600;
3541
- line-height: 1;
3542
- cursor: pointer;
3543
- transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
3544
- }
3545
-
3546
- .slex-input-step:first-child {
3547
- border-top: 0;
3548
- }
3549
-
3550
- .slex-input-step:last-child {
3551
- border-radius: 0;
3552
- }
3553
-
3554
- .slex-input-step:hover:not(:disabled) {
3555
- background: color-mix(in oklab, var(--muted) 52%, var(--background));
3556
- }
3557
-
3558
- .slex-input-step:focus-visible {
3559
- z-index: 1;
3560
- outline: none;
3561
- background: color-mix(in oklab, var(--muted) 58%, var(--background));
3562
- box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--ring) 34%, transparent);
3563
- }
3564
-
3565
- .slex-input-step:disabled {
3566
- opacity: 0.45;
3567
- cursor: not-allowed;
3568
- }
3569
-
3570
3467
  .slex-input::placeholder {
3571
3468
  color: var(--muted-foreground);
3572
3469
  }
3573
3470
 
3574
3471
  .slex-input:focus {
3575
3472
  border-color: var(--ring);
3473
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 18%, transparent);
3474
+ }
3475
+
3476
+ .slex-input-control[data-has-unit="true"] .slex-input:focus {
3576
3477
  box-shadow: none;
3577
3478
  }
3578
3479
 
@@ -3597,6 +3498,10 @@ body[data-mobile-nav-open] {
3597
3498
 
3598
3499
  .slex-input-field[data-invalid="true"] .slex-input:focus {
3599
3500
  border-color: var(--destructive);
3501
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
3502
+ }
3503
+
3504
+ .slex-input-field[data-invalid="true"] .slex-input-control[data-has-unit="true"] .slex-input:focus {
3600
3505
  box-shadow: none;
3601
3506
  }
3602
3507
 
@@ -3604,13 +3509,12 @@ body[data-mobile-nav-open] {
3604
3509
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
3605
3510
  }
3606
3511
 
3607
- .slex-input-control:focus-within .slex-input,
3608
- .slex-input-control:focus-within .slex-input-unit,
3609
- .slex-input-control:focus-within .slex-input-controls {
3610
- border-color: var(--ring);
3512
+ .slex-input-control:not([data-has-unit]):focus-within {
3513
+ box-shadow: none;
3611
3514
  }
3612
3515
 
3613
- .slex-input-control:focus-within .slex-input-step {
3516
+ .slex-input-control:focus-within .slex-input,
3517
+ .slex-input-control:focus-within .slex-input-unit {
3614
3518
  border-color: var(--ring);
3615
3519
  }
3616
3520
 
@@ -3619,22 +3523,16 @@ body[data-mobile-nav-open] {
3619
3523
  color: color-mix(in oklab, var(--destructive) 84%, var(--muted-foreground));
3620
3524
  }
3621
3525
 
3622
- .slex-input-field[data-invalid="true"] .slex-input-step {
3623
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
3624
- }
3625
-
3626
- .slex-input-field[data-invalid="true"] .slex-input-controls {
3627
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
3628
- }
3629
-
3630
3526
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within {
3631
3527
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
3632
3528
  }
3633
3529
 
3530
+ .slex-input-field[data-invalid="true"] .slex-input-control:not([data-has-unit]):focus-within {
3531
+ box-shadow: none;
3532
+ }
3533
+
3634
3534
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input,
3635
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit,
3636
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-controls,
3637
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-step {
3535
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit {
3638
3536
  border-color: var(--destructive);
3639
3537
  }
3640
3538
 
@@ -3648,11 +3546,6 @@ body[data-mobile-nav-open] {
3648
3546
  cursor: not-allowed;
3649
3547
  }
3650
3548
 
3651
- .slex-input[disabled] ~ .slex-input-controls,
3652
- .slex-input[readonly] ~ .slex-input-controls {
3653
- opacity: 0.6;
3654
- }
3655
-
3656
3549
  .slex-input-description {
3657
3550
  color: var(--muted-foreground);
3658
3551
  font-size: 0.75rem;
@@ -3780,7 +3673,6 @@ body[data-mobile-nav-open] {
3780
3673
  border: 0;
3781
3674
  overflow: hidden;
3782
3675
  clip: rect(0 0 0 0);
3783
- clip-path: inset(50%);
3784
3676
  white-space: nowrap;
3785
3677
  }
3786
3678
 
@@ -3839,11 +3731,6 @@ body[data-mobile-nav-open] {
3839
3731
  color: var(--accent-foreground);
3840
3732
  }
3841
3733
 
3842
- .slex-select-menu:has(.slex-select-option:hover) .slex-select-option--active:not(:hover) {
3843
- background: transparent;
3844
- color: var(--popover-foreground, var(--foreground));
3845
- }
3846
-
3847
3734
  .slex-select-option--selected {
3848
3735
  font-weight: 500;
3849
3736
  }
@@ -4282,8 +4169,8 @@ body[data-mobile-nav-open] {
4282
4169
  transform: none;
4283
4170
  }
4284
4171
 
4285
- .slex-checkbox-field:has(.slex-checkbox:disabled),
4286
- .slex-radio-field:has(.slex-radio:disabled) {
4172
+ .slex-checkbox-field[data-disabled="true"],
4173
+ .slex-radio-field[data-disabled="true"] {
4287
4174
  cursor: not-allowed;
4288
4175
  opacity: 0.65;
4289
4176
  }