@times-design-system/components-wordpress 0.1.1-alpha.831 → 0.7.2-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/BLOCK_CREATION_CHECKLIST.md +160 -0
  2. package/BUILD.md +411 -0
  3. package/CHANGELOG.md +30 -0
  4. package/LICENSE +29 -0
  5. package/README.md +972 -5
  6. package/TRANSFORMATION_GUIDE.md +635 -0
  7. package/block.json +10 -0
  8. package/dist/block.json +10 -0
  9. package/dist/blocks/ad-container/block.json +28 -0
  10. package/dist/blocks/ad-container/edit.js +42 -0
  11. package/dist/blocks/ad-container/index.js +10 -0
  12. package/dist/blocks/ad-container/save.js +16 -0
  13. package/dist/blocks/ad-container/style-editor.css +4 -0
  14. package/dist/blocks/ad-container/style.css +27 -0
  15. package/dist/blocks/button/block.json +89 -0
  16. package/dist/blocks/button/edit.js +187 -0
  17. package/dist/blocks/button/index.js +11 -0
  18. package/dist/blocks/button/save.js +52 -0
  19. package/dist/blocks/button/style-editor.css +15 -0
  20. package/dist/blocks/button/style.css +37 -0
  21. package/dist/blocks/chip/block.json +57 -0
  22. package/dist/blocks/chip/edit.js +113 -0
  23. package/dist/blocks/chip/index.js +10 -0
  24. package/dist/blocks/chip/save.js +36 -0
  25. package/dist/blocks/chip/style-editor.css +5 -0
  26. package/dist/blocks/chip/style.css +48 -0
  27. package/dist/blocks/divider/block.json +31 -0
  28. package/dist/blocks/divider/edit.js +42 -0
  29. package/dist/blocks/divider/index.js +10 -0
  30. package/dist/blocks/divider/save.js +18 -0
  31. package/dist/blocks/divider/style-editor.css +4 -0
  32. package/dist/blocks/divider/style.css +25 -0
  33. package/dist/blocks/flag/block.json +48 -0
  34. package/dist/blocks/flag/edit.js +82 -0
  35. package/dist/blocks/flag/index.js +10 -0
  36. package/dist/blocks/flag/save.js +25 -0
  37. package/dist/blocks/flag/style-editor.css +5 -0
  38. package/dist/blocks/flag/style.css +45 -0
  39. package/dist/blocks/icon-button/block.json +43 -0
  40. package/dist/blocks/icon-button/edit.js +82 -0
  41. package/dist/blocks/icon-button/index.js +10 -0
  42. package/dist/blocks/icon-button/save.js +29 -0
  43. package/dist/blocks/icon-button/style-editor.css +5 -0
  44. package/dist/blocks/icon-button/style.css +32 -0
  45. package/dist/blocks/input/block.json +47 -0
  46. package/dist/blocks/input/edit.js +78 -0
  47. package/dist/blocks/input/index.js +10 -0
  48. package/dist/blocks/input/save.js +27 -0
  49. package/dist/blocks/input/style-editor.css +8 -0
  50. package/dist/blocks/input/style.css +30 -0
  51. package/dist/blocks/link/block.json +71 -0
  52. package/dist/blocks/link/edit.js +151 -0
  53. package/dist/blocks/link/index.js +10 -0
  54. package/dist/blocks/link/save.js +46 -0
  55. package/dist/blocks/link/style-editor.css +5 -0
  56. package/dist/blocks/link/style.css +66 -0
  57. package/dist/blocks/text/block.json +32 -0
  58. package/dist/blocks/text/edit.js +56 -0
  59. package/dist/blocks/text/index.js +10 -0
  60. package/dist/blocks/text/save.js +18 -0
  61. package/dist/blocks/text/style-editor.css +4 -0
  62. package/dist/blocks/text/style.css +20 -0
  63. package/dist/blocks/toast/block.json +39 -0
  64. package/dist/blocks/toast/edit.js +85 -0
  65. package/dist/blocks/toast/index.js +10 -0
  66. package/dist/blocks/toast/save.js +29 -0
  67. package/dist/blocks/toast/style-editor.css +4 -0
  68. package/dist/blocks/toast/style.css +51 -0
  69. package/dist/index.cjs +2232 -0
  70. package/dist/index.cjs.map +1 -0
  71. package/dist/index.css +2 -0
  72. package/dist/index.css.map +1 -0
  73. package/dist/index.js +2196 -255
  74. package/dist/index.js.map +1 -1
  75. package/dist/plugin.php +79 -0
  76. package/dist/utils/classBuilder.js +53 -0
  77. package/package.json +39 -7
  78. package/plugin.php +79 -0
  79. package/rollup.config.js +39 -22
  80. package/scripts/build-plugin.cjs +121 -0
  81. package/scripts/create-block.sh +141 -0
  82. package/src/blocks/ad-container/block.json +28 -0
  83. package/src/blocks/ad-container/edit.js +42 -0
  84. package/src/blocks/ad-container/index.js +10 -0
  85. package/src/blocks/ad-container/save.js +16 -0
  86. package/src/blocks/ad-container/style-editor.css +4 -0
  87. package/src/blocks/ad-container/style.css +27 -0
  88. package/src/blocks/button/block.json +89 -0
  89. package/src/blocks/button/edit.js +187 -0
  90. package/src/blocks/button/index.js +11 -0
  91. package/src/blocks/button/save.js +52 -0
  92. package/src/blocks/button/style-editor.css +15 -0
  93. package/src/blocks/button/style.css +37 -0
  94. package/src/blocks/chip/block.json +57 -0
  95. package/src/blocks/chip/edit.js +113 -0
  96. package/src/blocks/chip/index.js +10 -0
  97. package/src/blocks/chip/save.js +36 -0
  98. package/src/blocks/chip/style-editor.css +5 -0
  99. package/src/blocks/chip/style.css +48 -0
  100. package/src/blocks/divider/block.json +31 -0
  101. package/src/blocks/divider/edit.js +42 -0
  102. package/src/blocks/divider/index.js +10 -0
  103. package/src/blocks/divider/save.js +18 -0
  104. package/src/blocks/divider/style-editor.css +4 -0
  105. package/src/blocks/divider/style.css +25 -0
  106. package/src/blocks/flag/block.json +48 -0
  107. package/src/blocks/flag/edit.js +82 -0
  108. package/src/blocks/flag/index.js +10 -0
  109. package/src/blocks/flag/save.js +25 -0
  110. package/src/blocks/flag/style-editor.css +5 -0
  111. package/src/blocks/flag/style.css +45 -0
  112. package/src/blocks/icon-button/block.json +43 -0
  113. package/src/blocks/icon-button/edit.js +82 -0
  114. package/src/blocks/icon-button/index.js +10 -0
  115. package/src/blocks/icon-button/save.js +29 -0
  116. package/src/blocks/icon-button/style-editor.css +5 -0
  117. package/src/blocks/icon-button/style.css +32 -0
  118. package/src/blocks/input/block.json +47 -0
  119. package/src/blocks/input/edit.js +78 -0
  120. package/src/blocks/input/index.js +10 -0
  121. package/src/blocks/input/save.js +27 -0
  122. package/src/blocks/input/style-editor.css +8 -0
  123. package/src/blocks/input/style.css +30 -0
  124. package/src/blocks/link/block.json +71 -0
  125. package/src/blocks/link/edit.js +151 -0
  126. package/src/blocks/link/index.js +10 -0
  127. package/src/blocks/link/save.js +46 -0
  128. package/src/blocks/link/style-editor.css +5 -0
  129. package/src/blocks/link/style.css +66 -0
  130. package/src/blocks/text/block.json +32 -0
  131. package/src/blocks/text/edit.js +56 -0
  132. package/src/blocks/text/index.js +10 -0
  133. package/src/blocks/text/save.js +18 -0
  134. package/src/blocks/text/style-editor.css +4 -0
  135. package/src/blocks/text/style.css +20 -0
  136. package/src/blocks/toast/block.json +39 -0
  137. package/src/blocks/toast/edit.js +85 -0
  138. package/src/blocks/toast/index.js +10 -0
  139. package/src/blocks/toast/save.js +29 -0
  140. package/src/blocks/toast/style-editor.css +4 -0
  141. package/src/blocks/toast/style.css +51 -0
  142. package/src/index.js +15 -12
  143. package/src/utils/classBuilder.js +53 -0
  144. package/tsconfig.json +4 -4
  145. package/__tests__/wordpress.test.js +0 -0
  146. package/dist/AdContainer/AdContainer.d.ts +0 -9
  147. package/dist/Article/ArticleMetaContainer/ArticleMetaContainer.d.ts +0 -8
  148. package/dist/Article/UpNextArticles/UpNextArticles.d.ts +0 -13
  149. package/dist/Button/Button.d.ts +0 -15
  150. package/dist/CommentsDisabled/CommentsDisabled.d.ts +0 -10
  151. package/dist/CommentsDisabled/CommentsDisabled.stories.d.ts +0 -44
  152. package/dist/CommentsDisabled/index.d.ts +0 -2
  153. package/dist/Divider/Divider.d.ts +0 -15
  154. package/dist/Input/Input.d.ts +0 -25
  155. package/dist/Link/Link.d.ts +0 -18
  156. package/dist/Text/Text.d.ts +0 -14
  157. package/dist/index.cjs.js +0 -299
  158. package/dist/index.cjs.js.map +0 -1
  159. package/dist/styles.css +0 -151
  160. package/dist/typographyStyles.css +0 -30
  161. package/dist/utils/cn.d.ts +0 -1
  162. package/dist/utils/hooks.d.ts +0 -8
  163. package/src/AdContainer/AdContainer.tsx +0 -31
  164. package/src/AdContainer/styles.css +0 -58
  165. package/src/Article/ArticleMetaContainer/ArticleMetaContainer.tsx +0 -14
  166. package/src/Article/ArticleMetaContainer/styles.css +0 -151
  167. package/src/Article/UpNextArticles/UpNextArticles.tsx +0 -69
  168. package/src/Article/UpNextArticles/styles.css +0 -151
  169. package/src/Button/Button.tsx +0 -36
  170. package/src/Button/styles.css +0 -30
  171. package/src/CommentsDisabled/CommentsDisabled.stories.tsx +0 -178
  172. package/src/CommentsDisabled/CommentsDisabled.tsx +0 -63
  173. package/src/CommentsDisabled/IMPLEMENTATION_SUMMARY.md +0 -305
  174. package/src/CommentsDisabled/README.md +0 -284
  175. package/src/CommentsDisabled/TOKEN_MAPPING.md +0 -269
  176. package/src/CommentsDisabled/index.ts +0 -2
  177. package/src/CommentsDisabled/styles.css +0 -82
  178. package/src/Divider/Divider.tsx +0 -41
  179. package/src/Divider/styles.css +0 -80
  180. package/src/Input/Input.tsx +0 -62
  181. package/src/Input/styles.css +0 -69
  182. package/src/Link/Link.tsx +0 -49
  183. package/src/Link/styles.css +0 -111
  184. package/src/Text/Text.tsx +0 -38
  185. package/src/Text/styles.css +0 -30
  186. package/src/Text/typographyStyles.css +0 -30
  187. package/src/utils/cn.js +0 -3
  188. package/src/utils/cn.tsx +0 -3
  189. package/src/utils/hooks.ts +0 -34
@@ -0,0 +1,20 @@
1
+ /* Text Block Styles */
2
+ .tds-text {
3
+ margin: 0;
4
+ padding: 0;
5
+ }
6
+
7
+ .tds-text--body-standard {
8
+ font: var(--typography-body-standard);
9
+ color: var(--color-text-primary);
10
+ }
11
+
12
+ .tds-text--body-small {
13
+ font: var(--typography-body-small);
14
+ color: var(--color-text-secondary);
15
+ }
16
+
17
+ .tds-text--headline {
18
+ font: var(--typography-headline);
19
+ color: var(--color-text-primary);
20
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$schema": "https://schemas.wp.org/trunk/block.json",
3
+ "apiVersion": 3,
4
+ "name": "times/toast",
5
+ "title": "Toast",
6
+ "category": "common",
7
+ "description": "Notification toast component",
8
+ "icon": "bell",
9
+ "supports": {
10
+ "html": false,
11
+ "spacing": {
12
+ "margin": true
13
+ }
14
+ },
15
+ "attributes": {
16
+ "label": {
17
+ "type": "string",
18
+ "default": ""
19
+ },
20
+ "intent": {
21
+ "type": "string",
22
+ "default": "info",
23
+ "enum": ["info", "success", "warning", "error"]
24
+ },
25
+ "link": {
26
+ "type": "boolean",
27
+ "default": false
28
+ },
29
+ "linkLabel": {
30
+ "type": "string",
31
+ "default": ""
32
+ },
33
+ "timeout": {
34
+ "type": "number",
35
+ "default": 5000
36
+ }
37
+ },
38
+ "example": {}
39
+ }
@@ -0,0 +1,85 @@
1
+ import {
2
+ useBlockProps,
3
+ RichText,
4
+ InspectorControls
5
+ } from '@wordpress/block-editor';
6
+ import {
7
+ PanelBody,
8
+ SelectControl,
9
+ TextControl,
10
+ ToggleControl,
11
+ NumberControl
12
+ } from '@wordpress/components';
13
+
14
+ const edit = ({ attributes, setAttributes }) => {
15
+ const { label, intent, link, linkLabel, timeout } = attributes;
16
+ const blockProps = useBlockProps();
17
+
18
+ const buildClass = () => {
19
+ const classes = ['tds-toast'];
20
+ classes.push(`tds-toast--intent-${intent}`);
21
+ return classes.join(' ');
22
+ };
23
+
24
+ return (
25
+ <>
26
+ <InspectorControls>
27
+ <PanelBody title="Toast Settings">
28
+ <TextControl
29
+ label="Label"
30
+ value={label}
31
+ onChange={(val) => setAttributes({ label: val })}
32
+ />
33
+ <SelectControl
34
+ label="Intent"
35
+ value={intent}
36
+ options={[
37
+ { label: 'Info', value: 'info' },
38
+ { label: 'Success', value: 'success' },
39
+ { label: 'Warning', value: 'warning' },
40
+ { label: 'Error', value: 'error' }
41
+ ]}
42
+ onChange={(val) => setAttributes({ intent: val })}
43
+ />
44
+ <ToggleControl
45
+ label="Show Link"
46
+ checked={link}
47
+ onChange={(val) => setAttributes({ link: val })}
48
+ />
49
+ {link && (
50
+ <TextControl
51
+ label="Link Label"
52
+ value={linkLabel}
53
+ onChange={(val) => setAttributes({ linkLabel: val })}
54
+ />
55
+ )}
56
+ <NumberControl
57
+ label="Timeout (ms)"
58
+ value={timeout}
59
+ onChange={(val) => setAttributes({ timeout: val || 0 })}
60
+ min={0}
61
+ step={1000}
62
+ />
63
+ </PanelBody>
64
+ </InspectorControls>
65
+ <div
66
+ {...blockProps}
67
+ className={buildClass()}
68
+ role="status"
69
+ aria-live="polite"
70
+ >
71
+ <div className="tds-toast__content">
72
+ <RichText
73
+ value={label}
74
+ onChange={(val) => setAttributes({ label: val })}
75
+ placeholder="Toast message"
76
+ className="tds-toast__label"
77
+ />
78
+ </div>
79
+ {link && <button className="tds-toast__link">{linkLabel}</button>}
80
+ </div>
81
+ </>
82
+ );
83
+ };
84
+
85
+ export default edit;
@@ -0,0 +1,10 @@
1
+ import { registerBlockType } from '@wordpress/blocks';
2
+ import metadata from './block.json';
3
+ import edit from './edit';
4
+ import save from './save';
5
+
6
+ registerBlockType(metadata.name, {
7
+ ...metadata,
8
+ edit,
9
+ save
10
+ });
@@ -0,0 +1,29 @@
1
+ import { useBlockProps, RichText } from '@wordpress/block-editor';
2
+
3
+ const save = ({ attributes }) => {
4
+ const { label, intent, link, linkLabel, timeout } = attributes;
5
+ const blockProps = useBlockProps.save();
6
+
7
+ const buildClass = () => {
8
+ const classes = ['tds-toast'];
9
+ classes.push(`tds-toast--intent-${intent}`);
10
+ return classes.join(' ');
11
+ };
12
+
13
+ return (
14
+ <div
15
+ {...blockProps}
16
+ className={buildClass()}
17
+ role="status"
18
+ aria-live="polite"
19
+ data-timeout={timeout}
20
+ >
21
+ <div className="tds-toast__content">
22
+ <RichText.Content value={label} className="tds-toast__label" />
23
+ </div>
24
+ {link && <button className="tds-toast__link">{linkLabel}</button>}
25
+ </div>
26
+ );
27
+ };
28
+
29
+ export default save;
@@ -0,0 +1,4 @@
1
+ /* Toast Editor Styles */
2
+ .wp-block-times-toast {
3
+ margin: var(--spacing-m) 0;
4
+ }
@@ -0,0 +1,51 @@
1
+ /* Toast Block Styles */
2
+ .tds-toast {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ gap: var(--spacing-m);
7
+ padding: var(--spacing-m);
8
+ border-radius: var(--border-radius-s);
9
+ background-color: var(--color-fill-secondary);
10
+ color: var(--color-text-primary);
11
+ font: var(--typography-body-standard);
12
+ margin-bottom: var(--spacing-m);
13
+ }
14
+
15
+ .tds-toast--intent-success {
16
+ background-color: var(--color-fill-positive);
17
+ color: var(--color-text-on-positive);
18
+ }
19
+
20
+ .tds-toast--intent-warning {
21
+ background-color: var(--color-fill-warning);
22
+ color: var(--color-text-on-warning);
23
+ }
24
+
25
+ .tds-toast--intent-error {
26
+ background-color: var(--color-fill-negative);
27
+ color: var(--color-text-on-negative);
28
+ }
29
+
30
+ .tds-toast__content {
31
+ flex: 1;
32
+ }
33
+
34
+ .tds-toast__label {
35
+ margin: 0;
36
+ }
37
+
38
+ .tds-toast__link {
39
+ padding: var(--spacing-xs) var(--spacing-s);
40
+ border: none;
41
+ border-radius: var(--border-radius-xs);
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;
47
+ }
48
+
49
+ .tds-toast__link:hover {
50
+ background-color: rgba(255, 255, 255, 0.2);
51
+ }