@aviala-design/spiral 2.4.0 → 2.5.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/component-changelogs.json +80 -6
- package/dist/index.cjs +789 -576
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +75 -9
- package/dist/index.d.ts +75 -9
- package/dist/index.js +780 -562
- package/dist/index.js.map +1 -1
- package/dist/props.json +190 -2
- package/dist/styles.css +42 -14
- package/package.json +2 -2
package/dist/props.json
CHANGED
|
@@ -1802,6 +1802,17 @@
|
|
|
1802
1802
|
"defaultValue": "false",
|
|
1803
1803
|
"required": false,
|
|
1804
1804
|
"description": "Figma Checkbox `Round`"
|
|
1805
|
+
},
|
|
1806
|
+
{
|
|
1807
|
+
"name": "size",
|
|
1808
|
+
"type": "\"default\" | \"huge\"",
|
|
1809
|
+
"values": [
|
|
1810
|
+
"default",
|
|
1811
|
+
"huge"
|
|
1812
|
+
],
|
|
1813
|
+
"defaultValue": "default",
|
|
1814
|
+
"required": false,
|
|
1815
|
+
"description": "Figma Checkbox `Size`"
|
|
1805
1816
|
}
|
|
1806
1817
|
],
|
|
1807
1818
|
"parts": [
|
|
@@ -1839,6 +1850,17 @@
|
|
|
1839
1850
|
"required": false,
|
|
1840
1851
|
"description": "Figma Checkbox `Round`"
|
|
1841
1852
|
},
|
|
1853
|
+
{
|
|
1854
|
+
"name": "size",
|
|
1855
|
+
"type": "\"default\" | \"huge\"",
|
|
1856
|
+
"values": [
|
|
1857
|
+
"default",
|
|
1858
|
+
"huge"
|
|
1859
|
+
],
|
|
1860
|
+
"defaultValue": "default",
|
|
1861
|
+
"required": false,
|
|
1862
|
+
"description": "Figma Checkbox `Size`"
|
|
1863
|
+
},
|
|
1842
1864
|
{
|
|
1843
1865
|
"name": "description",
|
|
1844
1866
|
"type": "ReactNode",
|
|
@@ -3686,7 +3708,17 @@
|
|
|
3686
3708
|
],
|
|
3687
3709
|
"defaultValue": "default",
|
|
3688
3710
|
"required": false,
|
|
3689
|
-
"description": "Visual skin of the surface:\n- `default` — light bordered panel (select-menu aligned), text typography, stroked caret.\n- `tooltip` — shared inverted tooltip skin (dark, caption text, borderless, solid caret).\n- `primary` — brand primary surface with white text, borderless, solid caret."
|
|
3711
|
+
"description": "Visual skin of the surface:\n- `default` — light bordered panel (select-menu aligned), text typography, stroked caret.\n- `tooltip` — shared inverted tooltip skin (dark, caption text by default, borderless, solid caret).\n- `primary` — brand primary surface with white text, borderless, solid caret."
|
|
3712
|
+
},
|
|
3713
|
+
{
|
|
3714
|
+
"name": "level",
|
|
3715
|
+
"type": "\"caption\" | \"text\"",
|
|
3716
|
+
"values": [
|
|
3717
|
+
"caption",
|
|
3718
|
+
"text"
|
|
3719
|
+
],
|
|
3720
|
+
"required": false,
|
|
3721
|
+
"description": "Typography level for the surface copy.\nDefaults to `caption` for `appearance=\"tooltip\"`, otherwise `text`."
|
|
3690
3722
|
}
|
|
3691
3723
|
]
|
|
3692
3724
|
},
|
|
@@ -3908,6 +3940,32 @@
|
|
|
3908
3940
|
"description": "",
|
|
3909
3941
|
"props": [],
|
|
3910
3942
|
"parts": [
|
|
3943
|
+
{
|
|
3944
|
+
"displayName": "TooltipProvider",
|
|
3945
|
+
"description": "Provides shared hover-delay state for nested Tooltips.\nPass `delayDuration={0}` for instant open on hover.",
|
|
3946
|
+
"props": [
|
|
3947
|
+
{
|
|
3948
|
+
"name": "delayDuration",
|
|
3949
|
+
"type": "number",
|
|
3950
|
+
"defaultValue": "300",
|
|
3951
|
+
"required": false,
|
|
3952
|
+
"description": "Delay before the tooltip opens on hover, in ms.\nDefaults to `TOOLTIP_DELAY_DURATION` (300). Pass `0` for instant open on hover."
|
|
3953
|
+
},
|
|
3954
|
+
{
|
|
3955
|
+
"name": "skipDelayDuration",
|
|
3956
|
+
"type": "number",
|
|
3957
|
+
"defaultValue": "0",
|
|
3958
|
+
"required": false,
|
|
3959
|
+
"description": "When moving between tooltips, skip the open delay within this window (ms)."
|
|
3960
|
+
},
|
|
3961
|
+
{
|
|
3962
|
+
"name": "disableHoverableContent",
|
|
3963
|
+
"type": "boolean",
|
|
3964
|
+
"required": false,
|
|
3965
|
+
"description": "When true, hovering the tooltip content itself does not keep it open."
|
|
3966
|
+
}
|
|
3967
|
+
]
|
|
3968
|
+
},
|
|
3911
3969
|
{
|
|
3912
3970
|
"displayName": "TooltipTrigger",
|
|
3913
3971
|
"description": "",
|
|
@@ -3936,11 +3994,128 @@
|
|
|
3936
3994
|
"defaultValue": "true",
|
|
3937
3995
|
"required": false,
|
|
3938
3996
|
"description": "Show a caret arrow pointing at the trigger (default true)."
|
|
3997
|
+
},
|
|
3998
|
+
{
|
|
3999
|
+
"name": "level",
|
|
4000
|
+
"type": "\"caption\" | \"text\"",
|
|
4001
|
+
"values": [
|
|
4002
|
+
"caption",
|
|
4003
|
+
"text"
|
|
4004
|
+
],
|
|
4005
|
+
"defaultValue": "caption",
|
|
4006
|
+
"required": false,
|
|
4007
|
+
"description": "Typography level for the surface copy.\nFigma default is `caption`; pass `text` for body-sized tooltip copy."
|
|
3939
4008
|
}
|
|
3940
4009
|
]
|
|
3941
4010
|
}
|
|
3942
4011
|
]
|
|
3943
4012
|
},
|
|
4013
|
+
"ResponsiveTooltip": {
|
|
4014
|
+
"displayName": "ResponsiveTooltip",
|
|
4015
|
+
"description": "Tooltip with a mobile-friendly trigger.\n\nRadix Tooltip is hover/focus only and deliberately ignores touch, so it has\nno trigger on phones. `ResponsiveTooltip` renders the SAME content through the\nright primitive for the device:\n- Desktop (`pointer: fine`): Radix Tooltip — opens on hover and keyboard focus.\n- Touch (`pointer: coarse`): Radix Popover with `appearance=\"tooltip\"` — opens on\n tap, dismisses on outside tap / Escape, but keeps the tooltip visual skin\n (dark surface, caption text, solid caret) so it looks identical to desktop.\n\nThe consumer API and the look are unchanged between devices; only the trigger\ngesture differs. Animations are handled by the respective effect CSS\n(tooltip-effects / popover-effects), so direction-aware scale-in/out works on\nboth branches.",
|
|
4016
|
+
"props": [
|
|
4017
|
+
{
|
|
4018
|
+
"name": "content",
|
|
4019
|
+
"type": "ReactNode",
|
|
4020
|
+
"required": true,
|
|
4021
|
+
"description": "Tooltip body — the same content is shown on desktop (hover) and touch (tap)."
|
|
4022
|
+
},
|
|
4023
|
+
{
|
|
4024
|
+
"name": "children",
|
|
4025
|
+
"type": "ReactNode",
|
|
4026
|
+
"required": true,
|
|
4027
|
+
"description": "The trigger element. Rendered with `asChild`, so pass a single element."
|
|
4028
|
+
},
|
|
4029
|
+
{
|
|
4030
|
+
"name": "side",
|
|
4031
|
+
"type": "\"top\" | \"right\" | \"bottom\" | \"left\"",
|
|
4032
|
+
"values": [
|
|
4033
|
+
"top",
|
|
4034
|
+
"right",
|
|
4035
|
+
"bottom",
|
|
4036
|
+
"left"
|
|
4037
|
+
],
|
|
4038
|
+
"defaultValue": "top",
|
|
4039
|
+
"required": false,
|
|
4040
|
+
"description": "Preferred placement of the floating content."
|
|
4041
|
+
},
|
|
4042
|
+
{
|
|
4043
|
+
"name": "align",
|
|
4044
|
+
"type": "\"start\" | \"center\" | \"end\"",
|
|
4045
|
+
"values": [
|
|
4046
|
+
"start",
|
|
4047
|
+
"center",
|
|
4048
|
+
"end"
|
|
4049
|
+
],
|
|
4050
|
+
"defaultValue": "center",
|
|
4051
|
+
"required": false,
|
|
4052
|
+
"description": "Cross-axis alignment relative to the trigger."
|
|
4053
|
+
},
|
|
4054
|
+
{
|
|
4055
|
+
"name": "sideOffset",
|
|
4056
|
+
"type": "number",
|
|
4057
|
+
"defaultValue": "4",
|
|
4058
|
+
"required": false,
|
|
4059
|
+
"description": "Gap between trigger and content, in px."
|
|
4060
|
+
},
|
|
4061
|
+
{
|
|
4062
|
+
"name": "collisionPadding",
|
|
4063
|
+
"type": "number",
|
|
4064
|
+
"defaultValue": "8",
|
|
4065
|
+
"required": false,
|
|
4066
|
+
"description": "Distance from viewport edges before collision flipping, in px."
|
|
4067
|
+
},
|
|
4068
|
+
{
|
|
4069
|
+
"name": "showArrow",
|
|
4070
|
+
"type": "boolean",
|
|
4071
|
+
"defaultValue": "true",
|
|
4072
|
+
"required": false,
|
|
4073
|
+
"description": "Show the caret arrow pointing at the trigger."
|
|
4074
|
+
},
|
|
4075
|
+
{
|
|
4076
|
+
"name": "level",
|
|
4077
|
+
"type": "\"caption\" | \"text\"",
|
|
4078
|
+
"values": [
|
|
4079
|
+
"caption",
|
|
4080
|
+
"text"
|
|
4081
|
+
],
|
|
4082
|
+
"defaultValue": "caption",
|
|
4083
|
+
"required": false,
|
|
4084
|
+
"description": "Typography level for the content surface (default `caption`)."
|
|
4085
|
+
},
|
|
4086
|
+
{
|
|
4087
|
+
"name": "delayDuration",
|
|
4088
|
+
"type": "number",
|
|
4089
|
+
"defaultValue": "300",
|
|
4090
|
+
"required": false,
|
|
4091
|
+
"description": "Hover open delay on desktop, in ms (ignored on touch).\nDefaults to 300 (`TOOLTIP_DELAY_DURATION`). Pass `0` for instant open on hover.\nRequires a TooltipProvider ancestor for shared delay context."
|
|
4092
|
+
},
|
|
4093
|
+
{
|
|
4094
|
+
"name": "open",
|
|
4095
|
+
"type": "boolean",
|
|
4096
|
+
"required": false,
|
|
4097
|
+
"description": "Controlled open state."
|
|
4098
|
+
},
|
|
4099
|
+
{
|
|
4100
|
+
"name": "defaultOpen",
|
|
4101
|
+
"type": "boolean",
|
|
4102
|
+
"required": false,
|
|
4103
|
+
"description": "Uncontrolled initial open state."
|
|
4104
|
+
},
|
|
4105
|
+
{
|
|
4106
|
+
"name": "onOpenChange",
|
|
4107
|
+
"type": "(open: boolean) => void",
|
|
4108
|
+
"required": false,
|
|
4109
|
+
"description": "Open-state change callback."
|
|
4110
|
+
},
|
|
4111
|
+
{
|
|
4112
|
+
"name": "contentClassName",
|
|
4113
|
+
"type": "string",
|
|
4114
|
+
"required": false,
|
|
4115
|
+
"description": "Extra class on the inner content surface."
|
|
4116
|
+
}
|
|
4117
|
+
]
|
|
4118
|
+
},
|
|
3944
4119
|
"Loading": {
|
|
3945
4120
|
"displayName": "Loading",
|
|
3946
4121
|
"description": "",
|
|
@@ -4300,6 +4475,19 @@
|
|
|
4300
4475
|
"defaultValue": "default",
|
|
4301
4476
|
"required": false,
|
|
4302
4477
|
"description": "Figma `Type` — single thumb vs range (two thumbs)"
|
|
4478
|
+
},
|
|
4479
|
+
{
|
|
4480
|
+
"name": "showValueTooltip",
|
|
4481
|
+
"type": "boolean",
|
|
4482
|
+
"defaultValue": "false",
|
|
4483
|
+
"required": false,
|
|
4484
|
+
"description": "When true, hovering a thumb (and while dragging it) shows a value\ntooltip bound to that thumb."
|
|
4485
|
+
},
|
|
4486
|
+
{
|
|
4487
|
+
"name": "formatValueTooltip",
|
|
4488
|
+
"type": "(value: number, index: number) => ReactNode",
|
|
4489
|
+
"required": false,
|
|
4490
|
+
"description": "Format the value tooltip label. Defaults to `String(value)`."
|
|
4303
4491
|
}
|
|
4304
4492
|
]
|
|
4305
4493
|
},
|
|
@@ -4947,7 +5135,7 @@
|
|
|
4947
5135
|
},
|
|
4948
5136
|
{
|
|
4949
5137
|
"name": "checkboxProps",
|
|
4950
|
-
"type": "Omit<Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & { round?: boolean; } & RefAttributes
|
|
5138
|
+
"type": "Omit<Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & { round?: boolean; size?: CheckboxSize; } & RefAttributes<...>, \"ref\">",
|
|
4951
5139
|
"required": false,
|
|
4952
5140
|
"description": ""
|
|
4953
5141
|
}
|
package/dist/styles.css
CHANGED
|
@@ -410,12 +410,23 @@
|
|
|
410
410
|
--input-border: var(--input-border-activated);
|
|
411
411
|
--input-bg: var(--input-bg-activated);
|
|
412
412
|
|
|
413
|
+
/* Figma Size=Default → size-big; Size=Huge → size-large */
|
|
413
414
|
--checkbox-size: var(--size-big, 1.25rem);
|
|
414
|
-
--checkbox-
|
|
415
|
+
--checkbox-size-huge: var(--size-large, 1.625rem);
|
|
416
|
+
--checkbox-radius: var(--border-radius-extra-small-2, 6px);
|
|
417
|
+
--checkbox-radius-huge: var(--border-radius-small, 8px);
|
|
415
418
|
--checkbox-radius-round: var(--border-radius-allround, 99px);
|
|
416
419
|
--checkbox-icon-size: 0.75rem;
|
|
420
|
+
--checkbox-icon-size-huge: 0.875rem;
|
|
417
421
|
--checkbox-indeterminate-mark-size: 0.75rem;
|
|
422
|
+
--checkbox-indeterminate-mark-size-huge: 0.875rem;
|
|
418
423
|
--checkbox-indeterminate-mark-radius: var(--border-radius-extra-small-2, 6px);
|
|
424
|
+
/* Check / uncheck motion (CSS transitions — interruptible) */
|
|
425
|
+
--checkbox-check-stroke: 1.4px;
|
|
426
|
+
--checkbox-check-stroke-huge: 2px;
|
|
427
|
+
--checkbox-check-duration: 300ms;
|
|
428
|
+
--checkbox-check-easing: cubic-bezier(0.873, 0, 0, 1);
|
|
429
|
+
--checkbox-surface-easing: ease;
|
|
419
430
|
--checkbox-bg-unchecked: var(--control-control-normal-lightbackground-whiteonly, #fefcfc);
|
|
420
431
|
--checkbox-border-unchecked: var(--border-border-normal-primary, #e2e0e0);
|
|
421
432
|
--checkbox-checked-bg: var(--control-control-theme-background, var(--button-primary-bg));
|
|
@@ -703,7 +714,8 @@
|
|
|
703
714
|
--navigation-rail-width: 3px;
|
|
704
715
|
--navigation-indicator-width-horizontal: 50px;
|
|
705
716
|
--navigation-transition-duration: var(--switch-transition-duration, 0.3s);
|
|
706
|
-
|
|
717
|
+
/* Snappy ease-out: most travel happens early, then settles hard. */
|
|
718
|
+
--navigation-transition-easing: cubic-bezier(0.16, 1, 0.3, 1);
|
|
707
719
|
--navigation-icon-box: var(--line-height-regular, 1.125rem);
|
|
708
720
|
--navigation-icon-size: var(--icon-size-text-bigger, var(--size-middle, 1rem));
|
|
709
721
|
--navigation-item-hover-bg: var(--button-no-bg-custom-hover);
|
|
@@ -804,22 +816,38 @@
|
|
|
804
816
|
--focus-transition-duration: 250ms;
|
|
805
817
|
--focus-transition-easing: ease;
|
|
806
818
|
|
|
807
|
-
/* Slider — Figma Information Collect → Slider (384:
|
|
808
|
-
--slider-width:
|
|
809
|
-
--slider-track-height:
|
|
810
|
-
--slider-track-height-big:
|
|
811
|
-
--slider-thumb-size:
|
|
812
|
-
--slider-thumb-size-big:
|
|
819
|
+
/* Slider — Figma Information Collect → Slider (384:21585) */
|
|
820
|
+
--slider-width: 96px;
|
|
821
|
+
--slider-track-height: 6px;
|
|
822
|
+
--slider-track-height-big: 10px;
|
|
823
|
+
--slider-thumb-size: 14px;
|
|
824
|
+
--slider-thumb-size-big: 16px;
|
|
825
|
+
--slider-thumb-core-size: 8px;
|
|
826
|
+
--slider-thumb-core-size-big: 10px;
|
|
827
|
+
--slider-thumb-hover-scale: 1.18;
|
|
828
|
+
--slider-thumb-press-scale: 0.92;
|
|
829
|
+
--slider-thumb-scale-transition-duration: 0.15s;
|
|
830
|
+
/* Click / keyboard value jumps — off while data-dragging */
|
|
831
|
+
--slider-value-transition-duration: 0.22s;
|
|
832
|
+
--slider-value-transition-easing: cubic-bezier(0.22, 1, 0.36, 1);
|
|
813
833
|
--slider-pad-y: var(--padding-tinyer, 3px);
|
|
814
|
-
|
|
815
|
-
|
|
834
|
+
/* Default & Big tracks share fill tokens; Big only differs by height/thumb.
|
|
835
|
+
* Track fill ON: border-normal-primary; OFF: border-normal-light. No stroke. */
|
|
836
|
+
--slider-track-bg: var(--border-border-normal-primary, #e2e0e0);
|
|
816
837
|
--slider-range-bg: var(--box-box-theme-primarybackground, #ff5532);
|
|
817
838
|
--slider-thumb-bg: var(--box-box-normal-background-whiteonly, #fefcfc);
|
|
818
|
-
--slider-thumb-
|
|
819
|
-
/*
|
|
820
|
-
--slider-
|
|
839
|
+
--slider-thumb-core: var(--box-box-theme-primarybackground, #ff5532);
|
|
840
|
+
/* BasicShadow / BasicShadow-Level4WithLIne */
|
|
841
|
+
--slider-thumb-shadow:
|
|
842
|
+
0 6px 18px rgba(0, 0, 0, 0.08),
|
|
843
|
+
0 0 1px rgba(0, 0, 0, 0.2);
|
|
844
|
+
/* Availability Status=OFF */
|
|
845
|
+
--slider-track-bg-disabled: var(--border-border-normal-light, #f5f3f3);
|
|
821
846
|
--slider-range-bg-disabled: var(--box-box-theme-secondarybackground, #ffdad2);
|
|
822
|
-
--slider-thumb-
|
|
847
|
+
--slider-thumb-core-disabled: var(
|
|
848
|
+
--box-box-theme-secondarybackground,
|
|
849
|
+
#ffdad2
|
|
850
|
+
);
|
|
823
851
|
|
|
824
852
|
/* Upload — Figma Information Collect → Upload (527:56238 / 527:56237) */
|
|
825
853
|
--upload-radius: var(--border-radius-small, 8px);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aviala-design/spiral",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Spiral 2 ? Aviala Design React component library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"colord": "^2.9.3",
|
|
46
46
|
"tailwind-merge": "^3.3.1",
|
|
47
47
|
"@aviala-design/icons": "2.2.0",
|
|
48
|
-
"@aviala-design/tokens": "2.
|
|
48
|
+
"@aviala-design/tokens": "2.3.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"react": ">=18",
|