Plugin Directory

Changeset 3399722


Ignore:
Timestamp:
11/20/2025 12:31:15 PM (3 weeks ago)
Author:
wimbraam
Message:

Preparing release 3.2.3

Location:
simplybook/trunk
Files:
24 added
108 edited

Legend:

Unmodified
Added
Removed
  • simplybook/trunk/app/Controllers/BlockController.php

    r3384996 r3399722  
    1717    }
    1818
    19     public function register()
     19    public function register(): void
    2020    {
    2121        if (!function_exists('register_block_type')) {
     
    9393     * enqueuing assets. This prevents issues in auto-installation situations.
    9494     */
    95     public function enqueueGutenbergBlockEditorAssets()
     95    public function enqueueGutenbergBlockEditorAssets(): void
    9696    {
    9797        if (
     
    148148     * @since 3.1.1 No longer filter out 'any', as this is a valid value for the
    149149     * feature: "Any Employee selector" (/v2/management/#plugins/any_unit/)
     150     *
     151     * @since 3.2.3 Added do_shortcode for FSE compatibility. FSE requires
     152     * an explicit do_shortcode() call to render shortcode content.
     153     * In other contexts, this call isn’t necessary, but it’s harmless. Once a
     154     * shortcode is rendered, the resulting content no longer contains a "[", so
     155     * subsequent calls simply return the already-rendered output.
    150156     */
    151157    public function renderGutenbergWidgetBlock(array $attributes = []): string
     
    155161        });
    156162
    157         return '[simplybook_widget' . $this->attributesToString($attributes) . ']';
     163        $shortcode = '[simplybook_widget' . $this->attributesToString($attributes) . ']';
     164
     165        // Process the shortcode explicitly for FSE compatibility
     166        return do_shortcode($shortcode);
    158167    }
    159168
  • simplybook/trunk/app/Controllers/CapabilityController.php

    r3384996 r3399722  
    1515    }
    1616
    17     public function register()
     17    public function register(): void
    1818    {
    1919        add_action('simplybook_activation', [$this, 'handlePluginActivation']);
     
    4343    public function addCapabilityToNewSubsite(\WP_Site $newSite, array $args): void
    4444    {
    45         switch_to_blog($newSite->blog_id);
     45        switch_to_blog((int) $newSite->blog_id);
    4646        $this->service->addSiteCapability('simplybook_manage', false);
    4747        restore_current_blog();
  • simplybook/trunk/app/Controllers/DashboardController.php

    r3384996 r3399722  
    2727    }
    2828
    29     public function register()
     29    public function register(): void
    3030    {
    3131        if ($this->userCanManage() === false) {
     
    8585        $menuPosition = apply_filters('simplybook_menu_position', 59);
    8686
     87        $menuCounterHtml = '';
     88        $menuCounter = $this->getMenuCount();
     89        if ($menuCounter > 0) {
     90            $menuCounterHtml = "<span class='menu-counter' style='position: absolute; top: 2px; z-index: 0; right: 4px;'>{$menuCounter}</span>";
     91        }
     92
    8793        $pageHookSuffix = add_menu_page(
    8894            esc_html__('SimplyBook.me', 'simplybook'),
    89             esc_html__('SimplyBook.me', 'simplybook'),
     95            esc_html__('SimplyBook.me', 'simplybook') . $menuCounterHtml,
    9096            'simplybook_manage',
    9197            'simplybook-integration',
     
    110116     * Enqueue the Tailwind CSS for the dashboard in the header
    111117     */
    112     public function enqueueDashboardStyles()
     118    public function enqueueDashboardStyles(): void
    113119    {
    114120        $chunkTranslation = $this->getReactChunkTranslations();
     
    282288        $this->app->client->reset_registration();
    283289    }
     290
     291    /**
     292     * Safe way to read the menu count from the options table. Returns 0 if
     293     * the Task Management feature is not available in the current context.
     294     */
     295    private function getMenuCount(): int
     296    {
     297        if (class_exists('\SimplyBook\Features\TaskManagement\Tasks\AbstractTask') === false) {
     298            return 0;
     299        }
     300
     301        return get_option(\SimplyBook\Features\TaskManagement\Tasks\AbstractTask::MENU_BUBBLE_OPTION_KEY, 0);
     302    }
    284303}
  • simplybook/trunk/app/Controllers/DesignSettingsController.php

    r3384996 r3399722  
    1616    }
    1717
    18     public function register()
     18    public function register(): void
    1919    {
    2020        add_action('simplybook_plugin_version_upgrade', [$this, 'handlePluginUpgrade'], 10, 2);
  • simplybook/trunk/app/Controllers/OnboardingNoticeController.php

    r3384996 r3399722  
    173173    /**
    174174     * Check if the timestamp is after the given amount of days ago.
     175     * @param string|float|int $timestamp
    175176     */
    176177    private function timestampIsAfter($timestamp, int $daysAgo = 7): bool
  • simplybook/trunk/app/Controllers/ReviewController.php

    r3384996 r3399722  
    162162    /**
    163163     * Check if the timestamp is more than 30 days ago.
     164     * @param float|int|string $timestamp
    164165     */
    165166    private function timestampIsThirtyDaysAgo($timestamp): bool
  • simplybook/trunk/app/Controllers/ScheduleController.php

    r3384996 r3399722  
    77class ScheduleController implements ControllerInterface
    88{
    9     public function register()
     9    public function register(): void
    1010    {
    1111        add_filter('cron_schedules', [$this, 'registerSimplyBookSchedules']);
  • simplybook/trunk/app/Controllers/ServicesController.php

    r3384996 r3399722  
    2121    }
    2222
    23     public function register()
     23    public function register(): void
    2424    {
    2525        add_action('simplybook_after_company_registered', [$this, 'setInitialServiceName']);
  • simplybook/trunk/app/Controllers/SettingsController.php

    r3384996 r3399722  
    1111    use LegacySave;
    1212
    13     public function register()
     13    public function register(): void
    1414    {
    1515        add_action('simplybook_activation', [$this, 'handlePluginActivation']);
  • simplybook/trunk/app/Controllers/WidgetController.php

    r3384996 r3399722  
    2424    }
    2525
    26     public function register()
     26    public function register(): void
    2727    {
    2828        add_shortcode('simplybook_widget', [$this, 'renderCalendarWidget']);
  • simplybook/trunk/app/Controllers/WidgetTrackingController.php

    r3384996 r3399722  
    2727    public function register(): void
    2828    {
    29         add_action('save_post', [$this, 'handlePostSave'], 10, 3);
     29        add_action('save_post', [$this, 'handlePostSave'], 10, 2);
    3030        add_action('delete_post', [$this, 'handlePostDelete']);
    3131        add_action('trashed_post', [$this, 'handlePostTrashed']);
     
    3737    public function handlePostSave(int $postId, \WP_Post $post): void
    3838    {
    39 
    4039        if ($this->shouldProcessSavedPost($postId, $post) !== true) {
    4140            return;
  • simplybook/trunk/app/Features/Notifications/Notices/AbstractNotice.php

    r3384996 r3399722  
    5858
    5959    /**
    60      * Use this method to set the notice as active based on a server-side
    61      * condition. By default, a notice can activate based on a client-side
    62      * condition.
     60     * @inheritDoc
    6361     */
    6462    public function setActive(bool $state = false): void
  • simplybook/trunk/app/Features/Notifications/Notices/AddMandatoryProviderNotice.php

    r3384996 r3399722  
    1212    public function getTitle(): string
    1313    {
    14         return esc_html__('No Providers configured', 'simplybook');
     14        return __('No Providers configured', 'simplybook');
    1515    }
    1616
     
    2020    public function getText(): string
    2121    {
    22         return esc_html__('Please configure at least one Service Provider', 'simplybook');
     22        return __('Please configure at least one Service Provider', 'simplybook');
    2323    }
    2424
     
    4545    {
    4646        return [
    47             'text' => esc_html__('Add Service Provider', 'simplybook'),
     47            'text' => __('Add Service Provider', 'simplybook'),
    4848            'login_link' => '/v2/management/#providers/edit/details/add',
    4949        ];
  • simplybook/trunk/app/Features/Notifications/Notices/AddMandatoryServiceNotice.php

    r3384996 r3399722  
    1212    public function getTitle(): string
    1313    {
    14         return esc_html__('No Services configured', 'simplybook');
     14        return __('No Services configured', 'simplybook');
    1515    }
    1616
     
    2020    public function getText(): string
    2121    {
    22         return esc_html__('Please configure at least one Service', 'simplybook');
     22        return __('Please configure at least one Service', 'simplybook');
    2323    }
    2424
     
    4545    {
    4646        return [
    47             'text' => esc_html__('Add Service', 'simplybook'),
     47            'text' => __('Add Service', 'simplybook'),
    4848            'login_link' => '/v2/management/#services/edit/details/add',
    4949        ];
  • simplybook/trunk/app/Features/Notifications/Notices/FailedAuthenticationNotice.php

    r3384996 r3399722  
    2121    public function getTitle(): string
    2222    {
    23         return esc_html__('Connection lost', 'simplybook');
     23        return __('Connection lost', 'simplybook');
    2424    }
    2525
     
    2929    public function getText(): string
    3030    {
    31         return esc_html__(
    32             'We’ve lost connection to your SimplyBook.me account. Please log out and sign in again to reconnect.',
     31        return __(
     32            "We've lost connection to your SimplyBook.me account. Please log out and sign in again to reconnect.",
    3333            'simplybook'
    3434        );
  • simplybook/trunk/app/Features/Notifications/Notices/MaxedOutProvidersNotice.php

    r3384996 r3399722  
    1212    public function getTitle(): string
    1313    {
    14         return esc_html__('Maximum number of Providers reached', 'simplybook');
     14        return __('Maximum number of Providers reached', 'simplybook');
    1515    }
    1616
     
    2020    public function getText(): string
    2121    {
    22         return esc_html__('Please upgrade your plan to configure more Service Providers, or delete existing Providers if you want to add more.', 'simplybook');
     22        return __('Please upgrade your plan to configure more Service Providers, or delete existing Providers if you want to add more.', 'simplybook');
    2323    }
    2424
     
    4545    {
    4646        return [
    47             'text' => esc_html__('Upgrade now', 'simplybook'),
     47            'text' => __('Upgrade now', 'simplybook'),
    4848            'login_link' => '/v2/r/payment-widget',
    4949        ];
  • simplybook/trunk/app/Features/Notifications/Notices/MaxedOutServicesNotice.php

    r3384996 r3399722  
    1212    public function getTitle(): string
    1313    {
    14         return esc_html__('Maximum number of Services reached', 'simplybook');
     14        return __('Maximum number of Services reached', 'simplybook');
    1515    }
    1616
     
    2020    public function getText(): string
    2121    {
    22         return esc_html__('Please upgrade your plan to configure more Services, or delete existing Services if you want to add more.', 'simplybook');
     22        return __('Please upgrade your plan to configure more Services, or delete existing Services if you want to add more.', 'simplybook');
    2323    }
    2424
     
    4545    {
    4646        return [
    47             'text' => esc_html__('Upgrade now', 'simplybook'),
     47            'text' => __('Upgrade now', 'simplybook'),
    4848            'login_link' => '/v2/r/payment-widget',
    4949        ];
  • simplybook/trunk/app/Features/Notifications/Notices/PublishWidgetNotice.php

    r3384996 r3399722  
    3535    public function getTitle(): string
    3636    {
    37         return esc_html__('No booking widget detected!', 'simplybook');
     37        return __('No booking widget detected!', 'simplybook');
    3838    }
    3939
     
    4343    public function getText(): string
    4444    {
    45         return esc_html__('It seems that you haven’t published the booking widget on the front-end of your site. Please use the shortcode or Gutenberg Widget to create your booking page to accept bookings!', 'simplybook');
     45        return __("It seems that you haven't published the booking widget on the front-end of your site. Please use the shortcode or Gutenberg Widget to create your booking page to accept bookings!", 'simplybook');
    4646    }
    4747
  • simplybook/trunk/app/Features/Notifications/NotificationsController.php

    r3384996 r3399722  
    2222    }
    2323
    24     public function register()
     24    public function register(): void
    2525    {
    2626        $this->endpoints->register();
     
    3535     * to the database.
    3636     *
    37      * @return NoticeInterface[]
    3837     * @internal New Notices should be added here. Upgrade the Notice version if
    3938     * the Notice should be updated. If a Notice should be removed, remove the
    4039     * Notice from this list.
     40     *
     41     * @return array<int,NoticeInterface>
     42     * @throws \LogicException
    4143     */
    4244    private function getNoticeObjects(): array
    4345    {
    44         // Add new notices here
    45         $pluginNotices = [
     46        return [
    4647            new Notices\AddMandatoryProviderNotice(),
    4748            new Notices\MaxedOutProvidersNotice(),
     
    5152            new Notices\PublishWidgetNotice(),
    5253        ];
    53 
    54         return array_filter($pluginNotices, function ($notice) {
    55             return $notice instanceof NoticeInterface;
    56         });
    5754    }
    5855
  • simplybook/trunk/app/Features/Notifications/NotificationsEndpoints.php

    r3384996 r3399722  
    1818    }
    1919
    20     public function register()
     20    public function register(): void
    2121    {
    2222        add_filter('simplybook_rest_routes', [$this, 'addNotificationRoutes']);
  • simplybook/trunk/app/Features/Onboarding/OnboardingController.php

    r3384996 r3399722  
    2929    }
    3030
    31     public function register()
     31    public function register(): void
    3232    {
    3333        // Check if the user has admin access permissions
     
    138138            return $this->service->sendHttpResponse([
    139139                'invalid_fields' => $companyBuilder->getInvalidFields(),
    140             ], false, esc_html__('Please fill in all fields.', 'simplybook'), 400);
     140            ], false, __('Please fill in all fields.', 'simplybook'), 400);
    141141        }
    142142
     
    161161
    162162        if ($storage->isEmpty('recaptchaToken')) {
    163             // wp_kses_post to allow apostrophe in the message
    164             $error = wp_kses_post(__('Please verify you\'re not a robot.', 'simplybook'));
     163            $error = __("Please verify you're not a robot.", 'simplybook');
    165164        }
    166165
    167166        if ($storage->isEmpty('confirmation-code')) {
    168             $error = esc_html__('Please enter the confirmation code.', 'simplybook');
     167            $error = __('Please enter the confirmation code.', 'simplybook');
    169168        }
    170169
    171170        if (!empty($error)) {
    172             return $this->service->sendHttpResponse([], false, $error);
     171            return $this->service->sendHttpResponse([], false, $error, 400);
    173172        }
    174173
    175174        try {
    176175            $response = $this->app->client->confirm_email(
    177                 $storage->getInt('confirmation-code'),
     176                $storage->getString('confirmation-code'),
    178177                $storage->getString('recaptchaToken')
    179178            );
     
    182181        }
    183182
    184         $this->service->setCompletedStep(3);
     183        // Only mark step as completed if the API call was successful
     184        if ($response->success) {
     185            $this->service->setCompletedStep(3);
     186        }
     187
    185188        return $this->service->sendHttpResponse([], $response->success, $response->message, ($response->success ? 200 : 400));
    186189    }
     
    203206            do_action('simplybook_save_onboarding_widget_style', $storage);
    204207        } catch (\Exception $e) {
    205             $message = esc_html__('Something went wrong while saving the widget style settings. Please try again.', 'simplybook');
     208            $message = __('Something went wrong while saving the widget style settings. Please try again.', 'simplybook');
    206209            return $this->service->sendHttpResponse([
    207210                'message' => $e->getMessage(),
     
    209212        }
    210213
    211         $message = esc_html__('Successfully saved widget style settings', 'simplybook');
     214        $message = __('Successfully saved widget style settings', 'simplybook');
    212215        return $this->service->sendHttpResponse([], true, $message);
    213216    }
     
    228231     * Generate default shortcode pages
    229232     */
    230     public function generateDefaultPages($request, $ajaxData = []): \WP_REST_Response
     233    public function generateDefaultPages(\WP_REST_Request $request, array $ajaxData = []): \WP_REST_Response
    231234    {
    232235        $storage = $this->service->retrieveHttpStorage($request, $ajaxData);
     
    234237        $calendarPageIsAvailable = $this->service->isPageTitleAvailableForURL($storage->getString('calendarPageUrl'));
    235238        if (!$calendarPageIsAvailable) {
    236             $message = esc_html__('Calendar page title should be available if you choose to generate this page.', 'simplybook');
     239            $message = __('Calendar page title should be available if you choose to generate this page.', 'simplybook');
    237240            return $this->service->sendHttpResponse([], false, $message, 503);
    238241        }
     
    277280
    278281        if ($storage->isOneEmpty(['company_domain', 'company_login', 'user_login', 'user_password'])) {
    279             return $this->service->sendHttpResponse([], false, esc_html__('Please fill in all fields.', 'simplybook'));
     282            return $this->service->sendHttpResponse([], false, __('Please fill in all fields.', 'simplybook'));
    280283        }
    281284
     
    294297            return $this->service->sendHttpResponse([
    295298                'message' => $e->getMessage(),
    296             ], false, esc_html__('Unknown error occurred, please verify your credentials.', 'simplybook'), 500);
     299            ], false, __('Unknown error occurred, please verify your credentials.', 'simplybook'), 500);
    297300        }
    298301
     
    301304
    302305        return new \WP_REST_Response([
    303             'message' => esc_html__('Login successful.', 'simplybook'),
     306            'message' => __('Login successful.', 'simplybook'),
    304307        ], 200);
    305308    }
     
    317320
    318321        if ($storage->isOneEmpty(['company_login', 'domain', 'auth_session_id', 'two_fa_type', 'two_fa_code'])) {
    319             return $this->service->sendHttpResponse([], false, esc_html__('Please fill in all fields.', 'simplybook'));
     322            return $this->service->sendHttpResponse([], false, __('Please fill in all fields.', 'simplybook'));
    320323        }
    321324
     
    334337            return $this->service->sendHttpResponse([
    335338                'message' => $e->getMessage(),
    336             ], false, esc_html__('Unknown 2FA error occurred, please verify your credentials.', 'simplybook')); // Default code 200 because React side still used request() here
     339            ], false, __('Unknown 2FA error occurred, please verify your credentials.', 'simplybook')); // Default code 200 because React side still used request() here
    337340        }
    338341
    339342        $this->finishLoggingInUser($response, $companyDomain, $companyLogin);
    340343
    341         return $this->service->sendHttpResponse([], true, esc_html__('Successfully authenticated user', 'simplybook')); // Default code 200 because React side still used request() here
     344        return $this->service->sendHttpResponse([], true, __('Successfully authenticated user', 'simplybook')); // Default code 200 because React side still used request() here
    342345    }
    343346
     
    377380     * line 352.
    378381     */
    379     protected function saveLoginCompanyData(string $userLogin, string $password)
     382    protected function saveLoginCompanyData(string $userLogin, string $password): void
    380383    {
    381384        $companyBuilder = new CompanyBuilder();
     
    404407        }
    405408
    406         return $this->service->sendHttpResponse([], true, esc_html__('Successfully requested SMS code', 'simplybook')); // Default code 200 because React side still used request() here
     409        return $this->service->sendHttpResponse([], true, __('Successfully requested SMS code', 'simplybook')); // Default code 200 because React side still used request() here
    407410    }
    408411
     
    416419    {
    417420        $code = 200;
    418         $message = esc_html__('Successfully finished onboarding!', 'simplybook');
     421        $message = __('Successfully finished onboarding!', 'simplybook');
    419422
    420423        $success = $this->service->setOnboardingCompleted();
    421424        if (!$success) {
    422             $message = esc_html__('An error occurred while finishing the onboarding process', 'simplybook');
     425            $message = __('An error occurred while finishing the onboarding process', 'simplybook');
    423426            $code = 400;
    424427        }
     
    434437    {
    435438        $success = $this->service->delete_all_options();
    436         $message = esc_html__('Successfully removed all previous data.', 'simplybook');
     439        $message = __('Successfully removed all previous data.', 'simplybook');
    437440
    438441        if (!$success) {
    439             $message = esc_html__('An error occurred while trying to remove previous data.', 'simplybook');
     442            $message = __('An error occurred while trying to remove previous data.', 'simplybook');
    440443        }
    441444
  • simplybook/trunk/app/Features/Onboarding/OnboardingService.php

    r3384996 r3399722  
    5555     * ApiResponseDTO from the successful {@see ApiClient::register_company()}
    5656     */
    57     public function finishCompanyRegistration(array $data)
     57    public function finishCompanyRegistration(array $data): void
    5858    {
    5959        $responseDataStorage = new Storage($data);
     
    7878
    7979        $success = (is_email($submittedEmailAddress) && $adminAgreesToTerms);
    80         $message = ($success ? '' : esc_html__('Please enter a valid email address and accept the terms and conditions', 'simplybook'));
     80        $message = ($success ? '' : __('Please enter a valid email address and accept the terms and conditions', 'simplybook'));
    8181
    8282        if ($success) {
  • simplybook/trunk/app/Features/TaskManagement/TaskManagementController.php

    r3384996 r3399722  
    1212    private TaskManagementListener $listener;
    1313
    14     public function __construct()
     14    public function __construct(TaskManagementService $service, TaskManagementEndpoints $endpoints, TaskManagementListener $listener)
    1515    {
    16         $this->service = new TaskManagementService(
    17             new TaskManagementRepository()
    18         );
    19 
    20         $this->endpoints = new TaskManagementEndpoints($this->service);
    21         $this->listener = new TaskManagementListener($this->service);
     16        $this->service = $service;
     17        $this->endpoints = $endpoints;
     18        $this->listener = $listener;
    2219    }
    2320
    24     public function register()
     21    public function register(): void
    2522    {
    2623        $this->endpoints->register();
     
    3936     * this list.
    4037     *
    41      * @return TaskInterface[]
     38     * @return array<int,TaskInterface>
     39     * @throws \LogicException
    4240     */
    4341    private function getTaskObjects(): array
    4442    {
    45         // Add new tasks here
    46         $pluginTasks = [
     43        return [
    4744            new Tasks\FailedAuthenticationTask(),
    4845            new Tasks\PublishWidgetTask(),
     
    6057            new Tasks\PostOnSocialMediaTask(),
    6158            new Tasks\GatherClientInfoTask(),
     59            new Tasks\BlackFridayTask(),
    6260        ];
    63 
    64         return array_filter($pluginTasks, function ($task) {
    65             return $task instanceof TaskInterface;
    66         });
    6761    }
    6862
  • simplybook/trunk/app/Features/TaskManagement/TaskManagementEndpoints.php

    r3384996 r3399722  
    1818    }
    1919
    20     public function register()
     20    public function register(): void
    2121    {
    2222        add_filter('simplybook_rest_routes', [$this, 'addTaskRoutes']);
     
    5252        $allTasksAsArray = array_map(function ($task) {
    5353            return $task->toArray();
    54         }, $this->service->getAllTasks(true));
     54        }, $this->service->getAllTasks());
    5555
    5656        return $this->sendHttpResponse(
  • simplybook/trunk/app/Features/TaskManagement/TaskManagementListener.php

    r3384996 r3399722  
    44
    55use SimplyBook\Support\Helpers\Event;
     6use SimplyBook\Services\PromotionService;
     7use SimplyBook\Services\SubscriptionDataService;
    68
    79class TaskManagementListener
    810{
    911    private TaskManagementService $service;
    10 
    11     public function __construct(TaskManagementService $service)
     12    private PromotionService $promotionService;
     13    private SubscriptionDataService $subscriptionDataService;
     14
     15    public function __construct(TaskManagementService $service, PromotionService $promotionService, SubscriptionDataService $subscriptionDataService)
    1216    {
    1317        $this->service = $service;
     18        $this->promotionService = $promotionService;
     19        $this->subscriptionDataService = $subscriptionDataService;
    1420    }
    1521
    1622    public function listen(): void
    1723    {
     24        add_action('admin_init', [$this, 'handleDateDrivenTasks']);
    1825        add_action('simplybook_event_' . Event::EMPTY_SERVICES, [$this, 'handleEmptyServices']);
    1926        add_action('simplybook_event_' . Event::EMPTY_PROVIDERS, [$this, 'handleEmptyProviders']);
     
    122129        }
    123130
     131        if (!empty($subscription)) {
     132            $this->handleBlackFridayTask($subscription);
     133        }
     134
    124135        $this->handleSubscriptionLimits($limits);
    125136    }
     
    273284        );
    274285    }
     286
     287    /**
     288     * Method will only set the Black Friday task visible and mark it as upgrade
     289     * if the current subscription is 'Trial' and the current date is between
     290     * the Black Friday start and end date mentioned in the env config.
     291     */
     292    private function handleBlackFridayTask(string $subscriptionType): void
     293    {
     294        $isTrial = (strtolower($subscriptionType) === 'trial');
     295
     296        if ($isTrial && $this->promotionService->isBlackFriday()) {
     297            $this->service->setTaskBubbleCounter(1);
     298            $this->service->markTaskUpgrade(
     299                Tasks\BlackFridayTask::IDENTIFIER
     300            );
     301            return;
     302        }
     303
     304        $this->service->setTaskBubbleCounter(0);
     305        $this->service->hideTask(
     306            Tasks\BlackFridayTask::IDENTIFIER
     307        );
     308    }
     309
     310    /**
     311     * Method is hooked on 'admin_init' action to check for date driven tasks.
     312     * Because these tasks do not depend solely on events but also on the
     313     * current date we should check them on every page load.
     314     * @internal make sure you cache your conditionals
     315     */
     316    public function handleDateDrivenTasks(): void
     317    {
     318        if ($this->promotionService->isBlackFriday()) {
     319            $this->handleBlackFridayTask(
     320                (string) $this->subscriptionDataService->search('subscription_name', '')
     321            );
     322        }
     323    }
    275324}
  • simplybook/trunk/app/Features/TaskManagement/TaskManagementService.php

    r3384996 r3399722  
    141141        $this->repository->updateTaskStatus($taskId, AbstractTask::STATUS_COMPLETED);
    142142    }
     143
     144    /**
     145     * Set the task to 'upgrade' status. This is used for upsell reasons. For
     146     * example with Black Friday promotions.
     147     */
     148    public function markTaskUpgrade(string $taskId): void
     149    {
     150        $this->repository->updateTaskStatus($taskId, AbstractTask::STATUS_UPGRADE);
     151    }
     152
     153    /**
     154     * Update the task bubble counter shown in the admin menu
     155     */
     156    public function setTaskBubbleCounter(int $count): void
     157    {
     158        update_option(AbstractTask::MENU_BUBBLE_OPTION_KEY, $count);
     159    }
    143160}
  • simplybook/trunk/app/Features/TaskManagement/Tasks/AbstractTask.php

    r3384996 r3399722  
    88{
    99    public const STATUS_OPEN = 'open';
     10    public const STATUS_UPGRADE = 'upgrade';
    1011    public const STATUS_URGENT = 'urgent';
    1112    public const STATUS_DISMISSED = 'dismissed';
     
    2122
    2223    /**
     24     * Option key to store the menu bubble counter for tasks. Can be used to
     25     * show the number of urgent tasks in the admin menu. Currently only used
     26     * if the Black Friday promotion is active.
     27     */
     28    public const MENU_BUBBLE_OPTION_KEY = 'simplybook_task_bubble_counter';
     29
     30    /**
    2331     * Override this property to define the version of the task. This version is
    2432     * used to determine if the task should be upgraded during a plugin update.
     
    115123        $knownStatuses = [
    116124            self::STATUS_OPEN,
     125            self::STATUS_UPGRADE,
    117126            self::STATUS_URGENT,
    118127            self::STATUS_DISMISSED,
     
    145154
    146155    /**
     156     * Set the task to 'upgrade' status
     157     */
     158    public function upgrade(): void
     159    {
     160        $this->status = self::STATUS_UPGRADE;
     161    }
     162
     163    /**
    147164     * Dismiss the task by setting the status to 'dismissed'. Only allowed if
    148165     * the task is not required.
     
    174191
    175192    /**
    176      * Reads if the task is required
     193     * @inheritDoc
    177194     */
    178195    public function isRequired(): bool
     
    205222    {
    206223        if ($this->isPremium()) {
    207             return esc_html__('Premium', 'simplybook');
     224            return __('Premium', 'simplybook');
    208225        }
    209226
    210227        if ($this->isSpecialFeature()) {
    211             return esc_html__('Special feature', 'simplybook');
     228            return __('Special feature', 'simplybook');
    212229        }
    213230
  • simplybook/trunk/app/Features/TaskManagement/Tasks/AcceptPaymentsTask.php

    r3384996 r3399722  
    2222    public function getText(): string
    2323    {
    24         return esc_html__('Accept payments via SimplyBook.me', 'simplybook');
     24        return __('Accept payments via SimplyBook.me', 'simplybook');
    2525    }
    2626
     
    3232        return [
    3333            'type' => 'button',
    34             'text' => esc_html__('More info', 'simplybook'),
     34            'text' => __('More info', 'simplybook'),
    3535            'login_link' => 'v2/management/#plugins/paid_events',
    3636        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/AddAllProvidersTask.php

    r3384996 r3399722  
    2121    public function getText(): string
    2222    {
    23         return esc_html__('Have you added all Service Providers?', 'simplybook');
     23        return __('Have you added all Service Providers?', 'simplybook');
    2424    }
    2525
     
    3131        return [
    3232            'type' => 'button',
    33             'text' => esc_html__('Add Providers', 'simplybook'),
     33            'text' => __('Add Providers', 'simplybook'),
    3434            'login_link' => '/v2/management/#providers',
    3535        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/AddAllServicesTask.php

    r3384996 r3399722  
    2121    public function getText(): string
    2222    {
    23         return esc_html__('Have you added all your Services?', 'simplybook');
     23        return __('Have you added all your Services?', 'simplybook');
    2424    }
    2525
     
    3131        return [
    3232            'type' => 'button',
    33             'text' => esc_html__('Add Services', 'simplybook'),
     33            'text' => __('Add Services', 'simplybook'),
    3434            'login_link' => '/v2/management/#services',
    3535        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/AddMandatoryProviderTask.php

    r3384996 r3399722  
    2727    public function getText(): string
    2828    {
    29         return esc_html__('Please configure at least one Service Provider', 'simplybook');
     29        return __('Please configure at least one Service Provider', 'simplybook');
    3030    }
    3131
     
    3737        return [
    3838            'type' => 'button',
    39             'text' => esc_html__('Add Provider', 'simplybook'),
     39            'text' => __('Add Provider', 'simplybook'),
    4040            'link' => 'settings/providers',
    4141        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/AddMandatoryServiceTask.php

    r3384996 r3399722  
    2727    public function getText(): string
    2828    {
    29         return esc_html__('Please configure at least one Service', 'simplybook');
     29        return __('Please configure at least one Service', 'simplybook');
    3030    }
    3131
     
    3737        return [
    3838            'type' => 'button',
    39             'text' => esc_html__('Add Service', 'simplybook'),
     39            'text' => __('Add Service', 'simplybook'),
    4040            'link' => 'settings/services',
    4141        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/CustomizeDesignTask.php

    r3384996 r3399722  
    1717    public function getText(): string
    1818    {
    19         return esc_html__('Customize your booking widget', 'simplybook');
     19        return __('Customize your booking widget', 'simplybook');
    2020    }
    2121
     
    2727        return [
    2828            'type' => 'button',
    29             'text' => esc_html__('Design settings', 'simplybook'),
     29            'text' => __('Design settings', 'simplybook'),
    3030            'link' => 'settings/design',
    3131        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/FailedAuthenticationTask.php

    r3384996 r3399722  
    2525    public function getText(): string
    2626    {
    27         return esc_html__('We’ve lost connection to your SimplyBook.me account. Reconnect by logging out via the general settings.', 'simplybook');
     27        return __("We've lost connection to your SimplyBook.me account. Reconnect by logging out via the general settings.", 'simplybook');
    2828    }
    2929
     
    3535        return [
    3636            'type' => 'button',
    37             'text' => esc_html__('General settings', 'simplybook'),
     37            'text' => __('General settings', 'simplybook'),
    3838            'link' => 'settings/general',
    3939        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/GatherClientInfoTask.php

    r3384996 r3399722  
    2222    public function getText(): string
    2323    {
    24         return esc_html__('Gather information from your clients upon booking', 'simplybook');
     24        return __('Gather information from your clients upon booking', 'simplybook');
    2525    }
    2626
     
    3232        return [
    3333            'type' => 'button',
    34             'text' => esc_html__('More info', 'simplybook'),
     34            'text' => __('More info', 'simplybook'),
    3535            'login_link' => 'v2/management/#additional-fields',
    3636        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/GoToSimplyBookSystemTask.php

    r3384996 r3399722  
    1717    public function getText(): string
    1818    {
    19         return esc_html__('Discover the full functionality on SimplyBook.me', 'simplybook');
     19        return __('Discover the full functionality on SimplyBook.me', 'simplybook');
    2020    }
    2121
     
    2727        return [
    2828            'type' => 'button',
    29             'text' => esc_html__('SimplyBook.me', 'simplybook'),
     29            'text' => __('SimplyBook.me', 'simplybook'),
    3030            'login_link' => '/v2/dashboard/new',
    3131        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/InstallAppTask.php

    r3384996 r3399722  
    1717    public function getText(): string
    1818    {
    19         return esc_html__('Install the SimplyBook.me app for iOS or Android', 'simplybook');
     19        return __('Install the SimplyBook.me app for iOS or Android', 'simplybook');
    2020    }
    2121
     
    2727        return [
    2828            'type' => 'button',
    29             'text' => esc_html__('More info', 'simplybook'),
     29            'text' => __('More info', 'simplybook'),
    3030            'modal' => [
    3131                'id' => 'install_app_task',
  • simplybook/trunk/app/Features/TaskManagement/Tasks/MaxedOutProvidersTask.php

    r3384996 r3399722  
    3232    public function getText(): string
    3333    {
    34         return esc_html__('You have reached the maximum number of Service Providers for your plan', 'simplybook');
     34        return __('You have reached the maximum number of Service Providers for your plan', 'simplybook');
    3535    }
    3636
     
    4242        return [
    4343            'type' => 'button',
    44             'text' => esc_html__('Upgrade', 'simplybook'),
     44            'text' => __('Upgrade', 'simplybook'),
    4545            'login_link' => 'v2/r/payment-widget',
    4646        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/MaximumBookingsTask.php

    r3384996 r3399722  
    3333    public function getText(): string
    3434    {
    35         return esc_html__('You have reached the maximum number of bookings for your plan', 'simplybook');
     35        return __('You have reached the maximum number of bookings for your plan', 'simplybook');
    3636    }
    3737
     
    4343        return [
    4444            'type' => 'button',
    45             'text' => esc_html__('Upgrade', 'simplybook'),
     45            'text' => __('Upgrade', 'simplybook'),
    4646            'login_link' => 'v2/r/payment-widget#/',
    4747        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/PostOnSocialMediaTask.php

    r3384996 r3399722  
    2222    public function getText(): string
    2323    {
    24         return esc_html__('Post your social media content and create ads', 'simplybook');
     24        return __('Post your social media content and create ads', 'simplybook');
    2525    }
    2626
     
    3232        return [
    3333            'type' => 'button',
    34             'text' => esc_html__('More info', 'simplybook'),
     34            'text' => __('More info', 'simplybook'),
    3535            'login_link' => 'v2/metric',
    3636        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/PublishWidgetTask.php

    r3384996 r3399722  
    4343    public function getText(): string
    4444    {
    45         return esc_html__('Publish the booking widget on the front-end of your site.', 'simplybook');
     45        return __('Publish the booking widget on the front-end of your site.', 'simplybook');
    4646    }
    4747
     
    5353        return [
    5454            'type' => 'button',
    55             'text' => esc_html__('Show shortcodes', 'simplybook'),
     55            'text' => __('Show shortcodes', 'simplybook'),
    5656            'link' => 'settings/general',
    5757        ];
  • simplybook/trunk/app/Features/TaskManagement/Tasks/TrialExpiredTask.php

    r3384996 r3399722  
    3333    public function getText(): string
    3434    {
    35         return esc_html__('Your Trial period has expired! Please consider all premium features!', 'simplybook');
     35        return __('Your Trial period has expired! Please consider all premium features!', 'simplybook');
    3636    }
    3737
     
    4343        return [
    4444            'type' => 'button',
    45             'text' => esc_html__('Upgrade', 'simplybook'),
     45            'text' => __('Upgrade', 'simplybook'),
    4646            'login_link' => 'v2/r/payment-widget#/',
    4747        ];
  • simplybook/trunk/app/Http/ApiClient.php

    r3384996 r3399722  
    3333
    3434    protected App $app;
    35     protected JsonRpcClient $jsonRpcClient;
    3635
    3736    /**
     
    6968     * @throws \LogicException For developers.
    7069     */
    71     public function __construct(App $app, JsonRpcClient $client)
     70    public function __construct(App $app)
    7271    {
    7372        $this->app = $app;
     
    7877        }
    7978
    80         $this->jsonRpcClient = $client;
    8179        $this->applicationKey = ($environment['app_key'] ?? '');
    8280
     
    149147
    150148    /**
    151      * Check if we have a company_id, which shows we have a registered company
     149     * Check if an admin token exists, which indicates the company is registered,
     150     * and we can make authenticated API calls.
     151     *
     152     * Cache duration:
     153     * - When onboarding completed: 24 hours (stable state)
     154     * - During onboarding: 10 minutes (more frequent checks)
     155     * - When no token: 1 minute
    152156     */
    153157    public function company_registration_complete(): bool
    154158    {
    155159        $cacheName = 'company_registration_complete';
    156         if ($cache = wp_cache_get($cacheName, 'simplybook')) {
     160        $cache = wp_cache_get($cacheName, 'simplybook', false, $found);
     161        if ($found) {
    157162            return $cache;
    158163        }
    159164
    160         //check if the callback has been completed, resulting in a company/admin token.
     165        // Check if admin token exists
    161166        if ( !$this->getToken('admin') ) {
    162167            $companyRegistrationStartTime = get_option('simplybook_company_registration_start_time', 0);
     
    170175            }
    171176
    172             wp_cache_set($cacheName, $cacheName, 'simplybook', MINUTE_IN_SECONDS);
     177            wp_cache_set($cacheName, false, 'simplybook', MINUTE_IN_SECONDS);
    173178            return false;
    174179        }
    175180
    176         wp_cache_set($cacheName, $cacheName, 'simplybook', (MINUTE_IN_SECONDS * 10));
     181        // If the token exists, and the onboarding is completed, we know
     182        // the company registration is complete, and we can cache for a longer
     183        // time.
     184        $isOnboardingCompleted = (get_option('simplybook_onboarding_completed', false) !== false);
     185        $cacheTime = MINUTE_IN_SECONDS * 10;
     186        if ($isOnboardingCompleted) {
     187            $cacheTime = DAY_IN_SECONDS;
     188        }
     189
     190        wp_cache_set($cacheName, true, 'simplybook', $cacheTime);
    177191        return true;
    178192    }
     
    321335    /**
    322336     * Refresh the token
    323      *
    324      * @return void
    325      */
    326     public function refresh_token($type = 'public'): void {
     337     */
     338    public function refresh_token(string $type = 'public'): void
     339    {
    327340        if ($this->isRefreshLocked($type)) {
    328341            return;
     
    441454     * error on when decrypting an existing token fails.
    442455     */
    443     private function automaticAuthenticationFallback(string $type)
     456    private function automaticAuthenticationFallback(string $type): void
    444457    {
    445458        // Company login can be empty for fresh accounts
     
    450463
    451464        $validateBasedOnDomainConfig = did_action('init');
    452         $domain = $this->get_domain($validateBasedOnDomainConfig);
     465        $domain = $this->get_domain((bool) $validateBasedOnDomainConfig);
    453466
    454467        $companyData = $this->get_company();
     
    583596    }
    584597
    585     public function reset_registration(){
     598    public function reset_registration(): void
     599    {
    586600        $this->delete_company_login();
    587601        $this->clearTokens();
     
    598612        if ($this->adminAccessAllowed() === false) {
    599613            throw new ApiException(
    600                 esc_html__('You are not authorized to do this.', 'simplybook')
     614                __('You are not authorized to do this.', 'simplybook')
    601615            );
    602616        }
     
    604618        if (get_transient('simply_book_attempt_count') > 3) {
    605619            throw new ApiException(
    606                 esc_html__('Too many attempts to register company, please try again in a minute.', 'simplybook')
     620                __('Too many attempts to register company, please try again in a minute.', 'simplybook')
    607621            );
    608622        }
     
    618632        if ($sanitizedCompany->isValid() === false) {
    619633            throw (new ApiException(
    620                 esc_html__('Please fill in all company data.', 'simplybook')
     634                __('Please fill in all company data.', 'simplybook')
    621635            ))->setData([
    622636                'invalid_fields' => $sanitizedCompany->getInvalidFields(),
     
    663677        if (is_wp_error($request)) {
    664678            throw (new ApiException(
    665                 esc_html__('Something went wrong while registering your company. Please try again.', 'simplybook'))
     679                __('Something went wrong while registering your company. Please try again.', 'simplybook'))
    666680            )->setData([
    667681                'error' => $request->get_error_message(),
     
    675689
    676690        if ($companySuccessfullyRegistered) {
    677             return new ApiResponseDTO(true, esc_html__('Company successfully registered.', 'simplybook'), 200, [
     691            return new ApiResponseDTO(true, __('Company successfully registered.', 'simplybook'), 200, [
    678692                'recaptcha_site_key' => $response->recaptcha_site_key,
    679693                'recaptcha_version' => $response->recaptcha_version,
     
    708722        ) {
    709723            throw (new ApiException(
    710                 esc_html__('The company name is not allowed. Please change the company name.', 'simplybook')
     724                __('The company name is not allowed. Please change the company name.', 'simplybook')
    711725            ))->setData([
    712726                'name' => $response->data->name,
     
    716730
    717731        throw (new ApiException(
    718             esc_html__('Unknown error encountered while registering your company. Please try again.', 'simplybook')
     732            __('Unknown error encountered while registering your company. Please try again.', 'simplybook')
    719733        ))->setData([
    720734            'message' => $response->message,
    721735            'data' => is_object($response->data) ? get_object_vars($response->data) : $response->data,
    722736        ]);
    723     }
    724 
    725     /**
    726      * Get user full name to set as the default provider
    727      *
    728      * @return string
    729      */
    730     private function get_user_full_name(): string {
    731         $user = wp_get_current_user();
    732         $first_name = $user->first_name;
    733         $last_name = $user->last_name;
    734         if ( !empty($first_name) && !empty($last_name) ) {
    735             return $first_name . ' ' . $last_name;
    736         }
    737 
    738         if ( !empty($user->user_nicename)) {
    739             return $user->user_nicename;
    740         }
    741         return $user->display_name;
    742737    }
    743738
     
    802797     * @throws ApiException
    803798     */
    804     public function confirm_email( int $email_code, string $recaptcha_token ): ApiResponseDTO
     799    public function confirm_email( string $email_code, string $recaptcha_token ): ApiResponseDTO
    805800    {
    806801        if ($this->adminAccessAllowed() === false) {
    807802            throw new ApiException(
    808                 esc_html__('You are not authorized to do this.', 'simplybook')
     803                __('You are not authorized to do this.', 'simplybook')
    809804            );
    810805        }
     
    814809        if (get_option("simplybook_company_registration_start_time") === false) {
    815810            throw new ApiException(
    816                 esc_html__('Something went wrong, are you sure you started the company registration?', 'simplybook')
     811                __('Something went wrong, are you sure you started the company registration?', 'simplybook')
    817812            );
    818813        }
     
    833828        if (is_wp_error($request)) {
    834829            throw (new ApiException(
    835                 esc_html__('Something went wrong while confirming your email. Please try again.', 'simplybook'))
     830                __('Something went wrong while confirming your email. Please try again.', 'simplybook'))
    836831            )->setData([
    837832                'error' => $request->get_error_message(),
     
    841836        $response = json_decode(wp_remote_retrieve_body($request));
    842837        if (isset($response->success)) {
    843             return new ApiResponseDTO(true, esc_html__('Email successfully confirmed.', 'simplybook'));
     838            return new ApiResponseDTO(true, __('Email successfully confirmed.', 'simplybook'));
    844839        }
    845840
    846841        $codeIsValid = true;
    847         $errorMessage = esc_html__('Unknown error encountered while confirming your email. Please try again.', 'simplybook');
     842        $errorMessage = __('Unknown error encountered while confirming your email. Please try again.', 'simplybook');
    848843        if (isset($response->message) && str_contains($response->message, 'not valid')) {
    849             $errorMessage = esc_html__('This confirmation code is not valid.', 'simplybook');
     844            $errorMessage = __('This confirmation code is not valid.', 'simplybook');
    850845            $codeIsValid = false;
    851846        }
     
    10161011        }
    10171012
     1013        if (is_wp_error( $response_body ) ) {
     1014            $message = "WP_Error during api call for path: $path. Error: " . $response_body->get_error_message();
     1015            $this->log($message);
     1016
     1017            update_option('simplybook_api_status', [
     1018                'status' => 'error',
     1019                'time' => time(),
     1020                'error' => esc_sql($message),
     1021            ]);
     1022
     1023            return [];
     1024        }
     1025
    10181026        $response_code = wp_remote_retrieve_response_code( $response_body );
    1019         if ( !is_wp_error( $response_body)) {
    1020             $response = json_decode( wp_remote_retrieve_body( $response_body ), true );
    1021         }
     1027        $response = json_decode( wp_remote_retrieve_body( $response_body ), true );
    10221028
    10231029        if ( $response_code === 200 ) {
     
    10321038            update_option('simplybook_persistent_cache', $cache, false);
    10331039            return $response;
    1034         } else {
    1035             if ( isset($response['message'])) {
    1036                 $message = $response['message'];
    1037             } else if (isset($response->message)){
    1038                 $message = $response->message;
    1039             } else {
    1040                 $message = '';
    1041             }
    1042             if ( $attempt===1 &&  str_contains( $message, 'Token Expired')) {
    1043                 //invalid token, refresh.
    1044                 $this->refresh_token($token_type);
    1045                 $this->api_call( $path, $data, $type, $attempt + 1 );
    1046             }
    1047             $this->log("Error during $path_type retrieval: ".$message);
    1048 
    1049             /* phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r */
    1050             $msg = "response code: " . $response_code . ", response body: ".print_r($response_body,true);
    1051 
    1052             update_option('simplybook_api_status', array(
    1053                 'status' => 'error',
    1054                 'error' => esc_sql($msg),
    1055                 'time' => time(),
    1056             ) );
    1057             $this->_log($msg);
    1058         }
     1040        }
     1041
     1042        $message = '';
     1043        if ( isset($response['message'])) {
     1044            $message = $response['message'];
     1045        } elseif (isset($response->message)){
     1046            $message = $response->message;
     1047        }
     1048
     1049        if ( $attempt === 1 && str_contains( $message, 'Token Expired')) {
     1050            //invalid token, refresh.
     1051            $this->refresh_token($token_type);
     1052            return $this->api_call( $path, $data, $type, $attempt + 1 );
     1053        }
     1054
     1055        $this->log("Error during $path_type retrieval: ".$message);
     1056
     1057        /* phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r */
     1058        $msg = "response code: " . $response_code . ", response body: ".print_r($response_body,true);
     1059
     1060        $this->_log($msg);
     1061        update_option('simplybook_api_status', array(
     1062            'status' => 'error',
     1063            'error' => esc_sql($msg),
     1064            'time' => time(),
     1065        ) );
     1066
    10591067        return [];
    10601068    }
    10611069
    10621070    /**
    1063      *
    1064      *
    1065      * Below old api functions
    1066      */
    1067 
    1068 
    1069     public function checkApiConnection(){
     1071     * Check if we have a valid API Connection
     1072     */
     1073    public function checkApiConnection(): bool
     1074    {
    10701075        $response = wp_remote_get($this->endpoint('admin'));
    10711076
    1072         //if reponse 401 and valid json - api is working
    1073         if(wp_remote_retrieve_response_code($response) == 401){
     1077        // if response 401 and valid json - api is working
     1078        if (wp_remote_retrieve_response_code($response) == 401) {
    10741079            $result = wp_remote_retrieve_body($response);
    10751080            $result = json_decode($result, true);
    1076             if($result && isset($result['code']) && $result['code'] == 401){
     1081            if ($result && isset($result['code']) && $result['code'] == 401) {
    10771082                return true;
    10781083            }
    10791084        }
     1085
    10801086        return false;
    10811087    }
     
    10841090     * @todo - maybe this can be an Entity in the future?
    10851091     */
    1086     public function getCategories(bool $onlyValues = false)
     1092    public function getCategories(bool $onlyValues = false): array
    10871093    {
    10881094        $cacheKey = 'sb_plugin_categories' . $this->_commonCacheKey;
     
    11001106     * @todo - maybe this can be an Entity in the future?
    11011107     */
    1102     public function getLocations(bool $onlyValues = false)
     1108    public function getLocations(bool $onlyValues = false): array
    11031109    {
    11041110        $cacheKey = 'sb_plugin_locations' . $this->_commonCacheKey;
     
    11161122     * @todo - maybe this can be an Entity in the future?
    11171123     */
    1118     public function getSpecialFeatureList()
     1124    public function getSpecialFeatureList(): array
    11191125    {
    11201126        $cacheKey = 'sb_plugin_plugins' . $this->_commonCacheKey;
     
    11591165    }
    11601166
    1161     protected function _log($error)
     1167    /**
     1168     * @param mixed $error
     1169     */
     1170    protected function _log($error): void
    11621171    {
    11631172        // Return if WP_DEBUG is not enabled
     
    11861195        /* phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log */
    11871196        error_log($error);
    1188     }
    1189 
    1190     /**
    1191      * Check if we have an error status stored
    1192      * @return bool
    1193      */
    1194     private function api_is_ok(): bool
    1195     {
    1196         $api_status = get_option('simplybook_api_status');
    1197         if ( !isset($api_status['status']) ) {
    1198             //nothing saved yet, assume ok.
    1199             return true;
    1200         }
    1201         if ( $api_status['status'] === 'error' && $api_status['time'] > time() - HOUR_IN_SECONDS ) {
    1202             return false;
    1203         }
    1204 
    1205         //success, or last fail was an hour ago, try again.
    1206         return true;
    12071197    }
    12081198
     
    12421232        if (!is_array($responseBody) || !isset($responseBody['token'])) {
    12431233            throw (new RestDataException(
    1244                 esc_html__('Login failed! Please try again later.', 'simplybook')
     1234                __('Login failed! Please try again later.', 'simplybook')
    12451235            ))->setResponseCode(500)->setData([
    12461236                'response_code' => $responseCode,
    1247                 'response_message' => esc_html__('Invalid response from SimplyBook.me', 'simplybook'),
     1237                'response_message' => __('Invalid response from SimplyBook.me', 'simplybook'),
    12481238            ]);
    12491239        }
     
    12981288        if (!is_array($responseBody) || !isset($responseBody['token'])) {
    12991289            throw (new RestDataException(
    1300                 esc_html__('Two factor authentication failed! Please try again later.', 'simplybook')
     1290                __('Two factor authentication failed! Please try again later.', 'simplybook')
    13011291            ))->setData([
    13021292                'response_code' => $responseCode,
    1303                 'response_message' => esc_html__('Invalid 2FA response from SimplyBook.me', 'simplybook'),
     1293                'response_message' => __('Invalid 2FA response from SimplyBook.me', 'simplybook'),
    13041294            ]);
    13051295        }
     
    13211311     * @throws RestDataException
    13221312     */
    1323     public function throwSpecificLoginErrorResponse(int $responseCode, ?array $response = [], bool $isTwoFactorAuth = false)
     1313    public function throwSpecificLoginErrorResponse(int $responseCode, ?array $response = [], bool $isTwoFactorAuth = false): void
    13241314    {
    13251315        $response = (array) $response; // Ensure we have an array
    13261316        $responseBody = json_decode(wp_remote_retrieve_body($response), true);
    13271317
    1328         $responseMessage = esc_html__('No error received from remote.', 'simplybook');
     1318        $responseMessage = __('No error received from remote.', 'simplybook');
    13291319        if (is_array($responseBody) && !empty($responseBody['message'])) {
    13301320            $responseMessage = $responseBody['message'];
     
    13331323        switch ($responseCode) {
    13341324            case 400:
    1335                 $message = esc_html__('Invalid login or password, please try again.', 'simplybook');
     1325                $message = __('Invalid login or password, please try again.', 'simplybook');
    13361326                if ($isTwoFactorAuth) {
    1337                     $message = esc_html__('Incorrect 2FA authentication code, please try again.', 'simplybook');
     1327                    $message = __('Incorrect 2FA authentication code, please try again.', 'simplybook');
    13381328                }
    13391329                break;
    13401330            case 403:
    1341                 $message = esc_html__('Too many login attempts. Verify your credentials and try again in a few minutes.', 'simplybook');
     1331                $message = __('Too many login attempts. Verify your credentials and try again in a few minutes.', 'simplybook');
    13421332                break;
    13431333            case 404:
    1344                 $message = esc_html__("Could not find a company associated with that company login.", 'simplybook');
     1334                $message = __("Could not find a company associated with that company login.", 'simplybook');
    13451335                break;
    13461336            default:
    1347                 $message = esc_html__('Authentication failed, please verify your credentials.', 'simplybook');
     1337                $message = __('Authentication failed, please verify your credentials.', 'simplybook');
    13481338        }
    13491339
     
    14221412    {
    14231413        $providerLabels = [
    1424             'ga'  => esc_html__('Google Authenticator', 'simplybook'),
    1425             'sms' => esc_html__('SMS', 'simplybook'),
     1414            'ga'  => __('Google Authenticator', 'simplybook'),
     1415            'sms' => __('SMS', 'simplybook'),
    14261416        ];
    14271417
     
    14291419        foreach ($providerKeys as $provider) {
    14301420            $allowedProviders[$provider] = ($providerLabels[$provider] ??
    1431                 esc_html__('Unknown 2FA provider', 'simplybook'));
     1421                __('Unknown 2FA provider', 'simplybook'));
    14321422        }
    14331423
     
    14371427    /**
    14381428     * Get the list of themes available for the company
    1439      * @uses \SimplyBook\Http\JsonRpcClient
    14401429     * @throws \Exception
    14411430     */
     
    14651454        }
    14661455
    1467         $response = $this->jsonRpcClient->setUrl(
    1468             $this->endpoint('public', '', false)
    1469         )->setHeaders([
    1470             'X-Company-Login: ' . $this->get_company_login(),
    1471             'X-User-Token: ' . $this->getToken('public'),
    1472         ])->getThemeList();
     1456        $response = $this->post('public', json_encode([
     1457            'jsonrpc' => '2.0',
     1458            'method' => 'getThemeList',
     1459            'id' => 1,
     1460        ]));
    14731461
    14741462        $data['created_at_utc'] = Carbon::now('UTC')->toDateTimeString();
    1475         $data['themes'] = $response;
     1463        $data['themes'] = $response['result'] ?? [];
    14761464
    14771465        update_option('simplybook_cached_theme_list', $data);
     
    14821470    /**
    14831471     * Get the timeline setting options that are available for the company
    1484      * @uses \SimplyBook\Http\JsonRpcClient
    14851472     */
    14861473    public function getTimelineList(): array
     
    15091496        }
    15101497
    1511         $response = $this->jsonRpcClient->setUrl(
    1512             $this->endpoint('public', '', false)
    1513         )->setHeaders([
    1514             'X-Company-Login: ' . $this->get_company_login(),
    1515             'X-User-Token: ' . $this->getToken('public'),
    1516         ])->getTimelineList();
     1498        $response = $this->post('public', json_encode([
     1499            'jsonrpc' => '2.0',
     1500            'method' => 'getTimelineList',
     1501            'id' => 1,
     1502        ]));
    15171503
    15181504        $data['created_at_utc'] = Carbon::now('UTC')->toDateTimeString();
    1519         $data['list'] = $response;
     1505        $data['list'] = $response['result'] ?? [];
    15201506
    15211507        update_option('simplybook_cached_timeline_list', $data);
    1522         wp_cache_add('simplybook_timeline_list', $response, 'simplybook', (2 * DAY_IN_SECONDS));
    1523         return $response;
     1508        wp_cache_add('simplybook_timeline_list', $data, 'simplybook', (2 * DAY_IN_SECONDS));
     1509        return $data;
    15241510    }
    15251511
     
    15311517    private function getReferrer(): string
    15321518    {
    1533         return (defined('\EXTENDIFY_PARTNER_ID') ? \EXTENDIFY_PARTNER_ID : 'wp');
     1519        return (defined('EXTENDIFY_PARTNER_ID') ? \EXTENDIFY_PARTNER_ID : 'wp');
    15341520    }
    15351521
     
    15501536     * @throws \Exception
    15511537     */
    1552     public function get(string $endpoint)
     1538    public function get(string $endpoint): array
    15531539    {
    15541540        if ($this->company_registration_complete() === false) {
     
    15721558     * @throws RestDataException
    15731559     */
    1574     public function put($endpoint, string $payload): array
     1560    public function put(string $endpoint, string $payload): array
    15751561    {
    15761562        return $this->request('PUT', $endpoint, $payload);
     
    15821568     * @throws RestDataException
    15831569     */
    1584     public function post($endpoint, string $payload): array
     1570    public function post(string $endpoint, string $payload): array
    15851571    {
    15861572        return $this->request('POST', $endpoint, $payload);
     
    15921578     * @throws RestDataException
    15931579     */
    1594     public function delete($endpoint): array
     1580    public function delete(string $endpoint): array
    15951581    {
    15961582        return $this->request('DELETE', $endpoint);
     
    16171603        }
    16181604
     1605        // For JSON RPC endpoints (endpoint is exactly 'public'), use v1 API
     1606        $useV2 = ($endpoint !== 'public');
     1607
    16191608        $response = wp_safe_remote_request(
    1620             $this->endpoint($endpoint),
     1609            $this->endpoint($endpoint, '', $useV2),
    16211610            $requestArgs
    16221611        );
     
    16341623        $responseMessage = wp_remote_retrieve_response_message($response);
    16351624        $responseBody = wp_remote_retrieve_body($response);
    1636         $responseData = is_array($responseBody) ? $responseBody : json_decode($responseBody, true);
    1637 
    1638         if (!($responseCode >= 200 && $responseCode < 300)) {
     1625
     1626        $responseData = json_decode($responseBody, true);
     1627        $jsonError = json_last_error();
     1628
     1629        if ($jsonError !== JSON_ERROR_NONE) {
     1630            $responseData = [];
     1631        }
     1632
     1633        if ($responseCode < 200 || $responseCode >= 300) {
    16391634            throw (new RestDataException($responseMessage))
    16401635                ->setResponseCode($responseCode)
    1641                 ->setData($responseData ?: []);
    1642         }
    1643 
    1644         return $responseData ?: [];
     1636                ->setData($responseData);
     1637        }
     1638
     1639        return $responseData;
    16451640    }
    16461641
     
    16691664     * cached data for a specific endpoint.
    16701665     * @uses wp_cache_get
     1666     * @return false|mixed
    16711667     */
    16721668    private function getRequestCache(string $endpoint)
  • simplybook/trunk/app/Http/Endpoints/AbstractCrudEndpoint.php

    r3384996 r3399722  
    6767                return $this->createItem($requestStorage);
    6868            default:
    69                 return $this->sendHttpResponse([], false, esc_html__('Method not allowed', 'simplybook'), 405);
     69                return $this->sendHttpResponse([], false, __('Method not allowed', 'simplybook'), 405);
    7070        }
    7171    }
     
    9090    {
    9191        if ($request->isEmpty()) {
    92             return $this->sendHttpResponse([], false, esc_html__('Could not create entity, no data provided.', 'simplybook'), 405);
     92            return $this->sendHttpResponse([], false, __('Could not create entity, no data provided.', 'simplybook'), 405);
    9393        }
    9494
     
    101101        }
    102102
    103         $successMessage = $this->entity->name . ' ' . esc_html__('successfully saved!', 'simplybook');
     103        // translators: %s is either 'Service' or 'Service Provider'
     104        $successMessage = sprintf(
     105            __('%s successfully saved!', 'simplybook'),
     106            $this->entity->getName()
     107        );
     108
    104109        return $this->sendHttpResponse($this->entity->attributes(), true, $successMessage);
    105110    }
     
    124129                return $this->deleteEntity($requestStorage);
    125130            default:
    126                 return $this->sendHttpResponse([], false, esc_html__('Method not allowed', 'simplybook'), 405);
     131                return $this->sendHttpResponse([], false, __('Method not allowed', 'simplybook'), 405);
    127132        }
    128133    }
     
    142147            return $this->sendHttpResponse([
    143148                'error' => $e->getMessage()
    144             ], false, esc_html__('Entity not found!', 'simplybook'), 404);
     149            ], false, __('Entity not found!', 'simplybook'), 404);
    145150        }
    146151
     
    162167        }
    163168
    164         $successMessage = $this->entity->name . ' ' . esc_html__('successfully saved!', 'simplybook');
     169        // translators: %s is either 'Service' or 'Service Provider'
     170        $successMessage = sprintf(
     171            __('%s successfully saved!', 'simplybook'),
     172            $this->entity->getName()
     173        );
     174
    165175        return $this->sendHttpResponse($this->entity->attributes(), true, $successMessage);
    166176    }
     
    174184    {
    175185        try {
    176             $this->entity->id = $request->getString('id');
     186            $this->entity->setPrimaryValue($request->getString('id'));
    177187            $this->entity->delete();
    178188        } catch (\Throwable $e) {
    179189            return $this->sendHttpResponse([
    180190                'error' => $e->getMessage()
    181             ], false, esc_html__('Something went wrong while deleting.', 'simplybook'), 400);
     191            ], false, __('Something went wrong while deleting.', 'simplybook'), 400);
    182192        }
    183193
     
    203213        }
    204214
    205         return $this->sendHttpResponse([], false, esc_html__('An unknown error occurred. Please try again later.', 'simplybook'), 400);
     215        return $this->sendHttpResponse([], false, __('An unknown error occurred. Please try again later.', 'simplybook'), 400);
    206216    }
    207217
     
    233243        if (empty($exceptionData['data'])) {
    234244            return new \WP_REST_Response([
    235                 'message' => esc_html__('An unknown error occurred while saving, please try again.', 'simplybook'),
     245                'message' => __('An unknown error occurred while saving, please try again.', 'simplybook'),
    236246            ], 403);
    237247        }
     
    241251
    242252        return new \WP_REST_Response([
    243             'message' => esc_html__('An error occurred while saving, please try again.', 'simplybook'),
     253            'message' => __('An error occurred while saving, please try again.', 'simplybook'),
    244254            'errors' => $translatedErrors,
    245255        ], 403);
  • simplybook/trunk/app/Http/Endpoints/BlockEndpoints.php

    r3384996 r3399722  
    7979     * Return the categories as an array.
    8080     */
    81     public function getCategories()
     81    public function getCategories(): array
    8282    {
    8383        if (!$this->companyRegistrationIsCompleted()) {
     
    102102
    103103    /**
    104      * Deprecated when the {@see \SimplyBook\Http\Endpoints\ProvidersEndpoint}
     104     * Deprecated when the {@see \SimplyBook\Http\Endpoints\ServicesProvidersEndpoint}
    105105     * also adds the 'any' provider to the response. And when the Gutenberg
    106106     * block can handle the response.
     
    119119            $anyProvider = [
    120120                'id' => 'any',
    121                 'name' => esc_html__('Any provider', 'simplybook'),
     121                'name' => __('Any provider', 'simplybook'),
    122122                'qty' => 1
    123123            ];
  • simplybook/trunk/app/Http/Endpoints/LogOutEndpoint.php

    r3384996 r3399722  
    5050    {
    5151        if ($request->get_param('user_confirmed') === false) {
    52             return $this->sendHttpResponse([], true, esc_html__('User prevented logout.', 'simplybook'));
     52            return $this->sendHttpResponse([], true, __('User prevented logout.', 'simplybook'));
    5353        }
    5454
    5555        $success = $this->delete_all_options();
    56         $message = esc_html__('User is logged out and will be redirected to onboarding.', 'simplybook');
     56        $message = __('User is logged out and will be redirected to onboarding.', 'simplybook');
    5757        if (!$success) {
    58             $message = esc_html__('Failed to log out user.', 'simplybook');
     58            $message = __('Failed to log out user.', 'simplybook');
    5959        }
    6060        $code = $success ? 200 : 500;
  • simplybook/trunk/app/Http/Endpoints/NoticesDismissEndpoint.php

    r3384996 r3399722  
    6464                [],
    6565                false,
    66                 esc_html__('Failed to dismiss notice.', 'simplybook'),
     66                __('Failed to dismiss notice.', 'simplybook'),
    6767                500
    6868            );
     
    7272            ['notice_type' => $noticeType],
    7373            true,
    74             esc_html__('Notice dismissed successfully.', 'simplybook')
     74            __('Notice dismissed successfully.', 'simplybook')
    7575        );
    7676    }
  • simplybook/trunk/app/Http/Endpoints/SettingEndpoints.php

    r3384996 r3399722  
    112112            return $this->sendHttpResponse([
    113113                'errors' => $e->getErrors(),
    114             ], false, esc_html__('Error processing settings', 'simplybook'));
     114            ], false, __('Error processing settings', 'simplybook'));
    115115        }
    116116
  • simplybook/trunk/app/Http/Entities/AbstractEntity.php

    r3384996 r3399722  
    1010abstract class AbstractEntity
    1111{
     12    /**
     13     * Return the name of the entity. This can either be a generic name that
     14     * represents the entity. Or a property like 'name' {@see Service}
     15     * or {@see ServiceProvider}
     16     */
     17    abstract public function getName(): string;
     18
    1219    /**
    1320     * Get the remote endpoint URL for this entity. Used internally in the
     
    3340     * [
    3441     *      'attribute_x' => [
    35      *          'not dynamic part of error string' => esc_html__('User friendly translation of error.', 'simplybook'),
     42     *          'not dynamic part of error string' => __('User friendly translation of error.', 'simplybook'),
    3643     *      ],
    3744     *      // Real example from the {@see Service} class:
    3845     *      'duration' => [
    3946     *          // "Duration is not multiple of '60' minutes"
    40      *          'is not multiple of' => esc_html__('Duration invalid. Please enter a valid number that is a multiple of your selected timeframe.', 'simplybook'),
     47     *          'is not multiple of' => __('Duration invalid. Please enter a valid number that is a multiple of your selected timeframe.', 'simplybook'),
    4148     *       ]
    4249     * ]
     
    8289    {
    8390        $this->registerConditionalProperties();
     91    }
     92
     93    /**
     94     * Method is used so set the main identifier of a local entity object to
     95     * the one on the remote. Currently used to delete an entity by id
     96     * {@see AbstractCrudEndpoint}
     97     * @param mixed $value Usually a string value
     98     */
     99    public function setPrimaryValue($value): void
     100    {
     101        $this->attributes[$this->primaryKey] = $value;
    84102    }
    85103
     
    139157     * Register the current entity as initializing.
    140158     */
    141     protected function enableFirstInitialize()
     159    protected function enableFirstInitialize(): void
    142160    {
    143161        $this->initializing = true;
     
    147165     * Register the current entity as initialized.
    148166     */
    149     protected function disableFirstInitialize()
     167    protected function disableFirstInitialize(): void
    150168    {
    151169        $this->initializing = false;
     
    166184    /**
    167185     * Check if the key is fillable.
     186     * @param mixed $key
    168187     */
    169188    protected function isFillable($key): bool
     
    175194     * Set an attribute and register it as changed if it is different from the
    176195     * previous value.
     196     * @param mixed $value
    177197     */
    178198    protected function setAttribute(string $key, $value): void
     
    227247    public function has(string $name): bool
    228248    {
    229         return isset($this->attributes[$name]) && null !== $this->attributes[$name];
     249        return isset($this->attributes[$name]);
    230250    }
    231251
     
    254274
    255275        foreach ($this->required as $attribute) {
     276            // No empty() check to prevent falsy matches
    256277            $requiredFieldIsEmpty = (
    257278                !isset($this->attributes[$attribute])
    258                 || ($this->attributes[$attribute] === null || $this->attributes[$attribute] === '')
     279                || $this->attributes[$attribute] === ''
    259280            );
    260281
    261282            if ($requiredFieldIsEmpty) {
    262283                $errors[$attribute] = [
    263                     esc_html__('Field is required.', 'simplybook'),
     284                    __('Field is required.', 'simplybook'),
    264285                ];
    265286            }
     
    359380
    360381    /**
    361      * Find a entity by ID. If no ID is provided, use the current instance.
    362      * Throws an exception if the entity is not found.
     382     * Find an entity by its primary. If no primary is provided, use the current
     383     * instance. Throws an exception if the entity is not found.
    363384     * @throws \Exception|RestDataException
    364385     */
    365     public function find(string $id = ''): AbstractEntity
    366     {
    367         $id = ($id ?: $this->id);
    368 
    369         $endpoint = trailingslashit($this->getEndpoint()) . sanitize_text_field($id);
     386    public function find(string $primary = ''): AbstractEntity
     387    {
     388        $primary = ($primary ?: $this->{$this->primaryKey});
     389
     390        $endpoint = trailingslashit($this->getEndpoint()) . sanitize_text_field($primary);
    370391        $entityData = App::client()->get($endpoint);
    371392
     
    403424        $this->validate();
    404425
    405         $endpoint = trailingslashit($this->getEndpoint()) . sanitize_text_field($this->id);
     426        $endpoint = trailingslashit($this->getEndpoint()) . sanitize_text_field($this->{$this->primaryKey});
    406427        App::client()->put($endpoint, $this->json());
    407428
     
    416437     * @internal Override this method if you want to customize the logic.
    417438     */
    418     public function delete(string $id = ''): bool
    419     {
    420         $id = ($id ?: $this->id);
    421         if (empty($id)) {
    422             throw new \InvalidArgumentException('Entity ID is required for deletion');
    423         }
    424 
    425         $endpoint = trailingslashit($this->getEndpoint()) . $id;
     439    public function delete(string $primary = ''): bool
     440    {
     441        $primary = ($primary ?: $this->{$this->primaryKey});
     442        if (empty($primary)) {
     443            throw new \InvalidArgumentException('Entity primary is required for deletion');
     444        }
     445
     446        $endpoint = trailingslashit($this->getEndpoint()) . $primary;
    426447        App::client()->delete($endpoint);
    427448
  • simplybook/trunk/app/Http/Entities/Service.php

    r3384996 r3399722  
    4141     * @inheritDoc
    4242     */
     43    public function getName(): string
     44    {
     45        return $this->name ?: __('Service', 'simplybook');
     46    }
     47
     48    /**
     49     * @inheritDoc
     50     */
    4351    public function getEndpoint(): string
    4452    {
     
    6169        return [
    6270            'duration' => [
    63                 'is not multiple of' => esc_html__('Duration invalid. Please enter a valid number that is a multiple of your selected timeframe.', 'simplybook'),
    64                 'is not between' => esc_html__('Duration invalid. Please enter a valid number between 5 and 1435.', 'simplybook'),
     71                'is not multiple of' => __('Duration invalid. Please enter a valid number that is a multiple of your selected timeframe.', 'simplybook'),
     72                'is not between' => __('Duration invalid. Please enter a valid number between 5 and 1435.', 'simplybook'),
    6573            ],
    6674        ];
     
    6977    /**
    7078     * Ensure the service ID is a non-negative integer
     79     * @param mixed $value
    7180     */
    7281    public function setIdAttribute($value): int
     
    7887    /**
    7988     * Sanitize the service name as a text field.
     89     * @param mixed $value
    8090     */
    8191    protected function setNameAttribute($value): string
     
    8696    /**
    8797     * Ensure the service price is a non-negative float.
     98     * @param mixed $value
    8899     */
    89100    protected function setPriceAttribute($value): float
     
    95106    /**
    96107     * Ensure the service duration is a positive integer (minimum 1 minute).
     108     * @param mixed $value
    97109     */
    98110    protected function setDurationAttribute($value): int
     
    104116    /**
    105117     * Ensure the visibility status is a boolean.
     118     * @param mixed $value
    106119     */
    107120    protected function setIsVisibleAttribute($value): bool
  • simplybook/trunk/app/Http/Entities/ServiceProvider.php

    r3384996 r3399722  
    4444     * @inheritDoc
    4545     */
     46    public function getName(): string
     47    {
     48        return $this->name ?: __('Service Provider', 'simplybook');
     49    }
     50
     51    /**
     52     * @inheritDoc
     53     */
    4654    public function getEndpoint(): string
    4755    {
     
    6472        return [
    6573            'phone' => [
    66                 'invalid' => esc_html__('Phone format invalid. Please enter a valid phone number with country code (e.g., +31 123 456 789)', 'simplybook'),
    67                 'not contain letters' => esc_html__('Phone format invalid. Please enter a valid phone number without using letters.', 'simplybook'),
     74                'invalid' => __('Phone format invalid. Please enter a valid phone number with country code (e.g., +31 123 456 789)', 'simplybook'),
     75                'not contain letters' => __('Phone format invalid. Please enter a valid phone number without using letters.', 'simplybook'),
    6876            ],
    6977            'email' => [
    70                 'not a valid hostname' => esc_html__('The email address is invalid. Please verify your input and try again.', 'simplybook'),
    71                 'hostname but cannot match' => esc_html__('The email address is invalid. Please verify your input and try again.', 'simplybook'),
    72                 'local network name' => esc_html__('The email address is invalid. Please verify your input and try again.', 'simplybook'),
    73                 'only once per day' => esc_html__('The email address can only be changed once per day.', 'simplybook'),
     78                'not a valid hostname' => __('The email address is invalid. Please verify your input and try again.', 'simplybook'),
     79                'hostname but cannot match' => __('The email address is invalid. Please verify your input and try again.', 'simplybook'),
     80                'local network name' => __('The email address is invalid. Please verify your input and try again.', 'simplybook'),
     81                'only once per day' => __('The email address can only be changed once per day.', 'simplybook'),
    7482            ],
    7583        ];
     
    7886    /**
    7987     * Ensure the provider ID is a non-negative integer
     88     * @param mixed $value
    8089     */
    8190    public function setIdAttribute($value): int
     
    8796    /**
    8897     * Sanitize the provider name as a text field.
     98     * @param mixed $value
    8999     */
    90100    protected function setNameAttribute($value): string
     
    95105    /**
    96106     * Ensure the visibility status is a boolean.
     107     * @param mixed $value
    97108     */
    98109    protected function setIsVisibleAttribute($value): bool
     
    103114    /**
    104115     * Sanitize the provider email as a valid email address.
     116     * @param mixed $value
    105117     */
    106118    protected function setEmailAttribute($value): string
     
    113125     * This is a simple sanitization, you might want to use a more complex
    114126     * validation depending on your requirements.
     127     * @param mixed $value
    115128     */
    116129    protected function setPhoneAttribute($value): string
     
    122135     * Ensure the provider quantity is a non-negative integer. SimplyBook.me
    123136     * requires a positive quantity, so we ensure it's at least 1.
     137     * @param mixed $value
    124138     */
    125139    protected function setQtyAttribute($value): int
  • simplybook/trunk/app/Interfaces/ControllerInterface.php

    r3384996 r3399722  
    1515     * process of the plugin.
    1616     */
    17     public function register();
     17    public function register(): void;
    1818}
  • simplybook/trunk/app/Interfaces/FeatureInterface.php

    r3384996 r3399722  
    1515     * process of the plugin.
    1616     */
    17     public function register();
     17    public function register(): void;
    1818}
  • simplybook/trunk/app/Interfaces/NoticeInterface.php

    r3384996 r3399722  
    1717    /**
    1818     * Method is used to add a link to the UI of the notice item.
    19      * @example (normal link)
     19     * Example (normal link):
    2020     *  [
    2121     *       'text' => 'Link text',
    2222     *       'link' => 'https://example.com' | '/services/new,
    2323     *  ]
    24      * @example (login link)
     24     * Example (login link):
    2525     * [
    2626     *      'text' => 'Link text',
     
    3535     */
    3636    public function toArray(): array;
     37
     38    /**
     39     * Use this method to set the notice as active based on a server-side
     40     * condition. By default, a notice can activate based on a client-side
     41     * condition.
     42     */
     43    public function setActive(bool $state = false): void;
    3744}
  • simplybook/trunk/app/Interfaces/ProviderInterface.php

    r3384996 r3399722  
    99     * functionality.
    1010     */
    11     public function provide();
     11    public function provide(): void;
    1212}
  • simplybook/trunk/app/Interfaces/TaskInterface.php

    r3384996 r3399722  
    5252     */
    5353    public function toArray(): array;
     54
     55    /**
     56     * Reads if the task is required
     57     */
     58    public function isRequired(): bool;
    5459}
  • simplybook/trunk/app/Managers/AbstractManager.php

    r3384996 r3399722  
    6363        foreach ($classes as $fullyClassifiedName) {
    6464            if (is_string($fullyClassifiedName) === false) {
    65                 throw new \LogicException("Class must be a fully qualified name: " . esc_html($fullyClassifiedName));
     65                $type = gettype($fullyClassifiedName);
     66                throw new \LogicException("Class must be a fully qualified name. Given type: $type");
    6667            }
    6768
  • simplybook/trunk/app/Managers/EndpointManager.php

    r3384996 r3399722  
    1313    use HasAllowlistControl;
    1414
    15     private string $version;
    16     private string $namespace;
    1715    private array $routes = [];
    1816
     
    185183            return new \WP_Error(
    186184                'rest_forbidden',
    187                 esc_html__('Forbidden.', 'simplybook'),
     185                __('Forbidden.', 'simplybook'),
    188186                ['status' => 403]
    189187            );
  • simplybook/trunk/app/Services/CapabilityService.php

    r3384996 r3399722  
    4747        $sites = get_sites();
    4848        foreach ($sites as $site) {
    49             switch_to_blog($site->blog_id);
     49            switch_to_blog((int) $site->blog_id);
    5050            $this->addSiteCapability($capability, false);
    5151            restore_current_blog();
  • simplybook/trunk/app/Services/DesignSettingsService.php

    r3384996 r3399722  
    5151     * Get the configuration for the design settings. This is used to validate
    5252     * the settings.
     53     * @return mixed|array
    5354     */
    5455    public function getDesignConfiguration()
     
    6768     * @uses wp_cache_set Set the cache for 60 seconds.
    6869     */
    69     public function getDesignOptions()
     70    public function getDesignOptions(): array
    7071    {
    7172        if ($cache = wp_cache_get('design_settings', 'simplybook')) {
     
    113114     * simplybookMePl_widget_settings
    114115     */
    115     public function handleLegacyDesignUpgrade()
     116    public function handleLegacyDesignUpgrade(): void
    116117    {
    117118        $legacyDesignSettings = $this->get_config_obsolete('widget_settings');
     
    193194
    194195            $invalid = false;
    195             $errorMessage = esc_html__('Invalid value for setting', 'simplybook') . ': ' . ($config['label'] ?? $config['id']);
     196            $errorMessage = __('Invalid value for setting', 'simplybook') . ': ' . ($config['label'] ?? $config['id']);
    196197
    197198            // Saved value does not match regex
  • simplybook/trunk/app/Services/NoticeDismissalService.php

    r3384996 r3399722  
    6969     * admin_enqueue_scripts filter.
    7070     */
    71     public function enqueue()
     71    public function enqueue(): void
    7272    {
    7373        if (current_filter() !== 'admin_enqueue_scripts') {
  • simplybook/trunk/app/Services/RelatedPluginService.php

    r3384996 r3399722  
    2525     * example see {@see \SimplyBook\Http\Endpoints\RelatedPluginEndpoints}
    2626     */
    27     public function setPluginConfig(array $pluginConfig)
     27    public function setPluginConfig(array $pluginConfig): void
    2828    {
    2929        $this->pluginConfig = new Storage($pluginConfig);
  • simplybook/trunk/app/Services/SubscriptionDataService.php

    r3384996 r3399722  
    6060     * @param string $key The key to search for in the subscription data, a
    6161     * semicolon can be used for dot notation instead of a dot.
     62     * @param mixed $default The default value to return if the key is not found
    6263     * @example /wp-json/simplybook/v1/subscription_data/limits:booking-website
    6364     * @return mixed The value of the key in the subscription data.
    6465     */
    65     public function search(string $key)
     66    public function search(string $key, $default = null)
    6667    {
    6768        $storage = new Storage($this->all());
     
    6970        $key = str_replace(':', '.', $key);
    7071
    71         return $storage->get($key);
     72        return $storage->get($key, $default);
    7273    }
    7374
  • simplybook/trunk/app/Services/WidgetTrackingService.php

    r3384996 r3399722  
    1818
    1919    private int $postId;
    20     private \WP_Post $post;
     20    private ?\WP_Post $post = null;
    2121
    2222    /**
  • simplybook/trunk/app/Support/Builders/CompanyBuilder.php

    r3384996 r3399722  
    9595    }
    9696
    97     public function setTerms(string $terms): CompanyBuilder
     97    public function setTerms(bool $terms): CompanyBuilder
    9898    {
    9999        $this->terms = $terms;
  • simplybook/trunk/app/Support/Builders/PageBuilder.php

    r3384996 r3399722  
    6464        ];
    6565
     66        /** @var int|\WP_Error $insertedPageId */
    6667        $insertedPageId = wp_insert_post($page);
    6768        if (is_wp_error($insertedPageId)) {
     
    8889        ];
    8990
     91        /** @var int|\WP_Error $updatedPostId */
    9092        $updatedPostId = wp_update_post($page);
    9193        if (is_wp_error($updatedPostId)) {
  • simplybook/trunk/app/Support/Builders/WidgetScriptBuilder.php

    r3384996 r3399722  
    194194    /**
    195195     * Create HTML for the widget script given via the parameter
     196     *
     197     * @since 3.2.3 Remove newlines from widget HTML to prevent WordPress's
     198     * wpautop filter from breaking script content in FSE contexts.
     199     * wpautop uses preg_split() on double line breaks to identify content
     200     * blocks and wraps them in <p> tags. When newlines exist in the JavaScript,
     201     * wpautop inserts <p> tags within the script, breaking JavaScript syntax.
    196202     */
    197203    private function getWrappedScriptHTML(string $script): string
     
    206212            $content .= sprintf('<div id="%s"></div>', $this->wrapperID);
    207213        }
    208 
    209214        $content .= sprintf('<script type="text/javascript">%s</script>', $script);
    210         return $content;
     215
     216        // Remove all newlines
     217        return str_replace(["\r\n", "\r", "\n"], '', $content);
    211218    }
    212219
  • simplybook/trunk/app/Support/Helpers/Request.php

    r3384996 r3399722  
    1313 * Code that uses this class should validate the data before using it.
    1414 */
    15 class Request extends Storage
     15final class Request extends Storage
    1616{
    1717    //phpcs:disable
    1818    public static function fromGlobal(): Request
    1919    {
    20         return new static($_REQUEST);
     20        return new self($_REQUEST);
    2121    }
    2222
     
    2424    {
    2525        $data = (!empty($_SESSION) ? $_SESSION : []);
    26         return new static($data);
     26        return new self($data);
    2727    }
    2828
    2929    public static function fromFiles(): Request
    3030    {
    31         return new static($_FILES);
     31        return new self($_FILES);
    3232    }
    3333    //phpcs:enable
  • simplybook/trunk/app/Support/Helpers/Storage.php

    r3384996 r3399722  
    1515{
    1616    /**
     17     * Create a new Storage instance with dot notation functionality from the
     18     * parent {@see Dot} class. This internal class is extendable but the
     19     * construct should not be overridable, it is therefor made final.
     20     */
     21    final public function __construct($items = [], $parse = false, $delimiter = ".")
     22    {
     23        parent::__construct($items, $parse, $delimiter);
     24    }
     25
     26    /**
    1727     * Returns the parameter keys.
    1828     */
     
    136146     * Returns the parameter value typecast as float.
    137147     */
    138     public function getFloat(string $key, $default = 0): float
     148    public function getFloat(string $key, float $default = 0): float
    139149    {
    140150        return (float) $this->get($key, $default);
     
    145155     * FILTER_VALIDATE_BOOLEAN
    146156     */
    147     public function getBoolean(string $key, $default = false): bool
     157    public function getBoolean(string $key, bool $default = false): bool
    148158    {
    149159        return $this->filter($key, $default, FILTER_VALIDATE_BOOLEAN);
     
    167177    /**
    168178     * Returns a boolean if the value is considered not empty.
    169      * @param array<TKey>|int|string|null $keys
     179     * @param array<array-key>|int|string|null $keys
    170180     */
    171181    public function isNotEmpty($keys = null): bool
     
    176186    /**
    177187     * Returns a boolean if the value of one of the keys is considered empty.
    178      * @param array<TKey>|int|string|null $keys
    179      */
    180     public function isOneEmpty($keys = []): bool
     188     * @param array<int,array-key> $keys
     189     */
     190    public function isOneEmpty(array $keys = []): bool
    181191    {
    182192        foreach ($keys as $key) {
     
    191201    /**
    192202     * Filter key.
     203     * @param mixed $default
     204     * @param array|int $options
    193205     * @return mixed
    194206     * @see http://php.net/manual/en/function.filter-var.php
  • simplybook/trunk/app/Support/Helpers/Uninstall.php

    r3384996 r3399722  
    1717    {
    1818        $instance = new self();
     19
     20        /** @phpstan-ignore-next-line Extra failsafe is needed because class is loaded in uninstall context */
    1921        if (method_exists($instance, 'delete_all_options')) {
    2022            $instance->delete_all_options(true);
  • simplybook/trunk/app/Support/Widgets/ElementorWidget.php

    r3384996 r3399722  
    132132    private function addLocationControl(): void
    133133    {
    134         $client = App::client();
    135         if (!$client || !$client->isSpecialFeatureEnabled('location')) {
     134        if (!App::client()->isSpecialFeatureEnabled('location')) {
    136135            return;
    137136        }
     
    153152    private function addServiceCategoryControl(): void
    154153    {
    155         $client = App::client();
    156         if (!$client || !$client->isSpecialFeatureEnabled('event_category')) {
     154        if (!App::client()->isSpecialFeatureEnabled('event_category')) {
    157155            return;
    158156        }
  • simplybook/trunk/app/Traits/HasApiAccess.php

    r3384996 r3399722  
    88{
    99    /**
    10      * Checks if SimplyBook registration is complete with 60s caching.
     10     * Checks if SimplyBook registration is complete
     11     * Delegates to ApiClient
    1112     */
    1213    public function companyRegistrationIsCompleted(): bool
    1314    {
    14         $cacheKey = 'simplybook_is_authorized';
    15         if ($cache = wp_cache_get($cacheKey, 'simplybook')) {
    16             return $cache;
    17         }
    18 
    19         $isAuthorized = App::client()->company_registration_complete();
    20 
    21         wp_cache_set($cacheKey, $isAuthorized, 'simplybook', 60);
    22         return $isAuthorized;
     15        return App::client()->company_registration_complete();
    2316    }
    2417}
  • simplybook/trunk/app/Traits/HasEncryption.php

    r3384996 r3399722  
    9090    private function decryptLegacyString(string $encryptedString, string $legacyKey): string
    9191    {
    92         $data = base64_decode($encryptedString);
     92        $data = base64_decode($encryptedString, true);
    9393
    9494        if ($data === false) {
     
    100100        if (strlen($data) < $ivLength) {
    101101            // Try double base64 decoding for legacy compatibility
    102             $data = base64_decode($data);
     102            $data = base64_decode($data, true);
    103103            if ($data === false || strlen($data) < $ivLength) {
    104104                return '';
  • simplybook/trunk/app/Traits/HasViews.php

    r3384996 r3399722  
    2121        }
    2222
    23         if (empty($filePath) || !file_exists($filePath) || !is_readable($filePath)) {
     23        if (!file_exists($filePath) || !is_readable($filePath)) {
    2424            return '';
    2525        }
  • simplybook/trunk/app/Traits/LegacyLoad.php

    r3384996 r3399722  
    1717    use HasEncryption;
    1818
    19     public $fields = [];
    20     public $values_loaded = false;
    21 
    22     public $counter = 0;
     19    public array $fields = [];
     20    public bool $values_loaded = false;
     21
     22    public int $counter = 0;
    2323
    2424    /**
     
    197197     * @throws \LogicException For developers
    198198     */
    199     public function get_domain(bool $validate = true)
     199    public function get_domain(bool $validate = true): string
    200200    {
    201201        if ($cache = wp_cache_get('simplybook_get_domain_legacy_load', 'simplybook')) {
  • simplybook/trunk/app/Traits/LegacySave.php

    r3384996 r3399722  
    3434     *
    3535     * @deprecated
    36      * @param $key
    37      * @param $default
     36     * @param mixed $default
    3837     * @return mixed
    3938     */
    40     public function get_config_obsolete($key, $default = null)
     39    public function get_config_obsolete(string $key, $default = null)
    4140    {
    4241        $key = 'simplybookMePl_' . $key;
     
    178177    /**
    179178     * Save data in the config
    180      * @param $key
    181      * @param $value
     179     * @param mixed $value
    182180     * @param bool $staleOverride Flag to indicate that you as a developer knows
    183181     * that the field is stale, and you want to save it anyway. This is used
     
    189187     * @return bool
    190188     */
    191     public function update_option($key, $value, bool $staleOverride = false, array $config = []): bool
     189    public function update_option(string $key, $value, bool $staleOverride = false, array $config = []): bool
    192190    {
    193191        if ( !$this->adminAccessAllowed() ) {
     
    217215
    218216        // todo - usage of sanitize_field is redundant when used as in the OnboardingService
    219         $value = $this->sanitize_field($value, $config['type'], ($config['regex'] ?? null));
     217        $value = $this->sanitize_field($value, $config['type'], ($config['regex'] ?? ''));
    220218
    221219        // todo - except for the encryption fields, maybe we can create a getEncrypted method in the Storage class?
     
    230228    /**
    231229     * Delete an option from the settings array
    232      *
    233      * @param $key
    234      *
    235      * @return void
    236230     */
    237     public function delete_option($key): void
     231    public function delete_option(string $key): void
    238232    {
    239233        if ( !$this->adminAccessAllowed() ) {
     
    249243    }
    250244
    251     public function update_options( $fields ): void {
     245    public function update_options(array $fields): void
     246    {
    252247        foreach ( $fields as $field ) {
    253248            $this->update_option( $field['id'], $field['value'] );
     
    259254    /**
    260255     * Sanitize a value based on the field type
    261      *
    262      * @param $value
    263      * @param string $type
     256     * @param mixed $value
    264257     * @return int|string
    265258     */
    266     public function sanitize_field( $value, $type, $regex = '' ) {
     259    public function sanitize_field($value, string $type, string $regex = '')
     260    {
    267261        switch ( $type ) {
    268262            case 'checkbox':
  • simplybook/trunk/assets/css/tailwind.generated.css

    r3348078 r3399722  
    1 /*! tailwindcss v4.0.14 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(.936 .032 17.717);--color-red-400:oklch(.704 .191 22.216);--color-red-500:oklch(.637 .237 25.331);--color-red-600:oklch(.577 .245 27.325);--color-red-700:oklch(.505 .213 27.518);--color-red-800:oklch(.444 .177 26.899);--color-yellow-100:oklch(.973 .071 103.193);--color-yellow-400:oklch(.852 .199 91.936);--color-yellow-500:oklch(.795 .184 86.047);--color-yellow-900:oklch(.421 .095 57.708);--color-green-100:oklch(.962 .044 156.743);--color-green-500:oklch(.723 .219 149.579);--color-green-600:oklch(.627 .194 149.214);--color-blue-50:oklch(.97 .014 254.604);--color-blue-100:oklch(.932 .032 255.585);--color-blue-300:oklch(.809 .105 251.813);--color-blue-500:oklch(.623 .214 259.815);--color-blue-600:oklch(.546 .245 262.881);--color-blue-800:oklch(.424 .199 265.638);--color-slate-600:oklch(.446 .043 257.281);--color-gray-50:oklch(.985 .002 247.839);--color-gray-100:oklch(.967 .003 264.542);--color-gray-200:#dadada80;--color-gray-300:oklch(.872 .01 258.338);--color-gray-400:oklch(.707 .022 261.325);--color-gray-500:oklch(.551 .027 264.364);--color-gray-600:oklch(.446 .03 256.802);--color-gray-700:oklch(.373 .034 259.733);--color-gray-800:oklch(.278 .033 256.848);--color-gray-900:oklch(.21 .034 264.665);--color-neutral-800:oklch(.269 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-md:48rem;--breakpoint-2xl:clamp(300px,100% - 20px*2,1600px);--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:.875rem;--text-base--line-height:1.5;--text-lg:1rem;--text-lg--line-height:1.55556;--text-xl:1.125rem;--text-xl--line-height:1.4;--text-2xl:1.375rem;--text-2xl--line-height:1.33333;--text-3xl:1.5rem;--text-3xl--line-height:1.2;--text-4xl:2rem;--text-4xl--line-height:1.11111;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:600;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-md:0px 9px 14px -2px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings);--text-xxs:.6825rem;--text-label:var(--text-base);--color-succes:var(--color-green-500);--color-succes-light:#eafaf3;--color-warning:var(--color-yellow-400);--color-error:var(--color-red-400);--bg-primary-light:#b3e4f9;--bg-primary:#06adef;--bg-primary-dark:#055b78;--color-primary-hover:#0589bd;--color-primary-lighter:#f8fcfe;--bg-secondary-light:#ffb3c1;--bg-secondary:#ff3259;--bg-secondary-dark:#950c28;--bg-tertiary-light:#d9e3fd;--bg-tertiary:#0c3052;--bg-tertiary-dark:#061f32;--color-sb-blue:#5a6fa5;--color-sb-gray:#788291;--color-tertiary-border:#eff4ff;--container-8xl:125rem}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{color:color-mix(in oklab,currentColor 50%,transparent);opacity:1}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components,utilities;#simplybook_app .\@container{container-type:inline-size}#simplybook_app .pointer-events-none{pointer-events:none}#simplybook_app .collapse{visibility:collapse}#simplybook_app .invisible{visibility:hidden}#simplybook_app .visible{visibility:visible}#simplybook_app .aspect-w-16{padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%);--tw-aspect-w:16;position:relative}#simplybook_app .aspect-w-16>*{height:100%;inset:0;position:absolute;width:100%}#simplybook_app .sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#simplybook_app .absolute{position:absolute}#simplybook_app .fixed{position:fixed}#simplybook_app .relative{position:relative}#simplybook_app .static{position:static}#simplybook_app .sticky{position:sticky}#simplybook_app .inset-0{inset:calc(var(--spacing)*0)}#simplybook_app .start-0{inset-inline-start:calc(var(--spacing)*0)}#simplybook_app .-top-3{top:calc(var(--spacing)*-3)}#simplybook_app .top-0{top:calc(var(--spacing)*0)}#simplybook_app .top-2\.5{top:calc(var(--spacing)*2.5)}#simplybook_app .top-5\.5{top:calc(var(--spacing)*5.5)}#simplybook_app .top-16{top:calc(var(--spacing)*16)}#simplybook_app .-right-0\.5{right:calc(var(--spacing)*-.5)}#simplybook_app .-right-5{right:calc(var(--spacing)*-5)}#simplybook_app .right-\[0\.5rem\]{right:.5rem}#simplybook_app .bottom-0{bottom:calc(var(--spacing)*0)}#simplybook_app .isolate{isolation:isolate}#simplybook_app .-z-1{z-index:-1}#simplybook_app .z-10{z-index:10}#simplybook_app .z-50{z-index:50}#simplybook_app .z-60{z-index:60}#simplybook_app .z-999{z-index:999}#simplybook_app .z-99999{z-index:99999}#simplybook_app .order-6{order:6}#simplybook_app .col-span-3{grid-column:span 3/span 3}#simplybook_app .col-span-4{grid-column:span 4/span 4}#simplybook_app .col-span-5{grid-column:span 5/span 5}#simplybook_app .col-span-6{grid-column:span 6/span 6}#simplybook_app .col-span-12{grid-column:span 12/span 12}#simplybook_app .col-span-full{grid-column:1/-1}#simplybook_app .col-start-2{grid-column-start:2}#simplybook_app .col-start-3{grid-column-start:3}#simplybook_app .col-start-7{grid-column-start:7}#simplybook_app .row-span-1{grid-row:span 1/span 1}#simplybook_app .row-span-2{grid-row:span 2/span 2}#simplybook_app .float-left{float:left}#simplybook_app .float-right{float:right}@media (width>=40rem){#simplybook_app .container{max-width:40rem}}@media (width>=48rem){#simplybook_app .container{max-width:48rem}}@media (width>=64rem){#simplybook_app .container{max-width:64rem}}@media (width>=80rem){#simplybook_app .container{max-width:80rem}}#simplybook_app .m-0{margin:calc(var(--spacing)*0)}#simplybook_app .m-4{margin:calc(var(--spacing)*4)}#simplybook_app .m-5{margin:calc(var(--spacing)*5)}#simplybook_app .mx-2{margin-inline:calc(var(--spacing)*2)}#simplybook_app .mx-4{margin-inline:calc(var(--spacing)*4)}#simplybook_app .mx-5{margin-inline:calc(var(--spacing)*5)}#simplybook_app .mx-auto{margin-inline:auto}#simplybook_app .my-2{margin-block:calc(var(--spacing)*2)}#simplybook_app .my-4{margin-block:calc(var(--spacing)*4)}#simplybook_app .my-6{margin-block:calc(var(--spacing)*6)}#simplybook_app .my-10{margin-block:calc(var(--spacing)*10)}#simplybook_app .my-12{margin-block:calc(var(--spacing)*12)}#simplybook_app .-mt-4{margin-top:calc(var(--spacing)*-4)}#simplybook_app .-mt-20{margin-top:calc(var(--spacing)*-20)}#simplybook_app .mt-1{margin-top:calc(var(--spacing)*1)}#simplybook_app .mt-2{margin-top:calc(var(--spacing)*2)}#simplybook_app .mt-3{margin-top:calc(var(--spacing)*3)}#simplybook_app .mt-4{margin-top:calc(var(--spacing)*4)}#simplybook_app .mt-5{margin-top:calc(var(--spacing)*5)}#simplybook_app .mt-8{margin-top:calc(var(--spacing)*8)}#simplybook_app .mt-12{margin-top:calc(var(--spacing)*12)}#simplybook_app .mt-26{margin-top:calc(var(--spacing)*26)}#simplybook_app .mt-\[1px\]{margin-top:1px}#simplybook_app .\!mr-0{margin-right:calc(var(--spacing)*0)!important}#simplybook_app .mr-2{margin-right:calc(var(--spacing)*2)}#simplybook_app .mr-3{margin-right:calc(var(--spacing)*3)}#simplybook_app .mr-4{margin-right:calc(var(--spacing)*4)}#simplybook_app .mr-8{margin-right:calc(var(--spacing)*8)}#simplybook_app .mb-0{margin-bottom:calc(var(--spacing)*0)}#simplybook_app .mb-1{margin-bottom:calc(var(--spacing)*1)}#simplybook_app .mb-2{margin-bottom:calc(var(--spacing)*2)}#simplybook_app .mb-3{margin-bottom:calc(var(--spacing)*3)}#simplybook_app .mb-4{margin-bottom:calc(var(--spacing)*4)}#simplybook_app .mb-5{margin-bottom:calc(var(--spacing)*5)}#simplybook_app .mb-6{margin-bottom:calc(var(--spacing)*6)}#simplybook_app .mb-8{margin-bottom:calc(var(--spacing)*8)}#simplybook_app .mb-12{margin-bottom:calc(var(--spacing)*12)}#simplybook_app .mb-\[0\.70rem\]{margin-bottom:.7rem}#simplybook_app .ml-1{margin-left:calc(var(--spacing)*1)}#simplybook_app .ml-2{margin-left:calc(var(--spacing)*2)}#simplybook_app .ml-4{margin-left:calc(var(--spacing)*4)}#simplybook_app .ml-\[1px\]{margin-left:1px}#simplybook_app .ml-auto{margin-left:auto}#simplybook_app .block{display:block}#simplybook_app .contents{display:contents}#simplybook_app .flex{display:flex}#simplybook_app .grid{display:grid}#simplybook_app .hidden{display:none}#simplybook_app .inline{display:inline}#simplybook_app .inline-block{display:inline-block}#simplybook_app .inline-flex{display:inline-flex}#simplybook_app .list-item{display:list-item}#simplybook_app .table{display:table}#simplybook_app .table-caption{display:table-caption}#simplybook_app .table-cell{display:table-cell}#simplybook_app .table-column{display:table-column}#simplybook_app .table-column-group{display:table-column-group}#simplybook_app .table-footer-group{display:table-footer-group}#simplybook_app .table-header-group{display:table-header-group}#simplybook_app .table-row{display:table-row}#simplybook_app .table-row-group{display:table-row-group}#simplybook_app .size-1{width:calc(var(--spacing)*1)}#simplybook_app .h-1,#simplybook_app .size-1{height:calc(var(--spacing)*1)}#simplybook_app .h-3{height:calc(var(--spacing)*3)}#simplybook_app .h-4{height:calc(var(--spacing)*4)}#simplybook_app .h-5{height:calc(var(--spacing)*5)}#simplybook_app .h-6{height:calc(var(--spacing)*6)}#simplybook_app .h-8{height:calc(var(--spacing)*8)}#simplybook_app .h-10{height:calc(var(--spacing)*10)}#simplybook_app .h-12{height:calc(var(--spacing)*12)}#simplybook_app .h-20{height:calc(var(--spacing)*20)}#simplybook_app .h-40{height:calc(var(--spacing)*40)}#simplybook_app .h-\[18px\]{height:18px}#simplybook_app .h-\[70vh\]{height:70vh}#simplybook_app .h-\[290px\]{height:290px}#simplybook_app .h-auto{height:auto}#simplybook_app .h-full{height:100%}#simplybook_app .h-max{height:max-content}#simplybook_app .max-h-0{max-height:calc(var(--spacing)*0)}#simplybook_app .max-h-48{max-height:calc(var(--spacing)*48)}#simplybook_app .max-h-\[36px\]{max-height:36px}#simplybook_app .max-h-\[48px\]{max-height:48px}#simplybook_app .min-h-\[75svh\]{min-height:75svh}#simplybook_app .min-h-full{min-height:100%}#simplybook_app .w-0{width:calc(var(--spacing)*0)}#simplybook_app .w-1{width:calc(var(--spacing)*1)}#simplybook_app .w-1\/2{width:50%}#simplybook_app .w-3{width:calc(var(--spacing)*3)}#simplybook_app .w-3\/4{width:75%}#simplybook_app .w-3\/8{width:37.5%}#simplybook_app .w-4{width:calc(var(--spacing)*4)}#simplybook_app .w-4\/5{width:80%}#simplybook_app .w-5{width:calc(var(--spacing)*5)}#simplybook_app .w-5\/6{width:83.3333%}#simplybook_app .w-6{width:calc(var(--spacing)*6)}#simplybook_app .w-8{width:calc(var(--spacing)*8)}#simplybook_app .w-10{width:calc(var(--spacing)*10)}#simplybook_app .w-20{width:calc(var(--spacing)*20)}#simplybook_app .w-40{width:calc(var(--spacing)*40)}#simplybook_app .w-65{width:calc(var(--spacing)*65)}#simplybook_app .w-\[18px\]{width:18px}#simplybook_app .w-\[48\%\]{width:48%}#simplybook_app .w-\[65vw\]{width:65vw}#simplybook_app .w-\[70\%\]{width:70%}#simplybook_app .w-\[75\%\]{width:75%}#simplybook_app .w-\[185px\]{width:185px}#simplybook_app .w-full{width:100%}#simplybook_app .w-min{width:min-content}#simplybook_app .max-w-2\/3{max-width:66.6667%}#simplybook_app .max-w-3\/5{max-width:60%}#simplybook_app .max-w-7xl{max-width:var(--container-7xl)}#simplybook_app .max-w-8xl{max-width:var(--container-8xl)}#simplybook_app .max-w-\[36px\]{max-width:36px}#simplybook_app .max-w-\[46rem\]{max-width:46rem}#simplybook_app .max-w-\[48px\]{max-width:48px}#simplybook_app .max-w-fit{max-width:fit-content}#simplybook_app .max-w-md{max-width:var(--container-md)}#simplybook_app .max-w-screen-2xl{max-width:var(--breakpoint-2xl)}#simplybook_app .max-w-screen-md{max-width:var(--breakpoint-md)}#simplybook_app .max-w-sm{max-width:var(--container-sm)}#simplybook_app .max-w-xs{max-width:var(--container-xs)}#simplybook_app .min-w-5{min-width:calc(var(--spacing)*5)}#simplybook_app .min-w-20{min-width:calc(var(--spacing)*20)}#simplybook_app .min-w-\[36px\]{min-width:36px}#simplybook_app .min-w-\[140px\]{min-width:140px}#simplybook_app .flex-1{flex:1}#simplybook_app .flex-shrink,#simplybook_app .shrink{flex-shrink:1}#simplybook_app .flex-grow,#simplybook_app .grow{flex-grow:1}#simplybook_app .border-collapse{border-collapse:collapse}#simplybook_app .-translate-y-1\/2{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}#simplybook_app .rotate-180{rotate:180deg}#simplybook_app .transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}#simplybook_app .animate-pulse{animation:var(--animate-pulse)}#simplybook_app .animate-spin{animation:var(--animate-spin)}#simplybook_app .cursor-default{cursor:default}#simplybook_app .cursor-not-allowed{cursor:not-allowed}#simplybook_app .cursor-pointer{cursor:pointer}#simplybook_app .resize{resize:both}#simplybook_app .list-inside{list-style-position:inside}#simplybook_app .list-decimal{list-style-type:decimal}#simplybook_app .list-none{list-style-type:none}#simplybook_app .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}#simplybook_app .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}#simplybook_app .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}#simplybook_app .grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}#simplybook_app .flex-col{flex-direction:column}#simplybook_app .flex-col-reverse{flex-direction:column-reverse}#simplybook_app .flex-row{flex-direction:row}#simplybook_app .flex-row-reverse{flex-direction:row-reverse}#simplybook_app .flex-wrap{flex-wrap:wrap}#simplybook_app .content-start{align-content:flex-start}#simplybook_app .items-baseline{align-items:baseline}#simplybook_app .items-center{align-items:center}#simplybook_app .items-start{align-items:flex-start}#simplybook_app .justify-around{justify-content:space-around}#simplybook_app .justify-between{justify-content:space-between}#simplybook_app .justify-center{justify-content:center}#simplybook_app .justify-end{justify-content:flex-end}#simplybook_app .justify-start{justify-content:flex-start}#simplybook_app .gap-1{gap:calc(var(--spacing)*1)}#simplybook_app .gap-2{gap:calc(var(--spacing)*2)}#simplybook_app .gap-3{gap:calc(var(--spacing)*3)}#simplybook_app .gap-3\.5{gap:calc(var(--spacing)*3.5)}#simplybook_app .gap-4{gap:calc(var(--spacing)*4)}#simplybook_app .gap-5{gap:calc(var(--spacing)*5)}#simplybook_app .gap-6{gap:calc(var(--spacing)*6)}#simplybook_app .gap-8{gap:calc(var(--spacing)*8)}#simplybook_app .gap-24{gap:calc(var(--spacing)*24)}:where(#simplybook_app .space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}:where(#simplybook_app .space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*6*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*6*var(--tw-space-y-reverse))}#simplybook_app .gap-x-4{column-gap:calc(var(--spacing)*4)}:where(#simplybook_app .space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*2*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*2*var(--tw-space-x-reverse))}:where(#simplybook_app .space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*3*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*3*var(--tw-space-x-reverse))}#simplybook_app .gap-y-4{row-gap:calc(var(--spacing)*4)}#simplybook_app .self-center{align-self:center}#simplybook_app .self-start{align-self:flex-start}#simplybook_app .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#simplybook_app .overflow-hidden{overflow:hidden}#simplybook_app .overflow-x-scroll{overflow-x:scroll}#simplybook_app .overflow-y-auto{overflow-y:auto}#simplybook_app .overflow-y-scroll{overflow-y:scroll}#simplybook_app .rounded{border-radius:.25rem}#simplybook_app .rounded-\[3rem\]{border-radius:3rem}#simplybook_app .rounded-full{border-radius:3.40282e+38px}#simplybook_app .rounded-lg{border-radius:var(--radius-lg)}#simplybook_app .rounded-md{border-radius:var(--radius-md)}#simplybook_app .rounded-sm{border-radius:var(--radius-sm)}#simplybook_app .rounded-xl{border-radius:var(--radius-xl)}#simplybook_app .rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}#simplybook_app .rounded-b-lg{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}#simplybook_app .rounded-b-md{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}#simplybook_app .rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}#simplybook_app .border,#simplybook_app .border-1{border-style:var(--tw-border-style);border-width:1px}#simplybook_app .border-2{border-style:var(--tw-border-style);border-width:2px}#simplybook_app .border-3{border-style:var(--tw-border-style);border-width:3px}#simplybook_app .border-t{border-top-style:var(--tw-border-style);border-top-width:1px}#simplybook_app .border-b-1{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}#simplybook_app .border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}#simplybook_app .border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}#simplybook_app .border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}#simplybook_app .\!border-sb-blue{border-color:var(--color-sb-blue)!important}#simplybook_app .\!border-secondary{border-color:#ff3259!important}#simplybook_app .border-\[\#E1E7F5\]{border-color:#e1e7f5}#simplybook_app .border-\[\#e6e6e6\]{border-color:#e6e6e6}#simplybook_app .border-black{border-color:var(--color-black)}#simplybook_app .border-blue-500{border-color:var(--color-blue-500)}#simplybook_app .border-blue-600{border-color:var(--color-blue-600)}#simplybook_app .border-gray-200{border-color:var(--color-gray-200)}#simplybook_app .border-gray-300{border-color:var(--color-gray-300)}#simplybook_app .border-gray-400{border-color:var(--color-gray-400)}#simplybook_app .border-green-600{border-color:var(--color-green-600)}#simplybook_app .border-inherit{border-color:inherit}#simplybook_app .border-primary{border-color:#06adef}#simplybook_app .border-primary-light{border-color:#b3e4f9}#simplybook_app .border-red-400{border-color:var(--color-red-400)}#simplybook_app .border-red-500{border-color:var(--color-red-500)}#simplybook_app .border-red-600{border-color:var(--color-red-600)}#simplybook_app .border-sb-blue{border-color:var(--color-sb-blue)}#simplybook_app .border-secondary{border-color:#ff3259}#simplybook_app .border-tertiary{border-color:#0c3052}#simplybook_app .border-tertiary-border{border-color:var(--color-tertiary-border)}#simplybook_app .border-transparent{border-color:#0000}#simplybook_app .border-b-\[\#E1E7F5\]{border-bottom-color:#e1e7f5}#simplybook_app .\!bg-transparent{background-color:#0000!important}#simplybook_app .bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}#simplybook_app .bg-blue-50{background-color:var(--color-blue-50)}#simplybook_app .bg-blue-100{background-color:var(--color-blue-100)}#simplybook_app .bg-blue-500{background-color:var(--color-blue-500)}#simplybook_app .bg-gray-50{background-color:var(--color-gray-50)}#simplybook_app .bg-gray-100{background-color:var(--color-gray-100)}#simplybook_app .bg-gray-200{background-color:var(--color-gray-200)}#simplybook_app .bg-gray-300{background-color:var(--color-gray-300)}#simplybook_app .bg-green-100{background-color:var(--color-green-100)}#simplybook_app .bg-green-500{background-color:var(--color-green-500)}#simplybook_app .bg-primary{background-color:#06adef}#simplybook_app .bg-primary-lighter{background-color:var(--color-primary-lighter)}#simplybook_app .bg-red-100{background-color:var(--color-red-100)}#simplybook_app .bg-red-600{background-color:var(--color-red-600)}#simplybook_app .bg-red-800{background-color:var(--color-red-800)}#simplybook_app .bg-secondary{background-color:#ff3259}#simplybook_app .bg-secondary-dark{background-color:#950c28}#simplybook_app .bg-slate-600{background-color:var(--color-slate-600)}#simplybook_app .bg-succes{background-color:var(--color-succes)}#simplybook_app .bg-succes-light{background-color:var(--color-succes-light)}#simplybook_app .bg-tertiary{background-color:#0c3052}#simplybook_app .bg-tertiary-dark{background-color:#061f32}#simplybook_app .bg-tertiary-light{background-color:#f0f4fe}#simplybook_app .bg-transparent{background-color:#0000}#simplybook_app .bg-white{background-color:var(--color-white)}#simplybook_app .bg-yellow-100{background-color:var(--color-yellow-100)}#simplybook_app .bg-yellow-400{background-color:var(--color-yellow-400)}#simplybook_app .bg-yellow-900{background-color:var(--color-yellow-900)}#simplybook_app .\!p-4{padding:calc(var(--spacing)*4)!important}#simplybook_app .p-0{padding:calc(var(--spacing)*0)}#simplybook_app .p-1{padding:calc(var(--spacing)*1)}#simplybook_app .p-1\.5{padding:calc(var(--spacing)*1.5)}#simplybook_app .p-2{padding:calc(var(--spacing)*2)}#simplybook_app .p-3{padding:calc(var(--spacing)*3)}#simplybook_app .p-4{padding:calc(var(--spacing)*4)}#simplybook_app .p-5{padding:calc(var(--spacing)*5)}#simplybook_app .p-6{padding:calc(var(--spacing)*6)}#simplybook_app .p-8{padding:calc(var(--spacing)*8)}#simplybook_app .px-0{padding-inline:calc(var(--spacing)*0)}#simplybook_app .px-1{padding-inline:calc(var(--spacing)*1)}#simplybook_app .px-2{padding-inline:calc(var(--spacing)*2)}#simplybook_app .px-3{padding-inline:calc(var(--spacing)*3)}#simplybook_app .px-4{padding-inline:calc(var(--spacing)*4)}#simplybook_app .px-5{padding-inline:calc(var(--spacing)*5)}#simplybook_app .px-6{padding-inline:calc(var(--spacing)*6)}#simplybook_app .px-8{padding-inline:calc(var(--spacing)*8)}#simplybook_app .py-0{padding-block:calc(var(--spacing)*0)}#simplybook_app .py-1{padding-block:calc(var(--spacing)*1)}#simplybook_app .py-2{padding-block:calc(var(--spacing)*2)}#simplybook_app .py-3{padding-block:calc(var(--spacing)*3)}#simplybook_app .py-4{padding-block:calc(var(--spacing)*4)}#simplybook_app .py-5{padding-block:calc(var(--spacing)*5)}#simplybook_app .py-6{padding-block:calc(var(--spacing)*6)}#simplybook_app .py-8{padding-block:calc(var(--spacing)*8)}#simplybook_app .py-10{padding-block:calc(var(--spacing)*10)}#simplybook_app .py-\[23px\]{padding-block:23px}#simplybook_app .pt-2{padding-top:calc(var(--spacing)*2)}#simplybook_app .pt-4{padding-top:calc(var(--spacing)*4)}#simplybook_app .pr-1{padding-right:calc(var(--spacing)*1)}#simplybook_app .pb-1{padding-bottom:calc(var(--spacing)*1)}#simplybook_app .pb-2{padding-bottom:calc(var(--spacing)*2)}#simplybook_app .pb-4{padding-bottom:calc(var(--spacing)*4)}#simplybook_app .pl-5{padding-left:calc(var(--spacing)*5)}#simplybook_app .text-center{text-align:center}#simplybook_app .text-justify{text-align:justify}#simplybook_app .text-left{text-align:left}#simplybook_app .text-right{text-align:right}#simplybook_app .text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}#simplybook_app .text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}#simplybook_app .text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}#simplybook_app .text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}#simplybook_app .text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}#simplybook_app .text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}#simplybook_app .text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}#simplybook_app .text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}#simplybook_app .text-\[0\.85rem\]{font-size:.85rem}#simplybook_app .text-\[0\.8125rem\]{font-size:.8125rem}#simplybook_app .text-label{font-size:var(--text-label)}#simplybook_app .text-xxs{font-size:var(--text-xxs)}#simplybook_app .leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}#simplybook_app .leading-none{--tw-leading:1;line-height:1}#simplybook_app .font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}#simplybook_app .font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}#simplybook_app .font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}#simplybook_app .font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}#simplybook_app .font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}#simplybook_app .font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}#simplybook_app .text-nowrap{text-wrap:nowrap}#simplybook_app .text-wrap{text-wrap:wrap}#simplybook_app .\!text-sb-blue{color:var(--color-sb-blue)!important}#simplybook_app .text-\[\#333333\],#simplybook_app .text-\[\#333\]{color:#333}#simplybook_app .text-black{color:#000c}#simplybook_app .text-blue-600{color:var(--color-blue-600)}#simplybook_app .text-gray-400{color:var(--color-gray-400)}#simplybook_app .text-gray-500{color:var(--color-gray-500)}#simplybook_app .text-gray-600{color:var(--color-gray-600)}#simplybook_app .text-gray-700{color:var(--color-gray-700)}#simplybook_app .text-gray-800{color:var(--color-gray-800)}#simplybook_app .text-gray-900{color:var(--color-gray-900)}#simplybook_app .text-green-500{color:var(--color-green-500)}#simplybook_app .text-green-600{color:var(--color-green-600)}#simplybook_app .text-primary{color:#06adef}#simplybook_app .text-red-500{color:var(--color-red-500)}#simplybook_app .text-red-600{color:var(--color-red-600)}#simplybook_app .text-red-700{color:var(--color-red-700)}#simplybook_app .text-sb-blue{color:var(--color-sb-blue)}#simplybook_app .text-sb-gray{color:var(--color-sb-gray)}#simplybook_app .text-succes{color:var(--color-succes)}#simplybook_app .text-tertiary{color:#0c3052}#simplybook_app .text-white{color:#ffffffd9}#simplybook_app .text-yellow-900{color:var(--color-yellow-900)}#simplybook_app .lowercase{text-transform:lowercase}#simplybook_app .uppercase{text-transform:uppercase}#simplybook_app .italic{font-style:italic}#simplybook_app .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}#simplybook_app .line-through{text-decoration-line:line-through}#simplybook_app .underline{text-decoration-line:underline}#simplybook_app .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#simplybook_app .opacity-50{opacity:.5}#simplybook_app .shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}#simplybook_app .shadow,#simplybook_app .shadow-lg{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}#simplybook_app .shadow-md{--tw-shadow:0px 9px 14px -2px var(--tw-shadow-color,#0000001a)}#simplybook_app .shadow-md,#simplybook_app .shadow-none{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .shadow-none{--tw-shadow:0 0 #0000}#simplybook_app .shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}#simplybook_app .ring,#simplybook_app .shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor)}#simplybook_app .ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .ring-red-600{--tw-ring-color:var(--color-red-600)}#simplybook_app .outline{outline-style:var(--tw-outline-style);outline-width:1px}#simplybook_app .blur{--tw-blur:blur(8px)}#simplybook_app .blur,#simplybook_app .blur-sm{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}#simplybook_app .blur-sm{--tw-blur:blur(var(--blur-sm))}#simplybook_app .grayscale{--tw-grayscale:grayscale(100%)}#simplybook_app .filter,#simplybook_app .grayscale{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}#simplybook_app .transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .transition-\[border-color\]{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .transition-transform{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .duration-100{--tw-duration:.1s;transition-duration:.1s}#simplybook_app .duration-200{--tw-duration:.2s;transition-duration:.2s}#simplybook_app .duration-300{--tw-duration:.3s;transition-duration:.3s}#simplybook_app .ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}#simplybook_app .ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}#simplybook_app .aspect-h-9{--tw-aspect-h:9}#simplybook_app .peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}#simplybook_app .peer-focus\:ring-2:is(:where(.peer):focus~*){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .peer-focus\:ring-4:is(:where(.peer):focus~*){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .peer-focus\:ring-blue-300:is(:where(.peer):focus~*){--tw-ring-color:var(--color-blue-300)}#simplybook_app .after\:absolute:after{content:var(--tw-content);position:absolute}#simplybook_app .after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing)*.5)}#simplybook_app .after\:top-1:after{content:var(--tw-content);top:calc(var(--spacing)*1)}#simplybook_app .after\:left-0\.5:after{content:var(--tw-content);left:calc(var(--spacing)*.5)}#simplybook_app .after\:mx-\[0\.2rem\]:after{content:var(--tw-content);margin-inline:.2rem}#simplybook_app .after\:aspect-square:after{aspect-ratio:1;content:var(--tw-content)}#simplybook_app .after\:h-3:after{content:var(--tw-content);height:calc(var(--spacing)*3)}#simplybook_app .after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing)*4)}#simplybook_app .after\:w-3:after{content:var(--tw-content);width:calc(var(--spacing)*3)}#simplybook_app .after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing)*4)}#simplybook_app .after\:rounded-full:after{border-radius:3.40282e+38px;content:var(--tw-content)}#simplybook_app .after\:border:after{border-style:var(--tw-border-style);border-width:1px;content:var(--tw-content)}#simplybook_app .after\:border-gray-200:after{border-color:var(--color-gray-200);content:var(--tw-content)}#simplybook_app .after\:bg-white:after{background-color:var(--color-white);content:var(--tw-content)}#simplybook_app .after\:transition-all:after{content:var(--tw-content);transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}#simplybook_app .peer-checked\:after\:translate-x-\[0\.8rem\]:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:.8rem;translate:var(--tw-translate-x)var(--tw-translate-y)}#simplybook_app .peer-checked\:after\:translate-x-\[1\.125rem\]:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:1.125rem;translate:var(--tw-translate-x)var(--tw-translate-y)}#simplybook_app .peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{border-color:var(--color-white);content:var(--tw-content)}#simplybook_app .last\:mb-3:last-child{margin-bottom:calc(var(--spacing)*3)}#simplybook_app .odd\:bg-white:nth-child(odd){background-color:var(--color-white)}#simplybook_app .even\:bg-gray-50:nth-child(2n){background-color:var(--color-gray-50)}@media (hover:hover){#simplybook_app .hover\:border-blue-500:hover{border-color:var(--color-blue-500)}#simplybook_app .hover\:border-gray-500:hover{border-color:var(--color-gray-500)}#simplybook_app .hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}#simplybook_app .hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}#simplybook_app .hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}#simplybook_app .hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}#simplybook_app .hover\:bg-primary-dark:hover{background-color:#055b78}#simplybook_app .hover\:bg-primary-lighter:hover{background-color:var(--color-primary-lighter)}#simplybook_app .hover\:bg-red-100:hover{background-color:var(--color-red-100)}#simplybook_app .hover\:bg-secondary-dark:hover{background-color:#950c28}#simplybook_app .hover\:bg-tertiary:hover{background-color:#0c3052}#simplybook_app .hover\:bg-tertiary-dark:hover{background-color:#061f32}#simplybook_app .hover\:bg-tertiary-light:hover{background-color:#f0f4fe}#simplybook_app .hover\:text-blue-800:hover{color:var(--color-blue-800)}#simplybook_app .hover\:text-gray-600:hover{color:var(--color-gray-600)}#simplybook_app .hover\:text-primary:hover{color:#06adef}#simplybook_app .hover\:text-red-600:hover{color:var(--color-red-600)}#simplybook_app .hover\:text-tertiary:hover{color:#0c3052}#simplybook_app .hover\:text-tertiary\/80:hover{color:oklab(30.3585% -.0243458 -.0693881/.8)}#simplybook_app .hover\:text-white:hover{color:#ffffffd9}#simplybook_app .hover\:underline:hover{text-decoration-line:underline}}#simplybook_app .focus\:border-tertiary:focus{border-color:#0c3052}#simplybook_app .focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor)}#simplybook_app .focus\:ring-2:focus,#simplybook_app .focus\:ring-4:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor)}#simplybook_app .focus\:ring-blue-300:focus{--tw-ring-color:var(--color-blue-300)}#simplybook_app .focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}#simplybook_app .focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){#simplybook_app .focus\:outline-hidden:focus{outline:2px solid #0000;outline-offset:2px}}#simplybook_app .active\:ring-4:active{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .active\:ring-blue-300:active{--tw-ring-color:var(--color-blue-300)}#simplybook_app .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}#simplybook_app .disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){#simplybook_app .sm\:col-span-6{grid-column:span 6/span 6}#simplybook_app .sm\:col-span-12{grid-column:span 12/span 12}#simplybook_app .sm\:flex{display:flex}#simplybook_app .sm\:max-w-1\/2{max-width:50%}#simplybook_app .sm\:max-w-\[80\%\]{max-width:80%}#simplybook_app .sm\:text-start{text-align:start}}@media (width>=48rem){#simplybook_app .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}#simplybook_app .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=64rem){#simplybook_app .lg\:col-span-3{grid-column:span 3/span 3}#simplybook_app .lg\:col-span-6{grid-column:span 6/span 6}#simplybook_app .lg\:w-auto{width:auto}#simplybook_app .lg\:max-w-\[70\%\]{max-width:70%}#simplybook_app .lg\:gap-y-4{row-gap:calc(var(--spacing)*4)}}@media (width>=80rem){#simplybook_app .xl\:order-0{order:0}#simplybook_app .xl\:col-span-3{grid-column:span 3/span 3}#simplybook_app .xl\:col-span-4{grid-column:span 4/span 4}#simplybook_app .xl\:col-span-5{grid-column:span 5/span 5}#simplybook_app .xl\:col-span-6{grid-column:span 6/span 6}#simplybook_app .xl\:col-start-2{grid-column-start:2}#simplybook_app .xl\:block{display:block}#simplybook_app .xl\:flex{display:flex}#simplybook_app .xl\:grid{display:grid}#simplybook_app .xl\:h-auto{height:auto}#simplybook_app .xl\:w-\[130px\]{width:130px}#simplybook_app .xl\:w-auto{width:auto}#simplybook_app .xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}#simplybook_app .xl\:grid-cols-\[130px_1fr_auto_2em\]{grid-template-columns:130px 1fr auto 2em}#simplybook_app .xl\:flex-wrap{flex-wrap:wrap}#simplybook_app .xl\:items-center{align-items:center}#simplybook_app .xl\:justify-between{justify-content:space-between}#simplybook_app .xl\:justify-center{justify-content:center}#simplybook_app .xl\:justify-normal{justify-content:normal}#simplybook_app .xl\:gap-6{gap:calc(var(--spacing)*6)}#simplybook_app .xl\:gap-24{gap:calc(var(--spacing)*24)}#simplybook_app .xl\:rounded-sm{border-radius:var(--radius-sm)}#simplybook_app .xl\:p-0{padding:calc(var(--spacing)*0)}#simplybook_app .xl\:px-1{padding-inline:calc(var(--spacing)*1)}#simplybook_app .xl\:px-4{padding-inline:calc(var(--spacing)*4)}#simplybook_app .xl\:py-0{padding-block:calc(var(--spacing)*0)}#simplybook_app .xl\:py-1{padding-block:calc(var(--spacing)*1)}#simplybook_app .xl\:py-1\.5{padding-block:calc(var(--spacing)*1.5)}#simplybook_app .xl\:pt-0{padding-top:calc(var(--spacing)*0)}#simplybook_app .xl\:text-center{text-align:center}}#simplybook_app .\[\&\.active\]\:border-tertiary.active{border-color:#0c3052}#simplybook_app .\[\&\.active\]\:font-semibold.active{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}#simplybook_app .\[\&\.active\]\:text-primary.active{color:#06adef}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74d3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-container-width:fit-content;--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-padding:14px;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-toast-shadow:0px 4px 12px #0000001a;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;display:flex;flex-direction:column;position:fixed;-webkit-transform:translateZ(var(--toastify-z-index));width:var(--toastify-container-width);z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:var(--toastify-toast-left);top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{align-items:center;left:50%;top:var(--toastify-toast-top);transform:translate(-50%)}.Toastify__toast-container--top-right{align-items:end;right:var(--toastify-toast-right);top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{align-items:center;bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{align-items:end;bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}.Toastify__toast{--y:0;align-items:center;border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);box-sizing:border-box;display:flex;flex:auto;font-family:var(--toastify-font-family);margin-bottom:1rem;max-height:var(--toastify-toast-max-height);min-height:var(--toastify-toast-min-height);padding:var(--toastify-toast-padding);position:relative;touch-action:none;width:var(--toastify-toast-width);word-break:break-word;z-index:0}@media only screen and (width<=480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}.Toastify__toast{--toastify-toast-width:100%;border-radius:0;margin-bottom:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0)scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:22px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:var(--toastify-color-info);color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:var(--toastify-color-success);color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:var(--toastify-color-warning);color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:var(--toastify-color-error);color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{background:0 0;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;position:absolute;right:6px;top:6px;transition:all .3s;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:0;width:100%;z-index:1}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;left:auto;right:0;transform-origin:100%}.Toastify__progress-bar--wrp{border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)}60%{opacity:1;transform:translate(-25px)}75%{transform:translate(10px)}90%{transform:translate(-5px)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)}60%{opacity:1;transform:translate(25px)}75%{transform:translate(-10px)}90%{transform:translate(5px)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)}60%{opacity:1;transform:translateY(-20px)}75%{transform:translateY(10px)}90%{transform:translateY(-5px)}to{transform:translate(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translateY(-2000px)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)}60%{opacity:1;transform:translateY(25px)}75%{transform:translateY(-10px)}90%{transform:translateY(5px)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translateY(2000px)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0)scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0)perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0)perspective(400px)rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0)perspective(400px)rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate(110%);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate(-110%);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translateY(110%);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translateY(-110%);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translateY(500px);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translateY(-500px);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:.9;--rt-transition-show-delay:.15s;--rt-transition-closing-delay:.15s}.core-styles-module_tooltip__3vRRp{left:0;opacity:0;pointer-events:none;position:absolute;top:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{background:inherit;position:absolute}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}.styles-module_tooltip__mnnfp{border-radius:3px;font-size:90%;padding:8px 16px;width:max-content}.styles-module_arrow__K0L3T{height:8px;width:8px}[class*=react-tooltip__place-top]>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*=react-tooltip__place-right]>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*=react-tooltip__place-bottom]>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*=react-tooltip__place-left]>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}:root{--toastify-toast-min-height:3rem}#wpcontent{padding-left:0!important}#adminmenu .wp-menu-image img{display:initial}:is(input,select,textarea,button,.checkbox-field,.radio-field,.notification-box,a):focus{outline:2px solid var(--color-primary-hover)}small{font-size:var(--text-base)}h1,h2,h3,h4,h5 h6{margin:0}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}.max-w-container{width:2000px}.onboarding-body{height:100%;margin:1svh auto}.form-field-inline{width:48.5%}.theme-config{width:100%}.theme-config-group-color{column-gap:1rem;display:grid;flex-wrap:wrap;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:space-between;margin:1.5rem auto}@media screen and (width<=40rem){.theme-config-group-color{grid-template-columns:repeat(1,minmax(0,1fr))}}.theme-config-group-color>.theme-config-field{grid-column:span 1;width:100%}#field-tooltip{background:color-mix(in oklab,var(--color-neutral-800)60%,transparent);font-size:var(--text-xs);font-weight:400;max-width:300px;z-index:99999}#simplybook_app label{font-size:var(--text-label);font-weight:var(--font-weight-medium);margin-bottom:.5rem}#simplybook_app .input-base{box-shadow:var(--shadow-md)}#simplybook_app .input-base,#simplybook_app .input-base-no-shadow{border-color:var(--color-gray-200);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:2px;font-size:var(--text-base);line-height:1.5;max-width:100%;padding:.5rem;position:relative;width:100%}#simplybook_app .checkbox-field{border:2px solid #0000}#simplybook_app img{display:inline}.scroll-container::-webkit-scrollbar{background-color:var(--color-gray-300);border-radius:10px;width:8px}.scroll-container::-webkit-scrollbar-thumb{background-color:var(--color-gray-500);border-radius:10px}.scroll-container::-webkit-scrollbar-track{background-color:#0000;border-radius:10px;-webkit-box-shadow:inset 0 0 2px #0000}.invalid-field-regex input,.invalid-field-required .checkbox-field,.invalid-field-required input,.invalid-field-required select{border-color:var(--color-error)!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{50%{opacity:.5}}
     1/*! tailwindcss v4.0.14 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(.936 .032 17.717);--color-red-400:oklch(.704 .191 22.216);--color-red-500:oklch(.637 .237 25.331);--color-red-600:oklch(.577 .245 27.325);--color-red-700:oklch(.505 .213 27.518);--color-red-800:oklch(.444 .177 26.899);--color-yellow-100:oklch(.973 .071 103.193);--color-yellow-400:oklch(.852 .199 91.936);--color-yellow-500:oklch(.795 .184 86.047);--color-yellow-900:oklch(.421 .095 57.708);--color-green-100:oklch(.962 .044 156.743);--color-green-500:oklch(.723 .219 149.579);--color-green-600:oklch(.627 .194 149.214);--color-blue-50:oklch(.97 .014 254.604);--color-blue-100:oklch(.932 .032 255.585);--color-blue-300:oklch(.809 .105 251.813);--color-blue-500:oklch(.623 .214 259.815);--color-blue-600:oklch(.546 .245 262.881);--color-blue-800:oklch(.424 .199 265.638);--color-slate-600:oklch(.446 .043 257.281);--color-gray-50:oklch(.985 .002 247.839);--color-gray-100:oklch(.967 .003 264.542);--color-gray-200:#dadada80;--color-gray-300:oklch(.872 .01 258.338);--color-gray-400:oklch(.707 .022 261.325);--color-gray-500:oklch(.551 .027 264.364);--color-gray-600:oklch(.446 .03 256.802);--color-gray-700:oklch(.373 .034 259.733);--color-gray-800:oklch(.278 .033 256.848);--color-gray-900:oklch(.21 .034 264.665);--color-neutral-200:oklch(.922 0 0);--color-neutral-800:oklch(.269 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-md:48rem;--breakpoint-2xl:clamp(300px,100% - 20px*2,1600px);--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:.875rem;--text-base--line-height:1.5;--text-lg:1rem;--text-lg--line-height:1.55556;--text-xl:1.125rem;--text-xl--line-height:1.4;--text-2xl:1.375rem;--text-2xl--line-height:1.33333;--text-3xl:1.5rem;--text-3xl--line-height:1.2;--text-4xl:2rem;--text-4xl--line-height:1.11111;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:600;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-md:0px 9px 14px -2px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings);--text-xxs:.6825rem;--text-label:var(--text-base);--color-succes:var(--color-green-500);--color-succes-light:#eafaf3;--color-warning:var(--color-yellow-400);--color-error:var(--color-red-400);--bg-primary-light:#b3e4f9;--bg-primary:#06adef;--bg-primary-dark:#055b78;--color-primary-hover:#0589bd;--color-primary-lighter:#f8fcfe;--bg-secondary-light:#ffb3c1;--bg-secondary:#ff3259;--bg-secondary-dark:#950c28;--bg-tertiary-light:#d9e3fd;--bg-tertiary:#0c3052;--bg-tertiary-dark:#061f32;--color-sb-blue:#5a6fa5;--color-sb-gray:#788291;--color-accent-light-blue:#009fff;--color-tertiary-border:#eff4ff;--container-8xl:125rem}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{color:color-mix(in oklab,currentColor 50%,transparent);opacity:1}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components,utilities;#simplybook_app .\@container{container-type:inline-size}#simplybook_app .pointer-events-none{pointer-events:none}#simplybook_app .collapse{visibility:collapse}#simplybook_app .invisible{visibility:hidden}#simplybook_app .visible{visibility:visible}#simplybook_app .aspect-w-16{padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%);--tw-aspect-w:16;position:relative}#simplybook_app .aspect-w-16>*{height:100%;inset:0;position:absolute;width:100%}#simplybook_app .sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}#simplybook_app .absolute{position:absolute}#simplybook_app .fixed{position:fixed}#simplybook_app .relative{position:relative}#simplybook_app .static{position:static}#simplybook_app .sticky{position:sticky}#simplybook_app .inset-0{inset:calc(var(--spacing)*0)}#simplybook_app .start-0{inset-inline-start:calc(var(--spacing)*0)}#simplybook_app .-top-3{top:calc(var(--spacing)*-3)}#simplybook_app .top-0{top:calc(var(--spacing)*0)}#simplybook_app .top-2\.5{top:calc(var(--spacing)*2.5)}#simplybook_app .top-5\.5{top:calc(var(--spacing)*5.5)}#simplybook_app .top-16{top:calc(var(--spacing)*16)}#simplybook_app .-right-0\.5{right:calc(var(--spacing)*-.5)}#simplybook_app .-right-5{right:calc(var(--spacing)*-5)}#simplybook_app .right-\[0\.5rem\]{right:.5rem}#simplybook_app .bottom-0{bottom:calc(var(--spacing)*0)}#simplybook_app .isolate{isolation:isolate}#simplybook_app .-z-1{z-index:-1}#simplybook_app .z-10{z-index:10}#simplybook_app .z-50{z-index:50}#simplybook_app .z-60{z-index:60}#simplybook_app .z-999{z-index:999}#simplybook_app .z-99999{z-index:99999}#simplybook_app .order-6{order:6}#simplybook_app .col-span-3{grid-column:span 3/span 3}#simplybook_app .col-span-4{grid-column:span 4/span 4}#simplybook_app .col-span-5{grid-column:span 5/span 5}#simplybook_app .col-span-6{grid-column:span 6/span 6}#simplybook_app .col-span-12{grid-column:span 12/span 12}#simplybook_app .col-span-full{grid-column:1/-1}#simplybook_app .col-start-2{grid-column-start:2}#simplybook_app .col-start-3{grid-column-start:3}#simplybook_app .col-start-7{grid-column-start:7}#simplybook_app .row-span-1{grid-row:span 1/span 1}#simplybook_app .row-span-2{grid-row:span 2/span 2}#simplybook_app .float-left{float:left}#simplybook_app .float-right{float:right}@media (width>=40rem){#simplybook_app .container{max-width:40rem}}@media (width>=48rem){#simplybook_app .container{max-width:48rem}}@media (width>=64rem){#simplybook_app .container{max-width:64rem}}@media (width>=80rem){#simplybook_app .container{max-width:80rem}}#simplybook_app .m-0{margin:calc(var(--spacing)*0)}#simplybook_app .m-4{margin:calc(var(--spacing)*4)}#simplybook_app .m-5{margin:calc(var(--spacing)*5)}#simplybook_app .mx-2{margin-inline:calc(var(--spacing)*2)}#simplybook_app .mx-4{margin-inline:calc(var(--spacing)*4)}#simplybook_app .mx-5{margin-inline:calc(var(--spacing)*5)}#simplybook_app .mx-auto{margin-inline:auto}#simplybook_app .my-2{margin-block:calc(var(--spacing)*2)}#simplybook_app .my-4{margin-block:calc(var(--spacing)*4)}#simplybook_app .my-6{margin-block:calc(var(--spacing)*6)}#simplybook_app .my-10{margin-block:calc(var(--spacing)*10)}#simplybook_app .my-12{margin-block:calc(var(--spacing)*12)}#simplybook_app .-mt-4{margin-top:calc(var(--spacing)*-4)}#simplybook_app .-mt-20{margin-top:calc(var(--spacing)*-20)}#simplybook_app .mt-1{margin-top:calc(var(--spacing)*1)}#simplybook_app .mt-2{margin-top:calc(var(--spacing)*2)}#simplybook_app .mt-3{margin-top:calc(var(--spacing)*3)}#simplybook_app .mt-4{margin-top:calc(var(--spacing)*4)}#simplybook_app .mt-5{margin-top:calc(var(--spacing)*5)}#simplybook_app .mt-8{margin-top:calc(var(--spacing)*8)}#simplybook_app .mt-12{margin-top:calc(var(--spacing)*12)}#simplybook_app .mt-26{margin-top:calc(var(--spacing)*26)}#simplybook_app .mt-\[1px\]{margin-top:1px}#simplybook_app .\!mr-0{margin-right:calc(var(--spacing)*0)!important}#simplybook_app .mr-2{margin-right:calc(var(--spacing)*2)}#simplybook_app .mr-3{margin-right:calc(var(--spacing)*3)}#simplybook_app .mr-4{margin-right:calc(var(--spacing)*4)}#simplybook_app .mr-8{margin-right:calc(var(--spacing)*8)}#simplybook_app .mb-0{margin-bottom:calc(var(--spacing)*0)}#simplybook_app .mb-1{margin-bottom:calc(var(--spacing)*1)}#simplybook_app .mb-2{margin-bottom:calc(var(--spacing)*2)}#simplybook_app .mb-2\.5{margin-bottom:calc(var(--spacing)*2.5)}#simplybook_app .mb-3{margin-bottom:calc(var(--spacing)*3)}#simplybook_app .mb-4{margin-bottom:calc(var(--spacing)*4)}#simplybook_app .mb-5{margin-bottom:calc(var(--spacing)*5)}#simplybook_app .mb-6{margin-bottom:calc(var(--spacing)*6)}#simplybook_app .mb-8{margin-bottom:calc(var(--spacing)*8)}#simplybook_app .mb-12{margin-bottom:calc(var(--spacing)*12)}#simplybook_app .mb-\[0\.70rem\]{margin-bottom:.7rem}#simplybook_app .ml-1{margin-left:calc(var(--spacing)*1)}#simplybook_app .ml-2{margin-left:calc(var(--spacing)*2)}#simplybook_app .ml-4{margin-left:calc(var(--spacing)*4)}#simplybook_app .ml-\[1px\]{margin-left:1px}#simplybook_app .ml-auto{margin-left:auto}#simplybook_app .block{display:block}#simplybook_app .contents{display:contents}#simplybook_app .flex{display:flex}#simplybook_app .grid{display:grid}#simplybook_app .hidden{display:none}#simplybook_app .inline{display:inline}#simplybook_app .inline-block{display:inline-block}#simplybook_app .inline-flex{display:inline-flex}#simplybook_app .list-item{display:list-item}#simplybook_app .table{display:table}#simplybook_app .table-caption{display:table-caption}#simplybook_app .table-cell{display:table-cell}#simplybook_app .table-column{display:table-column}#simplybook_app .table-column-group{display:table-column-group}#simplybook_app .table-footer-group{display:table-footer-group}#simplybook_app .table-header-group{display:table-header-group}#simplybook_app .table-row{display:table-row}#simplybook_app .table-row-group{display:table-row-group}#simplybook_app .size-1{width:calc(var(--spacing)*1)}#simplybook_app .h-1,#simplybook_app .size-1{height:calc(var(--spacing)*1)}#simplybook_app .h-3{height:calc(var(--spacing)*3)}#simplybook_app .h-4{height:calc(var(--spacing)*4)}#simplybook_app .h-5{height:calc(var(--spacing)*5)}#simplybook_app .h-6{height:calc(var(--spacing)*6)}#simplybook_app .h-8{height:calc(var(--spacing)*8)}#simplybook_app .h-10{height:calc(var(--spacing)*10)}#simplybook_app .h-12{height:calc(var(--spacing)*12)}#simplybook_app .h-20{height:calc(var(--spacing)*20)}#simplybook_app .h-40{height:calc(var(--spacing)*40)}#simplybook_app .h-\[18px\]{height:18px}#simplybook_app .h-\[70vh\]{height:70vh}#simplybook_app .h-\[290px\]{height:290px}#simplybook_app .h-auto{height:auto}#simplybook_app .h-full{height:100%}#simplybook_app .h-max{height:max-content}#simplybook_app .max-h-0{max-height:calc(var(--spacing)*0)}#simplybook_app .max-h-48{max-height:calc(var(--spacing)*48)}#simplybook_app .max-h-\[36px\]{max-height:36px}#simplybook_app .max-h-\[48px\]{max-height:48px}#simplybook_app .min-h-\[75svh\]{min-height:75svh}#simplybook_app .min-h-full{min-height:100%}#simplybook_app .w-0{width:calc(var(--spacing)*0)}#simplybook_app .w-1{width:calc(var(--spacing)*1)}#simplybook_app .w-1\/2{width:50%}#simplybook_app .w-3{width:calc(var(--spacing)*3)}#simplybook_app .w-3\/4{width:75%}#simplybook_app .w-3\/8{width:37.5%}#simplybook_app .w-4{width:calc(var(--spacing)*4)}#simplybook_app .w-4\/5{width:80%}#simplybook_app .w-5{width:calc(var(--spacing)*5)}#simplybook_app .w-5\/6{width:83.3333%}#simplybook_app .w-6{width:calc(var(--spacing)*6)}#simplybook_app .w-8{width:calc(var(--spacing)*8)}#simplybook_app .w-10{width:calc(var(--spacing)*10)}#simplybook_app .w-20{width:calc(var(--spacing)*20)}#simplybook_app .w-40{width:calc(var(--spacing)*40)}#simplybook_app .w-65{width:calc(var(--spacing)*65)}#simplybook_app .w-\[18px\]{width:18px}#simplybook_app .w-\[65vw\]{width:65vw}#simplybook_app .w-\[75\%\]{width:75%}#simplybook_app .w-\[80\%\]{width:80%}#simplybook_app .w-\[185px\]{width:185px}#simplybook_app .w-full{width:100%}#simplybook_app .w-min{width:min-content}#simplybook_app .max-w-2\/3{max-width:66.6667%}#simplybook_app .max-w-3\/5{max-width:60%}#simplybook_app .max-w-7xl{max-width:var(--container-7xl)}#simplybook_app .max-w-8xl{max-width:var(--container-8xl)}#simplybook_app .max-w-\[36px\]{max-width:36px}#simplybook_app .max-w-\[46rem\]{max-width:46rem}#simplybook_app .max-w-\[48px\]{max-width:48px}#simplybook_app .max-w-fit{max-width:fit-content}#simplybook_app .max-w-md{max-width:var(--container-md)}#simplybook_app .max-w-screen-2xl{max-width:var(--breakpoint-2xl)}#simplybook_app .max-w-screen-md{max-width:var(--breakpoint-md)}#simplybook_app .max-w-sm{max-width:var(--container-sm)}#simplybook_app .max-w-xs{max-width:var(--container-xs)}#simplybook_app .min-w-0{min-width:calc(var(--spacing)*0)}#simplybook_app .min-w-5{min-width:calc(var(--spacing)*5)}#simplybook_app .min-w-20{min-width:calc(var(--spacing)*20)}#simplybook_app .min-w-\[36px\]{min-width:36px}#simplybook_app .min-w-\[140px\]{min-width:140px}#simplybook_app .flex-1{flex:1}#simplybook_app .flex-shrink,#simplybook_app .shrink{flex-shrink:1}#simplybook_app .flex-grow,#simplybook_app .grow{flex-grow:1}#simplybook_app .border-collapse{border-collapse:collapse}#simplybook_app .-translate-y-1\/2{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}#simplybook_app .rotate-180{rotate:180deg}#simplybook_app .transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}#simplybook_app .animate-pulse{animation:var(--animate-pulse)}#simplybook_app .animate-spin{animation:var(--animate-spin)}#simplybook_app .cursor-default{cursor:default}#simplybook_app .cursor-not-allowed{cursor:not-allowed}#simplybook_app .cursor-pointer{cursor:pointer}#simplybook_app .resize{resize:both}#simplybook_app .list-inside{list-style-position:inside}#simplybook_app .list-decimal{list-style-type:decimal}#simplybook_app .list-none{list-style-type:none}#simplybook_app .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}#simplybook_app .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}#simplybook_app .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}#simplybook_app .grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}#simplybook_app .flex-col{flex-direction:column}#simplybook_app .flex-col-reverse{flex-direction:column-reverse}#simplybook_app .flex-row{flex-direction:row}#simplybook_app .flex-row-reverse{flex-direction:row-reverse}#simplybook_app .flex-wrap{flex-wrap:wrap}#simplybook_app .content-start{align-content:flex-start}#simplybook_app .items-baseline{align-items:baseline}#simplybook_app .items-center{align-items:center}#simplybook_app .items-start{align-items:flex-start}#simplybook_app .justify-around{justify-content:space-around}#simplybook_app .justify-between{justify-content:space-between}#simplybook_app .justify-center{justify-content:center}#simplybook_app .justify-end{justify-content:flex-end}#simplybook_app .justify-start{justify-content:flex-start}#simplybook_app .gap-1{gap:calc(var(--spacing)*1)}#simplybook_app .gap-2{gap:calc(var(--spacing)*2)}#simplybook_app .gap-3{gap:calc(var(--spacing)*3)}#simplybook_app .gap-3\.5{gap:calc(var(--spacing)*3.5)}#simplybook_app .gap-4{gap:calc(var(--spacing)*4)}#simplybook_app .gap-5{gap:calc(var(--spacing)*5)}#simplybook_app .gap-6{gap:calc(var(--spacing)*6)}#simplybook_app .gap-8{gap:calc(var(--spacing)*8)}#simplybook_app .gap-24{gap:calc(var(--spacing)*24)}:where(#simplybook_app .space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}:where(#simplybook_app .space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*6*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*6*var(--tw-space-y-reverse))}#simplybook_app .gap-x-4{column-gap:calc(var(--spacing)*4)}:where(#simplybook_app .space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*2*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*2*var(--tw-space-x-reverse))}:where(#simplybook_app .space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*3*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*3*var(--tw-space-x-reverse))}#simplybook_app .gap-y-4{row-gap:calc(var(--spacing)*4)}#simplybook_app .self-center{align-self:center}#simplybook_app .self-start{align-self:flex-start}#simplybook_app .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#simplybook_app .overflow-hidden{overflow:hidden}#simplybook_app .overflow-x-scroll{overflow-x:scroll}#simplybook_app .overflow-y-auto{overflow-y:auto}#simplybook_app .overflow-y-scroll{overflow-y:scroll}#simplybook_app .rounded{border-radius:.25rem}#simplybook_app .rounded-\[3rem\]{border-radius:3rem}#simplybook_app .rounded-full{border-radius:3.40282e+38px}#simplybook_app .rounded-lg{border-radius:var(--radius-lg)}#simplybook_app .rounded-md{border-radius:var(--radius-md)}#simplybook_app .rounded-sm{border-radius:var(--radius-sm)}#simplybook_app .rounded-xl{border-radius:var(--radius-xl)}#simplybook_app .rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}#simplybook_app .rounded-b-lg{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}#simplybook_app .rounded-b-md{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}#simplybook_app .rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}#simplybook_app .border,#simplybook_app .border-1{border-style:var(--tw-border-style);border-width:1px}#simplybook_app .border-2{border-style:var(--tw-border-style);border-width:2px}#simplybook_app .border-3{border-style:var(--tw-border-style);border-width:3px}#simplybook_app .border-t{border-top-style:var(--tw-border-style);border-top-width:1px}#simplybook_app .border-b-1{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}#simplybook_app .border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}#simplybook_app .border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}#simplybook_app .border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}#simplybook_app .\!border-sb-blue{border-color:var(--color-sb-blue)!important}#simplybook_app .\!border-secondary{border-color:#ff3259!important}#simplybook_app .border-\[\#E1E7F5\]{border-color:#e1e7f5}#simplybook_app .border-\[\#e6e6e6\]{border-color:#e6e6e6}#simplybook_app .border-black{border-color:var(--color-black)}#simplybook_app .border-blue-500{border-color:var(--color-blue-500)}#simplybook_app .border-blue-600{border-color:var(--color-blue-600)}#simplybook_app .border-gray-200{border-color:var(--color-gray-200)}#simplybook_app .border-gray-300{border-color:var(--color-gray-300)}#simplybook_app .border-gray-400{border-color:var(--color-gray-400)}#simplybook_app .border-green-600{border-color:var(--color-green-600)}#simplybook_app .border-inherit{border-color:inherit}#simplybook_app .border-primary{border-color:#06adef}#simplybook_app .border-red-400{border-color:var(--color-red-400)}#simplybook_app .border-red-500{border-color:var(--color-red-500)}#simplybook_app .border-red-600{border-color:var(--color-red-600)}#simplybook_app .border-sb-blue{border-color:var(--color-sb-blue)}#simplybook_app .border-secondary{border-color:#ff3259}#simplybook_app .border-tertiary{border-color:#0c3052}#simplybook_app .border-tertiary-border{border-color:var(--color-tertiary-border)}#simplybook_app .border-transparent{border-color:#0000}#simplybook_app .border-b-\[\#E1E7F5\]{border-bottom-color:#e1e7f5}#simplybook_app .\!bg-transparent{background-color:#0000!important}#simplybook_app .bg-accent-light-blue{background-color:var(--color-accent-light-blue)}#simplybook_app .bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}#simplybook_app .bg-blue-50{background-color:var(--color-blue-50)}#simplybook_app .bg-blue-100{background-color:var(--color-blue-100)}#simplybook_app .bg-blue-500{background-color:var(--color-blue-500)}#simplybook_app .bg-gray-50{background-color:var(--color-gray-50)}#simplybook_app .bg-gray-100{background-color:var(--color-gray-100)}#simplybook_app .bg-gray-200{background-color:var(--color-gray-200)}#simplybook_app .bg-gray-300{background-color:var(--color-gray-300)}#simplybook_app .bg-green-100{background-color:var(--color-green-100)}#simplybook_app .bg-green-500{background-color:var(--color-green-500)}#simplybook_app .bg-primary{background-color:#06adef}#simplybook_app .bg-primary-lighter{background-color:var(--color-primary-lighter)}#simplybook_app .bg-red-100{background-color:var(--color-red-100)}#simplybook_app .bg-red-600{background-color:var(--color-red-600)}#simplybook_app .bg-red-800{background-color:var(--color-red-800)}#simplybook_app .bg-secondary{background-color:#ff3259}#simplybook_app .bg-secondary-dark{background-color:#950c28}#simplybook_app .bg-slate-600{background-color:var(--color-slate-600)}#simplybook_app .bg-succes{background-color:var(--color-succes)}#simplybook_app .bg-succes-light{background-color:var(--color-succes-light)}#simplybook_app .bg-tertiary{background-color:#0c3052}#simplybook_app .bg-tertiary-dark{background-color:#061f32}#simplybook_app .bg-tertiary-light{background-color:#f0f4fe}#simplybook_app .bg-transparent{background-color:#0000}#simplybook_app .bg-white{background-color:var(--color-white)}#simplybook_app .bg-yellow-100{background-color:var(--color-yellow-100)}#simplybook_app .bg-yellow-400{background-color:var(--color-yellow-400)}#simplybook_app .bg-yellow-900{background-color:var(--color-yellow-900)}#simplybook_app .\!p-4{padding:calc(var(--spacing)*4)!important}#simplybook_app .p-0{padding:calc(var(--spacing)*0)}#simplybook_app .p-1{padding:calc(var(--spacing)*1)}#simplybook_app .p-1\.5{padding:calc(var(--spacing)*1.5)}#simplybook_app .p-2{padding:calc(var(--spacing)*2)}#simplybook_app .p-3{padding:calc(var(--spacing)*3)}#simplybook_app .p-4{padding:calc(var(--spacing)*4)}#simplybook_app .p-5{padding:calc(var(--spacing)*5)}#simplybook_app .p-6{padding:calc(var(--spacing)*6)}#simplybook_app .p-8{padding:calc(var(--spacing)*8)}#simplybook_app .px-0{padding-inline:calc(var(--spacing)*0)}#simplybook_app .px-1{padding-inline:calc(var(--spacing)*1)}#simplybook_app .px-2{padding-inline:calc(var(--spacing)*2)}#simplybook_app .px-3{padding-inline:calc(var(--spacing)*3)}#simplybook_app .px-4{padding-inline:calc(var(--spacing)*4)}#simplybook_app .px-5{padding-inline:calc(var(--spacing)*5)}#simplybook_app .px-6{padding-inline:calc(var(--spacing)*6)}#simplybook_app .px-8{padding-inline:calc(var(--spacing)*8)}#simplybook_app .py-0{padding-block:calc(var(--spacing)*0)}#simplybook_app .py-1{padding-block:calc(var(--spacing)*1)}#simplybook_app .py-2{padding-block:calc(var(--spacing)*2)}#simplybook_app .py-3{padding-block:calc(var(--spacing)*3)}#simplybook_app .py-4{padding-block:calc(var(--spacing)*4)}#simplybook_app .py-5{padding-block:calc(var(--spacing)*5)}#simplybook_app .py-6{padding-block:calc(var(--spacing)*6)}#simplybook_app .py-8{padding-block:calc(var(--spacing)*8)}#simplybook_app .py-10{padding-block:calc(var(--spacing)*10)}#simplybook_app .py-\[23px\]{padding-block:23px}#simplybook_app .pt-4{padding-top:calc(var(--spacing)*4)}#simplybook_app .pr-1{padding-right:calc(var(--spacing)*1)}#simplybook_app .pb-1{padding-bottom:calc(var(--spacing)*1)}#simplybook_app .pb-2{padding-bottom:calc(var(--spacing)*2)}#simplybook_app .pb-4{padding-bottom:calc(var(--spacing)*4)}#simplybook_app .pl-5{padding-left:calc(var(--spacing)*5)}#simplybook_app .text-center{text-align:center}#simplybook_app .text-justify{text-align:justify}#simplybook_app .text-left{text-align:left}#simplybook_app .text-right{text-align:right}#simplybook_app .text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}#simplybook_app .text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}#simplybook_app .text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}#simplybook_app .text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}#simplybook_app .text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}#simplybook_app .text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}#simplybook_app .text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}#simplybook_app .text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}#simplybook_app .text-\[0\.85rem\]{font-size:.85rem}#simplybook_app .text-\[0\.8125rem\]{font-size:.8125rem}#simplybook_app .text-label{font-size:var(--text-label)}#simplybook_app .text-xxs{font-size:var(--text-xxs)}#simplybook_app .leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}#simplybook_app .leading-none{--tw-leading:1;line-height:1}#simplybook_app .font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}#simplybook_app .font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}#simplybook_app .font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}#simplybook_app .font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}#simplybook_app .font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}#simplybook_app .font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}#simplybook_app .text-nowrap{text-wrap:nowrap}#simplybook_app .text-wrap{text-wrap:wrap}#simplybook_app .text-ellipsis{text-overflow:ellipsis}#simplybook_app .whitespace-nowrap{white-space:nowrap}#simplybook_app .\!text-sb-blue{color:var(--color-sb-blue)!important}#simplybook_app .text-\[\#333\]{color:#333}#simplybook_app .text-black{color:#000c}#simplybook_app .text-blue-600{color:var(--color-blue-600)}#simplybook_app .text-gray-400{color:var(--color-gray-400)}#simplybook_app .text-gray-500{color:var(--color-gray-500)}#simplybook_app .text-gray-600{color:var(--color-gray-600)}#simplybook_app .text-gray-700{color:var(--color-gray-700)}#simplybook_app .text-gray-800{color:var(--color-gray-800)}#simplybook_app .text-gray-900{color:var(--color-gray-900)}#simplybook_app .text-green-500{color:var(--color-green-500)}#simplybook_app .text-green-600{color:var(--color-green-600)}#simplybook_app .text-neutral-200{color:var(--color-neutral-200)}#simplybook_app .text-primary{color:#06adef}#simplybook_app .text-red-500{color:var(--color-red-500)}#simplybook_app .text-red-600{color:var(--color-red-600)}#simplybook_app .text-red-700{color:var(--color-red-700)}#simplybook_app .text-sb-blue{color:var(--color-sb-blue)}#simplybook_app .text-sb-gray{color:var(--color-sb-gray)}#simplybook_app .text-succes{color:var(--color-succes)}#simplybook_app .text-tertiary{color:#0c3052}#simplybook_app .text-white{color:#ffffffd9}#simplybook_app .text-yellow-900{color:var(--color-yellow-900)}#simplybook_app .lowercase{text-transform:lowercase}#simplybook_app .uppercase{text-transform:uppercase}#simplybook_app .italic{font-style:italic}#simplybook_app .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}#simplybook_app .line-through{text-decoration-line:line-through}#simplybook_app .no-underline{text-decoration-line:none}#simplybook_app .underline{text-decoration-line:underline}#simplybook_app .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#simplybook_app .opacity-50{opacity:.5}#simplybook_app .shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}#simplybook_app .shadow,#simplybook_app .shadow-lg{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}#simplybook_app .shadow-md{--tw-shadow:0px 9px 14px -2px var(--tw-shadow-color,#0000001a)}#simplybook_app .shadow-md,#simplybook_app .shadow-none{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .shadow-none{--tw-shadow:0 0 #0000}#simplybook_app .shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}#simplybook_app .ring,#simplybook_app .shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor)}#simplybook_app .ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .ring-red-600{--tw-ring-color:var(--color-red-600)}#simplybook_app .outline{outline-style:var(--tw-outline-style);outline-width:1px}#simplybook_app .blur{--tw-blur:blur(8px)}#simplybook_app .blur,#simplybook_app .blur-sm{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}#simplybook_app .blur-sm{--tw-blur:blur(var(--blur-sm))}#simplybook_app .grayscale{--tw-grayscale:grayscale(100%)}#simplybook_app .filter,#simplybook_app .grayscale{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}#simplybook_app .transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .transition-\[border-color\]{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .transition-transform{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .duration-100{--tw-duration:.1s;transition-duration:.1s}#simplybook_app .duration-200{--tw-duration:.2s;transition-duration:.2s}#simplybook_app .duration-300{--tw-duration:.3s;transition-duration:.3s}#simplybook_app .ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}#simplybook_app .ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}#simplybook_app .aspect-h-9{--tw-aspect-h:9}@media (hover:hover){#simplybook_app .group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}}#simplybook_app .peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}#simplybook_app .peer-focus\:ring-2:is(:where(.peer):focus~*){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .peer-focus\:ring-4:is(:where(.peer):focus~*){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .peer-focus\:ring-blue-300:is(:where(.peer):focus~*){--tw-ring-color:var(--color-blue-300)}#simplybook_app .after\:absolute:after{content:var(--tw-content);position:absolute}#simplybook_app .after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing)*.5)}#simplybook_app .after\:top-1:after{content:var(--tw-content);top:calc(var(--spacing)*1)}#simplybook_app .after\:left-0\.5:after{content:var(--tw-content);left:calc(var(--spacing)*.5)}#simplybook_app .after\:mx-\[0\.2rem\]:after{content:var(--tw-content);margin-inline:.2rem}#simplybook_app .after\:aspect-square:after{aspect-ratio:1;content:var(--tw-content)}#simplybook_app .after\:h-3:after{content:var(--tw-content);height:calc(var(--spacing)*3)}#simplybook_app .after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing)*4)}#simplybook_app .after\:w-3:after{content:var(--tw-content);width:calc(var(--spacing)*3)}#simplybook_app .after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing)*4)}#simplybook_app .after\:rounded-full:after{border-radius:3.40282e+38px;content:var(--tw-content)}#simplybook_app .after\:border:after{border-style:var(--tw-border-style);border-width:1px;content:var(--tw-content)}#simplybook_app .after\:border-gray-200:after{border-color:var(--color-gray-200);content:var(--tw-content)}#simplybook_app .after\:bg-white:after{background-color:var(--color-white);content:var(--tw-content)}#simplybook_app .after\:transition-all:after{content:var(--tw-content);transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}#simplybook_app .after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}#simplybook_app .peer-checked\:after\:translate-x-\[0\.8rem\]:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:.8rem;translate:var(--tw-translate-x)var(--tw-translate-y)}#simplybook_app .peer-checked\:after\:translate-x-\[1\.125rem\]:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:1.125rem;translate:var(--tw-translate-x)var(--tw-translate-y)}#simplybook_app .peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{border-color:var(--color-white);content:var(--tw-content)}#simplybook_app .last\:mb-3:last-child{margin-bottom:calc(var(--spacing)*3)}#simplybook_app .odd\:bg-white:nth-child(odd){background-color:var(--color-white)}#simplybook_app .even\:bg-gray-50:nth-child(2n){background-color:var(--color-gray-50)}@media (hover:hover){#simplybook_app .hover\:border-blue-500:hover{border-color:var(--color-blue-500)}#simplybook_app .hover\:border-gray-500:hover{border-color:var(--color-gray-500)}#simplybook_app .hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}#simplybook_app .hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}#simplybook_app .hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}#simplybook_app .hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}#simplybook_app .hover\:bg-primary-dark:hover{background-color:#055b78}#simplybook_app .hover\:bg-primary-lighter:hover{background-color:var(--color-primary-lighter)}#simplybook_app .hover\:bg-red-100:hover{background-color:var(--color-red-100)}#simplybook_app .hover\:bg-secondary-dark:hover{background-color:#950c28}#simplybook_app .hover\:bg-tertiary:hover{background-color:#0c3052}#simplybook_app .hover\:bg-tertiary-dark:hover{background-color:#061f32}#simplybook_app .hover\:bg-tertiary-light:hover{background-color:#f0f4fe}#simplybook_app .hover\:text-blue-800:hover{color:var(--color-blue-800)}#simplybook_app .hover\:text-gray-600:hover{color:var(--color-gray-600)}#simplybook_app .hover\:text-primary:hover{color:#06adef}#simplybook_app .hover\:text-red-600:hover{color:var(--color-red-600)}#simplybook_app .hover\:text-tertiary:hover{color:#0c3052}#simplybook_app .hover\:text-tertiary\/80:hover{color:oklab(30.3585% -.0243458 -.0693881/.8)}#simplybook_app .hover\:text-white:hover{color:#ffffffd9}#simplybook_app .hover\:underline:hover{text-decoration-line:underline}}#simplybook_app .focus\:border-tertiary:focus{border-color:#0c3052}#simplybook_app .focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor)}#simplybook_app .focus\:ring-2:focus,#simplybook_app .focus\:ring-4:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor)}#simplybook_app .focus\:ring-blue-300:focus{--tw-ring-color:var(--color-blue-300)}#simplybook_app .focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}#simplybook_app .focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){#simplybook_app .focus\:outline-hidden:focus{outline:2px solid #0000;outline-offset:2px}}#simplybook_app .active\:ring-4:active{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#simplybook_app .active\:ring-blue-300:active{--tw-ring-color:var(--color-blue-300)}#simplybook_app .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}#simplybook_app .disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){#simplybook_app .sm\:col-span-6{grid-column:span 6/span 6}#simplybook_app .sm\:col-span-12{grid-column:span 12/span 12}#simplybook_app .sm\:flex{display:flex}#simplybook_app .sm\:max-w-1\/2{max-width:50%}#simplybook_app .sm\:max-w-\[80\%\]{max-width:80%}#simplybook_app .sm\:text-start{text-align:start}}@media (width>=48rem){#simplybook_app .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}#simplybook_app .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=64rem){#simplybook_app .lg\:col-span-3{grid-column:span 3/span 3}#simplybook_app .lg\:col-span-6{grid-column:span 6/span 6}#simplybook_app .lg\:w-auto{width:auto}#simplybook_app .lg\:max-w-\[70\%\]{max-width:70%}#simplybook_app .lg\:gap-y-4{row-gap:calc(var(--spacing)*4)}}@media (width>=80rem){#simplybook_app .xl\:order-0{order:0}#simplybook_app .xl\:col-span-3{grid-column:span 3/span 3}#simplybook_app .xl\:col-span-4{grid-column:span 4/span 4}#simplybook_app .xl\:col-span-5{grid-column:span 5/span 5}#simplybook_app .xl\:col-span-6{grid-column:span 6/span 6}#simplybook_app .xl\:col-start-2{grid-column-start:2}#simplybook_app .xl\:block{display:block}#simplybook_app .xl\:flex{display:flex}#simplybook_app .xl\:grid{display:grid}#simplybook_app .xl\:h-auto{height:auto}#simplybook_app .xl\:w-\[130px\]{width:130px}#simplybook_app .xl\:w-auto{width:auto}#simplybook_app .xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}#simplybook_app .xl\:grid-cols-\[130px_1fr_auto_2em\]{grid-template-columns:130px 1fr auto 2em}#simplybook_app .xl\:flex-wrap{flex-wrap:wrap}#simplybook_app .xl\:items-center{align-items:center}#simplybook_app .xl\:justify-between{justify-content:space-between}#simplybook_app .xl\:justify-center{justify-content:center}#simplybook_app .xl\:justify-normal{justify-content:normal}#simplybook_app .xl\:gap-6{gap:calc(var(--spacing)*6)}#simplybook_app .xl\:gap-24{gap:calc(var(--spacing)*24)}#simplybook_app .xl\:rounded-sm{border-radius:var(--radius-sm)}#simplybook_app .xl\:p-0{padding:calc(var(--spacing)*0)}#simplybook_app .xl\:px-1{padding-inline:calc(var(--spacing)*1)}#simplybook_app .xl\:px-4{padding-inline:calc(var(--spacing)*4)}#simplybook_app .xl\:py-0{padding-block:calc(var(--spacing)*0)}#simplybook_app .xl\:py-1{padding-block:calc(var(--spacing)*1)}#simplybook_app .xl\:py-1\.5{padding-block:calc(var(--spacing)*1.5)}#simplybook_app .xl\:pt-0{padding-top:calc(var(--spacing)*0)}#simplybook_app .xl\:text-center{text-align:center}}#simplybook_app .\[\&\.active\]\:border-tertiary.active{border-color:#0c3052}#simplybook_app .\[\&\.active\]\:font-semibold.active{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}#simplybook_app .\[\&\.active\]\:text-primary.active{color:#06adef}@media (hover:hover){#simplybook_app .hover\:\[\&\>svg\]\:text-primary:hover>svg{color:#06adef}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74d3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-container-width:fit-content;--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-padding:14px;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-toast-shadow:0px 4px 12px #0000001a;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;display:flex;flex-direction:column;position:fixed;-webkit-transform:translateZ(var(--toastify-z-index));width:var(--toastify-container-width);z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:var(--toastify-toast-left);top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{align-items:center;left:50%;top:var(--toastify-toast-top);transform:translate(-50%)}.Toastify__toast-container--top-right{align-items:end;right:var(--toastify-toast-right);top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{align-items:center;bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{align-items:end;bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}.Toastify__toast{--y:0;align-items:center;border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);box-sizing:border-box;display:flex;flex:auto;font-family:var(--toastify-font-family);margin-bottom:1rem;max-height:var(--toastify-toast-max-height);min-height:var(--toastify-toast-min-height);padding:var(--toastify-toast-padding);position:relative;touch-action:none;width:var(--toastify-toast-width);word-break:break-word;z-index:0}@media only screen and (width<=480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}.Toastify__toast{--toastify-toast-width:100%;border-radius:0;margin-bottom:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0)scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{display:flex;flex-shrink:0;margin-inline-end:10px;width:22px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:var(--toastify-color-info);color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:var(--toastify-color-success);color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:var(--toastify-color-warning);color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:var(--toastify-color-error);color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{background:0 0;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;position:absolute;right:6px;top:6px;transition:all .3s;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:0;width:100%;z-index:1}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;left:auto;right:0;transform-origin:100%}.Toastify__progress-bar--wrp{border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(3000px)}60%{opacity:1;transform:translate(-25px)}75%{transform:translate(10px)}90%{transform:translate(-5px)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate(-3000px)}60%{opacity:1;transform:translate(25px)}75%{transform:translate(-10px)}90%{transform:translate(5px)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(3000px)}60%{opacity:1;transform:translateY(-20px)}75%{transform:translateY(10px)}90%{transform:translateY(-5px)}to{transform:translate(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translateY(-2000px)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translateY(-3000px)}60%{opacity:1;transform:translateY(25px)}75%{transform:translateY(-10px)}90%{transform:translateY(5px)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translateY(2000px)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0)scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px)rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px)rotateX(-20deg)}60%{opacity:1;transform:perspective(400px)rotateX(10deg)}80%{transform:perspective(400px)rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0)perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0)perspective(400px)rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0)perspective(400px)rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate(110%);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate(-110%);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translateY(110%);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translateY(-110%);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translateY(500px);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translateY(-500px);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:.9;--rt-transition-show-delay:.15s;--rt-transition-closing-delay:.15s}.core-styles-module_tooltip__3vRRp{left:0;opacity:0;pointer-events:none;position:absolute;top:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{background:inherit;position:absolute}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}.styles-module_tooltip__mnnfp{border-radius:3px;font-size:90%;padding:8px 16px;width:max-content}.styles-module_arrow__K0L3T{height:8px;width:8px}[class*=react-tooltip__place-top]>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*=react-tooltip__place-right]>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*=react-tooltip__place-bottom]>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*=react-tooltip__place-left]>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}:root{--toastify-toast-min-height:3rem}#wpcontent{padding-left:0!important}#adminmenu .wp-menu-image img{display:initial}:is(input,select,textarea,button,.checkbox-field,.radio-field,.notification-box,a):focus{outline:2px solid var(--color-primary-hover)}small{font-size:var(--text-base)}h1,h2,h3,h4,h5 h6{margin:0}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}.max-w-container{width:2000px}.onboarding-body{height:100%;margin:1svh auto}.form-field-inline{width:48.5%}.theme-config{width:100%}.theme-config-group-color{column-gap:1rem;display:grid;flex-wrap:wrap;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:space-between;margin:1.5rem auto}@media screen and (width<=40rem){.theme-config-group-color{grid-template-columns:repeat(1,minmax(0,1fr))}}.theme-config-group-color>.theme-config-field{grid-column:span 1;width:100%}#field-tooltip{background:color-mix(in oklab,var(--color-neutral-800)60%,transparent);font-size:var(--text-xs);font-weight:400;max-width:300px;z-index:99999}#simplybook_app label{font-size:var(--text-label);font-weight:var(--font-weight-medium);margin-bottom:.5rem}#simplybook_app .input-base{box-shadow:var(--shadow-md)}#simplybook_app .input-base,#simplybook_app .input-base-no-shadow{border-color:var(--color-gray-200);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:2px;font-size:var(--text-base);line-height:1.5;max-width:100%;padding:.5rem;position:relative;width:100%}#simplybook_app .checkbox-field{border:2px solid #0000}#simplybook_app img{display:inline}.scroll-container::-webkit-scrollbar{background-color:var(--color-gray-300);border-radius:10px;width:8px}.scroll-container::-webkit-scrollbar-thumb{background-color:var(--color-gray-500);border-radius:10px}.scroll-container::-webkit-scrollbar-track{background-color:#0000;border-radius:10px;-webkit-box-shadow:inset 0 0 2px #0000}.invalid-field-regex input,.invalid-field-required .checkbox-field,.invalid-field-required input,.invalid-field-required select{border-color:var(--color-error)!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{50%{opacity:.5}}
  • simplybook/trunk/assets/languages/simplybook.pot

    r3384996 r3399722  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: SimplyBook.me - Booking and reservations calendar 3.2.2\n"
     5"Project-Id-Version: SimplyBook.me - Booking and reservations calendar 3.2.3\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/simplybook\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-10-21T06:26:21+00:00\n"
     12"POT-Creation-Date: 2025-11-20T10:56:35+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.11.0\n"
     
    4040msgstr ""
    4141
    42 #: app/Controllers/AdminController.php:46
    43 #: react/build/79.712c746b580f9980027a.js:1
    44 #: react/build/107.00e9e978ad301065b8c0.js:1
     42#: app/Controllers/AdminController.php:47
     43#: react/build/79.60f8a3c25a3089f47e58.js:1
     44#: react/build/107.e36c77fdbbf228e1331a.js:1
    4545#: react/src/components/Settings/SettingsMenu.jsx:16
    4646#: react/src/components/Settings/SettingsMenu.jsx:29
     
    4848msgstr ""
    4949
    50 #: app/Controllers/AdminController.php:50
     50#: app/Controllers/AdminController.php:51
    5151msgid "Support"
    5252msgstr ""
    5353
    5454#. translators: %1$s and %2$s are replaced with opening and closing tags to bold the text
    55 #: app/Controllers/AdminController.php:67
     55#: app/Controllers/AdminController.php:68
    5656msgid "The %1$sSimplyBook.me%2$s plugin relies on the %1$sWordPress REST API%2$s to register new accounts. However, the REST API is currently inaccessible to logged-out users. Please ensure that the REST API is enabled and publicly accessible."
    5757msgstr ""
    5858
    59 #: app/Controllers/BlockController.php:51
     59#: app/Controllers/BlockController.php:54
    6060msgid "A widget for Simplybook.me"
    6161msgstr ""
    6262
    63 #: app/Controllers/DashboardController.php:86
    64 #: app/Controllers/DashboardController.php:87
     63#: app/Controllers/DashboardController.php:94
     64#: app/Controllers/DashboardController.php:95
    6565#: app/Features/TaskManagement/Tasks/GoToSimplyBookSystemTask.php:29
    6666msgid "SimplyBook.me"
     
    6868
    6969#. translators: %1$d is replaced by the amount of bookings, %2$ and %23$ are replaced with opening and closing a tag containing hyperlink
    70 #: app/Controllers/ReviewController.php:52
     70#: app/Controllers/ReviewController.php:53
    7171msgid "Hi, SimplyBook.me has helped you reach %1$d bookings in the last 30 days. If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %2$smessage%3$s."
    7272msgstr ""
    7373
    74 #: app/Controllers/ScheduleController.php:16
     74#: app/Controllers/ScheduleController.php:19
    7575msgid "Once every day"
    7676msgstr ""
    7777
    78 #: app/Controllers/TrialExpirationController.php:50
     78#: app/Controllers/TrialExpirationController.php:51
    7979msgid "Your free SimplyBook.me trial period has expired. Discover which plans best suit your site to continue gathering bookings!"
    8080msgstr ""
    8181
    8282#. translators: %d is replaced by the number of days remaining
    83 #: app/Controllers/TrialExpirationController.php:55
     83#: app/Controllers/TrialExpirationController.php:56
    8484msgid "Your free SimplyBook.me trial period will expire in %d days. Discover which plans best suit your site to continue gathering bookings!"
    8585msgstr ""
     
    9696#: app/Features/Notifications/Notices/AddMandatoryProviderNotice.php:47
    9797#: react/build/18.dda60173f985be980376.js:1
    98 #: react/build/107.00e9e978ad301065b8c0.js:1
     98#: react/build/107.e36c77fdbbf228e1331a.js:1
    9999#: react/build/167.e823be3a69b27a68a9c9.js:1
    100100#: react/build/249.307f4b603f01b9c80926.js:1
     
    118118#: app/Features/TaskManagement/Tasks/AddMandatoryServiceTask.php:39
    119119#: react/build/18.dda60173f985be980376.js:1
    120 #: react/build/107.00e9e978ad301065b8c0.js:1
     120#: react/build/107.e36c77fdbbf228e1331a.js:1
    121121#: react/build/167.e823be3a69b27a68a9c9.js:1
    122122#: react/build/249.307f4b603f01b9c80926.js:1
     
    133133
    134134#: app/Features/Notifications/Notices/FailedAuthenticationNotice.php:31
    135 msgid "Weve lost connection to your SimplyBook.me account. Please log out and sign in again to reconnect."
     135msgid "We've lost connection to your SimplyBook.me account. Please log out and sign in again to reconnect."
    136136msgstr ""
    137137
     
    157157msgstr ""
    158158
    159 #: app/Features/Notifications/Notices/PublishWidgetNotice.php:39
     159#: app/Features/Notifications/Notices/PublishWidgetNotice.php:37
    160160msgid "No booking widget detected!"
    161161msgstr ""
    162162
    163 #: app/Features/Notifications/Notices/PublishWidgetNotice.php:47
    164 msgid "It seems that you havent published the booking widget on the front-end of your site. Please use the shortcode or Gutenberg Widget to create your booking page to accept bookings!"
     163#: app/Features/Notifications/Notices/PublishWidgetNotice.php:45
     164msgid "It seems that you haven't published the booking widget on the front-end of your site. Please use the shortcode or Gutenberg Widget to create your booking page to accept bookings!"
    165165msgstr ""
    166166
    167167#: app/Features/Onboarding/OnboardingController.php:140
    168168#: app/Features/Onboarding/OnboardingController.php:282
    169 #: app/Features/Onboarding/OnboardingController.php:324
     169#: app/Features/Onboarding/OnboardingController.php:322
    170170msgid "Please fill in all fields."
    171171msgstr ""
    172172
    173 #: app/Features/Onboarding/OnboardingController.php:164
     173#: app/Features/Onboarding/OnboardingController.php:163
    174174msgid "Please verify you're not a robot."
    175175msgstr ""
    176176
    177 #: app/Features/Onboarding/OnboardingController.php:168
     177#: app/Features/Onboarding/OnboardingController.php:167
    178178msgid "Please enter the confirmation code."
    179179msgstr ""
    180180
    181 #: app/Features/Onboarding/OnboardingController.php:207
     181#: app/Features/Onboarding/OnboardingController.php:208
    182182msgid "Something went wrong while saving the widget style settings. Please try again."
    183183msgstr ""
    184184
    185 #: app/Features/Onboarding/OnboardingController.php:212
     185#: app/Features/Onboarding/OnboardingController.php:214
    186186msgid "Successfully saved widget style settings"
    187187msgstr ""
    188188
    189 #: app/Features/Onboarding/OnboardingController.php:238
     189#: app/Features/Onboarding/OnboardingController.php:239
    190190msgid "Calendar page title should be available if you choose to generate this page."
    191191msgstr ""
    192192
    193 #: app/Features/Onboarding/OnboardingController.php:301
     193#: app/Features/Onboarding/OnboardingController.php:299
    194194msgid "Unknown error occurred, please verify your credentials."
    195195msgstr ""
    196196
    197 #: app/Features/Onboarding/OnboardingController.php:308
     197#: app/Features/Onboarding/OnboardingController.php:306
    198198msgid "Login successful."
    199199msgstr ""
    200200
    201 #: app/Features/Onboarding/OnboardingController.php:341
     201#: app/Features/Onboarding/OnboardingController.php:339
    202202msgid "Unknown 2FA error occurred, please verify your credentials."
    203203msgstr ""
    204204
    205 #: app/Features/Onboarding/OnboardingController.php:346
     205#: app/Features/Onboarding/OnboardingController.php:344
    206206msgid "Successfully authenticated user"
    207207msgstr ""
    208208
    209 #: app/Features/Onboarding/OnboardingController.php:411
     209#: app/Features/Onboarding/OnboardingController.php:409
    210210msgid "Successfully requested SMS code"
    211211msgstr ""
    212212
    213 #: app/Features/Onboarding/OnboardingController.php:423
     213#: app/Features/Onboarding/OnboardingController.php:421
    214214msgid "Successfully finished onboarding!"
    215215msgstr ""
    216216
    217 #: app/Features/Onboarding/OnboardingController.php:427
     217#: app/Features/Onboarding/OnboardingController.php:425
    218218msgid "An error occurred while finishing the onboarding process"
    219219msgstr ""
    220220
    221 #: app/Features/Onboarding/OnboardingController.php:441
     221#: app/Features/Onboarding/OnboardingController.php:439
    222222msgid "Successfully removed all previous data."
    223223msgstr ""
    224224
    225 #: app/Features/Onboarding/OnboardingController.php:444
     225#: app/Features/Onboarding/OnboardingController.php:442
    226226msgid "An error occurred while trying to remove previous data."
    227227msgstr ""
    228228
    229 #: app/Features/Onboarding/OnboardingService.php:79
     229#: app/Features/Onboarding/OnboardingService.php:80
    230230msgid "Please enter a valid email address and accept the terms and conditions"
    231231msgstr ""
    232232
    233 #: app/Features/TaskManagement/Tasks/AbstractTask.php:207
     233#: app/Features/TaskManagement/Tasks/AbstractTask.php:224
    234234msgid "Premium"
    235235msgstr ""
    236236
    237 #: app/Features/TaskManagement/Tasks/AbstractTask.php:211
     237#: app/Features/TaskManagement/Tasks/AbstractTask.php:228
    238238msgid "Special feature"
    239239msgstr ""
     
    270270msgstr ""
    271271
     272#. translators: 1: discount percentage, 2: promo code
     273#: app/Features/TaskManagement/Tasks/BlackFridayTask.php:33
     274msgid "Black Friday sale! Get %1$s Off SimplyBook.me with code %2$s"
     275msgstr ""
     276
     277#: app/Features/TaskManagement/Tasks/BlackFridayTask.php:46
     278msgid "Claim discount"
     279msgstr ""
     280
    272281#: app/Features/TaskManagement/Tasks/CustomizeDesignTask.php:19
    273282msgid "Customize your booking widget"
     
    279288
    280289#: app/Features/TaskManagement/Tasks/FailedAuthenticationTask.php:27
    281 msgid "Weve lost connection to your SimplyBook.me account. Reconnect by logging out via the general settings."
     290msgid "We've lost connection to your SimplyBook.me account. Reconnect by logging out via the general settings."
    282291msgstr ""
    283292
     
    306315#: app/Features/TaskManagement/Tasks/TrialExpiredTask.php:45
    307316#: react/build/18.dda60173f985be980376.js:1
    308 #: react/build/79.712c746b580f9980027a.js:1
    309 #: react/build/107.00e9e978ad301065b8c0.js:1
     317#: react/build/79.60f8a3c25a3089f47e58.js:1
     318#: react/build/107.e36c77fdbbf228e1331a.js:1
    310319#: react/build/167.e823be3a69b27a68a9c9.js:1
    311320#: react/build/249.307f4b603f01b9c80926.js:1
     
    325334msgstr ""
    326335
    327 #: app/Features/TaskManagement/Tasks/PublishWidgetTask.php:47
     336#: app/Features/TaskManagement/Tasks/PublishWidgetTask.php:45
    328337msgid "Publish the booking widget on the front-end of your site."
    329338msgstr ""
    330339
    331 #: app/Features/TaskManagement/Tasks/PublishWidgetTask.php:57
     340#: app/Features/TaskManagement/Tasks/PublishWidgetTask.php:55
    332341msgid "Show shortcodes"
    333342msgstr ""
     
    337346msgstr ""
    338347
    339 #: app/Http/ApiClient.php:599
    340 #: app/Http/ApiClient.php:807
     348#: app/Http/ApiClient.php:614
     349#: app/Http/ApiClient.php:803
    341350msgid "You are not authorized to do this."
    342351msgstr ""
    343352
    344 #: app/Http/ApiClient.php:605
     353#: app/Http/ApiClient.php:620
    345354msgid "Too many attempts to register company, please try again in a minute."
    346355msgstr ""
    347356
    348 #: app/Http/ApiClient.php:619
     357#: app/Http/ApiClient.php:634
    349358msgid "Please fill in all company data."
    350359msgstr ""
    351360
    352 #: app/Http/ApiClient.php:664
     361#: app/Http/ApiClient.php:679
    353362msgid "Something went wrong while registering your company. Please try again."
    354363msgstr ""
    355364
    356 #: app/Http/ApiClient.php:676
     365#: app/Http/ApiClient.php:691
    357366msgid "Company successfully registered."
    358367msgstr ""
    359368
    360 #: app/Http/ApiClient.php:709
     369#: app/Http/ApiClient.php:724
    361370msgid "The company name is not allowed. Please change the company name."
    362371msgstr ""
    363372
    364 #: app/Http/ApiClient.php:717
     373#: app/Http/ApiClient.php:732
    365374msgid "Unknown error encountered while registering your company. Please try again."
    366375msgstr ""
    367376
    368 #: app/Http/ApiClient.php:815
     377#: app/Http/ApiClient.php:811
    369378msgid "Something went wrong, are you sure you started the company registration?"
    370379msgstr ""
    371380
    372 #: app/Http/ApiClient.php:834
     381#: app/Http/ApiClient.php:830
    373382msgid "Something went wrong while confirming your email. Please try again."
    374383msgstr ""
    375384
     385#: app/Http/ApiClient.php:838
     386msgid "Email successfully confirmed."
     387msgstr ""
     388
    376389#: app/Http/ApiClient.php:842
    377 msgid "Email successfully confirmed."
    378 msgstr ""
    379 
    380 #: app/Http/ApiClient.php:846
    381390msgid "Unknown error encountered while confirming your email. Please try again."
    382391msgstr ""
    383392
    384 #: app/Http/ApiClient.php:848
     393#: app/Http/ApiClient.php:844
    385394msgid "This confirmation code is not valid."
    386395msgstr ""
    387396
    388 #: app/Http/ApiClient.php:1243
     397#: app/Http/ApiClient.php:1234
    389398msgid "Login failed! Please try again later."
    390399msgstr ""
    391400
    392 #: app/Http/ApiClient.php:1246
     401#: app/Http/ApiClient.php:1237
    393402msgid "Invalid response from SimplyBook.me"
    394403msgstr ""
    395404
    396 #: app/Http/ApiClient.php:1299
     405#: app/Http/ApiClient.php:1290
    397406msgid "Two factor authentication failed! Please try again later."
    398407msgstr ""
    399408
    400 #: app/Http/ApiClient.php:1302
     409#: app/Http/ApiClient.php:1293
    401410msgid "Invalid 2FA response from SimplyBook.me"
    402411msgstr ""
    403412
     413#: app/Http/ApiClient.php:1318
     414msgid "No error received from remote."
     415msgstr ""
     416
     417#: app/Http/ApiClient.php:1325
     418msgid "Invalid login or password, please try again."
     419msgstr ""
     420
    404421#: app/Http/ApiClient.php:1327
    405 msgid "No error received from remote."
     422msgid "Incorrect 2FA authentication code, please try again."
     423msgstr ""
     424
     425#: app/Http/ApiClient.php:1331
     426msgid "Too many login attempts. Verify your credentials and try again in a few minutes."
    406427msgstr ""
    407428
    408429#: app/Http/ApiClient.php:1334
    409 msgid "Invalid login or password, please try again."
    410 msgstr ""
    411 
    412 #: app/Http/ApiClient.php:1336
    413 msgid "Incorrect 2FA authentication code, please try again."
    414 msgstr ""
    415 
    416 #: app/Http/ApiClient.php:1340
    417 msgid "Too many login attempts. Verify your credentials and try again in a few minutes."
    418 msgstr ""
    419 
    420 #: app/Http/ApiClient.php:1343
    421430msgid "Could not find a company associated with that company login."
    422431msgstr ""
    423432
    424 #: app/Http/ApiClient.php:1346
     433#: app/Http/ApiClient.php:1337
    425434msgid "Authentication failed, please verify your credentials."
    426435msgstr ""
    427436
    428 #: app/Http/ApiClient.php:1423
     437#: app/Http/ApiClient.php:1414
    429438#: react/build/843.f6b4fb618126e6186962.js:1
    430439#: react/src/components/Modals/SignInModal.jsx:15
     
    432441msgstr ""
    433442
    434 #: app/Http/ApiClient.php:1424
     443#: app/Http/ApiClient.php:1415
    435444msgid "SMS"
    436445msgstr ""
    437446
    438 #: app/Http/ApiClient.php:1430
     447#: app/Http/ApiClient.php:1421
    439448msgid "Unknown 2FA provider"
    440449msgstr ""
    441450
    442 #: app/Http/Endpoints/AbstractCrudEndpoint.php:68
    443 #: app/Http/Endpoints/AbstractCrudEndpoint.php:126
     451#: app/Http/Endpoints/AbstractCrudEndpoint.php:69
     452#: app/Http/Endpoints/AbstractCrudEndpoint.php:131
    444453msgid "Method not allowed"
    445454msgstr ""
     
    449458msgstr ""
    450459
    451 #: app/Http/Endpoints/AbstractCrudEndpoint.php:103
    452 #: app/Http/Endpoints/AbstractCrudEndpoint.php:164
    453 msgid "successfully saved!"
    454 msgstr ""
    455 
    456 #: app/Http/Endpoints/AbstractCrudEndpoint.php:144
     460#. translators: %s is either 'Service' or 'Service Provider'
     461#: app/Http/Endpoints/AbstractCrudEndpoint.php:105
     462#: app/Http/Endpoints/AbstractCrudEndpoint.php:171
     463msgid "%s successfully saved!"
     464msgstr ""
     465
     466#: app/Http/Endpoints/AbstractCrudEndpoint.php:149
    457467msgid "Entity not found!"
    458468msgstr ""
    459469
    460 #: app/Http/Endpoints/AbstractCrudEndpoint.php:181
     470#: app/Http/Endpoints/AbstractCrudEndpoint.php:191
    461471msgid "Something went wrong while deleting."
    462472msgstr ""
    463473
    464 #: app/Http/Endpoints/AbstractCrudEndpoint.php:205
     474#: app/Http/Endpoints/AbstractCrudEndpoint.php:215
    465475msgid "An unknown error occurred. Please try again later."
    466476msgstr ""
    467477
    468 #: app/Http/Endpoints/AbstractCrudEndpoint.php:235
     478#: app/Http/Endpoints/AbstractCrudEndpoint.php:245
    469479msgid "An unknown error occurred while saving, please try again."
    470480msgstr ""
    471481
    472 #: app/Http/Endpoints/AbstractCrudEndpoint.php:243
     482#: app/Http/Endpoints/AbstractCrudEndpoint.php:253
    473483msgid "An error occurred while saving, please try again."
    474484msgstr ""
    475485
    476 #: app/Http/Endpoints/BlockEndpoints.php:120
    477 #: app/Support/Widgets/ElementorWidget.php:206
     486#: app/Http/Endpoints/BlockEndpoints.php:121
     487#: app/Support/Widgets/ElementorWidget.php:210
    478488msgid "Any provider"
    479489msgstr ""
    480490
    481 #: app/Http/Endpoints/LogOutEndpoint.php:51
     491#: app/Http/Endpoints/LogOutEndpoint.php:52
    482492msgid "User prevented logout."
    483493msgstr ""
    484494
    485 #: app/Http/Endpoints/LogOutEndpoint.php:55
     495#: app/Http/Endpoints/LogOutEndpoint.php:56
    486496msgid "User is logged out and will be redirected to onboarding."
    487497msgstr ""
    488498
    489 #: app/Http/Endpoints/LogOutEndpoint.php:57
     499#: app/Http/Endpoints/LogOutEndpoint.php:58
    490500msgid "Failed to log out user."
    491501msgstr ""
    492502
    493 #: app/Http/Endpoints/NoticesDismissEndpoint.php:65
     503#: app/Http/Endpoints/NoticesDismissEndpoint.php:66
    494504msgid "Failed to dismiss notice."
    495505msgstr ""
    496506
    497 #: app/Http/Endpoints/NoticesDismissEndpoint.php:73
     507#: app/Http/Endpoints/NoticesDismissEndpoint.php:74
    498508msgid "Notice dismissed successfully."
    499509msgstr ""
     
    507517msgstr ""
    508518
    509 #: app/Http/Entities/AbstractEntity.php:263
     519#: app/Http/Entities/AbstractEntity.php:284
    510520msgid "Field is required."
    511521msgstr ""
    512522
    513 #: app/Http/Entities/Service.php:62
     523#: app/Http/Entities/Service.php:45
     524#: app/Support/Widgets/ElementorWidget.php:105
     525#: react/build/79.60f8a3c25a3089f47e58.js:1
     526msgid "Service"
     527msgstr ""
     528
     529#: app/Http/Entities/Service.php:71
    514530msgid "Duration invalid. Please enter a valid number that is a multiple of your selected timeframe."
    515531msgstr ""
    516532
    517 #: app/Http/Entities/Service.php:63
     533#: app/Http/Entities/Service.php:72
    518534msgid "Duration invalid. Please enter a valid number between 5 and 1435."
    519535msgstr ""
    520536
    521 #: app/Http/Entities/ServiceProvider.php:65
     537#: app/Http/Entities/ServiceProvider.php:48
     538#: app/Support/Widgets/ElementorWidget.php:121
     539#: react/build/79.60f8a3c25a3089f47e58.js:1
     540msgid "Service Provider"
     541msgstr ""
     542
     543#: app/Http/Entities/ServiceProvider.php:74
    522544msgid "Phone format invalid. Please enter a valid phone number with country code (e.g., +31 123 456 789)"
    523545msgstr ""
    524546
    525 #: app/Http/Entities/ServiceProvider.php:66
     547#: app/Http/Entities/ServiceProvider.php:75
    526548msgid "Phone format invalid. Please enter a valid phone number without using letters."
    527549msgstr ""
    528550
    529 #: app/Http/Entities/ServiceProvider.php:69
    530 #: app/Http/Entities/ServiceProvider.php:70
    531 #: app/Http/Entities/ServiceProvider.php:71
     551#: app/Http/Entities/ServiceProvider.php:78
     552#: app/Http/Entities/ServiceProvider.php:79
     553#: app/Http/Entities/ServiceProvider.php:80
    532554msgid "The email address is invalid. Please verify your input and try again."
    533555msgstr ""
    534556
    535 #: app/Http/Entities/ServiceProvider.php:72
     557#: app/Http/Entities/ServiceProvider.php:81
    536558msgid "The email address can only be changed once per day."
    537559msgstr ""
     
    545567msgstr ""
    546568
    547 #: app/Support/Builders/WidgetScriptBuilder.php:248
     569#: app/Support/Builders/WidgetScriptBuilder.php:255
    548570msgid "This is a demo SimplyBook.me widget."
    549571msgstr ""
    550572
    551573#. translators: %1$s is the opening HTML tag, %2$s is the closing HTML tag
    552 #: app/Support/Builders/WidgetScriptBuilder.php:253
     574#: app/Support/Builders/WidgetScriptBuilder.php:260
    553575msgid "You can configure the plugin settings to display your customized widget %1$shere%2$s."
    554576msgstr ""
    555577
    556 #: app/Support/Builders/WidgetScriptBuilder.php:260
     578#: app/Support/Builders/WidgetScriptBuilder.php:267
    557579msgid "Notice"
    558580msgstr ""
    559581
    560 #: app/Support/Widgets/ElementorWidget.php:36
     582#: app/Support/Widgets/ElementorWidget.php:39
    561583#: assets/block/build/index.js:1
    562584#: assets/block/src/edit.js:157
     
    565587msgstr ""
    566588
    567 #: app/Support/Widgets/ElementorWidget.php:63
     589#: app/Support/Widgets/ElementorWidget.php:69
    568590msgid "SimplyBook.me Settings"
    569591msgstr ""
    570592
    571 #: app/Support/Widgets/ElementorWidget.php:99
    572 #: react/build/79.712c746b580f9980027a.js:1
    573 msgid "Service"
    574 msgstr ""
    575 
    576 #: app/Support/Widgets/ElementorWidget.php:115
    577 #: react/build/79.712c746b580f9980027a.js:1
    578 msgid "Service Provider"
    579 msgstr ""
    580 
    581 #: app/Support/Widgets/ElementorWidget.php:136
     593#: app/Support/Widgets/ElementorWidget.php:141
    582594msgid "Location"
    583595msgstr ""
    584596
    585 #: app/Support/Widgets/ElementorWidget.php:157
     597#: app/Support/Widgets/ElementorWidget.php:161
    586598msgid "Service Category"
    587599msgstr ""
    588600
    589 #: app/Support/Widgets/ElementorWidget.php:178
     601#: app/Support/Widgets/ElementorWidget.php:182
    590602msgid "Select a service"
    591603msgstr ""
    592604
    593 #: app/Support/Widgets/ElementorWidget.php:195
     605#: app/Support/Widgets/ElementorWidget.php:199
    594606msgid "Select a service provider"
    595607msgstr ""
    596608
    597 #: app/Support/Widgets/ElementorWidget.php:221
     609#: app/Support/Widgets/ElementorWidget.php:225
    598610msgid "Select a location"
    599611msgstr ""
    600612
    601 #: app/Support/Widgets/ElementorWidget.php:237
     613#: app/Support/Widgets/ElementorWidget.php:241
    602614msgid "Select a category"
    603615msgstr ""
    604616
    605 #: app/Support/Widgets/ElementorWidget.php:307
     617#: app/Support/Widgets/ElementorWidget.php:311
    606618msgid "Please log in to SimplyBook.me to use this widget."
    607619msgstr ""
    608620
    609 #: app/Support/Widgets/ElementorWidget.php:309
     621#: app/Support/Widgets/ElementorWidget.php:313
    610622msgid "Go to the SimplyBook.me dashboard"
    611623msgstr ""
     
    17531765
    17541766#: config/menus.php:24
    1755 #: react/build/79.712c746b580f9980027a.js:1
     1767#: react/build/79.60f8a3c25a3089f47e58.js:1
    17561768msgid "Service Providers"
    17571769msgstr ""
     
    17781790
    17791791#: config/menus.php:71
    1780 #: react/build/107.00e9e978ad301065b8c0.js:1
     1792#: react/build/107.e36c77fdbbf228e1331a.js:1
    17811793msgid "Notifications"
    17821794msgstr ""
     
    17871799
    17881800#: config/menus.php:81
    1789 #: react/build/79.712c746b580f9980027a.js:1
     1801#: react/build/79.60f8a3c25a3089f47e58.js:1
    17901802msgid "Bookings"
    17911803msgstr ""
     
    19031915#: assets/block/build/index.js:1
    19041916#: assets/block/src/setting.modal.js:75
    1905 #: react/build/107.00e9e978ad301065b8c0.js:1
     1917#: react/build/107.e36c77fdbbf228e1331a.js:1
    19061918#: react/build/809.c849f787f31f82f6d37b.js:1
    19071919#: react/src/components/Forms/FormFooter.jsx:116
     
    19291941#: assets/block/build/index.js:1
    19301942#: assets/block/src/edit.js:81
    1931 #: react/build/107.00e9e978ad301065b8c0.js:1
     1943#: react/build/107.e36c77fdbbf228e1331a.js:1
    19321944#: react/build/809.c849f787f31f82f6d37b.js:1
    19331945#: assets/block/build/index.js:59
     
    19721984
    19731985#: react/build/18.dda60173f985be980376.js:1
    1974 #: react/build/79.712c746b580f9980027a.js:1
    1975 #: react/build/107.00e9e978ad301065b8c0.js:1
     1986#: react/build/79.60f8a3c25a3089f47e58.js:1
     1987#: react/build/107.e36c77fdbbf228e1331a.js:1
    19761988#: react/build/167.e823be3a69b27a68a9c9.js:1
    19771989#: react/build/249.307f4b603f01b9c80926.js:1
     
    19841996
    19851997#: react/build/18.dda60173f985be980376.js:1
    1986 #: react/build/79.712c746b580f9980027a.js:1
    1987 #: react/build/107.00e9e978ad301065b8c0.js:1
     1998#: react/build/79.60f8a3c25a3089f47e58.js:1
     1999#: react/build/107.e36c77fdbbf228e1331a.js:1
    19882000#: react/build/167.e823be3a69b27a68a9c9.js:1
    19892001#: react/build/249.307f4b603f01b9c80926.js:1
     
    19962008
    19972009#: react/build/18.dda60173f985be980376.js:1
    1998 #: react/build/79.712c746b580f9980027a.js:1
    1999 #: react/build/107.00e9e978ad301065b8c0.js:1
     2010#: react/build/79.60f8a3c25a3089f47e58.js:1
     2011#: react/build/107.e36c77fdbbf228e1331a.js:1
    20002012#: react/build/167.e823be3a69b27a68a9c9.js:1
    20012013#: react/build/249.307f4b603f01b9c80926.js:1
     
    20082020
    20092021#: react/build/18.dda60173f985be980376.js:1
    2010 #: react/build/79.712c746b580f9980027a.js:1
    2011 #: react/build/107.00e9e978ad301065b8c0.js:1
     2022#: react/build/79.60f8a3c25a3089f47e58.js:1
     2023#: react/build/107.e36c77fdbbf228e1331a.js:1
    20122024#: react/build/167.e823be3a69b27a68a9c9.js:1
    20132025#: react/build/249.307f4b603f01b9c80926.js:1
     
    20202032
    20212033#: react/build/18.dda60173f985be980376.js:1
    2022 #: react/build/79.712c746b580f9980027a.js:1
    2023 #: react/build/107.00e9e978ad301065b8c0.js:1
     2034#: react/build/79.60f8a3c25a3089f47e58.js:1
     2035#: react/build/107.e36c77fdbbf228e1331a.js:1
    20242036#: react/build/167.e823be3a69b27a68a9c9.js:1
    20252037#: react/build/249.307f4b603f01b9c80926.js:1
     
    20342046
    20352047#: react/build/18.dda60173f985be980376.js:1
    2036 #: react/build/107.00e9e978ad301065b8c0.js:1
     2048#: react/build/107.e36c77fdbbf228e1331a.js:1
    20372049#: react/build/167.e823be3a69b27a68a9c9.js:1
    20382050#: react/build/249.307f4b603f01b9c80926.js:1
     
    20442056
    20452057#: react/build/18.dda60173f985be980376.js:1
    2046 #: react/build/107.00e9e978ad301065b8c0.js:1
     2058#: react/build/107.e36c77fdbbf228e1331a.js:1
    20472059#: react/build/167.e823be3a69b27a68a9c9.js:1
    20482060#: react/build/249.307f4b603f01b9c80926.js:1
     
    20542066
    20552067#: react/build/18.dda60173f985be980376.js:1
    2056 #: react/build/107.00e9e978ad301065b8c0.js:1
     2068#: react/build/107.e36c77fdbbf228e1331a.js:1
    20572069#: react/build/167.e823be3a69b27a68a9c9.js:1
    20582070#: react/build/249.307f4b603f01b9c80926.js:1
     
    20642076
    20652077#: react/build/18.dda60173f985be980376.js:1
    2066 #: react/build/107.00e9e978ad301065b8c0.js:1
     2078#: react/build/107.e36c77fdbbf228e1331a.js:1
    20672079#: react/build/167.e823be3a69b27a68a9c9.js:1
    20682080#: react/build/249.307f4b603f01b9c80926.js:1
     
    20742086
    20752087#: react/build/18.dda60173f985be980376.js:1
    2076 #: react/build/107.00e9e978ad301065b8c0.js:1
     2088#: react/build/107.e36c77fdbbf228e1331a.js:1
    20772089#: react/build/167.e823be3a69b27a68a9c9.js:1
    20782090#: react/build/249.307f4b603f01b9c80926.js:1
     
    20842096
    20852097#: react/build/18.dda60173f985be980376.js:1
    2086 #: react/build/107.00e9e978ad301065b8c0.js:1
     2098#: react/build/107.e36c77fdbbf228e1331a.js:1
    20872099#: react/build/167.e823be3a69b27a68a9c9.js:1
    20882100#: react/build/249.307f4b603f01b9c80926.js:1
     
    20942106
    20952107#: react/build/18.dda60173f985be980376.js:1
    2096 #: react/build/107.00e9e978ad301065b8c0.js:1
     2108#: react/build/107.e36c77fdbbf228e1331a.js:1
    20972109#: react/build/167.e823be3a69b27a68a9c9.js:1
    20982110#: react/build/249.307f4b603f01b9c80926.js:1
     
    21042116
    21052117#: react/build/18.dda60173f985be980376.js:1
    2106 #: react/build/107.00e9e978ad301065b8c0.js:1
     2118#: react/build/107.e36c77fdbbf228e1331a.js:1
    21072119#: react/build/167.e823be3a69b27a68a9c9.js:1
    21082120#: react/build/249.307f4b603f01b9c80926.js:1
     
    21142126
    21152127#: react/build/18.dda60173f985be980376.js:1
    2116 #: react/build/107.00e9e978ad301065b8c0.js:1
     2128#: react/build/107.e36c77fdbbf228e1331a.js:1
    21172129#: react/build/167.e823be3a69b27a68a9c9.js:1
    21182130#: react/build/249.307f4b603f01b9c80926.js:1
     
    21252137
    21262138#: react/build/18.dda60173f985be980376.js:1
    2127 #: react/build/107.00e9e978ad301065b8c0.js:1
     2139#: react/build/107.e36c77fdbbf228e1331a.js:1
    21282140#: react/build/167.e823be3a69b27a68a9c9.js:1
    21292141#: react/build/249.307f4b603f01b9c80926.js:1
     
    21362148
    21372149#: react/build/18.dda60173f985be980376.js:1
    2138 #: react/build/107.00e9e978ad301065b8c0.js:1
     2150#: react/build/107.e36c77fdbbf228e1331a.js:1
    21392151#: react/build/167.e823be3a69b27a68a9c9.js:1
    21402152#: react/build/249.307f4b603f01b9c80926.js:1
     
    21472159
    21482160#: react/build/18.dda60173f985be980376.js:1
    2149 #: react/build/107.00e9e978ad301065b8c0.js:1
     2161#: react/build/107.e36c77fdbbf228e1331a.js:1
    21502162#: react/build/167.e823be3a69b27a68a9c9.js:1
    21512163#: react/build/249.307f4b603f01b9c80926.js:1
     
    21582170
    21592171#: react/build/18.dda60173f985be980376.js:1
    2160 #: react/build/107.00e9e978ad301065b8c0.js:1
     2172#: react/build/107.e36c77fdbbf228e1331a.js:1
    21612173#: react/build/167.e823be3a69b27a68a9c9.js:1
    21622174#: react/build/249.307f4b603f01b9c80926.js:1
     
    21692181
    21702182#: react/build/18.dda60173f985be980376.js:1
    2171 #: react/build/79.712c746b580f9980027a.js:1
    2172 #: react/build/107.00e9e978ad301065b8c0.js:1
     2183#: react/build/79.60f8a3c25a3089f47e58.js:1
     2184#: react/build/107.e36c77fdbbf228e1331a.js:1
    21732185#: react/build/167.e823be3a69b27a68a9c9.js:1
    21742186#: react/build/249.307f4b603f01b9c80926.js:1
     
    21812193
    21822194#: react/build/18.dda60173f985be980376.js:1
    2183 #: react/build/107.00e9e978ad301065b8c0.js:1
     2195#: react/build/107.e36c77fdbbf228e1331a.js:1
    21842196#: react/build/167.e823be3a69b27a68a9c9.js:1
    21852197#: react/build/249.307f4b603f01b9c80926.js:1
     
    21922204
    21932205#: react/build/18.dda60173f985be980376.js:1
    2194 #: react/build/107.00e9e978ad301065b8c0.js:1
     2206#: react/build/107.e36c77fdbbf228e1331a.js:1
    21952207#: react/build/167.e823be3a69b27a68a9c9.js:1
    21962208#: react/build/249.307f4b603f01b9c80926.js:1
     
    22022214
    22032215#: react/build/18.dda60173f985be980376.js:1
    2204 #: react/build/107.00e9e978ad301065b8c0.js:1
     2216#: react/build/107.e36c77fdbbf228e1331a.js:1
    22052217#: react/build/167.e823be3a69b27a68a9c9.js:1
    22062218#: react/build/249.307f4b603f01b9c80926.js:1
     
    22132225#. Translators: %1$s and %2$s are placeholders for line breaks and bullet points
    22142226#: react/build/18.dda60173f985be980376.js:1
    2215 #: react/build/107.00e9e978ad301065b8c0.js:1
     2227#: react/build/107.e36c77fdbbf228e1331a.js:1
    22162228#: react/build/167.e823be3a69b27a68a9c9.js:1
    22172229#: react/build/249.307f4b603f01b9c80926.js:1
     
    22242236
    22252237#: react/build/18.dda60173f985be980376.js:1
    2226 #: react/build/107.00e9e978ad301065b8c0.js:1
     2238#: react/build/107.e36c77fdbbf228e1331a.js:1
    22272239#: react/build/167.e823be3a69b27a68a9c9.js:1
    22282240#: react/build/249.307f4b603f01b9c80926.js:1
     
    22362248
    22372249#: react/build/18.dda60173f985be980376.js:1
    2238 #: react/build/107.00e9e978ad301065b8c0.js:1
     2250#: react/build/107.e36c77fdbbf228e1331a.js:1
    22392251#: react/build/167.e823be3a69b27a68a9c9.js:1
    22402252#: react/build/249.307f4b603f01b9c80926.js:1
     
    22472259
    22482260#: react/build/18.dda60173f985be980376.js:1
    2249 #: react/build/107.00e9e978ad301065b8c0.js:1
     2261#: react/build/107.e36c77fdbbf228e1331a.js:1
    22502262#: react/build/167.e823be3a69b27a68a9c9.js:1
    22512263#: react/build/249.307f4b603f01b9c80926.js:1
     
    22572269
    22582270#: react/build/18.dda60173f985be980376.js:1
    2259 #: react/build/107.00e9e978ad301065b8c0.js:1
     2271#: react/build/107.e36c77fdbbf228e1331a.js:1
    22602272#: react/build/167.e823be3a69b27a68a9c9.js:1
    22612273#: react/build/249.307f4b603f01b9c80926.js:1
     
    22672279
    22682280#: react/build/18.dda60173f985be980376.js:1
    2269 #: react/build/107.00e9e978ad301065b8c0.js:1
     2281#: react/build/107.e36c77fdbbf228e1331a.js:1
    22702282#: react/build/167.e823be3a69b27a68a9c9.js:1
    22712283#: react/build/249.307f4b603f01b9c80926.js:1
     
    22772289
    22782290#: react/build/18.dda60173f985be980376.js:1
    2279 #: react/build/107.00e9e978ad301065b8c0.js:1
     2291#: react/build/107.e36c77fdbbf228e1331a.js:1
    22802292#: react/build/167.e823be3a69b27a68a9c9.js:1
    22812293#: react/build/249.307f4b603f01b9c80926.js:1
     
    22872299
    22882300#: react/build/18.dda60173f985be980376.js:1
    2289 #: react/build/107.00e9e978ad301065b8c0.js:1
     2301#: react/build/107.e36c77fdbbf228e1331a.js:1
    22902302#: react/build/167.e823be3a69b27a68a9c9.js:1
    22912303#: react/build/249.307f4b603f01b9c80926.js:1
     
    22972309
    22982310#: react/build/18.dda60173f985be980376.js:1
    2299 #: react/build/79.712c746b580f9980027a.js:1
    2300 #: react/build/107.00e9e978ad301065b8c0.js:1
     2311#: react/build/79.60f8a3c25a3089f47e58.js:1
     2312#: react/build/107.e36c77fdbbf228e1331a.js:1
    23012313#: react/build/167.e823be3a69b27a68a9c9.js:1
    23022314#: react/build/249.307f4b603f01b9c80926.js:1
     
    23102322
    23112323#: react/build/18.dda60173f985be980376.js:1
    2312 #: react/build/107.00e9e978ad301065b8c0.js:1
     2324#: react/build/107.e36c77fdbbf228e1331a.js:1
    23132325#: react/build/167.e823be3a69b27a68a9c9.js:1
    23142326#: react/build/249.307f4b603f01b9c80926.js:1
     
    23202332
    23212333#: react/build/18.dda60173f985be980376.js:1
    2322 #: react/build/107.00e9e978ad301065b8c0.js:1
     2334#: react/build/107.e36c77fdbbf228e1331a.js:1
    23232335#: react/build/167.e823be3a69b27a68a9c9.js:1
    23242336#: react/build/249.307f4b603f01b9c80926.js:1
     
    23302342
    23312343#: react/build/18.dda60173f985be980376.js:1
    2332 #: react/build/107.00e9e978ad301065b8c0.js:1
     2344#: react/build/107.e36c77fdbbf228e1331a.js:1
    23332345#: react/build/167.e823be3a69b27a68a9c9.js:1
    23342346#: react/build/249.307f4b603f01b9c80926.js:1
     
    23402352
    23412353#: react/build/18.dda60173f985be980376.js:1
    2342 #: react/build/107.00e9e978ad301065b8c0.js:1
     2354#: react/build/107.e36c77fdbbf228e1331a.js:1
    23432355#: react/build/167.e823be3a69b27a68a9c9.js:1
    23442356#: react/build/249.307f4b603f01b9c80926.js:1
     
    23502362
    23512363#: react/build/18.dda60173f985be980376.js:1
    2352 #: react/build/107.00e9e978ad301065b8c0.js:1
     2364#: react/build/107.e36c77fdbbf228e1331a.js:1
    23532365#: react/build/167.e823be3a69b27a68a9c9.js:1
    23542366#: react/build/249.307f4b603f01b9c80926.js:1
     
    23602372
    23612373#: react/build/18.dda60173f985be980376.js:1
    2362 #: react/build/107.00e9e978ad301065b8c0.js:1
     2374#: react/build/107.e36c77fdbbf228e1331a.js:1
    23632375#: react/build/167.e823be3a69b27a68a9c9.js:1
    23642376#: react/build/249.307f4b603f01b9c80926.js:1
     
    23702382
    23712383#: react/build/18.dda60173f985be980376.js:1
    2372 #: react/build/107.00e9e978ad301065b8c0.js:1
     2384#: react/build/107.e36c77fdbbf228e1331a.js:1
    23732385#: react/build/167.e823be3a69b27a68a9c9.js:1
    23742386#: react/build/249.307f4b603f01b9c80926.js:1
     
    23802392
    23812393#: react/build/18.dda60173f985be980376.js:1
    2382 #: react/build/107.00e9e978ad301065b8c0.js:1
     2394#: react/build/107.e36c77fdbbf228e1331a.js:1
    23832395#: react/build/167.e823be3a69b27a68a9c9.js:1
    23842396#: react/build/249.307f4b603f01b9c80926.js:1
     
    23902402
    23912403#: react/build/18.dda60173f985be980376.js:1
    2392 #: react/build/107.00e9e978ad301065b8c0.js:1
     2404#: react/build/107.e36c77fdbbf228e1331a.js:1
    23932405#: react/build/167.e823be3a69b27a68a9c9.js:1
    23942406#: react/build/249.307f4b603f01b9c80926.js:1
     
    24002412
    24012413#: react/build/18.dda60173f985be980376.js:1
    2402 #: react/build/107.00e9e978ad301065b8c0.js:1
     2414#: react/build/107.e36c77fdbbf228e1331a.js:1
    24032415#: react/build/167.e823be3a69b27a68a9c9.js:1
    24042416#: react/build/249.307f4b603f01b9c80926.js:1
     
    24102422
    24112423#: react/build/18.dda60173f985be980376.js:1
    2412 #: react/build/107.00e9e978ad301065b8c0.js:1
     2424#: react/build/107.e36c77fdbbf228e1331a.js:1
    24132425#: react/build/167.e823be3a69b27a68a9c9.js:1
    24142426#: react/build/249.307f4b603f01b9c80926.js:1
     
    24202432
    24212433#: react/build/18.dda60173f985be980376.js:1
    2422 #: react/build/107.00e9e978ad301065b8c0.js:1
     2434#: react/build/107.e36c77fdbbf228e1331a.js:1
    24232435#: react/build/167.e823be3a69b27a68a9c9.js:1
    24242436#: react/build/249.307f4b603f01b9c80926.js:1
     
    24302442
    24312443#: react/build/18.dda60173f985be980376.js:1
    2432 #: react/build/107.00e9e978ad301065b8c0.js:1
     2444#: react/build/107.e36c77fdbbf228e1331a.js:1
    24332445#: react/build/167.e823be3a69b27a68a9c9.js:1
    24342446#: react/build/249.307f4b603f01b9c80926.js:1
     
    24402452
    24412453#: react/build/18.dda60173f985be980376.js:1
    2442 #: react/build/107.00e9e978ad301065b8c0.js:1
     2454#: react/build/107.e36c77fdbbf228e1331a.js:1
    24432455#: react/build/167.e823be3a69b27a68a9c9.js:1
    24442456#: react/build/249.307f4b603f01b9c80926.js:1
     
    24502462
    24512463#: react/build/18.dda60173f985be980376.js:1
    2452 #: react/build/107.00e9e978ad301065b8c0.js:1
     2464#: react/build/107.e36c77fdbbf228e1331a.js:1
    24532465#: react/build/167.e823be3a69b27a68a9c9.js:1
    24542466#: react/build/249.307f4b603f01b9c80926.js:1
     
    24602472
    24612473#: react/build/18.dda60173f985be980376.js:1
    2462 #: react/build/107.00e9e978ad301065b8c0.js:1
     2474#: react/build/107.e36c77fdbbf228e1331a.js:1
    24632475#: react/build/167.e823be3a69b27a68a9c9.js:1
    24642476#: react/build/249.307f4b603f01b9c80926.js:1
     
    24762488
    24772489#: react/build/18.dda60173f985be980376.js:1
    2478 #: react/build/107.00e9e978ad301065b8c0.js:1
     2490#: react/build/107.e36c77fdbbf228e1331a.js:1
    24792491#: react/build/167.e823be3a69b27a68a9c9.js:1
    24802492#: react/build/249.307f4b603f01b9c80926.js:1
     
    24872499
    24882500#: react/build/18.dda60173f985be980376.js:1
    2489 #: react/build/107.00e9e978ad301065b8c0.js:1
     2501#: react/build/107.e36c77fdbbf228e1331a.js:1
    24902502#: react/build/167.e823be3a69b27a68a9c9.js:1
    24912503#: react/build/249.307f4b603f01b9c80926.js:1
     
    24982510
    24992511#: react/build/18.dda60173f985be980376.js:1
    2500 #: react/build/107.00e9e978ad301065b8c0.js:1
     2512#: react/build/107.e36c77fdbbf228e1331a.js:1
    25012513#: react/build/167.e823be3a69b27a68a9c9.js:1
    25022514#: react/build/249.307f4b603f01b9c80926.js:1
     
    25092521
    25102522#: react/build/18.dda60173f985be980376.js:1
    2511 #: react/build/107.00e9e978ad301065b8c0.js:1
     2523#: react/build/107.e36c77fdbbf228e1331a.js:1
    25122524#: react/build/167.e823be3a69b27a68a9c9.js:1
    25132525#: react/build/249.307f4b603f01b9c80926.js:1
     
    25202532
    25212533#: react/build/18.dda60173f985be980376.js:1
    2522 #: react/build/107.00e9e978ad301065b8c0.js:1
     2534#: react/build/107.e36c77fdbbf228e1331a.js:1
    25232535#: react/build/167.e823be3a69b27a68a9c9.js:1
    25242536#: react/build/249.307f4b603f01b9c80926.js:1
     
    25312543
    25322544#: react/build/18.dda60173f985be980376.js:1
    2533 #: react/build/107.00e9e978ad301065b8c0.js:1
     2545#: react/build/107.e36c77fdbbf228e1331a.js:1
    25342546#: react/build/167.e823be3a69b27a68a9c9.js:1
    25352547#: react/build/249.307f4b603f01b9c80926.js:1
     
    25422554
    25432555#: react/build/18.dda60173f985be980376.js:1
    2544 #: react/build/107.00e9e978ad301065b8c0.js:1
     2556#: react/build/107.e36c77fdbbf228e1331a.js:1
    25452557#: react/build/167.e823be3a69b27a68a9c9.js:1
    25462558#: react/build/249.307f4b603f01b9c80926.js:1
     
    25532565
    25542566#: react/build/18.dda60173f985be980376.js:1
    2555 #: react/build/107.00e9e978ad301065b8c0.js:1
     2567#: react/build/107.e36c77fdbbf228e1331a.js:1
    25562568#: react/build/167.e823be3a69b27a68a9c9.js:1
    25572569#: react/build/249.307f4b603f01b9c80926.js:1
     
    25642576
    25652577#: react/build/18.dda60173f985be980376.js:1
    2566 #: react/build/107.00e9e978ad301065b8c0.js:1
     2578#: react/build/107.e36c77fdbbf228e1331a.js:1
    25672579#: react/build/167.e823be3a69b27a68a9c9.js:1
    25682580#: react/build/249.307f4b603f01b9c80926.js:1
     
    25752587
    25762588#: react/build/18.dda60173f985be980376.js:1
    2577 #: react/build/107.00e9e978ad301065b8c0.js:1
     2589#: react/build/107.e36c77fdbbf228e1331a.js:1
    25782590#: react/build/167.e823be3a69b27a68a9c9.js:1
    25792591#: react/build/249.307f4b603f01b9c80926.js:1
     
    25862598
    25872599#: react/build/18.dda60173f985be980376.js:1
    2588 #: react/build/107.00e9e978ad301065b8c0.js:1
     2600#: react/build/107.e36c77fdbbf228e1331a.js:1
    25892601#: react/build/167.e823be3a69b27a68a9c9.js:1
    25902602#: react/build/249.307f4b603f01b9c80926.js:1
     
    26382650
    26392651#: react/build/18.dda60173f985be980376.js:1
    2640 #: react/build/79.712c746b580f9980027a.js:1
    2641 #: react/build/107.00e9e978ad301065b8c0.js:1
     2652#: react/build/79.60f8a3c25a3089f47e58.js:1
     2653#: react/build/107.e36c77fdbbf228e1331a.js:1
    26422654#: react/build/167.e823be3a69b27a68a9c9.js:1
    26432655#: react/build/249.307f4b603f01b9c80926.js:1
     
    26512663
    26522664#: react/build/18.dda60173f985be980376.js:1
    2653 #: react/build/79.712c746b580f9980027a.js:1
    2654 #: react/build/107.00e9e978ad301065b8c0.js:1
     2665#: react/build/79.60f8a3c25a3089f47e58.js:1
     2666#: react/build/107.e36c77fdbbf228e1331a.js:1
    26552667#: react/build/167.e823be3a69b27a68a9c9.js:1
    26562668#: react/build/249.307f4b603f01b9c80926.js:1
     
    26642676
    26652677#: react/build/18.dda60173f985be980376.js:1
    2666 #: react/build/79.712c746b580f9980027a.js:1
    2667 #: react/build/107.00e9e978ad301065b8c0.js:1
     2678#: react/build/79.60f8a3c25a3089f47e58.js:1
     2679#: react/build/107.e36c77fdbbf228e1331a.js:1
    26682680#: react/build/167.e823be3a69b27a68a9c9.js:1
    26692681#: react/build/249.307f4b603f01b9c80926.js:1
     
    26772689
    26782690#: react/build/18.dda60173f985be980376.js:1
    2679 #: react/build/79.712c746b580f9980027a.js:1
    2680 #: react/build/107.00e9e978ad301065b8c0.js:1
     2691#: react/build/79.60f8a3c25a3089f47e58.js:1
     2692#: react/build/107.e36c77fdbbf228e1331a.js:1
    26812693#: react/build/167.e823be3a69b27a68a9c9.js:1
    26822694#: react/build/249.307f4b603f01b9c80926.js:1
     
    26902702
    26912703#: react/build/18.dda60173f985be980376.js:1
    2692 #: react/build/79.712c746b580f9980027a.js:1
    2693 #: react/build/107.00e9e978ad301065b8c0.js:1
     2704#: react/build/79.60f8a3c25a3089f47e58.js:1
     2705#: react/build/107.e36c77fdbbf228e1331a.js:1
    26942706#: react/build/167.e823be3a69b27a68a9c9.js:1
    26952707#: react/build/249.307f4b603f01b9c80926.js:1
     
    27032715
    27042716#: react/build/18.dda60173f985be980376.js:1
    2705 #: react/build/79.712c746b580f9980027a.js:1
    2706 #: react/build/107.00e9e978ad301065b8c0.js:1
     2717#: react/build/79.60f8a3c25a3089f47e58.js:1
     2718#: react/build/107.e36c77fdbbf228e1331a.js:1
    27072719#: react/build/167.e823be3a69b27a68a9c9.js:1
    27082720#: react/build/249.307f4b603f01b9c80926.js:1
     
    27162728
    27172729#: react/build/18.dda60173f985be980376.js:1
    2718 #: react/build/79.712c746b580f9980027a.js:1
    2719 #: react/build/107.00e9e978ad301065b8c0.js:1
     2730#: react/build/79.60f8a3c25a3089f47e58.js:1
     2731#: react/build/107.e36c77fdbbf228e1331a.js:1
    27202732#: react/build/167.e823be3a69b27a68a9c9.js:1
    27212733#: react/build/249.307f4b603f01b9c80926.js:1
     
    27292741
    27302742#: react/build/18.dda60173f985be980376.js:1
    2731 #: react/build/79.712c746b580f9980027a.js:1
    2732 #: react/build/107.00e9e978ad301065b8c0.js:1
     2743#: react/build/79.60f8a3c25a3089f47e58.js:1
     2744#: react/build/107.e36c77fdbbf228e1331a.js:1
    27332745#: react/build/167.e823be3a69b27a68a9c9.js:1
    27342746#: react/build/249.307f4b603f01b9c80926.js:1
     
    27422754
    27432755#: react/build/18.dda60173f985be980376.js:1
    2744 #: react/build/79.712c746b580f9980027a.js:1
    2745 #: react/build/107.00e9e978ad301065b8c0.js:1
     2756#: react/build/79.60f8a3c25a3089f47e58.js:1
     2757#: react/build/107.e36c77fdbbf228e1331a.js:1
    27462758#: react/build/167.e823be3a69b27a68a9c9.js:1
    27472759#: react/build/249.307f4b603f01b9c80926.js:1
     
    27552767
    27562768#: react/build/18.dda60173f985be980376.js:1
    2757 #: react/build/79.712c746b580f9980027a.js:1
    2758 #: react/build/107.00e9e978ad301065b8c0.js:1
     2769#: react/build/79.60f8a3c25a3089f47e58.js:1
     2770#: react/build/107.e36c77fdbbf228e1331a.js:1
    27592771#: react/build/167.e823be3a69b27a68a9c9.js:1
    27602772#: react/build/249.307f4b603f01b9c80926.js:1
     
    27682780
    27692781#: react/build/18.dda60173f985be980376.js:1
    2770 #: react/build/79.712c746b580f9980027a.js:1
    2771 #: react/build/107.00e9e978ad301065b8c0.js:1
     2782#: react/build/79.60f8a3c25a3089f47e58.js:1
     2783#: react/build/107.e36c77fdbbf228e1331a.js:1
    27722784#: react/build/167.e823be3a69b27a68a9c9.js:1
    27732785#: react/build/249.307f4b603f01b9c80926.js:1
     
    27812793
    27822794#: react/build/18.dda60173f985be980376.js:1
    2783 #: react/build/79.712c746b580f9980027a.js:1
    2784 #: react/build/107.00e9e978ad301065b8c0.js:1
     2795#: react/build/79.60f8a3c25a3089f47e58.js:1
     2796#: react/build/107.e36c77fdbbf228e1331a.js:1
    27852797#: react/build/167.e823be3a69b27a68a9c9.js:1
    27862798#: react/build/249.307f4b603f01b9c80926.js:1
     
    27942806
    27952807#: react/build/18.dda60173f985be980376.js:1
    2796 #: react/build/79.712c746b580f9980027a.js:1
    2797 #: react/build/107.00e9e978ad301065b8c0.js:1
     2808#: react/build/79.60f8a3c25a3089f47e58.js:1
     2809#: react/build/107.e36c77fdbbf228e1331a.js:1
    27982810#: react/build/167.e823be3a69b27a68a9c9.js:1
    27992811#: react/build/249.307f4b603f01b9c80926.js:1
     
    28072819
    28082820#: react/build/18.dda60173f985be980376.js:1
    2809 #: react/build/79.712c746b580f9980027a.js:1
    2810 #: react/build/107.00e9e978ad301065b8c0.js:1
     2821#: react/build/79.60f8a3c25a3089f47e58.js:1
     2822#: react/build/107.e36c77fdbbf228e1331a.js:1
    28112823#: react/build/167.e823be3a69b27a68a9c9.js:1
    28122824#: react/build/249.307f4b603f01b9c80926.js:1
     
    28202832
    28212833#: react/build/18.dda60173f985be980376.js:1
    2822 #: react/build/79.712c746b580f9980027a.js:1
    2823 #: react/build/107.00e9e978ad301065b8c0.js:1
     2834#: react/build/79.60f8a3c25a3089f47e58.js:1
     2835#: react/build/107.e36c77fdbbf228e1331a.js:1
    28242836#: react/build/167.e823be3a69b27a68a9c9.js:1
    28252837#: react/build/249.307f4b603f01b9c80926.js:1
     
    28332845
    28342846#: react/build/18.dda60173f985be980376.js:1
    2835 #: react/build/79.712c746b580f9980027a.js:1
    2836 #: react/build/107.00e9e978ad301065b8c0.js:1
     2847#: react/build/79.60f8a3c25a3089f47e58.js:1
     2848#: react/build/107.e36c77fdbbf228e1331a.js:1
    28372849#: react/build/167.e823be3a69b27a68a9c9.js:1
    28382850#: react/build/249.307f4b603f01b9c80926.js:1
     
    28462858
    28472859#: react/build/18.dda60173f985be980376.js:1
    2848 #: react/build/79.712c746b580f9980027a.js:1
    2849 #: react/build/107.00e9e978ad301065b8c0.js:1
     2860#: react/build/79.60f8a3c25a3089f47e58.js:1
     2861#: react/build/107.e36c77fdbbf228e1331a.js:1
    28502862#: react/build/167.e823be3a69b27a68a9c9.js:1
    28512863#: react/build/249.307f4b603f01b9c80926.js:1
     
    28592871
    28602872#: react/build/18.dda60173f985be980376.js:1
    2861 #: react/build/79.712c746b580f9980027a.js:1
    2862 #: react/build/107.00e9e978ad301065b8c0.js:1
     2873#: react/build/79.60f8a3c25a3089f47e58.js:1
     2874#: react/build/107.e36c77fdbbf228e1331a.js:1
    28632875#: react/build/167.e823be3a69b27a68a9c9.js:1
    28642876#: react/build/249.307f4b603f01b9c80926.js:1
     
    28722884
    28732885#: react/build/18.dda60173f985be980376.js:1
    2874 #: react/build/79.712c746b580f9980027a.js:1
    2875 #: react/build/107.00e9e978ad301065b8c0.js:1
     2886#: react/build/79.60f8a3c25a3089f47e58.js:1
     2887#: react/build/107.e36c77fdbbf228e1331a.js:1
    28762888#: react/build/167.e823be3a69b27a68a9c9.js:1
    28772889#: react/build/249.307f4b603f01b9c80926.js:1
     
    28852897
    28862898#: react/build/18.dda60173f985be980376.js:1
    2887 #: react/build/79.712c746b580f9980027a.js:1
    2888 #: react/build/107.00e9e978ad301065b8c0.js:1
     2899#: react/build/79.60f8a3c25a3089f47e58.js:1
     2900#: react/build/107.e36c77fdbbf228e1331a.js:1
    28892901#: react/build/167.e823be3a69b27a68a9c9.js:1
    28902902#: react/build/249.307f4b603f01b9c80926.js:1
     
    28982910
    28992911#: react/build/18.dda60173f985be980376.js:1
    2900 #: react/build/79.712c746b580f9980027a.js:1
    2901 #: react/build/107.00e9e978ad301065b8c0.js:1
     2912#: react/build/79.60f8a3c25a3089f47e58.js:1
     2913#: react/build/107.e36c77fdbbf228e1331a.js:1
    29022914#: react/build/167.e823be3a69b27a68a9c9.js:1
    29032915#: react/build/249.307f4b603f01b9c80926.js:1
     
    29112923
    29122924#: react/build/18.dda60173f985be980376.js:1
    2913 #: react/build/79.712c746b580f9980027a.js:1
    2914 #: react/build/107.00e9e978ad301065b8c0.js:1
     2925#: react/build/79.60f8a3c25a3089f47e58.js:1
     2926#: react/build/107.e36c77fdbbf228e1331a.js:1
    29152927#: react/build/167.e823be3a69b27a68a9c9.js:1
    29162928#: react/build/249.307f4b603f01b9c80926.js:1
     
    29242936
    29252937#: react/build/18.dda60173f985be980376.js:1
    2926 #: react/build/79.712c746b580f9980027a.js:1
    2927 #: react/build/107.00e9e978ad301065b8c0.js:1
     2938#: react/build/79.60f8a3c25a3089f47e58.js:1
     2939#: react/build/107.e36c77fdbbf228e1331a.js:1
    29282940#: react/build/167.e823be3a69b27a68a9c9.js:1
    29292941#: react/build/249.307f4b603f01b9c80926.js:1
     
    29372949
    29382950#: react/build/18.dda60173f985be980376.js:1
    2939 #: react/build/79.712c746b580f9980027a.js:1
    2940 #: react/build/107.00e9e978ad301065b8c0.js:1
     2951#: react/build/79.60f8a3c25a3089f47e58.js:1
     2952#: react/build/107.e36c77fdbbf228e1331a.js:1
    29412953#: react/build/167.e823be3a69b27a68a9c9.js:1
    29422954#: react/build/249.307f4b603f01b9c80926.js:1
     
    29502962
    29512963#: react/build/18.dda60173f985be980376.js:1
    2952 #: react/build/79.712c746b580f9980027a.js:1
    2953 #: react/build/107.00e9e978ad301065b8c0.js:1
     2964#: react/build/79.60f8a3c25a3089f47e58.js:1
     2965#: react/build/107.e36c77fdbbf228e1331a.js:1
    29542966#: react/build/167.e823be3a69b27a68a9c9.js:1
    29552967#: react/build/249.307f4b603f01b9c80926.js:1
     
    29632975
    29642976#: react/build/18.dda60173f985be980376.js:1
    2965 #: react/build/79.712c746b580f9980027a.js:1
    2966 #: react/build/107.00e9e978ad301065b8c0.js:1
     2977#: react/build/79.60f8a3c25a3089f47e58.js:1
     2978#: react/build/107.e36c77fdbbf228e1331a.js:1
    29672979#: react/build/167.e823be3a69b27a68a9c9.js:1
    29682980#: react/build/249.307f4b603f01b9c80926.js:1
     
    29762988
    29772989#: react/build/18.dda60173f985be980376.js:1
    2978 #: react/build/79.712c746b580f9980027a.js:1
    2979 #: react/build/107.00e9e978ad301065b8c0.js:1
     2990#: react/build/79.60f8a3c25a3089f47e58.js:1
     2991#: react/build/107.e36c77fdbbf228e1331a.js:1
    29802992#: react/build/167.e823be3a69b27a68a9c9.js:1
    29812993#: react/build/249.307f4b603f01b9c80926.js:1
     
    29893001
    29903002#: react/build/18.dda60173f985be980376.js:1
    2991 #: react/build/79.712c746b580f9980027a.js:1
    2992 #: react/build/107.00e9e978ad301065b8c0.js:1
     3003#: react/build/79.60f8a3c25a3089f47e58.js:1
     3004#: react/build/107.e36c77fdbbf228e1331a.js:1
    29933005#: react/build/167.e823be3a69b27a68a9c9.js:1
    29943006#: react/build/249.307f4b603f01b9c80926.js:1
     
    30023014
    30033015#: react/build/18.dda60173f985be980376.js:1
    3004 #: react/build/79.712c746b580f9980027a.js:1
    3005 #: react/build/107.00e9e978ad301065b8c0.js:1
     3016#: react/build/79.60f8a3c25a3089f47e58.js:1
     3017#: react/build/107.e36c77fdbbf228e1331a.js:1
    30063018#: react/build/167.e823be3a69b27a68a9c9.js:1
    30073019#: react/build/249.307f4b603f01b9c80926.js:1
     
    30153027
    30163028#: react/build/18.dda60173f985be980376.js:1
    3017 #: react/build/79.712c746b580f9980027a.js:1
    3018 #: react/build/107.00e9e978ad301065b8c0.js:1
     3029#: react/build/79.60f8a3c25a3089f47e58.js:1
     3030#: react/build/107.e36c77fdbbf228e1331a.js:1
    30193031#: react/build/167.e823be3a69b27a68a9c9.js:1
    30203032#: react/build/249.307f4b603f01b9c80926.js:1
     
    30283040
    30293041#: react/build/18.dda60173f985be980376.js:1
    3030 #: react/build/79.712c746b580f9980027a.js:1
    3031 #: react/build/107.00e9e978ad301065b8c0.js:1
     3042#: react/build/79.60f8a3c25a3089f47e58.js:1
     3043#: react/build/107.e36c77fdbbf228e1331a.js:1
    30323044#: react/build/167.e823be3a69b27a68a9c9.js:1
    30333045#: react/build/249.307f4b603f01b9c80926.js:1
     
    30413053
    30423054#: react/build/18.dda60173f985be980376.js:1
    3043 #: react/build/79.712c746b580f9980027a.js:1
    3044 #: react/build/107.00e9e978ad301065b8c0.js:1
     3055#: react/build/79.60f8a3c25a3089f47e58.js:1
     3056#: react/build/107.e36c77fdbbf228e1331a.js:1
    30453057#: react/build/167.e823be3a69b27a68a9c9.js:1
    30463058#: react/build/249.307f4b603f01b9c80926.js:1
     
    30863098msgstr ""
    30873099
    3088 #: react/build/79.712c746b580f9980027a.js:1
    3089 #: react/build/107.00e9e978ad301065b8c0.js:1
     3100#: react/build/79.60f8a3c25a3089f47e58.js:1
     3101#: react/build/107.e36c77fdbbf228e1331a.js:1
    30903102#: react/build/809.c849f787f31f82f6d37b.js:1
    30913103#: react/build/843.f6b4fb618126e6186962.js:1
     
    30953107msgstr ""
    30963108
    3097 #: react/build/79.712c746b580f9980027a.js:1
    3098 #: react/build/107.00e9e978ad301065b8c0.js:1
     3109#: react/build/79.60f8a3c25a3089f47e58.js:1
     3110#: react/build/107.e36c77fdbbf228e1331a.js:1
    30993111msgid "Live Help"
    31003112msgstr ""
    31013113
    3102 #: react/build/79.712c746b580f9980027a.js:1
    3103 #: react/build/107.00e9e978ad301065b8c0.js:1
     3114#: react/build/79.60f8a3c25a3089f47e58.js:1
     3115#: react/build/107.e36c77fdbbf228e1331a.js:1
    31043116msgid "days left"
    31053117msgstr ""
    31063118
    3107 #: react/build/79.712c746b580f9980027a.js:1
    3108 #: react/build/107.00e9e978ad301065b8c0.js:1
     3119#: react/build/79.60f8a3c25a3089f47e58.js:1
     3120#: react/build/107.e36c77fdbbf228e1331a.js:1
    31093121msgid "Dashboard"
    31103122msgstr ""
    31113123
    3112 #: react/build/79.712c746b580f9980027a.js:1
    3113 #: react/build/107.00e9e978ad301065b8c0.js:1
     3124#: react/build/79.60f8a3c25a3089f47e58.js:1
     3125#: react/build/107.e36c77fdbbf228e1331a.js:1
    31143126msgid "Clients"
    31153127msgstr ""
    31163128
    3117 #: react/build/79.712c746b580f9980027a.js:1
    3118 #: react/build/107.00e9e978ad301065b8c0.js:1
     3129#: react/build/79.60f8a3c25a3089f47e58.js:1
     3130#: react/build/107.e36c77fdbbf228e1331a.js:1
    31193131msgid "Calendar"
    31203132msgstr ""
    31213133
    3122 #: react/build/79.712c746b580f9980027a.js:1
    3123 #: react/build/107.00e9e978ad301065b8c0.js:1
     3134#: react/build/79.60f8a3c25a3089f47e58.js:1
     3135#: react/build/107.e36c77fdbbf228e1331a.js:1
    31243136msgid "Help Center"
    31253137msgstr ""
    31263138
    3127 #: react/build/79.712c746b580f9980027a.js:1
    3128 #: react/build/107.00e9e978ad301065b8c0.js:1
     3139#: react/build/79.60f8a3c25a3089f47e58.js:1
     3140#: react/build/107.e36c77fdbbf228e1331a.js:1
    31293141msgid "is expired."
    31303142msgstr ""
    31313143
    3132 #: react/build/79.712c746b580f9980027a.js:1
     3144#: react/build/79.60f8a3c25a3089f47e58.js:1
    31333145msgid "is expired"
    31343146msgstr ""
    31353147
    3136 #: react/build/79.712c746b580f9980027a.js:1
     3148#: react/build/79.60f8a3c25a3089f47e58.js:1
    31373149msgid "Manage your bookings on the go with the Admin App!"
    31383150msgstr ""
    31393151
    3140 #: react/build/79.712c746b580f9980027a.js:1
     3152#: react/build/79.60f8a3c25a3089f47e58.js:1
    31413153msgid "See new and upcoming bookings, access & contact your clients, send payment links (coming soon) & more with the Admin App."
    31423154msgstr ""
    31433155
    3144 #: react/build/79.712c746b580f9980027a.js:1
     3156#: react/build/79.60f8a3c25a3089f47e58.js:1
    31453157msgid "Just scan one of these codes:"
    31463158msgstr ""
    31473159
    3148 #: react/build/79.712c746b580f9980027a.js:1
     3160#: react/build/79.60f8a3c25a3089f47e58.js:1
    31493161msgid "Two QR Codes - left to the App Store and right to the Google Play Store pages of the Admin App"
    31503162msgstr ""
    31513163
    3152 #: react/build/79.712c746b580f9980027a.js:1
     3164#: react/build/79.60f8a3c25a3089f47e58.js:1
    31533165msgid "Download on the App Store"
    31543166msgstr ""
    31553167
    3156 #: react/build/79.712c746b580f9980027a.js:1
     3168#: react/build/79.60f8a3c25a3089f47e58.js:1
    31573169msgid "Get it on Google Play"
    31583170msgstr ""
    31593171
    3160 #: react/build/79.712c746b580f9980027a.js:1
     3172#: react/build/79.60f8a3c25a3089f47e58.js:1
    31613173msgid "Two phones displaying pages of the Admin App"
    31623174msgstr ""
    31633175
    3164 #: react/build/79.712c746b580f9980027a.js:1
     3176#: react/build/79.60f8a3c25a3089f47e58.js:1
    31653177msgid "No tasks available."
    31663178msgstr ""
    31673179
    3168 #: react/build/79.712c746b580f9980027a.js:1
     3180#: react/build/79.60f8a3c25a3089f47e58.js:1
    31693181msgid "Loading tasks..."
    31703182msgstr ""
    31713183
    3172 #: react/build/79.712c746b580f9980027a.js:1
     3184#: react/build/79.60f8a3c25a3089f47e58.js:1
    31733185msgid "Progress"
    31743186msgstr ""
    31753187
    3176 #: react/build/79.712c746b580f9980027a.js:1
     3188#: react/build/79.60f8a3c25a3089f47e58.js:1
    31773189msgid "All tasks"
    31783190msgstr ""
    31793191
    3180 #: react/build/79.712c746b580f9980027a.js:1
     3192#: react/build/79.60f8a3c25a3089f47e58.js:1
    31813193msgid "Remaining tasks"
    31823194msgstr ""
    31833195
    3184 #: react/build/79.712c746b580f9980027a.js:1
     3196#: react/build/79.60f8a3c25a3089f47e58.js:1
    31853197msgid "You're all set! Great job!"
    31863198msgstr ""
    31873199
    3188 #: react/build/79.712c746b580f9980027a.js:1
     3200#: react/build/79.60f8a3c25a3089f47e58.js:1
    31893201msgid "You're on your way. You still have %s task open."
    31903202msgid_plural "You're on your way. You still have %s tasks open."
     
    31923204msgstr[1] ""
    31933205
    3194 #: react/build/79.712c746b580f9980027a.js:1
     3206#: react/build/79.60f8a3c25a3089f47e58.js:1
    31953207msgid "Not yet calculated"
    31963208msgstr ""
    31973209
    3198 #: react/build/79.712c746b580f9980027a.js:1
     3210#: react/build/79.60f8a3c25a3089f47e58.js:1
    31993211msgid "Today"
    32003212msgstr ""
    32013213
    3202 #: react/build/79.712c746b580f9980027a.js:1
     3214#: react/build/79.60f8a3c25a3089f47e58.js:1
    32033215msgid "This week"
    32043216msgstr ""
    32053217
    3206 #: react/build/79.712c746b580f9980027a.js:1
     3218#: react/build/79.60f8a3c25a3089f47e58.js:1
    32073219msgid "Most popular"
    32083220msgstr ""
    32093221
    3210 #: react/build/79.712c746b580f9980027a.js:1
     3222#: react/build/79.60f8a3c25a3089f47e58.js:1
    32113223msgid "Last 30 days"
    32123224msgstr ""
    32133225
    3214 #: react/build/79.712c746b580f9980027a.js:1
     3226#: react/build/79.60f8a3c25a3089f47e58.js:1
    32153227msgid "View Bookings"
    32163228msgstr ""
    32173229
    3218 #: react/build/79.712c746b580f9980027a.js:1
     3230#: react/build/79.60f8a3c25a3089f47e58.js:1
    32193231msgid "SMS Credits"
    32203232msgstr ""
    32213233
    3222 #: react/build/79.712c746b580f9980027a.js:1
     3234#: react/build/79.60f8a3c25a3089f47e58.js:1
    32233235msgid "SMS Gateway"
    32243236msgstr ""
    32253237
    3226 #: react/build/79.712c746b580f9980027a.js:1
     3238#: react/build/79.60f8a3c25a3089f47e58.js:1
    32273239msgid "Membership"
    32283240msgstr ""
    32293241
    3230 #: react/build/79.712c746b580f9980027a.js:1
     3242#: react/build/79.60f8a3c25a3089f47e58.js:1
    32313243msgid "Paid Events"
    32323244msgstr ""
    32333245
    3234 #: react/build/79.712c746b580f9980027a.js:1
     3246#: react/build/79.60f8a3c25a3089f47e58.js:1
    32353247msgid "Management"
    32363248msgstr ""
    32373249
    3238 #: react/build/79.712c746b580f9980027a.js:1
     3250#: react/build/79.60f8a3c25a3089f47e58.js:1
    32393251msgid "Tips & Tricks"
    32403252msgstr ""
    32413253
    3242 #: react/build/79.712c746b580f9980027a.js:1
     3254#: react/build/79.60f8a3c25a3089f47e58.js:1
    32433255msgid "View All"
    32443256msgstr ""
    32453257
    3246 #: react/build/79.712c746b580f9980027a.js:1
     3258#: react/build/79.60f8a3c25a3089f47e58.js:1
    32473259msgid "Installed"
    32483260msgstr ""
    32493261
    3250 #: react/build/79.712c746b580f9980027a.js:1
     3262#: react/build/79.60f8a3c25a3089f47e58.js:1
    32513263msgid "Install"
    32523264msgstr ""
    32533265
    3254 #: react/build/79.712c746b580f9980027a.js:1
     3266#: react/build/79.60f8a3c25a3089f47e58.js:1
    32553267msgid "Activate"
    32563268msgstr ""
    32573269
    3258 #: react/build/79.712c746b580f9980027a.js:1
     3270#: react/build/79.60f8a3c25a3089f47e58.js:1
    32593271msgid "Activating..."
    32603272msgstr ""
    32613273
    3262 #: react/build/79.712c746b580f9980027a.js:1
     3274#: react/build/79.60f8a3c25a3089f47e58.js:1
    32633275msgid "Downloading..."
    32643276msgstr ""
    32653277
    3266 #: react/build/79.712c746b580f9980027a.js:1
     3278#: react/build/79.60f8a3c25a3089f47e58.js:1
    32673279msgid "Other Plugins"
    32683280msgstr ""
    32693281
    3270 #: react/build/79.712c746b580f9980027a.js:1
     3282#: react/build/79.60f8a3c25a3089f47e58.js:1
    32713283msgid "Loading..."
    32723284msgstr ""
    32733285
    3274 #: react/build/107.00e9e978ad301065b8c0.js:1
     3286#: react/build/107.e36c77fdbbf228e1331a.js:1
    32753287#: react/src/components/Settings/SettingsMenu.jsx:18
    32763288msgid "Loading menu..."
    32773289msgstr ""
    32783290
    3279 #: react/build/107.00e9e978ad301065b8c0.js:1
     3291#: react/build/107.e36c77fdbbf228e1331a.js:1
    32803292#: react/src/components/Settings/SettingsMenu.jsx:19
    32813293msgid "Error loading menu"
    32823294msgstr ""
    32833295
    3284 #: react/build/107.00e9e978ad301065b8c0.js:1
     3296#: react/build/107.e36c77fdbbf228e1331a.js:1
    32853297#: react/src/components/Settings/SettingsMenu.jsx:20
    32863298msgid "No menu items available"
    32873299msgstr ""
    32883300
    3289 #: react/build/107.00e9e978ad301065b8c0.js:1
     3301#: react/build/107.e36c77fdbbf228e1331a.js:1
    32903302msgid "You currently have no notifications."
    32913303msgstr ""
    32923304
    3293 #: react/build/107.00e9e978ad301065b8c0.js:1
     3305#: react/build/107.e36c77fdbbf228e1331a.js:1
    32943306#: react/build/809.c849f787f31f82f6d37b.js:1
    32953307#: react/src/components/Forms/FormFooter.jsx:75
     
    32993311msgstr ""
    33003312
    3301 #: react/build/107.00e9e978ad301065b8c0.js:1
     3313#: react/build/107.e36c77fdbbf228e1331a.js:1
    33023314#: react/build/809.c849f787f31f82f6d37b.js:1
    33033315#: react/src/components/Forms/FormFooter.jsx:76
     
    33053317msgstr ""
    33063318
    3307 #: react/build/107.00e9e978ad301065b8c0.js:1
     3319#: react/build/107.e36c77fdbbf228e1331a.js:1
    33083320#: react/build/809.c849f787f31f82f6d37b.js:1
    33093321#: react/src/components/Forms/FormFooter.jsx:77
     
    33113323msgstr ""
    33123324
    3313 #: react/build/107.00e9e978ad301065b8c0.js:1
     3325#: react/build/107.e36c77fdbbf228e1331a.js:1
    33143326#: react/build/809.c849f787f31f82f6d37b.js:1
    33153327#: react/src/components/Forms/FormFooter.jsx:78
     
    33183330msgstr ""
    33193331
    3320 #: react/build/107.00e9e978ad301065b8c0.js:1
     3332#: react/build/107.e36c77fdbbf228e1331a.js:1
    33213333#: react/build/809.c849f787f31f82f6d37b.js:1
    33223334#: react/src/components/Forms/FormFooter.jsx:129
     
    33243336msgstr ""
    33253337
    3326 #: react/build/107.00e9e978ad301065b8c0.js:1
     3338#: react/build/107.e36c77fdbbf228e1331a.js:1
    33273339#: react/build/809.c849f787f31f82f6d37b.js:1
    33283340#: react/src/routes/settings/$settingsId.lazy.jsx:122
     
    35133525msgstr ""
    35143526
    3515 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3527#: react/build/index.de95e7d8a76df3fe461b.js:1
    35163528#: react/src/components/Common/ErrorBoundary.jsx:44
    35173529msgid "Uh-oh! We stumbled upon an error."
    35183530msgstr ""
    35193531
    3520 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3532#: react/build/index.de95e7d8a76df3fe461b.js:1
    35213533#: react/src/components/Common/ErrorBoundary.jsx:59
    35223534msgid "Copied"
    35233535msgstr ""
    35243536
    3525 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3537#: react/build/index.de95e7d8a76df3fe461b.js:1
    35263538#: react/src/components/Common/ErrorBoundary.jsx:60
    35273539msgid "Copy Error"
    35283540msgstr ""
    35293541
    3530 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3542#: react/build/index.de95e7d8a76df3fe461b.js:1
    35313543#: react/src/components/Common/ErrorBoundary.jsx:64
    35323544msgid "We're sorry for the trouble. Please take a moment to report this issue on the WordPress forums so we can work on fixing it. Here’s how you can report the issue:"
    35333545msgstr ""
    35343546
    3535 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3547#: react/build/index.de95e7d8a76df3fe461b.js:1
    35363548#: react/src/components/Common/ErrorBoundary.jsx:72
    35373549msgid "Copy the error details by clicking the %s button above."
    35383550msgstr ""
    35393551
    3540 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3552#: react/build/index.de95e7d8a76df3fe461b.js:1
    35413553#: react/src/components/Common/ErrorBoundary.jsx:84
    35423554msgid "Navigate to the Support Forum."
    35433555msgstr ""
    35443556
    3545 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3557#: react/build/index.de95e7d8a76df3fe461b.js:1
    35463558#: react/src/components/Common/ErrorBoundary.jsx:88
    35473559msgid "If you haven’t already, log in to your WordPress.org account or create a new account."
    35483560msgstr ""
    35493561
    3550 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3562#: react/build/index.de95e7d8a76df3fe461b.js:1
    35513563#: react/src/components/Common/ErrorBoundary.jsx:95
    35523564msgid "Once logged in, click on %s under the SimplyBook.me forum."
    35533565msgstr ""
    35543566
    3555 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3567#: react/build/index.de95e7d8a76df3fe461b.js:1
    35563568#: react/src/components/Common/ErrorBoundary.jsx:104
    35573569msgid "Title: Mention %s along with a brief hint of the error."
    35583570msgstr ""
    35593571
    3560 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3572#: react/build/index.de95e7d8a76df3fe461b.js:1
    35613573#: react/src/components/Common/ErrorBoundary.jsx:112
    35623574msgid "Description: Paste the copied error details and explain what you were doing when the error occurred."
    35633575msgstr ""
    35643576
    3565 #: react/build/index.06dedeb0ffa6bee75473.js:1
     3577#: react/build/index.de95e7d8a76df3fe461b.js:1
    35663578#: react/src/components/Common/ErrorBoundary.jsx:119
    35673579msgid "Click %s to post your topic. Our team will look into the issue and provide assistance."
  • simplybook/trunk/bootstrap/App.php

    r3384996 r3399722  
    1212 * codebase easier to test and maintain.
    1313 *
    14  * @property-read \SimplyBook\Support\Helpers\Storage config {@see \SimplyBook\Providers\ConfigServiceProvider::provideConfig}
    15  * @property-read \SimplyBook\Support\Helpers\Storage env {@see \SimplyBook\Providers\ConfigServiceProvider::provideEnv}
    16  * @property-read \SimplyBook\Support\Helpers\Storage request {@see \SimplyBook\Providers\RequestServiceProvider::provideRequest}
    17  * @property-read \SimplyBook\Support\Helpers\Storage files {@see \SimplyBook\Providers\RequestServiceProvider::provideFiles}
    18  * @property-read \SimplyBook\Http\ApiClient client {@see \SimplyBook\Providers\ClientServiceProvider::provideClient}
     14 * @property-read \SimplyBook\Support\Helpers\Storage $config {@see \SimplyBook\Providers\ConfigServiceProvider::provideConfig}
     15 * @method static \SimplyBook\Support\Helpers\Storage config()
     16 * @property-read \SimplyBook\Support\Helpers\Storage $env {@see \SimplyBook\Providers\ConfigServiceProvider::provideEnv}
     17 * @method static \SimplyBook\Support\Helpers\Storage env()
     18 * @property-read \SimplyBook\Support\Helpers\Storage $request {@see \SimplyBook\Providers\RequestServiceProvider::provideRequest}
     19 * @method static \SimplyBook\Support\Helpers\Storage request()
     20 * @property-read \SimplyBook\Support\Helpers\Storage $files {@see \SimplyBook\Providers\RequestServiceProvider::provideFiles}
     21 * @method static \SimplyBook\Support\Helpers\Storage files()
     22 * @property-read \SimplyBook\Http\ApiClient $client {@see \SimplyBook\Providers\ClientServiceProvider::provideClient}
     23 * @method static \SimplyBook\Http\ApiClient client()
    1924 */
    2025class App
     
    2934     * Registry of service factories indexed by identifier. Allows registering
    3035     * lazy factory closures for services.
    31      *
    32      * @var array<string, \Closure>
     36     * @var array<string, \Closure> $registry
    3337     */
    3438    private array $registry = [];
     
    3741     * Instances of resolved services, indexed by identifier. Used to prevent
    3842     * multiple instantiations and store created services.
     43     * @var array<string, object> $instances
    3944     */
    4045    private array $instances = [];
     
    7277
    7378    /**
    74      * Resolve an identifier to an object instance. It first checks the registry
     79     * Resolve an identifier to a mixed instance. It first checks the registry
    7580     * for a factory. If none is found, it calls {@see make} to perform
    7681     * constructor autowiring.
    7782     *
     83     * @param class-string $class
     84     * @return mixed
    7885     * @throws \Exception If the target is not instantiable or cannot resolve a dependency.
    7986     * @throws \ReflectionException If reflection fails.
    8087     */
    81     public function get(string $class): object
     88    public function get(string $class)
    8289    {
    8390        // Makes sure we memoize the Closure responses
     
    105112     * choose to register manually.
    106113     *
    107      * @param string $class The class to make. Dependencies are injected.
     114     * @param class-string $class The class to make. Dependencies are injected.
    108115     * @param bool $register Made classes are registered in the container on
    109116     * true. Useful for optimization on multi-used classes.
     
    172179            }
    173180
     181            /** @var class-string $dependencyClass */
    174182            $dependencyClass = $type->getName();
    175183
     
    221229     *
    222230     * Instead of:
    223      * App::config->getString('env.plugin.name');
     231     * App::getInstance()->config->getString('env.plugin.name');
     232     *
     233     * @param list<mixed> $arguments
     234     * @return mixed
     235     * @throws \ReflectionException
    224236     */
    225237    public static function __callStatic(string $name, array $arguments = [])
    226238    {
    227         $instance = self::getInstance();
    228         return call_user_func([$instance, 'get'], $name);
     239        return self::getInstance()->get($name);
    229240    }
    230241}
  • simplybook/trunk/bootstrap/Plugin.php

    r3384996 r3399722  
    1010use SimplyBook\Managers\ControllerManager;
    1111
    12 class Plugin
     12final class Plugin
    1313{
    1414    private App $app;
     
    3434     * Boot the plugin
    3535     */
    36     public function boot()
     36    public function boot(): void
    3737    {
    3838        $this->registerEnvironment();
     
    5858     * See {@see config/environment.php} for the actual values.
    5959     */
    60     public function registerEnvironment()
     60    public function registerEnvironment(): void
    6161    {
    6262        if (!defined('SIMPLYBOOK_ENV')) {
     
    6868     * Load the plugin text domain for translations
    6969     */
    70     public function loadPluginTextDomain()
     70    public function loadPluginTextDomain(): void
    7171    {
    7272        load_plugin_textdomain('simplybook');
     
    7878     * used by {@see fireActivationHook} to run the activation hook only once.
    7979     */
    80     public function activation()
     80    public function activation(): void
    8181    {
    8282        global $pagenow;
     
    9999     * activated. This method removes the flag after it has been used.
    100100     */
    101     public function fireActivationHook()
     101    public function fireActivationHook(): void
    102102    {
    103103        if (get_option('simplybook_activation_flag', false) === false) {
     
    120120     * Method that fires on deactivation
    121121     */
    122     public function deactivation()
     122    public function deactivation(): void
    123123    {
    124124        // Silence is golden
     
    128128     * Method that fires on uninstall
    129129     */
    130     public static function uninstall()
     130    public static function uninstall(): void
    131131    {
    132132        $uninstallInstance = new \SimplyBook\Support\Helpers\Uninstall();
     
    141141     * @uses do_action simplybook_providers_loaded
    142142     */
    143     public function registerProviders()
     143    public function registerProviders(): void
    144144    {
    145145        $this->providerManager->register([
     
    155155     * @uses do_action simplybook_controllers_loaded
    156156     */
    157     public function registerControllers()
     157    public function registerControllers(): void
    158158    {
    159159        $this->controllerManager->register([
     
    179179     * @uses do_action simplybook_endpoints_loaded
    180180     */
    181     public function registerEndpoints()
     181    public function registerEndpoints(): void
    182182    {
    183183        $this->endpointManager->register([
  • simplybook/trunk/composer.json

    r3384996 r3399722  
    11{
    22    "name": "really-simple-plugins/simplybookme",
    3     "version": "3.2.2.1",
     3    "version": "3.2.3",
    44    "description": "Simply add a booking calendar to your site to schedule bookings, reservations, appointments and to collect payments.",
    55    "type": "wordpress-plugin",
     
    2222    "require-dev": {
    2323        "phpcompatibility/php-compatibility": "^9.3",
     24        "phpstan/extension-installer": "^1.4",
     25        "phpstan/phpstan": "^2.1",
    2426        "slevomat/coding-standard": "^8.14",
    25         "squizlabs/php_codesniffer": "^3.9"
     27        "squizlabs/php_codesniffer": "^3.9",
     28        "szepeviktor/phpstan-wordpress": "^2.0"
    2629    },
    2730    "autoload": {
     
    4245        "allow-plugins": {
    4346            "automattic/jetpack-autoloader": true,
    44             "dealerdirect/phpcodesniffer-composer-installer": true
     47            "dealerdirect/phpcodesniffer-composer-installer": true,
     48            "phpstan/extension-installer": true
    4549        }
    4650    },
     
    4953        "lint:report": "vendor/bin/phpcs --report=full --report-file=phpcs-report.txt",
    5054        "lint:summary": "vendor/bin/phpcs --report=summary",
    51         "line:summary:report": "vendor/bin/phpcs --report=summary --report-file=phpcs-report.txt"
     55        "lint:summary:report": "vendor/bin/phpcs --report=summary --report-file=phpcs-report.txt",
     56        "quality": "vendor/bin/phpstan analyse --memory-limit=2048M",
     57        "quality:report": "vendor/bin/phpstan analyse --memory-limit=2048M > phpstan-report.txt",
     58        "quality:diagnose": "vendor/bin/phpstan diagnose --memory-limit=2048M"
    5259    }
    5360}
  • simplybook/trunk/config/env.php

    r3384996 r3399722  
    1818    'plugin' => [
    1919        'name' => 'SimplyBook.me',
    20         'version' => '3.2.2.1',
     20        'version' => '3.2.3',
    2121        'pro' => true,
    2222        'path' => dirname(__DIR__),
     
    6262            ],
    6363        ],
     64        'black_friday' => [
     65            'discount_percentage' => 25,
     66            'promo_code' => 'BLACKFRIDAY',
     67            'start_date' => '2025-11-18',
     68            'end_date' => '2025-11-29'
     69        ],
    6470        'tips_and_tricks' => [
    6571            'all' => 'https://simplybook.me/en/wordpress-booking-plugin',
     
    6773            'items' => [
    6874                [
    69                     'title' => 'Integrations',
    70                     'content' => 'Sync SimplyBook.me with Google Calendar or Outlook Calendar ',
     75                    'content' => 'How to get started',
     76                    'link' => 'https://help.simplybook.me/index.php/WordPress_integration',
     77                ],
     78                [
     79                    'content' => 'Sync SimplyBook.me with Google Calendar or Outlook Calendar',
    7180                    'link' => 'https://help.simplybook.me/index.php?title=Calendar_Sync_custom_feature',
    7281                ],
    7382                [
    74                     'title' => 'Customization',
    75                     'content' => 'Accept Payments Online ',
     83                    'content' => 'How to accept payments with SimplyBook.me',
    7684                    'link' => 'https://help.simplybook.me/index.php/Accept_payments_custom_feature',
    7785                ],
    78                 [
    79                     'title' => 'Marketing',
    80                     'content' => 'Boost Engagement with Promo Codes',
    81                     'link' => 'https://help.simplybook.me/index.php?title=Coupons_and_Gift_Cards_custom_feature/en',
    82                 ],
    83                 // [
    84                 //     'title' => 'Integrations',
    85                 //     'content' => 'Sync SimplyBook.me with Google Calendar or Outlook Calendar – Keep your schedule updated in real time by integrating your bookings with Google and Outlook Calendar.',
    86                 //     'link' => 'https://help.simplybook.me/index.php?title=Calendar_Sync_custom_feature ',
    87                 // ],
    88                 // [
    89                 //     'title' => 'Automation',
    90                 //     'content' => 'Reduce No-Shows with Automated Reminders – Set up SMS and email reminders to ensure your clients never miss an appointment.',
    91                 //     'link' => '/settings/templates', // todo: use loginLink() method
    92                 // ],
    93                 // [
    94                 //     'title' => 'News & Updates',
    95                 //     'content' => 'SimplyBook.me  newsletter: exciting new features and upcoming enhancements.',
    96                 //     'link' => 'https://news.simplybook.me/ ',
    97                 // ],
    98                 // [
    99                 //     'title' => 'Customization',
    100                 //     'content' => 'Accept Payments Online – Enable secure payment gateways like Stripe or PayPal to allow clients to prepay for services.',
    101                 //     'link' => 'https://help.simplybook.me/index.php/Accept_payments_custom_feature',
    102                 // ],
    103                 // [
    104                 //     'title' => 'Client Management',
    105                 //     'content' => 'Create Membership & Packages – Offer exclusive memberships and service packages to increase client retention and revenue.',
    106                 //     'link' => 'https://help.simplybook.me/index.php?title=Packages_custom_feature/en',
    107                 // ],
    108                 // [
    109                 //     'title' => 'Marketing',
    110                 //     'content' => 'Boost Engagement with Promo Codes – Attract more clients by offering discounts and special promotions via customizable promo codes.',
    111                 //     'link' => 'https://help.simplybook.me/index.php?title=Coupons_and_Gift_Cards_custom_feature/en',
    112                 // ],
    11386            ],
    11487        ],
  • simplybook/trunk/config/fields/authentication.php

    r3297362 r3399722  
    99        'type' => 'authentication',
    1010        'default' => get_option('simplybook_company_login'),
    11         'label' => esc_html__('Currently logged in as', 'simplybook'),
     11        'label' => __('Currently logged in as', 'simplybook'),
    1212        'disabled' => true,
    1313    ],
  • simplybook/trunk/config/related.php

    r3313046 r3399722  
    1414            'url' => 'https://wordpress.org/plugins/really-simple-ssl/',
    1515            'upgrade_url' => 'https://really-simple-ssl.com/pro?src=simplybook-plugin',
    16             'title' => "Really Simple Security - " . esc_html__("Lightweight plugin. Heavyweight security features.", "simplybook" ),
     16            'title' => "Really Simple Security - " . __("Lightweight plugin. Heavyweight security features.", "simplybook" ),
    1717            'color' => '#f4bf3e'
    1818        ],
     
    2626            'url' => 'https://wordpress.org/plugins/complianz-gdpr/',
    2727            'upgrade_url' => 'https://complianz.io?src=simplybook-plugin',
    28             'title' => 'Complianz - ' . esc_html__('Consent Management as it should be', 'simplybook'),
     28            'title' => 'Complianz - ' . __('Consent Management as it should be', 'simplybook'),
    2929            'color' => '#009fff'
    3030        ],
  • simplybook/trunk/readme.txt

    r3384996 r3399722  
    8989
    9090== Changelog ==
     91= 3.2.3 =
     92* Fixed: The "confirm email" step can no longer be skipped, preventing users from getting stuck.
     93* Fixed: Theme settings can now be fetched regardless of strict server settings.
     94* Fixed: Translations are no longer escaped multiple times, preventing display issues.
     95* Fixed: The custom block is now compatible with the Full Site Editor.
     96* Changed: The tips-and-tricks block has a new design for better readability.
     97* Changed: Code optimization to reduce load times.
     98
    9199= 3.2.2.1 =
    92100* Fixed: Error on uninstall.
  • simplybook/trunk/simplybook.php

    r3384996 r3399722  
    1111 * Plugin URI: https://help.simplybook.me/index.php?title=WordPress_integration
    1212 * Description: Simply add a booking calendar to your site to schedule bookings, reservations, appointments and to collect payments.
    13  * Version: 3.2.2.1
     13 * Version: 3.2.3
    1414 * Requires at least: 6.6
    1515 * Requires PHP: 7.4
  • simplybook/trunk/vendor/autoload.php

    r3384996 r3399722  
    2323require_once __DIR__ . '/composer/autoload_real.php';
    2424
    25 return ComposerAutoloaderInit4da771cd22b8c54009c4aa526a77c26f::getLoader();
     25return ComposerAutoloaderInit8d32913a8f1db8963f795cba5d373288::getLoader();
  • simplybook/trunk/vendor/autoload_packages.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/composer/autoload_classmap.php

    r3381644 r3399722  
    150150    'SimplyBook\\Features\\TaskManagement\\Tasks\\AddMandatoryProviderTask' => $baseDir . '/app/Features/TaskManagement/Tasks/AddMandatoryProviderTask.php',
    151151    'SimplyBook\\Features\\TaskManagement\\Tasks\\AddMandatoryServiceTask' => $baseDir . '/app/Features/TaskManagement/Tasks/AddMandatoryServiceTask.php',
     152    'SimplyBook\\Features\\TaskManagement\\Tasks\\BlackFridayTask' => $baseDir . '/app/Features/TaskManagement/Tasks/BlackFridayTask.php',
    152153    'SimplyBook\\Features\\TaskManagement\\Tasks\\CustomizeDesignTask' => $baseDir . '/app/Features/TaskManagement/Tasks/CustomizeDesignTask.php',
    153154    'SimplyBook\\Features\\TaskManagement\\Tasks\\FailedAuthenticationTask' => $baseDir . '/app/Features/TaskManagement/Tasks/FailedAuthenticationTask.php',
     
    169170    'SimplyBook\\Http\\Endpoints\\LoginUrlEndpoint' => $baseDir . '/app/Http/Endpoints/LoginUrlEndpoint.php',
    170171    'SimplyBook\\Http\\Endpoints\\NoticesDismissEndpoint' => $baseDir . '/app/Http/Endpoints/NoticesDismissEndpoint.php',
    171     'SimplyBook\\Http\\Endpoints\\ProvidersEndpoint' => $baseDir . '/app/Http/Endpoints/ProvidersEndpoint.php',
    172172    'SimplyBook\\Http\\Endpoints\\PublicThemeListEndpoint' => $baseDir . '/app/Http/Endpoints/PublicThemeListEndpoint.php',
    173173    'SimplyBook\\Http\\Endpoints\\RelatedPluginEndpoints' => $baseDir . '/app/Http/Endpoints/RelatedPluginEndpoints.php',
     
    185185    'SimplyBook\\Http\\Entities\\Service' => $baseDir . '/app/Http/Entities/Service.php',
    186186    'SimplyBook\\Http\\Entities\\ServiceProvider' => $baseDir . '/app/Http/Entities/ServiceProvider.php',
    187     'SimplyBook\\Http\\JsonRpcClient' => $baseDir . '/app/Http/JsonRpcClient.php',
    188187    'SimplyBook\\Interfaces\\ControllerInterface' => $baseDir . '/app/Interfaces/ControllerInterface.php',
    189188    'SimplyBook\\Interfaces\\FeatureInterface' => $baseDir . '/app/Interfaces/FeatureInterface.php',
     
    207206    'SimplyBook\\Services\\LoginUrlService' => $baseDir . '/app/Services/LoginUrlService.php',
    208207    'SimplyBook\\Services\\NoticeDismissalService' => $baseDir . '/app/Services/NoticeDismissalService.php',
     208    'SimplyBook\\Services\\PromotionService' => $baseDir . '/app/Services/PromotionService.php',
    209209    'SimplyBook\\Services\\RelatedPluginService' => $baseDir . '/app/Services/RelatedPluginService.php',
    210210    'SimplyBook\\Services\\StatisticsService' => $baseDir . '/app/Services/StatisticsService.php',
  • simplybook/trunk/vendor/composer/autoload_real.php

    r3384996 r3399722  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit4da771cd22b8c54009c4aa526a77c26f
     5class ComposerAutoloaderInit8d32913a8f1db8963f795cba5d373288
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit4da771cd22b8c54009c4aa526a77c26f', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit8d32913a8f1db8963f795cba5d373288', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit4da771cd22b8c54009c4aa526a77c26f', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit8d32913a8f1db8963f795cba5d373288', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit4da771cd22b8c54009c4aa526a77c26f::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit8d32913a8f1db8963f795cba5d373288::getInitializer($loader));
    3333
    3434        $loader->register(true);
    3535
    36         $filesToLoad = \Composer\Autoload\ComposerStaticInit4da771cd22b8c54009c4aa526a77c26f::$files;
     36        $filesToLoad = \Composer\Autoload\ComposerStaticInit8d32913a8f1db8963f795cba5d373288::$files;
    3737        $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
    3838            if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • simplybook/trunk/vendor/composer/autoload_static.php

    r3384996 r3399722  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit4da771cd22b8c54009c4aa526a77c26f
     7class ComposerStaticInit8d32913a8f1db8963f795cba5d373288
    88{
    99    public static $files = array (
     
    233233        'SimplyBook\\Features\\TaskManagement\\Tasks\\AddMandatoryProviderTask' => __DIR__ . '/../..' . '/app/Features/TaskManagement/Tasks/AddMandatoryProviderTask.php',
    234234        'SimplyBook\\Features\\TaskManagement\\Tasks\\AddMandatoryServiceTask' => __DIR__ . '/../..' . '/app/Features/TaskManagement/Tasks/AddMandatoryServiceTask.php',
     235        'SimplyBook\\Features\\TaskManagement\\Tasks\\BlackFridayTask' => __DIR__ . '/../..' . '/app/Features/TaskManagement/Tasks/BlackFridayTask.php',
    235236        'SimplyBook\\Features\\TaskManagement\\Tasks\\CustomizeDesignTask' => __DIR__ . '/../..' . '/app/Features/TaskManagement/Tasks/CustomizeDesignTask.php',
    236237        'SimplyBook\\Features\\TaskManagement\\Tasks\\FailedAuthenticationTask' => __DIR__ . '/../..' . '/app/Features/TaskManagement/Tasks/FailedAuthenticationTask.php',
     
    252253        'SimplyBook\\Http\\Endpoints\\LoginUrlEndpoint' => __DIR__ . '/../..' . '/app/Http/Endpoints/LoginUrlEndpoint.php',
    253254        'SimplyBook\\Http\\Endpoints\\NoticesDismissEndpoint' => __DIR__ . '/../..' . '/app/Http/Endpoints/NoticesDismissEndpoint.php',
    254         'SimplyBook\\Http\\Endpoints\\ProvidersEndpoint' => __DIR__ . '/../..' . '/app/Http/Endpoints/ProvidersEndpoint.php',
    255255        'SimplyBook\\Http\\Endpoints\\PublicThemeListEndpoint' => __DIR__ . '/../..' . '/app/Http/Endpoints/PublicThemeListEndpoint.php',
    256256        'SimplyBook\\Http\\Endpoints\\RelatedPluginEndpoints' => __DIR__ . '/../..' . '/app/Http/Endpoints/RelatedPluginEndpoints.php',
     
    268268        'SimplyBook\\Http\\Entities\\Service' => __DIR__ . '/../..' . '/app/Http/Entities/Service.php',
    269269        'SimplyBook\\Http\\Entities\\ServiceProvider' => __DIR__ . '/../..' . '/app/Http/Entities/ServiceProvider.php',
    270         'SimplyBook\\Http\\JsonRpcClient' => __DIR__ . '/../..' . '/app/Http/JsonRpcClient.php',
    271270        'SimplyBook\\Interfaces\\ControllerInterface' => __DIR__ . '/../..' . '/app/Interfaces/ControllerInterface.php',
    272271        'SimplyBook\\Interfaces\\FeatureInterface' => __DIR__ . '/../..' . '/app/Interfaces/FeatureInterface.php',
     
    290289        'SimplyBook\\Services\\LoginUrlService' => __DIR__ . '/../..' . '/app/Services/LoginUrlService.php',
    291290        'SimplyBook\\Services\\NoticeDismissalService' => __DIR__ . '/../..' . '/app/Services/NoticeDismissalService.php',
     291        'SimplyBook\\Services\\PromotionService' => __DIR__ . '/../..' . '/app/Services/PromotionService.php',
    292292        'SimplyBook\\Services\\RelatedPluginService' => __DIR__ . '/../..' . '/app/Services/RelatedPluginService.php',
    293293        'SimplyBook\\Services\\StatisticsService' => __DIR__ . '/../..' . '/app/Services/StatisticsService.php',
     
    419419    {
    420420        return \Closure::bind(function () use ($loader) {
    421             $loader->prefixLengthsPsr4 = ComposerStaticInit4da771cd22b8c54009c4aa526a77c26f::$prefixLengthsPsr4;
    422             $loader->prefixDirsPsr4 = ComposerStaticInit4da771cd22b8c54009c4aa526a77c26f::$prefixDirsPsr4;
    423             $loader->classMap = ComposerStaticInit4da771cd22b8c54009c4aa526a77c26f::$classMap;
     421            $loader->prefixLengthsPsr4 = ComposerStaticInit8d32913a8f1db8963f795cba5d373288::$prefixLengthsPsr4;
     422            $loader->prefixDirsPsr4 = ComposerStaticInit8d32913a8f1db8963f795cba5d373288::$prefixDirsPsr4;
     423            $loader->classMap = ComposerStaticInit8d32913a8f1db8963f795cba5d373288::$classMap;
    424424
    425425        }, null, ClassLoader::class);
  • simplybook/trunk/vendor/composer/installed.php

    r3384996 r3399722  
    22    'root' => array(
    33        'name' => 'really-simple-plugins/simplybookme',
    4         'pretty_version' => '3.2.2.1',
    5         'version' => '3.2.2.1',
     4        'pretty_version' => '3.2.3',
     5        'version' => '3.2.3.0',
    66        'reference' => null,
    77        'type' => 'wordpress-plugin',
     
    6363        ),
    6464        'really-simple-plugins/simplybookme' => array(
    65             'pretty_version' => '3.2.2.1',
    66             'version' => '3.2.2.1',
     65            'pretty_version' => '3.2.3',
     66            'version' => '3.2.3.0',
    6767            'reference' => null,
    6868            'type' => 'wordpress-plugin',
  • simplybook/trunk/vendor/composer/jetpack_autoload_classmap.php

    r3384996 r3399722  
    424424    ),
    425425    'SimplyBook\\Bootstrap\\App' => array(
    426         'version' => '3.2.2.1',
     426        'version' => '3.2.3.0',
    427427        'path'    => $baseDir . '/bootstrap/App.php'
    428428    ),
    429429    'SimplyBook\\Bootstrap\\Plugin' => array(
    430         'version' => '3.2.2.1',
     430        'version' => '3.2.3.0',
    431431        'path'    => $baseDir . '/bootstrap/Plugin.php'
    432432    ),
    433433    'SimplyBook\\Controllers\\AdminController' => array(
    434         'version' => '3.2.2.1',
     434        'version' => '3.2.3.0',
    435435        'path'    => $baseDir . '/app/Controllers/AdminController.php'
    436436    ),
    437437    'SimplyBook\\Controllers\\BlockController' => array(
    438         'version' => '3.2.2.1',
     438        'version' => '3.2.3.0',
    439439        'path'    => $baseDir . '/app/Controllers/BlockController.php'
    440440    ),
    441441    'SimplyBook\\Controllers\\CapabilityController' => array(
    442         'version' => '3.2.2.1',
     442        'version' => '3.2.3.0',
    443443        'path'    => $baseDir . '/app/Controllers/CapabilityController.php'
    444444    ),
    445445    'SimplyBook\\Controllers\\DashboardController' => array(
    446         'version' => '3.2.2.1',
     446        'version' => '3.2.3.0',
    447447        'path'    => $baseDir . '/app/Controllers/DashboardController.php'
    448448    ),
    449449    'SimplyBook\\Controllers\\DesignSettingsController' => array(
    450         'version' => '3.2.2.1',
     450        'version' => '3.2.3.0',
    451451        'path'    => $baseDir . '/app/Controllers/DesignSettingsController.php'
    452452    ),
    453453    'SimplyBook\\Controllers\\OnboardingNoticeController' => array(
    454         'version' => '3.2.2.1',
     454        'version' => '3.2.3.0',
    455455        'path'    => $baseDir . '/app/Controllers/OnboardingNoticeController.php'
    456456    ),
    457457    'SimplyBook\\Controllers\\ReviewController' => array(
    458         'version' => '3.2.2.1',
     458        'version' => '3.2.3.0',
    459459        'path'    => $baseDir . '/app/Controllers/ReviewController.php'
    460460    ),
    461461    'SimplyBook\\Controllers\\ScheduleController' => array(
    462         'version' => '3.2.2.1',
     462        'version' => '3.2.3.0',
    463463        'path'    => $baseDir . '/app/Controllers/ScheduleController.php'
    464464    ),
    465465    'SimplyBook\\Controllers\\ServicesController' => array(
    466         'version' => '3.2.2.1',
     466        'version' => '3.2.3.0',
    467467        'path'    => $baseDir . '/app/Controllers/ServicesController.php'
    468468    ),
    469469    'SimplyBook\\Controllers\\SettingsController' => array(
    470         'version' => '3.2.2.1',
     470        'version' => '3.2.3.0',
    471471        'path'    => $baseDir . '/app/Controllers/SettingsController.php'
    472472    ),
    473473    'SimplyBook\\Controllers\\TrialExpirationController' => array(
    474         'version' => '3.2.2.1',
     474        'version' => '3.2.3.0',
    475475        'path'    => $baseDir . '/app/Controllers/TrialExpirationController.php'
    476476    ),
    477477    'SimplyBook\\Controllers\\WidgetController' => array(
    478         'version' => '3.2.2.1',
     478        'version' => '3.2.3.0',
    479479        'path'    => $baseDir . '/app/Controllers/WidgetController.php'
    480480    ),
    481481    'SimplyBook\\Controllers\\WidgetTrackingController' => array(
    482         'version' => '3.2.2.1',
     482        'version' => '3.2.3.0',
    483483        'path'    => $baseDir . '/app/Controllers/WidgetTrackingController.php'
    484484    ),
    485485    'SimplyBook\\Exceptions\\ApiException' => array(
    486         'version' => '3.2.2.1',
     486        'version' => '3.2.3.0',
    487487        'path'    => $baseDir . '/app/Exceptions/ApiException.php'
    488488    ),
    489489    'SimplyBook\\Exceptions\\BuilderException' => array(
    490         'version' => '3.2.2.1',
     490        'version' => '3.2.3.0',
    491491        'path'    => $baseDir . '/app/Exceptions/BuilderException.php'
    492492    ),
    493493    'SimplyBook\\Exceptions\\EmptyResponseException' => array(
    494         'version' => '3.2.2.1',
     494        'version' => '3.2.3.0',
    495495        'path'    => $baseDir . '/app/Exceptions/EmptyResponseException.php'
    496496    ),
    497497    'SimplyBook\\Exceptions\\FormException' => array(
    498         'version' => '3.2.2.1',
     498        'version' => '3.2.3.0',
    499499        'path'    => $baseDir . '/app/Exceptions/FormException.php'
    500500    ),
    501501    'SimplyBook\\Exceptions\\RestDataException' => array(
    502         'version' => '3.2.2.1',
     502        'version' => '3.2.3.0',
    503503        'path'    => $baseDir . '/app/Exceptions/RestDataException.php'
    504504    ),
    505505    'SimplyBook\\Exceptions\\SettingsException' => array(
    506         'version' => '3.2.2.1',
     506        'version' => '3.2.3.0',
    507507        'path'    => $baseDir . '/app/Exceptions/SettingsException.php'
    508508    ),
    509509    'SimplyBook\\Features\\AbstractLoader' => array(
    510         'version' => '3.2.2.1',
     510        'version' => '3.2.3.0',
    511511        'path'    => $baseDir . '/app/Features/AbstractLoader.php'
    512512    ),
    513513    'SimplyBook\\Features\\Notifications\\Notices\\AbstractNotice' => array(
    514         'version' => '3.2.2.1',
     514        'version' => '3.2.3.0',
    515515        'path'    => $baseDir . '/app/Features/Notifications/Notices/AbstractNotice.php'
    516516    ),
    517517    'SimplyBook\\Features\\Notifications\\Notices\\AddMandatoryProviderNotice' => array(
    518         'version' => '3.2.2.1',
     518        'version' => '3.2.3.0',
    519519        'path'    => $baseDir . '/app/Features/Notifications/Notices/AddMandatoryProviderNotice.php'
    520520    ),
    521521    'SimplyBook\\Features\\Notifications\\Notices\\AddMandatoryServiceNotice' => array(
    522         'version' => '3.2.2.1',
     522        'version' => '3.2.3.0',
    523523        'path'    => $baseDir . '/app/Features/Notifications/Notices/AddMandatoryServiceNotice.php'
    524524    ),
    525525    'SimplyBook\\Features\\Notifications\\Notices\\FailedAuthenticationNotice' => array(
    526         'version' => '3.2.2.1',
     526        'version' => '3.2.3.0',
    527527        'path'    => $baseDir . '/app/Features/Notifications/Notices/FailedAuthenticationNotice.php'
    528528    ),
    529529    'SimplyBook\\Features\\Notifications\\Notices\\MaxedOutProvidersNotice' => array(
    530         'version' => '3.2.2.1',
     530        'version' => '3.2.3.0',
    531531        'path'    => $baseDir . '/app/Features/Notifications/Notices/MaxedOutProvidersNotice.php'
    532532    ),
    533533    'SimplyBook\\Features\\Notifications\\Notices\\MaxedOutServicesNotice' => array(
    534         'version' => '3.2.2.1',
     534        'version' => '3.2.3.0',
    535535        'path'    => $baseDir . '/app/Features/Notifications/Notices/MaxedOutServicesNotice.php'
    536536    ),
    537537    'SimplyBook\\Features\\Notifications\\Notices\\PublishWidgetNotice' => array(
    538         'version' => '3.2.2.1',
     538        'version' => '3.2.3.0',
    539539        'path'    => $baseDir . '/app/Features/Notifications/Notices/PublishWidgetNotice.php'
    540540    ),
    541541    'SimplyBook\\Features\\Notifications\\NotificationListener' => array(
    542         'version' => '3.2.2.1',
     542        'version' => '3.2.3.0',
    543543        'path'    => $baseDir . '/app/Features/Notifications/NotificationListener.php'
    544544    ),
    545545    'SimplyBook\\Features\\Notifications\\NotificationsController' => array(
    546         'version' => '3.2.2.1',
     546        'version' => '3.2.3.0',
    547547        'path'    => $baseDir . '/app/Features/Notifications/NotificationsController.php'
    548548    ),
    549549    'SimplyBook\\Features\\Notifications\\NotificationsEndpoints' => array(
    550         'version' => '3.2.2.1',
     550        'version' => '3.2.3.0',
    551551        'path'    => $baseDir . '/app/Features/Notifications/NotificationsEndpoints.php'
    552552    ),
    553553    'SimplyBook\\Features\\Notifications\\NotificationsLoader' => array(
    554         'version' => '3.2.2.1',
     554        'version' => '3.2.3.0',
    555555        'path'    => $baseDir . '/app/Features/Notifications/NotificationsLoader.php'
    556556    ),
    557557    'SimplyBook\\Features\\Notifications\\NotificationsRepository' => array(
    558         'version' => '3.2.2.1',
     558        'version' => '3.2.3.0',
    559559        'path'    => $baseDir . '/app/Features/Notifications/NotificationsRepository.php'
    560560    ),
    561561    'SimplyBook\\Features\\Notifications\\NotificationsService' => array(
    562         'version' => '3.2.2.1',
     562        'version' => '3.2.3.0',
    563563        'path'    => $baseDir . '/app/Features/Notifications/NotificationsService.php'
    564564    ),
    565565    'SimplyBook\\Features\\Onboarding\\OnboardingController' => array(
    566         'version' => '3.2.2.1',
     566        'version' => '3.2.3.0',
    567567        'path'    => $baseDir . '/app/Features/Onboarding/OnboardingController.php'
    568568    ),
    569569    'SimplyBook\\Features\\Onboarding\\OnboardingLoader' => array(
    570         'version' => '3.2.2.1',
     570        'version' => '3.2.3.0',
    571571        'path'    => $baseDir . '/app/Features/Onboarding/OnboardingLoader.php'
    572572    ),
    573573    'SimplyBook\\Features\\Onboarding\\OnboardingService' => array(
    574         'version' => '3.2.2.1',
     574        'version' => '3.2.3.0',
    575575        'path'    => $baseDir . '/app/Features/Onboarding/OnboardingService.php'
    576576    ),
    577577    'SimplyBook\\Features\\TaskManagement\\TaskManagementController' => array(
    578         'version' => '3.2.2.1',
     578        'version' => '3.2.3.0',
    579579        'path'    => $baseDir . '/app/Features/TaskManagement/TaskManagementController.php'
    580580    ),
    581581    'SimplyBook\\Features\\TaskManagement\\TaskManagementEndpoints' => array(
    582         'version' => '3.2.2.1',
     582        'version' => '3.2.3.0',
    583583        'path'    => $baseDir . '/app/Features/TaskManagement/TaskManagementEndpoints.php'
    584584    ),
    585585    'SimplyBook\\Features\\TaskManagement\\TaskManagementListener' => array(
    586         'version' => '3.2.2.1',
     586        'version' => '3.2.3.0',
    587587        'path'    => $baseDir . '/app/Features/TaskManagement/TaskManagementListener.php'
    588588    ),
    589589    'SimplyBook\\Features\\TaskManagement\\TaskManagementLoader' => array(
    590         'version' => '3.2.2.1',
     590        'version' => '3.2.3.0',
    591591        'path'    => $baseDir . '/app/Features/TaskManagement/TaskManagementLoader.php'
    592592    ),
    593593    'SimplyBook\\Features\\TaskManagement\\TaskManagementRepository' => array(
    594         'version' => '3.2.2.1',
     594        'version' => '3.2.3.0',
    595595        'path'    => $baseDir . '/app/Features/TaskManagement/TaskManagementRepository.php'
    596596    ),
    597597    'SimplyBook\\Features\\TaskManagement\\TaskManagementService' => array(
    598         'version' => '3.2.2.1',
     598        'version' => '3.2.3.0',
    599599        'path'    => $baseDir . '/app/Features/TaskManagement/TaskManagementService.php'
    600600    ),
    601601    'SimplyBook\\Features\\TaskManagement\\Tasks\\AbstractTask' => array(
    602         'version' => '3.2.2.1',
     602        'version' => '3.2.3.0',
    603603        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/AbstractTask.php'
    604604    ),
    605605    'SimplyBook\\Features\\TaskManagement\\Tasks\\AcceptPaymentsTask' => array(
    606         'version' => '3.2.2.1',
     606        'version' => '3.2.3.0',
    607607        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/AcceptPaymentsTask.php'
    608608    ),
    609609    'SimplyBook\\Features\\TaskManagement\\Tasks\\AddAllProvidersTask' => array(
    610         'version' => '3.2.2.1',
     610        'version' => '3.2.3.0',
    611611        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/AddAllProvidersTask.php'
    612612    ),
    613613    'SimplyBook\\Features\\TaskManagement\\Tasks\\AddAllServicesTask' => array(
    614         'version' => '3.2.2.1',
     614        'version' => '3.2.3.0',
    615615        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/AddAllServicesTask.php'
    616616    ),
    617617    'SimplyBook\\Features\\TaskManagement\\Tasks\\AddMandatoryProviderTask' => array(
    618         'version' => '3.2.2.1',
     618        'version' => '3.2.3.0',
    619619        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/AddMandatoryProviderTask.php'
    620620    ),
    621621    'SimplyBook\\Features\\TaskManagement\\Tasks\\AddMandatoryServiceTask' => array(
    622         'version' => '3.2.2.1',
     622        'version' => '3.2.3.0',
    623623        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/AddMandatoryServiceTask.php'
    624624    ),
     625    'SimplyBook\\Features\\TaskManagement\\Tasks\\BlackFridayTask' => array(
     626        'version' => '3.2.3.0',
     627        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/BlackFridayTask.php'
     628    ),
    625629    'SimplyBook\\Features\\TaskManagement\\Tasks\\CustomizeDesignTask' => array(
    626         'version' => '3.2.2.1',
     630        'version' => '3.2.3.0',
    627631        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/CustomizeDesignTask.php'
    628632    ),
    629633    'SimplyBook\\Features\\TaskManagement\\Tasks\\FailedAuthenticationTask' => array(
    630         'version' => '3.2.2.1',
     634        'version' => '3.2.3.0',
    631635        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/FailedAuthenticationTask.php'
    632636    ),
    633637    'SimplyBook\\Features\\TaskManagement\\Tasks\\GatherClientInfoTask' => array(
    634         'version' => '3.2.2.1',
     638        'version' => '3.2.3.0',
    635639        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/GatherClientInfoTask.php'
    636640    ),
    637641    'SimplyBook\\Features\\TaskManagement\\Tasks\\GoToSimplyBookSystemTask' => array(
    638         'version' => '3.2.2.1',
     642        'version' => '3.2.3.0',
    639643        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/GoToSimplyBookSystemTask.php'
    640644    ),
    641645    'SimplyBook\\Features\\TaskManagement\\Tasks\\InstallAppTask' => array(
    642         'version' => '3.2.2.1',
     646        'version' => '3.2.3.0',
    643647        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/InstallAppTask.php'
    644648    ),
    645649    'SimplyBook\\Features\\TaskManagement\\Tasks\\MaxedOutProvidersTask' => array(
    646         'version' => '3.2.2.1',
     650        'version' => '3.2.3.0',
    647651        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/MaxedOutProvidersTask.php'
    648652    ),
    649653    'SimplyBook\\Features\\TaskManagement\\Tasks\\MaximumBookingsTask' => array(
    650         'version' => '3.2.2.1',
     654        'version' => '3.2.3.0',
    651655        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/MaximumBookingsTask.php'
    652656    ),
    653657    'SimplyBook\\Features\\TaskManagement\\Tasks\\PostOnSocialMediaTask' => array(
    654         'version' => '3.2.2.1',
     658        'version' => '3.2.3.0',
    655659        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/PostOnSocialMediaTask.php'
    656660    ),
    657661    'SimplyBook\\Features\\TaskManagement\\Tasks\\PublishWidgetTask' => array(
    658         'version' => '3.2.2.1',
     662        'version' => '3.2.3.0',
    659663        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/PublishWidgetTask.php'
    660664    ),
    661665    'SimplyBook\\Features\\TaskManagement\\Tasks\\TrialExpiredTask' => array(
    662         'version' => '3.2.2.1',
     666        'version' => '3.2.3.0',
    663667        'path'    => $baseDir . '/app/Features/TaskManagement/Tasks/TrialExpiredTask.php'
    664668    ),
    665669    'SimplyBook\\Http\\ApiClient' => array(
    666         'version' => '3.2.2.1',
     670        'version' => '3.2.3.0',
    667671        'path'    => $baseDir . '/app/Http/ApiClient.php'
    668672    ),
    669673    'SimplyBook\\Http\\DTO\\ApiResponseDTO' => array(
    670         'version' => '3.2.2.1',
     674        'version' => '3.2.3.0',
    671675        'path'    => $baseDir . '/app/Http/DTO/ApiResponseDTO.php'
    672676    ),
    673677    'SimplyBook\\Http\\Endpoints\\AbstractCrudEndpoint' => array(
    674         'version' => '3.2.2.1',
     678        'version' => '3.2.3.0',
    675679        'path'    => $baseDir . '/app/Http/Endpoints/AbstractCrudEndpoint.php'
    676680    ),
    677681    'SimplyBook\\Http\\Endpoints\\BlockEndpoints' => array(
    678         'version' => '3.2.2.1',
     682        'version' => '3.2.3.0',
    679683        'path'    => $baseDir . '/app/Http/Endpoints/BlockEndpoints.php'
    680684    ),
    681685    'SimplyBook\\Http\\Endpoints\\CompanyRegistrationEndpoint' => array(
    682         'version' => '3.2.2.1',
     686        'version' => '3.2.3.0',
    683687        'path'    => $baseDir . '/app/Http/Endpoints/CompanyRegistrationEndpoint.php'
    684688    ),
    685689    'SimplyBook\\Http\\Endpoints\\DomainEndpoint' => array(
    686         'version' => '3.2.2.1',
     690        'version' => '3.2.3.0',
    687691        'path'    => $baseDir . '/app/Http/Endpoints/DomainEndpoint.php'
    688692    ),
    689693    'SimplyBook\\Http\\Endpoints\\LogOutEndpoint' => array(
    690         'version' => '3.2.2.1',
     694        'version' => '3.2.3.0',
    691695        'path'    => $baseDir . '/app/Http/Endpoints/LogOutEndpoint.php'
    692696    ),
    693697    'SimplyBook\\Http\\Endpoints\\LoginUrlEndpoint' => array(
    694         'version' => '3.2.2.1',
     698        'version' => '3.2.3.0',
    695699        'path'    => $baseDir . '/app/Http/Endpoints/LoginUrlEndpoint.php'
    696700    ),
    697701    'SimplyBook\\Http\\Endpoints\\NoticesDismissEndpoint' => array(
    698         'version' => '3.2.2.1',
     702        'version' => '3.2.3.0',
    699703        'path'    => $baseDir . '/app/Http/Endpoints/NoticesDismissEndpoint.php'
    700704    ),
    701     'SimplyBook\\Http\\Endpoints\\ProvidersEndpoint' => array(
    702         'version' => '3.2.2.1',
    703         'path'    => $baseDir . '/app/Http/Endpoints/ProvidersEndpoint.php'
    704     ),
    705705    'SimplyBook\\Http\\Endpoints\\PublicThemeListEndpoint' => array(
    706         'version' => '3.2.2.1',
     706        'version' => '3.2.3.0',
    707707        'path'    => $baseDir . '/app/Http/Endpoints/PublicThemeListEndpoint.php'
    708708    ),
    709709    'SimplyBook\\Http\\Endpoints\\RelatedPluginEndpoints' => array(
    710         'version' => '3.2.2.1',
     710        'version' => '3.2.3.0',
    711711        'path'    => $baseDir . '/app/Http/Endpoints/RelatedPluginEndpoints.php'
    712712    ),
    713713    'SimplyBook\\Http\\Endpoints\\RemotePluginsEndpoint' => array(
    714         'version' => '3.2.2.1',
     714        'version' => '3.2.3.0',
    715715        'path'    => $baseDir . '/app/Http/Endpoints/RemotePluginsEndpoint.php'
    716716    ),
    717717    'SimplyBook\\Http\\Endpoints\\ServicesEndpoint' => array(
    718         'version' => '3.2.2.1',
     718        'version' => '3.2.3.0',
    719719        'path'    => $baseDir . '/app/Http/Endpoints/ServicesEndpoint.php'
    720720    ),
    721721    'SimplyBook\\Http\\Endpoints\\ServicesProvidersEndpoint' => array(
    722         'version' => '3.2.2.1',
     722        'version' => '3.2.3.0',
    723723        'path'    => $baseDir . '/app/Http/Endpoints/ServicesProvidersEndpoint.php'
    724724    ),
    725725    'SimplyBook\\Http\\Endpoints\\SettingEndpoints' => array(
    726         'version' => '3.2.2.1',
     726        'version' => '3.2.3.0',
    727727        'path'    => $baseDir . '/app/Http/Endpoints/SettingEndpoints.php'
    728728    ),
    729729    'SimplyBook\\Http\\Endpoints\\StatisticsEndpoint' => array(
    730         'version' => '3.2.2.1',
     730        'version' => '3.2.3.0',
    731731        'path'    => $baseDir . '/app/Http/Endpoints/StatisticsEndpoint.php'
    732732    ),
    733733    'SimplyBook\\Http\\Endpoints\\SubscriptionEndpoints' => array(
    734         'version' => '3.2.2.1',
     734        'version' => '3.2.3.0',
    735735        'path'    => $baseDir . '/app/Http/Endpoints/SubscriptionEndpoints.php'
    736736    ),
    737737    'SimplyBook\\Http\\Endpoints\\ThemeColorEndpoint' => array(
    738         'version' => '3.2.2.1',
     738        'version' => '3.2.3.0',
    739739        'path'    => $baseDir . '/app/Http/Endpoints/ThemeColorEndpoint.php'
    740740    ),
    741741    'SimplyBook\\Http\\Endpoints\\TipsTricksEndpoint' => array(
    742         'version' => '3.2.2.1',
     742        'version' => '3.2.3.0',
    743743        'path'    => $baseDir . '/app/Http/Endpoints/TipsTricksEndpoint.php'
    744744    ),
    745745    'SimplyBook\\Http\\Endpoints\\WaitForRegistrationEndpoint' => array(
    746         'version' => '3.2.2.1',
     746        'version' => '3.2.3.0',
    747747        'path'    => $baseDir . '/app/Http/Endpoints/WaitForRegistrationEndpoint.php'
    748748    ),
    749749    'SimplyBook\\Http\\Endpoints\\WidgetEndpoint' => array(
    750         'version' => '3.2.2.1',
     750        'version' => '3.2.3.0',
    751751        'path'    => $baseDir . '/app/Http/Endpoints/WidgetEndpoint.php'
    752752    ),
    753753    'SimplyBook\\Http\\Entities\\AbstractEntity' => array(
    754         'version' => '3.2.2.1',
     754        'version' => '3.2.3.0',
    755755        'path'    => $baseDir . '/app/Http/Entities/AbstractEntity.php'
    756756    ),
    757757    'SimplyBook\\Http\\Entities\\Service' => array(
    758         'version' => '3.2.2.1',
     758        'version' => '3.2.3.0',
    759759        'path'    => $baseDir . '/app/Http/Entities/Service.php'
    760760    ),
    761761    'SimplyBook\\Http\\Entities\\ServiceProvider' => array(
    762         'version' => '3.2.2.1',
     762        'version' => '3.2.3.0',
    763763        'path'    => $baseDir . '/app/Http/Entities/ServiceProvider.php'
    764764    ),
    765     'SimplyBook\\Http\\JsonRpcClient' => array(
    766         'version' => '3.2.2.1',
    767         'path'    => $baseDir . '/app/Http/JsonRpcClient.php'
    768     ),
    769765    'SimplyBook\\Interfaces\\ControllerInterface' => array(
    770         'version' => '3.2.2.1',
     766        'version' => '3.2.3.0',
    771767        'path'    => $baseDir . '/app/Interfaces/ControllerInterface.php'
    772768    ),
    773769    'SimplyBook\\Interfaces\\FeatureInterface' => array(
    774         'version' => '3.2.2.1',
     770        'version' => '3.2.3.0',
    775771        'path'    => $baseDir . '/app/Interfaces/FeatureInterface.php'
    776772    ),
    777773    'SimplyBook\\Interfaces\\MultiEndpointInterface' => array(
    778         'version' => '3.2.2.1',
     774        'version' => '3.2.3.0',
    779775        'path'    => $baseDir . '/app/Interfaces/MultiEndpointInterface.php'
    780776    ),
    781777    'SimplyBook\\Interfaces\\NoticeInterface' => array(
    782         'version' => '3.2.2.1',
     778        'version' => '3.2.3.0',
    783779        'path'    => $baseDir . '/app/Interfaces/NoticeInterface.php'
    784780    ),
    785781    'SimplyBook\\Interfaces\\ProviderInterface' => array(
    786         'version' => '3.2.2.1',
     782        'version' => '3.2.3.0',
    787783        'path'    => $baseDir . '/app/Interfaces/ProviderInterface.php'
    788784    ),
    789785    'SimplyBook\\Interfaces\\SingleEndpointInterface' => array(
    790         'version' => '3.2.2.1',
     786        'version' => '3.2.3.0',
    791787        'path'    => $baseDir . '/app/Interfaces/SingleEndpointInterface.php'
    792788    ),
    793789    'SimplyBook\\Interfaces\\TaskInterface' => array(
    794         'version' => '3.2.2.1',
     790        'version' => '3.2.3.0',
    795791        'path'    => $baseDir . '/app/Interfaces/TaskInterface.php'
    796792    ),
    797793    'SimplyBook\\Managers\\AbstractManager' => array(
    798         'version' => '3.2.2.1',
     794        'version' => '3.2.3.0',
    799795        'path'    => $baseDir . '/app/Managers/AbstractManager.php'
    800796    ),
    801797    'SimplyBook\\Managers\\ControllerManager' => array(
    802         'version' => '3.2.2.1',
     798        'version' => '3.2.3.0',
    803799        'path'    => $baseDir . '/app/Managers/ControllerManager.php'
    804800    ),
    805801    'SimplyBook\\Managers\\EndpointManager' => array(
    806         'version' => '3.2.2.1',
     802        'version' => '3.2.3.0',
    807803        'path'    => $baseDir . '/app/Managers/EndpointManager.php'
    808804    ),
    809805    'SimplyBook\\Managers\\FeatureManager' => array(
    810         'version' => '3.2.2.1',
     806        'version' => '3.2.3.0',
    811807        'path'    => $baseDir . '/app/Managers/FeatureManager.php'
    812808    ),
    813809    'SimplyBook\\Managers\\ProviderManager' => array(
    814         'version' => '3.2.2.1',
     810        'version' => '3.2.3.0',
    815811        'path'    => $baseDir . '/app/Managers/ProviderManager.php'
    816812    ),
    817813    'SimplyBook\\Providers\\ClientServiceProvider' => array(
    818         'version' => '3.2.2.1',
     814        'version' => '3.2.3.0',
    819815        'path'    => $baseDir . '/app/Providers/ClientServiceProvider.php'
    820816    ),
    821817    'SimplyBook\\Providers\\ConfigServiceProvider' => array(
    822         'version' => '3.2.2.1',
     818        'version' => '3.2.3.0',
    823819        'path'    => $baseDir . '/app/Providers/ConfigServiceProvider.php'
    824820    ),
    825821    'SimplyBook\\Providers\\Provider' => array(
    826         'version' => '3.2.2.1',
     822        'version' => '3.2.3.0',
    827823        'path'    => $baseDir . '/app/Providers/Provider.php'
    828824    ),
    829825    'SimplyBook\\Providers\\RequestServiceProvider' => array(
    830         'version' => '3.2.2.1',
     826        'version' => '3.2.3.0',
    831827        'path'    => $baseDir . '/app/Providers/RequestServiceProvider.php'
    832828    ),
    833829    'SimplyBook\\Services\\CallbackUrlService' => array(
    834         'version' => '3.2.2.1',
     830        'version' => '3.2.3.0',
    835831        'path'    => $baseDir . '/app/Services/CallbackUrlService.php'
    836832    ),
    837833    'SimplyBook\\Services\\CapabilityService' => array(
    838         'version' => '3.2.2.1',
     834        'version' => '3.2.3.0',
    839835        'path'    => $baseDir . '/app/Services/CapabilityService.php'
    840836    ),
    841837    'SimplyBook\\Services\\DesignSettingsService' => array(
    842         'version' => '3.2.2.1',
     838        'version' => '3.2.3.0',
    843839        'path'    => $baseDir . '/app/Services/DesignSettingsService.php'
    844840    ),
    845841    'SimplyBook\\Services\\LoginUrlService' => array(
    846         'version' => '3.2.2.1',
     842        'version' => '3.2.3.0',
    847843        'path'    => $baseDir . '/app/Services/LoginUrlService.php'
    848844    ),
    849845    'SimplyBook\\Services\\NoticeDismissalService' => array(
    850         'version' => '3.2.2.1',
     846        'version' => '3.2.3.0',
    851847        'path'    => $baseDir . '/app/Services/NoticeDismissalService.php'
    852848    ),
     849    'SimplyBook\\Services\\PromotionService' => array(
     850        'version' => '3.2.3.0',
     851        'path'    => $baseDir . '/app/Services/PromotionService.php'
     852    ),
    853853    'SimplyBook\\Services\\RelatedPluginService' => array(
    854         'version' => '3.2.2.1',
     854        'version' => '3.2.3.0',
    855855        'path'    => $baseDir . '/app/Services/RelatedPluginService.php'
    856856    ),
    857857    'SimplyBook\\Services\\StatisticsService' => array(
    858         'version' => '3.2.2.1',
     858        'version' => '3.2.3.0',
    859859        'path'    => $baseDir . '/app/Services/StatisticsService.php'
    860860    ),
    861861    'SimplyBook\\Services\\SubscriptionDataService' => array(
    862         'version' => '3.2.2.1',
     862        'version' => '3.2.3.0',
    863863        'path'    => $baseDir . '/app/Services/SubscriptionDataService.php'
    864864    ),
    865865    'SimplyBook\\Services\\ThemeColorService' => array(
    866         'version' => '3.2.2.1',
     866        'version' => '3.2.3.0',
    867867        'path'    => $baseDir . '/app/Services/ThemeColorService.php'
    868868    ),
    869869    'SimplyBook\\Services\\WidgetTrackingService' => array(
    870         'version' => '3.2.2.1',
     870        'version' => '3.2.3.0',
    871871        'path'    => $baseDir . '/app/Services/WidgetTrackingService.php'
    872872    ),
    873873    'SimplyBook\\Support\\Builders\\CompanyBuilder' => array(
    874         'version' => '3.2.2.1',
     874        'version' => '3.2.3.0',
    875875        'path'    => $baseDir . '/app/Support/Builders/CompanyBuilder.php'
    876876    ),
    877877    'SimplyBook\\Support\\Builders\\PageBuilder' => array(
    878         'version' => '3.2.2.1',
     878        'version' => '3.2.3.0',
    879879        'path'    => $baseDir . '/app/Support/Builders/PageBuilder.php'
    880880    ),
    881881    'SimplyBook\\Support\\Builders\\WidgetScriptBuilder' => array(
    882         'version' => '3.2.2.1',
     882        'version' => '3.2.3.0',
    883883        'path'    => $baseDir . '/app/Support/Builders/WidgetScriptBuilder.php'
    884884    ),
    885885    'SimplyBook\\Support\\Helpers\\Event' => array(
    886         'version' => '3.2.2.1',
     886        'version' => '3.2.3.0',
    887887        'path'    => $baseDir . '/app/Support/Helpers/Event.php'
    888888    ),
    889889    'SimplyBook\\Support\\Helpers\\Request' => array(
    890         'version' => '3.2.2.1',
     890        'version' => '3.2.3.0',
    891891        'path'    => $baseDir . '/app/Support/Helpers/Request.php'
    892892    ),
    893893    'SimplyBook\\Support\\Helpers\\Storage' => array(
    894         'version' => '3.2.2.1',
     894        'version' => '3.2.3.0',
    895895        'path'    => $baseDir . '/app/Support/Helpers/Storage.php'
    896896    ),
    897897    'SimplyBook\\Support\\Helpers\\Uninstall' => array(
    898         'version' => '3.2.2.1',
     898        'version' => '3.2.3.0',
    899899        'path'    => $baseDir . '/app/Support/Helpers/Uninstall.php'
    900900    ),
    901901    'SimplyBook\\Support\\Utility\\ColorUtility' => array(
    902         'version' => '3.2.2.1',
     902        'version' => '3.2.3.0',
    903903        'path'    => $baseDir . '/app/Support/Utility/ColorUtility.php'
    904904    ),
    905905    'SimplyBook\\Support\\Utility\\StringUtility' => array(
    906         'version' => '3.2.2.1',
     906        'version' => '3.2.3.0',
    907907        'path'    => $baseDir . '/app/Support/Utility/StringUtility.php'
    908908    ),
    909909    'SimplyBook\\Support\\Widgets\\ElementorWidget' => array(
    910         'version' => '3.2.2.1',
     910        'version' => '3.2.3.0',
    911911        'path'    => $baseDir . '/app/Support/Widgets/ElementorWidget.php'
    912912    ),
    913913    'SimplyBook\\Traits\\HasAllowlistControl' => array(
    914         'version' => '3.2.2.1',
     914        'version' => '3.2.3.0',
    915915        'path'    => $baseDir . '/app/Traits/HasAllowlistControl.php'
    916916    ),
    917917    'SimplyBook\\Traits\\HasApiAccess' => array(
    918         'version' => '3.2.2.1',
     918        'version' => '3.2.3.0',
    919919        'path'    => $baseDir . '/app/Traits/HasApiAccess.php'
    920920    ),
    921921    'SimplyBook\\Traits\\HasEncryption' => array(
    922         'version' => '3.2.2.1',
     922        'version' => '3.2.3.0',
    923923        'path'    => $baseDir . '/app/Traits/HasEncryption.php'
    924924    ),
    925925    'SimplyBook\\Traits\\HasLogging' => array(
    926         'version' => '3.2.2.1',
     926        'version' => '3.2.3.0',
    927927        'path'    => $baseDir . '/app/Traits/HasLogging.php'
    928928    ),
    929929    'SimplyBook\\Traits\\HasNonces' => array(
    930         'version' => '3.2.2.1',
     930        'version' => '3.2.3.0',
    931931        'path'    => $baseDir . '/app/Traits/HasNonces.php'
    932932    ),
    933933    'SimplyBook\\Traits\\HasRestAccess' => array(
    934         'version' => '3.2.2.1',
     934        'version' => '3.2.3.0',
    935935        'path'    => $baseDir . '/app/Traits/HasRestAccess.php'
    936936    ),
    937937    'SimplyBook\\Traits\\HasTokenManagement' => array(
    938         'version' => '3.2.2.1',
     938        'version' => '3.2.3.0',
    939939        'path'    => $baseDir . '/app/Traits/HasTokenManagement.php'
    940940    ),
    941941    'SimplyBook\\Traits\\HasUserAccess' => array(
    942         'version' => '3.2.2.1',
     942        'version' => '3.2.3.0',
    943943        'path'    => $baseDir . '/app/Traits/HasUserAccess.php'
    944944    ),
    945945    'SimplyBook\\Traits\\HasViews' => array(
    946         'version' => '3.2.2.1',
     946        'version' => '3.2.3.0',
    947947        'path'    => $baseDir . '/app/Traits/HasViews.php'
    948948    ),
    949949    'SimplyBook\\Traits\\LegacyLoad' => array(
    950         'version' => '3.2.2.1',
     950        'version' => '3.2.3.0',
    951951        'path'    => $baseDir . '/app/Traits/LegacyLoad.php'
    952952    ),
    953953    'SimplyBook\\Traits\\LegacySave' => array(
    954         'version' => '3.2.2.1',
     954        'version' => '3.2.3.0',
    955955        'path'    => $baseDir . '/app/Traits/LegacySave.php'
    956956    ),
  • simplybook/trunk/vendor/composer/jetpack_autoload_filemap.php

    r3384996 r3399722  
    2828    ),
    2929    'dac67ee3b45b7fdd52cfb86981c8c3d0' => array(
    30         'version' => '3.2.2.1',
     30        'version' => '3.2.3.0',
    3131        'path'    => $baseDir . '/helpers.php'
    3232    ),
  • simplybook/trunk/vendor/jetpack-autoloader/class-autoloader-handler.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-autoloader-locator.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-autoloader.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-container.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-hook-manager.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-latest-autoloader-guard.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-manifest-reader.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-path-processor.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-php-autoloader.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-plugin-locator.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-plugins-handler.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-shutdown-handler.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-version-loader.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
  • simplybook/trunk/vendor/jetpack-autoloader/class-version-selector.php

    r3384996 r3399722  
    66 */
    77
    8 namespace Automattic\Jetpack\Autoloader\jp4da771cd22b8c54009c4aa526a77c26f\al5_0_11;
     8namespace Automattic\Jetpack\Autoloader\jp8d32913a8f1db8963f795cba5d373288\al5_0_11;
    99
    1010 // phpcs:ignore
Note: See TracChangeset for help on using the changeset viewer.