@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
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../src/Button/Button.tsx","../src/utils/cn.tsx","../src/Text/Text.tsx","../src/AdContainer/AdContainer.tsx","../src/CommentsDisabled/CommentsDisabled.tsx","../src/Input/Input.tsx","../src/Divider/Divider.tsx","../src/Link/Link.tsx","../src/Article/UpNextArticles/UpNextArticles.tsx","../src/utils/hooks.ts"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React from 'react';\nimport './styles.css';\n\ninterface ButtonProps {\n /** Is this the principal call to action on the page? */\n primary?: boolean;\n /** How large should the button be? */\n size?: 'small' | 'medium' | 'large';\n /** Button contents */\n label: string;\n /** Optional click handler */\n onClick?: () => void;\n}\n\n/** Primary UI component for user interaction */\nexport const Button: React.FC<ButtonProps> = ({\n primary,\n size,\n label,\n ...props\n}) => {\n const mode = primary\n ? 'storybook-button--primary'\n : 'storybook-button--secondary';\n return (\n <button\n type=\"button\"\n className={['storybook-button', `storybook-button--${size}`, mode].join(\n ' '\n )}\n {...props}\n >\n {label}\n </button>\n );\n};\n","export const cn = (...classNames: (string | undefined)[]) => {\n return classNames.filter(Boolean).join(' ');\n};\n","import React from 'react';\nimport './styles.css';\nimport './typographyStyles.css';\nimport { cn } from '../utils/cn';\n\ninterface TextProps {\n as?: 'p' | 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n typographyStyle?: string;\n classes?: string;\n styles?: { [key: string]: string };\n children?: React.ReactNode;\n}\n\nexport const Text: React.FC<TextProps> = ({\n as,\n typographyStyle,\n styles,\n classes,\n children\n}) => {\n const TextComponent = as || 'p';\n const transformedTypographyStyle =\n typographyStyle?.replaceAll('.', '-').toLowerCase() ?? '';\n\n return (\n <TextComponent\n className={cn(\n classes,\n typographyStyle\n ? `--tds-typography-tokens-${transformedTypographyStyle}`\n : undefined\n )}\n style={styles ? styles : undefined}\n >\n {children}\n </TextComponent>\n );\n};\n","import React from 'react';\nimport { Text } from '../Text/Text';\nimport './styles.css';\n\ninterface AdContainerProps {\n type?: 'header' | 'inline';\n slotID?: string;\n}\n\n/** Primary AdContainer UI component for user interaction */\n\nexport const AdContainer: React.FC<AdContainerProps> = ({\n type = 'inline',\n slotID\n}) => {\n return (\n <div\n className={`ad-${type}-container`}\n data-testid={`ad-${type}-container`}\n >\n {type === 'inline' && (\n <Text as=\"span\" classes=\"ad-label\">\n Advertisement\n </Text>\n )}\n <div className={`ad-${type}-wrapper`}>\n <div id={type === 'header' ? 'ad-header' : slotID}></div>\n </div>\n </div>\n );\n};\n","import React, { HTMLAttributes } from 'react';\nimport './styles.css';\nimport { Text } from '../Text/Text';\n\nexport interface CommentsDisabledProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'content'> {\n heading?: string;\n contentText?: React.ReactNode;\n guidelinesUrl?: string;\n guidelinesLinkText?: string;\n className?: string;\n}\n\nexport const CommentsDisabled = React.forwardRef<\n HTMLDivElement,\n CommentsDisabledProps\n>(\n (\n {\n heading = 'Comments are not enabled for this article',\n contentText = 'Comments are subject to our community guidelines, which can be viewed',\n guidelinesUrl = '#',\n guidelinesLinkText = 'here',\n className = '',\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={`tds-comments-disabled ${className}`.trim()}\n {...props}\n >\n <Text\n as=\"h3\"\n typographyStyle=\"brand-heading-fluid-light-xsmall\"\n classes=\"tds-comments-disabled__heading\"\n >\n {heading}\n </Text>\n <hr className=\"tds-comments-disabled__divider\" />\n <Text\n typographyStyle=\"utility-body-regular-medium\"\n classes=\"tds-comments-disabled__content\"\n >\n {contentText}{' '}\n <a\n href={guidelinesUrl}\n className=\"tds-comments-disabled__link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {guidelinesLinkText}\n </a>\n .\n </Text>\n </div>\n );\n }\n);\n\nCommentsDisabled.displayName = 'CommentsDisabled';\n","import React from 'react';\nimport './styles.css';\n\ninterface InputProps {\n /** Label text for the input */\n label?: string;\n /** Input placeholder text */\n placeholder?: string;\n /** Input type */\n type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';\n /** Input value */\n value?: string;\n /** Change handler */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Disabled state */\n disabled?: boolean;\n /** Required state */\n required?: boolean;\n /** Input name attribute */\n name?: string;\n /** Input id attribute */\n id?: string;\n}\n\n/** Input component with label using design tokens */\nexport const Input: React.FC<InputProps> = ({\n label,\n placeholder,\n type = 'text',\n value,\n onChange,\n disabled = false,\n required = false,\n name,\n id,\n ...props\n}) => {\n const inputId = id || name;\n\n return (\n <div className=\"tds-input-wrapper\">\n {label && (\n <label htmlFor={inputId} className=\"tds-input-label\">\n {label}\n {required && <span className=\"tds-input-required\">*</span>}\n </label>\n )}\n <input\n id={inputId}\n type={type}\n name={name}\n className=\"tds-input\"\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n disabled={disabled}\n required={required}\n {...props}\n />\n </div>\n );\n};\n","import React from 'react';\nimport './styles.css';\n\ninterface DividerProps {\n /** Whether the divider should span full width of its container */\n fullWidth?: boolean;\n /** Orientation of the divider */\n orientation?: 'horizontal' | 'vertical';\n /** Custom spacing/margin */\n spacing?: 'small' | 'medium' | 'large';\n /** CSS class for additional styling */\n className?: string;\n}\n\n/** Divider component that uses design tokens for styling */\nexport const Divider: React.FC<DividerProps> = ({\n fullWidth = true,\n orientation = 'horizontal',\n spacing = 'medium',\n className = '',\n ...props\n}) => {\n const baseClass = 'tds-divider';\n const orientationClass = `tds-divider--${orientation}`;\n const spacingClass = `tds-divider--spacing-${spacing}`;\n const widthClass = fullWidth\n ? 'tds-divider--full-width'\n : 'tds-divider--constrained';\n\n const classes = [\n baseClass,\n orientationClass,\n spacingClass,\n widthClass,\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n return <div className={classes} data-node-id=\"4042:14179\" {...props} />;\n};\n","import React from 'react';\nimport './styles.css';\nimport { cn } from '../utils/cn';\n\ninterface LinkProps {\n href: string;\n variant?: 'primary' | 'secondary' | 'danger';\n onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;\n target?: '_self' | '_blank' | '_parent' | '_top';\n rel?: string;\n className?: string;\n classes?: string;\n styles?: { [key: string]: string };\n children?: React.ReactNode;\n}\n\n/** Link UI component for navigation and interactive linking */\nexport const Link: React.FC<LinkProps> = ({\n href,\n variant = 'primary',\n onClick,\n target,\n rel,\n className,\n classes,\n styles,\n children\n}) => {\n // If target is _blank, set rel to noopener noreferrer for security\n const linkRel =\n target === '_blank'\n ? rel\n ? `${rel} noopener noreferrer`\n : 'noopener noreferrer'\n : rel;\n\n return (\n <a\n href={href}\n onClick={onClick}\n target={target}\n rel={linkRel}\n className={cn('tds-link', `tds-link--${variant}`, className || classes)}\n style={styles ? styles : undefined}\n >\n {children}\n </a>\n );\n};\n","import React from 'react';\nimport { Text } from '../../Text/Text';\nimport './styles.css';\n\ninterface UpNextArticlesProps {\n upNextArticles: {\n url: string;\n headline: string;\n duration?: string;\n thumbnail: string;\n }[];\n}\n\n/** Primary UpNextArticles UI component for user interaction */\n\nexport const UpNextArticles: React.FC<UpNextArticlesProps> = ({\n upNextArticles\n}) => {\n if (!upNextArticles || upNextArticles.length === 0) {\n return;\n }\n\n return (\n <div className=\"video-article-up-next\">\n <div className=\"vertical-divider\"></div>\n <div className=\"up-next-articles-container show-right-overlay\">\n <Text as=\"h4\" classes=\"video-heading video-category\">\n Up Next\n </Text>\n <div className=\"up-next-articles-overlay up-next-articles-overlay-left\"></div>\n <div className=\"up-next-articles-scroll\">\n <div className=\"up-next-articles\">\n {upNextArticles.map((up_next_article, index) => (\n <div className=\"up-next-article\" key={index}>\n <a href={up_next_article.url}>\n <div className=\"up-next-article-image-container\">\n <Text classes=\"up-next-article-duration video-heading\">\n {up_next_article.duration}\n </Text>\n <div className=\"up-next-article-image-overlay\"></div>\n <div className=\"up-next-article-image\">\n {up_next_article.thumbnail !== '' && (\n <picture>\n <source\n srcSet={up_next_article.thumbnail}\n type=\"image/webp\"\n />\n <img\n loading=\"lazy\"\n src={up_next_article.thumbnail}\n alt={up_next_article.headline}\n />\n </picture>\n )}\n </div>\n </div>\n <Text as=\"span\" classes=\"article-heading\">\n {up_next_article.headline}\n </Text>\n </a>\n </div>\n ))}\n </div>\n </div>\n <div className=\"up-next-articles-overlay up-next-articles-overlay-right\"></div>\n </div>\n </div>\n );\n};\n","// function possibly for future use with typography tokens.\n// takes a token and tokens object, returns media query string referencing typography token values.\ntype UseTypographyToken = (\n typographyToken: string,\n tokens: {\n breakpoints: { [key: string]: number };\n [key: string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n) => string;\n\nexport const useTypographyToken: UseTypographyToken = (\n typographyToken,\n tokens\n) => `\n .${typographyToken} {\n font: ${typographyToken}\n\n @media (min-width: ${tokens.breakpoints.sm}px) {\n fontSize: ${tokens['Viewport/ Small'].typography[typographyToken].fontSize};\n }\n\n @media (min-width: ${tokens.breakpoints.md}px) {\n fontSize: ${tokens['Viewport/ Medium'].typography[typographyToken].fontSize};\n }\n\n @media (min-width: ${tokens.breakpoints.lg}px) {\n fontSize: ${tokens['Viewport/ Large'].typography[typographyToken].fontSize};\n }\n\n @media (min-width: ${tokens.breakpoints.xl}px) {\n fontSize: ${tokens['Viewport/ XLarge'].typography[typographyToken].fontSize};\n }\n }\n`;\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Button","primary","size","label","props","mode","React","className","join","cn","classNames","filter","Boolean","Text","as","typographyStyle","styles","classes","children","TextComponent","transformedTypographyStyle","replaceAll","toLowerCase","undefined","AdContainer","slotID","id","CommentsDisabled","forwardRef","heading","contentText","guidelinesUrl","guidelinesLinkText","trim","href","target","rel","displayName","Input","placeholder","value","onChange","disabled","required","name","inputId","htmlFor","Divider","fullWidth","orientation","spacing","baseClass","orientationClass","spacingClass","widthClass","Link","variant","onClick","linkRel","UpNextArticles","upNextArticles","length","map","up_next_article","index","key","url","duration","thumbnail","srcSet","loading","src","alt","headline","useTypographyToken","typographyToken","tokens","breakpoints","sm","typography","fontSize","md","lg","xl"],"mappings":";;AAAA,SAASA,WAAWA,CAACC,GAAG,EAAEC,GAAG,EAAE;EAC7B,IAAKA,GAAG,KAAK,MAAM,EAAGA,GAAG,GAAG,EAAE;AAC9B,EAAA,IAAIC,QAAQ,GAAGD,GAAG,CAACC,QAAQ;AAE3B,EAAA,IAAI,CAACF,GAAG,IAAI,OAAOG,QAAQ,KAAK,WAAW,EAAE;AAAE,IAAA;AAAQ,EAAA;AAEvD,EAAA,IAAIC,IAAI,GAAGD,QAAQ,CAACC,IAAI,IAAID,QAAQ,CAACE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpE,EAAA,IAAIC,KAAK,GAAGH,QAAQ,CAACI,aAAa,CAAC,OAAO,CAAC;EAC3CD,KAAK,CAACE,IAAI,GAAG,UAAU;EAEvB,IAAIN,QAAQ,KAAK,KAAK,EAAE;IACtB,IAAIE,IAAI,CAACK,UAAU,EAAE;MACnBL,IAAI,CAACM,YAAY,CAACJ,KAAK,EAAEF,IAAI,CAACK,UAAU,CAAC;AAC3C,IAAA,CAAC,MAAM;AACLL,MAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB,IAAA;AACF,EAAA,CAAC,MAAM;AACLF,IAAAA,IAAI,CAACO,WAAW,CAACL,KAAK,CAAC;AACzB,EAAA;EAEA,IAAIA,KAAK,CAACM,UAAU,EAAE;AACpBN,IAAAA,KAAK,CAACM,UAAU,CAACC,OAAO,GAAGb,GAAG;AAChC,EAAA,CAAC,MAAM;IACLM,KAAK,CAACK,WAAW,CAACR,QAAQ,CAACW,cAAc,CAACd,GAAG,CAAC,CAAC;AACjD,EAAA;AACF;;;;;ACXA;AACO,MAAMe,MAAM,GAA0BA,CAAC;EAC5CC,OAAO;EACPC,IAAI;EACJC,KAAK;EACL,GAAGC;AAAK,CACT,KAAI;AACH,EAAA,MAAMC,IAAI,GAAGJ,OAAO,GAChB,2BAA2B,GAC3B,6BAA6B;AACjC,EAAA,OACEK,KAAA,CAAAd,aAAA,CAAA,QAAA,EAAA;AACEC,IAAAA,IAAI,EAAC,QAAQ;AACbc,IAAAA,SAAS,EAAE,CAAC,kBAAkB,EAAE,qBAAqBL,IAAI,CAAA,CAAE,EAAEG,IAAI,CAAC,CAACG,IAAI,CACrE,GAAG,CACJ;IAAA,GACGJ;GAAK,EAERD,KAAK,CACC;AAEb;;;;;;;;ACnCO,MAAMM,EAAE,GAAGA,CAAC,GAAGC,UAAkC,KAAI;EAC1D,OAAOA,UAAU,CAACC,MAAM,CAACC,OAAO,CAAC,CAACJ,IAAI,CAAC,GAAG,CAAC;AAC7C,CAAC;;ACWM,MAAMK,IAAI,GAAwBA,CAAC;EACxCC,EAAE;EACFC,eAAe;EACfC,MAAM;EACNC,OAAO;AACPC,EAAAA;AAAQ,CACT,KAAI;AACH,EAAA,MAAMC,aAAa,GAAGL,EAAE,IAAI,GAAG;AAC/B,EAAA,MAAMM,0BAA0B,GAC9BL,eAAe,EAAEM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAACC,WAAW,EAAE,IAAI,EAAE;AAE3D,EAAA,OACEhB,KAAA,CAAAd,aAAA,CAAC2B,aAAa,EAAA;AACZZ,IAAAA,SAAS,EAAEE,EAAE,CACXQ,OAAO,EACPF,eAAe,GACX,CAAA,wBAAA,EAA2BK,0BAA0B,CAAA,CAAE,GACvDG,SAAS,CACd;AACDhC,IAAAA,KAAK,EAAEyB,MAAM,GAAGA,MAAM,GAAGO;KAExBL,QAAQ,CACK;AAEpB;;;;;AC5BA;AAEO,MAAMM,WAAW,GAA+BA,CAAC;AACtD/B,EAAAA,IAAI,GAAG,QAAQ;AACfgC,EAAAA;AAAM,CACP,KAAI;AACH,EAAA,OACEnB,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;IACEe,SAAS,EAAE,CAAA,GAAA,EAAMd,IAAI,CAAA,UAAA,CAAY;IAAA,aAAA,EACpB,MAAMA,IAAI,CAAA,UAAA;GAAY,EAElCA,IAAI,KAAK,QAAQ,IAChBa,oBAACO,IAAI,EAAA;AAACC,IAAAA,EAAE,EAAC,MAAM;AAACG,IAAAA,OAAO,EAAC;qBAGzB,EACDX,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;IAAKe,SAAS,EAAE,MAAMd,IAAI,CAAA,QAAA;AAAU,GAAA,EAClCa,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKkC,IAAAA,EAAE,EAAEjC,IAAI,KAAK,QAAQ,GAAG,WAAW,GAAGgC;IAAc,CACrD,CACF;AAEV;;;;;MCjBaE,gBAAgB,GAAGrB,KAAK,CAACsB,UAAU,CAI9C,CACE;AACEC,EAAAA,OAAO,GAAG,2CAA2C;AACrDC,EAAAA,WAAW,GAAG,uEAAuE;AACrFC,EAAAA,aAAa,GAAG,GAAG;AACnBC,EAAAA,kBAAkB,GAAG,MAAM;AAC3BzB,EAAAA,SAAS,GAAG,EAAE;EACd,GAAGH;AAAK,CACT,EACDlB,GAAG,KACD;AACF,EAAA,OACEoB,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AACEN,IAAAA,GAAG,EAAEA,GAAG;AACRqB,IAAAA,SAAS,EAAE,CAAA,sBAAA,EAAyBA,SAAS,EAAE,CAAC0B,IAAI,EAAE;OAClD7B;AAAK,GAAA,EAETE,KAAA,CAAAd,aAAA,CAACqB,IAAI,EAAA;AACHC,IAAAA,EAAE,EAAC,IAAI;AACPC,IAAAA,eAAe,EAAC,kCAAkC;AAClDE,IAAAA,OAAO,EAAC;GAAgC,EAEvCY,OAAO,CACH,EACPvB,KAAA,CAAAd,aAAA,CAAA,IAAA,EAAA;AAAIe,IAAAA,SAAS,EAAC;AAAgC,GAAA,CAAG,EACjDD,KAAA,CAAAd,aAAA,CAACqB,IAAI;AACHE,IAAAA,eAAe,EAAC,6BAA6B;AAC7CE,IAAAA,OAAO,EAAC;GAAgC,EAEvCa,WAAW,EAAE,GAAG,EACjBxB,KAAA,CAAAd,aAAA,CAAA,GAAA,EAAA;AACE0C,IAAAA,IAAI,EAAEH,aAAa;AACnBxB,IAAAA,SAAS,EAAC,6BAA6B;AACvC4B,IAAAA,MAAM,EAAC,QAAQ;AACfC,IAAAA,GAAG,EAAC;AAAqB,GAAA,EAExBJ,kBAAkB,CACjB,EAEC,GAAA,CAAA,CACH;AAEV,CAAC;AAGHL,gBAAgB,CAACU,WAAW,GAAG,kBAAkB;;;;;ACtCjD;AACO,MAAMC,KAAK,GAAyBA,CAAC;EAC1CnC,KAAK;EACLoC,WAAW;AACX9C,EAAAA,IAAI,GAAG,MAAM;EACb+C,KAAK;EACLC,QAAQ;AACRC,EAAAA,QAAQ,GAAG,KAAK;AAChBC,EAAAA,QAAQ,GAAG,KAAK;EAChBC,IAAI;EACJlB,EAAE;EACF,GAAGtB;AAAK,CACT,KAAI;AACH,EAAA,MAAMyC,OAAO,GAAGnB,EAAE,IAAIkB,IAAI;AAE1B,EAAA,OACEtC,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;GAAmB,EAC/BJ,KAAK,IACJG,KAAA,CAAAd,aAAA,CAAA,OAAA,EAAA;AAAOsD,IAAAA,OAAO,EAAED,OAAO;AAAEtC,IAAAA,SAAS,EAAC;GAAiB,EACjDJ,KAAK,EACLwC,QAAQ,IAAIrC,KAAA,CAAAd,aAAA,CAAA,MAAA,EAAA;AAAMe,IAAAA,SAAS,EAAC;GAAoB,EAAA,GAAA,CAAS,CAE7D,EACDD,KAAA,CAAAd,aAAA,CAAA,OAAA,EAAA;AACEkC,IAAAA,EAAE,EAAEmB,OAAO;AACXpD,IAAAA,IAAI,EAAEA,IAAI;AACVmD,IAAAA,IAAI,EAAEA,IAAI;AACVrC,IAAAA,SAAS,EAAC,WAAW;AACrBgC,IAAAA,WAAW,EAAEA,WAAW;AACxBC,IAAAA,KAAK,EAAEA,KAAK;AACZC,IAAAA,QAAQ,EAAEA,QAAQ;AAClBC,IAAAA,QAAQ,EAAEA,QAAQ;AAClBC,IAAAA,QAAQ,EAAEA,QAAQ;IAAA,GACdvC;AAAK,GAAA,CACT,CACE;AAEV;;;;;AC/CA;AACO,MAAM2C,OAAO,GAA2BA,CAAC;AAC9CC,EAAAA,SAAS,GAAG,IAAI;AAChBC,EAAAA,WAAW,GAAG,YAAY;AAC1BC,EAAAA,OAAO,GAAG,QAAQ;AAClB3C,EAAAA,SAAS,GAAG,EAAE;EACd,GAAGH;AAAK,CACT,KAAI;EACH,MAAM+C,SAAS,GAAG,aAAa;AAC/B,EAAA,MAAMC,gBAAgB,GAAG,CAAA,aAAA,EAAgBH,WAAW,CAAA,CAAE;AACtD,EAAA,MAAMI,YAAY,GAAG,CAAA,qBAAA,EAAwBH,OAAO,CAAA,CAAE;AACtD,EAAA,MAAMI,UAAU,GAAGN,SAAS,GACxB,yBAAyB,GACzB,0BAA0B;EAE9B,MAAM/B,OAAO,GAAG,CACdkC,SAAS,EACTC,gBAAgB,EAChBC,YAAY,EACZC,UAAU,EACV/C,SAAS,CACV,CACEI,MAAM,CAACC,OAAO,CAAC,CACfJ,IAAI,CAAC,GAAG,CAAC;AAEZ,EAAA,OAAOF,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAEU,OAAO;oBAAe,YAAY;IAAA,GAAKb;AAAK,GAAA,CAAI;AACzE;;;;;ACxBA;AACO,MAAMmD,IAAI,GAAwBA,CAAC;EACxCrB,IAAI;AACJsB,EAAAA,OAAO,GAAG,SAAS;EACnBC,OAAO;EACPtB,MAAM;EACNC,GAAG;EACH7B,SAAS;EACTU,OAAO;EACPD,MAAM;AACNE,EAAAA;AAAQ,CACT,KAAI;AACH;AACA,EAAA,MAAMwC,OAAO,GACXvB,MAAM,KAAK,QAAQ,GACfC,GAAG,GACD,CAAA,EAAGA,GAAG,CAAA,oBAAA,CAAsB,GAC5B,qBAAqB,GACvBA,GAAG;AAET,EAAA,OACE9B;AACE4B,IAAAA,IAAI,EAAEA,IAAI;AACVuB,IAAAA,OAAO,EAAEA,OAAO;AAChBtB,IAAAA,MAAM,EAAEA,MAAM;AACdC,IAAAA,GAAG,EAAEsB,OAAO;AACZnD,IAAAA,SAAS,EAAEE,EAAE,CAAC,UAAU,EAAE,CAAA,UAAA,EAAa+C,OAAO,CAAA,CAAE,EAAEjD,SAAS,IAAIU,OAAO,CAAC;AACvE1B,IAAAA,KAAK,EAAEyB,MAAM,GAAGA,MAAM,GAAGO;GAAS,EAEjCL,QAAQ,CACP;AAER;;;;;ACnCA;AAEO,MAAMyC,cAAc,GAAkCA,CAAC;AAC5DC,EAAAA;AAAc,CACf,KAAI;EACH,IAAI,CAACA,cAAc,IAAIA,cAAc,CAACC,MAAM,KAAK,CAAC,EAAE;AAClD,IAAA;AACF,EAAA;AAEA,EAAA,OACEvD,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;AAAuB,GAAA,EACpCD,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;AAAkB,GAAA,CAAO,EACxCD,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;AAA+C,GAAA,EAC5DD,KAAA,CAAAd,aAAA,CAACqB,IAAI;AAACC,IAAAA,EAAE,EAAC,IAAI;AAACG,IAAAA,OAAO,EAAC;GAA8B,EAAA,SAAA,CAE7C,EACPX,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;AAAwD,GAAA,CAAO,EAC9ED,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;AAAyB,GAAA,EACtCD,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;AAAkB,GAAA,EAC9BqD,cAAc,CAACE,GAAG,CAAC,CAACC,eAAe,EAAEC,KAAK,KACzC1D,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC,iBAAiB;AAAC0D,IAAAA,GAAG,EAAED;AAAK,GAAA,EACzC1D,KAAA,CAAAd,aAAA,CAAA,GAAA,EAAA;IAAG0C,IAAI,EAAE6B,eAAe,CAACG;AAAG,GAAA,EAC1B5D,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;AAAiC,GAAA,EAC9CD,KAAA,CAAAd,aAAA,CAACqB,IAAI;AAACI,IAAAA,OAAO,EAAC;GAAwC,EACnD8C,eAAe,CAACI,QAAQ,CACpB,EACP7D,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;AAA+B,GAAA,CAAO,EACrDD,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;GAAuB,EACnCwD,eAAe,CAACK,SAAS,KAAK,EAAE,IAC/B9D,KAAA,CAAAd,aAAA,CAAA,SAAA,EAAA,IAAA,EACEc,KAAA,CAAAd,aAAA,CAAA,QAAA,EAAA;IACE6E,MAAM,EAAEN,eAAe,CAACK,SAAS;AACjC3E,IAAAA,IAAI,EAAC;AAAY,GAAA,CACjB,EACFa,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AACE8E,IAAAA,OAAO,EAAC,MAAM;IACdC,GAAG,EAAER,eAAe,CAACK,SAAS;IAC9BI,GAAG,EAAET,eAAe,CAACU;IACrB,CAEL,CACG,CACF,EACNnE,KAAA,CAAAd,aAAA,CAACqB,IAAI,EAAA;AAACC,IAAAA,EAAE,EAAC,MAAM;AAACG,IAAAA,OAAO,EAAC;KACrB8C,eAAe,CAACU,QAAQ,CACpB,CACL,CAEP,CAAC,CACE,CACF,EACNnE,KAAA,CAAAd,aAAA,CAAA,KAAA,EAAA;AAAKe,IAAAA,SAAS,EAAC;IAAgE,CAC3E,CACF;AAEV;;MC1DamE,kBAAkB,GAAuBA,CACpDC,eAAe,EACfC,MAAM,KACH;KACAD,eAAe,CAAA;YACRA,eAAe;;yBAEFC,MAAM,CAACC,WAAW,CAACC,EAAE,CAAA;kBAC5BF,MAAM,CAAC,iBAAiB,CAAC,CAACG,UAAU,CAACJ,eAAe,CAAC,CAACK,QAAQ,CAAA;;;yBAGvDJ,MAAM,CAACC,WAAW,CAACI,EAAE,CAAA;kBAC5BL,MAAM,CAAC,kBAAkB,CAAC,CAACG,UAAU,CAACJ,eAAe,CAAC,CAACK,QAAQ,CAAA;;;yBAGxDJ,MAAM,CAACC,WAAW,CAACK,EAAE,CAAA;kBAC5BN,MAAM,CAAC,iBAAiB,CAAC,CAACG,UAAU,CAACJ,eAAe,CAAC,CAACK,QAAQ,CAAA;;;yBAGvDJ,MAAM,CAACC,WAAW,CAACM,EAAE,CAAA;kBAC5BP,MAAM,CAAC,kBAAkB,CAAC,CAACG,UAAU,CAACJ,eAAe,CAAC,CAACK,QAAQ,CAAA;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/classBuilder.js","../src/blocks/button/edit.js","../src/blocks/button/save.js","../src/blocks/button/index.js","../src/blocks/divider/edit.js","../src/blocks/divider/save.js","../src/blocks/divider/index.js","../src/blocks/text/edit.js","../src/blocks/text/save.js","../src/blocks/text/index.js","../src/blocks/input/edit.js","../src/blocks/input/save.js","../src/blocks/input/index.js","../src/blocks/icon-button/edit.js","../src/blocks/icon-button/save.js","../src/blocks/icon-button/index.js","../src/blocks/chip/edit.js","../src/blocks/chip/save.js","../src/blocks/chip/index.js","../src/blocks/flag/edit.js","../src/blocks/flag/save.js","../src/blocks/flag/index.js","../src/blocks/toast/edit.js","../src/blocks/toast/save.js","../src/blocks/toast/index.js","../src/blocks/link/edit.js","../src/blocks/link/save.js","../src/blocks/link/index.js","../src/blocks/ad-container/edit.js","../src/blocks/ad-container/save.js","../src/blocks/ad-container/index.js"],"sourcesContent":["/**\n * Build className string for Button component based on attributes.\n * Maps component properties to TDS (Times Design System) SCSS classes.\n *\n * @param {Object} options - Button configuration options\n * @param {string} options.intent - Visual style variant (primary, secondary, negative)\n * @param {string} options.size - Button size (small, medium, large)\n * @param {string} options.behaviour - Width behaviour (hug, full)\n * @param {string} options.state - Interaction state (base, hover, pressed, loading, disabled, focus)\n * @param {boolean} options.disabled - Whether button is disabled\n * @returns {string} Complete className string\n */\nexport function buildButtonClass({\n intent = 'primary',\n size = 'large',\n behaviour = 'hug',\n state = 'base',\n disabled = false\n}) {\n const classes = [\n 'tds-button',\n `tds-button--intent-${intent}`,\n `tds-button--size-${size}`,\n `tds-button--behaviour-${behaviour}`,\n `tds-button--state-${state}`\n ];\n\n if (disabled) {\n classes.push('tds-button--disabled');\n }\n\n return classes.join(' ');\n}\n\n/**\n * Generic class builder utility for consistent naming conventions.\n * Creates BEM-style className strings.\n *\n * @param {string} blockName - Base block name (e.g., 'tds-button')\n * @param {Object} modifiers - Object with modifier names as keys\n * @returns {string} Complete className string\n */\nexport function buildClassName(blockName, modifiers = {}) {\n const classes = [blockName];\n\n Object.entries(modifiers).forEach(([key, value]) => {\n if (value && value !== '') {\n classes.push(`${blockName}--${key}-${value}`);\n }\n });\n\n return classes.join(' ');\n}\n","import { useBlockProps, InspectorControls } from '@wordpress/block-editor';\nimport {\n PanelBody,\n SelectControl,\n TextControl,\n ToggleControl\n} from '@wordpress/components';\nimport { RichText } from '@wordpress/block-editor';\nimport { buildButtonClass } from '../../utils/classBuilder.js';\nimport './style-editor.css';\n\nexport default function Edit({ attributes, setAttributes }) {\n const {\n label,\n intent,\n size,\n behaviour,\n state,\n disabled,\n href,\n target,\n rel,\n type,\n iconLeft,\n iconRight,\n ariaLabel\n } = attributes;\n\n const blockProps = useBlockProps({\n className: 'tds-button-wrapper'\n });\n\n const buttonClass = buildButtonClass({\n intent,\n size,\n behaviour,\n state,\n disabled\n });\n\n const Element = href ? 'a' : 'button';\n\n return (\n <>\n <div {...blockProps}>\n <Element\n className={buttonClass}\n disabled={!href && disabled}\n href={href}\n target={target}\n rel={rel}\n type={!href ? type : undefined}\n aria-label={ariaLabel}\n >\n <span className=\"tds-button__label-container\">\n <span className=\"tds-button__label\">{label}</span>\n </span>\n </Element>\n </div>\n\n <InspectorControls>\n <PanelBody title=\"Button Settings\">\n <TextControl\n label=\"Label\"\n value={label}\n onChange={(value) => setAttributes({ label: value })}\n help=\"The text displayed inside the button\"\n />\n\n <SelectControl\n label=\"Intent (Style)\"\n value={intent}\n options={[\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n { label: 'Negative', value: 'negative' }\n ]}\n onChange={(value) => setAttributes({ intent: value })}\n />\n\n <SelectControl\n label=\"Size\"\n value={size}\n options={[\n { label: 'Small', value: 'small' },\n { label: 'Medium', value: 'medium' },\n { label: 'Large', value: 'large' }\n ]}\n onChange={(value) => setAttributes({ size: value })}\n />\n\n <SelectControl\n label=\"Behaviour\"\n value={behaviour}\n options={[\n { label: 'Hug Content', value: 'hug' },\n { label: 'Full Width', value: 'full' }\n ]}\n onChange={(value) => setAttributes({ behaviour: value })}\n />\n\n <SelectControl\n label=\"State\"\n value={state}\n options={[\n { label: 'Base', value: 'base' },\n { label: 'Hover', value: 'hover' },\n { label: 'Pressed', value: 'pressed' },\n { label: 'Loading', value: 'loading' },\n { label: 'Disabled', value: 'disabled' },\n { label: 'Focus', value: 'focus' }\n ]}\n onChange={(value) => setAttributes({ state: value })}\n />\n\n <ToggleControl\n label=\"Disabled\"\n checked={disabled}\n onChange={(value) => setAttributes({ disabled: value })}\n />\n </PanelBody>\n\n <PanelBody title=\"Link Settings\" initialOpen={false}>\n <TextControl\n label=\"URL\"\n value={href}\n onChange={(value) => setAttributes({ href: value })}\n placeholder=\"https://example.com\"\n />\n\n <SelectControl\n label=\"Link Target\"\n value={target}\n options={[\n { label: 'Same Window', value: '_self' },\n { label: 'New Window', value: '_blank' },\n { label: 'Parent Window', value: '_parent' },\n { label: 'Top Window', value: '_top' }\n ]}\n onChange={(value) => setAttributes({ target: value })}\n />\n\n <TextControl\n label=\"Link Rel\"\n value={rel}\n onChange={(value) => setAttributes({ rel: value })}\n placeholder=\"noopener noreferrer\"\n />\n </PanelBody>\n\n <PanelBody title=\"Advanced\" initialOpen={false}>\n <SelectControl\n label=\"Button Type\"\n value={type}\n options={[\n { label: 'Button', value: 'button' },\n { label: 'Submit', value: 'submit' },\n { label: 'Reset', value: 'reset' }\n ]}\n onChange={(value) => setAttributes({ type: value })}\n />\n\n <TextControl\n label=\"Aria Label\"\n value={ariaLabel}\n onChange={(value) => setAttributes({ ariaLabel: value })}\n help=\"Accessible name for icon-only buttons\"\n />\n\n <TextControl\n label=\"Icon Left\"\n value={iconLeft}\n onChange={(value) => setAttributes({ iconLeft: value })}\n placeholder=\"Icon name\"\n />\n\n <TextControl\n label=\"Icon Right\"\n value={iconRight}\n onChange={(value) => setAttributes({ iconRight: value })}\n placeholder=\"Icon name\"\n />\n </PanelBody>\n </InspectorControls>\n </>\n );\n}\n","import { useBlockProps } from '@wordpress/block-editor';\nimport { buildButtonClass } from '../../utils/classBuilder.js';\n\nexport default function Save({ attributes }) {\n const {\n label,\n intent,\n size,\n behaviour,\n state,\n disabled,\n href,\n target,\n rel,\n type,\n iconLeft,\n iconRight,\n ariaLabel\n } = attributes;\n\n const blockProps = useBlockProps.save({\n className: 'tds-button-wrapper'\n });\n\n const buttonClass = buildButtonClass({\n intent,\n size,\n behaviour,\n state,\n disabled\n });\n\n const Element = href ? 'a' : 'button';\n\n return (\n <div {...blockProps}>\n <Element\n className={buttonClass}\n disabled={!href && disabled}\n href={href}\n target={target}\n rel={rel}\n type={!href ? type : undefined}\n aria-label={ariaLabel}\n >\n <span className=\"tds-button__label-container\">\n <span className=\"tds-button__label\">{label}</span>\n </span>\n </Element>\n </div>\n );\n}\n","import { registerBlockType } from '@wordpress/blocks';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport Edit from './edit.js';\nimport Save from './save.js';\nimport metadata from './block.json';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit: Edit,\n save: Save\n});\n","import { useBlockProps, InspectorControls } from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const { isDashed, isVertical, padding } = attributes;\n const blockProps = useBlockProps();\n\n const buildDividerClass = () => {\n const classes = ['tds-divider'];\n if (isDashed) classes.push('tds-divider--dashed');\n if (isVertical) classes.push('tds-divider--vertical');\n if (padding) classes.push('tds-divider--padding');\n return classes.join(' ');\n };\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Divider Settings\">\n <ToggleControl\n label=\"Dashed\"\n checked={isDashed}\n onChange={(val) => setAttributes({ isDashed: val })}\n />\n <ToggleControl\n label=\"Vertical\"\n checked={isVertical}\n onChange={(val) => setAttributes({ isVertical: val })}\n />\n <ToggleControl\n label=\"Padding\"\n checked={padding}\n onChange={(val) => setAttributes({ padding: val })}\n />\n </PanelBody>\n </InspectorControls>\n <div {...blockProps} className={buildDividerClass()} />\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const { isDashed, isVertical, padding } = attributes;\n const blockProps = useBlockProps.save();\n\n const buildDividerClass = () => {\n const classes = ['tds-divider'];\n if (isDashed) classes.push('tds-divider--dashed');\n if (isVertical) classes.push('tds-divider--vertical');\n if (padding) classes.push('tds-divider--padding');\n return classes.join(' ');\n };\n\n return <div {...blockProps} className={buildDividerClass()} />;\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n","import {\n useBlockProps,\n RichText,\n InspectorControls\n} from '@wordpress/block-editor';\nimport { PanelBody, SelectControl } from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const { as, typographyStyle, content } = attributes;\n const blockProps = useBlockProps();\n\n const tagName = as || 'p';\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Text Settings\">\n <SelectControl\n label=\"Tag\"\n value={as}\n options={[\n { label: 'Paragraph', value: 'p' },\n { label: 'Span', value: 'span' },\n { label: 'Heading 1', value: 'h1' },\n { label: 'Heading 2', value: 'h2' },\n { label: 'Heading 3', value: 'h3' },\n { label: 'Heading 4', value: 'h4' },\n { label: 'Heading 5', value: 'h5' }\n ]}\n onChange={(val) => setAttributes({ as: val })}\n />\n <SelectControl\n label=\"Typography Style\"\n value={typographyStyle}\n options={[\n { label: 'Body Standard', value: 'body-standard' },\n { label: 'Body Small', value: 'body-small' },\n { label: 'Headline', value: 'headline' }\n ]}\n onChange={(val) => setAttributes({ typographyStyle: val })}\n />\n </PanelBody>\n </InspectorControls>\n <RichText\n {...blockProps}\n tagName={tagName}\n value={content}\n onChange={(val) => setAttributes({ content: val })}\n className={`tds-text tds-text--${typographyStyle}`}\n placeholder=\"Enter text...\"\n />\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps, RichText } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const { as, typographyStyle, content } = attributes;\n const blockProps = useBlockProps.save();\n const tagName = as || 'p';\n\n return (\n <RichText.Content\n {...blockProps}\n tagName={tagName}\n value={content}\n className={`tds-text tds-text--${typographyStyle}`}\n />\n );\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n","import { useBlockProps, InspectorControls } from '@wordpress/block-editor';\nimport {\n PanelBody,\n TextControl,\n SelectControl,\n ToggleControl\n} from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const { label, placeholder, type, disabled, required, name, id } = attributes;\n const blockProps = useBlockProps();\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Input Settings\">\n <TextControl\n label=\"Label\"\n value={label}\n onChange={(val) => setAttributes({ label: val })}\n />\n <TextControl\n label=\"Placeholder\"\n value={placeholder}\n onChange={(val) => setAttributes({ placeholder: val })}\n />\n <SelectControl\n label=\"Type\"\n value={type}\n options={[\n { label: 'Text', value: 'text' },\n { label: 'Email', value: 'email' },\n { label: 'Password', value: 'password' },\n { label: 'Number', value: 'number' },\n { label: 'Tel', value: 'tel' },\n { label: 'URL', value: 'url' }\n ]}\n onChange={(val) => setAttributes({ type: val })}\n />\n <TextControl\n label=\"Name\"\n value={name}\n onChange={(val) => setAttributes({ name: val })}\n />\n <TextControl\n label=\"ID\"\n value={id}\n onChange={(val) => setAttributes({ id: val })}\n />\n <ToggleControl\n label=\"Required\"\n checked={required}\n onChange={(val) => setAttributes({ required: val })}\n />\n <ToggleControl\n label=\"Disabled\"\n checked={disabled}\n onChange={(val) => setAttributes({ disabled: val })}\n />\n </PanelBody>\n </InspectorControls>\n <div {...blockProps}>\n {label && <label className=\"tds-input__label\">{label}</label>}\n <input\n type={type}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n name={name}\n id={id}\n className=\"tds-input\"\n />\n </div>\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const { label, placeholder, type, disabled, required, name, id } = attributes;\n const blockProps = useBlockProps.save();\n\n return (\n <div {...blockProps}>\n {label && (\n <label htmlFor={id} className=\"tds-input__label\">\n {label}\n </label>\n )}\n <input\n type={type}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n name={name}\n id={id}\n className=\"tds-input\"\n />\n </div>\n );\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n","import { useBlockProps, InspectorControls } from '@wordpress/block-editor';\nimport {\n PanelBody,\n TextControl,\n SelectControl,\n ToggleControl\n} from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const { iconName, round, href, target, rel, ariaLabel } = attributes;\n const blockProps = useBlockProps();\n\n const buildClass = () => {\n const classes = ['tds-icon-button'];\n if (round) classes.push('tds-icon-button--round');\n return classes.join(' ');\n };\n\n const Element = href ? 'a' : 'button';\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Icon Button Settings\">\n <TextControl\n label=\"Icon Name\"\n value={iconName}\n onChange={(val) => setAttributes({ iconName: val })}\n placeholder=\"e.g., arrow-right\"\n />\n <ToggleControl\n label=\"Round\"\n checked={round}\n onChange={(val) => setAttributes({ round: val })}\n />\n <TextControl\n label=\"URL (Leave empty for button)\"\n value={href}\n onChange={(val) => setAttributes({ href: val })}\n />\n {href && (\n <>\n <SelectControl\n label=\"Target\"\n value={target}\n options={[\n { label: 'Same window', value: '_self' },\n { label: 'New window', value: '_blank' },\n { label: 'Parent', value: '_parent' },\n { label: 'Top', value: '_top' }\n ]}\n onChange={(val) => setAttributes({ target: val })}\n />\n <TextControl\n label=\"Rel\"\n value={rel}\n onChange={(val) => setAttributes({ rel: val })}\n />\n </>\n )}\n <TextControl\n label=\"Aria Label\"\n value={ariaLabel}\n onChange={(val) => setAttributes({ ariaLabel: val })}\n />\n </PanelBody>\n </InspectorControls>\n <Element\n {...blockProps}\n className={buildClass()}\n href={href || undefined}\n target={href ? target : undefined}\n rel={href && rel ? rel : undefined}\n aria-label={ariaLabel}\n >\n <span className=\"tds-icon-button__icon\">{iconName}</span>\n </Element>\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const { iconName, round, href, target, rel, ariaLabel } = attributes;\n const blockProps = useBlockProps.save();\n\n const buildClass = () => {\n const classes = ['tds-icon-button'];\n if (round) classes.push('tds-icon-button--round');\n return classes.join(' ');\n };\n\n const Element = href ? 'a' : 'button';\n\n return (\n <Element\n {...blockProps}\n className={buildClass()}\n href={href || undefined}\n target={href ? target : undefined}\n rel={href && rel ? rel : undefined}\n aria-label={ariaLabel}\n >\n <span className=\"tds-icon-button__icon\">{iconName}</span>\n </Element>\n );\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n","import {\n useBlockProps,\n RichText,\n InspectorControls\n} from '@wordpress/block-editor';\nimport {\n PanelBody,\n SelectControl,\n TextControl,\n ToggleControl\n} from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const {\n content,\n intent,\n size,\n state,\n channel,\n toggle,\n iconLeft,\n iconRight,\n ariaLabel\n } = attributes;\n const blockProps = useBlockProps();\n\n const buildClass = () => {\n const classes = ['tds-chip'];\n classes.push(`tds-chip--intent-${intent}`);\n classes.push(`tds-chip--size-${size}`);\n classes.push(`tds-chip--state-${state}`);\n if (channel) classes.push('tds-chip--channel');\n if (toggle) classes.push('tds-chip--toggle');\n return classes.join(' ');\n };\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Chip Settings\">\n <SelectControl\n label=\"Intent\"\n value={intent}\n options={[\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n { label: 'Negative', value: 'negative' }\n ]}\n onChange={(val) => setAttributes({ intent: val })}\n />\n <SelectControl\n label=\"Size\"\n value={size}\n options={[\n { label: 'Small', value: 'small' },\n { label: 'Medium', value: 'medium' },\n { label: 'Large', value: 'large' }\n ]}\n onChange={(val) => setAttributes({ size: val })}\n />\n <SelectControl\n label=\"State\"\n value={state}\n options={[\n { label: 'Base', value: 'base' },\n { label: 'Hover', value: 'hover' },\n { label: 'Pressed', value: 'pressed' },\n { label: 'Disabled', value: 'disabled' }\n ]}\n onChange={(val) => setAttributes({ state: val })}\n />\n <ToggleControl\n label=\"Channel\"\n checked={channel}\n onChange={(val) => setAttributes({ channel: val })}\n />\n <ToggleControl\n label=\"Toggle\"\n checked={toggle}\n onChange={(val) => setAttributes({ toggle: val })}\n />\n <TextControl\n label=\"Left Icon\"\n value={iconLeft}\n onChange={(val) => setAttributes({ iconLeft: val })}\n />\n <TextControl\n label=\"Right Icon\"\n value={iconRight}\n onChange={(val) => setAttributes({ iconRight: val })}\n />\n <TextControl\n label=\"Aria Label\"\n value={ariaLabel}\n onChange={(val) => setAttributes({ ariaLabel: val })}\n />\n </PanelBody>\n </InspectorControls>\n <button {...blockProps} className={buildClass()} aria-label={ariaLabel}>\n {iconLeft && <span className=\"tds-chip__icon-left\">{iconLeft}</span>}\n <RichText\n value={content}\n onChange={(val) => setAttributes({ content: val })}\n placeholder=\"Chip text\"\n className=\"tds-chip__content\"\n />\n {iconRight && <span className=\"tds-chip__icon-right\">{iconRight}</span>}\n </button>\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps, RichText } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const {\n content,\n intent,\n size,\n state,\n channel,\n toggle,\n iconLeft,\n iconRight,\n ariaLabel\n } = attributes;\n const blockProps = useBlockProps.save();\n\n const buildClass = () => {\n const classes = ['tds-chip'];\n classes.push(`tds-chip--intent-${intent}`);\n classes.push(`tds-chip--size-${size}`);\n classes.push(`tds-chip--state-${state}`);\n if (channel) classes.push('tds-chip--channel');\n if (toggle) classes.push('tds-chip--toggle');\n return classes.join(' ');\n };\n\n return (\n <button {...blockProps} className={buildClass()} aria-label={ariaLabel}>\n {iconLeft && <span className=\"tds-chip__icon-left\">{iconLeft}</span>}\n <RichText.Content value={content} className=\"tds-chip__content\" />\n {iconRight && <span className=\"tds-chip__icon-right\">{iconRight}</span>}\n </button>\n );\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n","import {\n useBlockProps,\n RichText,\n InspectorControls\n} from '@wordpress/block-editor';\nimport { PanelBody, SelectControl, TextControl } from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const { label, content, intent, size, iconLeft, iconRight, ariaLabel } =\n attributes;\n const blockProps = useBlockProps();\n\n const buildClass = () => {\n const classes = ['tds-flag'];\n classes.push(`tds-flag--intent-${intent}`);\n classes.push(`tds-flag--size-${size}`);\n return classes.join(' ');\n };\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Flag Settings\">\n <TextControl\n label=\"Label\"\n value={label}\n onChange={(val) => setAttributes({ label: val })}\n />\n <SelectControl\n label=\"Intent\"\n value={intent}\n options={[\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n { label: 'Negative', value: 'negative' },\n { label: 'Positive', value: 'positive' }\n ]}\n onChange={(val) => setAttributes({ intent: val })}\n />\n <SelectControl\n label=\"Size\"\n value={size}\n options={[\n { label: 'Small', value: 'small' },\n { label: 'Medium', value: 'medium' },\n { label: 'Large', value: 'large' }\n ]}\n onChange={(val) => setAttributes({ size: val })}\n />\n <TextControl\n label=\"Left Icon\"\n value={iconLeft}\n onChange={(val) => setAttributes({ iconLeft: val })}\n />\n <TextControl\n label=\"Right Icon\"\n value={iconRight}\n onChange={(val) => setAttributes({ iconRight: val })}\n />\n <TextControl\n label=\"Aria Label\"\n value={ariaLabel}\n onChange={(val) => setAttributes({ ariaLabel: val })}\n />\n </PanelBody>\n </InspectorControls>\n <div {...blockProps} className={buildClass()} aria-label={ariaLabel}>\n {label && <div className=\"tds-flag__label\">{label}</div>}\n {iconLeft && <span className=\"tds-flag__icon-left\">{iconLeft}</span>}\n <RichText\n value={content}\n onChange={(val) => setAttributes({ content: val })}\n placeholder=\"Flag content\"\n className=\"tds-flag__content\"\n />\n {iconRight && <span className=\"tds-flag__icon-right\">{iconRight}</span>}\n </div>\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps, RichText } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const { label, content, intent, size, iconLeft, iconRight, ariaLabel } =\n attributes;\n const blockProps = useBlockProps.save();\n\n const buildClass = () => {\n const classes = ['tds-flag'];\n classes.push(`tds-flag--intent-${intent}`);\n classes.push(`tds-flag--size-${size}`);\n return classes.join(' ');\n };\n\n return (\n <div {...blockProps} className={buildClass()} aria-label={ariaLabel}>\n {label && <div className=\"tds-flag__label\">{label}</div>}\n {iconLeft && <span className=\"tds-flag__icon-left\">{iconLeft}</span>}\n <RichText.Content value={content} className=\"tds-flag__content\" />\n {iconRight && <span className=\"tds-flag__icon-right\">{iconRight}</span>}\n </div>\n );\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n","import {\n useBlockProps,\n RichText,\n InspectorControls\n} from '@wordpress/block-editor';\nimport {\n PanelBody,\n SelectControl,\n TextControl,\n ToggleControl,\n NumberControl\n} from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const { label, intent, link, linkLabel, timeout } = attributes;\n const blockProps = useBlockProps();\n\n const buildClass = () => {\n const classes = ['tds-toast'];\n classes.push(`tds-toast--intent-${intent}`);\n return classes.join(' ');\n };\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Toast Settings\">\n <TextControl\n label=\"Label\"\n value={label}\n onChange={(val) => setAttributes({ label: val })}\n />\n <SelectControl\n label=\"Intent\"\n value={intent}\n options={[\n { label: 'Info', value: 'info' },\n { label: 'Success', value: 'success' },\n { label: 'Warning', value: 'warning' },\n { label: 'Error', value: 'error' }\n ]}\n onChange={(val) => setAttributes({ intent: val })}\n />\n <ToggleControl\n label=\"Show Link\"\n checked={link}\n onChange={(val) => setAttributes({ link: val })}\n />\n {link && (\n <TextControl\n label=\"Link Label\"\n value={linkLabel}\n onChange={(val) => setAttributes({ linkLabel: val })}\n />\n )}\n <NumberControl\n label=\"Timeout (ms)\"\n value={timeout}\n onChange={(val) => setAttributes({ timeout: val || 0 })}\n min={0}\n step={1000}\n />\n </PanelBody>\n </InspectorControls>\n <div\n {...blockProps}\n className={buildClass()}\n role=\"status\"\n aria-live=\"polite\"\n >\n <div className=\"tds-toast__content\">\n <RichText\n value={label}\n onChange={(val) => setAttributes({ label: val })}\n placeholder=\"Toast message\"\n className=\"tds-toast__label\"\n />\n </div>\n {link && <button className=\"tds-toast__link\">{linkLabel}</button>}\n </div>\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps, RichText } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const { label, intent, link, linkLabel, timeout } = attributes;\n const blockProps = useBlockProps.save();\n\n const buildClass = () => {\n const classes = ['tds-toast'];\n classes.push(`tds-toast--intent-${intent}`);\n return classes.join(' ');\n };\n\n return (\n <div\n {...blockProps}\n className={buildClass()}\n role=\"status\"\n aria-live=\"polite\"\n data-timeout={timeout}\n >\n <div className=\"tds-toast__content\">\n <RichText.Content value={label} className=\"tds-toast__label\" />\n </div>\n {link && <button className=\"tds-toast__link\">{linkLabel}</button>}\n </div>\n );\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n","import {\n useBlockProps,\n RichText,\n InspectorControls\n} from '@wordpress/block-editor';\nimport {\n PanelBody,\n TextControl,\n SelectControl,\n ToggleControl\n} from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const {\n href,\n content,\n intent,\n sentiment,\n size,\n state,\n iconLeft,\n iconRight,\n inline,\n ariaLabel,\n target,\n rel\n } = attributes;\n const blockProps = useBlockProps();\n\n const buildClass = () => {\n const classes = ['tds-link'];\n classes.push(`tds-link--intent-${intent}`);\n classes.push(`tds-link--sentiment-${sentiment}`);\n classes.push(`tds-link--size-${size}`);\n classes.push(`tds-link--state-${state}`);\n if (!inline) classes.push('tds-link--block');\n return classes.join(' ');\n };\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Link Settings\">\n <TextControl\n label=\"URL\"\n value={href}\n onChange={(val) => setAttributes({ href: val })}\n type=\"url\"\n />\n <SelectControl\n label=\"Intent\"\n value={intent}\n options={[\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n { label: 'Negative', value: 'negative' }\n ]}\n onChange={(val) => setAttributes({ intent: val })}\n />\n <SelectControl\n label=\"Sentiment\"\n value={sentiment}\n options={[\n { label: 'Neutral', value: 'neutral' },\n { label: 'Positive', value: 'positive' },\n { label: 'Negative', value: 'negative' }\n ]}\n onChange={(val) => setAttributes({ sentiment: val })}\n />\n <SelectControl\n label=\"Size\"\n value={size}\n options={[\n { label: 'Small', value: 'small' },\n { label: 'Medium', value: 'medium' },\n { label: 'Large', value: 'large' }\n ]}\n onChange={(val) => setAttributes({ size: val })}\n />\n <SelectControl\n label=\"State\"\n value={state}\n options={[\n { label: 'Base', value: 'base' },\n { label: 'Hover', value: 'hover' },\n { label: 'Visited', value: 'visited' },\n { label: 'Focus', value: 'focus' },\n { label: 'Disabled', value: 'disabled' }\n ]}\n onChange={(val) => setAttributes({ state: val })}\n />\n <TextControl\n label=\"Left Icon\"\n value={iconLeft}\n onChange={(val) => setAttributes({ iconLeft: val })}\n />\n <TextControl\n label=\"Right Icon\"\n value={iconRight}\n onChange={(val) => setAttributes({ iconRight: val })}\n />\n <ToggleControl\n label=\"Inline\"\n checked={inline}\n onChange={(val) => setAttributes({ inline: val })}\n />\n <SelectControl\n label=\"Target\"\n value={target}\n options={[\n { label: 'Same window', value: '_self' },\n { label: 'New window', value: '_blank' },\n { label: 'Parent', value: '_parent' },\n { label: 'Top', value: '_top' }\n ]}\n onChange={(val) => setAttributes({ target: val })}\n />\n <TextControl\n label=\"Rel\"\n value={rel}\n onChange={(val) => setAttributes({ rel: val })}\n />\n <TextControl\n label=\"Aria Label\"\n value={ariaLabel}\n onChange={(val) => setAttributes({ ariaLabel: val })}\n />\n </PanelBody>\n </InspectorControls>\n <a\n {...blockProps}\n href={href || '#'}\n className={buildClass()}\n aria-label={ariaLabel}\n target={target}\n rel={rel}\n >\n {iconLeft && <span className=\"tds-link__icon-left\">{iconLeft}</span>}\n <RichText\n value={content}\n onChange={(val) => setAttributes({ content: val })}\n placeholder=\"Link text\"\n className=\"tds-link__content\"\n />\n {iconRight && <span className=\"tds-link__icon-right\">{iconRight}</span>}\n </a>\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps, RichText } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const {\n href,\n content,\n intent,\n sentiment,\n size,\n state,\n iconLeft,\n iconRight,\n inline,\n ariaLabel,\n target,\n rel\n } = attributes;\n const blockProps = useBlockProps.save();\n\n const buildClass = () => {\n const classes = ['tds-link'];\n classes.push(`tds-link--intent-${intent}`);\n classes.push(`tds-link--sentiment-${sentiment}`);\n classes.push(`tds-link--size-${size}`);\n classes.push(`tds-link--state-${state}`);\n if (!inline) classes.push('tds-link--block');\n return classes.join(' ');\n };\n\n return (\n <a\n {...blockProps}\n href={href}\n className={buildClass()}\n aria-label={ariaLabel}\n target={target !== '_self' ? target : undefined}\n rel={rel || undefined}\n >\n {iconLeft && <span className=\"tds-link__icon-left\">{iconLeft}</span>}\n <RichText.Content value={content} className=\"tds-link__content\" />\n {iconRight && <span className=\"tds-link__icon-right\">{iconRight}</span>}\n </a>\n );\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n","import { useBlockProps, InspectorControls } from '@wordpress/block-editor';\nimport { PanelBody, SelectControl, TextControl } from '@wordpress/components';\n\nconst edit = ({ attributes, setAttributes }) => {\n const { type, slotID } = attributes;\n const blockProps = useBlockProps();\n\n return (\n <>\n <InspectorControls>\n <PanelBody title=\"Ad Container Settings\">\n <SelectControl\n label=\"Type\"\n value={type}\n options={[\n { label: 'Header', value: 'header' },\n { label: 'Inline', value: 'inline' }\n ]}\n onChange={(val) => setAttributes({ type: val })}\n />\n <TextControl\n label=\"Slot ID\"\n value={slotID}\n onChange={(val) => setAttributes({ slotID: val })}\n placeholder=\"e.g., /123456789/section/article-top\"\n />\n </PanelBody>\n </InspectorControls>\n <div\n {...blockProps}\n className={`tds-ad-container tds-ad-container--${type}`}\n data-slot-id={slotID}\n >\n <div className=\"tds-ad-container__placeholder\">\n <p>Ad Slot: {slotID || '(not configured)'}</p>\n </div>\n </div>\n </>\n );\n};\n\nexport default edit;\n","import { useBlockProps } from '@wordpress/block-editor';\n\nconst save = ({ attributes }) => {\n const { type, slotID } = attributes;\n const blockProps = useBlockProps.save();\n\n return (\n <div\n {...blockProps}\n className={`tds-ad-container tds-ad-container--${type}`}\n data-slot-id={slotID}\n />\n );\n};\n\nexport default save;\n","import { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nregisterBlockType(metadata.name, {\n ...metadata,\n edit,\n save\n});\n"],"names":["buildButtonClass","_ref","_ref$intent","intent","_ref$size","size","_ref$behaviour","behaviour","_ref$state","state","_ref$disabled","disabled","classes","concat","push","join","Edit","attributes","setAttributes","label","href","target","rel","type","iconLeft","iconRight","ariaLabel","blockProps","useBlockProps","className","buttonClass","Element","React","createElement","Fragment","undefined","InspectorControls","PanelBody","title","TextControl","value","onChange","help","SelectControl","options","ToggleControl","checked","initialOpen","placeholder","Save","save","registerBlockType","metadata","name","_objectSpread","edit","isDashed","isVertical","padding","buildDividerClass","val","_extends","as","typographyStyle","content","tagName","RichText","Content","required","id","htmlFor","iconName","round","buildClass","channel","toggle","link","linkLabel","timeout","NumberControl","min","step","role","sentiment","inline","slotID"],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ <?php
2
+ /**
3
+ * Plugin Name: Times Design System Blocks
4
+ * Plugin URI: https://github.com/newsuk/times-design-system
5
+ * Description: A collection of Gutenberg blocks for Times Design System components
6
+ * Version: 1.1.0
7
+ * Author: Times Design System Team
8
+ * Author URI: https://github.com/newsuk/times-design-system
9
+ * License: ISC
10
+ * License URI: https://opensource.org/licenses/ISC
11
+ * Text Domain: times-design-system
12
+ * Domain Path: /languages
13
+ * Requires at least: 6.0
14
+ * Requires PHP: 7.4
15
+ *
16
+ * @package TimesDesignSystem\ComponentsWordPress
17
+ */
18
+
19
+ // Exit if accessed directly
20
+ if ( ! defined( 'ABSPATH' ) ) {
21
+ exit;
22
+ }
23
+
24
+ /**
25
+ * Register all blocks from the block.json manifest.
26
+ *
27
+ * @since 1.1.0
28
+ * @return void
29
+ */
30
+ function tds_register_blocks() {
31
+ $blocks_dir = plugin_dir_path( __FILE__ ) . 'blocks/';
32
+
33
+ if ( ! is_dir( $blocks_dir ) ) {
34
+ return;
35
+ }
36
+
37
+ // Register each block found in the blocks directory
38
+ $block_dirs = glob( $blocks_dir . '*', GLOB_ONLYDIR );
39
+
40
+ foreach ( $block_dirs as $block_dir ) {
41
+ $block_json = $block_dir . '/block.json';
42
+
43
+ if ( file_exists( $block_json ) ) {
44
+ register_block_type( $block_json );
45
+ }
46
+ }
47
+ }
48
+
49
+ add_action( 'init', 'tds_register_blocks' );
50
+
51
+ /**
52
+ * Enqueue plugin styles and scripts.
53
+ *
54
+ * @since 1.1.0
55
+ * @return void
56
+ */
57
+ function tds_enqueue_assets() {
58
+ // Enqueue theme-scss styles if available
59
+ $stylesheet_handle = 'times-design-system-theme';
60
+
61
+ if ( wp_style_is( $stylesheet_handle, 'registered' ) || wp_style_is( $stylesheet_handle, 'enqueued' ) ) {
62
+ wp_enqueue_style( $stylesheet_handle );
63
+ }
64
+ }
65
+
66
+ add_action( 'wp_enqueue_scripts', 'tds_enqueue_assets' );
67
+ add_action( 'admin_enqueue_scripts', 'tds_enqueue_assets' );
68
+
69
+ // Activation hook
70
+ register_activation_hook( __FILE__, function() {
71
+ // Flush rewrite rules on activation if needed
72
+ flush_rewrite_rules();
73
+ } );
74
+
75
+ // Deactivation hook
76
+ register_deactivation_hook( __FILE__, function() {
77
+ // Clean up on deactivation if needed
78
+ flush_rewrite_rules();
79
+ } );
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Build className string for Button component based on attributes.
3
+ * Maps component properties to TDS (Times Design System) SCSS classes.
4
+ *
5
+ * @param {Object} options - Button configuration options
6
+ * @param {string} options.intent - Visual style variant (primary, secondary, negative)
7
+ * @param {string} options.size - Button size (small, medium, large)
8
+ * @param {string} options.behaviour - Width behaviour (hug, full)
9
+ * @param {string} options.state - Interaction state (base, hover, pressed, loading, disabled, focus)
10
+ * @param {boolean} options.disabled - Whether button is disabled
11
+ * @returns {string} Complete className string
12
+ */
13
+ export function buildButtonClass({
14
+ intent = 'primary',
15
+ size = 'large',
16
+ behaviour = 'hug',
17
+ state = 'base',
18
+ disabled = false
19
+ }) {
20
+ const classes = [
21
+ 'tds-button',
22
+ `tds-button--intent-${intent}`,
23
+ `tds-button--size-${size}`,
24
+ `tds-button--behaviour-${behaviour}`,
25
+ `tds-button--state-${state}`
26
+ ];
27
+
28
+ if (disabled) {
29
+ classes.push('tds-button--disabled');
30
+ }
31
+
32
+ return classes.join(' ');
33
+ }
34
+
35
+ /**
36
+ * Generic class builder utility for consistent naming conventions.
37
+ * Creates BEM-style className strings.
38
+ *
39
+ * @param {string} blockName - Base block name (e.g., 'tds-button')
40
+ * @param {Object} modifiers - Object with modifier names as keys
41
+ * @returns {string} Complete className string
42
+ */
43
+ export function buildClassName(blockName, modifiers = {}) {
44
+ const classes = [blockName];
45
+
46
+ Object.entries(modifiers).forEach(([key, value]) => {
47
+ if (value && value !== '') {
48
+ classes.push(`${blockName}--${key}-${value}`);
49
+ }
50
+ });
51
+
52
+ return classes.join(' ');
53
+ }
package/package.json CHANGED
@@ -1,13 +1,19 @@
1
1
  {
2
2
  "name": "@times-design-system/components-wordpress",
3
- "version": "0.1.1-alpha.831+b2bf540",
3
+ "version": "0.7.2-alpha.2+201ed7aa",
4
4
  "type": "module",
5
- "description": "Times Design System components",
6
- "keywords": [],
5
+ "description": "Times Design System Gutenberg blocks for WordPress Full Site Editing",
6
+ "keywords": [
7
+ "wordpress",
8
+ "gutenberg",
9
+ "blocks",
10
+ "design-system",
11
+ "times"
12
+ ],
7
13
  "author": "douglasmik <michael@viaverso.co.uk>",
8
14
  "license": "ISC",
9
- "main": "dist/index",
10
- "dev": "src/index",
15
+ "main": "dist/index.js",
16
+ "dev": "src/index.js",
11
17
  "directories": {
12
18
  "lib": "lib",
13
19
  "test": "__tests__"
@@ -16,9 +22,19 @@
16
22
  "type": "git",
17
23
  "url": "git+https://github.com/newsuk/times-design-system.git"
18
24
  },
25
+ "wordpress": {
26
+ "plugin": "times-design-system-blocks",
27
+ "pluginSlug": "times-design-system-blocks",
28
+ "pluginFile": "plugin.php",
29
+ "textDomain": "times-design-system",
30
+ "domainPath": "/languages",
31
+ "requiresWordPress": "6.0",
32
+ "requiresPhp": "7.4"
33
+ },
19
34
  "scripts": {
20
- "build": "npm run clean && npm run build:rollup",
35
+ "build": "npm run clean && npm run build:rollup && npm run build:plugin",
21
36
  "build:rollup": "rollup -c",
37
+ "build:plugin": "node scripts/build-plugin.cjs",
22
38
  "clean": "rimraf dist",
23
39
  "dev": "rollup -c --watch",
24
40
  "prepublishOnly": "npm run build",
@@ -31,13 +47,29 @@
31
47
  "publishConfig": {
32
48
  "access": "public"
33
49
  },
50
+ "dependencies": {
51
+ "@times-design-system/theme-scss": "^2.0.1-alpha.2+201ed7aa",
52
+ "@wordpress/block-editor": "^12.0.0",
53
+ "@wordpress/blocks": "^12.0.0",
54
+ "@wordpress/components": "^25.0.0",
55
+ "@wordpress/element": "^5.0.0"
56
+ },
34
57
  "devDependencies": {
35
58
  "@babel/core": "^7.23.0",
36
59
  "@babel/preset-env": "^7.23.0",
37
60
  "@babel/preset-react": "^7.22.0",
61
+ "@rollup/plugin-babel": "^6.0.0",
62
+ "@rollup/plugin-commonjs": "^25.0.0",
63
+ "@rollup/plugin-json": "^6.0.0",
64
+ "@rollup/plugin-node-resolve": "^15.0.0",
65
+ "@rollup/plugin-typescript": "^11.0.0",
38
66
  "@types/react": "19.2.5",
39
67
  "postcss": "^8.4.31",
68
+ "rimraf": "^5.0.0",
69
+ "rollup": "^3.0.0",
70
+ "rollup-plugin-copy": "^3.4.0",
71
+ "rollup-plugin-postcss": "^4.0.2",
40
72
  "typescript": "^5.0.0"
41
73
  },
42
- "gitHead": "b2bf5404041e02be25634dbc6bc0db8be1c3a445"
74
+ "gitHead": "201ed7aaa54d2ce981dd2c1559b10e60e0370df8"
43
75
  }
package/plugin.php ADDED
@@ -0,0 +1,79 @@
1
+ <?php
2
+ /**
3
+ * Plugin Name: Times Design System Blocks
4
+ * Plugin URI: https://github.com/newsuk/times-design-system
5
+ * Description: A collection of Gutenberg blocks for Times Design System components
6
+ * Version: 1.1.0
7
+ * Author: Times Design System Team
8
+ * Author URI: https://github.com/newsuk/times-design-system
9
+ * License: ISC
10
+ * License URI: https://opensource.org/licenses/ISC
11
+ * Text Domain: times-design-system
12
+ * Domain Path: /languages
13
+ * Requires at least: 6.0
14
+ * Requires PHP: 7.4
15
+ *
16
+ * @package TimesDesignSystem\ComponentsWordPress
17
+ */
18
+
19
+ // Exit if accessed directly
20
+ if ( ! defined( 'ABSPATH' ) ) {
21
+ exit;
22
+ }
23
+
24
+ /**
25
+ * Register all blocks from the block.json manifest.
26
+ *
27
+ * @since 1.1.0
28
+ * @return void
29
+ */
30
+ function tds_register_blocks() {
31
+ $blocks_dir = plugin_dir_path( __FILE__ ) . 'blocks/';
32
+
33
+ if ( ! is_dir( $blocks_dir ) ) {
34
+ return;
35
+ }
36
+
37
+ // Register each block found in the blocks directory
38
+ $block_dirs = glob( $blocks_dir . '*', GLOB_ONLYDIR );
39
+
40
+ foreach ( $block_dirs as $block_dir ) {
41
+ $block_json = $block_dir . '/block.json';
42
+
43
+ if ( file_exists( $block_json ) ) {
44
+ register_block_type( $block_json );
45
+ }
46
+ }
47
+ }
48
+
49
+ add_action( 'init', 'tds_register_blocks' );
50
+
51
+ /**
52
+ * Enqueue plugin styles and scripts.
53
+ *
54
+ * @since 1.1.0
55
+ * @return void
56
+ */
57
+ function tds_enqueue_assets() {
58
+ // Enqueue theme-scss styles if available
59
+ $stylesheet_handle = 'times-design-system-theme';
60
+
61
+ if ( wp_style_is( $stylesheet_handle, 'registered' ) || wp_style_is( $stylesheet_handle, 'enqueued' ) ) {
62
+ wp_enqueue_style( $stylesheet_handle );
63
+ }
64
+ }
65
+
66
+ add_action( 'wp_enqueue_scripts', 'tds_enqueue_assets' );
67
+ add_action( 'admin_enqueue_scripts', 'tds_enqueue_assets' );
68
+
69
+ // Activation hook
70
+ register_activation_hook( __FILE__, function() {
71
+ // Flush rewrite rules on activation if needed
72
+ flush_rewrite_rules();
73
+ } );
74
+
75
+ // Deactivation hook
76
+ register_deactivation_hook( __FILE__, function() {
77
+ // Clean up on deactivation if needed
78
+ flush_rewrite_rules();
79
+ } );