@resira/ui 0.4.1 → 0.4.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.
- package/dist/index.cjs +4260 -4036
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +832 -801
- package/dist/index.d.ts +832 -801
- package/dist/index.js +4211 -3988
- package/dist/index.js.map +1 -1
- package/dist/styles.css +108 -38
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -24,6 +24,31 @@
|
|
|
24
24
|
padding: 0;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/* Global focus-visible ring for all interactive elements */
|
|
28
|
+
.resira-root button:focus-visible,
|
|
29
|
+
.resira-root a:focus-visible,
|
|
30
|
+
.resira-root input:focus-visible,
|
|
31
|
+
.resira-root select:focus-visible,
|
|
32
|
+
.resira-root textarea:focus-visible,
|
|
33
|
+
.resira-root [role="button"]:focus-visible,
|
|
34
|
+
.resira-root [tabindex]:focus-visible {
|
|
35
|
+
outline: 2px solid var(--resira-primary);
|
|
36
|
+
outline-offset: 2px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Reduced motion — respect user preference */
|
|
40
|
+
@media (prefers-reduced-motion: reduce) {
|
|
41
|
+
.resira-root,
|
|
42
|
+
.resira-root *,
|
|
43
|
+
.resira-root *::before,
|
|
44
|
+
.resira-root *::after {
|
|
45
|
+
animation-duration: 0.01ms !important;
|
|
46
|
+
animation-iteration-count: 1 !important;
|
|
47
|
+
transition-duration: 0.01ms !important;
|
|
48
|
+
scroll-behavior: auto !important;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
27
52
|
/* ─────────────────────────────────────────────────────────────── */
|
|
28
53
|
/* Animations */
|
|
29
54
|
/* ─────────────────────────────────────────────────────────────── */
|
|
@@ -38,12 +63,12 @@
|
|
|
38
63
|
}
|
|
39
64
|
|
|
40
65
|
@keyframes resira-slide-up {
|
|
41
|
-
from { opacity: 0; transform: translateY(
|
|
66
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
42
67
|
to { opacity: 1; transform: translateY(0); }
|
|
43
68
|
}
|
|
44
69
|
|
|
45
70
|
@keyframes resira-scale-in {
|
|
46
|
-
from { opacity: 0; transform: scale(0.
|
|
71
|
+
from { opacity: 0; transform: scale(0.97) translateY(6px); }
|
|
47
72
|
to { opacity: 1; transform: scale(1) translateY(0); }
|
|
48
73
|
}
|
|
49
74
|
|
|
@@ -108,6 +133,16 @@
|
|
|
108
133
|
padding: 12px 24px 112px;
|
|
109
134
|
}
|
|
110
135
|
|
|
136
|
+
/* Step content fade-in on mount */
|
|
137
|
+
.resira-widget-body > * {
|
|
138
|
+
animation: resira-step-enter 150ms ease both;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@keyframes resira-step-enter {
|
|
142
|
+
from { opacity: 0; transform: translateY(4px); }
|
|
143
|
+
to { opacity: 1; transform: translateY(0); }
|
|
144
|
+
}
|
|
145
|
+
|
|
111
146
|
.resira-widget-footer {
|
|
112
147
|
position: sticky;
|
|
113
148
|
bottom: 0;
|
|
@@ -124,8 +159,9 @@
|
|
|
124
159
|
justify-content: space-between;
|
|
125
160
|
}
|
|
126
161
|
|
|
127
|
-
.resira-widget-footer
|
|
128
|
-
|
|
162
|
+
.resira-widget-footer .resira-btn {
|
|
163
|
+
flex: 1;
|
|
164
|
+
min-width: 0;
|
|
129
165
|
}
|
|
130
166
|
|
|
131
167
|
/* ─────────────────────────────────────────────────────────────── */
|
|
@@ -159,7 +195,7 @@
|
|
|
159
195
|
border: none;
|
|
160
196
|
cursor: default;
|
|
161
197
|
white-space: nowrap;
|
|
162
|
-
transition: color
|
|
198
|
+
transition: color 150ms ease;
|
|
163
199
|
flex: 1;
|
|
164
200
|
min-width: 0;
|
|
165
201
|
}
|
|
@@ -215,7 +251,7 @@
|
|
|
215
251
|
background: var(--resira-surface);
|
|
216
252
|
color: var(--resira-text);
|
|
217
253
|
cursor: pointer;
|
|
218
|
-
transition:
|
|
254
|
+
transition: background 120ms ease, border-color 120ms ease;
|
|
219
255
|
}
|
|
220
256
|
|
|
221
257
|
.resira-calendar-nav-btn:hover { background: var(--resira-bg-subtle); border-color: var(--resira-muted); }
|
|
@@ -250,7 +286,7 @@
|
|
|
250
286
|
background: transparent;
|
|
251
287
|
color: var(--resira-text);
|
|
252
288
|
cursor: pointer;
|
|
253
|
-
transition:
|
|
289
|
+
transition: background 120ms ease, color 120ms ease;
|
|
254
290
|
}
|
|
255
291
|
|
|
256
292
|
.resira-calendar-day:hover:not(:disabled):not(.resira-calendar-day--blocked) {
|
|
@@ -408,7 +444,7 @@
|
|
|
408
444
|
background: var(--resira-surface);
|
|
409
445
|
color: var(--resira-text);
|
|
410
446
|
cursor: pointer;
|
|
411
|
-
transition:
|
|
447
|
+
transition: background 120ms ease, border-color 120ms ease;
|
|
412
448
|
}
|
|
413
449
|
|
|
414
450
|
.resira-mini-cal-nav-btn:hover { background: var(--resira-surface); border-color: var(--resira-muted); }
|
|
@@ -444,7 +480,7 @@
|
|
|
444
480
|
background: transparent;
|
|
445
481
|
color: var(--resira-text);
|
|
446
482
|
cursor: pointer;
|
|
447
|
-
transition:
|
|
483
|
+
transition: background 100ms ease, color 100ms ease;
|
|
448
484
|
margin: 0 auto;
|
|
449
485
|
}
|
|
450
486
|
|
|
@@ -534,7 +570,7 @@
|
|
|
534
570
|
background: transparent;
|
|
535
571
|
color: var(--resira-text);
|
|
536
572
|
cursor: pointer;
|
|
537
|
-
transition:
|
|
573
|
+
transition: background 100ms ease, color 100ms ease;
|
|
538
574
|
}
|
|
539
575
|
|
|
540
576
|
.resira-party-btn:hover:not(:disabled) {
|
|
@@ -576,7 +612,7 @@
|
|
|
576
612
|
background: var(--resira-surface);
|
|
577
613
|
color: var(--resira-text);
|
|
578
614
|
cursor: pointer;
|
|
579
|
-
transition:
|
|
615
|
+
transition: border-color 120ms ease, background 120ms ease, color 120ms ease, box-shadow 120ms ease;
|
|
580
616
|
flex: 1;
|
|
581
617
|
min-width: 70px;
|
|
582
618
|
}
|
|
@@ -622,7 +658,7 @@
|
|
|
622
658
|
border-radius: var(--resira-input-radius, 10px);
|
|
623
659
|
background: var(--resira-surface);
|
|
624
660
|
cursor: pointer;
|
|
625
|
-
transition:
|
|
661
|
+
transition: border-color 120ms ease, background 120ms ease, color 120ms ease, box-shadow 120ms ease, transform 100ms ease;
|
|
626
662
|
gap: 1px;
|
|
627
663
|
}
|
|
628
664
|
|
|
@@ -764,6 +800,13 @@
|
|
|
764
800
|
cursor: pointer;
|
|
765
801
|
width: 100%;
|
|
766
802
|
flex-shrink: 0;
|
|
803
|
+
border-radius: var(--resira-card-radius, 14px);
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
.resira-service-card-btn:focus-visible {
|
|
807
|
+
outline: 2px solid var(--resira-primary);
|
|
808
|
+
outline-offset: 3px;
|
|
809
|
+
border-radius: var(--resira-card-radius, 14px);
|
|
767
810
|
}
|
|
768
811
|
|
|
769
812
|
.resira-service-list--horizontal .resira-service-card-btn {
|
|
@@ -778,7 +821,7 @@
|
|
|
778
821
|
border-radius: var(--resira-card-radius, 14px);
|
|
779
822
|
overflow: hidden;
|
|
780
823
|
background: var(--resira-surface);
|
|
781
|
-
transition:
|
|
824
|
+
transition: border-color 150ms ease, box-shadow 150ms ease, transform 100ms ease;
|
|
782
825
|
font-family: var(--resira-font);
|
|
783
826
|
color: var(--resira-text);
|
|
784
827
|
}
|
|
@@ -789,6 +832,10 @@
|
|
|
789
832
|
transform: translateY(-1px);
|
|
790
833
|
}
|
|
791
834
|
|
|
835
|
+
.resira-service-card:active {
|
|
836
|
+
transform: scale(0.98);
|
|
837
|
+
}
|
|
838
|
+
|
|
792
839
|
.resira-service-card--selected {
|
|
793
840
|
border-color: var(--resira-primary) !important;
|
|
794
841
|
background: color-mix(in srgb, var(--resira-primary) 3%, var(--resira-surface)) !important;
|
|
@@ -981,13 +1028,17 @@
|
|
|
981
1028
|
cursor: pointer;
|
|
982
1029
|
display: flex;
|
|
983
1030
|
flex-direction: column;
|
|
984
|
-
transition: transform
|
|
1031
|
+
transition: transform 120ms ease, box-shadow 120ms ease;
|
|
985
1032
|
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
|
|
986
1033
|
}
|
|
987
1034
|
|
|
988
1035
|
.resira-category-tile:hover {
|
|
989
1036
|
transform: translateY(-2px);
|
|
990
|
-
box-shadow: 0
|
|
1037
|
+
box-shadow: 0 8px 24px rgba(0,0,0,0.14);
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
.resira-category-tile:active {
|
|
1041
|
+
transform: scale(0.97);
|
|
991
1042
|
}
|
|
992
1043
|
|
|
993
1044
|
.resira-category-tile-image {
|
|
@@ -1079,18 +1130,23 @@
|
|
|
1079
1130
|
flex-direction: column;
|
|
1080
1131
|
justify-content: flex-end;
|
|
1081
1132
|
cursor: pointer;
|
|
1082
|
-
transition: transform
|
|
1133
|
+
transition: transform 120ms ease, box-shadow 120ms ease;
|
|
1083
1134
|
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
|
|
1084
1135
|
}
|
|
1085
1136
|
|
|
1086
1137
|
.resira-service-overlay-card:hover {
|
|
1087
1138
|
transform: translateY(-2px);
|
|
1088
|
-
box-shadow: 0
|
|
1139
|
+
box-shadow: 0 8px 24px rgba(0,0,0,0.14);
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
.resira-service-overlay-card:active {
|
|
1143
|
+
transform: scale(0.98);
|
|
1089
1144
|
}
|
|
1090
1145
|
|
|
1091
1146
|
.resira-service-overlay-card--selected {
|
|
1092
1147
|
outline: 2.5px solid var(--resira-primary);
|
|
1093
1148
|
outline-offset: -2.5px;
|
|
1149
|
+
box-shadow: 0 0 0 4px color-mix(in srgb, var(--resira-primary) 15%, transparent);
|
|
1094
1150
|
}
|
|
1095
1151
|
|
|
1096
1152
|
.resira-service-overlay-card-bg {
|
|
@@ -1239,7 +1295,7 @@
|
|
|
1239
1295
|
background: var(--resira-surface);
|
|
1240
1296
|
color: var(--resira-text);
|
|
1241
1297
|
outline: none;
|
|
1242
|
-
transition:
|
|
1298
|
+
transition: border-color 150ms ease, box-shadow 150ms ease;
|
|
1243
1299
|
width: 100%;
|
|
1244
1300
|
}
|
|
1245
1301
|
|
|
@@ -1321,12 +1377,17 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
1321
1377
|
border-radius: 10px;
|
|
1322
1378
|
border: none;
|
|
1323
1379
|
cursor: pointer;
|
|
1324
|
-
transition:
|
|
1380
|
+
transition: background 150ms ease, box-shadow 150ms ease, transform 100ms ease;
|
|
1325
1381
|
white-space: nowrap;
|
|
1326
1382
|
}
|
|
1327
1383
|
|
|
1328
1384
|
.resira-btn:disabled { opacity: 0.45; cursor: not-allowed; transform: none !important; }
|
|
1329
1385
|
|
|
1386
|
+
.resira-btn:focus-visible {
|
|
1387
|
+
outline: 2px solid var(--resira-primary);
|
|
1388
|
+
outline-offset: 3px;
|
|
1389
|
+
}
|
|
1390
|
+
|
|
1330
1391
|
.resira-btn--primary {
|
|
1331
1392
|
background: var(--resira-primary);
|
|
1332
1393
|
color: var(--resira-primary-fg);
|
|
@@ -1336,7 +1397,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
1336
1397
|
|
|
1337
1398
|
.resira-btn--primary:hover:not(:disabled) {
|
|
1338
1399
|
background: var(--resira-primary-hover);
|
|
1339
|
-
box-shadow: 0 4px
|
|
1400
|
+
box-shadow: 0 4px 14px color-mix(in srgb, var(--resira-primary) 30%, transparent);
|
|
1340
1401
|
transform: translateY(-1px);
|
|
1341
1402
|
}
|
|
1342
1403
|
|
|
@@ -1623,7 +1684,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
1623
1684
|
overflow: hidden;
|
|
1624
1685
|
background: var(--resira-surface);
|
|
1625
1686
|
cursor: pointer;
|
|
1626
|
-
transition:
|
|
1687
|
+
transition: border-color 150ms ease, box-shadow 150ms ease, transform 100ms ease;
|
|
1627
1688
|
text-align: left;
|
|
1628
1689
|
font-family: var(--resira-font);
|
|
1629
1690
|
color: var(--resira-text);
|
|
@@ -1636,6 +1697,10 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
1636
1697
|
transform: translateY(-1px);
|
|
1637
1698
|
}
|
|
1638
1699
|
|
|
1700
|
+
.resira-resource-card:active {
|
|
1701
|
+
transform: scale(0.98);
|
|
1702
|
+
}
|
|
1703
|
+
|
|
1639
1704
|
.resira-resource-card--selected {
|
|
1640
1705
|
border-color: var(--resira-primary) !important;
|
|
1641
1706
|
background: color-mix(in srgb, var(--resira-primary) 3%, var(--resira-surface)) !important;
|
|
@@ -1823,7 +1888,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
1823
1888
|
background: var(--resira-bg-subtle);
|
|
1824
1889
|
border-radius: 8px;
|
|
1825
1890
|
border: 1.5px solid var(--resira-border);
|
|
1826
|
-
transition:
|
|
1891
|
+
transition: border-color 150ms ease, background 150ms ease;
|
|
1827
1892
|
}
|
|
1828
1893
|
|
|
1829
1894
|
.resira-waiver-row--compact {
|
|
@@ -2093,9 +2158,9 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2093
2158
|
align-items: center !important;
|
|
2094
2159
|
justify-content: center !important;
|
|
2095
2160
|
background: rgba(0, 0, 0, 0.45) !important;
|
|
2096
|
-
backdrop-filter: blur(
|
|
2097
|
-
-webkit-backdrop-filter: blur(
|
|
2098
|
-
animation: resira-fade-in 0.
|
|
2161
|
+
backdrop-filter: blur(8px) !important;
|
|
2162
|
+
-webkit-backdrop-filter: blur(8px) !important;
|
|
2163
|
+
animation: resira-fade-in 0.12s ease;
|
|
2099
2164
|
}
|
|
2100
2165
|
|
|
2101
2166
|
.resira-modal-container {
|
|
@@ -2111,7 +2176,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2111
2176
|
box-shadow:
|
|
2112
2177
|
0 24px 80px -12px rgba(0, 0, 0, 0.25),
|
|
2113
2178
|
0 0 0 1px rgba(0, 0, 0, 0.05) !important;
|
|
2114
|
-
animation: resira-scale-in 0.
|
|
2179
|
+
animation: resira-scale-in 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
2115
2180
|
margin: 16px !important;
|
|
2116
2181
|
overscroll-behavior: contain;
|
|
2117
2182
|
}
|
|
@@ -2132,7 +2197,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2132
2197
|
background: var(--resira-bg-subtle, #f3f4f6) !important;
|
|
2133
2198
|
color: var(--resira-muted, #6b7280) !important;
|
|
2134
2199
|
cursor: pointer !important;
|
|
2135
|
-
transition:
|
|
2200
|
+
transition: background 120ms ease, color 120ms ease;
|
|
2136
2201
|
flex-shrink: 0 !important;
|
|
2137
2202
|
padding: 0 !important;
|
|
2138
2203
|
margin: 0 !important;
|
|
@@ -2203,23 +2268,23 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2203
2268
|
align-items: center;
|
|
2204
2269
|
justify-content: center;
|
|
2205
2270
|
gap: 10px;
|
|
2206
|
-
padding:
|
|
2271
|
+
padding: 14px 32px;
|
|
2207
2272
|
font-size: 16px;
|
|
2208
2273
|
font-weight: 700;
|
|
2209
2274
|
font-family: var(--resira-font, system-ui, -apple-system, sans-serif);
|
|
2210
2275
|
border: none;
|
|
2211
|
-
border-radius:
|
|
2276
|
+
border-radius: 12px;
|
|
2212
2277
|
background: var(--resira-primary, #2563eb);
|
|
2213
2278
|
color: var(--resira-primary-fg, #ffffff);
|
|
2214
2279
|
cursor: pointer;
|
|
2215
|
-
transition:
|
|
2216
|
-
box-shadow: 0 2px
|
|
2280
|
+
transition: background 150ms ease, box-shadow 150ms ease, transform 100ms ease;
|
|
2281
|
+
box-shadow: 0 2px 10px color-mix(in srgb, var(--resira-primary, #2563eb) 30%, transparent);
|
|
2217
2282
|
letter-spacing: -0.01em;
|
|
2218
2283
|
}
|
|
2219
2284
|
|
|
2220
2285
|
.resira-book-now-btn:hover {
|
|
2221
2286
|
background: var(--resira-primary-hover, #1d4ed8);
|
|
2222
|
-
box-shadow: 0 6px
|
|
2287
|
+
box-shadow: 0 6px 20px color-mix(in srgb, var(--resira-primary, #2563eb) 35%, transparent);
|
|
2223
2288
|
transform: translateY(-2px);
|
|
2224
2289
|
}
|
|
2225
2290
|
|
|
@@ -2227,6 +2292,11 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2227
2292
|
transform: translateY(0);
|
|
2228
2293
|
}
|
|
2229
2294
|
|
|
2295
|
+
.resira-book-now-btn:focus-visible {
|
|
2296
|
+
outline: 2px solid var(--resira-primary, #2563eb);
|
|
2297
|
+
outline-offset: 3px;
|
|
2298
|
+
}
|
|
2299
|
+
|
|
2230
2300
|
/* ─────────────────────────────────────────────────────────────── */
|
|
2231
2301
|
/* Responsive */
|
|
2232
2302
|
/* ─────────────────────────────────────────────────────────────── */
|
|
@@ -2349,7 +2419,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2349
2419
|
background: transparent;
|
|
2350
2420
|
color: var(--resira-primary, #2563eb);
|
|
2351
2421
|
cursor: pointer;
|
|
2352
|
-
transition:
|
|
2422
|
+
transition: background 150ms ease, color 150ms ease, box-shadow 150ms ease, transform 100ms ease;
|
|
2353
2423
|
letter-spacing: -0.01em;
|
|
2354
2424
|
}
|
|
2355
2425
|
|
|
@@ -2393,7 +2463,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2393
2463
|
box-shadow:
|
|
2394
2464
|
0 24px 80px -12px rgba(0, 0, 0, 0.3),
|
|
2395
2465
|
0 0 0 1px rgba(0, 0, 0, 0.06) !important;
|
|
2396
|
-
animation: resira-scale-in 0.
|
|
2466
|
+
animation: resira-scale-in 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
2397
2467
|
margin: 16px !important;
|
|
2398
2468
|
overscroll-behavior: contain;
|
|
2399
2469
|
scrollbar-width: thin;
|
|
@@ -2424,7 +2494,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2424
2494
|
background: var(--resira-bg-subtle, #f3f4f6) !important;
|
|
2425
2495
|
color: var(--resira-muted, #6b7280) !important;
|
|
2426
2496
|
cursor: pointer !important;
|
|
2427
|
-
transition:
|
|
2497
|
+
transition: background 120ms ease, color 120ms ease;
|
|
2428
2498
|
flex-shrink: 0 !important;
|
|
2429
2499
|
padding: 0 !important;
|
|
2430
2500
|
}
|
|
@@ -2513,7 +2583,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2513
2583
|
background: var(--resira-surface, #ffffff);
|
|
2514
2584
|
overflow: hidden;
|
|
2515
2585
|
cursor: pointer;
|
|
2516
|
-
transition:
|
|
2586
|
+
transition: border-color 150ms ease, box-shadow 150ms ease, transform 100ms ease;
|
|
2517
2587
|
padding: 0;
|
|
2518
2588
|
text-align: left;
|
|
2519
2589
|
font-family: inherit;
|
|
@@ -2622,7 +2692,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2622
2692
|
background: transparent;
|
|
2623
2693
|
color: var(--resira-muted, #64748b);
|
|
2624
2694
|
cursor: pointer;
|
|
2625
|
-
transition:
|
|
2695
|
+
transition: border-color 120ms ease, color 120ms ease;
|
|
2626
2696
|
flex-shrink: 0;
|
|
2627
2697
|
}
|
|
2628
2698
|
|
|
@@ -2752,7 +2822,7 @@ textarea.resira-field-input { resize: vertical; min-height: 52px; }
|
|
|
2752
2822
|
border: none;
|
|
2753
2823
|
border-radius: var(--resira-btn-radius, 10px);
|
|
2754
2824
|
cursor: pointer;
|
|
2755
|
-
transition:
|
|
2825
|
+
transition: background 150ms ease, color 150ms ease, box-shadow 150ms ease, transform 100ms ease;
|
|
2756
2826
|
}
|
|
2757
2827
|
|
|
2758
2828
|
.resira-dish-action--3d {
|