@times-design-system/components-wordpress 1.2.2-alpha.0 → 1.2.2-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BLOCK_CREATION_CHECKLIST.md +131 -19
- package/README.md +10 -4
- package/SCSS_VARIABLES_REFERENCE.md +314 -0
- package/STYLING_SYNC_GUIDE.md +306 -0
- package/TRANSFORMATION_GUIDE.md +280 -13
- package/dist/blocks/ad-container/block.json +1 -0
- package/dist/blocks/ad-container/render.php +27 -0
- package/dist/blocks/ad-container/style.css +23 -20
- package/dist/blocks/button/block.json +1 -0
- package/dist/blocks/button/render.php +71 -0
- package/dist/blocks/button/style-resolved.css +153 -0
- package/dist/blocks/button/style.css +138 -18
- package/dist/blocks/chip/block.json +1 -0
- package/dist/blocks/chip/render.php +40 -0
- package/dist/blocks/chip/style.css +68 -29
- package/dist/blocks/divider/block.json +1 -0
- package/dist/blocks/divider/render.php +31 -0
- package/dist/blocks/divider/style.css +25 -13
- package/dist/blocks/flag/block.json +1 -0
- package/dist/blocks/flag/render.php +34 -0
- package/dist/blocks/flag/style.css +39 -30
- package/dist/blocks/icon-button/block.json +1 -0
- package/dist/blocks/icon-button/render.php +46 -0
- package/dist/blocks/icon-button/style.css +21 -22
- package/dist/blocks/input/block.json +1 -0
- package/dist/blocks/input/render.php +39 -0
- package/dist/blocks/input/style.css +40 -17
- package/dist/blocks/link/block.json +1 -0
- package/dist/blocks/link/render.php +44 -0
- package/dist/blocks/link/style.css +87 -34
- package/dist/blocks/text/block.json +1 -0
- package/dist/blocks/text/render.php +26 -0
- package/dist/blocks/text/style.css +5 -18
- package/dist/blocks/toast/block.json +1 -0
- package/dist/blocks/toast/render.php +37 -0
- package/dist/blocks/toast/style.css +50 -34
- package/dist/index.cjs +20 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/blocks/ad-container/block.json +1 -0
- package/src/blocks/ad-container/render.php +27 -0
- package/src/blocks/ad-container/style.css +23 -20
- package/src/blocks/button/block.json +1 -0
- package/src/blocks/button/render.php +71 -0
- package/src/blocks/button/style-resolved.css +153 -0
- package/src/blocks/button/style.css +138 -18
- package/src/blocks/chip/block.json +1 -0
- package/src/blocks/chip/render.php +40 -0
- package/src/blocks/chip/style.css +68 -29
- package/src/blocks/divider/block.json +1 -0
- package/src/blocks/divider/render.php +31 -0
- package/src/blocks/divider/style.css +25 -13
- package/src/blocks/flag/block.json +1 -0
- package/src/blocks/flag/render.php +34 -0
- package/src/blocks/flag/style.css +39 -30
- package/src/blocks/icon-button/block.json +1 -0
- package/src/blocks/icon-button/render.php +46 -0
- package/src/blocks/icon-button/style.css +21 -22
- package/src/blocks/input/block.json +1 -0
- package/src/blocks/input/render.php +39 -0
- package/src/blocks/input/style.css +40 -17
- package/src/blocks/link/block.json +1 -0
- package/src/blocks/link/render.php +44 -0
- package/src/blocks/link/style.css +87 -34
- package/src/blocks/text/block.json +1 -0
- package/src/blocks/text/render.php +26 -0
- package/src/blocks/text/style.css +5 -18
- package/src/blocks/toast/block.json +1 -0
- package/src/blocks/toast/render.php +37 -0
- package/src/blocks/toast/style.css +50 -34
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
/**
|
|
3
|
+
* Text Block Render Callback
|
|
4
|
+
*
|
|
5
|
+
* Renders the Text typography block on the frontend.
|
|
6
|
+
*
|
|
7
|
+
* @package TimesDesignSystem\ComponentsWordPress
|
|
8
|
+
* @var array $attributes Block attributes
|
|
9
|
+
* @var string $content Block content
|
|
10
|
+
* @var WP_Block $block Block instance
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
$as = isset($attributes['as']) ? sanitize_text_field($attributes['as']) : 'p';
|
|
14
|
+
$typography_style = isset($attributes['typographyStyle']) ? sanitize_text_field($attributes['typographyStyle']) : '';
|
|
15
|
+
$text_content = isset($attributes['content']) ? wp_kses_post($attributes['content']) : '';
|
|
16
|
+
|
|
17
|
+
$tag_name = in_array($as, ['p', 'span', 'h1', 'h2', 'h3', 'h4', 'h5'], true) ? $as : 'p';
|
|
18
|
+
$class_name = 'tds-text';
|
|
19
|
+
if ($typography_style) {
|
|
20
|
+
$class_name .= ' tds-text--' . sanitize_html_class($typography_style);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
$wrapper_attrs = get_block_wrapper_attributes(['class' => $class_name]);
|
|
24
|
+
?>
|
|
25
|
+
|
|
26
|
+
<?php echo wp_sprintf('<%s %s>%s</%s>', $tag_name, wp_kses_post($wrapper_attrs), wp_kses_post($text_content), $tag_name); ?>
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
/* Text Block Styles */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
padding: 0;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.tds-text--body-standard {
|
|
8
|
-
font: var(--typography-body-standard);
|
|
9
|
-
color: var(--color-text-primary);
|
|
10
|
-
}
|
|
1
|
+
/* Text Block Frontend Styles */
|
|
2
|
+
/* Using resolved design token values for self-contained styling */
|
|
3
|
+
/* Text component is typography-based, minimal CSS needed */
|
|
11
4
|
|
|
12
|
-
.tds-text
|
|
13
|
-
|
|
14
|
-
color: var(--color-text-secondary);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.tds-text--headline {
|
|
18
|
-
font: var(--typography-headline);
|
|
19
|
-
color: var(--color-text-primary);
|
|
5
|
+
.tds-text {
|
|
6
|
+
/* Base typography handled by design tokens and parent context */
|
|
20
7
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
/**
|
|
3
|
+
* Toast Block Render Callback
|
|
4
|
+
*
|
|
5
|
+
* Renders the Toast notification block on the frontend.
|
|
6
|
+
*
|
|
7
|
+
* @package TimesDesignSystem\ComponentsWordPress
|
|
8
|
+
* @var array $attributes Block attributes
|
|
9
|
+
* @var string $content Block content
|
|
10
|
+
* @var WP_Block $block Block instance
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
$label = isset($attributes['label']) ? wp_kses_post($attributes['label']) : '';
|
|
14
|
+
$intent = isset($attributes['intent']) ? sanitize_text_field($attributes['intent']) : '';
|
|
15
|
+
$link = isset($attributes['link']) ? esc_url($attributes['link']) : '';
|
|
16
|
+
$link_label = isset($attributes['linkLabel']) ? sanitize_text_field($attributes['linkLabel']) : '';
|
|
17
|
+
$timeout = isset($attributes['timeout']) ? intval($attributes['timeout']) : 0;
|
|
18
|
+
|
|
19
|
+
$classes = ['tds-toast'];
|
|
20
|
+
$classes[] = 'tds-toast--intent-' . $intent;
|
|
21
|
+
|
|
22
|
+
$wrapper_attrs = get_block_wrapper_attributes(['class' => implode(' ', $classes)]);
|
|
23
|
+
?>
|
|
24
|
+
|
|
25
|
+
<div
|
|
26
|
+
<?php echo wp_kses_post($wrapper_attrs); ?>
|
|
27
|
+
role="status"
|
|
28
|
+
aria-live="polite"
|
|
29
|
+
<?php echo $timeout ? 'data-timeout="' . esc_attr($timeout) . '"' : ''; ?>
|
|
30
|
+
>
|
|
31
|
+
<div class="tds-toast__content">
|
|
32
|
+
<div class="tds-toast__label"><?php echo wp_kses_post($label); ?></div>
|
|
33
|
+
</div>
|
|
34
|
+
<?php if ($link && $link_label) : ?>
|
|
35
|
+
<a href="<?php echo esc_attr($link); ?>" class="tds-toast__link"><?php echo wp_kses_post($link_label); ?></a>
|
|
36
|
+
<?php endif; ?>
|
|
37
|
+
</div>
|
|
@@ -1,51 +1,67 @@
|
|
|
1
|
-
/* Toast Block Styles */
|
|
1
|
+
/* Toast Block Frontend Styles */
|
|
2
|
+
/* Using resolved design token values for self-contained styling */
|
|
3
|
+
|
|
2
4
|
.tds-toast {
|
|
3
|
-
|
|
5
|
+
--tds-toast-fill: #22724f;
|
|
6
|
+
--tds-toast-text: #ffffff;
|
|
7
|
+
--tds-toast-link: #ffffff;
|
|
8
|
+
|
|
9
|
+
display: inline-flex;
|
|
4
10
|
align-items: center;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
gap: 12px;
|
|
12
|
+
width: 373px;
|
|
13
|
+
min-height: 48px;
|
|
14
|
+
padding: 12px 16px;
|
|
15
|
+
border-radius: 4px;
|
|
16
|
+
background: var(--tds-toast-fill);
|
|
17
|
+
color: var(--tds-toast-text);
|
|
18
|
+
box-shadow: 0 16px 24px 0 rgb(0 0 0 / 8%);
|
|
19
|
+
box-sizing: border-box;
|
|
13
20
|
}
|
|
14
21
|
|
|
15
|
-
.tds-
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
.tds-toast__content {
|
|
23
|
+
flex: 1 1 auto;
|
|
24
|
+
min-width: 0;
|
|
18
25
|
}
|
|
19
26
|
|
|
20
|
-
.tds-
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
.tds-toast__label {
|
|
28
|
+
font-family: Roboto;
|
|
29
|
+
font-size: 1rem;
|
|
30
|
+
line-height: 1.5;
|
|
31
|
+
font-weight: 400;
|
|
23
32
|
}
|
|
24
33
|
|
|
25
|
-
.tds-
|
|
26
|
-
|
|
27
|
-
|
|
34
|
+
.tds-toast__link {
|
|
35
|
+
flex: 0 0 auto;
|
|
36
|
+
font-family: Roboto;
|
|
37
|
+
font-size: 1rem;
|
|
38
|
+
line-height: 1.5;
|
|
39
|
+
font-weight: 700;
|
|
40
|
+
text-decoration: underline;
|
|
41
|
+
color: var(--tds-toast-link);
|
|
42
|
+
cursor: pointer;
|
|
28
43
|
}
|
|
29
44
|
|
|
30
|
-
.tds-
|
|
31
|
-
|
|
45
|
+
.tds-toast--intent-success {
|
|
46
|
+
--tds-toast-fill: #22724f;
|
|
47
|
+
--tds-toast-text: #ffffff;
|
|
48
|
+
--tds-toast-link: #ffffff;
|
|
32
49
|
}
|
|
33
50
|
|
|
34
|
-
.tds-
|
|
35
|
-
|
|
51
|
+
.tds-toast--intent-info {
|
|
52
|
+
--tds-toast-fill: #0a3472;
|
|
53
|
+
--tds-toast-text: #ffffff;
|
|
54
|
+
--tds-toast-link: #ffffff;
|
|
36
55
|
}
|
|
37
56
|
|
|
38
|
-
.tds-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
background-color: rgba(255, 255, 255, 0.1);
|
|
43
|
-
color: inherit;
|
|
44
|
-
cursor: pointer;
|
|
45
|
-
transition: all 0.2s ease-in-out;
|
|
46
|
-
white-space: nowrap;
|
|
57
|
+
.tds-toast--intent-warning {
|
|
58
|
+
--tds-toast-fill: #e49307;
|
|
59
|
+
--tds-toast-text: #000000;
|
|
60
|
+
--tds-toast-link: #000000;
|
|
47
61
|
}
|
|
48
62
|
|
|
49
|
-
.tds-
|
|
50
|
-
|
|
63
|
+
.tds-toast--intent-error {
|
|
64
|
+
--tds-toast-fill: #cb0705;
|
|
65
|
+
--tds-toast-text: #ffffff;
|
|
66
|
+
--tds-toast-link: #ffffff;
|
|
51
67
|
}
|