Tokens::SCHEME_LIGHT, 'radius' => 6, 'surface_override' => '', 'ink_override' => '', 'accent_override' => '', ]; } /** * {@inheritDoc} */ public function settingsSchema(): array { return [ 'scheme' => [ 'type' => 'select', 'label' => __( 'زمینه رنگی', 'rahkar-toolkit' ), 'options' => [ Tokens::SCHEME_LIGHT => __( 'روشن', 'rahkar-toolkit' ), Tokens::SCHEME_DARK => __( 'تیره', 'rahkar-toolkit' ), Tokens::SCHEME_THEME => __( 'از رنگهای قالب سایت', 'rahkar-toolkit' ), ], 'help' => __( 'گزینه سوم رنگهای قالب را میخواند، ولی فقط قالبهایی که پالت خود را به شیوه استاندارد وردپرس (theme.json) منتشر میکنند این رنگها را دارند — بیشتر قالبهای بلاک این کار را میکنند و بیشتر قالبهای کلاسیک نه. اگر قالب شما چنین چیزی نداشته باشد چیزی خراب نمیشود: خودبهخود روی حالت روشن میماند. برای قالبهای کلاسیک از بخش «رنگ دستی» پایین استفاده کنید.', 'rahkar-toolkit' ), 'default' => Tokens::SCHEME_LIGHT, 'section' => 'colors', ], 'radius' => [ 'type' => 'number', 'label' => __( 'گردی گوشهها (پیکسل)', 'rahkar-toolkit' ), 'help' => __( 'صفر یعنی گوشههای تیز. اگر قالبتان گوشههای کاملاً گرد دارد، عدد بزرگتری بگذارید تا کادرهای این افزونه بیگانه به نظر نرسند.', 'rahkar-toolkit' ), 'default' => 6, 'min' => 0, 'max' => 32, 'section' => 'colors', ], 'preview' => [ 'type' => 'preview', 'label' => __( 'پیشنمایش', 'rahkar-toolkit' ), 'help' => __( 'همان رنگهایی که پس از ذخیره روی سایت اعمال میشود.', 'rahkar-toolkit' ), 'render' => [ self::class, 'renderPreview' ], 'section' => 'colors', ], 'surface_override' => [ 'type' => 'text', 'label' => __( 'رنگ پسزمینه', 'rahkar-toolkit' ), 'help' => __( 'پسزمینه کادرها و پنجرههای بازشو.', 'rahkar-toolkit' ), 'placeholder' => '#ffffff', 'monospace' => true, 'default' => '', 'section' => 'advanced', ], 'ink_override' => [ 'type' => 'text', 'label' => __( 'رنگ متن', 'rahkar-toolkit' ), 'help' => __( 'باید با رنگ پسزمینه بالا خوانا باشد. این دو همیشه با هم تغییر میکنند.', 'rahkar-toolkit' ), 'placeholder' => '#1f2024', 'monospace' => true, 'default' => '', 'section' => 'advanced', ], 'accent_override' => [ 'type' => 'text', 'label' => __( 'رنگ اصلی', 'rahkar-toolkit' ), 'help' => __( 'رنگ دکمههای اصلی و حلقه فوکوس.', 'rahkar-toolkit' ), 'placeholder' => '#1e874b', 'monospace' => true, 'default' => '', 'section' => 'advanced', ], ]; } /** * {@inheritDoc} */ public function settingsSections(): array { return [ 'colors' => __( 'زمینه رنگی', 'rahkar-toolkit' ), 'advanced' => __( 'رنگ دستی', 'rahkar-toolkit' ), ]; } /** * A sample of the front-end controls, wearing the saved tokens. * * Rendered rather than described, because a colour setting whose result you * cannot see is a colour setting nobody touches. Scoped to its own element * rather than `:root` so the preview cannot repaint the admin screen around * it. * * @internal Called by {@see FieldRenderer} for the `preview` field type. */ public static function renderPreview(): void { $declarations = ''; foreach ( Tokens::resolve() as $name => $value ) { // Values reaching here have been through Tokens::safeValue(), which // accepts only the shapes a colour can legitimately take. $declarations .= sprintf( '--rahkar-%s:%s;', esc_attr( $name ), esc_attr( $value ) ); } printf( '
%s
%s