@eightshift/frontend-libs-tailwind 1.5.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/package.json +11 -18
  3. package/blocks/init/assets/application-admin.js +0 -10
  4. package/blocks/init/assets/application.js +0 -13
  5. package/blocks/init/assets/fonts/fraunces-italic-latin-extended.woff2 +0 -0
  6. package/blocks/init/assets/fonts/fraunces-italic-latin.woff2 +0 -0
  7. package/blocks/init/assets/fonts/fraunces-latin-extended.woff2 +0 -0
  8. package/blocks/init/assets/fonts/fraunces-latin.woff2 +0 -0
  9. package/blocks/init/assets/fonts/noto-sans-italic-latin-extended.woff2 +0 -0
  10. package/blocks/init/assets/fonts/noto-sans-italic-latin.woff2 +0 -0
  11. package/blocks/init/assets/fonts/noto-sans-latin-extended.woff2 +0 -0
  12. package/blocks/init/assets/fonts/noto-sans-latin.woff2 +0 -0
  13. package/blocks/init/assets/images/index.js +0 -5
  14. package/blocks/init/assets/scripts/application-admin.js +0 -7
  15. package/blocks/init/assets/scripts/application.js +0 -3
  16. package/blocks/init/assets/scripts/theme-colors.js +0 -39
  17. package/blocks/init/assets/styles/application-admin.css +0 -6
  18. package/blocks/init/assets/styles/application.css +0 -3
  19. package/blocks/init/src/Blocks/assets/application-blocks-editor.js +0 -14
  20. package/blocks/init/src/Blocks/assets/application-blocks-frontend.js +0 -13
  21. package/blocks/init/src/Blocks/assets/application-blocks.js +0 -9
  22. package/blocks/init/src/Blocks/assets/scripts/application-blocks-editor.js +0 -65
  23. package/blocks/init/src/Blocks/assets/scripts/application-blocks-frontend.js +0 -24
  24. package/blocks/init/src/Blocks/assets/scripts/link-section-editor.js +0 -262
  25. package/blocks/init/src/Blocks/assets/scripts/shared.js +0 -25
  26. package/blocks/init/src/Blocks/assets/styles/application-blocks-editor.css +0 -15
  27. package/blocks/init/src/Blocks/assets/styles/application-blocks-frontend.css +0 -9
  28. package/blocks/init/src/Blocks/assets/styles/application-blocks.css +0 -1
  29. package/blocks/init/src/Blocks/assets/styles/editor/editor-overrides.css +0 -15
  30. package/blocks/init/src/Blocks/assets/styles/fonts.css +0 -90
  31. package/blocks/init/src/Blocks/assets/styles/tailwind.css +0 -30
  32. package/blocks/init/src/Blocks/components/admin-theme-options/admin-theme-options.php +0 -20
  33. package/blocks/init/src/Blocks/components/admin-theme-options/assets-admin/index.js +0 -36
  34. package/blocks/init/src/Blocks/components/admin-theme-options/assets-admin/pages/parts.js +0 -56
  35. package/blocks/init/src/Blocks/components/admin-theme-options/manifest.json +0 -5
  36. package/blocks/init/src/Blocks/components/button/assets/index.js +0 -22
  37. package/blocks/init/src/Blocks/components/button/button.php +0 -88
  38. package/blocks/init/src/Blocks/components/button/components/button-editor.js +0 -36
  39. package/blocks/init/src/Blocks/components/button/components/button-options.js +0 -134
  40. package/blocks/init/src/Blocks/components/button/manifest.json +0 -302
  41. package/blocks/init/src/Blocks/components/card/card.php +0 -42
  42. package/blocks/init/src/Blocks/components/card/components/card-editor.js +0 -43
  43. package/blocks/init/src/Blocks/components/card/components/card-options.js +0 -55
  44. package/blocks/init/src/Blocks/components/card/manifest.json +0 -111
  45. package/blocks/init/src/Blocks/components/head/head.php +0 -52
  46. package/blocks/init/src/Blocks/components/head/manifest.json +0 -17
  47. package/blocks/init/src/Blocks/components/heading/components/heading-editor.js +0 -26
  48. package/blocks/init/src/Blocks/components/heading/components/heading-options.js +0 -62
  49. package/blocks/init/src/Blocks/components/heading/heading.php +0 -45
  50. package/blocks/init/src/Blocks/components/heading/manifest.json +0 -76
  51. package/blocks/init/src/Blocks/components/hero/components/hero-editor.js +0 -42
  52. package/blocks/init/src/Blocks/components/hero/components/hero-options.js +0 -100
  53. package/blocks/init/src/Blocks/components/hero/hero.php +0 -45
  54. package/blocks/init/src/Blocks/components/hero/manifest.json +0 -96
  55. package/blocks/init/src/Blocks/components/icon/components/icon-editor.js +0 -23
  56. package/blocks/init/src/Blocks/components/icon/components/icon-options.js +0 -65
  57. package/blocks/init/src/Blocks/components/icon/icon.php +0 -53
  58. package/blocks/init/src/Blocks/components/icon/manifest.json +0 -1238
  59. package/blocks/init/src/Blocks/components/image/components/image-editor.js +0 -64
  60. package/blocks/init/src/Blocks/components/image/components/image-options.js +0 -111
  61. package/blocks/init/src/Blocks/components/image/image.php +0 -68
  62. package/blocks/init/src/Blocks/components/image/manifest.json +0 -125
  63. package/blocks/init/src/Blocks/components/list/components/list-editor.js +0 -30
  64. package/blocks/init/src/Blocks/components/list/components/list-options.js +0 -62
  65. package/blocks/init/src/Blocks/components/list/list.php +0 -32
  66. package/blocks/init/src/Blocks/components/list/manifest.json +0 -127
  67. package/blocks/init/src/Blocks/components/load-more/assets/index.js +0 -19
  68. package/blocks/init/src/Blocks/components/load-more/assets/load-more.js +0 -146
  69. package/blocks/init/src/Blocks/components/load-more/components/load-more-editor.js +0 -14
  70. package/blocks/init/src/Blocks/components/load-more/components/load-more-options.js +0 -19
  71. package/blocks/init/src/Blocks/components/load-more/load-more.php +0 -47
  72. package/blocks/init/src/Blocks/components/load-more/manifest.json +0 -39
  73. package/blocks/init/src/Blocks/components/modal/assets/index.js +0 -27
  74. package/blocks/init/src/Blocks/components/modal/manifest.json +0 -48
  75. package/blocks/init/src/Blocks/components/modal/modal.php +0 -46
  76. package/blocks/init/src/Blocks/components/paragraph/components/paragraph-editor.js +0 -38
  77. package/blocks/init/src/Blocks/components/paragraph/components/paragraph-options.js +0 -48
  78. package/blocks/init/src/Blocks/components/paragraph/manifest.json +0 -81
  79. package/blocks/init/src/Blocks/components/paragraph/paragraph.php +0 -33
  80. package/blocks/init/src/Blocks/components/post-header/manifest.json +0 -5
  81. package/blocks/init/src/Blocks/components/post-header/post-header.php +0 -24
  82. package/blocks/init/src/Blocks/components/quote/components/quote-editor.js +0 -53
  83. package/blocks/init/src/Blocks/components/quote/components/quote-options.js +0 -29
  84. package/blocks/init/src/Blocks/components/quote/manifest.json +0 -47
  85. package/blocks/init/src/Blocks/components/quote/quote.php +0 -49
  86. package/blocks/init/src/Blocks/components/share/assets/index.js +0 -39
  87. package/blocks/init/src/Blocks/components/share/components/share-editor.js +0 -28
  88. package/blocks/init/src/Blocks/components/share/components/share-options.js +0 -112
  89. package/blocks/init/src/Blocks/components/share/manifest.json +0 -72
  90. package/blocks/init/src/Blocks/components/share/share.php +0 -69
  91. package/blocks/init/src/Blocks/components/tracking-before-body-end/manifest.json +0 -5
  92. package/blocks/init/src/Blocks/components/tracking-before-body-end/tracking-before-body-end.php +0 -9
  93. package/blocks/init/src/Blocks/components/tracking-head/manifest.json +0 -5
  94. package/blocks/init/src/Blocks/components/tracking-head/tracking-head.php +0 -9
  95. package/blocks/init/src/Blocks/components/video/components/video-editor.js +0 -74
  96. package/blocks/init/src/Blocks/components/video/components/video-options.js +0 -279
  97. package/blocks/init/src/Blocks/components/video/manifest.json +0 -120
  98. package/blocks/init/src/Blocks/components/video/video.php +0 -70
  99. package/blocks/init/src/Blocks/custom/accordion/accordion-block.js +0 -15
  100. package/blocks/init/src/Blocks/custom/accordion/accordion.php +0 -28
  101. package/blocks/init/src/Blocks/custom/accordion/assets/index.js +0 -37
  102. package/blocks/init/src/Blocks/custom/accordion/components/accordion-editor.js +0 -22
  103. package/blocks/init/src/Blocks/custom/accordion/components/accordion-options.js +0 -18
  104. package/blocks/init/src/Blocks/custom/accordion/manifest.json +0 -32
  105. package/blocks/init/src/Blocks/custom/accordion-item/accordion-item-block.js +0 -19
  106. package/blocks/init/src/Blocks/custom/accordion-item/accordion-item.php +0 -46
  107. package/blocks/init/src/Blocks/custom/accordion-item/components/accordion-item-editor.js +0 -60
  108. package/blocks/init/src/Blocks/custom/accordion-item/manifest.json +0 -69
  109. package/blocks/init/src/Blocks/custom/button/button-block.js +0 -13
  110. package/blocks/init/src/Blocks/custom/button/button.php +0 -11
  111. package/blocks/init/src/Blocks/custom/button/components/button-editor.js +0 -12
  112. package/blocks/init/src/Blocks/custom/button/components/button-options.js +0 -12
  113. package/blocks/init/src/Blocks/custom/button/manifest.json +0 -18
  114. package/blocks/init/src/Blocks/custom/card/card-block.js +0 -13
  115. package/blocks/init/src/Blocks/custom/card/card.php +0 -11
  116. package/blocks/init/src/Blocks/custom/card/components/card-editor.js +0 -12
  117. package/blocks/init/src/Blocks/custom/card/components/card-options.js +0 -15
  118. package/blocks/init/src/Blocks/custom/card/manifest.json +0 -18
  119. package/blocks/init/src/Blocks/custom/carousel/assets/index.js +0 -46
  120. package/blocks/init/src/Blocks/custom/carousel/assets/navigation.js +0 -31
  121. package/blocks/init/src/Blocks/custom/carousel/assets/pagination.js +0 -40
  122. package/blocks/init/src/Blocks/custom/carousel/carousel-block.js +0 -21
  123. package/blocks/init/src/Blocks/custom/carousel/carousel.php +0 -61
  124. package/blocks/init/src/Blocks/custom/carousel/components/carousel-editor.js +0 -25
  125. package/blocks/init/src/Blocks/custom/carousel/components/carousel-options.js +0 -47
  126. package/blocks/init/src/Blocks/custom/carousel/manifest.json +0 -130
  127. package/blocks/init/src/Blocks/custom/column/column-block.js +0 -21
  128. package/blocks/init/src/Blocks/custom/column/column-hooks.js +0 -32
  129. package/blocks/init/src/Blocks/custom/column/column.php +0 -21
  130. package/blocks/init/src/Blocks/custom/column/components/column-editor.js +0 -22
  131. package/blocks/init/src/Blocks/custom/column/components/column-options.js +0 -580
  132. package/blocks/init/src/Blocks/custom/column/manifest.json +0 -625
  133. package/blocks/init/src/Blocks/custom/columns/columns-block.js +0 -20
  134. package/blocks/init/src/Blocks/custom/columns/columns.php +0 -21
  135. package/blocks/init/src/Blocks/custom/columns/components/columns-editor.js +0 -81
  136. package/blocks/init/src/Blocks/custom/columns/components/columns-options.js +0 -104
  137. package/blocks/init/src/Blocks/custom/columns/manifest.json +0 -581
  138. package/blocks/init/src/Blocks/custom/featured-content/components/featured-content-editor.js +0 -28
  139. package/blocks/init/src/Blocks/custom/featured-content/components/featured-content-options.js +0 -248
  140. package/blocks/init/src/Blocks/custom/featured-content/featured-content-block.js +0 -13
  141. package/blocks/init/src/Blocks/custom/featured-content/featured-content.php +0 -139
  142. package/blocks/init/src/Blocks/custom/featured-content/manifest.json +0 -131
  143. package/blocks/init/src/Blocks/custom/featured-content/partials/cards.php +0 -39
  144. package/blocks/init/src/Blocks/custom/group/components/group-editor.js +0 -6
  145. package/blocks/init/src/Blocks/custom/group/group-block.js +0 -14
  146. package/blocks/init/src/Blocks/custom/group/group.php +0 -10
  147. package/blocks/init/src/Blocks/custom/group/manifest.json +0 -32
  148. package/blocks/init/src/Blocks/custom/heading/components/heading-editor.js +0 -15
  149. package/blocks/init/src/Blocks/custom/heading/components/heading-options.js +0 -38
  150. package/blocks/init/src/Blocks/custom/heading/heading-block.js +0 -13
  151. package/blocks/init/src/Blocks/custom/heading/heading-transforms.js +0 -26
  152. package/blocks/init/src/Blocks/custom/heading/heading.php +0 -15
  153. package/blocks/init/src/Blocks/custom/heading/manifest.json +0 -79
  154. package/blocks/init/src/Blocks/custom/hero/components/hero-editor.js +0 -12
  155. package/blocks/init/src/Blocks/custom/hero/components/hero-options.js +0 -14
  156. package/blocks/init/src/Blocks/custom/hero/hero-block.js +0 -13
  157. package/blocks/init/src/Blocks/custom/hero/hero.php +0 -11
  158. package/blocks/init/src/Blocks/custom/hero/manifest.json +0 -17
  159. package/blocks/init/src/Blocks/custom/image/components/image-editor.js +0 -12
  160. package/blocks/init/src/Blocks/custom/image/components/image-options.js +0 -14
  161. package/blocks/init/src/Blocks/custom/image/image-block.js +0 -13
  162. package/blocks/init/src/Blocks/custom/image/image.php +0 -11
  163. package/blocks/init/src/Blocks/custom/image/manifest.json +0 -33
  164. package/blocks/init/src/Blocks/custom/list/components/list-editor.js +0 -14
  165. package/blocks/init/src/Blocks/custom/list/components/list-options.js +0 -39
  166. package/blocks/init/src/Blocks/custom/list/list-block.js +0 -13
  167. package/blocks/init/src/Blocks/custom/list/list.php +0 -15
  168. package/blocks/init/src/Blocks/custom/list/manifest.json +0 -58
  169. package/blocks/init/src/Blocks/custom/map/assets/index.js +0 -20
  170. package/blocks/init/src/Blocks/custom/map/assets/map-controller.js +0 -41
  171. package/blocks/init/src/Blocks/custom/map/assets/utils.js +0 -161
  172. package/blocks/init/src/Blocks/custom/map/components/map-components.js +0 -403
  173. package/blocks/init/src/Blocks/custom/map/components/map-editor.js +0 -56
  174. package/blocks/init/src/Blocks/custom/map/components/map-options.js +0 -550
  175. package/blocks/init/src/Blocks/custom/map/manifest.json +0 -79
  176. package/blocks/init/src/Blocks/custom/map/map-block.js +0 -13
  177. package/blocks/init/src/Blocks/custom/map/map.php +0 -52
  178. package/blocks/init/src/Blocks/custom/map/styles.css +0 -2
  179. package/blocks/init/src/Blocks/custom/modal/components/modal-editor.js +0 -90
  180. package/blocks/init/src/Blocks/custom/modal/manifest.json +0 -51
  181. package/blocks/init/src/Blocks/custom/modal/modal-block.js +0 -14
  182. package/blocks/init/src/Blocks/custom/modal/modal.php +0 -20
  183. package/blocks/init/src/Blocks/custom/paragraph/components/paragraph-editor.js +0 -17
  184. package/blocks/init/src/Blocks/custom/paragraph/components/paragraph-options.js +0 -38
  185. package/blocks/init/src/Blocks/custom/paragraph/manifest.json +0 -82
  186. package/blocks/init/src/Blocks/custom/paragraph/paragraph-block.js +0 -13
  187. package/blocks/init/src/Blocks/custom/paragraph/paragraph-transforms.js +0 -46
  188. package/blocks/init/src/Blocks/custom/paragraph/paragraph.php +0 -15
  189. package/blocks/init/src/Blocks/custom/quote/components/quote-editor.js +0 -12
  190. package/blocks/init/src/Blocks/custom/quote/components/quote-options.js +0 -14
  191. package/blocks/init/src/Blocks/custom/quote/manifest.json +0 -17
  192. package/blocks/init/src/Blocks/custom/quote/quote-block.js +0 -13
  193. package/blocks/init/src/Blocks/custom/quote/quote.php +0 -13
  194. package/blocks/init/src/Blocks/custom/share/components/share-editor.js +0 -6
  195. package/blocks/init/src/Blocks/custom/share/components/share-options.js +0 -12
  196. package/blocks/init/src/Blocks/custom/share/manifest.json +0 -19
  197. package/blocks/init/src/Blocks/custom/share/share-block.js +0 -13
  198. package/blocks/init/src/Blocks/custom/share/share.php +0 -11
  199. package/blocks/init/src/Blocks/custom/site-footer/components/site-footer-editor.js +0 -57
  200. package/blocks/init/src/Blocks/custom/site-footer/components/site-footer-options.js +0 -106
  201. package/blocks/init/src/Blocks/custom/site-footer/manifest.json +0 -73
  202. package/blocks/init/src/Blocks/custom/site-footer/site-footer-block.js +0 -13
  203. package/blocks/init/src/Blocks/custom/site-footer/site-footer.php +0 -74
  204. package/blocks/init/src/Blocks/custom/site-navigation/assets/index.js +0 -9
  205. package/blocks/init/src/Blocks/custom/site-navigation/components/site-navigation-editor.js +0 -42
  206. package/blocks/init/src/Blocks/custom/site-navigation/components/site-navigation-options.js +0 -73
  207. package/blocks/init/src/Blocks/custom/site-navigation/manifest.json +0 -77
  208. package/blocks/init/src/Blocks/custom/site-navigation/site-navigation-block.js +0 -13
  209. package/blocks/init/src/Blocks/custom/site-navigation/site-navigation.php +0 -99
  210. package/blocks/init/src/Blocks/custom/table-of-contents/assets/index.js +0 -58
  211. package/blocks/init/src/Blocks/custom/table-of-contents/components/table-of-contents-editor.js +0 -38
  212. package/blocks/init/src/Blocks/custom/table-of-contents/components/table-of-contents-options.js +0 -32
  213. package/blocks/init/src/Blocks/custom/table-of-contents/manifest.json +0 -48
  214. package/blocks/init/src/Blocks/custom/table-of-contents/table-of-contents-block.js +0 -13
  215. package/blocks/init/src/Blocks/custom/table-of-contents/table-of-contents.php +0 -31
  216. package/blocks/init/src/Blocks/custom/video/components/video-editor.js +0 -6
  217. package/blocks/init/src/Blocks/custom/video/components/video-options.js +0 -12
  218. package/blocks/init/src/Blocks/custom/video/manifest.json +0 -29
  219. package/blocks/init/src/Blocks/custom/video/video-block.js +0 -13
  220. package/blocks/init/src/Blocks/custom/video/video.php +0 -22
  221. package/blocks/init/src/Blocks/manifest.json +0 -32
  222. package/blocks/init/src/Blocks/variations/card-simple/manifest.json +0 -17
  223. package/blocks/init/src/Blocks/wrapper/components/wrapper-editor.js +0 -12
  224. package/blocks/init/src/Blocks/wrapper/components/wrapper-options.js +0 -364
  225. package/blocks/init/src/Blocks/wrapper/manifest.json +0 -459
  226. package/blocks/init/src/Blocks/wrapper/styles-editor.css +0 -13
  227. package/blocks/init/src/Blocks/wrapper/styles.css +0 -19
  228. package/blocks/init/src/Blocks/wrapper/wrapper.js +0 -27
  229. package/blocks/init/src/Blocks/wrapper/wrapper.php +0 -34
@@ -1,62 +0,0 @@
1
- import { __ } from '@wordpress/i18n';
2
- import { getOption, checkAttr, getAttrKey, getHiddenOptions } from '@eightshift/frontend-libs-tailwind/scripts';
3
- import { ComponentToggle, HStack, OptionSelect } from '@eightshift/ui-components';
4
- import { icons } from '@eightshift/ui-components/icons';
5
- import manifest from './../manifest.json';
6
-
7
- export const HeadingOptions = (attributes) => {
8
- const { setAttributes, hideOptions, additionalControls, ...rest } = attributes;
9
-
10
- const hiddenOptions = getHiddenOptions(hideOptions);
11
-
12
- const headingUse = checkAttr('headingUse', attributes, manifest);
13
- const headingSize = checkAttr('headingSize', attributes, manifest);
14
- const headingTag = checkAttr('headingTag', attributes, manifest);
15
-
16
- const headingTags = [
17
- { label: __('Heading 1', '%g_textdomain%'), value: 'h1' },
18
- { label: __('Heading 2', '%g_textdomain%'), value: 'h2' },
19
- { label: __('Heading 3', '%g_textdomain%'), value: 'h3' },
20
- { label: __('Heading 4', '%g_textdomain%'), value: 'h4' },
21
- { label: __('Heading 5', '%g_textdomain%'), value: 'h5' },
22
- { label: __('Heading 6', '%g_textdomain%'), value: 'h6' },
23
- { label: __('Paragraph', '%g_textdomain%'), value: 'p' },
24
- ];
25
-
26
- return (
27
- <ComponentToggle
28
- label={manifest.title}
29
- icon={icons.heading}
30
- onChange={(value) => setAttributes({ [getAttrKey('headingUse', attributes, manifest)]: value })}
31
- useComponent={headingUse}
32
- {...rest}
33
- >
34
- <HStack>
35
- <OptionSelect
36
- aria-label={__('Font size', '%g_textdomain%')}
37
- options={getOption('headingSize', attributes, manifest)}
38
- onChange={(value) => setAttributes({ [getAttrKey('headingSize', attributes, manifest)]: value })}
39
- value={headingSize}
40
- hidden={hiddenOptions?.size}
41
- type='menu'
42
- />
43
-
44
- <OptionSelect
45
- aria-label={__('Heading level', '%g_textdomain%')}
46
- options={headingTags}
47
- value={headingTag}
48
- onChange={(value) => setAttributes({ [getAttrKey('headingTag', attributes, manifest)]: value })}
49
- type='menu'
50
- wrapperProps={{
51
- triggerIcon: <span className='es-uic-font-mono uppercase'>{headingTag}</span>,
52
- }}
53
- hidden={hiddenOptions?.headingLevel}
54
- noTriggerLabel
55
- tooltip
56
- />
57
-
58
- {additionalControls}
59
- </HStack>
60
- </ComponentToggle>
61
- );
62
- };
@@ -1,45 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Heading component template.
5
- *
6
- * @package %g_namespace%
7
- */
8
-
9
- use %g_namespace_vendor_prefix%\EightshiftLibs\Helpers\Helpers;
10
-
11
- $manifest = Helpers::getManifestByDir(__DIR__);
12
-
13
- $headingUse = Helpers::checkAttr('headingUse', $attributes, $manifest);
14
-
15
- if (!$headingUse) {
16
- return;
17
- }
18
-
19
- $additionalClass = $attributes['additionalClass'] ?? '';
20
-
21
- $headingContent = Helpers::checkAttr('headingContent', $attributes, $manifest);
22
- $headingTag = Helpers::checkAttr('headingTag', $attributes, $manifest);
23
-
24
- if (!$headingContent) {
25
- return;
26
- }
27
-
28
- $sanitizedTitle = '';
29
-
30
- if (function_exists('idn_to_ascii') && function_exists('sanitize_title')) {
31
- $sanitizedTitle = sanitize_title(idn_to_ascii($headingContent));
32
- } else {
33
- $sanitizedTitle = sanitize_title($headingContent);
34
- }
35
- ?>
36
-
37
- <<?php echo esc_attr($headingTag); ?>
38
- data-slug="<?php echo esc_attr($sanitizedTitle) ?>"
39
- class="<?php echo esc_attr(Helpers::tailwindClasses('base', $attributes, $manifest, $additionalClass)); ?>"
40
- >
41
- <?php
42
- // phpcs:ignore Eightshift.Security.HelpersEscape.OutputNotEscaped
43
- echo $headingContent;
44
- ?>
45
- </<?php echo esc_attr($headingTag); ?>>
@@ -1,76 +0,0 @@
1
- {
2
- "$schema": "https://raw.githubusercontent.com/infinum/eightshift-frontend-libs-tailwind/main/schemas/component.json",
3
- "componentName": "heading",
4
- "title": "Heading",
5
- "componentClass": "heading",
6
- "example": {
7
- "attributes": {
8
- "headingContent": "This is heading",
9
- "headingTag": "h2",
10
- "headingSize": "base",
11
- "headingUse": true
12
- }
13
- },
14
- "attributes": {
15
- "headingContent": {
16
- "type": "string"
17
- },
18
- "headingTag": {
19
- "type": "string",
20
- "default": "h2"
21
- },
22
- "headingSize": {
23
- "type": "string",
24
- "default": "base"
25
- },
26
- "headingUse": {
27
- "type": "boolean",
28
- "default": true
29
- }
30
- },
31
- "options": {
32
- "headingSize": [
33
- {
34
- "label": "24",
35
- "value": "sm"
36
- },
37
- {
38
- "label": "30",
39
- "value": "base"
40
- },
41
- {
42
- "label": "36",
43
- "value": "md"
44
- },
45
- {
46
- "label": "48",
47
- "value": "lg"
48
- },
49
- {
50
- "label": "60",
51
- "value": "xl"
52
- },
53
- {
54
- "label": "96",
55
- "value": "2xl"
56
- }
57
- ]
58
- },
59
- "tailwind": {
60
- "base": {
61
- "twClasses": "font-display text-balance font-synthesis-none font-soft-50 scroll-m-20"
62
- },
63
- "options": {
64
- "headingSize": {
65
- "twClasses": {
66
- "sm": "~text-lg/2xl !leading-tight",
67
- "base": "~text-xl/3xl !leading-none",
68
- "md": "~text-2xl/4xl !leading-none",
69
- "lg": "~text-3xl/5xl !leading-none",
70
- "xl": "~text-4xl/6xl !leading-none",
71
- "2xl": "~text-5xl/8xl !leading-none !font-soft-25 italic"
72
- }
73
- }
74
- }
75
- }
76
- }
@@ -1,42 +0,0 @@
1
- import { props, checkAttr, tailwindClasses } from '@eightshift/frontend-libs-tailwind/scripts';
2
- import { ImageEditor } from '../../image/components/image-editor';
3
- import { HeadingEditor } from '../../heading/components/heading-editor';
4
- import { ParagraphEditor } from '../../paragraph/components/paragraph-editor';
5
- import { ButtonEditor } from '../../button/components/button-editor';
6
- import manifest from '../manifest.json';
7
-
8
- export const HeroEditor = (attributes) => {
9
- const { additionalClass } = attributes;
10
-
11
- const heroUse = checkAttr('heroUse', attributes, manifest);
12
-
13
- if (!heroUse) {
14
- return null;
15
- }
16
-
17
- return (
18
- <div className={tailwindClasses(attributes, manifest, additionalClass)}>
19
- <ImageEditor
20
- {...props('image', attributes, {
21
- additionalClass: {
22
- image: '!size-full grayscale',
23
- picture: tailwindClasses('imagePicture', attributes, manifest),
24
- },
25
- })}
26
- />
27
-
28
- <HeadingEditor {...props('heading', attributes)} />
29
-
30
- <ParagraphEditor
31
- {...props('paragraph', attributes, {
32
- additionalClass: 'mt-4 max-w-96 text-pretty',
33
- })}
34
- />
35
-
36
- <div className='mt-6 flex gap-2'>
37
- <ButtonEditor {...props('buttonMain', attributes)} />
38
- <ButtonEditor {...props('buttonSecondary', attributes)} />
39
- </div>
40
- </div>
41
- );
42
- };
@@ -1,100 +0,0 @@
1
- import { __ } from '@wordpress/i18n';
2
- import { checkAttr, getAttrKey, getOption, props } from '@eightshift/frontend-libs-tailwind/scripts';
3
- import { ImageOptions } from '../../image/components/image-options';
4
- import { HeadingOptions } from '../../heading/components/heading-options';
5
- import { ParagraphOptions } from '../../paragraph/components/paragraph-options';
6
- import { ButtonOptions } from '../../button/components/button-options';
7
- import { ComponentToggle, OptionSelect } from '@eightshift/ui-components';
8
- import { icons } from '@eightshift/ui-components/icons';
9
- import manifest from '../manifest.json';
10
-
11
- export const HeroOptions = (attributes) => {
12
- const { setAttributes, ...rest } = attributes;
13
-
14
- const heroUse = checkAttr('heroUse', attributes, manifest);
15
- const heroColor = checkAttr('heroColor', attributes, manifest);
16
-
17
- return (
18
- <ComponentToggle
19
- label={manifest.title}
20
- icon={icons.image}
21
- onChange={(value) => setAttributes({ [getAttrKey('heroUse', attributes, manifest)]: value })}
22
- useComponent={heroUse}
23
- {...rest}
24
- >
25
- <OptionSelect
26
- icon={icons.paletteColor}
27
- label={__('Theme', 'eightshift-frontend-libs')}
28
- value={heroColor}
29
- onChange={(value) => {
30
- let mainButtonColor = 'navy-500';
31
- let secondaryButtonColor = 'navy-800';
32
-
33
- switch (value) {
34
- case 'navy-dark':
35
- mainButtonColor = 'navy-500';
36
- secondaryButtonColor = 'navy-100';
37
- break;
38
- case 'red':
39
- mainButtonColor = 'red-500';
40
- secondaryButtonColor = 'red-800';
41
- break;
42
- case 'red-dark':
43
- mainButtonColor = 'red-500';
44
- secondaryButtonColor = 'red-100';
45
- break;
46
- case 'gray':
47
- mainButtonColor = 'gray-500';
48
- secondaryButtonColor = 'gray-800';
49
- break;
50
- case 'gray-dark':
51
- mainButtonColor = 'gray-500';
52
- secondaryButtonColor = 'gray-100';
53
- break;
54
- default:
55
- break;
56
- }
57
-
58
- return setAttributes({
59
- [getAttrKey('heroColor', attributes, manifest)]: value,
60
- [getAttrKey('heroButtonMainColor', attributes, manifest)]: mainButtonColor,
61
- [getAttrKey('heroButtonSecondaryColor', attributes, manifest)]: secondaryButtonColor,
62
- });
63
- }}
64
- options={getOption('heroColor', attributes, manifest)}
65
- type='menu'
66
- inline
67
- />
68
-
69
- <div>
70
- <ImageOptions
71
- {...props('image', attributes)}
72
- hideOptions='borderRadius'
73
- />
74
-
75
- <HeadingOptions
76
- {...props('heading', attributes)}
77
- hideOptions='size'
78
- />
79
-
80
- <ParagraphOptions
81
- {...props('paragraph', attributes)}
82
- hideOptions='size'
83
- />
84
-
85
- <ButtonOptions
86
- {...props('buttonMain', attributes)}
87
- label={__('Primary button', 'eightshift-frontend-libs')}
88
- hideOptions='variant,color'
89
- icon={icons.buttonFilled}
90
- />
91
-
92
- <ButtonOptions
93
- {...props('buttonSecondary', attributes)}
94
- label={__('Secondary button', 'eightshift-frontend-libs')}
95
- hideOptions='variant,color'
96
- />
97
- </div>
98
- </ComponentToggle>
99
- );
100
- };
@@ -1,45 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Hero component template.
5
- *
6
- * @package %g_namespace%
7
- */
8
-
9
- use %g_namespace_vendor_prefix%\EightshiftLibs\Helpers\Helpers;
10
-
11
- $manifest = Helpers::getManifestByDir(__DIR__);
12
-
13
- $heroUse = Helpers::checkAttr('heroUse', $attributes, $manifest);
14
-
15
- if (!$heroUse) {
16
- return;
17
- }
18
-
19
- $additionalClass = $attributes['additionalClass'] ?? '';
20
- ?>
21
-
22
- <section class="<?php echo esc_attr(Helpers::tailwindClasses('base', $attributes, $manifest, $additionalClass)); ?>">
23
- <?php
24
- echo Helpers::render('image', Helpers::props('image', $attributes, [
25
- 'additionalClass' => [
26
- 'image' => 'size-full grayscale',
27
- 'picture' => Helpers::tailwindClasses('imagePicture', $attributes, $manifest),
28
- ],
29
- ]));
30
- ?>
31
-
32
- <?php
33
- echo Helpers::render('heading', Helpers::props('heading', $attributes)),
34
- Helpers::render('paragraph', Helpers::props('paragraph', $attributes, [
35
- 'additionalClass' => 'mt-4 max-w-96 text-pretty',
36
- ]));
37
- ?>
38
-
39
- <div class="flex gap-2 mt-6">
40
- <?php
41
- echo Helpers::render('button', Helpers::props('buttonMain', $attributes)),
42
- Helpers::render('button', Helpers::props('buttonSecondary', $attributes));
43
- ?>
44
- </div>
45
- </section>
@@ -1,96 +0,0 @@
1
- {
2
- "$schema": "https://raw.githubusercontent.com/infinum/eightshift-frontend-libs-tailwind/main/schemas/component.json",
3
- "componentName": "hero",
4
- "title": "Hero",
5
- "componentClass": "hero",
6
- "example": {
7
- "attributes": {
8
- "heroContentPosition": "center center",
9
- "heroUse": true
10
- }
11
- },
12
- "attributes": {
13
- "heroUse": {
14
- "type": "boolean",
15
- "default": true
16
- },
17
- "heroColor": {
18
- "type": "string",
19
- "default": "navy"
20
- },
21
-
22
- "heroHeadingSize": {
23
- "type": "string",
24
- "default": "2xl"
25
- },
26
- "heroParagraphSize": {
27
- "type": "string",
28
- "default": "base"
29
- },
30
- "heroButtonMainVariant": {
31
- "type": "string",
32
- "default": "primary"
33
- },
34
- "heroButtonSecondaryVariant": {
35
- "type": "string",
36
- "default": "secondary"
37
- }
38
- },
39
- "components": {
40
- "image": "image",
41
- "heading": "heading",
42
- "paragraph": "paragraph",
43
- "buttonMain": "button",
44
- "buttonSecondary": "button"
45
- },
46
- "options": {
47
- "heroColor": [
48
- {
49
- "label": "Navy",
50
- "value": "navy"
51
- },
52
- {
53
- "label": "Navy (dark)",
54
- "value": "navy-dark"
55
- },
56
- {
57
- "label": "Red",
58
- "value": "red"
59
- },
60
- {
61
- "label": "Red (dark)",
62
- "value": "red-dark"
63
- },
64
- {
65
- "label": "Gray",
66
- "value": "gray"
67
- },
68
- {
69
- "label": "Gray (dark)",
70
- "value": "gray-dark"
71
- }
72
- ]
73
- },
74
- "tailwind": {
75
- "base": {
76
- "twClasses": "relative min-h-[40vh] sm:min-h-[50vh] md:min-h-[60vh] isolate flex flex-col items-center justify-center bg-gradient-to-br text-center rounded-xl ~my-4/8 overflow-hidden shadow-lg p-4"
77
- },
78
- "parts": {
79
- "imagePicture": {
80
- "twClasses": "absolute inset-0 -z-10 mix-blend-color-burn opacity-50 blur-[2px]"
81
- }
82
- },
83
- "options": {
84
- "heroColor": {
85
- "twClasses": {
86
- "navy": "from-white to-navy-50 shadow-navy-600/15 text-navy-950",
87
- "red": "from-white to-red-50 shadow-red-600/15 text-red-950",
88
- "gray": "from-white to-gray-50 shadow-gray-600/15 text-gray-950",
89
- "navy-dark": "from-navy-950 to-navy-800 shadow-navy-600/15 text-navy-100",
90
- "red-dark": "from-red-950 to-red-800 shadow-red-600/15 text-red-100",
91
- "gray-dark": "from-gray-950 to-gray-800 shadow-gray-600/15 text-gray-100"
92
- }
93
- }
94
- }
95
- }
96
- }
@@ -1,23 +0,0 @@
1
- import { checkAttr, tailwindClasses } from '@eightshift/frontend-libs-tailwind/scripts';
2
- import { JsxSvg } from '@eightshift/ui-components/icons';
3
- import manifest from './../manifest.json';
4
-
5
- export const IconEditor = (attributes) => {
6
- const { icons: manifestIcons } = manifest;
7
-
8
- const { additionalClass } = attributes;
9
-
10
- const iconUse = checkAttr('iconUse', attributes, manifest);
11
- const iconName = checkAttr('iconName', attributes, manifest);
12
-
13
- if (!iconUse || !manifestIcons?.[iconName]) {
14
- return null;
15
- }
16
-
17
- return (
18
- <JsxSvg
19
- svg={manifestIcons[iconName]}
20
- className={tailwindClasses(attributes, manifest, additionalClass)}
21
- />
22
- );
23
- };
@@ -1,65 +0,0 @@
1
- import { __ } from '@wordpress/i18n';
2
- import { checkAttr, getAttrKey, getHiddenOptions, getOption } from '@eightshift/frontend-libs-tailwind/scripts';
3
- import { RSOption, RSSingleValue, ComponentToggle, Select, RichLabel } from '@eightshift/ui-components';
4
- import { icons, JsxSvg } from '@eightshift/ui-components/icons';
5
- import manifest from './../manifest.json';
6
-
7
- const { icons: manifestIcons } = manifest;
8
-
9
- const IconPickerOption = (props) => (
10
- <RSOption {...props}>
11
- <RichLabel
12
- icon={<JsxSvg svg={manifestIcons[props.value]} />}
13
- label={props.label}
14
- />
15
- </RSOption>
16
- );
17
-
18
- const IconPickerValueDisplay = ({ children, ...props }) => (
19
- <RSSingleValue {...props}>
20
- <RichLabel
21
- icon={<JsxSvg svg={manifestIcons[props.data.value]} />}
22
- label={children}
23
- />
24
- </RSSingleValue>
25
- );
26
-
27
- export const IconOptions = (attributes) => {
28
- const { setAttributes, hideOptions, ...rest } = attributes;
29
-
30
- const hiddenOptions = getHiddenOptions(hideOptions);
31
-
32
- const iconName = checkAttr('iconName', attributes, manifest);
33
- const iconSize = checkAttr('iconSize', attributes, manifest);
34
- const iconUse = checkAttr('iconUse', attributes, manifest);
35
-
36
- return (
37
- <ComponentToggle
38
- label={manifest.title}
39
- icon={icons.iconGeneric}
40
- onChange={(value) => setAttributes({ [getAttrKey('iconUse', attributes, manifest)]: value })}
41
- useComponent={iconUse}
42
- {...rest}
43
- >
44
- <Select
45
- value={iconName}
46
- options={getOption('iconName', attributes, manifest)}
47
- placeholder={__('Select an icon', '%g_textdomain%')}
48
- customMenuOption={IconPickerOption}
49
- customValueDisplay={IconPickerValueDisplay}
50
- onChange={(value) => setAttributes({ [getAttrKey('iconName', attributes, manifest)]: value })}
51
- simpleValue
52
- hidden={hiddenOptions?.iconName}
53
- />
54
-
55
- <Select
56
- value={iconSize}
57
- options={getOption('iconSize', attributes, manifest)}
58
- onChange={(value) => setAttributes({ [getAttrKey('iconSize', attributes, manifest)]: value })}
59
- simpleValue
60
- noSearch
61
- hidden={hiddenOptions?.size}
62
- />
63
- </ComponentToggle>
64
- );
65
- };
@@ -1,53 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Icon component template.
5
- *
6
- * @package %g_namespace%
7
- */
8
-
9
- use %g_namespace_vendor_prefix%\EightshiftLibs\Helpers\Helpers;
10
-
11
- $manifest = Helpers::getManifestByDir(__DIR__);
12
-
13
- $iconUse = Helpers::checkAttr('iconUse', $attributes, $manifest);
14
-
15
- if (!$iconUse) {
16
- return;
17
- }
18
-
19
- $additionalClass = $attributes['additionalClass'] ?? '';
20
-
21
- $iconName = Helpers::checkAttr('iconName', $attributes, $manifest);
22
- $iconAriaHidden = Helpers::checkAttr('iconAriaHidden', $attributes, $manifest);
23
-
24
- if (!isset($manifest['icons'][$iconName])) {
25
- return;
26
- }
27
-
28
- $icon = $manifest['icons'][$iconName];
29
-
30
- $className = Helpers::tailwindClasses('base', $attributes, $manifest, $additionalClass);
31
-
32
- if (!empty($className)) {
33
- $icon = str_replace('<svg ', '<svg class="' . esc_attr($className) . '" ', $icon);
34
- }
35
-
36
- if ($iconAriaHidden) {
37
- $icon = str_replace('<svg ', '<svg aria-hidden="true" ', $icon);
38
- } else {
39
- $iconTitle = '';
40
- $iconOption = array_filter($manifest['options']['iconName'], fn($option) => $option['value'] === $iconName);
41
-
42
- if (!empty($iconOption)) {
43
- $iconTitle = reset($iconOption)['label'];
44
- }
45
-
46
- if (!empty($iconTitle)) {
47
- $titleTag = '<title>' . esc_html($iconTitle) . '</title>';
48
- $icon = str_replace('</svg>', $titleTag . '</svg>', $icon);
49
- }
50
- }
51
-
52
- // phpcs:ignore Eightshift.Security.HelpersEscape.OutputNotEscaped
53
- echo $icon;