@aviala-design/spiral 2.8.1 → 3.0.0

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/styles.css CHANGED
@@ -115,7 +115,10 @@
115
115
  :root {
116
116
  /* ALD semantic colors → runtime aviala palette steps (set by generateTheme / applyTheme) */
117
117
  --control-control-theme-background: var(--aviala-primary-primary-8, #ff5532);
118
- --control-control-theme-lightbackground: var(--aviala-primary-primary-2, #ffe9e3);
118
+ --control-control-theme-lightbackground: var(
119
+ --aviala-primary-primary-2,
120
+ #ffe9e3
121
+ );
119
122
  --box-box-theme-secondarybackground: var(--aviala-primary-primary-4, #ffc6b6);
120
123
  --box-box-theme-lightbackground: var(--aviala-primary-primary-2, #ffe9e3);
121
124
  --text-text-theme-primary-black: var(--aviala-primary-primary-10, #cd3923);
@@ -144,8 +147,10 @@
144
147
 
145
148
  /* Shared elevation — BasicShadow-Level4WithLine */
146
149
  --aviala-shadow-level4-with-line:
147
- 0 0 1px 0 rgb(0 0 0 / 18%),
148
- 0 6px 18px 0 rgba(0, 0, 0, 0.08);
150
+ 0 0 1px 0 rgb(0 0 0 / 18%), 0 6px 18px 0 rgba(0, 0, 0, 0.08);
151
+
152
+ /* Shared elevation — BasicShadow-Level5 */
153
+ --aviala-shadow-level5: 0 8px 24px 2px rgba(0, 0, 0, 0.06);
149
154
 
150
155
  /* Shared interaction surfaces — Figma Components 1909:28593 matrix */
151
156
  --aviala-interaction-ghost-hover: var(
@@ -283,28 +288,40 @@
283
288
  --button-tiny-padding-y: var(--padding-min, 2px);
284
289
  --button-tiny-radius: var(--border-radius-extra-small-2, 6px);
285
290
  --button-tiny-line-height: var(--line-height-small, 1rem);
286
- --button-tiny-icon-size: var(--icon-size-caption-bigger, var(--size-regular, 0.875rem));
291
+ --button-tiny-icon-size: var(
292
+ --icon-size-caption-bigger,
293
+ var(--size-regular, 0.875rem)
294
+ );
287
295
  --button-tiny-icon-slot-height: var(--line-height-small, 1rem);
288
296
 
289
297
  --button-small-padding-x: var(--padding-small, 6px);
290
298
  --button-small-padding-y: var(--padding-min, 2px);
291
299
  --button-small-radius: var(--border-radius-extra-small-2, 6px);
292
300
  --button-small-line-height: var(--line-height-regular, 1.125rem);
293
- --button-small-icon-size: var(--icon-size-text-bigger, var(--size-middle, 1rem));
301
+ --button-small-icon-size: var(
302
+ --icon-size-text-bigger,
303
+ var(--size-middle, 1rem)
304
+ );
294
305
  --button-small-icon-slot-height: var(--line-height-regular, 1.125rem);
295
306
 
296
307
  --button-regular-padding-x: var(--padding-middle, 10px);
297
308
  --button-regular-padding-y: var(--padding-small, 6px);
298
309
  --button-regular-radius: var(--border-radius-small, 8px);
299
310
  --button-regular-line-height: var(--line-height-regular, 1.125rem);
300
- --button-regular-icon-size: var(--icon-size-text-bigger, var(--size-middle, 1rem));
311
+ --button-regular-icon-size: var(
312
+ --icon-size-text-bigger,
313
+ var(--size-middle, 1rem)
314
+ );
301
315
  --button-regular-icon-slot-height: var(--line-height-regular, 1.125rem);
302
316
 
303
317
  --button-big-padding-x: var(--padding-big, 14px);
304
318
  --button-big-padding-y: var(--padding-default, 8px);
305
319
  --button-big-radius: var(--border-radius-small, 8px);
306
320
  --button-big-line-height: var(--line-height-regular, 1.125rem);
307
- --button-big-icon-size: var(--icon-size-text-bigger, var(--size-middle, 1rem));
321
+ --button-big-icon-size: var(
322
+ --icon-size-text-bigger,
323
+ var(--size-middle, 1rem)
324
+ );
308
325
  --button-big-icon-slot-height: var(--line-height-regular, 1.125rem);
309
326
 
310
327
  /* Segmentator — padding / line-height (height is content-driven) */
@@ -339,7 +356,10 @@
339
356
 
340
357
  --input-bg-default: var(--aviala-interaction-filled-default, #f0efef);
341
358
  --input-bg-hover: var(--aviala-interaction-filled-hover, #e5e4e3);
342
- --input-bg-activated: var(--control-control-normal-background-whiteonly, #ffffff);
359
+ --input-bg-activated: var(
360
+ --control-control-normal-background-whiteonly,
361
+ #ffffff
362
+ );
343
363
  --input-border-activated: var(--border-border-theme-primary, var(--primary));
344
364
  --input-fg: var(--text-text-normal-text-black, var(--foreground));
345
365
  --input-placeholder-opacity: var(--transparency-placeholder, 0.6);
@@ -360,21 +380,36 @@
360
380
  --input-font-size: var(--typography-text-size);
361
381
  --input-line-height: var(--typography-text-line-height);
362
382
  --input-icon-slot-height: var(--input-line-height);
363
- --input-slot-icon-size: var(--icon-size-text-bigger, var(--size-middle, 1rem));
383
+ --input-slot-icon-size: var(
384
+ --icon-size-text-bigger,
385
+ var(--size-middle, 1rem)
386
+ );
364
387
 
365
388
  --textarea-min-height-regular: 70px;
366
389
  --textarea-min-height-big: 70px;
367
390
  --textarea-min-width: var(--button-min-width, 46px);
368
391
  --textarea-radius: var(--border-radius-small, 8px);
369
- --textarea-controller-bg: var(--control-control-normal-lightbackground-1, #f0efef);
392
+ --textarea-controller-bg: var(
393
+ --control-control-normal-lightbackground-1,
394
+ #f0efef
395
+ );
370
396
  --textarea-counter-fg: var(--text-text-normal-text-caption-black, #616060);
371
397
 
372
398
  --radio-size: var(--size-big, 1.25rem);
373
399
  --radio-indicator-size: 0.5rem;
374
- --radio-bg-unchecked: var(--control-control-normal-background-whiteonly, #ffffff);
400
+ --radio-bg-unchecked: var(
401
+ --control-control-normal-background-whiteonly,
402
+ #ffffff
403
+ );
375
404
  --radio-border-unchecked: var(--border-border-normal-1, #e8e6e6);
376
- --radio-checked-bg: var(--control-control-theme-background, var(--button-primary-bg));
377
- --radio-indicator-bg: var(--control-control-normal-background-whiteonly, #ffffff);
405
+ --radio-checked-bg: var(
406
+ --control-control-theme-background,
407
+ var(--button-primary-bg)
408
+ );
409
+ --radio-indicator-bg: var(
410
+ --control-control-normal-background-whiteonly,
411
+ #ffffff
412
+ );
378
413
  --radio-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.06);
379
414
  --radio-input-gap: var(--gap-component-space, 8px);
380
415
  --radio-group-gap: var(--gap-content-space, 10px);
@@ -409,7 +444,10 @@
409
444
  --select-item-gap: var(--gap-component-space, 8px);
410
445
  --select-item-px: var(--padding-default, 8px);
411
446
  --select-item-py: var(--padding-tiny, 4px);
412
- --select-item-function-icon-size: var(--icon-size-text-bigger, var(--size-middle, 1rem));
447
+ --select-item-function-icon-size: var(
448
+ --icon-size-text-bigger,
449
+ var(--size-middle, 1rem)
450
+ );
413
451
  --select-item-function-height: var(--line-height-regular, 1.125rem);
414
452
  --select-label-font-size: var(--typography-caption-size);
415
453
  --select-label-line-height: var(--typography-caption-line-height);
@@ -475,12 +513,27 @@
475
513
  --checkbox-check-duration: 300ms;
476
514
  --checkbox-check-easing: cubic-bezier(0.873, 0, 0, 1);
477
515
  --checkbox-surface-easing: ease;
478
- --checkbox-bg-unchecked: var(--control-control-normal-background-whiteonly, #ffffff);
516
+ --checkbox-bg-unchecked: var(
517
+ --control-control-normal-background-whiteonly,
518
+ #ffffff
519
+ );
479
520
  --checkbox-border-unchecked: var(--border-border-normal-3, #d6d5d4);
480
- --checkbox-checked-bg: var(--control-control-theme-background, var(--button-primary-bg));
481
- --checkbox-checked-icon: var(--control-control-normal-background-whiteonly, #ffffff);
482
- --checkbox-indeterminate-bg: var(--box-box-theme-secondarybackground, #ffdad2);
483
- --checkbox-indeterminate-mark-bg: var(--box-box-theme-primarybackground, #ff5532);
521
+ --checkbox-checked-bg: var(
522
+ --control-control-theme-background,
523
+ var(--button-primary-bg)
524
+ );
525
+ --checkbox-checked-icon: var(
526
+ --control-control-normal-background-whiteonly,
527
+ #ffffff
528
+ );
529
+ --checkbox-indeterminate-bg: var(
530
+ --box-box-theme-secondarybackground,
531
+ #ffdad2
532
+ );
533
+ --checkbox-indeterminate-mark-bg: var(
534
+ --box-box-theme-primarybackground,
535
+ #ff5532
536
+ );
484
537
  --checkbox-input-gap: var(--gap-component-space, 8px);
485
538
  --checkbox-group-gap: var(--gap-content-space, 10px);
486
539
  --checkbox-label-fg: var(--text-text-normal-text-black, #262525);
@@ -492,24 +545,35 @@
492
545
  --switch-track-bg: var(--control-control-normal-background-3, #d6d5d4);
493
546
  --switch-hover-bg: var(--aviala-neutral-neutral-7, #c4c2c2);
494
547
  --switch-press-bg: var(--aviala-neutral-neutral-8, #afadad);
495
- --switch-checked-bg: var(--control-control-theme-background, var(--button-primary-bg));
548
+ --switch-checked-bg: var(
549
+ --control-control-theme-background,
550
+ var(--button-primary-bg)
551
+ );
496
552
  --switch-checked-bg-hover: var(--button-primary-bg-hover);
497
553
  --switch-checked-bg-active: var(--button-primary-bg-active);
498
- --switch-thumb-bg: var(--control-control-normal-background-whiteonly, #ffffff);
554
+ --switch-thumb-bg: var(
555
+ --control-control-normal-background-whiteonly,
556
+ #ffffff
557
+ );
499
558
  --switch-thumb-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.06);
500
559
  --switch-thumb-size-regular: 18px;
501
560
  --switch-thumb-size-small: 16px;
502
561
  --switch-padding: var(--padding-min, 2px);
503
562
  --switch-thumb-travel-regular: calc(
504
- var(--switch-width) - 2 * var(--switch-padding) - var(--switch-thumb-size-regular)
563
+ var(--switch-width) - 2 * var(--switch-padding) -
564
+ var(--switch-thumb-size-regular)
505
565
  );
506
566
  --switch-thumb-travel-small: calc(
507
- var(--switch-width) - 2 * var(--switch-padding) - var(--switch-thumb-size-small)
567
+ var(--switch-width) - 2 * var(--switch-padding) -
568
+ var(--switch-thumb-size-small)
508
569
  );
509
570
  --switch-transition-duration: 0.26s;
510
571
  --switch-thumb-lead-ease: cubic-bezier(0.16, 1, 0.3, 1);
511
572
  --switch-thumb-trail-ease: cubic-bezier(0.35, 0, 0.15, 1);
512
- --switch-transition-easing: var(--switch-thumb-lead-ease, cubic-bezier(0.16, 1, 0.3, 1));
573
+ --switch-transition-easing: var(
574
+ --switch-thumb-lead-ease,
575
+ cubic-bezier(0.16, 1, 0.3, 1)
576
+ );
513
577
  --switch-press-transition-duration: 0.12s;
514
578
  --switch-press-transition-easing: cubic-bezier(0.2, 0, 0.2, 1);
515
579
  --switch-track-transition-duration: 0.22s;
@@ -517,22 +581,43 @@
517
581
  --switch-disabled-opacity: 0.55;
518
582
 
519
583
  --link-fg-theme: var(--text-text-theme-primary-black, var(--button-no-bg-fg));
520
- --link-fg-custom: var(--text-text-normal-text-black, var(--button-default-custom-fg));
584
+ --link-fg-custom: var(
585
+ --text-text-normal-text-black,
586
+ var(--button-default-custom-fg)
587
+ );
521
588
 
522
589
  --segmentator-bg: var(--control-control-normal-lightbackground-1, #f0efef);
523
590
  --segmentator-bg-hover: var(--aviala-interaction-filled-hover, #e5e4e3);
524
- --segmentator-selected-bg: var(--control-control-normal-background-whiteonly, #ffffff);
525
- --segmentator-selected-fg: var(--text-text-theme-primary-black, var(--button-no-bg-fg));
526
- --segmentator-fg: var(--text-text-normal-text-black, var(--button-default-custom-fg));
527
- --segmentator-tiled-bg: var(--box-box-theme-secondarybackground, var(--button-second-bg));
591
+ --segmentator-selected-bg: var(
592
+ --control-control-normal-background-whiteonly,
593
+ #ffffff
594
+ );
595
+ --segmentator-selected-fg: var(
596
+ --text-text-theme-primary-black,
597
+ var(--button-no-bg-fg)
598
+ );
599
+ --segmentator-fg: var(
600
+ --text-text-normal-text-black,
601
+ var(--button-default-custom-fg)
602
+ );
603
+ --segmentator-tiled-bg: var(
604
+ --box-box-theme-secondarybackground,
605
+ var(--button-second-bg)
606
+ );
528
607
  --segmentator-shadow-selected: 0 4px 8px rgba(0, 0, 0, 0.06);
529
608
  --segmentator-shadow-tiled: inset 0 -0.5px 0
530
609
  var(--special-effort-se-lineshadow-bottom, rgba(0, 0, 0, 0.04));
531
610
  --segmentator-item-hover-bg: var(--aviala-interaction-filled-hover, #e5e4e3);
532
- --segmentator-item-active-bg: var(--aviala-interaction-filled-active, #d6d5d4);
611
+ --segmentator-item-active-bg: var(
612
+ --aviala-interaction-filled-active,
613
+ #d6d5d4
614
+ );
533
615
  --segmentator-press-scale: 0.98;
534
616
  --segmentator-press-height-scale: 0.88;
535
- --segmentator-press-transition-duration: var(--segmentator-transition-duration, 0.52s);
617
+ --segmentator-press-transition-duration: var(
618
+ --segmentator-transition-duration,
619
+ 0.52s
620
+ );
536
621
  --segmentator-press-transition-easing: var(
537
622
  --segmentator-transition-easing,
538
623
  cubic-bezier(0.22, 1.1, 0.36, 1)
@@ -630,19 +715,29 @@
630
715
  --datepicker-row-gap: 2px;
631
716
  --datepicker-day-radius: var(--border-radius-small, 8px);
632
717
  --datepicker-day-fg: var(--select-item-fg);
633
- --datepicker-day-fg-selected: var(--text-text-theme-primary-black, var(--select-item-selected-fg));
718
+ --datepicker-day-fg-selected: var(
719
+ --text-text-theme-primary-black,
720
+ var(--select-item-selected-fg)
721
+ );
634
722
  --datepicker-day-bg-hover: var(--select-item-highlight-bg);
635
723
  --datepicker-day-bg-in-range: var(--control-theme-lightbackground, #ffdad2);
636
724
  --datepicker-day-bg-selected: var(--control-theme-lightbackground, #ffdad2);
637
725
  --datepicker-day-today-dot: var(--text-text-theme-primary-black, #bf2300);
638
- --datepicker-footer-bg: var(--control-control-normal-lightbackground-1, #f0efef);
726
+ --datepicker-footer-bg: var(
727
+ --control-control-normal-lightbackground-1,
728
+ #f0efef
729
+ );
639
730
  --datepicker-grid-rows: 6;
640
731
  --datepicker-day-height: calc(
641
- var(--padding-min, 2px) * 2 + var(--line-height-line-height-regular, 1.125rem)
732
+ var(--padding-min, 2px) * 2 +
733
+ var(--line-height-line-height-regular, 1.125rem)
642
734
  );
643
735
  --datepicker-header-height: calc(
644
736
  var(--padding-tiny, 4px) * 3 +
645
- var(--typography-subtitle-line-height, var(--line-height-middle, 1.375rem))
737
+ var(
738
+ --typography-subtitle-line-height,
739
+ var(--line-height-middle, 1.375rem)
740
+ )
646
741
  );
647
742
  --datepicker-grid-height: calc(
648
743
  var(--datepicker-grid-rows) * var(--datepicker-day-height) +
@@ -660,9 +755,12 @@
660
755
  --datepicker-time-wheel-item-height: 36px;
661
756
  --datepicker-time-wheel-visible-count: 5;
662
757
  --datepicker-time-wheel-height: calc(
663
- var(--datepicker-time-wheel-item-height) * var(--datepicker-time-wheel-visible-count)
758
+ var(--datepicker-time-wheel-item-height) *
759
+ var(--datepicker-time-wheel-visible-count)
760
+ );
761
+ --datepicker-time-wheel-fade-height: calc(
762
+ var(--datepicker-time-wheel-item-height) * 1.5
664
763
  );
665
- --datepicker-time-wheel-fade-height: calc(var(--datepicker-time-wheel-item-height) * 1.5);
666
764
 
667
765
  --popover-content-bg: var(--popover, var(--select-menu-bg));
668
766
  --popover-content-fg: var(--popover-foreground, var(--select-item-fg));
@@ -705,7 +803,40 @@
705
803
  --modal-close-fg: var(--text-text-normal-text-caption-black, #616060);
706
804
  --modal-description-fg: var(--text-text-normal-text-caption-black, #616060);
707
805
 
708
- --tooltip-content-bg: var(--text-text-normal-text-black, var(--aviala-neutral-neutral-10, #262525));
806
+ /* Drawer — Figma Components → Drawer (2051:26823) */
807
+ --drawer-overlay-bg: rgba(0, 0, 0, 0.4);
808
+ --drawer-inset: var(--padding-large, 18px);
809
+ --drawer-content-width: 310px;
810
+ --drawer-content-max-width: calc(100vw - 36px);
811
+ --drawer-content-max-height-edge: 400px;
812
+ --drawer-content-bg: var(--box-box-normal-background-whiteonly, #ffffff);
813
+ --drawer-content-fg: var(--text-text-normal-text-black, #262525);
814
+ --drawer-content-border: var(--border-border-normal-1, #f0efef);
815
+ --drawer-content-radius: var(--border-radius-big, 12px);
816
+ --drawer-content-shadow: var(--aviala-shadow-level5);
817
+ --drawer-header-bg: var(--drawer-content-bg);
818
+ --drawer-header-pl: var(--padding-big, 14px);
819
+ --drawer-header-pr: var(--padding-small, 6px);
820
+ --drawer-header-py: var(--gap-none, 0);
821
+ --drawer-header-main-py: var(--padding-middle, 10px);
822
+ --drawer-header-gap: var(--gap-content-space, 10px);
823
+ --drawer-section-padding: var(--padding-big, 14px);
824
+ --drawer-section-border: var(--border-border-normal-1, #f0efef);
825
+ --drawer-body-bg: var(--drawer-content-bg);
826
+ --drawer-footer-bg: var(--drawer-content-bg);
827
+ --drawer-footer-actions-gap: var(--gap-component-space, 8px);
828
+ --drawer-icon-size: var(--size-semilarge, 1.375rem);
829
+ --drawer-icon-slot-size: var(--size-semilarge, 1.375rem);
830
+ --drawer-icon-py: var(--padding-min, 2px);
831
+ --drawer-icon-fg: var(--text-text-normal-text-black, #262525);
832
+ --drawer-close-icon-size: var(--size-middle, 1rem);
833
+ --drawer-close-fg: var(--text-text-normal-text-caption-black, #616060);
834
+ --drawer-description-fg: var(--text-text-normal-text-caption-black, #616060);
835
+
836
+ --tooltip-content-bg: var(
837
+ --text-text-normal-text-black,
838
+ var(--aviala-neutral-neutral-10, #262525)
839
+ );
709
840
  --tooltip-content-fg: var(
710
841
  --control-control-normal-background-whiteonly,
711
842
  var(--aviala-neutral-neutral-2, #ffffff)
@@ -810,12 +941,17 @@
810
941
  /* Snappy ease-out: most travel happens early, then settles hard. */
811
942
  --navigation-transition-easing: cubic-bezier(0.16, 1, 0.3, 1);
812
943
  --navigation-icon-box: var(--line-height-regular, 1.125rem);
813
- --navigation-icon-size: var(--icon-size-text-bigger, var(--size-middle, 1rem));
944
+ --navigation-icon-size: var(
945
+ --icon-size-text-bigger,
946
+ var(--size-middle, 1rem)
947
+ );
814
948
  --navigation-item-hover-bg: var(--button-no-bg-custom-hover);
815
949
  --navigation-actions-slot-gap: 2px;
816
950
 
817
951
  /* Loading Icon — Figma 30×30 artboard uses 2px ring (r15 − r13) */
818
952
  --loading-ring-stroke: 2px;
953
+ /* Mask luminance channel, not a theme color: white keeps the ring revealed. */
954
+ --loading-mask-reveal: #ffffff;
819
955
  --loading-fg-theme: var(
820
956
  --control-control-theme-background,
821
957
  var(--button-primary-bg)
@@ -825,7 +961,10 @@
825
961
  var(--button-no-bg-fg)
826
962
  );
827
963
  --loading-fg-black: var(--text-text-normal-text-black, #262525);
828
- --loading-fg-white: var(--control-control-normal-background-whiteonly, #ffffff);
964
+ --loading-fg-white: var(
965
+ --control-control-normal-background-whiteonly,
966
+ #ffffff
967
+ );
829
968
 
830
969
  /* Feedback — Figma Response And Feedback → Feedback (553:58620) */
831
970
  --feedback-shadow: var(--aviala-shadow-level4-with-line);
@@ -840,31 +979,67 @@
840
979
  --feedback-close-icon-size-primary: var(--size-regular, 0.875rem);
841
980
  --feedback-content-max-width: 480px;
842
981
  --feedback-title-fg-default: var(--text-text-normal-text-black, #262525);
843
- --feedback-description-fg-default: var(--text-text-normal-text-caption-black, #616060);
982
+ --feedback-description-fg-default: var(
983
+ --text-text-normal-text-caption-black,
984
+ #616060
985
+ );
844
986
  --feedback-title-fg-primary: var(--text-text-normal-text-white, #ffffff);
845
- --feedback-description-fg-primary: var(--text-text-normal-text-caption-white, #ffffff);
987
+ --feedback-description-fg-primary: var(
988
+ --text-text-normal-text-caption-white,
989
+ #ffffff
990
+ );
846
991
  --feedback-close-fg: var(--text-text-normal-text-caption-black, #616060);
847
992
  --feedback-close-fg-on-primary: var(--text-text-normal-text-white, #ffffff);
848
993
  --feedback-icon-fg-primary: var(--text-text-normal-text-white, #ffffff);
849
- --feedback-information-bg-default: var(--box-box-infomation-lightbackground, #fafbff);
850
- --feedback-information-bg-primary: var(--box-box-infomation-primarybackground, #66b6fa);
851
- --feedback-information-border: var(--border-border-infomation-primary, #66b6fa);
852
- --feedback-warning-bg-default: var(--box-box-warning-lightbackground, #fff8f5);
853
- --feedback-warning-bg-primary: var(--box-box-warning-primarybackground, #ec8b09);
994
+ --feedback-information-bg-default: var(
995
+ --box-box-infomation-lightbackground,
996
+ #fafbff
997
+ );
998
+ --feedback-information-bg-primary: var(
999
+ --box-box-infomation-primarybackground,
1000
+ #66b6fa
1001
+ );
1002
+ --feedback-information-border: var(
1003
+ --border-border-infomation-primary,
1004
+ #66b6fa
1005
+ );
1006
+ --feedback-warning-bg-default: var(
1007
+ --box-box-warning-lightbackground,
1008
+ #fff8f5
1009
+ );
1010
+ --feedback-warning-bg-primary: var(
1011
+ --box-box-warning-primarybackground,
1012
+ #ec8b09
1013
+ );
854
1014
  --feedback-warning-border: var(--border-border-warning-primary, #ec8b09);
855
1015
  --feedback-wrong-bg-default: var(--box-box-fail-lightbackground, #fff4f3);
856
1016
  --feedback-wrong-bg-primary: var(--box-box-fail-primarybackground, #f41544);
857
1017
  --feedback-wrong-border: var(--border-border-fail-primary, #f41544);
858
- --feedback-success-bg-default: var(--box-box-success-lightbackground, #f4fde9);
859
- --feedback-success-bg-primary: var(--box-box-success-primarybackground, #70b450);
1018
+ --feedback-success-bg-default: var(
1019
+ --box-box-success-lightbackground,
1020
+ #f4fde9
1021
+ );
1022
+ --feedback-success-bg-primary: var(
1023
+ --box-box-success-primarybackground,
1024
+ #70b450
1025
+ );
860
1026
  --feedback-success-border: var(--border-border-success-primary, #70b450);
861
- --feedback-normal-bg-default: var(--box-box-normal-background-whiteonly, #ffffff);
1027
+ --feedback-normal-bg-default: var(
1028
+ --box-box-normal-background-whiteonly,
1029
+ #ffffff
1030
+ );
862
1031
  --feedback-normal-border: var(--border-border-normal-1, #f0efef);
863
- --feedback-information-icon-fg: var(--text-text-infomation-primary-black, #3489c8);
1032
+ --feedback-information-icon-fg: var(
1033
+ --text-text-infomation-primary-black,
1034
+ #3489c8
1035
+ );
864
1036
  --feedback-warning-icon-fg: var(--text-text-warning-primary-black, #ab6200);
865
1037
  --feedback-wrong-icon-fg: var(--text-text-fail-primary-black, #960024);
866
1038
  --feedback-success-icon-fg: var(--text-text-success-primary-black, #47842b);
867
- --feedback-normal-icon-fg: var(--text-text-normal-text-caption-black, #616060);
1039
+ --feedback-normal-icon-fg: var(
1040
+ --text-text-normal-text-caption-black,
1041
+ #616060
1042
+ );
868
1043
 
869
1044
  /* Alert — Figma Response And Feedback → Alert (527:56855) */
870
1045
  --alert-radius: var(--border-radius-small, 8px);
@@ -876,7 +1051,10 @@
876
1051
  --alert-title-fg: var(--text-text-normal-text-black, #262525);
877
1052
  --alert-description-fg: var(--text-text-normal-text-caption-black, #616060);
878
1053
  --alert-close-fg: var(--text-text-normal-text-caption-black, #616060);
879
- --alert-secondary-action-fg: var(--text-text-normal-text-caption-black, #616060);
1054
+ --alert-secondary-action-fg: var(
1055
+ --text-text-normal-text-caption-black,
1056
+ #616060
1057
+ );
880
1058
  --alert-actions-gap: var(--gap-component-space, 8px);
881
1059
  --alert-actions-pl: 30px;
882
1060
  --alert-actions-pr: var(--gap-content-space, 10px);
@@ -893,8 +1071,14 @@
893
1071
  --alert-success-bg-default: var(--box-box-success-lightbackground, #f4fde9);
894
1072
  --alert-success-bg-light: var(--box-box-success-secondarybackground, #dff6ce);
895
1073
  --alert-success-border: var(--border-border-success-primary, #70b450);
896
- --alert-neutral-bg-default: var(--box-box-normal-background-whiteonly, #ffffff);
897
- --alert-neutral-bg-light: var(--box-box-normal-lightbackground-white, #f9f8f8);
1074
+ --alert-neutral-bg-default: var(
1075
+ --box-box-normal-background-whiteonly,
1076
+ #ffffff
1077
+ );
1078
+ --alert-neutral-bg-light: var(
1079
+ --box-box-normal-lightbackground-white,
1080
+ #f9f8f8
1081
+ );
898
1082
  --alert-neutral-border: var(--border-border-normal-1, #f0efef);
899
1083
  --alert-info-icon-fg: var(--text-text-infomation-primary-black, #3489c8);
900
1084
  --alert-warning-icon-fg: var(--text-text-warning-primary-black, #ab6200);
@@ -931,8 +1115,7 @@
931
1115
  --slider-thumb-bg: var(--box-box-normal-background-whiteonly, #ffffff);
932
1116
  --slider-thumb-core: var(--box-box-theme-primarybackground, #ff5532);
933
1117
  /* BasicShadow / BasicShadow-Level4WithLIne */
934
- --slider-thumb-shadow:
935
- var(--aviala-shadow-level4-with-line);
1118
+ --slider-thumb-shadow: var(--aviala-shadow-level4-with-line);
936
1119
  /* Availability Status=OFF */
937
1120
  --slider-track-bg-disabled: var(--border-border-normal-1, #f0efef);
938
1121
  --slider-range-bg-disabled: var(--box-box-theme-secondarybackground, #ffdad2);
@@ -949,7 +1132,10 @@
949
1132
  --upload-large-py: var(--padding-default, 8px);
950
1133
  --upload-large-bg: var(--control-control-normal-lightbackground-1, #f0efef);
951
1134
  --upload-large-fg: var(--text-text-normal-text-black, #262525);
952
- --upload-large-caption-fg: var(--text-text-normal-text-caption-black, #616060);
1135
+ --upload-large-caption-fg: var(
1136
+ --text-text-normal-text-caption-black,
1137
+ #616060
1138
+ );
953
1139
  --upload-drag-border: var(--border-border-theme-primary, #ff5532);
954
1140
  --upload-drag-bg: var(--box-box-theme-secondarybackground, #ffdad2);
955
1141
  --upload-disabled-opacity: var(--transparency-disable, 0.55);
@@ -968,8 +1154,14 @@
968
1154
  --scroll-picker-item-py: var(--padding-tiny, 4px);
969
1155
  --scroll-picker-item-radius: var(--border-radius-extra-small-2, 6px);
970
1156
  --scroll-picker-item-fg: var(--text-text-normal-text-black, #262525);
971
- --scroll-picker-item-fg-selected: var(--text-text-theme-primary-black, #bf2300);
972
- --scroll-picker-item-bg-selected: var(--control-control-theme-lightbackground, #ffdad2);
1157
+ --scroll-picker-item-fg-selected: var(
1158
+ --text-text-theme-primary-black,
1159
+ #bf2300
1160
+ );
1161
+ --scroll-picker-item-bg-selected: var(
1162
+ --control-control-theme-lightbackground,
1163
+ #ffdad2
1164
+ );
973
1165
  --scroll-picker-item-opacity: var(--transparency-placeholder, 0.6);
974
1166
  --scroll-picker-visible-count: 9;
975
1167
 
@@ -1014,7 +1206,10 @@
1014
1206
  --steps-waiting-fg: var(--text-text-infomation-primary-black, #3489c8);
1015
1207
  --steps-in-progress-bg: var(--box-box-theme-primarybackground, #ff5532);
1016
1208
  --steps-in-progress-fg: var(--text-text-theme-primary-black, #bf2300);
1017
- --steps-in-progress-icon-fg: var(--text-text-normal-text-caption-white, #ffffff);
1209
+ --steps-in-progress-icon-fg: var(
1210
+ --text-text-normal-text-caption-white,
1211
+ #ffffff
1212
+ );
1018
1213
  --steps-default-bg: var(--box-box-normal-background-whiteonly, #ffffff);
1019
1214
  --steps-default-border: var(--border-border-normal-1, #f0efef);
1020
1215
  --steps-default-fg: var(--text-text-normal-text-caption-black, #616060);
@@ -1029,7 +1224,10 @@
1029
1224
  --pagination-page-active-py: var(--padding-small, 6px);
1030
1225
  --pagination-page-radius: var(--border-radius-small, 8px);
1031
1226
  --pagination-page-fg: var(--text-text-normal-text-black, #262525);
1032
- --pagination-page-active-bg: var(--box-box-theme-secondarybackground, #ffdad2);
1227
+ --pagination-page-active-bg: var(
1228
+ --box-box-theme-secondarybackground,
1229
+ #ffdad2
1230
+ );
1033
1231
  --pagination-page-active-fg: var(--text-text-theme-primary-black, #bf2300);
1034
1232
  --pagination-jump-gap: 4px;
1035
1233
  --pagination-jump-input-width: 65px;
@@ -1053,7 +1251,10 @@
1053
1251
  --video-width: 800px;
1054
1252
  --video-height: 450px;
1055
1253
  --video-radius: var(--border-radius-big, 12px);
1056
- --video-bg: var(--normal-background-theme, var(--box-box-normal-lightbackground-white, #f9f8f8));
1254
+ --video-bg: var(
1255
+ --normal-background-theme,
1256
+ var(--box-box-normal-lightbackground-white, #f9f8f8)
1257
+ );
1057
1258
  --video-border: var(--border-border-normal-1, #f9f8f8);
1058
1259
  --video-bar-height: 46px;
1059
1260
  --video-bar-padding: var(--padding-default, 8px);
@@ -1068,7 +1269,11 @@
1068
1269
  --video-bar-light-blur: 24px;
1069
1270
  --video-bar-light-bg: color-mix(
1070
1271
  in srgb,
1071
- var(--video-bar-bg, var(--control-control-normal-lightbackground-1, #f0efef)) 72%,
1272
+ var(
1273
+ --video-bar-bg,
1274
+ var(--control-control-normal-lightbackground-1, #f0efef)
1275
+ )
1276
+ 72%,
1072
1277
  transparent
1073
1278
  );
1074
1279
  --video-settings-width: 200px;
@@ -1186,7 +1391,10 @@
1186
1391
  --typography-body-fg: var(--text-text-normal-text-black, #262525);
1187
1392
  --typography-body-fg-white: var(--text-text-normal-text-white, #ffffff);
1188
1393
  --typography-caption-fg: var(--text-text-normal-text-caption-black, #616060);
1189
- --typography-caption-fg-white: var(--text-text-normal-text-caption-white, #ffffff);
1394
+ --typography-caption-fg-white: var(
1395
+ --text-text-normal-text-caption-white,
1396
+ #ffffff
1397
+ );
1190
1398
 
1191
1399
  --typeface-gap: var(--gap-none, 0);
1192
1400
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aviala-design/spiral",
3
- "version": "2.8.1",
4
- "description": "Spiral 2 ? Aviala Design React component library",
3
+ "version": "3.0.0",
4
+ "description": "Spiral 2 — Aviala Design React component library",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -22,6 +22,12 @@
22
22
  "import": "./dist/index.js",
23
23
  "require": "./dist/index.cjs"
24
24
  },
25
+ "./form": {
26
+ "development": "./src/form.ts",
27
+ "types": "./dist/form.d.ts",
28
+ "import": "./dist/form.js",
29
+ "require": "./dist/form.cjs"
30
+ },
25
31
  "./styles.css": "./dist/styles.css",
26
32
  "./props.json": "./dist/props.json",
27
33
  "./component-changelogs.json": "./dist/component-changelogs.json"
@@ -36,7 +42,7 @@
36
42
  "@radix-ui/react-popover": "^1.1.18",
37
43
  "@radix-ui/react-radio-group": "^1.3.7",
38
44
  "@radix-ui/react-select": "^2.2.5",
39
- "@radix-ui/react-slider": "^1.4.4",
45
+ "@radix-ui/react-slider": "1.4.4",
40
46
  "@radix-ui/react-slot": "^1.2.3",
41
47
  "@radix-ui/react-switch": "^1.2.5",
42
48
  "@radix-ui/react-tooltip": "^1.2.7",
@@ -45,13 +51,18 @@
45
51
  "colord": "^2.9.3",
46
52
  "tailwind-merge": "^3.3.1",
47
53
  "@aviala-design/icons": "2.4.0",
48
- "@aviala-design/tokens": "2.5.4"
54
+ "@aviala-design/tokens": "2.6.0"
49
55
  },
50
56
  "peerDependencies": {
51
57
  "react": ">=18",
52
58
  "react-dom": ">=18",
53
59
  "react-hook-form": ">=7.50"
54
60
  },
61
+ "peerDependenciesMeta": {
62
+ "react-hook-form": {
63
+ "optional": true
64
+ }
65
+ },
55
66
  "devDependencies": {
56
67
  "@hookform/resolvers": "^5.2.1",
57
68
  "@types/react": "^19.1.8",
@@ -68,8 +79,10 @@
68
79
  "build": "tsup && node scripts/copy-css.mjs && node scripts/generate-props.mjs && node scripts/aggregate-changelogs.mjs",
69
80
  "build:styles": "node scripts/copy-css.mjs",
70
81
  "changelog:aggregate": "node scripts/aggregate-changelogs.mjs",
82
+ "changelog:check": "node scripts/check-changelog-pairing.mjs",
71
83
  "changelog:stamp": "node scripts/stamp-unreleased.mjs",
72
84
  "dev": "tsup --watch",
85
+ "lint": "eslint .",
73
86
  "test": "vitest run",
74
87
  "typecheck": "tsc --noEmit",
75
88
  "clean": "rimraf dist"