@arquimedes.co/eureka-forms 3.0.52-test → 3.0.53-new-steps

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.
Files changed (102) hide show
  1. package/dist/@Types/AvailabilityFormStep.d.ts +48 -0
  2. package/dist/@Types/AvailabilityFormStep.js +24 -0
  3. package/dist/@Types/BankAccountFormStep.d.ts +67 -0
  4. package/dist/@Types/BankAccountFormStep.js +14 -0
  5. package/dist/@Types/BookingFormStep.d.ts +166 -0
  6. package/dist/@Types/BookingFormStep.js +44 -0
  7. package/dist/@Types/CalendarFormStep.d.ts +192 -0
  8. package/dist/@Types/CalendarFormStep.js +48 -0
  9. package/dist/@Types/CommunicationChannelFormStep.d.ts +51 -0
  10. package/dist/@Types/CommunicationChannelFormStep.js +15 -0
  11. package/dist/@Types/ConsentFormStep.d.ts +36 -0
  12. package/dist/@Types/ConsentFormStep.js +8 -0
  13. package/dist/@Types/EntityFormFormStep.d.ts +66 -0
  14. package/dist/@Types/EntityFormFormStep.js +20 -0
  15. package/dist/@Types/EventFormStep.d.ts +52 -0
  16. package/dist/@Types/EventFormStep.js +13 -0
  17. package/dist/@Types/ExternalReferenceFormStep.d.ts +74 -0
  18. package/dist/@Types/ExternalReferenceFormStep.js +20 -0
  19. package/dist/@Types/FormStep.d.ts +7 -2
  20. package/dist/@Types/FormStep.js +2 -1
  21. package/dist/@Types/LocationFormStep.d.ts +159 -0
  22. package/dist/@Types/LocationFormStep.js +46 -0
  23. package/dist/@Types/NumericFormSteps.d.ts +108 -0
  24. package/dist/@Types/NumericFormSteps.js +20 -0
  25. package/dist/@Types/PredefinedSelectorFormStep.d.ts +51 -0
  26. package/dist/@Types/PredefinedSelectorFormStep.js +39 -0
  27. package/dist/@Types/StepRef.d.ts +135 -0
  28. package/dist/@Types/StepRef.js +49 -0
  29. package/dist/FormSteps/BookingStep/BookingStep.d.ts +17 -0
  30. package/dist/FormSteps/BookingStep/BookingStep.js +14 -0
  31. package/dist/FormSteps/BookingStep/MaterialBookingStep/MaterialBookingStep.d.ts +7 -0
  32. package/dist/FormSteps/BookingStep/MaterialBookingStep/MaterialBookingStep.js +32 -0
  33. package/dist/FormSteps/CalendarStep/CalendarStep.d.ts +7 -0
  34. package/dist/FormSteps/CalendarStep/CalendarStep.js +14 -0
  35. package/dist/FormSteps/CalendarStep/MaterialCalendarStep/MaterialCalendarStep.d.ts +7 -0
  36. package/dist/FormSteps/CalendarStep/MaterialCalendarStep/MaterialCalendarStep.js +31 -0
  37. package/dist/FormSteps/LocationStep/LocationStep.d.ts +10 -0
  38. package/dist/FormSteps/LocationStep/LocationStep.js +14 -0
  39. package/dist/FormSteps/LocationStep/MaterialLocationStep/MaterialLocationStep.d.ts +3 -0
  40. package/dist/FormSteps/LocationStep/MaterialLocationStep/MaterialLocationStep.js +47 -0
  41. package/dist/FormSteps/LocationStep/MaterialLocationStep/MaterialLocationStep.module.css +18 -0
  42. package/dist/FormSteps/NumberStep/MaterialNumberStep/MaterialNumberStep.d.ts +3 -0
  43. package/dist/FormSteps/NumberStep/MaterialNumberStep/MaterialNumberStep.js +168 -0
  44. package/dist/FormSteps/NumberStep/MaterialNumberStep/MaterialNumberStep.module.css +94 -0
  45. package/dist/FormSteps/NumberStep/NumberStep.d.ts +10 -0
  46. package/dist/FormSteps/NumberStep/NumberStep.js +14 -0
  47. package/dist/FormSteps/Step.js +16 -0
  48. package/dist/FormSteps/StepFunctions.js +14 -0
  49. package/dist/FormSteps/StepFunctions.test.js +54 -0
  50. package/dist/Icons/AddIcon.d.ts +3 -0
  51. package/dist/Icons/AddIcon.js +7 -0
  52. package/dist/Icons/EditIcon.d.ts +3 -0
  53. package/dist/Icons/EditIcon.js +7 -0
  54. package/dist/Icons/RemoveIcon.d.ts +3 -0
  55. package/dist/Icons/RemoveIcon.js +7 -0
  56. package/dist/Icons/ViewDayIcon.d.ts +3 -0
  57. package/dist/Icons/ViewDayIcon.js +7 -0
  58. package/dist/Icons/ViewWeekIcon.d.ts +3 -0
  59. package/dist/Icons/ViewWeekIcon.js +7 -0
  60. package/dist/Shared/ErkAddressAutocomplete/ErkAddressAutocomplete.d.ts +19 -0
  61. package/dist/Shared/ErkAddressAutocomplete/ErkAddressAutocomplete.js +80 -0
  62. package/dist/Shared/ErkAddressAutocomplete/ErkAddressAutocomplete.module.css +82 -0
  63. package/dist/Shared/ErkAddressAutocomplete/googlePlaces.d.ts +29 -0
  64. package/dist/Shared/ErkAddressAutocomplete/googlePlaces.js +139 -0
  65. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.d.ts +31 -0
  66. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.js +223 -0
  67. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.module.css +608 -0
  68. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.stories.d.ts +28 -0
  69. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.stories.js +117 -0
  70. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.stories.test.d.ts +1 -0
  71. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.stories.test.js +49 -0
  72. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.test.d.ts +1 -0
  73. package/dist/Shared/ErkBookingPicker/ErkBookingPicker.test.js +107 -0
  74. package/dist/Shared/ErkCalendar/CalendarFunctions.d.ts +28 -0
  75. package/dist/Shared/ErkCalendar/CalendarFunctions.js +121 -0
  76. package/dist/Shared/ErkCalendar/CalendarPopovers.d.ts +45 -0
  77. package/dist/Shared/ErkCalendar/CalendarPopovers.js +110 -0
  78. package/dist/Shared/ErkCalendar/ErkCalendar.d.ts +73 -0
  79. package/dist/Shared/ErkCalendar/ErkCalendar.js +293 -0
  80. package/dist/Shared/ErkCalendar/ErkCalendar.module.css +775 -0
  81. package/dist/Shared/ErkCalendar/ErkCalendar.test.d.ts +1 -0
  82. package/dist/Shared/ErkCalendar/ErkCalendar.test.js +171 -0
  83. package/dist/Shared/ErkDatePicker/ErkDatePicker.js +1 -3
  84. package/dist/Shared/ErkDateRangePicker/ErkDateRangePicker.d.ts +2 -3
  85. package/dist/Shared/ErkDateRangePicker/ErkDateRangePicker.js +1 -2
  86. package/dist/Shared/ErkLocationField/ErkLocationField.d.ts +23 -0
  87. package/dist/Shared/ErkLocationField/ErkLocationField.js +73 -0
  88. package/dist/Shared/ErkLocationField/ErkLocationField.module.css +29 -0
  89. package/dist/Shared/ErkLocationField/addressFields.d.ts +12 -0
  90. package/dist/Shared/ErkLocationField/addressFields.js +34 -0
  91. package/dist/Shared/ErkLocationField/locationRestrictions.d.ts +6 -0
  92. package/dist/Shared/ErkLocationField/locationRestrictions.js +51 -0
  93. package/dist/Shared/ErkLocationInput/ErkLocationInput.d.ts +15 -0
  94. package/dist/Shared/ErkLocationInput/ErkLocationInput.js +502 -0
  95. package/dist/Shared/ErkLocationInput/ErkLocationInput.module.css +115 -0
  96. package/dist/Shared/ErkNumberField/ErkNumberField.d.ts +42 -0
  97. package/dist/Shared/ErkNumberField/ErkNumberField.js +170 -0
  98. package/dist/constants/FormStepTypes.d.ts +5 -1
  99. package/dist/constants/FormStepTypes.js +4 -0
  100. package/dist/index.lib.d.ts +4 -2
  101. package/dist/index.lib.js +3 -1
  102. package/package.json +2 -1
@@ -0,0 +1,608 @@
1
+ .container {
2
+ max-width: 100%;
3
+ box-sizing: border-box;
4
+ }
5
+
6
+ .card {
7
+ border: 1px solid var(--eureka-outline, #d9dee6);
8
+ border-radius: 16px;
9
+ overflow: hidden;
10
+ background: var(--eureka-bg, #fff);
11
+ box-shadow: 0 12px 34px rgba(43, 65, 93, 0.08);
12
+ transition: opacity 0.15s ease;
13
+ /* La columna derecha queda a la medida de su contenido (calendario ~360px, personas ~420px) */
14
+ max-width: 700px;
15
+ margin: 0 auto;
16
+ }
17
+ /* En el paso final el contenido es una sola columna: la tarjeta se angosta aún más */
18
+ .cardFinal {
19
+ max-width: 560px;
20
+ }
21
+ .xfade {
22
+ opacity: 0;
23
+ }
24
+ .book {
25
+ display: grid;
26
+ grid-template-columns: 280px 1fr;
27
+ min-height: 400px;
28
+ }
29
+
30
+ /* ---------- Left: who + details + progress ---------- */
31
+ .who {
32
+ padding: 22px 20px;
33
+ border-right: 1px solid var(--eureka-outline, #eceff3);
34
+ display: flex;
35
+ flex-direction: column;
36
+ gap: 16px;
37
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 4%, #fff);
38
+ }
39
+ .brand {
40
+ display: flex;
41
+ align-items: center;
42
+ gap: 11px;
43
+ }
44
+ .avatar {
45
+ width: 46px;
46
+ height: 46px;
47
+ border-radius: 50%;
48
+ background: var(--eureka-primary, #3d5a7f);
49
+ color: #fff;
50
+ display: grid;
51
+ place-items: center;
52
+ font-weight: 800;
53
+ font-size: 17px;
54
+ flex: none;
55
+ }
56
+ .brandName {
57
+ margin: 0;
58
+ font-size: 16px;
59
+ font-weight: 800;
60
+ color: var(--eureka-text, #293241);
61
+ }
62
+ .brandRole {
63
+ margin: 2px 0 0;
64
+ font-size: 12.5px;
65
+ color: #787878;
66
+ }
67
+ .meta {
68
+ display: flex;
69
+ flex-direction: column;
70
+ gap: 11px;
71
+ }
72
+ .row {
73
+ display: flex;
74
+ align-items: center;
75
+ gap: 10px;
76
+ font-size: 13px;
77
+ color: var(--eureka-text, #293241);
78
+ }
79
+ .ic {
80
+ color: var(--eureka-primary, #3d5a7f);
81
+ width: 16px;
82
+ text-align: center;
83
+ flex: none;
84
+ }
85
+ .pill {
86
+ display: inline-flex;
87
+ align-items: center;
88
+ gap: 6px;
89
+ font-size: 12px;
90
+ font-weight: 700;
91
+ padding: 3px 10px;
92
+ border-radius: 20px;
93
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 10%, #fff);
94
+ color: var(--eureka-primary, #3d5a7f);
95
+ }
96
+
97
+ .sum {
98
+ display: flex;
99
+ flex-direction: column;
100
+ gap: 8px;
101
+ border-top: 1px solid var(--eureka-outline, #eceff3);
102
+ padding-top: 14px;
103
+ }
104
+ .srow {
105
+ display: flex;
106
+ align-items: center;
107
+ gap: 9px;
108
+ font-size: 13px;
109
+ color: #787878;
110
+ }
111
+ .dot {
112
+ width: 18px;
113
+ height: 18px;
114
+ border-radius: 50%;
115
+ border: 1.5px dashed var(--eureka-outline, #d9dee6);
116
+ flex: none;
117
+ display: grid;
118
+ place-items: center;
119
+ font-size: 10px;
120
+ color: transparent;
121
+ }
122
+ .srowOn {
123
+ color: var(--eureka-text, #293241);
124
+ font-weight: 600;
125
+ }
126
+ .srowOn .dot {
127
+ border: none;
128
+ background: #2e9367;
129
+ color: #fff;
130
+ }
131
+
132
+ .lock {
133
+ margin-top: auto;
134
+ font-size: 12px;
135
+ color: #787878;
136
+ background: #fff7ed;
137
+ border: 1px solid #f4d9b0;
138
+ border-radius: 9px;
139
+ padding: 8px 10px;
140
+ }
141
+ .lock b {
142
+ color: #b7791f;
143
+ }
144
+
145
+ /* ---------- Right: breadcrumb + one pane at a time ---------- */
146
+ .right {
147
+ padding: 18px 22px 22px;
148
+ min-width: 0;
149
+ display: flex;
150
+ flex-direction: column;
151
+ }
152
+
153
+ .stepper {
154
+ display: flex;
155
+ align-items: center;
156
+ gap: 8px;
157
+ font-size: 12.5px;
158
+ color: #787878;
159
+ margin-bottom: 20px;
160
+ flex-wrap: wrap;
161
+ }
162
+ .stepGroup {
163
+ display: inline-flex;
164
+ align-items: center;
165
+ gap: 8px;
166
+ }
167
+ .stepItem {
168
+ display: inline-flex;
169
+ align-items: center;
170
+ gap: 7px;
171
+ border: none;
172
+ background: none;
173
+ padding: 0;
174
+ font: inherit;
175
+ color: inherit;
176
+ cursor: default;
177
+ }
178
+ .stepNum {
179
+ width: 20px;
180
+ height: 20px;
181
+ border-radius: 50%;
182
+ display: grid;
183
+ place-items: center;
184
+ font-size: 11px;
185
+ font-weight: 800;
186
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 8%, #fff);
187
+ color: #9aa3b0;
188
+ flex: none;
189
+ }
190
+ .stepDone {
191
+ color: var(--eureka-text, #293241);
192
+ cursor: pointer;
193
+ }
194
+ .stepDone .stepNum {
195
+ background: #2e9367;
196
+ color: #fff;
197
+ }
198
+ .stepOn {
199
+ color: var(--eureka-text, #293241);
200
+ font-weight: 700;
201
+ }
202
+ .stepOn .stepNum {
203
+ background: var(--eureka-primary, #3d5a7f);
204
+ color: #fff;
205
+ }
206
+ .stepSep {
207
+ width: 22px;
208
+ height: 1px;
209
+ background: var(--eureka-outline, #d9dee6);
210
+ }
211
+
212
+ .pane {
213
+ flex: 1;
214
+ animation: erk-booking-fadein 0.22s ease;
215
+ }
216
+ @keyframes erk-booking-fadein {
217
+ from {
218
+ opacity: 0;
219
+ transform: translateY(4px);
220
+ }
221
+ to {
222
+ opacity: 1;
223
+ transform: none;
224
+ }
225
+ }
226
+
227
+ .q {
228
+ margin: 0 0 4px;
229
+ font-size: 17px;
230
+ font-weight: 800;
231
+ color: var(--eureka-text, #293241);
232
+ text-wrap: balance;
233
+ }
234
+ .qsub {
235
+ margin: 0 0 18px;
236
+ font-size: 13px;
237
+ color: #787878;
238
+ }
239
+
240
+ /* step: person */
241
+ .persons {
242
+ display: flex;
243
+ flex-direction: column;
244
+ gap: 10px;
245
+ max-width: 420px;
246
+ }
247
+ .pcard {
248
+ display: flex;
249
+ align-items: center;
250
+ gap: 12px;
251
+ border: 1px solid var(--eureka-outline, #d9dee6);
252
+ border-radius: 12px;
253
+ padding: 11px 14px 11px 11px;
254
+ background: #fff;
255
+ cursor: pointer;
256
+ text-align: left;
257
+ width: 100%;
258
+ font: inherit;
259
+ }
260
+ .pcard:hover {
261
+ border-color: var(--eureka-primary, #3d5a7f);
262
+ }
263
+ .pcardOn {
264
+ border-color: var(--eureka-primary, #3d5a7f);
265
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 8%, #fff);
266
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--eureka-primary, #3d5a7f) 12%, transparent);
267
+ }
268
+ .pav {
269
+ width: 38px;
270
+ height: 38px;
271
+ border-radius: 50%;
272
+ background: #c9d4e2;
273
+ color: #2b415d;
274
+ display: grid;
275
+ place-items: center;
276
+ font-weight: 800;
277
+ font-size: 13px;
278
+ flex: none;
279
+ }
280
+ .pcardAny .pav {
281
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 8%, #fff);
282
+ color: var(--eureka-primary, #3d5a7f);
283
+ }
284
+ .pinfo {
285
+ display: flex;
286
+ flex-direction: column;
287
+ }
288
+ .pn {
289
+ font-size: 14px;
290
+ font-weight: 700;
291
+ color: var(--eureka-text, #293241);
292
+ }
293
+ .pr {
294
+ font-size: 12px;
295
+ color: #787878;
296
+ }
297
+ .chk {
298
+ margin-left: auto;
299
+ color: #2e9367;
300
+ font-weight: 800;
301
+ visibility: hidden;
302
+ }
303
+ .pcardOn .chk {
304
+ visibility: visible;
305
+ }
306
+
307
+ /* step: day (month grid) */
308
+ .monthWrap {
309
+ max-width: 360px;
310
+ }
311
+ .monthHead {
312
+ display: flex;
313
+ align-items: center;
314
+ justify-content: space-between;
315
+ margin-bottom: 8px;
316
+ }
317
+ .monthTitle {
318
+ font-size: 13.5px;
319
+ font-weight: 700;
320
+ color: var(--eureka-text, #293241);
321
+ }
322
+ .monthNav button {
323
+ border: none;
324
+ background: none;
325
+ color: #787878;
326
+ cursor: pointer;
327
+ font-size: 15px;
328
+ padding: 2px 8px;
329
+ border-radius: 6px;
330
+ }
331
+ .monthNav button:hover {
332
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 8%, #fff);
333
+ }
334
+ .mgrid {
335
+ display: grid;
336
+ grid-template-columns: repeat(7, 1fr);
337
+ gap: 4px;
338
+ font-variant-numeric: tabular-nums;
339
+ }
340
+ .mdow {
341
+ text-align: center;
342
+ font-size: 10px;
343
+ font-weight: 700;
344
+ color: #9aa3b0;
345
+ padding-bottom: 2px;
346
+ }
347
+ .mday {
348
+ position: relative;
349
+ aspect-ratio: 1;
350
+ display: grid;
351
+ place-items: center;
352
+ font-size: 13px;
353
+ border: none;
354
+ background: none;
355
+ border-radius: 9px;
356
+ cursor: pointer;
357
+ font: inherit;
358
+ }
359
+ .mdayFree {
360
+ color: var(--eureka-text, #293241);
361
+ font-weight: 600;
362
+ }
363
+ .mdayFree::after {
364
+ content: '';
365
+ position: absolute;
366
+ bottom: 5px;
367
+ width: 4px;
368
+ height: 4px;
369
+ border-radius: 50%;
370
+ background: #2e9367;
371
+ }
372
+ .mdayFree:hover {
373
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 8%, #fff);
374
+ }
375
+ .mdayNone {
376
+ color: #c8ced7;
377
+ cursor: default;
378
+ }
379
+ .mdaySel {
380
+ background: var(--eureka-primary, #3d5a7f);
381
+ color: #fff;
382
+ font-weight: 700;
383
+ }
384
+ .mdaySel::after {
385
+ content: '';
386
+ position: absolute;
387
+ bottom: 5px;
388
+ width: 4px;
389
+ height: 4px;
390
+ border-radius: 50%;
391
+ background: #fff;
392
+ }
393
+
394
+ /* step: hour */
395
+ .slots {
396
+ display: grid;
397
+ grid-template-columns: repeat(3, 1fr);
398
+ gap: 9px;
399
+ max-width: 380px;
400
+ }
401
+ .slot {
402
+ border: 1px solid var(--eureka-outline, #d9dee6);
403
+ background: #fff;
404
+ border-radius: 10px;
405
+ padding: 11px 0;
406
+ font-size: 13.5px;
407
+ font-weight: 600;
408
+ color: var(--eureka-primary, #3d5a7f);
409
+ cursor: pointer;
410
+ font-variant-numeric: tabular-nums;
411
+ font-family: inherit;
412
+ }
413
+ .slot:hover {
414
+ border-color: var(--eureka-primary, #3d5a7f);
415
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 7%, #fff);
416
+ }
417
+ .slotSel {
418
+ background: var(--eureka-primary, #3d5a7f);
419
+ color: #fff;
420
+ border-color: var(--eureka-primary, #3d5a7f);
421
+ }
422
+ .slotTaken {
423
+ color: #c3c9d2;
424
+ border-style: dashed;
425
+ cursor: not-allowed;
426
+ text-decoration: line-through;
427
+ }
428
+ .takenNote {
429
+ margin: 10px 0 0;
430
+ font-size: 11.5px;
431
+ color: #787878;
432
+ }
433
+ .empty {
434
+ font-size: 13px;
435
+ color: #787878;
436
+ padding: 12px 0;
437
+ }
438
+
439
+ /* step: confirm — the left summary expands into a centered stacked column */
440
+ .bookFinal {
441
+ display: flex;
442
+ flex-direction: column;
443
+ }
444
+ .bookFinal .right {
445
+ order: 1;
446
+ flex: none;
447
+ }
448
+ .bookFinal .who {
449
+ order: 2;
450
+ flex: 1;
451
+ border-right: none;
452
+ border-top: 1px solid var(--eureka-outline, #eceff3);
453
+ padding: 24px 20px;
454
+ gap: 18px;
455
+ align-items: center;
456
+ }
457
+ .bookFinal .who > * {
458
+ width: 100%;
459
+ max-width: 440px;
460
+ }
461
+ .bookFinal .lock {
462
+ margin-top: 4px;
463
+ }
464
+ .bookFinal .right {
465
+ padding-bottom: 10px;
466
+ }
467
+ .paneFinal {
468
+ flex: none;
469
+ }
470
+ .paneFinal .qsub {
471
+ margin-bottom: 0;
472
+ }
473
+
474
+ /* ---------- Bottom bar: navigation ---------- */
475
+ .navbar {
476
+ display: flex;
477
+ align-items: center;
478
+ gap: 14px;
479
+ padding: 14px 22px;
480
+ border-top: 1px solid var(--eureka-outline, #eceff3);
481
+ background: color-mix(in srgb, var(--eureka-primary, #3d5a7f) 3%, #fff);
482
+ }
483
+ .navSummary {
484
+ flex: 1;
485
+ min-width: 0;
486
+ font-size: 13px;
487
+ color: #787878;
488
+ overflow: hidden;
489
+ text-overflow: ellipsis;
490
+ white-space: nowrap;
491
+ }
492
+ .navSummary b {
493
+ color: var(--eureka-text, #293241);
494
+ }
495
+ .navHl {
496
+ color: var(--booking-accent, #ee6c4d);
497
+ font-weight: 800;
498
+ }
499
+ /* Contacto: vive en la columna del paso final, apilado como el resto del resumen */
500
+ .cfields {
501
+ display: flex;
502
+ flex-direction: column;
503
+ gap: 10px;
504
+ }
505
+ .err {
506
+ font-size: 12px;
507
+ color: #d0473f;
508
+ margin-top: 6px;
509
+ }
510
+
511
+ /* entry card — trigger and booked summary share the wizard card aesthetic */
512
+ .entry {
513
+ display: flex;
514
+ align-items: center;
515
+ gap: 13px;
516
+ border: 1px solid var(--eureka-outline, #d9dee6);
517
+ border-radius: 16px;
518
+ padding: 14px 18px;
519
+ background: var(--eureka-bg, #fff);
520
+ box-shadow: 0 12px 34px rgba(43, 65, 93, 0.08);
521
+ max-width: 560px;
522
+ }
523
+ .entryInfo {
524
+ flex: 1;
525
+ display: flex;
526
+ flex-direction: column;
527
+ gap: 2px;
528
+ min-width: 0;
529
+ }
530
+ .entryLabel {
531
+ font-size: 14.5px;
532
+ font-weight: 700;
533
+ color: var(--eureka-text, #293241);
534
+ }
535
+ .entrySub {
536
+ font-size: 12.5px;
537
+ color: #787878;
538
+ }
539
+ .bookedIcon {
540
+ width: 46px;
541
+ height: 46px;
542
+ border-radius: 50%;
543
+ background: #2e9367;
544
+ color: #fff;
545
+ display: grid;
546
+ place-items: center;
547
+ font-weight: 800;
548
+ font-size: 17px;
549
+ flex: none;
550
+ }
551
+ .bookedMain {
552
+ font-size: 13.5px;
553
+ font-weight: 600;
554
+ color: var(--eureka-text, #293241);
555
+ }
556
+
557
+ @media (prefers-reduced-motion: reduce) {
558
+ .pane {
559
+ animation: none;
560
+ }
561
+ .card {
562
+ transition: none;
563
+ }
564
+ }
565
+
566
+ /* responsive */
567
+ @media (max-width: 760px) {
568
+ .book {
569
+ grid-template-columns: 1fr;
570
+ min-height: 0;
571
+ }
572
+ .who {
573
+ border-right: none;
574
+ border-bottom: 1px solid var(--eureka-outline, #eceff3);
575
+ }
576
+ .lock {
577
+ margin-top: 4px;
578
+ }
579
+ .right {
580
+ padding: 16px 16px 20px;
581
+ }
582
+ .persons,
583
+ .monthWrap {
584
+ max-width: none;
585
+ }
586
+ .slots {
587
+ max-width: none;
588
+ }
589
+ .navbar {
590
+ flex-wrap: wrap;
591
+ }
592
+ .navSummary {
593
+ flex-basis: 100%;
594
+ white-space: normal;
595
+ }
596
+ }
597
+ @media (max-width: 400px) {
598
+ .slots {
599
+ grid-template-columns: repeat(2, 1fr);
600
+ }
601
+ .stepper {
602
+ font-size: 11.5px;
603
+ gap: 5px;
604
+ }
605
+ .stepSep {
606
+ width: 12px;
607
+ }
608
+ }
@@ -0,0 +1,28 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import ErkBookingPicker, { ErkBookingPickerProps } from './ErkBookingPicker';
3
+ import { withFormStepProviders } from '../../FormSteps/@StoryDecorators/FormStepDecorator';
4
+ /** Controlled wrapper so the picker's value is interactive in Storybook. */
5
+ declare function Interactive(args: ErkBookingPickerProps): JSX.Element;
6
+ declare const meta: {
7
+ component: typeof ErkBookingPicker;
8
+ tags: string[];
9
+ decorators: (typeof withFormStepProviders)[];
10
+ render: typeof Interactive;
11
+ args: {
12
+ onChange: () => void;
13
+ };
14
+ };
15
+ export default meta;
16
+ type Story = StoryObj<typeof meta>;
17
+ /** Full flow: person → date → time. */
18
+ export declare const WithPersonSelection: Story;
19
+ /** Optional person — adds a "Cualquiera" option. */
20
+ export declare const PersonOptional: Story;
21
+ /** No person selection → straight to date + time. */
22
+ export declare const NoPerson: Story;
23
+ /** Extra contact step (collectContact). */
24
+ export declare const WithContact: Story;
25
+ /** Full config: contact data, buffer, lock notice and in-person mode. */
26
+ export declare const Complete: Story;
27
+ /** Already booked / read-only summary. */
28
+ export declare const ReadOnly: Story;