@aviala-design/spiral 0.2.0 → 2.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/index.cjs +2633 -1291
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +133 -20
- package/dist/index.d.ts +133 -20
- package/dist/index.js +2641 -1291
- package/dist/index.js.map +1 -1
- package/dist/props.json +36 -10
- package/dist/styles.css +44 -17
- package/package.json +3 -3
package/dist/props.json
CHANGED
|
@@ -186,6 +186,13 @@
|
|
|
186
186
|
"required": false,
|
|
187
187
|
"description": ""
|
|
188
188
|
},
|
|
189
|
+
{
|
|
190
|
+
"name": "equalWidth",
|
|
191
|
+
"type": "boolean",
|
|
192
|
+
"defaultValue": "false",
|
|
193
|
+
"required": false,
|
|
194
|
+
"description": "When true, the group fills its container and items split the width equally."
|
|
195
|
+
},
|
|
189
196
|
{
|
|
190
197
|
"name": "disabled",
|
|
191
198
|
"type": "boolean",
|
|
@@ -456,13 +463,6 @@
|
|
|
456
463
|
"required": false,
|
|
457
464
|
"description": ""
|
|
458
465
|
},
|
|
459
|
-
{
|
|
460
|
-
"name": "placeholder",
|
|
461
|
-
"type": "string",
|
|
462
|
-
"defaultValue": "YYYY/MM/DD",
|
|
463
|
-
"required": false,
|
|
464
|
-
"description": ""
|
|
465
|
-
},
|
|
466
466
|
{
|
|
467
467
|
"name": "rangePlaceholder",
|
|
468
468
|
"type": "string",
|
|
@@ -484,6 +484,13 @@
|
|
|
484
484
|
"required": false,
|
|
485
485
|
"description": ""
|
|
486
486
|
},
|
|
487
|
+
{
|
|
488
|
+
"name": "editable",
|
|
489
|
+
"type": "boolean",
|
|
490
|
+
"defaultValue": "true",
|
|
491
|
+
"required": false,
|
|
492
|
+
"description": "When false, shows a read-only value instead of an editable input. Default true."
|
|
493
|
+
},
|
|
487
494
|
{
|
|
488
495
|
"name": "contentClassName",
|
|
489
496
|
"type": "string",
|
|
@@ -757,7 +764,7 @@
|
|
|
757
764
|
"name": "showController",
|
|
758
765
|
"type": "boolean",
|
|
759
766
|
"required": false,
|
|
760
|
-
"description": "Figma `Controller` — character counter +
|
|
767
|
+
"description": "Figma `Controller` — character counter + SymbolResize drag handle"
|
|
761
768
|
},
|
|
762
769
|
{
|
|
763
770
|
"name": "error",
|
|
@@ -1174,7 +1181,7 @@
|
|
|
1174
1181
|
"props": [
|
|
1175
1182
|
{
|
|
1176
1183
|
"name": "label",
|
|
1177
|
-
"type": "
|
|
1184
|
+
"type": "ReactNode",
|
|
1178
1185
|
"required": false,
|
|
1179
1186
|
"description": ""
|
|
1180
1187
|
},
|
|
@@ -1192,15 +1199,34 @@
|
|
|
1192
1199
|
},
|
|
1193
1200
|
{
|
|
1194
1201
|
"name": "error",
|
|
1195
|
-
"type": "
|
|
1202
|
+
"type": "ReactNode",
|
|
1196
1203
|
"required": false,
|
|
1197
1204
|
"description": ""
|
|
1198
1205
|
},
|
|
1206
|
+
{
|
|
1207
|
+
"name": "info",
|
|
1208
|
+
"type": "ReactNode",
|
|
1209
|
+
"required": false,
|
|
1210
|
+
"description": ""
|
|
1211
|
+
},
|
|
1212
|
+
{
|
|
1213
|
+
"name": "alert",
|
|
1214
|
+
"type": "ReactNode",
|
|
1215
|
+
"required": false,
|
|
1216
|
+
"description": "Optional Alert / Feedback under the control"
|
|
1217
|
+
},
|
|
1199
1218
|
{
|
|
1200
1219
|
"name": "required",
|
|
1201
1220
|
"type": "boolean",
|
|
1202
1221
|
"required": false,
|
|
1203
1222
|
"description": ""
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"name": "direction",
|
|
1226
|
+
"type": "enum",
|
|
1227
|
+
"defaultValue": "vertical",
|
|
1228
|
+
"required": false,
|
|
1229
|
+
"description": "Figma `Direction` — vertical stacks label above control; horizontal places label beside"
|
|
1204
1230
|
}
|
|
1205
1231
|
]
|
|
1206
1232
|
},
|
package/dist/styles.css
CHANGED
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
--text-text-normal-text-black: #343333;
|
|
132
132
|
--text-text-normal-text-caption-black: #858484;
|
|
133
133
|
--text-text-normal-text-white: #fefcfc;
|
|
134
|
-
--text-text-normal-text-caption-white: #
|
|
134
|
+
--text-text-normal-text-caption-white: #fefcfc;
|
|
135
135
|
|
|
136
136
|
/* shadcn semantic aliases — default typography/surfaces use neutral tokens, not theme tint */
|
|
137
137
|
--background: var(--normal-background-theme, #faf8f8);
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
[data-mode="dark"] {
|
|
160
160
|
--background: #1a1a1a;
|
|
161
161
|
--foreground: var(--text-text-normal-text-white, #e8e8e8);
|
|
162
|
-
--muted-foreground: var(--text-text-normal-text-caption-
|
|
162
|
+
--muted-foreground: var(--text-text-normal-text-caption-black, #a8a8a8);
|
|
163
163
|
--secondary-foreground: var(--text-text-normal-text-white, #e8e8e8);
|
|
164
164
|
--accent-foreground: var(--text-text-normal-text-white, #e8e8e8);
|
|
165
165
|
--card: #242424;
|
|
@@ -459,11 +459,12 @@
|
|
|
459
459
|
--segmentator-shadow-tiled: inset 0 -0.5px 0
|
|
460
460
|
var(--special-effort-se-lineshadow-bottom, rgba(0, 0, 0, 0.04));
|
|
461
461
|
--segmentator-item-hover-bg: var(--aviala-neutral-neutral-6, #edebeb);
|
|
462
|
-
--segmentator-press-scale: 0.
|
|
463
|
-
--segmentator-press-
|
|
462
|
+
--segmentator-press-scale: 0.98;
|
|
463
|
+
--segmentator-press-height-scale: 0.88;
|
|
464
|
+
--segmentator-press-transition-duration: var(--segmentator-transition-duration, 0.52s);
|
|
464
465
|
--segmentator-press-transition-easing: var(
|
|
465
466
|
--segmentator-transition-easing,
|
|
466
|
-
cubic-bezier(0.
|
|
467
|
+
cubic-bezier(0.22, 1.1, 0.36, 1)
|
|
467
468
|
);
|
|
468
469
|
--segmentator-haptic-press-ms: 20;
|
|
469
470
|
--segmentator-haptic-select-ms: 16;
|
|
@@ -564,15 +565,21 @@
|
|
|
564
565
|
var(--padding-min, 2px) * 2 + var(--line-height-line-height-regular, 1.125rem)
|
|
565
566
|
);
|
|
566
567
|
--datepicker-header-height: calc(
|
|
567
|
-
var(--padding-tiny, 4px) *
|
|
568
|
+
var(--padding-tiny, 4px) * 3 +
|
|
569
|
+
var(--typography-subtitle-line-height, var(--line-height-middle, 1.375rem))
|
|
568
570
|
);
|
|
569
571
|
--datepicker-grid-height: calc(
|
|
570
572
|
var(--datepicker-grid-rows) * var(--datepicker-day-height) +
|
|
571
573
|
(var(--datepicker-grid-rows) - 1) * var(--datepicker-row-gap)
|
|
572
574
|
);
|
|
575
|
+
/* Date grid content (weekdays + grid) — bottom padding applied on view-viewport */
|
|
576
|
+
--datepicker-view-height: calc(
|
|
577
|
+
var(--datepicker-weekday-height) + var(--datepicker-panel-gap) +
|
|
578
|
+
var(--datepicker-grid-height)
|
|
579
|
+
);
|
|
573
580
|
--datepicker-panel-body-height: calc(
|
|
574
581
|
var(--datepicker-header-height) + var(--datepicker-panel-gap) +
|
|
575
|
-
var(--datepicker-
|
|
582
|
+
var(--datepicker-view-height) + var(--padding-tiny, 4px)
|
|
576
583
|
);
|
|
577
584
|
--datepicker-time-wheel-item-height: 36px;
|
|
578
585
|
--datepicker-time-wheel-visible-count: 5;
|
|
@@ -793,15 +800,19 @@
|
|
|
793
800
|
/* Slider — Figma Information Collect → Slider (384:21584) */
|
|
794
801
|
--slider-width: 70px;
|
|
795
802
|
--slider-track-height: 4px;
|
|
796
|
-
--slider-track-height-big:
|
|
803
|
+
--slider-track-height-big: 8px;
|
|
797
804
|
--slider-thumb-size: 8px;
|
|
798
|
-
--slider-thumb-size-big:
|
|
805
|
+
--slider-thumb-size-big: 10px;
|
|
806
|
+
--slider-pad-y: var(--padding-tinyer, 3px);
|
|
799
807
|
--slider-track-bg: var(--box-box-normal-background-whiteonly, #fefcfc);
|
|
800
808
|
--slider-track-border: var(--border-border-normal-primary, #e2e0e0);
|
|
801
809
|
--slider-range-bg: var(--box-box-theme-primarybackground, #ff5532);
|
|
802
810
|
--slider-thumb-bg: var(--box-box-normal-background-whiteonly, #fefcfc);
|
|
803
811
|
--slider-thumb-border: var(--border-border-theme-primary, #ff5532);
|
|
804
|
-
|
|
812
|
+
/* Availability Status=OFF — secondary fill, not whole-control opacity */
|
|
813
|
+
--slider-track-bg-disabled: var(--control-control-normal-lightbackground-deep, #fdfbfb);
|
|
814
|
+
--slider-range-bg-disabled: var(--box-box-theme-secondarybackground, #ffdad2);
|
|
815
|
+
--slider-thumb-border-disabled: var(--box-box-theme-secondarybackground, #ffdad2);
|
|
805
816
|
|
|
806
817
|
/* Upload — Figma Information Collect → Upload (527:56238 / 527:56237) */
|
|
807
818
|
--upload-radius: var(--border-radius-small, 8px);
|
|
@@ -1016,11 +1027,13 @@
|
|
|
1016
1027
|
--typography-caption-fg: var(--text-text-normal-text-caption-black, #858484);
|
|
1017
1028
|
--typography-caption-fg-white: var(--text-text-normal-text-caption-white, #fefcfc);
|
|
1018
1029
|
|
|
1019
|
-
--typeface-gap: var(--gap-
|
|
1030
|
+
--typeface-gap: var(--gap-none, 0);
|
|
1020
1031
|
}
|
|
1021
1032
|
|
|
1022
1033
|
/* Keyboard focus ring - opt-in via `.aviala-focus-ring`.
|
|
1023
|
-
|
|
1034
|
+
Requires `html[data-aviala-kbd]` (set by initKeyboardFocus) so rings do not
|
|
1035
|
+
appear when menus programmatically focus items after a pointer open.
|
|
1036
|
+
Animated box-shadow: 12px → 3px, 250ms. */
|
|
1024
1037
|
|
|
1025
1038
|
:root {
|
|
1026
1039
|
--focus-ring-width-start: var(--size-small, 12px);
|
|
@@ -1030,13 +1043,15 @@
|
|
|
1030
1043
|
--focus-transition-easing: ease;
|
|
1031
1044
|
}
|
|
1032
1045
|
|
|
1033
|
-
/* Suppress native outline; custom ring only
|
|
1034
|
-
.aviala-focus-ring:focus
|
|
1046
|
+
/* Suppress native outline always; custom ring only for keyboard modality */
|
|
1047
|
+
.aviala-focus-ring:focus,
|
|
1048
|
+
.aviala-focus-ring:focus-visible,
|
|
1049
|
+
.aviala-focus-ring:has(:focus-visible) {
|
|
1035
1050
|
outline: none;
|
|
1036
1051
|
}
|
|
1037
1052
|
|
|
1038
|
-
.aviala-focus-ring:focus-visible
|
|
1039
|
-
|
|
1053
|
+
html[data-aviala-kbd] .aviala-focus-ring:focus-visible,
|
|
1054
|
+
html[data-aviala-kbd] .aviala-focus-ring:has(:focus-visible) {
|
|
1040
1055
|
animation: aviala-focus-ring-settle var(--focus-transition-duration)
|
|
1041
1056
|
var(--focus-transition-easing) forwards;
|
|
1042
1057
|
}
|
|
@@ -1051,7 +1066,19 @@
|
|
|
1051
1066
|
}
|
|
1052
1067
|
|
|
1053
1068
|
@media (prefers-reduced-motion: reduce) {
|
|
1054
|
-
.aviala-focus-ring:focus-visible
|
|
1069
|
+
html[data-aviala-kbd] .aviala-focus-ring:focus-visible,
|
|
1070
|
+
html[data-aviala-kbd] .aviala-focus-ring:has(:focus-visible) {
|
|
1071
|
+
animation: none;
|
|
1072
|
+
box-shadow: 0 0 0 var(--focus-ring-width-end) var(--focus-ring-color);
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
/* Wheel selected-item proxy rings (overflow clips the listbox ring) */
|
|
1076
|
+
html[data-aviala-kbd]
|
|
1077
|
+
.aviala-datepicker-time__wheel-scroll:focus-visible
|
|
1078
|
+
.aviala-datepicker-time__wheel-option[data-selected="true"],
|
|
1079
|
+
html[data-aviala-kbd]
|
|
1080
|
+
.aviala-scroll-picker-column__scroll:focus-visible
|
|
1081
|
+
.aviala-scroll-picker-item[data-selected="true"] {
|
|
1055
1082
|
animation: none;
|
|
1056
1083
|
box-shadow: 0 0 0 var(--focus-ring-width-end) var(--focus-ring-color);
|
|
1057
1084
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aviala-design/spiral",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Spiral 2 ? Aviala Design React component library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"clsx": "^2.1.1",
|
|
44
44
|
"colord": "^2.9.3",
|
|
45
45
|
"tailwind-merge": "^3.3.1",
|
|
46
|
-
"@aviala-design/
|
|
47
|
-
"@aviala-design/
|
|
46
|
+
"@aviala-design/icons": "2.0.2",
|
|
47
|
+
"@aviala-design/tokens": "2.0.0"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"react": ">=18",
|