@session-services/web-elements 0.1.20 → 0.1.22
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/cjs/{index-C6e98Atu.js → index-BYBgrATL.js} +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/session-services-elements.cjs.js +2 -2
- package/dist/cjs/session-services-formatted-text.cjs.entry.js +181 -165
- package/dist/cjs/session-services-ticketing.cjs.entry.js +24370 -19296
- package/dist/collection/components/session-services-formatted-text/session-services-formatted-text.js +33 -34
- package/dist/collection/components/session-services-ticketing/session-services-ticketing.css +429 -340
- package/dist/collection/components/session-services-ticketing/session-services-ticketing.js +1090 -269
- package/dist/collection/components/session-services-ticketing/session-services-ticketing.logic.js +270 -0
- package/dist/collection/components/session-services-ticketing/session-services-ticketing.logic.test.js +368 -0
- package/dist/collection/components/session-services-ticketing/session-services-ticketing.test.js +264 -0
- package/dist/components/session-services-formatted-text.js +180 -164
- package/dist/components/session-services-ticketing.js +24458 -19366
- package/dist/esm/{index-CeXOR4aK.js → index-CNOpF6tk.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/session-services-elements.js +3 -3
- package/dist/esm/session-services-formatted-text.entry.js +181 -165
- package/dist/esm/session-services-ticketing.entry.js +24378 -19304
- package/dist/session-services-elements/{p-a2404c46.entry.js → p-703444ed.entry.js} +1 -1
- package/dist/session-services-elements/p-94173d1b.entry.js +1 -0
- package/dist/session-services-elements/p-CNOpF6tk.js +2 -0
- package/dist/session-services-elements/session-services-elements.esm.js +1 -1
- package/dist/sst-env.d.ts +1 -0
- package/dist/types/components/session-services-formatted-text/session-services-formatted-text.d.ts +3 -0
- package/dist/types/components/session-services-ticketing/session-services-ticketing.d.ts +117 -3
- package/dist/types/components/session-services-ticketing/session-services-ticketing.logic.d.ts +196 -0
- package/dist/types/components/session-services-ticketing/session-services-ticketing.logic.test.d.ts +1 -0
- package/dist/types/components/session-services-ticketing/session-services-ticketing.test.d.ts +1 -0
- package/dist/types/components.d.ts +18 -0
- package/package.json +8 -7
- package/dist/session-services-elements/p-3bb6ceef.entry.js +0 -1
- package/dist/session-services-elements/p-CeXOR4aK.js +0 -2
package/dist/collection/components/session-services-ticketing/session-services-ticketing.css
CHANGED
|
@@ -41,33 +41,35 @@
|
|
|
41
41
|
* @prop --shadow-md: Medium shadow.
|
|
42
42
|
* @prop --shadow-lg: Large shadow.
|
|
43
43
|
* @prop --shadow-xl: Extra large shadow.
|
|
44
|
+
* @prop --shadow-edge-light: Subtle lower edge shadow.
|
|
45
|
+
* @prop --shadow-edge-dark: Subtle upper edge shadow.
|
|
44
46
|
* @prop --transition-fast: Fast transition.
|
|
45
47
|
* @prop --transition-base: Base transition.
|
|
46
48
|
* @prop --transition-slow: Slow transition.
|
|
47
49
|
*/
|
|
48
50
|
--background: transparent;
|
|
49
|
-
--foreground: oklch(0.
|
|
51
|
+
--foreground: oklch(0.21 0.006 285.885);
|
|
50
52
|
--card: oklch(1 0 0);
|
|
51
|
-
--card-foreground: oklch(0.
|
|
53
|
+
--card-foreground: oklch(0.21 0.006 285.885);
|
|
52
54
|
--popover: oklch(1 0 0);
|
|
53
|
-
--popover-foreground: oklch(0.
|
|
54
|
-
--primary: oklch(0.
|
|
55
|
+
--popover-foreground: oklch(0.21 0.006 285.885);
|
|
56
|
+
--primary: oklch(0.537 0.1554 255);
|
|
55
57
|
--primary-foreground: oklch(0.985 0 0);
|
|
56
|
-
--secondary: oklch(0
|
|
57
|
-
--secondary-foreground: oklch(0.
|
|
58
|
-
--muted: oklch(0
|
|
59
|
-
--muted-foreground: oklch(0.
|
|
60
|
-
--accent: oklch(0
|
|
61
|
-
--accent-foreground: oklch(0.
|
|
62
|
-
--destructive: oklch(0.
|
|
63
|
-
--destructive-foreground: oklch(
|
|
64
|
-
--border: oklch(0
|
|
65
|
-
--input: oklch(0
|
|
66
|
-
--ring: oklch(0.
|
|
58
|
+
--secondary: oklch(0 0 0 / 4%);
|
|
59
|
+
--secondary-foreground: oklch(0.21 0.006 285.885);
|
|
60
|
+
--muted: oklch(0 0 0 / 4%);
|
|
61
|
+
--muted-foreground: oklch(0.442 0.017 285.786);
|
|
62
|
+
--accent: oklch(0 0 0 / 4%);
|
|
63
|
+
--accent-foreground: oklch(0.21 0.006 285.885);
|
|
64
|
+
--destructive: oklch(0.637 0.237 25.331);
|
|
65
|
+
--destructive-foreground: oklch(0.505 0.213 27.518);
|
|
66
|
+
--border: oklch(0 0 0 / 12%);
|
|
67
|
+
--input: oklch(0 0 0 / 12%);
|
|
68
|
+
--ring: oklch(0.705 0.015 286.067);
|
|
67
69
|
|
|
68
70
|
/* Additional colors for component */
|
|
69
|
-
--success: oklch(0.
|
|
70
|
-
--warning: oklch(0.
|
|
71
|
+
--success: oklch(0.696 0.17 162.48);
|
|
72
|
+
--warning: oklch(0.769 0.188 70.08);
|
|
71
73
|
--info: oklch(0.623 0.214 259.815);
|
|
72
74
|
--info-foreground: oklch(0.488 0.243 264.376);
|
|
73
75
|
--backdrop: oklch(0 0 0 / 0.32);
|
|
@@ -108,6 +110,8 @@
|
|
|
108
110
|
0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
|
|
109
111
|
--shadow-xl:
|
|
110
112
|
0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
|
|
113
|
+
--shadow-edge-light: 0 1px oklch(0 0 0 / 4%);
|
|
114
|
+
--shadow-edge-dark: 0 -1px oklch(1 0 0 / 8%);
|
|
111
115
|
|
|
112
116
|
/* Transitions */
|
|
113
117
|
--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
@@ -116,27 +120,24 @@
|
|
|
116
120
|
|
|
117
121
|
/* Internal tokens with external override fallbacks */
|
|
118
122
|
--internal-background: var(--background, transparent);
|
|
119
|
-
--internal-foreground: var(--foreground, oklch(0.
|
|
123
|
+
--internal-foreground: var(--foreground, oklch(0.21 0.006 285.885));
|
|
120
124
|
--internal-card: var(--card, oklch(1 0 0));
|
|
121
|
-
--internal-card-foreground: var(--card-foreground, oklch(0.145 0 0));
|
|
122
125
|
--internal-popover: var(--popover, oklch(1 0 0));
|
|
123
|
-
--internal-popover-foreground: var(--popover-foreground, oklch(0.
|
|
124
|
-
--internal-primary: var(--primary, oklch(0.
|
|
126
|
+
--internal-popover-foreground: var(--popover-foreground, oklch(0.21 0.006 285.885));
|
|
127
|
+
--internal-primary: var(--primary, oklch(0.537 0.1554 255));
|
|
125
128
|
--internal-primary-foreground: var(--primary-foreground, oklch(0.985 0 0));
|
|
126
|
-
--internal-secondary: var(--secondary, oklch(0
|
|
127
|
-
--internal-
|
|
128
|
-
--internal-muted: var(--muted, oklch(0.
|
|
129
|
-
--internal-
|
|
130
|
-
--internal-accent: var(--accent, oklch(0.
|
|
131
|
-
--internal-
|
|
132
|
-
--internal-
|
|
133
|
-
--internal-
|
|
134
|
-
--internal-
|
|
135
|
-
|
|
136
|
-
--internal-
|
|
137
|
-
|
|
138
|
-
--internal-success: var(--success, oklch(0.66 0.154 149.48));
|
|
139
|
-
--internal-warning: var(--warning, oklch(0.72 0.153 66.34));
|
|
129
|
+
--internal-secondary: var(--secondary, oklch(0 0 0 / 4%));
|
|
130
|
+
--internal-muted: var(--muted, oklch(0 0 0 / 4%));
|
|
131
|
+
--internal-muted-foreground: var(--muted-foreground, oklch(0.442 0.017 285.786));
|
|
132
|
+
--internal-accent: var(--accent, oklch(0 0 0 / 4%));
|
|
133
|
+
--internal-accent-foreground: var(--accent-foreground, oklch(0.21 0.006 285.885));
|
|
134
|
+
--internal-destructive: var(--destructive, oklch(0.637 0.237 25.331));
|
|
135
|
+
--internal-border: var(--border, oklch(0 0 0 / 12%));
|
|
136
|
+
--internal-input: var(--input, oklch(0 0 0 / 12%));
|
|
137
|
+
--internal-ring: var(--ring, oklch(0.705 0.015 286.067));
|
|
138
|
+
|
|
139
|
+
--internal-success: var(--success, oklch(0.696 0.17 162.48));
|
|
140
|
+
--internal-warning: var(--warning, oklch(0.769 0.188 70.08));
|
|
140
141
|
--internal-info: var(--info, oklch(0.623 0.214 259.815));
|
|
141
142
|
--internal-info-foreground: var(--info-foreground, oklch(0.488 0.243 264.376));
|
|
142
143
|
--internal-backdrop: var(--backdrop, oklch(0 0 0 / 0.32));
|
|
@@ -156,22 +157,16 @@
|
|
|
156
157
|
--internal-font-size-base: var(--font-size-base, 1rem);
|
|
157
158
|
--internal-font-size-lg: var(--font-size-lg, 1.125rem);
|
|
158
159
|
--internal-font-size-xl: var(--font-size-xl, 1.25rem);
|
|
159
|
-
--internal-font-size-2xl: var(--font-size-2xl, 1.5rem);
|
|
160
|
-
--internal-font-weight-normal: var(--font-weight-normal, 400);
|
|
161
160
|
--internal-font-weight-medium: var(--font-weight-medium, 500);
|
|
162
161
|
--internal-font-weight-semibold: var(--font-weight-semibold, 600);
|
|
163
162
|
--internal-font-weight-bold: var(--font-weight-bold, 700);
|
|
164
163
|
|
|
165
|
-
--internal-shadow-sm:
|
|
166
|
-
var(--shadow-sm, 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1));
|
|
167
|
-
--internal-shadow-base:
|
|
168
|
-
var(--shadow-base, 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1));
|
|
169
|
-
--internal-shadow-md:
|
|
170
|
-
var(--shadow-md, 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1));
|
|
171
164
|
--internal-shadow-lg:
|
|
172
165
|
var(--shadow-lg, 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1));
|
|
173
166
|
--internal-shadow-xl:
|
|
174
167
|
var(--shadow-xl, 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1));
|
|
168
|
+
--internal-shadow-edge-light:
|
|
169
|
+
var(--shadow-edge-light, 0 1px oklch(0 0 0 / 4%));
|
|
175
170
|
|
|
176
171
|
--internal-transition-fast: var(--transition-fast, 150ms cubic-bezier(0.4, 0, 0.2, 1));
|
|
177
172
|
--internal-transition-base: var(--transition-base, 200ms cubic-bezier(0.4, 0, 0.2, 1));
|
|
@@ -189,7 +184,13 @@
|
|
|
189
184
|
padding: 0;
|
|
190
185
|
}
|
|
191
186
|
|
|
192
|
-
|
|
187
|
+
button,
|
|
188
|
+
input,
|
|
189
|
+
select,
|
|
190
|
+
textarea {
|
|
191
|
+
font: inherit;
|
|
192
|
+
}
|
|
193
|
+
|
|
193
194
|
*:focus {
|
|
194
195
|
outline: none;
|
|
195
196
|
}
|
|
@@ -209,24 +210,30 @@
|
|
|
209
210
|
:host([data-theme="dark"]) {
|
|
210
211
|
/* Dark theme inputs (overridable externally) */
|
|
211
212
|
--background: transparent;
|
|
212
|
-
--foreground: oklch(0.
|
|
213
|
-
--card:
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
--
|
|
219
|
-
--
|
|
220
|
-
--
|
|
221
|
-
--
|
|
222
|
-
--
|
|
223
|
-
--
|
|
224
|
-
--
|
|
225
|
-
--
|
|
226
|
-
--
|
|
227
|
-
--
|
|
228
|
-
--
|
|
229
|
-
--
|
|
213
|
+
--foreground: oklch(0.967 0.001 286.375);
|
|
214
|
+
--card: color-mix(
|
|
215
|
+
in srgb,
|
|
216
|
+
oklch(0.21 0.006 285.885) 80%,
|
|
217
|
+
oklch(0.141 0.005 285.823)
|
|
218
|
+
);
|
|
219
|
+
--card-foreground: oklch(0.967 0.001 286.375);
|
|
220
|
+
--popover: oklch(0.21 0.006 285.885);
|
|
221
|
+
--popover-foreground: oklch(0.967 0.001 286.375);
|
|
222
|
+
--primary: oklch(0.537 0.1554 255);
|
|
223
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
224
|
+
--secondary: oklch(1 0 0 / 6%);
|
|
225
|
+
--secondary-foreground: oklch(0.967 0.001 286.375);
|
|
226
|
+
--muted: oklch(1 0 0 / 6%);
|
|
227
|
+
--muted-foreground: oklch(0.705 0.015 286.067);
|
|
228
|
+
--accent: oklch(1 0 0 / 6%);
|
|
229
|
+
--accent-foreground: oklch(0.967 0.001 286.375);
|
|
230
|
+
--destructive: oklch(0.637 0.237 25.331);
|
|
231
|
+
--destructive-foreground: oklch(0.704 0.191 22.216);
|
|
232
|
+
--border: oklch(1 0 0 / 12%);
|
|
233
|
+
--input: oklch(1 0 0 / 12%);
|
|
234
|
+
--ring: oklch(0.552 0.016 285.938);
|
|
235
|
+
--success: oklch(0.696 0.17 162.48);
|
|
236
|
+
--warning: oklch(0.769 0.188 70.08);
|
|
230
237
|
--info: oklch(0.623 0.214 259.815);
|
|
231
238
|
--info-foreground: oklch(0.707 0.165 254.624);
|
|
232
239
|
}
|
|
@@ -237,77 +244,126 @@
|
|
|
237
244
|
width: 100%;
|
|
238
245
|
}
|
|
239
246
|
|
|
240
|
-
.
|
|
241
|
-
|
|
247
|
+
.tickets-heading {
|
|
248
|
+
color: var(--internal-foreground);
|
|
249
|
+
font-size: var(--internal-font-size-lg);
|
|
250
|
+
font-weight: var(--internal-font-weight-semibold);
|
|
251
|
+
margin: 0 0 var(--internal-spacing-md);
|
|
242
252
|
}
|
|
243
253
|
|
|
244
|
-
.
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
254
|
+
.door-alert,
|
|
255
|
+
.empty-ticketing-state,
|
|
256
|
+
.passcode-form,
|
|
257
|
+
.passcode-form input,
|
|
258
|
+
.ticket-section,
|
|
259
|
+
.more-info-badge,
|
|
260
|
+
.quantity-controls,
|
|
261
|
+
.sold-out-controls,
|
|
262
|
+
.coupon-row,
|
|
263
|
+
.coupon-apply,
|
|
264
|
+
.coupon-remove {
|
|
265
|
+
border: 1px solid var(--internal-input);
|
|
266
|
+
box-shadow: var(--internal-shadow-edge-light);
|
|
253
267
|
}
|
|
254
268
|
|
|
255
|
-
.
|
|
256
|
-
|
|
269
|
+
.external-ticket-button,
|
|
270
|
+
.checkout-btn {
|
|
271
|
+
display: inline-flex;
|
|
272
|
+
align-items: center;
|
|
273
|
+
justify-content: center;
|
|
274
|
+
background: var(--internal-primary);
|
|
275
|
+
color: var(--internal-primary-foreground);
|
|
276
|
+
border: 1px solid oklch(from var(--internal-primary) calc(l - 0.08) c h);
|
|
277
|
+
border-radius: calc(var(--internal-radius) - 2px);
|
|
278
|
+
cursor: pointer;
|
|
279
|
+
box-shadow: var(--internal-shadow-edge-light);
|
|
280
|
+
transition: all var(--internal-transition-fast);
|
|
257
281
|
}
|
|
258
282
|
|
|
259
|
-
|
|
260
|
-
.
|
|
261
|
-
|
|
262
|
-
|
|
283
|
+
.external-ticket-button:hover,
|
|
284
|
+
.checkout-btn:hover:not(:disabled) {
|
|
285
|
+
background: oklch(from var(--internal-primary) calc(l - 0.08) c h);
|
|
286
|
+
transform: translateY(-1px);
|
|
263
287
|
}
|
|
264
288
|
|
|
265
|
-
.
|
|
266
|
-
|
|
267
|
-
|
|
289
|
+
.door-alert,
|
|
290
|
+
.empty-ticketing-state,
|
|
291
|
+
.passcode-form {
|
|
292
|
+
display: flex;
|
|
293
|
+
flex-direction: column;
|
|
294
|
+
gap: var(--internal-spacing-sm);
|
|
295
|
+
padding: var(--internal-spacing-lg);
|
|
296
|
+
margin-bottom: var(--internal-spacing-md);
|
|
297
|
+
background: var(--internal-card);
|
|
298
|
+
border-radius: var(--internal-radius);
|
|
268
299
|
}
|
|
269
300
|
|
|
270
|
-
.
|
|
271
|
-
|
|
272
|
-
border-
|
|
301
|
+
.door-alert {
|
|
302
|
+
background: oklch(from var(--internal-success) l c h / 0.1);
|
|
303
|
+
border-color: oklch(from var(--internal-success) l c h / 0.48);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.door-alert strong,
|
|
307
|
+
.empty-ticketing-state strong,
|
|
308
|
+
.passcode-form h2 {
|
|
309
|
+
color: var(--internal-foreground);
|
|
310
|
+
font-size: var(--internal-font-size-base);
|
|
311
|
+
font-weight: var(--internal-font-weight-semibold);
|
|
312
|
+
line-height: 1.3;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.door-alert span,
|
|
316
|
+
.empty-ticketing-state span,
|
|
317
|
+
.passcode-form p {
|
|
318
|
+
color: var(--internal-muted-foreground);
|
|
319
|
+
font-size: var(--internal-font-size-sm);
|
|
320
|
+
line-height: 1.5;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.external-ticket-button {
|
|
324
|
+
width: 100%;
|
|
325
|
+
padding: calc(var(--internal-spacing-sm) + var(--internal-spacing-xs))
|
|
326
|
+
var(--internal-spacing-lg);
|
|
327
|
+
font-size: var(--internal-font-size-base);
|
|
328
|
+
font-weight: var(--internal-font-weight-bold);
|
|
329
|
+
text-decoration: none;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
.passcode-form input {
|
|
333
|
+
width: 100%;
|
|
334
|
+
min-width: 0;
|
|
335
|
+
padding: calc(var(--internal-spacing-sm) + 0.125rem)
|
|
336
|
+
var(--internal-spacing-sm);
|
|
337
|
+
background: var(--internal-card);
|
|
338
|
+
color: var(--internal-foreground);
|
|
339
|
+
border-radius: calc(var(--internal-radius) - 2px);
|
|
340
|
+
font: inherit;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.passcode-form input:disabled {
|
|
344
|
+
opacity: 0.6;
|
|
345
|
+
cursor: not-allowed;
|
|
273
346
|
}
|
|
274
347
|
|
|
275
348
|
.ticket-section {
|
|
276
349
|
background: var(--internal-card);
|
|
277
|
-
border: 1px solid var(--internal-border);
|
|
278
350
|
border-radius: var(--internal-radius);
|
|
279
351
|
margin: 0 0 var(--internal-spacing-lg) 0;
|
|
280
352
|
overflow: hidden;
|
|
281
353
|
width: 100%;
|
|
282
|
-
box-shadow: var(--internal-shadow-sm);
|
|
283
354
|
transition: all var(--internal-transition-base);
|
|
284
355
|
}
|
|
285
356
|
|
|
286
|
-
.tickets-wrapper > .ticket-section:last-child
|
|
287
|
-
.tickets-wrapper > .unsectioned-admissions:last-child .ticket-section:last-child {
|
|
357
|
+
.tickets-wrapper > .ticket-section:last-child {
|
|
288
358
|
margin-bottom: 0;
|
|
289
359
|
}
|
|
290
360
|
|
|
291
|
-
.ticket-section:focus-within {
|
|
292
|
-
box-shadow: var(--internal-shadow-md);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
.ticket-section:hover:not(.section-sold-out) {
|
|
296
|
-
box-shadow: var(--internal-shadow-md);
|
|
297
|
-
}
|
|
298
|
-
|
|
299
361
|
.ticket-section.section-sold-out {
|
|
300
|
-
opacity: 1;
|
|
301
|
-
background: var(--card);
|
|
302
|
-
box-shadow: none;
|
|
303
362
|
position: relative;
|
|
304
|
-
border-color: var(--border);
|
|
305
|
-
overflow: hidden;
|
|
306
363
|
}
|
|
307
364
|
|
|
308
365
|
.ticket-section.section-sold-out .section-header {
|
|
309
|
-
|
|
310
|
-
padding-bottom: var(--spacing-md);
|
|
366
|
+
padding-bottom: var(--internal-spacing-md);
|
|
311
367
|
}
|
|
312
368
|
|
|
313
369
|
.ticket-section.section-sold-out .section-name,
|
|
@@ -323,7 +379,7 @@
|
|
|
323
379
|
}
|
|
324
380
|
|
|
325
381
|
.ticket-section.section-sold-out .admission-card {
|
|
326
|
-
background: var(--card);
|
|
382
|
+
background: var(--internal-card);
|
|
327
383
|
}
|
|
328
384
|
|
|
329
385
|
.ticket-section.section-sold-out .quantity-controls,
|
|
@@ -348,33 +404,26 @@
|
|
|
348
404
|
gap: var(--internal-spacing-sm);
|
|
349
405
|
}
|
|
350
406
|
|
|
351
|
-
.section-time
|
|
407
|
+
.section-time,
|
|
408
|
+
.section-venue {
|
|
352
409
|
color: var(--internal-muted-foreground);
|
|
353
410
|
font-size: var(--internal-font-size-sm);
|
|
354
|
-
margin-bottom: var(--internal-spacing-xs);
|
|
355
411
|
display: flex;
|
|
356
412
|
align-items: center;
|
|
357
413
|
gap: var(--internal-spacing-xs);
|
|
358
414
|
}
|
|
359
415
|
|
|
360
|
-
.section-time
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
flex-shrink: 0;
|
|
364
|
-
opacity: 0.8;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
.section-venue {
|
|
368
|
-
color: var(--muted-foreground);
|
|
369
|
-
font-size: var(--font-size-sm);
|
|
370
|
-
display: flex;
|
|
371
|
-
align-items: center;
|
|
372
|
-
gap: var(--spacing-xs);
|
|
416
|
+
.section-time,
|
|
417
|
+
.admission-time {
|
|
418
|
+
margin-bottom: var(--internal-spacing-xs);
|
|
373
419
|
}
|
|
374
420
|
|
|
375
|
-
.section-
|
|
376
|
-
|
|
377
|
-
|
|
421
|
+
.section-time svg,
|
|
422
|
+
.section-venue svg,
|
|
423
|
+
.admission-time svg,
|
|
424
|
+
.admission-venue svg {
|
|
425
|
+
width: calc(var(--internal-spacing-sm) + var(--internal-spacing-xs));
|
|
426
|
+
height: calc(var(--internal-spacing-sm) + var(--internal-spacing-xs));
|
|
378
427
|
flex-shrink: 0;
|
|
379
428
|
opacity: 0.8;
|
|
380
429
|
}
|
|
@@ -398,18 +447,15 @@
|
|
|
398
447
|
z-index: 1;
|
|
399
448
|
}
|
|
400
449
|
|
|
401
|
-
.admission-card
|
|
402
|
-
background:
|
|
450
|
+
.admission-card.sold-out {
|
|
451
|
+
background: var(--internal-card);
|
|
403
452
|
}
|
|
404
453
|
|
|
405
|
-
.admission-card.
|
|
406
|
-
opacity:
|
|
407
|
-
background: var(--card);
|
|
408
|
-
position: relative;
|
|
454
|
+
.admission-card.unavailable {
|
|
455
|
+
opacity: 0.72;
|
|
409
456
|
}
|
|
410
457
|
|
|
411
|
-
.admission-card.sold-out .admission-price
|
|
412
|
-
.admission-card.sold-out .admission-fee {
|
|
458
|
+
.admission-card.sold-out .admission-price {
|
|
413
459
|
opacity: 0.5;
|
|
414
460
|
}
|
|
415
461
|
|
|
@@ -465,7 +511,6 @@
|
|
|
465
511
|
padding: calc(var(--internal-spacing-xs) * 1.5) var(--internal-spacing-sm);
|
|
466
512
|
background: oklch(from var(--internal-info) l c h / 0.08);
|
|
467
513
|
color: var(--internal-info-foreground);
|
|
468
|
-
border: none;
|
|
469
514
|
border-radius: calc(var(--internal-radius) - 2px);
|
|
470
515
|
font-size: var(--internal-font-size-xs);
|
|
471
516
|
font-weight: var(--internal-font-weight-medium);
|
|
@@ -488,36 +533,17 @@
|
|
|
488
533
|
flex-shrink: 0;
|
|
489
534
|
}
|
|
490
535
|
|
|
491
|
-
.admission-time
|
|
492
|
-
color: var(--muted-foreground);
|
|
493
|
-
font-size: var(--font-size-sm);
|
|
494
|
-
margin-bottom: var(--spacing-xs);
|
|
495
|
-
display: flex;
|
|
496
|
-
align-items: center;
|
|
497
|
-
gap: var(--spacing-xs);
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
.admission-time svg {
|
|
501
|
-
width: calc(var(--spacing-sm) + var(--spacing-xs));
|
|
502
|
-
height: calc(var(--spacing-sm) + var(--spacing-xs));
|
|
503
|
-
flex-shrink: 0;
|
|
504
|
-
opacity: 0.8;
|
|
505
|
-
}
|
|
506
|
-
|
|
536
|
+
.admission-time,
|
|
507
537
|
.admission-venue {
|
|
508
|
-
color: var(--muted-foreground);
|
|
509
|
-
font-size: var(--font-size-sm);
|
|
510
|
-
margin-bottom: var(--spacing-sm);
|
|
538
|
+
color: var(--internal-muted-foreground);
|
|
539
|
+
font-size: var(--internal-font-size-sm);
|
|
511
540
|
display: flex;
|
|
512
541
|
align-items: center;
|
|
513
|
-
gap: var(--spacing-xs);
|
|
542
|
+
gap: var(--internal-spacing-xs);
|
|
514
543
|
}
|
|
515
544
|
|
|
516
|
-
.admission-venue
|
|
517
|
-
|
|
518
|
-
height: calc(var(--spacing-sm) + var(--spacing-xs));
|
|
519
|
-
flex-shrink: 0;
|
|
520
|
-
opacity: 0.8;
|
|
545
|
+
.admission-venue {
|
|
546
|
+
margin-bottom: var(--internal-spacing-sm);
|
|
521
547
|
}
|
|
522
548
|
|
|
523
549
|
/* Solo admission layout adjustments */
|
|
@@ -531,10 +557,10 @@
|
|
|
531
557
|
}
|
|
532
558
|
|
|
533
559
|
.solo-admission .admission-price-info {
|
|
534
|
-
margin-top: var(--spacing-md);
|
|
560
|
+
margin-top: var(--internal-spacing-md);
|
|
535
561
|
display: flex;
|
|
536
562
|
justify-content: space-between;
|
|
537
|
-
align-items:
|
|
563
|
+
align-items: center;
|
|
538
564
|
width: 100%;
|
|
539
565
|
}
|
|
540
566
|
|
|
@@ -549,10 +575,10 @@
|
|
|
549
575
|
justify-content: center;
|
|
550
576
|
padding: 0;
|
|
551
577
|
background: transparent;
|
|
552
|
-
color: var(--
|
|
578
|
+
color: var(--internal-destructive);
|
|
553
579
|
border: none;
|
|
554
|
-
font-size: var(--font-size-sm);
|
|
555
|
-
font-weight: var(--font-weight-medium);
|
|
580
|
+
font-size: var(--internal-font-size-sm);
|
|
581
|
+
font-weight: var(--internal-font-weight-medium);
|
|
556
582
|
text-transform: uppercase;
|
|
557
583
|
letter-spacing: 0.05em;
|
|
558
584
|
margin-left: auto;
|
|
@@ -563,51 +589,71 @@
|
|
|
563
589
|
display: flex;
|
|
564
590
|
align-items: center;
|
|
565
591
|
justify-content: space-between;
|
|
566
|
-
gap: var(--spacing-sm);
|
|
567
|
-
margin-bottom: var(--spacing-sm);
|
|
592
|
+
gap: var(--internal-spacing-sm);
|
|
593
|
+
margin-bottom: var(--internal-spacing-sm);
|
|
568
594
|
width: 100%;
|
|
569
595
|
}
|
|
570
596
|
|
|
571
597
|
.admission-price-wrapper {
|
|
572
598
|
display: flex;
|
|
573
599
|
flex-direction: column;
|
|
600
|
+
row-gap: calc(var(--internal-spacing-xs) * 0.5);
|
|
574
601
|
}
|
|
575
602
|
|
|
576
603
|
.admission-price {
|
|
577
|
-
color: var(--internal-
|
|
604
|
+
color: var(--internal-foreground);
|
|
578
605
|
font-size: var(--internal-font-size-xl);
|
|
579
606
|
font-weight: var(--internal-font-weight-bold);
|
|
580
607
|
letter-spacing: -0.025em;
|
|
581
608
|
line-height: 1.1;
|
|
582
609
|
}
|
|
583
610
|
|
|
584
|
-
.admission-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
611
|
+
.admission-price-row {
|
|
612
|
+
display: flex;
|
|
613
|
+
flex-wrap: wrap;
|
|
614
|
+
align-items: baseline;
|
|
615
|
+
gap: var(--internal-spacing-sm);
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
.admission-price-original {
|
|
619
|
+
color: var(--internal-muted-foreground);
|
|
620
|
+
font-size: var(--internal-font-size-base);
|
|
621
|
+
text-decoration: line-through;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
.admission-booking-fee {
|
|
625
|
+
color: var(--internal-muted-foreground);
|
|
626
|
+
font-size: var(--internal-font-size-xs);
|
|
627
|
+
font-weight: var(--internal-font-weight-medium);
|
|
628
|
+
line-height: 1.2;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
.admission-savings,
|
|
632
|
+
.admission-availability {
|
|
633
|
+
font-size: var(--internal-font-size-xs);
|
|
634
|
+
font-weight: var(--internal-font-weight-medium);
|
|
635
|
+
line-height: 1.2;
|
|
594
636
|
}
|
|
595
637
|
|
|
596
638
|
.admission-savings {
|
|
597
|
-
color: var(--success);
|
|
598
|
-
font-size: var(--font-size-sm);
|
|
599
|
-
font-weight: var(--font-weight-medium);
|
|
639
|
+
color: var(--internal-success);
|
|
600
640
|
}
|
|
601
641
|
|
|
602
642
|
.admission-availability {
|
|
603
|
-
color: var(--warning);
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
643
|
+
color: var(--internal-warning);
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
.admission-sale-label {
|
|
647
|
+
display: block;
|
|
648
|
+
margin-top: var(--internal-spacing-xs);
|
|
649
|
+
color: var(--internal-muted-foreground);
|
|
650
|
+
font-size: var(--internal-font-size-sm);
|
|
651
|
+
font-weight: var(--internal-font-weight-medium);
|
|
652
|
+
line-height: 1.35;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
.admission-sale-label.success {
|
|
656
|
+
color: var(--internal-success);
|
|
611
657
|
}
|
|
612
658
|
|
|
613
659
|
/* Quantity Controls - Modern, minimal design */
|
|
@@ -616,13 +662,15 @@
|
|
|
616
662
|
align-items: center;
|
|
617
663
|
gap: 0;
|
|
618
664
|
background: var(--internal-secondary);
|
|
619
|
-
border: 1px solid var(--internal-border);
|
|
620
665
|
border-radius: calc(var(--internal-radius) - 2px);
|
|
621
666
|
overflow: hidden;
|
|
622
|
-
box-shadow: none;
|
|
623
667
|
transition: all var(--internal-transition-fast);
|
|
624
668
|
}
|
|
625
669
|
|
|
670
|
+
.quantity-controls:has(.quantity-value:focus-visible) {
|
|
671
|
+
box-shadow: 0 0 0 2px var(--internal-ring);
|
|
672
|
+
}
|
|
673
|
+
|
|
626
674
|
.quantity-btn {
|
|
627
675
|
width: calc(var(--internal-spacing-lg) * 1.5);
|
|
628
676
|
height: calc(var(--internal-spacing-lg) * 1.5);
|
|
@@ -660,18 +708,22 @@
|
|
|
660
708
|
background: var(--internal-secondary);
|
|
661
709
|
color: var(--internal-muted-foreground);
|
|
662
710
|
border-color: var(--internal-border);
|
|
663
|
-
box-shadow: none;
|
|
664
711
|
}
|
|
665
712
|
|
|
666
713
|
.quantity-btn.decrease {
|
|
667
|
-
border-right: 1px solid var(--internal-
|
|
714
|
+
border-right: 1px solid var(--internal-input);
|
|
668
715
|
}
|
|
669
716
|
|
|
670
717
|
.quantity-btn.increase {
|
|
671
|
-
border-left: 1px solid var(--internal-
|
|
718
|
+
border-left: 1px solid var(--internal-input);
|
|
672
719
|
}
|
|
673
720
|
|
|
674
721
|
.quantity-value {
|
|
722
|
+
appearance: textfield;
|
|
723
|
+
width: 2.75rem;
|
|
724
|
+
height: calc(var(--internal-spacing-lg) * 1.5);
|
|
725
|
+
border: none;
|
|
726
|
+
background: transparent;
|
|
675
727
|
min-width: 2.5rem;
|
|
676
728
|
text-align: center;
|
|
677
729
|
font-size: var(--internal-font-size-sm);
|
|
@@ -680,148 +732,147 @@
|
|
|
680
732
|
padding: 0 var(--internal-spacing-xs);
|
|
681
733
|
}
|
|
682
734
|
|
|
735
|
+
.quantity-value:focus-visible {
|
|
736
|
+
outline: none;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
.quantity-value::-webkit-inner-spin-button,
|
|
740
|
+
.quantity-value::-webkit-outer-spin-button {
|
|
741
|
+
appearance: none;
|
|
742
|
+
margin: 0;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
.quantity-value:disabled {
|
|
746
|
+
opacity: 0.6;
|
|
747
|
+
cursor: not-allowed;
|
|
748
|
+
}
|
|
749
|
+
|
|
683
750
|
/* Sold Out Controls */
|
|
684
751
|
.sold-out-controls {
|
|
685
752
|
display: inline-flex;
|
|
686
753
|
align-items: center;
|
|
687
754
|
justify-content: center;
|
|
688
|
-
min-width: calc(var(--spacing-lg) * 1.5 * 2 + 2.5rem);
|
|
689
|
-
height: calc(var(--spacing-lg) * 1.5);
|
|
690
|
-
padding: 0
|
|
691
|
-
background:
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
border-radius: calc(var(--radius) - 2px);
|
|
695
|
-
font-size: var(--font-size-xs);
|
|
696
|
-
font-weight: var(--font-weight-medium);
|
|
697
|
-
letter-spacing: 0.025em;
|
|
698
|
-
text-transform: uppercase;
|
|
755
|
+
min-width: calc(var(--internal-spacing-lg) * 1.5 * 2 + 2.5rem);
|
|
756
|
+
height: calc(var(--internal-spacing-lg) * 1.5);
|
|
757
|
+
padding: 0;
|
|
758
|
+
background: transparent;
|
|
759
|
+
border: none;
|
|
760
|
+
box-shadow: none;
|
|
699
761
|
}
|
|
700
762
|
|
|
763
|
+
.sold-out-controls,
|
|
701
764
|
.sold-out-text {
|
|
702
|
-
color: var(--
|
|
703
|
-
font-size: var(--font-size-xs);
|
|
704
|
-
font-weight: var(--font-weight-medium);
|
|
765
|
+
color: var(--internal-destructive);
|
|
766
|
+
font-size: var(--internal-font-size-xs);
|
|
767
|
+
font-weight: var(--internal-font-weight-medium);
|
|
705
768
|
letter-spacing: 0.025em;
|
|
706
769
|
text-transform: uppercase;
|
|
707
770
|
}
|
|
708
771
|
|
|
709
|
-
|
|
710
|
-
.
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
772
|
+
.sold-out-controls.success,
|
|
773
|
+
.sold-out-controls.success .sold-out-text {
|
|
774
|
+
color: var(--internal-success);
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
.checkout-actions {
|
|
715
778
|
margin: var(--internal-spacing-lg) 0 0 0;
|
|
716
|
-
box-shadow: var(--internal-shadow-lg);
|
|
717
779
|
width: 100%;
|
|
718
780
|
}
|
|
719
781
|
|
|
720
|
-
.
|
|
721
|
-
font-size: var(--internal-font-size-lg);
|
|
722
|
-
font-weight: var(--internal-font-weight-semibold);
|
|
782
|
+
.coupon-panel {
|
|
723
783
|
margin-bottom: var(--internal-spacing-md);
|
|
724
|
-
color: var(--internal-foreground);
|
|
725
|
-
letter-spacing: -0.025em;
|
|
726
784
|
}
|
|
727
785
|
|
|
728
|
-
.
|
|
786
|
+
.coupon-row {
|
|
787
|
+
position: relative;
|
|
729
788
|
display: flex;
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
789
|
+
align-items: center;
|
|
790
|
+
width: 100%;
|
|
791
|
+
min-width: 0;
|
|
792
|
+
overflow: hidden;
|
|
793
|
+
background: var(--internal-background);
|
|
794
|
+
background-clip: padding-box;
|
|
795
|
+
border-radius: var(--internal-radius);
|
|
796
|
+
transition: border-color var(--internal-transition-fast);
|
|
734
797
|
}
|
|
735
798
|
|
|
736
|
-
.
|
|
737
|
-
|
|
799
|
+
.coupon-row:focus-within {
|
|
800
|
+
border-color: var(--internal-ring);
|
|
738
801
|
}
|
|
739
802
|
|
|
740
|
-
.
|
|
741
|
-
|
|
742
|
-
justify-content: space-between;
|
|
743
|
-
align-items: baseline;
|
|
744
|
-
font-size: var(--internal-font-size-base);
|
|
745
|
-
color: var(--internal-foreground);
|
|
803
|
+
.coupon-row:has(input[aria-invalid="true"]) {
|
|
804
|
+
border-color: var(--internal-destructive);
|
|
746
805
|
}
|
|
747
806
|
|
|
748
|
-
.
|
|
749
|
-
|
|
750
|
-
font-weight: var(--font-weight-medium);
|
|
807
|
+
.coupon-row:has(input:disabled) {
|
|
808
|
+
opacity: 0.64;
|
|
751
809
|
}
|
|
752
810
|
|
|
753
|
-
.
|
|
811
|
+
.coupon-row input {
|
|
812
|
+
width: 100%;
|
|
813
|
+
min-width: 0;
|
|
814
|
+
padding: calc(var(--internal-spacing-sm) - 1px)
|
|
815
|
+
calc(var(--internal-spacing-xl) * 2.75)
|
|
816
|
+
calc(var(--internal-spacing-sm) - 1px)
|
|
817
|
+
calc(var(--internal-spacing-md) - 1px);
|
|
818
|
+
background: var(--internal-card);
|
|
819
|
+
color: var(--internal-foreground);
|
|
820
|
+
border: none;
|
|
821
|
+
border-radius: inherit;
|
|
822
|
+
font: inherit;
|
|
754
823
|
font-size: var(--internal-font-size-sm);
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
padding-left: var(--internal-spacing-md);
|
|
758
|
-
font-weight: var(--internal-font-weight-normal);
|
|
759
|
-
}
|
|
760
|
-
|
|
761
|
-
.item-description {
|
|
762
|
-
flex: 1;
|
|
763
|
-
font-weight: var(--internal-font-weight-medium);
|
|
824
|
+
line-height: 1.25rem;
|
|
825
|
+
outline: none;
|
|
764
826
|
}
|
|
765
827
|
|
|
766
|
-
.
|
|
767
|
-
|
|
768
|
-
white-space: nowrap;
|
|
828
|
+
.coupon-row input::placeholder {
|
|
829
|
+
color: oklch(from var(--internal-muted-foreground) l c h / 0.64);
|
|
769
830
|
}
|
|
770
831
|
|
|
771
|
-
.
|
|
772
|
-
|
|
773
|
-
justify-content: space-between;
|
|
774
|
-
align-items: center;
|
|
775
|
-
padding-bottom: var(--internal-spacing-sm);
|
|
776
|
-
color: var(--internal-muted-foreground);
|
|
777
|
-
font-size: var(--internal-font-size-base);
|
|
778
|
-
font-style: normal;
|
|
832
|
+
.coupon-row input:disabled {
|
|
833
|
+
cursor: not-allowed;
|
|
779
834
|
}
|
|
780
835
|
|
|
781
|
-
.
|
|
782
|
-
|
|
836
|
+
.coupon-apply,
|
|
837
|
+
.coupon-remove {
|
|
838
|
+
position: absolute;
|
|
839
|
+
right: calc((var(--internal-spacing-xs) * 1.5) - 3px);
|
|
840
|
+
top: 50%;
|
|
841
|
+
transform: translateY(-50%);
|
|
842
|
+
padding: calc(var(--internal-spacing-xs) * 1.25) var(--internal-spacing-sm);
|
|
843
|
+
background: var(--internal-secondary);
|
|
844
|
+
color: var(--internal-foreground);
|
|
845
|
+
border-radius: calc(var(--internal-radius) - 2px);
|
|
846
|
+
font-size: var(--internal-font-size-xs);
|
|
847
|
+
font-weight: var(--internal-font-weight-medium);
|
|
848
|
+
cursor: pointer;
|
|
849
|
+
transition: all var(--internal-transition-fast);
|
|
783
850
|
}
|
|
784
851
|
|
|
785
|
-
.
|
|
786
|
-
|
|
852
|
+
.coupon-apply:hover:not(:disabled),
|
|
853
|
+
.coupon-remove:hover:not(:disabled) {
|
|
854
|
+
background: oklch(from var(--internal-accent) l c h / 0.8);
|
|
787
855
|
}
|
|
788
856
|
|
|
789
|
-
.
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
margin-bottom: var(--internal-spacing-sm);
|
|
794
|
-
}
|
|
795
|
-
|
|
796
|
-
.fee-row {
|
|
797
|
-
display: flex;
|
|
798
|
-
justify-content: space-between;
|
|
799
|
-
font-size: var(--internal-font-size-base);
|
|
800
|
-
color: var(--internal-foreground);
|
|
801
|
-
font-weight: var(--internal-font-weight-medium);
|
|
857
|
+
.coupon-apply:focus-visible,
|
|
858
|
+
.coupon-remove:focus-visible {
|
|
859
|
+
outline: 2px solid var(--internal-ring);
|
|
860
|
+
outline-offset: -1px;
|
|
802
861
|
}
|
|
803
862
|
|
|
804
|
-
.
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
font-weight: var(--internal-font-weight-bold);
|
|
809
|
-
color: var(--internal-foreground);
|
|
810
|
-
margin-bottom: var(--internal-spacing-md);
|
|
863
|
+
.coupon-apply:disabled,
|
|
864
|
+
.coupon-remove:disabled {
|
|
865
|
+
opacity: 0.6;
|
|
866
|
+
cursor: not-allowed;
|
|
811
867
|
}
|
|
812
868
|
|
|
813
869
|
.checkout-btn {
|
|
814
870
|
width: 100%;
|
|
815
|
-
padding: calc(var(--spacing-sm) + var(--spacing-xs))
|
|
816
|
-
|
|
817
|
-
color: var(--primary-foreground);
|
|
818
|
-
border: none;
|
|
819
|
-
border-radius: calc(var(--radius) - 2px);
|
|
871
|
+
padding: calc(var(--internal-spacing-sm) + var(--internal-spacing-xs))
|
|
872
|
+
var(--internal-spacing-lg);
|
|
820
873
|
font-size: var(--internal-font-size-base);
|
|
821
874
|
font-weight: var(--internal-font-weight-bold);
|
|
822
|
-
|
|
823
|
-
transition: all var(--internal-transition-fast);
|
|
824
|
-
box-shadow: var(--internal-shadow-sm);
|
|
875
|
+
line-height: 1.25;
|
|
825
876
|
position: relative;
|
|
826
877
|
overflow: hidden;
|
|
827
878
|
}
|
|
@@ -831,115 +882,153 @@
|
|
|
831
882
|
outline-offset: 2px;
|
|
832
883
|
}
|
|
833
884
|
|
|
834
|
-
.checkout-btn:hover:not(:disabled) {
|
|
835
|
-
background: oklch(from var(--primary) calc(l - 0.08) c h);
|
|
836
|
-
box-shadow: var(--shadow-md);
|
|
837
|
-
transform: translateY(-1px);
|
|
838
|
-
}
|
|
839
|
-
|
|
840
885
|
.checkout-btn:active:not(:disabled) {
|
|
841
886
|
transform: translateY(0);
|
|
842
|
-
box-shadow: var(--shadow-sm);
|
|
843
887
|
}
|
|
844
888
|
|
|
845
889
|
.checkout-btn:disabled {
|
|
846
|
-
opacity: 0.
|
|
890
|
+
opacity: 0.5;
|
|
847
891
|
cursor: not-allowed;
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
.checkout-spinner-wrapper {
|
|
895
|
+
display: inline-flex;
|
|
896
|
+
align-items: center;
|
|
897
|
+
justify-content: center;
|
|
898
|
+
height: 1.25em;
|
|
899
|
+
vertical-align: middle;
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
.checkout-spinner {
|
|
903
|
+
width: 1.125em;
|
|
904
|
+
height: 1.125em;
|
|
905
|
+
animation: checkout-spinner 0.8s linear infinite;
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
@keyframes checkout-spinner {
|
|
909
|
+
to {
|
|
910
|
+
transform: rotate(360deg);
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
.sticky-checkout-bar {
|
|
915
|
+
position: fixed;
|
|
916
|
+
right: 0;
|
|
917
|
+
bottom: 0;
|
|
918
|
+
left: 0;
|
|
919
|
+
z-index: 40;
|
|
920
|
+
display: none;
|
|
921
|
+
padding: var(--internal-spacing-md);
|
|
922
|
+
background: var(--internal-card);
|
|
923
|
+
border-top: 1px solid var(--internal-border);
|
|
924
|
+
box-shadow: var(--internal-shadow-lg);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
.sticky-checkout-btn.selection-prompt {
|
|
928
|
+
animation: selection-prompt-shake 400ms ease-in-out;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
@keyframes selection-prompt-shake {
|
|
932
|
+
0%,
|
|
933
|
+
100% {
|
|
934
|
+
transform: translateX(0);
|
|
935
|
+
}
|
|
936
|
+
25% {
|
|
937
|
+
transform: translateX(-4px);
|
|
938
|
+
}
|
|
939
|
+
75% {
|
|
940
|
+
transform: translateX(4px);
|
|
941
|
+
}
|
|
852
942
|
}
|
|
853
943
|
|
|
854
944
|
/* Loading & Error States */
|
|
855
|
-
.loading-state
|
|
856
|
-
.error-state {
|
|
945
|
+
.loading-state {
|
|
857
946
|
display: flex;
|
|
858
947
|
justify-content: center;
|
|
859
948
|
align-items: center;
|
|
860
|
-
padding: var(--spacing-xl);
|
|
949
|
+
padding: var(--internal-spacing-xl);
|
|
861
950
|
text-align: center;
|
|
862
951
|
min-height: 200px;
|
|
863
952
|
}
|
|
864
953
|
|
|
865
|
-
.error-state {
|
|
866
|
-
color: var(--primary);
|
|
867
|
-
}
|
|
868
|
-
|
|
869
954
|
.error-banner {
|
|
870
955
|
background: oklch(
|
|
871
|
-
from var(--destructive) calc(l + 0.4) calc(c * 0.2) h / 0.05
|
|
956
|
+
from var(--internal-destructive) calc(l + 0.4) calc(c * 0.2) h / 0.05
|
|
872
957
|
);
|
|
873
|
-
border: 1px solid oklch(from var(--destructive) l c h / 0.2);
|
|
874
|
-
border-radius: var(--radius);
|
|
875
|
-
padding: var(--spacing-lg);
|
|
876
|
-
margin: var(--spacing-lg);
|
|
958
|
+
border: 1px solid oklch(from var(--internal-destructive) l c h / 0.2);
|
|
959
|
+
border-radius: var(--internal-radius);
|
|
960
|
+
padding: var(--internal-spacing-lg);
|
|
961
|
+
margin: var(--internal-spacing-lg);
|
|
877
962
|
text-align: center;
|
|
878
963
|
}
|
|
879
964
|
|
|
880
965
|
.error-banner strong {
|
|
881
966
|
display: block;
|
|
882
|
-
color: var(--destructive);
|
|
883
|
-
font-size: var(--font-size-lg);
|
|
884
|
-
margin-bottom: var(--spacing-sm);
|
|
967
|
+
color: var(--internal-destructive);
|
|
968
|
+
font-size: var(--internal-font-size-lg);
|
|
969
|
+
margin-bottom: var(--internal-spacing-sm);
|
|
885
970
|
}
|
|
886
971
|
|
|
887
972
|
.error-banner p {
|
|
888
|
-
color: var(--muted-foreground);
|
|
889
|
-
margin-bottom: var(--spacing-md);
|
|
973
|
+
color: var(--internal-muted-foreground);
|
|
974
|
+
margin-bottom: var(--internal-spacing-md);
|
|
890
975
|
}
|
|
891
976
|
|
|
892
977
|
.retry-button {
|
|
893
|
-
background: var(--primary);
|
|
894
|
-
color: var(--primary-foreground);
|
|
895
|
-
border:
|
|
896
|
-
padding: calc(var(--spacing-sm) + var(--spacing-xs))
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
font-
|
|
978
|
+
background: var(--internal-primary);
|
|
979
|
+
color: var(--internal-primary-foreground);
|
|
980
|
+
border: 1px solid oklch(from var(--internal-primary) calc(l - 0.08) c h);
|
|
981
|
+
padding: calc(var(--internal-spacing-sm) + var(--internal-spacing-xs))
|
|
982
|
+
var(--internal-spacing-lg);
|
|
983
|
+
border-radius: calc(var(--internal-radius) - 2px);
|
|
984
|
+
font-size: var(--internal-font-size-sm);
|
|
985
|
+
font-weight: var(--internal-font-weight-medium);
|
|
900
986
|
cursor: pointer;
|
|
901
|
-
transition: all var(--transition-fast);
|
|
902
|
-
box-shadow: var(--shadow-
|
|
987
|
+
transition: all var(--internal-transition-fast);
|
|
988
|
+
box-shadow: var(--internal-shadow-edge-light);
|
|
903
989
|
}
|
|
904
990
|
|
|
905
991
|
.retry-button:focus-visible {
|
|
906
|
-
outline: 2px solid var(--ring);
|
|
992
|
+
outline: 2px solid var(--internal-ring);
|
|
907
993
|
outline-offset: 2px;
|
|
908
994
|
}
|
|
909
995
|
|
|
910
996
|
.retry-button:hover {
|
|
911
|
-
background: oklch(from var(--primary) calc(l - 0.08) c h);
|
|
912
|
-
box-shadow: var(--shadow-md);
|
|
997
|
+
background: oklch(from var(--internal-primary) calc(l - 0.08) c h);
|
|
913
998
|
transform: translateY(-1px);
|
|
914
999
|
}
|
|
915
1000
|
|
|
916
1001
|
.retry-button:active {
|
|
917
1002
|
transform: translateY(0);
|
|
918
|
-
box-shadow: var(--shadow-sm);
|
|
919
1003
|
}
|
|
920
1004
|
|
|
921
1005
|
.error-message {
|
|
922
1006
|
background: oklch(
|
|
923
|
-
from var(--destructive) calc(l + 0.4) calc(c * 0.2) h / 0.05
|
|
1007
|
+
from var(--internal-destructive) calc(l + 0.4) calc(c * 0.2) h / 0.05
|
|
924
1008
|
);
|
|
925
|
-
border: 1px solid oklch(from var(--destructive) l c h / 0.2);
|
|
926
|
-
color: var(--destructive);
|
|
927
|
-
padding: var(--spacing-sm) var(--spacing-md);
|
|
928
|
-
border-radius: var(--radius);
|
|
929
|
-
margin-bottom: var(--spacing-md);
|
|
930
|
-
font-size: var(--font-size-sm);
|
|
1009
|
+
border: 1px solid oklch(from var(--internal-destructive) l c h / 0.2);
|
|
1010
|
+
color: var(--internal-destructive);
|
|
1011
|
+
padding: var(--internal-spacing-sm) var(--internal-spacing-md);
|
|
1012
|
+
border-radius: var(--internal-radius);
|
|
1013
|
+
margin-bottom: var(--internal-spacing-md);
|
|
1014
|
+
font-size: var(--internal-font-size-sm);
|
|
931
1015
|
}
|
|
932
1016
|
|
|
933
1017
|
/* Responsive adjustments for larger screens */
|
|
934
1018
|
@media (min-width: 768px) {
|
|
935
1019
|
.ticket-section {
|
|
936
|
-
border-radius: var(--radius);
|
|
937
|
-
margin: 0 0 var(--spacing-md) 0;
|
|
1020
|
+
border-radius: var(--internal-radius);
|
|
1021
|
+
margin: 0 0 var(--internal-spacing-md) 0;
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
@media (max-width: 767px) {
|
|
1026
|
+
:host([data-sticky-checkout="true"]) .session-services-ticketing-container {
|
|
1027
|
+
padding-bottom: calc(var(--internal-spacing-xl) * 3);
|
|
938
1028
|
}
|
|
939
1029
|
|
|
940
|
-
.
|
|
941
|
-
|
|
942
|
-
margin: var(--spacing-md) 0;
|
|
1030
|
+
.sticky-checkout-bar {
|
|
1031
|
+
display: block;
|
|
943
1032
|
}
|
|
944
1033
|
}
|
|
945
1034
|
|