sveltekit-ui 1.1.63 → 1.1.65

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 (28) hide show
  1. package/dist/Components/Button/index.svelte +56 -42
  2. package/dist/Components/Button/index.svelte.js +36 -3
  3. package/dist/Components/Chart/index.svelte +1 -0
  4. package/dist/Components/Chart/index.svelte.js +136 -44
  5. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +27 -20
  6. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +17 -7
  7. package/dist/Components/Checkbox/index.svelte +0 -1
  8. package/dist/Components/FileInput/index.svelte +3 -3
  9. package/dist/Components/FileInput/index.svelte.js +42 -18
  10. package/dist/Components/Layout/index.svelte.js +6 -2
  11. package/dist/Components/Link/index.svelte.js +2 -5
  12. package/dist/Components/TextInput/index.svelte.js +1 -1
  13. package/dist/client/docs/index.js +48 -0
  14. package/package.json +3 -3
  15. package/src/lib/Components/Button/index.svelte +56 -42
  16. package/src/lib/Components/Button/index.svelte.js +36 -3
  17. package/src/lib/Components/Chart/index.svelte +1 -0
  18. package/src/lib/Components/Chart/index.svelte.js +136 -44
  19. package/src/lib/Components/ChartInput/DisplayNav/Klines/index.svelte +27 -20
  20. package/src/lib/Components/ChartInput/DisplayNav/Lines/index.svelte +17 -7
  21. package/src/lib/Components/Checkbox/index.svelte +0 -1
  22. package/src/lib/Components/FileInput/index.svelte +3 -3
  23. package/src/lib/Components/FileInput/index.svelte.js +42 -18
  24. package/src/lib/Components/Layout/index.svelte.js +6 -2
  25. package/src/lib/Components/Link/index.svelte.js +2 -5
  26. package/src/lib/Components/TextInput/index.svelte.js +1 -1
  27. package/src/lib/client/docs/index.js +48 -0
  28. package/src/routes/+page.svelte +1 -5
@@ -18,7 +18,8 @@
18
18
  : manager?.border_radius - manager?.pt}rem;"
19
19
  class="container"
20
20
  >
21
- <button
21
+ <svelte:element
22
+ this={manager?.element_tag}
22
23
  id={`button_${manager?.id}`}
23
24
  style="
24
25
  --min_width: {manager?.min_width ? manager?.min_width + 'rem' : 0};
@@ -92,14 +93,21 @@
92
93
  !manager?.selected_type &&
93
94
  manager?.selected_type == "half_selected"}
94
95
  class:border={!!manager?.border_color}
95
- popovertarget={manager?.popover_target}
96
+ class:is_disabled={manager?.is_action_disabled}
97
+ href={manager?.is_link ? manager?.href : undefined}
98
+ target={manager?.is_link ? manager?.target : undefined}
99
+ rel={manager?.is_link ? manager?.rel : undefined}
100
+ download={manager?.is_link ? manager?.download : undefined}
101
+ popovertarget={manager?.is_link ? undefined : manager?.popover_target}
96
102
  tabindex={manager?.tabindex}
97
- disabled={manager?.is_disabled || manager?.is_loading || manager?.is_success || manager?.is_error}
103
+ disabled={manager?.is_link ? undefined : manager?.is_action_disabled}
98
104
  onclick={(e) => manager?.handle_click(e)}
99
105
  onpointerdown={(e) => manager?.pointer_down(e)}
100
106
  onpointerenter={(e) => manager?.pointer_enter(e)}
101
107
  onpointerleave={(e) => manager?.pointer_leave(e)}
108
+ role={manager?.is_link ? "link" : "button"}
102
109
  aria-label={manager?.aria_label}
110
+ aria-disabled={manager?.is_link && manager?.is_action_disabled ? "true" : undefined}
103
111
  >
104
112
  {#if manager?.support_icon && manager?.icon_pos == "left" && !manager?.is_uniform}
105
113
  <div
@@ -171,7 +179,7 @@
171
179
  <ErrorX sw={50} color="oklch(var(--l{manager?.type == 'primary' ? 20 : 8}-t) var(--c24) var(--h2))" />
172
180
  </div>
173
181
  {/if}
174
- </button>
182
+ </svelte:element>
175
183
  </div>
176
184
  {/if}
177
185
 
@@ -197,10 +205,16 @@
197
205
  width: var(--base_width);
198
206
  overflow: hidden;
199
207
  text-overflow: ellipsis;
208
+ box-sizing: border-box;
209
+ font-family: inherit;
210
+ text-decoration: none;
200
211
  }
201
- .base:not(:disabled) {
212
+ .base:not(:disabled):not(.is_disabled) {
202
213
  cursor: pointer;
203
214
  }
215
+ .is_disabled {
216
+ cursor: default;
217
+ }
204
218
  .base:focus-visible {
205
219
  outline: 1px solid var(--selected-t);
206
220
  outline-offset: -1px;
@@ -238,7 +252,7 @@
238
252
  .supporting_icon_right {
239
253
  right: var(--pt);
240
254
  }
241
- .cursor_move {
255
+ .cursor_move:not(.is_disabled) {
242
256
  cursor: move;
243
257
  }
244
258
  .text_align_center {
@@ -281,7 +295,7 @@
281
295
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
282
296
  color: var(--contrast_color);
283
297
  }
284
- .primary:hover:enabled:not(:active) {
298
+ .primary:hover:not(.is_disabled):not(:active) {
285
299
  background: linear-gradient(
286
300
  var(--gradient_turn),
287
301
  oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.02) h),
@@ -292,7 +306,7 @@
292
306
  0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
293
307
  color: oklch(from var(--contrast_color) calc(l + var(--l-shift-t)) calc(c + 0.02) h);
294
308
  }
295
- .primary:active {
309
+ .primary:active:not(.is_disabled) {
296
310
  background: linear-gradient(
297
311
  var(--gradient_turn),
298
312
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h),
@@ -308,7 +322,7 @@
308
322
  );
309
323
  color: oklch(from var(--contrast_color) calc(l - var(--l-shift-t)) calc(c - 0.02) h);
310
324
  }
311
- .primary:disabled {
325
+ .primary.is_disabled {
312
326
  background: linear-gradient(
313
327
  var(--gradient_turn),
314
328
  color-mix(in oklab, var(--color), var(--g8-t) 93%),
@@ -326,7 +340,7 @@
326
340
  color: oklch(from var(--contrast_color) calc(l + 2 * var(--l-shift-t)) calc(c + 0.02) h);
327
341
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
328
342
  }
329
- .primary_selected:hover:enabled:not(:active) {
343
+ .primary_selected:hover:not(.is_disabled):not(:active) {
330
344
  background: linear-gradient(
331
345
  var(--gradient_turn),
332
346
  oklch(from var(--color) calc(l + 3 * var(--l-shift-t)) calc(c + 0.05) h),
@@ -337,7 +351,7 @@
337
351
  0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
338
352
  color: oklch(from var(--contrast_color) calc(l + var(--l-shift-t)) calc(c + 0.02) h);
339
353
  }
340
- .primary_selected:active {
354
+ .primary_selected:active:not(.is_disabled) {
341
355
  background: linear-gradient(
342
356
  var(--gradient_turn),
343
357
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h),
@@ -353,7 +367,7 @@
353
367
  );
354
368
  color: oklch(from var(--contrast_color) calc(l - var(--l-shift-t)) calc(c - 0.02) h);
355
369
  }
356
- .primary_selected:disabled {
370
+ .primary_selected.is_disabled {
357
371
  background: linear-gradient(
358
372
  var(--gradient_turn),
359
373
  color-mix(in oklab, var(--color), var(--g14-t) 95%),
@@ -371,7 +385,7 @@
371
385
  color: oklch(from var(--contrast_color) calc(l - var(--l-shift-t)) calc(c + 0.02) h);
372
386
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
373
387
  }
374
- .primary_half_selected:hover:enabled:not(:active) {
388
+ .primary_half_selected:hover:not(.is_disabled):not(:active) {
375
389
  background: linear-gradient(
376
390
  var(--gradient_turn),
377
391
  oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.05) h),
@@ -382,7 +396,7 @@
382
396
  0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
383
397
  color: oklch(from var(--contrast_color) calc(l + var(--l-shift-t)) calc(c + 0.02) h);
384
398
  }
385
- .primary_half_selected:active {
399
+ .primary_half_selected:active:not(.is_disabled) {
386
400
  background: linear-gradient(
387
401
  var(--gradient_turn),
388
402
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h),
@@ -398,7 +412,7 @@
398
412
  );
399
413
  color: oklch(from var(--contrast_color) calc(l - var(--l-shift-t)) calc(c - 0.02) h);
400
414
  }
401
- .primary_half_selected:disabled {
415
+ .primary_half_selected.is_disabled {
402
416
  background: linear-gradient(
403
417
  var(--gradient_turn),
404
418
  color-mix(in oklab, var(--color), var(--g8-t) 93%),
@@ -413,7 +427,7 @@
413
427
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
414
428
  color: var(--color);
415
429
  }
416
- .outlined:hover:enabled:not(:active) {
430
+ .outlined:hover:not(.is_disabled):not(:active) {
417
431
  background: linear-gradient(
418
432
  var(--gradient_turn),
419
433
  oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.02) h / calc(0.2 + var(--l-shift-t))),
@@ -424,7 +438,7 @@
424
438
  0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
425
439
  color: oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.02) h);
426
440
  }
427
- .outlined:active {
441
+ .outlined:active:not(.is_disabled) {
428
442
  background: linear-gradient(
429
443
  var(--gradient_turn),
430
444
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h / calc(0.4 + var(--l-shift-t))),
@@ -440,7 +454,7 @@
440
454
  );
441
455
  color: oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c - 0.02) h);
442
456
  }
443
- .outlined:disabled {
457
+ .outlined.is_disabled {
444
458
  background: linear-gradient(
445
459
  var(--gradient_turn),
446
460
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c - 0.5) h / calc(0.4 + var(--l-shift-t))),
@@ -455,7 +469,7 @@
455
469
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
456
470
  color: var(--contrast_color);
457
471
  }
458
- .outlined_selected:hover:enabled:not(:active) {
472
+ .outlined_selected:hover:not(.is_disabled):not(:active) {
459
473
  background: linear-gradient(
460
474
  var(--gradient_turn),
461
475
  oklch(from var(--color) calc(l + 2 * var(--l-shift-t)) calc(c + 0.02) h / calc(0.9 + var(--l-shift-t))),
@@ -466,7 +480,7 @@
466
480
  0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
467
481
  color: oklch(from var(--contrast_color) calc(l + var(--l-shift-t)) calc(c + 0.02) h);
468
482
  }
469
- .outlined_selected:active {
483
+ .outlined_selected:active:not(.is_disabled) {
470
484
  background: linear-gradient(
471
485
  var(--gradient_turn),
472
486
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h / calc(0.8 + var(--l-shift-t))),
@@ -482,7 +496,7 @@
482
496
  );
483
497
  color: oklch(from var(--contrast_color) calc(l - var(--l-shift-t)) calc(c - 0.02) h);
484
498
  }
485
- .outlined_selected:disabled {
499
+ .outlined_selected.is_disabled {
486
500
  background: linear-gradient(
487
501
  var(--gradient_turn),
488
502
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c - 0.5) h / calc(0.4 + var(--l-shift-t))),
@@ -502,7 +516,7 @@
502
516
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
503
517
  color: var(--color);
504
518
  }
505
- .outlined_half_selected:hover:enabled:not(:active) {
519
+ .outlined_half_selected:hover:not(.is_disabled):not(:active) {
506
520
  background: linear-gradient(
507
521
  var(--gradient_turn),
508
522
  oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.02) h / calc(0.3 + var(--l-shift-t))),
@@ -513,7 +527,7 @@
513
527
  0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
514
528
  color: oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.02) h);
515
529
  }
516
- .outlined_half_selected:active {
530
+ .outlined_half_selected:active:not(.is_disabled) {
517
531
  background: linear-gradient(
518
532
  var(--gradient_turn),
519
533
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h / calc(0.4 + var(--l-shift-t))),
@@ -529,7 +543,7 @@
529
543
  );
530
544
  color: oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c - 0.02) h);
531
545
  }
532
- .outlined_half_selected:disabled {
546
+ .outlined_half_selected.is_disabled {
533
547
  background: linear-gradient(
534
548
  var(--gradient_turn),
535
549
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c - 0.5) h / calc(0.4 + var(--l-shift-t))),
@@ -544,7 +558,7 @@
544
558
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
545
559
  color: var(--color);
546
560
  }
547
- .soft:hover:enabled:not(:active) {
561
+ .soft:hover:not(.is_disabled):not(:active) {
548
562
  background: linear-gradient(
549
563
  var(--gradient_turn),
550
564
  oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.02) h / calc(0.12 + var(--l-shift-t))),
@@ -553,7 +567,7 @@
553
567
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
554
568
  color: oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.01) h);
555
569
  }
556
- .soft:active {
570
+ .soft:active:not(.is_disabled) {
557
571
  background: linear-gradient(
558
572
  var(--gradient_turn),
559
573
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h / calc(0.2 + var(--l-shift-t))),
@@ -569,7 +583,7 @@
569
583
  );
570
584
  color: oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c - 0.01) h);
571
585
  }
572
- .soft:disabled {
586
+ .soft.is_disabled {
573
587
  background: color-mix(in oklab, var(--color), var(--shadow1-t) 95%);
574
588
  color: oklch(from var(--color) l calc(c - 0.5) h / calc(0.2 + var(--l-shift-t)));
575
589
  }
@@ -583,7 +597,7 @@
583
597
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
584
598
  color: oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.01) h);
585
599
  }
586
- .soft_selected:hover:enabled:not(:active) {
600
+ .soft_selected:hover:not(.is_disabled):not(:active) {
587
601
  background: linear-gradient(
588
602
  var(--gradient_turn),
589
603
  oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.02) h / calc(0.2 + var(--l-shift-t))),
@@ -592,7 +606,7 @@
592
606
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
593
607
  color: oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.01) h);
594
608
  }
595
- .soft_selected:active {
609
+ .soft_selected:active:not(.is_disabled) {
596
610
  background: linear-gradient(
597
611
  var(--gradient_turn),
598
612
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h / calc(0.2 + var(--l-shift-t))),
@@ -608,7 +622,7 @@
608
622
  );
609
623
  color: oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c - 0.01) h);
610
624
  }
611
- .soft_selected:disabled {
625
+ .soft_selected.is_disabled {
612
626
  background: color-mix(in oklab, var(--color), var(--shadow1-t) 95%);
613
627
  color: oklch(from var(--color) l calc(c - 0.5) h / calc(0.2 + var(--l-shift-t)));
614
628
  }
@@ -622,7 +636,7 @@
622
636
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
623
637
  color: var(--color);
624
638
  }
625
- .soft_half_selected:hover:enabled:not(:active) {
639
+ .soft_half_selected:hover:not(.is_disabled):not(:active) {
626
640
  background: linear-gradient(
627
641
  var(--gradient_turn),
628
642
  oklch(from var(--color) calc(l + var(--l-shift-t)) calc(c + 0.02) h / calc(0.15 + var(--l-shift-t))),
@@ -631,7 +645,7 @@
631
645
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
632
646
  color: oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.1) h);
633
647
  }
634
- .soft_half_selected:active {
648
+ .soft_half_selected:active:not(.is_disabled) {
635
649
  background: linear-gradient(
636
650
  var(--gradient_turn),
637
651
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h / calc(0.2 + var(--l-shift-t))),
@@ -647,7 +661,7 @@
647
661
  );
648
662
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c + 0.1) h);
649
663
  }
650
- .soft_half_selected:disabled {
664
+ .soft_half_selected.is_disabled {
651
665
  background: color-mix(in oklab, var(--color), var(--shadow1-t) 95%);
652
666
  color: oklch(from var(--color) l calc(c - 0.5) h / calc(0.2 + var(--l-shift-t)));
653
667
  }
@@ -657,17 +671,17 @@
657
671
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
658
672
  color: var(--color);
659
673
  }
660
- .plain:hover:enabled:not(:active) {
674
+ .plain:hover:not(.is_disabled):not(:active) {
661
675
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
662
676
  color: oklch(from var(--color) calc(l - 3 * var(--l-shift-t)) calc(c + 0.1) h);
663
677
  }
664
- .plain:active {
678
+ .plain:active:not(.is_disabled) {
665
679
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c + 0.1) h);
666
680
  }
667
681
  .plain_simulate_active {
668
682
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c + 0.1) h);
669
683
  }
670
- .plain:disabled {
684
+ .plain.is_disabled {
671
685
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c - 0.5) h);
672
686
  }
673
687
 
@@ -676,11 +690,11 @@
676
690
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
677
691
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c + 0.1) h);
678
692
  }
679
- .plain_selected:hover:enabled:not(:active) {
693
+ .plain_selected:hover:not(.is_disabled):not(:active) {
680
694
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
681
695
  color: oklch(from var(--color) calc(l - 1 * var(--l-shift-t)) calc(c + 0.1) h);
682
696
  }
683
- .plain_selected:active {
697
+ .plain_selected:active:not(.is_disabled) {
684
698
  background: linear-gradient(
685
699
  var(--gradient_turn),
686
700
  oklch(from var(--color) calc(l - var(--l-shift-t)) calc(c + 0.02) h / calc(0.2 + var(--l-shift-t))),
@@ -696,7 +710,7 @@
696
710
  );
697
711
  color: oklch(from var(--color) calc(l - 4 * var(--l-shift-t)) calc(c + 0.1) h);
698
712
  }
699
- .plain_selected:disabled {
713
+ .plain_selected.is_disabled {
700
714
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c - 0.5) h);
701
715
  }
702
716
 
@@ -705,17 +719,17 @@
705
719
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
706
720
  color: oklch(from var(--color) calc(l + 3 * var(--l-shift-t)) calc(c + 0.05) h);
707
721
  }
708
- .plain_half_selected:hover:enabled:not(:active) {
722
+ .plain_half_selected:hover:not(.is_disabled):not(:active) {
709
723
  box-shadow: 0 var(--hover_shadow_short_size) var(--hover_shadow_size) var(--hover_shadow_color);
710
724
  color: oklch(from var(--color) calc(l + 4 * var(--l-shift-t)) calc(c + 0.05) h);
711
725
  }
712
- .plain_half_selected:active {
726
+ .plain_half_selected:active:not(.is_disabled) {
713
727
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c - 0.02) h);
714
728
  }
715
729
  .plain_half_selected_simulate_active {
716
730
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c - 0.02) h);
717
731
  }
718
- .plain_half_selected:disabled {
732
+ .plain_half_selected.is_disabled {
719
733
  color: oklch(from var(--color) calc(l - 2 * var(--l-shift-t)) calc(c - 0.5) h);
720
734
  }
721
735
  </style>
@@ -18,6 +18,12 @@ export function create_button_manager(config) {
18
18
  let icon_movement_damping = $derived(set_closurable(config?.icon_movement_damping, 0.1))
19
19
  let aria_label = $derived(set_closurable(config?.aria_label, null))
20
20
  let popover_target = $derived(set_closurable(config?.popover_target, null))
21
+ let href = $derived(set_closurable(config?.href, null))
22
+ let target = $derived(set_closurable(config?.target, null))
23
+ let rel = $derived(set_closurable(config?.rel, target === "_blank" ? "noopener noreferrer" : null))
24
+ let download = $derived(set_closurable(config?.download, null))
25
+ let is_link = $derived(!!href && !popover_target)
26
+ let element_tag = $derived(is_link ? "a" : "button")
21
27
  let is_no_wrap = $derived(set_closurable(config?.is_no_wrap, false))
22
28
  let is_word_break_all = $derived(set_closurable(config?.is_word_break_all, false))
23
29
  let is_success_animation = $derived(set_closurable(config?.is_success_animation, false))
@@ -79,6 +85,7 @@ export function create_button_manager(config) {
79
85
  let is_error = $state(false)
80
86
  let is_success = $state(false)
81
87
  let icon_manager = $state(null)
88
+ let is_action_disabled = $derived(is_disabled || is_loading || is_success || is_error)
82
89
 
83
90
  let is_hovered = $state(false)
84
91
  let is_pointer_down = $state(false)
@@ -107,17 +114,22 @@ export function create_button_manager(config) {
107
114
  }
108
115
 
109
116
  function handle_click(e) {
117
+ if (is_action_disabled) {
118
+ e?.preventDefault?.()
119
+ e?.stopPropagation?.()
120
+ return
121
+ }
110
122
  if (is_prevent_default) {
111
- e.preventDefault()
123
+ e?.preventDefault?.()
112
124
  }
113
125
  if (is_stop_propagation) {
114
- e.stopPropagation()
126
+ e?.stopPropagation?.()
115
127
  }
116
128
  if (is_success_animation) {
117
129
  success_trigger()
118
130
  }
119
131
  if (config?.on_click) {
120
- config?.on_click()
132
+ config?.on_click(e)
121
133
  }
122
134
  }
123
135
 
@@ -238,6 +250,9 @@ export function create_button_manager(config) {
238
250
  get is_disabled() {
239
251
  return is_disabled
240
252
  },
253
+ get is_action_disabled() {
254
+ return is_action_disabled
255
+ },
241
256
  get selected_type() {
242
257
  return selected_type
243
258
  },
@@ -343,6 +358,24 @@ export function create_button_manager(config) {
343
358
  get popover_target() {
344
359
  return popover_target
345
360
  },
361
+ get href() {
362
+ return href
363
+ },
364
+ get target() {
365
+ return target
366
+ },
367
+ get rel() {
368
+ return rel
369
+ },
370
+ get download() {
371
+ return download
372
+ },
373
+ get is_link() {
374
+ return is_link
375
+ },
376
+ get element_tag() {
377
+ return element_tag
378
+ },
346
379
  get is_no_wrap() {
347
380
  return is_no_wrap
348
381
  },
@@ -107,6 +107,7 @@
107
107
  onpointermove={(e) => manager?.handle_y_axis_pointer_move(e, i)}
108
108
  onpointerup={(e) => manager?.handle_y_axis_pointer_up(e, i)}
109
109
  onpointercancel={(e) => manager?.handle_y_axis_pointer_cancel(e, i)}
110
+ onlostpointercapture={(e) => manager?.handle_y_axis_pointer_cancel(e, i)}
110
111
  onclick={() => manager?.handle_y_axis_click(i)}
111
112
  onkeypress={() => manager?.handle_y_axis_click(i)}
112
113
  >