@riverbankcms/sdk 0.98.0 → 0.99.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/{PreviewEditorSidebar-CG3SSJND.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
- package/dist/{PreviewEditorUI-RHNGKAAU.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
- package/dist/_dts/api/src/billing.d.ts +2 -0
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/endpoints.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/siteOperations.d.ts +65 -1
- package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
- package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
- package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
- package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/utils/date-formatting.d.ts +17 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +274 -30
- package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
- package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
- package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
- package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
- package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
- package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
- package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
- package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
- package/dist/_dts/sdk/src/client/index.d.ts +6 -0
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
- package/dist/_dts/sdk/src/next/types.d.ts +19 -0
- package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +6 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
- package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
- package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
- package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
- package/dist/_dts/sdk/src/test/env.d.ts +4 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +3 -3
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
- package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
- package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
- package/dist/{chunk-H24OU7WG.mjs → chunk-4HXF2QLH.mjs} +2 -2
- package/dist/{chunk-QPXE2OUZ.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
- package/dist/{chunk-PKDPQHB5.mjs → chunk-PM7HGDHM.mjs} +2 -2
- package/dist/{chunk-DBRI3PQF.mjs → chunk-XO34WBBP.mjs} +1383 -1143
- package/dist/{chunk-6WDBXCPX.mjs → chunk-YGTTEVUM.mjs} +7 -7
- package/dist/{chunk-V2BYFSPW.mjs → chunk-YWTCCOSF.mjs} +8 -0
- package/dist/cli/index.mjs +1010 -921
- package/dist/client/{accordion-Q2BDNL53.mjs → accordion-QSUEYL4L.mjs} +2 -2
- package/dist/client/{bookingForm-ZMP4P7EK.mjs → bookingForm-QYGAHPDP.mjs} +364 -300
- package/dist/client/bookings.mjs +697 -411
- package/dist/client/{carousel-LW3UXPWO.mjs → carousel-SM2LEWAU.mjs} +3 -3
- package/dist/client/{cart-Z6D3KS6K.mjs → cart-3N3SFKNQ.mjs} +7 -7
- package/dist/client/{checkout-YMT2QJQM.mjs → checkout-YFAYPKPZ.mjs} +7 -7
- package/dist/client/{chunk-XNTHVZ25.mjs → chunk-5DLGREUB.mjs} +1 -1
- package/dist/client/{chunk-SK2BMD22.mjs → chunk-CLZ7NBSP.mjs} +147 -75
- package/dist/client/{chunk-R4XK3CKR.mjs → chunk-CYJ3MUFP.mjs} +6 -5
- package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
- package/dist/client/{chunk-IEOECM7U.mjs → chunk-HPEQ4YWW.mjs} +28 -73
- package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
- package/dist/client/{chunk-KDP7ZRZV.mjs → chunk-IOAHWAQG.mjs} +2 -0
- package/dist/client/{chunk-26ZBRXFR.mjs → chunk-JTKBF3W2.mjs} +3 -3
- package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
- package/dist/client/{chunk-ET2MDQQT.mjs → chunk-R32M5HFS.mjs} +6 -6
- package/dist/client/{chunk-DRRQ7QSL.mjs → chunk-WEVT46PX.mjs} +3 -3
- package/dist/client/{chunk-HBQEAOG4.mjs → chunk-ZU65LTI3.mjs} +1 -1
- package/dist/client/client.mjs +1875 -1581
- package/dist/client/{courseRegistration-DGKCMC77.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
- package/dist/client/{eventCalendar-74Z2NNFM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
- package/dist/client/{eventCombined-GK2ODOX2.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
- package/dist/client/{eventDetails-MONAGT3N.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
- package/dist/client/{eventListing-SKGAO6PS.mjs → eventListing-TB623B6R.mjs} +9 -9
- package/dist/client/{eventRegistration-6KISGXRD.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
- package/dist/client/{form-FXPRTXHI.mjs → form-Y4U4IAXE.mjs} +3 -3
- package/dist/client/{headerSection-7NAN5WNB.mjs → headerSection-QSOVV5P7.mjs} +3 -3
- package/dist/client/hooks.mjs +115 -21
- package/dist/client/{locationMap-UERN74U4.mjs → locationMap-QYCAHH7H.mjs} +3 -3
- package/dist/client/{newsletterForm-SGWXMJ7U.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
- package/dist/client/{productDetail-HN3HWZQZ.mjs → productDetail-FYDMU2CE.mjs} +7 -7
- package/dist/client/{productList-YT22Z5UR.mjs → productList-D76CGACQ.mjs} +7 -7
- package/dist/client/rendering/client.mjs +1209 -975
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +1952 -1638
- package/dist/client/{shop-TKEDNWUS.mjs → shop-SOUACT5N.mjs} +7 -7
- package/dist/preview-next/before-render.mjs +8 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +8 -0
- package/dist/{sdk-runtime-LWNYCQF2.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
- package/dist/server/components.mjs +917 -765
- package/dist/server/config-validation.mjs +100 -19
- package/dist/server/config.mjs +100 -19
- package/dist/server/data.mjs +115 -21
- package/dist/server/index.mjs +59 -25
- package/dist/server/next.mjs +1017 -816
- package/dist/server/page-converter.mjs +92 -19
- package/dist/server/prebuild-loader.mjs +42 -23
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +932 -767
- package/dist/server/rendering.mjs +968 -776
- package/dist/server/routing.mjs +162 -36
- package/dist/server/server.mjs +156 -32
- package/dist/server/theme-bridge.mjs +597 -505
- package/dist/server/theme.mjs +5 -4
- package/dist/styles/index.css +499 -490
- package/package.json +6 -4
- package/dist/SdkPreviewModeRuntime-OV5PNJBB.mjs +0 -8
package/dist/styles/index.css
CHANGED
|
@@ -3208,13 +3208,36 @@
|
|
|
3208
3208
|
|
|
3209
3209
|
|
|
3210
3210
|
/* =============================================================================
|
|
3211
|
-
* Shared: Registration
|
|
3212
|
-
* Used by event-registration and course-registration blocks.
|
|
3211
|
+
* Shared: Registration Surface (issue 1174)
|
|
3213
3212
|
*
|
|
3214
|
-
*
|
|
3215
|
-
*
|
|
3213
|
+
* Wizard-surface primitives shared by the event-registration,
|
|
3214
|
+
* course-registration and appointment-booking blocks: surface container,
|
|
3215
|
+
* selectable option cards, step indicator, wizard actions row, on-surface
|
|
3216
|
+
* text ramp, layout stacks, summary box and skeleton shell lines.
|
|
3217
|
+
*
|
|
3218
|
+
* Uses:
|
|
3219
|
+
* - Tier 1 vars: --tb-* (from theme palette) as inline fallbacks
|
|
3220
|
+
* - Tier 2 vars: --rb-block-radius, --rb-block-transition (from theme scope)
|
|
3221
|
+
* - Shared vars: --rb-reg-* (mapped per block by the Tier 3 var generators;
|
|
3222
|
+
* canonical name list in blocks/registrationSurfaceVars.ts)
|
|
3223
|
+
*
|
|
3224
|
+
* Defaults intentionally match the event-registration (issue 1089) values; blocks
|
|
3225
|
+
* that need to preserve a different look override in their own block CSS,
|
|
3226
|
+
* which is imported after this file (cascade order is the override contract —
|
|
3227
|
+
* all selectors here are zero-specificity `:where()`).
|
|
3228
|
+
*
|
|
3229
|
+
* Layout-only `.rb-state-icon` rules (formerly registration-shared.css) live
|
|
3230
|
+
* here too; block CSS provides the `.rb-state-icon--{variant}` colors.
|
|
3231
|
+
*
|
|
3232
|
+
* Naming: component-like primitives follow the existing bare `rb-` shared
|
|
3233
|
+
* precedent (`.rb-state-icon`, `.rb-tile`): `.rb-option-card`, `.rb-step-*`,
|
|
3234
|
+
* `.rb-wizard-actions`, `.rb-on-surface`, `.rb-shell-*`. Container/layout
|
|
3235
|
+
* pieces that would otherwise collide with the global `.rb-*` utility layer
|
|
3236
|
+
* are namespaced `rb-reg-*` (`.rb-reg-surface`, `.rb-reg-stack`, ...). All of
|
|
3237
|
+
* them are scoped to the three registration blocks either way.
|
|
3216
3238
|
* ============================================================================= */
|
|
3217
3239
|
|
|
3240
|
+
/* Terminal state icon (layout only — colors are per-block) */
|
|
3218
3241
|
:where(.theme-scope) .rb-state-icon {
|
|
3219
3242
|
width: 4rem;
|
|
3220
3243
|
height: 4rem;
|
|
@@ -3230,6 +3253,271 @@
|
|
|
3230
3253
|
height: 2rem;
|
|
3231
3254
|
}
|
|
3232
3255
|
|
|
3256
|
+
/* Surface container */
|
|
3257
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-reg-surface {
|
|
3258
|
+
border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
|
|
3259
|
+
border: 1px solid var(--rb-reg-border, rgb(var(--tb-border, 226 232 240)));
|
|
3260
|
+
padding: clamp(1rem, 2vw, 1.5rem);
|
|
3261
|
+
background: var(--rb-reg-surface-bg, rgb(var(--tb-surface, 248 250 252)));
|
|
3262
|
+
color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
|
|
3263
|
+
transition: border-color var(--rb-block-transition, 150ms) ease;
|
|
3264
|
+
width: 100%;
|
|
3265
|
+
max-width: 800px;
|
|
3266
|
+
margin-inline: 0;
|
|
3267
|
+
}
|
|
3268
|
+
|
|
3269
|
+
/* Selectable option card */
|
|
3270
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-card {
|
|
3271
|
+
position: relative;
|
|
3272
|
+
display: flex;
|
|
3273
|
+
align-items: flex-start;
|
|
3274
|
+
gap: 0.75rem;
|
|
3275
|
+
padding: 1rem;
|
|
3276
|
+
border: 1px solid var(--rb-reg-border, rgb(var(--tb-border, 226 232 240)));
|
|
3277
|
+
border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
|
|
3278
|
+
background: var(--rb-reg-option-bg, transparent);
|
|
3279
|
+
color: inherit;
|
|
3280
|
+
cursor: pointer;
|
|
3281
|
+
text-align: left;
|
|
3282
|
+
transition: border-color var(--rb-block-transition, 150ms) ease,
|
|
3283
|
+
background-color var(--rb-block-transition, 150ms) ease,
|
|
3284
|
+
box-shadow var(--rb-block-transition, 150ms) ease;
|
|
3285
|
+
}
|
|
3286
|
+
|
|
3287
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-card:hover:not(:disabled):not([aria-disabled="true"]) {
|
|
3288
|
+
border-color: var(--rb-reg-border-hover, rgba(var(--tb-primary, 17 24 39), 0.5));
|
|
3289
|
+
box-shadow: var(--rb-reg-option-hover-shadow, 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08));
|
|
3290
|
+
}
|
|
3291
|
+
|
|
3292
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-card:focus-visible {
|
|
3293
|
+
outline: 2px solid var(--rb-reg-focus-ring, rgba(var(--tb-primary, 17 24 39), 0.3));
|
|
3294
|
+
outline-offset: 2px;
|
|
3295
|
+
}
|
|
3296
|
+
|
|
3297
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-card--selected {
|
|
3298
|
+
border-color: var(--rb-reg-border-selected, rgb(var(--tb-primary, 17 24 39)));
|
|
3299
|
+
background-color: var(--rb-reg-bg-selected, rgba(var(--tb-primary, 17 24 39), 0.08));
|
|
3300
|
+
box-shadow: 0 0 0 1px var(--rb-reg-border-selected, rgb(var(--tb-primary, 17 24 39)));
|
|
3301
|
+
}
|
|
3302
|
+
|
|
3303
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-card--disabled {
|
|
3304
|
+
cursor: not-allowed;
|
|
3305
|
+
opacity: 0.7;
|
|
3306
|
+
}
|
|
3307
|
+
|
|
3308
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-card--disabled:hover {
|
|
3309
|
+
border-color: var(--rb-reg-border, rgb(var(--tb-border, 226 232 240)));
|
|
3310
|
+
box-shadow: none;
|
|
3311
|
+
}
|
|
3312
|
+
|
|
3313
|
+
/* Check indicator */
|
|
3314
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-check {
|
|
3315
|
+
flex-shrink: 0;
|
|
3316
|
+
width: 1.25rem;
|
|
3317
|
+
height: 1.25rem;
|
|
3318
|
+
border-radius: 50%;
|
|
3319
|
+
background: var(--rb-reg-check-bg, rgb(var(--tb-primary, 17 24 39)));
|
|
3320
|
+
display: flex;
|
|
3321
|
+
align-items: center;
|
|
3322
|
+
justify-content: center;
|
|
3323
|
+
}
|
|
3324
|
+
|
|
3325
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-check svg {
|
|
3326
|
+
width: 0.75rem;
|
|
3327
|
+
height: 0.75rem;
|
|
3328
|
+
color: var(--rb-reg-check-text, rgb(var(--tb-primaryText, var(--tb-primaryForeground, 255 255 255))));
|
|
3329
|
+
}
|
|
3330
|
+
|
|
3331
|
+
/* Step indicator */
|
|
3332
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-steps-nav {
|
|
3333
|
+
margin-bottom: 1.5rem;
|
|
3334
|
+
}
|
|
3335
|
+
|
|
3336
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-steps {
|
|
3337
|
+
display: flex;
|
|
3338
|
+
align-items: center;
|
|
3339
|
+
justify-content: center;
|
|
3340
|
+
gap: 0.5rem;
|
|
3341
|
+
list-style: none;
|
|
3342
|
+
padding: 0;
|
|
3343
|
+
margin: 0;
|
|
3344
|
+
}
|
|
3345
|
+
|
|
3346
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step {
|
|
3347
|
+
display: flex;
|
|
3348
|
+
align-items: center;
|
|
3349
|
+
gap: 0.5rem;
|
|
3350
|
+
}
|
|
3351
|
+
|
|
3352
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step-circle {
|
|
3353
|
+
width: 1.75rem;
|
|
3354
|
+
height: 1.75rem;
|
|
3355
|
+
border-radius: 50%;
|
|
3356
|
+
display: flex;
|
|
3357
|
+
align-items: center;
|
|
3358
|
+
justify-content: center;
|
|
3359
|
+
font-size: 0.75rem;
|
|
3360
|
+
font-weight: 600;
|
|
3361
|
+
background: var(--rb-reg-step-inactive, rgb(var(--tb-mutedText, 100 116 139)));
|
|
3362
|
+
color: var(--rb-reg-step-text, rgb(var(--tb-primaryForeground, 255 255 255)));
|
|
3363
|
+
transition: background-color var(--rb-block-transition, 150ms) ease;
|
|
3364
|
+
}
|
|
3365
|
+
|
|
3366
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step-circle--active {
|
|
3367
|
+
background: var(--rb-reg-step-active, rgb(var(--tb-primary, 17 24 39)));
|
|
3368
|
+
color: var(--rb-reg-step-text-active, rgb(var(--tb-primaryText, var(--tb-primaryForeground, 255 255 255))));
|
|
3369
|
+
}
|
|
3370
|
+
|
|
3371
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step-circle--completed {
|
|
3372
|
+
background: var(--rb-reg-step-completed, rgb(var(--tb-success, 22 163 74)));
|
|
3373
|
+
color: var(--rb-reg-step-text-active, rgb(var(--tb-primaryText, var(--tb-primaryForeground, 255 255 255))));
|
|
3374
|
+
}
|
|
3375
|
+
|
|
3376
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step-check {
|
|
3377
|
+
width: 0.75rem;
|
|
3378
|
+
height: 0.75rem;
|
|
3379
|
+
}
|
|
3380
|
+
|
|
3381
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step-connector {
|
|
3382
|
+
width: 2rem;
|
|
3383
|
+
height: 2px;
|
|
3384
|
+
background: var(--rb-reg-step-connector, rgba(var(--tb-border, 226 232 240), 0.5));
|
|
3385
|
+
}
|
|
3386
|
+
|
|
3387
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step-label {
|
|
3388
|
+
font-size: 0.75rem;
|
|
3389
|
+
color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
|
|
3390
|
+
display: none;
|
|
3391
|
+
}
|
|
3392
|
+
|
|
3393
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step-label--active {
|
|
3394
|
+
font-weight: 500;
|
|
3395
|
+
}
|
|
3396
|
+
|
|
3397
|
+
@media (min-width: 640px) {
|
|
3398
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-step-label {
|
|
3399
|
+
display: inline;
|
|
3400
|
+
}
|
|
3401
|
+
}
|
|
3402
|
+
|
|
3403
|
+
/* Wizard actions row */
|
|
3404
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-wizard-actions {
|
|
3405
|
+
display: flex;
|
|
3406
|
+
justify-content: space-between;
|
|
3407
|
+
align-items: center;
|
|
3408
|
+
gap: 1rem;
|
|
3409
|
+
margin-top: 1.5rem;
|
|
3410
|
+
}
|
|
3411
|
+
|
|
3412
|
+
/* When there's only one action (no back button), push it to the right */
|
|
3413
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-wizard-actions > :only-child {
|
|
3414
|
+
margin-inline-start: auto;
|
|
3415
|
+
}
|
|
3416
|
+
|
|
3417
|
+
/* On-surface text ramp */
|
|
3418
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-on-surface {
|
|
3419
|
+
color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
|
|
3420
|
+
}
|
|
3421
|
+
|
|
3422
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-on-surface--muted {
|
|
3423
|
+
color: var(--rb-reg-on-surface-muted, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.7));
|
|
3424
|
+
}
|
|
3425
|
+
|
|
3426
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-on-surface--subtle {
|
|
3427
|
+
color: var(--rb-reg-on-surface-subtle, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.6));
|
|
3428
|
+
}
|
|
3429
|
+
|
|
3430
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-on-surface--faint {
|
|
3431
|
+
color: var(--rb-reg-on-surface-faint, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.5));
|
|
3432
|
+
}
|
|
3433
|
+
|
|
3434
|
+
/* Layout stacks */
|
|
3435
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-reg-stack {
|
|
3436
|
+
display: flex;
|
|
3437
|
+
flex-direction: column;
|
|
3438
|
+
gap: 1rem;
|
|
3439
|
+
}
|
|
3440
|
+
|
|
3441
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-reg-stack--sm {
|
|
3442
|
+
gap: 0.75rem;
|
|
3443
|
+
}
|
|
3444
|
+
|
|
3445
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-reg-row {
|
|
3446
|
+
display: flex;
|
|
3447
|
+
align-items: center;
|
|
3448
|
+
gap: 1rem;
|
|
3449
|
+
}
|
|
3450
|
+
|
|
3451
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-reg-row--between {
|
|
3452
|
+
justify-content: space-between;
|
|
3453
|
+
align-items: flex-start;
|
|
3454
|
+
}
|
|
3455
|
+
|
|
3456
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-reg-grid {
|
|
3457
|
+
display: grid;
|
|
3458
|
+
gap: 0.75rem;
|
|
3459
|
+
}
|
|
3460
|
+
|
|
3461
|
+
/* Summary box */
|
|
3462
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-reg-summary {
|
|
3463
|
+
padding: 1rem;
|
|
3464
|
+
border-radius: calc(var(--rb-reg-radius, var(--rb-block-radius, 1rem)) * 0.75);
|
|
3465
|
+
border: 1px solid var(--rb-reg-summary-border, rgb(var(--tb-border, 226 232 240)));
|
|
3466
|
+
background: var(--rb-reg-summary-bg, rgba(var(--tb-muted, 241 245 249), 0.42));
|
|
3467
|
+
}
|
|
3468
|
+
|
|
3469
|
+
/* Skeleton shell lines */
|
|
3470
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-shell-line {
|
|
3471
|
+
height: 0.75rem;
|
|
3472
|
+
border-radius: 9999px;
|
|
3473
|
+
background: linear-gradient(
|
|
3474
|
+
90deg,
|
|
3475
|
+
var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22)),
|
|
3476
|
+
rgba(var(--tb-primary, 17 24 39), 0.12),
|
|
3477
|
+
var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22))
|
|
3478
|
+
);
|
|
3479
|
+
}
|
|
3480
|
+
|
|
3481
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-shell-line--lg {
|
|
3482
|
+
width: min(26rem, 82%);
|
|
3483
|
+
}
|
|
3484
|
+
|
|
3485
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-shell-line--md {
|
|
3486
|
+
width: min(19rem, 68%);
|
|
3487
|
+
}
|
|
3488
|
+
|
|
3489
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-shell-line--sm {
|
|
3490
|
+
width: min(14rem, 52%);
|
|
3491
|
+
}
|
|
3492
|
+
|
|
3493
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-shell-line--xs {
|
|
3494
|
+
width: min(10rem, 42%);
|
|
3495
|
+
}
|
|
3496
|
+
|
|
3497
|
+
/* Skeleton block (rectangular placeholder, pulses) */
|
|
3498
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-shell-block {
|
|
3499
|
+
height: 2.5rem;
|
|
3500
|
+
width: 100%;
|
|
3501
|
+
border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
|
|
3502
|
+
background: var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22));
|
|
3503
|
+
animation: rb-reg-pulse 1.5s ease-in-out infinite;
|
|
3504
|
+
}
|
|
3505
|
+
|
|
3506
|
+
@keyframes rb-reg-pulse {
|
|
3507
|
+
0%, 100% {
|
|
3508
|
+
opacity: 1;
|
|
3509
|
+
}
|
|
3510
|
+
50% {
|
|
3511
|
+
opacity: 0.5;
|
|
3512
|
+
}
|
|
3513
|
+
}
|
|
3514
|
+
|
|
3515
|
+
@media (prefers-reduced-motion: reduce) {
|
|
3516
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-shell-block {
|
|
3517
|
+
animation: none;
|
|
3518
|
+
}
|
|
3519
|
+
}
|
|
3520
|
+
|
|
3233
3521
|
|
|
3234
3522
|
/* =============================================================================
|
|
3235
3523
|
* Block: Event Registration (pilot #76)
|
|
@@ -3254,18 +3542,9 @@
|
|
|
3254
3542
|
--er-on-surface-disabled-detail: rgba(var(--tb-onSurface, var(--tb-text)), 0.68);
|
|
3255
3543
|
}
|
|
3256
3544
|
|
|
3257
|
-
/* Container
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
border: 1px solid var(--er-border);
|
|
3261
|
-
padding: clamp(1rem, 2vw, 1.5rem);
|
|
3262
|
-
background: rgb(var(--tb-surface));
|
|
3263
|
-
color: var(--er-on-surface);
|
|
3264
|
-
transition: border-color var(--rb-block-transition) ease;
|
|
3265
|
-
width: 100%;
|
|
3266
|
-
max-width: 800px;
|
|
3267
|
-
margin-inline: 0;
|
|
3268
|
-
}
|
|
3545
|
+
/* Container: styled by the shared .rb-reg-surface (registration-surface.css);
|
|
3546
|
+
.er-container remains in markup as a hook and for the overlay/embedded
|
|
3547
|
+
variants below. */
|
|
3269
3548
|
|
|
3270
3549
|
/* SSR shell / required-island fallback */
|
|
3271
3550
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell {
|
|
@@ -3310,32 +3589,8 @@
|
|
|
3310
3589
|
padding: 1rem;
|
|
3311
3590
|
}
|
|
3312
3591
|
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
border-radius: 9999px;
|
|
3316
|
-
background: linear-gradient(
|
|
3317
|
-
90deg,
|
|
3318
|
-
var(--er-shell-line),
|
|
3319
|
-
rgba(var(--tb-primary), 0.12),
|
|
3320
|
-
var(--er-shell-line)
|
|
3321
|
-
);
|
|
3322
|
-
}
|
|
3323
|
-
|
|
3324
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line--lg {
|
|
3325
|
-
width: min(26rem, 82%);
|
|
3326
|
-
}
|
|
3327
|
-
|
|
3328
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line--md {
|
|
3329
|
-
width: min(19rem, 68%);
|
|
3330
|
-
}
|
|
3331
|
-
|
|
3332
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line--sm {
|
|
3333
|
-
width: min(14rem, 52%);
|
|
3334
|
-
}
|
|
3335
|
-
|
|
3336
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__line--xs {
|
|
3337
|
-
width: min(10rem, 42%);
|
|
3338
|
-
}
|
|
3592
|
+
/* Shell skeleton lines: styled by the shared .rb-shell-line family
|
|
3593
|
+
(registration-surface.css); legacy classes remain in markup as hooks. */
|
|
3339
3594
|
|
|
3340
3595
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-registration-shell__summary {
|
|
3341
3596
|
align-items: center;
|
|
@@ -3412,13 +3667,8 @@
|
|
|
3412
3667
|
color: var(--er-capacity-soldout-text);
|
|
3413
3668
|
}
|
|
3414
3669
|
|
|
3415
|
-
/* Selected event summary
|
|
3416
|
-
|
|
3417
|
-
padding: 1rem;
|
|
3418
|
-
border-radius: calc(var(--rb-block-radius) * 0.75);
|
|
3419
|
-
border: 1px solid var(--er-border);
|
|
3420
|
-
background: var(--er-surface-muted);
|
|
3421
|
-
}
|
|
3670
|
+
/* Selected event summary: superseded by the shared .rb-reg-summary
|
|
3671
|
+
(registration-surface.css); no markup emitted .er-event-summary anymore. */
|
|
3422
3672
|
|
|
3423
3673
|
/* Ticket counter */
|
|
3424
3674
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-ticket-counter-group {
|
|
@@ -3622,7 +3872,7 @@
|
|
|
3622
3872
|
opacity: 1;
|
|
3623
3873
|
}
|
|
3624
3874
|
|
|
3625
|
-
/* State icon color variants (layout from registration-
|
|
3875
|
+
/* State icon color variants (layout from registration-surface.css) */
|
|
3626
3876
|
:where(.theme-scope) :where([data-block="event-registration"]) .rb-state-icon--success {
|
|
3627
3877
|
background: var(--er-success-bg);
|
|
3628
3878
|
color: var(--er-success-text);
|
|
@@ -3778,16 +4028,8 @@
|
|
|
3778
4028
|
text-align: center;
|
|
3779
4029
|
}
|
|
3780
4030
|
|
|
3781
|
-
/* Layout
|
|
3782
|
-
|
|
3783
|
-
display: flex;
|
|
3784
|
-
flex-direction: column;
|
|
3785
|
-
gap: 1rem;
|
|
3786
|
-
}
|
|
3787
|
-
|
|
3788
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-stack--sm {
|
|
3789
|
-
gap: 0.75rem;
|
|
3790
|
-
}
|
|
4031
|
+
/* Layout stacks/rows: styled by the shared .rb-reg-stack / .rb-reg-row
|
|
4032
|
+
(registration-surface.css); legacy classes remain in markup as hooks. */
|
|
3791
4033
|
|
|
3792
4034
|
/* Event/date selection rows */
|
|
3793
4035
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-event-grid {
|
|
@@ -3796,17 +4038,6 @@
|
|
|
3796
4038
|
gap: 0;
|
|
3797
4039
|
}
|
|
3798
4040
|
|
|
3799
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-row {
|
|
3800
|
-
display: flex;
|
|
3801
|
-
align-items: center;
|
|
3802
|
-
gap: 1rem;
|
|
3803
|
-
}
|
|
3804
|
-
|
|
3805
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-row--between {
|
|
3806
|
-
justify-content: space-between;
|
|
3807
|
-
align-items: flex-start;
|
|
3808
|
-
}
|
|
3809
|
-
|
|
3810
4041
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-center {
|
|
3811
4042
|
text-align: center;
|
|
3812
4043
|
padding: 2rem;
|
|
@@ -3818,18 +4049,8 @@
|
|
|
3818
4049
|
margin-bottom: 1rem;
|
|
3819
4050
|
}
|
|
3820
4051
|
|
|
3821
|
-
:
|
|
3822
|
-
|
|
3823
|
-
justify-content: space-between;
|
|
3824
|
-
align-items: center;
|
|
3825
|
-
gap: 1rem;
|
|
3826
|
-
margin-top: 1.5rem;
|
|
3827
|
-
}
|
|
3828
|
-
|
|
3829
|
-
/* When there's only one button (no back), push to the right */
|
|
3830
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-actions > :only-child {
|
|
3831
|
-
margin-inline-start: auto;
|
|
3832
|
-
}
|
|
4052
|
+
/* Actions row: styled by the shared .rb-wizard-actions (registration-surface.css);
|
|
4053
|
+
.er-actions remains in markup as a hook. */
|
|
3833
4054
|
|
|
3834
4055
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-button-with-spinner {
|
|
3835
4056
|
display: inline-flex;
|
|
@@ -4081,23 +4302,8 @@
|
|
|
4081
4302
|
color: var(--er-on-surface-faint);
|
|
4082
4303
|
}
|
|
4083
4304
|
|
|
4084
|
-
/* Checkmark indicator
|
|
4085
|
-
|
|
4086
|
-
flex-shrink: 0;
|
|
4087
|
-
width: 1.25rem;
|
|
4088
|
-
height: 1.25rem;
|
|
4089
|
-
border-radius: 50%;
|
|
4090
|
-
background: var(--er-check-bg);
|
|
4091
|
-
display: flex;
|
|
4092
|
-
align-items: center;
|
|
4093
|
-
justify-content: center;
|
|
4094
|
-
}
|
|
4095
|
-
|
|
4096
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-check svg {
|
|
4097
|
-
width: 0.75rem;
|
|
4098
|
-
height: 0.75rem;
|
|
4099
|
-
color: var(--er-check-text);
|
|
4100
|
-
}
|
|
4305
|
+
/* Checkmark indicator: styled by the shared .rb-option-check
|
|
4306
|
+
(registration-surface.css); .er-check remains in markup as a hook. */
|
|
4101
4307
|
|
|
4102
4308
|
/* Payment summary */
|
|
4103
4309
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-payment-summary {
|
|
@@ -4143,76 +4349,12 @@
|
|
|
4143
4349
|
margin-bottom: 1.5rem;
|
|
4144
4350
|
}
|
|
4145
4351
|
|
|
4146
|
-
:
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
padding: 0;
|
|
4153
|
-
margin: 0;
|
|
4154
|
-
}
|
|
4155
|
-
|
|
4156
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step {
|
|
4157
|
-
display: flex;
|
|
4158
|
-
align-items: center;
|
|
4159
|
-
gap: 0.5rem;
|
|
4160
|
-
}
|
|
4161
|
-
|
|
4162
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-circle {
|
|
4163
|
-
width: 1.75rem;
|
|
4164
|
-
height: 1.75rem;
|
|
4165
|
-
border-radius: 50%;
|
|
4166
|
-
display: flex;
|
|
4167
|
-
align-items: center;
|
|
4168
|
-
justify-content: center;
|
|
4169
|
-
font-size: 0.75rem;
|
|
4170
|
-
font-weight: 600;
|
|
4171
|
-
background: var(--er-step-inactive);
|
|
4172
|
-
color: var(--er-step-text);
|
|
4173
|
-
transition: background-color var(--rb-block-transition) ease;
|
|
4174
|
-
}
|
|
4175
|
-
|
|
4176
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-circle--active {
|
|
4177
|
-
background: var(--er-step-active);
|
|
4178
|
-
color: var(--er-step-text-active);
|
|
4179
|
-
}
|
|
4180
|
-
|
|
4181
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-circle--completed {
|
|
4182
|
-
background: var(--er-step-completed);
|
|
4183
|
-
color: var(--er-step-text-active);
|
|
4184
|
-
}
|
|
4185
|
-
|
|
4186
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-check {
|
|
4187
|
-
width: 0.75rem;
|
|
4188
|
-
height: 0.75rem;
|
|
4189
|
-
}
|
|
4190
|
-
|
|
4191
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-connector {
|
|
4192
|
-
width: 2rem;
|
|
4193
|
-
height: 2px;
|
|
4194
|
-
background: var(--er-step-connector);
|
|
4195
|
-
}
|
|
4196
|
-
|
|
4197
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-connector--completed {
|
|
4198
|
-
background: var(--er-step-connector);
|
|
4199
|
-
}
|
|
4200
|
-
|
|
4201
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-label {
|
|
4202
|
-
font-size: 0.75rem;
|
|
4203
|
-
color: var(--er-on-surface);
|
|
4204
|
-
display: none;
|
|
4205
|
-
}
|
|
4206
|
-
|
|
4207
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-label--active {
|
|
4208
|
-
font-weight: 500;
|
|
4209
|
-
}
|
|
4210
|
-
|
|
4211
|
-
@media (min-width: 640px) {
|
|
4212
|
-
:where(.theme-scope) :where([data-block="event-registration"]) .er-step-label {
|
|
4213
|
-
display: inline;
|
|
4214
|
-
}
|
|
4215
|
-
}
|
|
4352
|
+
/* Step indicator internals: styled by the shared .rb-steps / .rb-step-*
|
|
4353
|
+
family (registration-surface.css) via the --rb-reg-step-* mappings in the
|
|
4354
|
+
event-registration var generator; er-* classes remain in markup as hooks.
|
|
4355
|
+
Note: .er-steps-nav above is intentionally retained — its source position
|
|
4356
|
+
keeps the wizard's 1.5rem step margin winning over the SSR shell's
|
|
4357
|
+
1.25rem .er-registration-shell__steps override. */
|
|
4216
4358
|
|
|
4217
4359
|
/* Sticky order summary */
|
|
4218
4360
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
|
|
@@ -6436,69 +6578,34 @@
|
|
|
6436
6578
|
|
|
6437
6579
|
/* =============================================================================
|
|
6438
6580
|
* Block: Appointment Booking
|
|
6581
|
+
*
|
|
6582
|
+
* Structural styling comes from the shared registration-surface layer
|
|
6583
|
+
* (registration-surface.css): surface container, option cards + check,
|
|
6584
|
+
* step indicator, wizard actions, on-surface text ramp, stacks, summary box
|
|
6585
|
+
* and skeleton shell. Colors flow through the --rb-reg-* contract, mapped
|
|
6586
|
+
* from this block's --ab-* Tier 3 vars by its var generator.
|
|
6587
|
+
*
|
|
6588
|
+
* Inputs use the theme-generated form-* classes; feedback boxes use the
|
|
6589
|
+
* theme-generated alert / alert-{tone} classes. Only genuinely
|
|
6590
|
+
* booking-specific rules live here.
|
|
6591
|
+
*
|
|
6439
6592
|
* Uses:
|
|
6440
|
-
* - Tier 1 vars: --tb
|
|
6441
|
-
* - Tier 2 vars: --rb-block-radius, --rb-block-transition (from theme scope)
|
|
6593
|
+
* - Tier 1 vars: --tb-* (from theme palette)
|
|
6442
6594
|
* - Tier 3 vars: --ab-* (from appointment-booking var generator)
|
|
6443
6595
|
* =============================================================================
|
|
6444
6596
|
*/
|
|
6445
6597
|
|
|
6446
|
-
/*
|
|
6447
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-container {
|
|
6448
|
-
width: 100%;
|
|
6449
|
-
}
|
|
6450
|
-
|
|
6451
|
-
/* Stack layout utilities */
|
|
6452
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-stack {
|
|
6453
|
-
display: flex;
|
|
6454
|
-
flex-direction: column;
|
|
6455
|
-
gap: 1.5rem;
|
|
6456
|
-
}
|
|
6457
|
-
|
|
6458
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-stack--sm {
|
|
6459
|
-
display: flex;
|
|
6460
|
-
flex-direction: column;
|
|
6461
|
-
gap: 0.75rem;
|
|
6462
|
-
}
|
|
6463
|
-
|
|
6464
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-stack--xs {
|
|
6465
|
-
display: flex;
|
|
6466
|
-
flex-direction: column;
|
|
6467
|
-
gap: 0.5rem;
|
|
6468
|
-
}
|
|
6469
|
-
|
|
6470
|
-
/* Row layout */
|
|
6471
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-row {
|
|
6472
|
-
display: flex;
|
|
6473
|
-
align-items: center;
|
|
6474
|
-
gap: 0.75rem;
|
|
6475
|
-
}
|
|
6476
|
-
|
|
6477
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-row--between {
|
|
6478
|
-
justify-content: space-between;
|
|
6479
|
-
}
|
|
6480
|
-
|
|
6481
|
-
/* Grid layout */
|
|
6482
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-grid {
|
|
6483
|
-
display: grid;
|
|
6484
|
-
gap: 0.75rem;
|
|
6485
|
-
}
|
|
6486
|
-
|
|
6487
|
-
/* Center layout */
|
|
6488
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-center {
|
|
6489
|
-
text-align: center;
|
|
6490
|
-
padding: 2rem;
|
|
6491
|
-
}
|
|
6492
|
-
|
|
6493
|
-
/* Typography */
|
|
6598
|
+
/* Typography helpers */
|
|
6494
6599
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-title {
|
|
6495
6600
|
font-size: 1.5rem;
|
|
6496
|
-
font-weight:
|
|
6601
|
+
font-weight: 600;
|
|
6602
|
+
line-height: 1.3;
|
|
6497
6603
|
}
|
|
6498
6604
|
|
|
6499
6605
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-subtitle {
|
|
6500
|
-
font-size: 0.
|
|
6501
|
-
font-weight:
|
|
6606
|
+
font-size: 0.9375rem;
|
|
6607
|
+
font-weight: 600;
|
|
6608
|
+
line-height: 1.3;
|
|
6502
6609
|
}
|
|
6503
6610
|
|
|
6504
6611
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-text {
|
|
@@ -6509,211 +6616,111 @@
|
|
|
6509
6616
|
font-size: 0.75rem;
|
|
6510
6617
|
}
|
|
6511
6618
|
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-text--faint {
|
|
6517
|
-
opacity: var(--ab-text-faint-opacity, 0.4);
|
|
6518
|
-
}
|
|
6519
|
-
|
|
6520
|
-
/* Selection cards (service, resource, time slot) */
|
|
6521
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card {
|
|
6522
|
-
position: relative;
|
|
6523
|
-
padding: 1rem;
|
|
6524
|
-
border: 2px solid var(--ab-card-border, rgb(var(--tb-border, 226 232 240)));
|
|
6525
|
-
border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
|
|
6526
|
-
text-align: left;
|
|
6527
|
-
background: transparent;
|
|
6528
|
-
cursor: pointer;
|
|
6529
|
-
transition: border-color var(--rb-block-transition, 150ms) ease, background-color var(--rb-block-transition, 150ms) ease;
|
|
6530
|
-
}
|
|
6531
|
-
|
|
6532
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card:hover {
|
|
6533
|
-
border-color: var(--ab-card-border-hover, rgba(var(--tb-primary, 17 24 39), 0.5));
|
|
6534
|
-
}
|
|
6535
|
-
|
|
6536
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card--selected {
|
|
6537
|
-
border-color: var(--ab-card-border-selected, rgb(var(--tb-primary, 17 24 39)));
|
|
6538
|
-
background-color: var(--ab-card-bg-selected, rgba(var(--tb-primary, 17 24 39), 0.05));
|
|
6539
|
-
}
|
|
6540
|
-
|
|
6541
|
-
/* Checkmark indicator */
|
|
6542
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-check {
|
|
6543
|
-
flex-shrink: 0;
|
|
6544
|
-
width: 1.25rem;
|
|
6545
|
-
height: 1.25rem;
|
|
6546
|
-
border-radius: 50%;
|
|
6547
|
-
background-color: var(--ab-check-bg, rgb(var(--tb-primary, 17 24 39)));
|
|
6548
|
-
display: flex;
|
|
6549
|
-
align-items: center;
|
|
6550
|
-
justify-content: center;
|
|
6551
|
-
}
|
|
6552
|
-
|
|
6553
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-check svg {
|
|
6554
|
-
width: 0.75rem;
|
|
6555
|
-
height: 0.75rem;
|
|
6556
|
-
color: var(--ab-check-text, rgb(var(--tb-background, 255 255 255)));
|
|
6557
|
-
}
|
|
6558
|
-
|
|
6559
|
-
/* Info box (service summary) */
|
|
6560
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-info-box {
|
|
6561
|
-
padding: 1rem;
|
|
6562
|
-
border: 1px solid var(--ab-card-border, rgb(var(--tb-border, 226 232 240)));
|
|
6563
|
-
border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
|
|
6564
|
-
background-color: var(--ab-muted-bg, rgba(var(--tb-foreground, var(--tb-text, 15 23 42)), 0.05));
|
|
6565
|
-
}
|
|
6566
|
-
|
|
6567
|
-
/* Alert states */
|
|
6568
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert {
|
|
6569
|
-
padding: 0.75rem 1rem;
|
|
6570
|
-
border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
|
|
6571
|
-
font-size: 0.875rem;
|
|
6572
|
-
}
|
|
6573
|
-
|
|
6574
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--success {
|
|
6575
|
-
background-color: var(--ab-success-bg, rgba(var(--tb-success, 22 163 74), 0.1));
|
|
6576
|
-
color: var(--ab-success-text, rgb(var(--tb-success, 22 163 74)));
|
|
6577
|
-
}
|
|
6578
|
-
|
|
6579
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--error {
|
|
6580
|
-
background-color: var(--ab-error-bg, rgba(var(--tb-destructive, 220 38 38), 0.1));
|
|
6581
|
-
color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
|
|
6582
|
-
}
|
|
6583
|
-
|
|
6584
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--warning {
|
|
6585
|
-
background-color: var(--ab-warning-bg, rgba(var(--tb-warning, 245 158 11), 0.1));
|
|
6586
|
-
color: var(--ab-warning-text, rgb(var(--tb-warning, 245 158 11)));
|
|
6587
|
-
}
|
|
6588
|
-
|
|
6589
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--info {
|
|
6590
|
-
background-color: var(--ab-info-bg, rgba(var(--tb-info, 14 165 233), 0.1));
|
|
6591
|
-
color: var(--ab-info-text, rgb(var(--tb-info, 14 165 233)));
|
|
6592
|
-
}
|
|
6593
|
-
|
|
6594
|
-
/* Form elements */
|
|
6595
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-label {
|
|
6596
|
-
display: block;
|
|
6597
|
-
font-size: 0.875rem;
|
|
6598
|
-
font-weight: 500;
|
|
6599
|
-
margin-bottom: 0.5rem;
|
|
6600
|
-
}
|
|
6601
|
-
|
|
6602
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-required {
|
|
6603
|
-
color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
|
|
6604
|
-
margin-left: 0.125rem;
|
|
6605
|
-
}
|
|
6606
|
-
|
|
6607
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-input,
|
|
6608
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-select,
|
|
6609
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-textarea {
|
|
6610
|
-
width: 100%;
|
|
6611
|
-
padding: 0.5rem 0.75rem;
|
|
6612
|
-
border: 1px solid var(--ab-input-border, rgb(var(--tb-border, 226 232 240)));
|
|
6613
|
-
border-radius: var(--ab-input-radius, var(--rb-input-radius, var(--radius-control, var(--rb-block-radius, 1rem))));
|
|
6614
|
-
background: transparent;
|
|
6615
|
-
font-size: 0.875rem;
|
|
6616
|
-
transition: border-color var(--rb-block-transition, 150ms) ease, box-shadow var(--rb-block-transition, 150ms) ease;
|
|
6617
|
-
}
|
|
6618
|
-
|
|
6619
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-input:focus,
|
|
6620
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-select:focus,
|
|
6621
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-textarea:focus {
|
|
6622
|
-
outline: none;
|
|
6623
|
-
border-color: var(--ab-card-border-selected, rgb(var(--tb-primary, 17 24 39)));
|
|
6624
|
-
box-shadow: 0 0 0 3px var(--ab-input-focus-ring, rgba(var(--tb-primary, 17 24 39), 0.3));
|
|
6619
|
+
/* Centered state (loading / terminal panels) */
|
|
6620
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-center {
|
|
6621
|
+
text-align: center;
|
|
6622
|
+
padding: 2rem;
|
|
6625
6623
|
}
|
|
6626
6624
|
|
|
6627
|
-
/*
|
|
6628
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-
|
|
6629
|
-
|
|
6630
|
-
|
|
6631
|
-
|
|
6632
|
-
padding: 0.5rem 1.5rem;
|
|
6633
|
-
border-radius: var(--ab-button-radius, var(--rb-button-radius, var(--rb-block-radius, 1rem)));
|
|
6634
|
-
font-size: 0.875rem;
|
|
6635
|
-
font-weight: 500;
|
|
6636
|
-
cursor: pointer;
|
|
6637
|
-
transition: background-color var(--rb-block-transition, 150ms) ease, border-color var(--rb-block-transition, 150ms) ease;
|
|
6625
|
+
/* Terminal state title (below the state icon) */
|
|
6626
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-terminal-title {
|
|
6627
|
+
margin: 0.75rem 0 0.5rem 0;
|
|
6628
|
+
font-size: 1.125rem;
|
|
6629
|
+
font-weight: 700;
|
|
6638
6630
|
}
|
|
6639
6631
|
|
|
6640
|
-
|
|
6641
|
-
|
|
6642
|
-
background
|
|
6643
|
-
color: var(--ab-
|
|
6644
|
-
border: none;
|
|
6632
|
+
/* State icon color variants (layout from registration-surface.css) */
|
|
6633
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--success {
|
|
6634
|
+
background: var(--ab-success-bg, rgba(var(--tb-success, 22 163 74), 0.1));
|
|
6635
|
+
color: var(--ab-success-text, rgb(var(--tb-success, 22 163 74)));
|
|
6645
6636
|
}
|
|
6646
6637
|
|
|
6647
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .
|
|
6648
|
-
background
|
|
6638
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--error {
|
|
6639
|
+
background: var(--ab-error-bg, rgba(var(--tb-destructive, 220 38 38), 0.1));
|
|
6640
|
+
color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
|
|
6649
6641
|
}
|
|
6650
6642
|
|
|
6651
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .
|
|
6652
|
-
background:
|
|
6653
|
-
|
|
6643
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--info {
|
|
6644
|
+
background: var(--ab-info-bg, rgba(var(--tb-info, 14 165 233), 0.1));
|
|
6645
|
+
color: var(--ab-info-text, rgb(var(--tb-info, 14 165 233)));
|
|
6654
6646
|
}
|
|
6655
6647
|
|
|
6656
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .
|
|
6657
|
-
background
|
|
6648
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--warning {
|
|
6649
|
+
background: var(--ab-warning-bg, rgba(var(--tb-warning, 245 158 11), 0.1));
|
|
6650
|
+
color: var(--ab-warning-text, rgb(var(--tb-warning, 245 158 11)));
|
|
6658
6651
|
}
|
|
6659
6652
|
|
|
6660
|
-
|
|
6661
|
-
|
|
6662
|
-
|
|
6663
|
-
|
|
6664
|
-
text-decoration: underline;
|
|
6653
|
+
/* Payment option summary rows (label/value lines inside an option card) */
|
|
6654
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-option-rows {
|
|
6655
|
+
display: grid;
|
|
6656
|
+
gap: 0.125rem;
|
|
6665
6657
|
}
|
|
6666
6658
|
|
|
6667
|
-
|
|
6668
|
-
|
|
6659
|
+
/* Date/time pill grids (selection pills extend .rb-option-card) */
|
|
6660
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-pill-grid {
|
|
6661
|
+
display: flex;
|
|
6662
|
+
flex-wrap: wrap;
|
|
6663
|
+
gap: 0.5rem;
|
|
6669
6664
|
}
|
|
6670
6665
|
|
|
6671
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-
|
|
6672
|
-
|
|
6673
|
-
|
|
6666
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-date-pill {
|
|
6667
|
+
flex-direction: column;
|
|
6668
|
+
align-items: center;
|
|
6669
|
+
gap: 0.125rem;
|
|
6670
|
+
padding: 0.5rem 0.875rem;
|
|
6671
|
+
min-width: 4.25rem;
|
|
6672
|
+
text-align: center;
|
|
6674
6673
|
}
|
|
6675
6674
|
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
|
|
6679
|
-
|
|
6680
|
-
|
|
6675
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-time-pill {
|
|
6676
|
+
align-items: center;
|
|
6677
|
+
justify-content: center;
|
|
6678
|
+
padding: 0.5rem 0.875rem;
|
|
6679
|
+
min-width: 5.5rem;
|
|
6680
|
+
font-size: 0.875rem;
|
|
6681
|
+
font-weight: 500;
|
|
6682
|
+
text-align: center;
|
|
6681
6683
|
}
|
|
6682
6684
|
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6686
|
-
|
|
6687
|
-
|
|
6688
|
-
|
|
6689
|
-
|
|
6685
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-pill-caption {
|
|
6686
|
+
font-size: 0.6875rem;
|
|
6687
|
+
font-weight: 600;
|
|
6688
|
+
letter-spacing: 0;
|
|
6689
|
+
line-height: 1.2;
|
|
6690
|
+
text-transform: uppercase;
|
|
6691
|
+
color: var(--rb-reg-on-surface-subtle, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.6));
|
|
6690
6692
|
}
|
|
6691
6693
|
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
50% {
|
|
6697
|
-
opacity: 0.5;
|
|
6698
|
-
}
|
|
6694
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-pill-value {
|
|
6695
|
+
font-size: 1.125rem;
|
|
6696
|
+
font-weight: 600;
|
|
6697
|
+
line-height: 1.2;
|
|
6699
6698
|
}
|
|
6700
6699
|
|
|
6701
|
-
/*
|
|
6702
|
-
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-
|
|
6703
|
-
|
|
6704
|
-
flex-direction: column;
|
|
6705
|
-
gap: 0.5rem;
|
|
6700
|
+
/* SSR shell skeleton (mirrors the hydrated layout to reduce hydration jump) */
|
|
6701
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-shell {
|
|
6702
|
+
min-height: 18rem;
|
|
6706
6703
|
}
|
|
6707
6704
|
|
|
6708
|
-
|
|
6709
|
-
:
|
|
6710
|
-
|
|
6705
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-shell-button {
|
|
6706
|
+
display: inline-flex;
|
|
6707
|
+
min-height: 2.5rem;
|
|
6708
|
+
align-items: center;
|
|
6709
|
+
justify-content: center;
|
|
6710
|
+
border-radius: calc(var(--rb-reg-radius, var(--rb-block-radius, 1rem)) * 0.6);
|
|
6711
|
+
background: rgb(var(--tb-primary, 17 24 39));
|
|
6712
|
+
color: rgb(var(--tb-primaryText, var(--tb-primaryForeground, 255 255 255)));
|
|
6713
|
+
padding: 0.625rem 1rem;
|
|
6714
|
+
font-size: 0.875rem;
|
|
6715
|
+
font-weight: 600;
|
|
6716
|
+
line-height: 1.2;
|
|
6717
|
+
text-align: center;
|
|
6718
|
+
white-space: nowrap;
|
|
6711
6719
|
}
|
|
6712
6720
|
|
|
6713
|
-
/*
|
|
6721
|
+
/* Inline text-link button (e.g. "Load more dates") */
|
|
6714
6722
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-link {
|
|
6715
6723
|
display: inline;
|
|
6716
|
-
margin-left: 0.5rem;
|
|
6717
6724
|
color: rgb(var(--tb-primary, 17 24 39));
|
|
6718
6725
|
background: none;
|
|
6719
6726
|
border: none;
|
|
@@ -6727,91 +6734,9 @@
|
|
|
6727
6734
|
text-decoration: none;
|
|
6728
6735
|
}
|
|
6729
6736
|
|
|
6730
|
-
/*
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
* Uses:
|
|
6734
|
-
* - Tier 1 vars: --tb-border, --tb-surface, --tb-success, --tb-destructive
|
|
6735
|
-
* - Tier 2 vars: --rb-block-radius
|
|
6736
|
-
* - Tier 3 vars: --fb-success-*, --fb-error-*, --fb-empty-*
|
|
6737
|
-
*
|
|
6738
|
-
* Note: Form input styling (form-input, form-select, etc.) is handled by
|
|
6739
|
-
* the input CSS generator. These styles are for form container/state only.
|
|
6740
|
-
* ============================================================================= */
|
|
6741
|
-
|
|
6742
|
-
/* Form container */
|
|
6743
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-form {
|
|
6744
|
-
display: flex;
|
|
6745
|
-
flex-direction: column;
|
|
6746
|
-
gap: 1rem;
|
|
6747
|
-
}
|
|
6748
|
-
|
|
6749
|
-
/* Two-column row (opt-in per field via schema layout) */
|
|
6750
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
|
|
6751
|
-
display: grid;
|
|
6752
|
-
grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
|
|
6753
|
-
gap: 1rem;
|
|
6754
|
-
}
|
|
6755
|
-
|
|
6756
|
-
/* Field wrapper */
|
|
6757
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-field {
|
|
6758
|
-
display: flex;
|
|
6759
|
-
flex-direction: column;
|
|
6760
|
-
gap: 0.25rem;
|
|
6761
|
-
}
|
|
6762
|
-
|
|
6763
|
-
/* Fieldset (for radio groups) */
|
|
6764
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-fieldset {
|
|
6765
|
-
display: flex;
|
|
6766
|
-
flex-direction: column;
|
|
6767
|
-
gap: 0.5rem;
|
|
6768
|
-
border: none;
|
|
6769
|
-
padding: 0;
|
|
6770
|
-
margin: 0;
|
|
6771
|
-
}
|
|
6772
|
-
|
|
6773
|
-
/* Inline field (checkbox, radio with label) */
|
|
6774
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-inline {
|
|
6775
|
-
display: flex;
|
|
6776
|
-
align-items: center;
|
|
6777
|
-
gap: 0.5rem;
|
|
6778
|
-
}
|
|
6779
|
-
|
|
6780
|
-
/* Success state */
|
|
6781
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-success {
|
|
6782
|
-
background-color: var(--fb-success-bg);
|
|
6783
|
-
color: var(--fb-success-text);
|
|
6784
|
-
border: 1px solid var(--fb-success-border);
|
|
6785
|
-
border-radius: var(--rb-block-radius);
|
|
6786
|
-
padding: 1rem;
|
|
6787
|
-
font-size: 0.875rem;
|
|
6788
|
-
}
|
|
6789
|
-
|
|
6790
|
-
/* Error banner */
|
|
6791
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-error {
|
|
6792
|
-
background-color: var(--fb-error-bg);
|
|
6793
|
-
color: var(--fb-error-text);
|
|
6794
|
-
border: 1px solid var(--fb-error-border);
|
|
6795
|
-
border-radius: var(--rb-block-radius);
|
|
6796
|
-
padding: 0.75rem;
|
|
6797
|
-
font-size: 0.875rem;
|
|
6798
|
-
margin-bottom: 0.5rem;
|
|
6799
|
-
}
|
|
6800
|
-
|
|
6801
|
-
/* Empty state (no form data) */
|
|
6802
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-empty {
|
|
6803
|
-
background-color: var(--fb-empty-bg);
|
|
6804
|
-
color: var(--fb-empty-text);
|
|
6805
|
-
border: 1px dashed var(--fb-empty-border);
|
|
6806
|
-
border-radius: var(--rb-block-radius);
|
|
6807
|
-
padding: 1.5rem;
|
|
6808
|
-
font-size: 0.875rem;
|
|
6809
|
-
text-align: center;
|
|
6810
|
-
}
|
|
6811
|
-
|
|
6812
|
-
/* Form actions (submit button container) */
|
|
6813
|
-
:where(.theme-scope) :where([data-block="form"]) .fb-actions {
|
|
6814
|
-
margin-top: 0.5rem;
|
|
6737
|
+
/* Altcha wrapper */
|
|
6738
|
+
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-altcha {
|
|
6739
|
+
margin-top: 1rem;
|
|
6815
6740
|
}
|
|
6816
6741
|
|
|
6817
6742
|
|
|
@@ -7072,6 +6997,93 @@
|
|
|
7072
6997
|
color: var(--section-text-color, rgb(var(--tb-text)));
|
|
7073
6998
|
}
|
|
7074
6999
|
|
|
7000
|
+
/* =============================================================================
|
|
7001
|
+
* Form Block (fb-*)
|
|
7002
|
+
*
|
|
7003
|
+
* Uses:
|
|
7004
|
+
* - Tier 1 vars: --tb-border, --tb-surface, --tb-success, --tb-destructive
|
|
7005
|
+
* - Tier 2 vars: --rb-block-radius
|
|
7006
|
+
* - Tier 3 vars: --fb-success-*, --fb-error-*, --fb-empty-*
|
|
7007
|
+
*
|
|
7008
|
+
* Note: Form input styling (form-input, form-select, etc.) is handled by
|
|
7009
|
+
* the input CSS generator. These styles are for form container/state only.
|
|
7010
|
+
* ============================================================================= */
|
|
7011
|
+
|
|
7012
|
+
/* Form container */
|
|
7013
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-form {
|
|
7014
|
+
display: flex;
|
|
7015
|
+
flex-direction: column;
|
|
7016
|
+
gap: 1rem;
|
|
7017
|
+
}
|
|
7018
|
+
|
|
7019
|
+
/* Two-column row (opt-in per field via schema layout) */
|
|
7020
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
|
|
7021
|
+
display: grid;
|
|
7022
|
+
grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
|
|
7023
|
+
gap: 1rem;
|
|
7024
|
+
}
|
|
7025
|
+
|
|
7026
|
+
/* Field wrapper */
|
|
7027
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-field {
|
|
7028
|
+
display: flex;
|
|
7029
|
+
flex-direction: column;
|
|
7030
|
+
gap: 0.25rem;
|
|
7031
|
+
}
|
|
7032
|
+
|
|
7033
|
+
/* Fieldset (for radio groups) */
|
|
7034
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-fieldset {
|
|
7035
|
+
display: flex;
|
|
7036
|
+
flex-direction: column;
|
|
7037
|
+
gap: 0.5rem;
|
|
7038
|
+
border: none;
|
|
7039
|
+
padding: 0;
|
|
7040
|
+
margin: 0;
|
|
7041
|
+
}
|
|
7042
|
+
|
|
7043
|
+
/* Inline field (checkbox, radio with label) */
|
|
7044
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-inline {
|
|
7045
|
+
display: flex;
|
|
7046
|
+
align-items: center;
|
|
7047
|
+
gap: 0.5rem;
|
|
7048
|
+
}
|
|
7049
|
+
|
|
7050
|
+
/* Success state */
|
|
7051
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-success {
|
|
7052
|
+
background-color: var(--fb-success-bg);
|
|
7053
|
+
color: var(--fb-success-text);
|
|
7054
|
+
border: 1px solid var(--fb-success-border);
|
|
7055
|
+
border-radius: var(--rb-block-radius);
|
|
7056
|
+
padding: 1rem;
|
|
7057
|
+
font-size: 0.875rem;
|
|
7058
|
+
}
|
|
7059
|
+
|
|
7060
|
+
/* Error banner */
|
|
7061
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-error {
|
|
7062
|
+
background-color: var(--fb-error-bg);
|
|
7063
|
+
color: var(--fb-error-text);
|
|
7064
|
+
border: 1px solid var(--fb-error-border);
|
|
7065
|
+
border-radius: var(--rb-block-radius);
|
|
7066
|
+
padding: 0.75rem;
|
|
7067
|
+
font-size: 0.875rem;
|
|
7068
|
+
margin-bottom: 0.5rem;
|
|
7069
|
+
}
|
|
7070
|
+
|
|
7071
|
+
/* Empty state (no form data) */
|
|
7072
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-empty {
|
|
7073
|
+
background-color: var(--fb-empty-bg);
|
|
7074
|
+
color: var(--fb-empty-text);
|
|
7075
|
+
border: 1px dashed var(--fb-empty-border);
|
|
7076
|
+
border-radius: var(--rb-block-radius);
|
|
7077
|
+
padding: 1.5rem;
|
|
7078
|
+
font-size: 0.875rem;
|
|
7079
|
+
text-align: center;
|
|
7080
|
+
}
|
|
7081
|
+
|
|
7082
|
+
/* Form actions (submit button container) */
|
|
7083
|
+
:where(.theme-scope) :where([data-block="form"]) .fb-actions {
|
|
7084
|
+
margin-top: 0.5rem;
|
|
7085
|
+
}
|
|
7086
|
+
|
|
7075
7087
|
/* =============================================================================
|
|
7076
7088
|
* Block-Level Override Utilities
|
|
7077
7089
|
*
|
|
@@ -8690,14 +8702,11 @@
|
|
|
8690
8702
|
--cr-on-surface-hover-bg: rgba(var(--tb-onSurface, var(--tb-text)), 0.05);
|
|
8691
8703
|
}
|
|
8692
8704
|
|
|
8693
|
-
/* Container
|
|
8705
|
+
/* Container: base styling comes from the shared .rb-reg-surface
|
|
8706
|
+
(registration-surface.css); these overrides preserve course
|
|
8707
|
+
registration's pre-extraction look (fixed padding, centered). */
|
|
8694
8708
|
:where(.theme-scope) :where([data-block="course-registration"]) .cr-container {
|
|
8695
|
-
border-radius: var(--rb-block-radius);
|
|
8696
|
-
border: 1px solid var(--cr-border);
|
|
8697
8709
|
padding: 1.5rem;
|
|
8698
|
-
background: rgb(var(--tb-surface));
|
|
8699
|
-
color: var(--cr-on-surface);
|
|
8700
|
-
max-width: 50rem; /* 800px */
|
|
8701
8710
|
margin-inline: auto;
|
|
8702
8711
|
}
|
|
8703
8712
|
|
|
@@ -9368,7 +9377,7 @@
|
|
|
9368
9377
|
padding: 2rem 1rem;
|
|
9369
9378
|
}
|
|
9370
9379
|
|
|
9371
|
-
/* State icon color variants (layout from registration-
|
|
9380
|
+
/* State icon color variants (layout from registration-surface.css) */
|
|
9372
9381
|
:where(.theme-scope) :where([data-block="course-registration"]) .rb-state-icon--success {
|
|
9373
9382
|
background: var(--cr-success-bg);
|
|
9374
9383
|
color: var(--cr-success-text);
|