@redvars/peacock 3.8.6 → 3.9.1

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 (85) hide show
  1. package/dist/code-highlighter.js +1 -4
  2. package/dist/code-highlighter.js.map +1 -1
  3. package/dist/custom-elements-jsdocs.json +93 -213
  4. package/dist/custom-elements.json +488 -2149
  5. package/dist/elevation.js +55 -2
  6. package/dist/elevation.js.map +1 -1
  7. package/dist/flow.js +762 -0
  8. package/dist/flow.js.map +1 -0
  9. package/dist/index.js +3 -3
  10. package/dist/loader.js +10 -9
  11. package/dist/loader.js.map +1 -1
  12. package/dist/menu-item.js +144 -63
  13. package/dist/menu-item.js.map +1 -1
  14. package/dist/menu.js +161 -73
  15. package/dist/menu.js.map +1 -1
  16. package/dist/src/flow/flow.d.ts +102 -0
  17. package/dist/src/flow/index.d.ts +2 -0
  18. package/dist/src/index.d.ts +3 -4
  19. package/dist/src/menu/menu/menu.d.ts +10 -9
  20. package/dist/src/menu/menu-item/menu-item.d.ts +1 -3
  21. package/dist/src/timeline/index.d.ts +2 -0
  22. package/dist/src/timeline/timeline-item.d.ts +23 -0
  23. package/dist/src/timeline/timeline.d.ts +26 -0
  24. package/dist/sub-menu.js +28 -1
  25. package/dist/sub-menu.js.map +1 -1
  26. package/dist/timeline-item.js +163 -0
  27. package/dist/timeline-item.js.map +1 -0
  28. package/dist/timeline.js +52 -0
  29. package/dist/timeline.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +3 -2
  32. package/readme.md +2 -2
  33. package/src/code-highlighter/code-highlighter.scss +1 -7
  34. package/src/elevation/demo/index.html +52 -0
  35. package/src/elevation/elevation.scss +52 -5
  36. package/src/elevation/elevation.ts +8 -1
  37. package/src/flow/flow.scss +195 -0
  38. package/src/flow/flow.ts +683 -0
  39. package/src/flow/index.ts +2 -0
  40. package/src/index.ts +3 -16
  41. package/src/loader.ts +10 -9
  42. package/src/menu/menu/copy-component-files.mjs +47 -0
  43. package/src/menu/menu/menu.scss +55 -17
  44. package/src/menu/menu/menu.ts +155 -84
  45. package/src/menu/menu-item/menu-item-colors.scss +3 -3
  46. package/src/menu/menu-item/menu-item.scss +118 -24
  47. package/src/menu/menu-item/menu-item.ts +61 -55
  48. package/src/menu/sub-menu/sub-menu.scss +30 -1
  49. package/src/timeline/index.ts +2 -0
  50. package/src/timeline/timeline-item.scss +98 -0
  51. package/src/timeline/timeline-item.ts +63 -0
  52. package/src/timeline/timeline.scss +11 -0
  53. package/src/timeline/timeline.ts +41 -0
  54. package/dist/canvas.js +0 -385
  55. package/dist/canvas.js.map +0 -1
  56. package/dist/flow-designer-node-CGSm6cUH.js +0 -553
  57. package/dist/flow-designer-node-CGSm6cUH.js.map +0 -1
  58. package/dist/flow-designer-node.js +0 -4
  59. package/dist/flow-designer-node.js.map +0 -1
  60. package/dist/flow-designer.js +0 -1417
  61. package/dist/flow-designer.js.map +0 -1
  62. package/dist/src/canvas/canvas.d.ts +0 -92
  63. package/dist/src/canvas/index.d.ts +0 -2
  64. package/dist/src/flow-designer/commands.d.ts +0 -66
  65. package/dist/src/flow-designer/flow-designer-node.d.ts +0 -46
  66. package/dist/src/flow-designer/flow-designer.d.ts +0 -133
  67. package/dist/src/flow-designer/index.d.ts +0 -7
  68. package/dist/src/flow-designer/layout.d.ts +0 -30
  69. package/dist/src/flow-designer/types.d.ts +0 -142
  70. package/dist/src/flow-designer/validation.d.ts +0 -43
  71. package/dist/src/flow-designer/workflow-utils.d.ts +0 -40
  72. package/src/canvas/canvas.scss +0 -72
  73. package/src/canvas/canvas.ts +0 -413
  74. package/src/canvas/index.ts +0 -2
  75. package/src/flow-designer/DEMO.md +0 -239
  76. package/src/flow-designer/commands.ts +0 -278
  77. package/src/flow-designer/flow-designer-node.ts +0 -172
  78. package/src/flow-designer/flow-designer.scss +0 -457
  79. package/src/flow-designer/flow-designer.ts +0 -611
  80. package/src/flow-designer/index.ts +0 -41
  81. package/src/flow-designer/layout.ts +0 -357
  82. package/src/flow-designer/types.ts +0 -166
  83. package/src/flow-designer/validation.ts +0 -284
  84. package/src/flow-designer/workflow-utils.ts +0 -282
  85. /package/dist/test/{flow-designer.test.d.ts → elevation.test.d.ts} +0 -0
@@ -84,7 +84,7 @@ var css_248z = i`* {
84
84
  align-items: center;
85
85
  justify-content: space-between;
86
86
  background-color: var(--code-highlighter-background);
87
- margin-bottom: var(--spacing-050);
87
+ border-bottom: 1px solid var(--color-outline-variant);
88
88
  font-family: var(--typography-body-medium-font-family) !important;
89
89
  font-size: var(--typography-body-medium-font-size) !important;
90
90
  font-weight: var(--typography-body-medium-font-weight) !important;
@@ -118,9 +118,6 @@ var css_248z = i`* {
118
118
  line-height: var(--typography-code-medium-line-height) !important;
119
119
  letter-spacing: var(--typography-code-medium-letter-spacing) !important;
120
120
  }
121
- .code-highlighter.line-numbers {
122
- margin-left: 3.75rem;
123
- }
124
121
  .code-highlighter.line-numbers .highlighter .shiki {
125
122
  /* Reset counter for line numbers */
126
123
  counter-reset: line-counter;
@@ -1 +1 @@
1
- {"version":3,"file":"code-highlighter.js","sources":["../../src/__internal/utils/copy-to-clipboard.ts","../../src/code-highlighter/code-highlighter.ts"],"sourcesContent":["function fallbackCopyTextToClipboard(text: string) {\n const temporaryInput = document.createElement('textarea');\n temporaryInput.value = text;\n\n // Make the element non-visible but still in the DOM so it can be selected\n temporaryInput.setAttribute('readonly', '');\n temporaryInput.style.position = 'absolute';\n temporaryInput.style.left = '-9999px';\n\n document.body.appendChild(temporaryInput);\n temporaryInput.select();\n\n try {\n document.execCommand('copy');\n } catch (err) {\n console.error('Fallback: Failed to copy text: ', err);\n } finally {\n document.body.removeChild(temporaryInput);\n }\n}\n\nexport async function copyToClipboard(text: string) {\n if (navigator.clipboard && navigator.clipboard.writeText) {\n // Use the modern Clipboard API\n try {\n await navigator.clipboard.writeText(text);\n } catch (err) {\n console.error('Failed to copy text using Clipboard API: ', err);\n // Fallback if API fails for some reason\n fallbackCopyTextToClipboard(text);\n }\n } else {\n // Use the fallback method for older browsers\n fallbackCopyTextToClipboard(text);\n }\n}\n","import { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport type { BundledLanguage, ShikiTransformer } from 'shiki';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport { copyToClipboard } from '@/__internal/utils/copy-to-clipboard.js';\nimport styles from './code-highlighter.scss';\n\n// Module-level promises – Rollup splits each import() specifier into a separate chunk.\n// Caching here prevents parallel loads when multiple instances initialise at the same time.\nlet _shiki: Promise<typeof import('shiki')> | null = null;\nlet _themes: Promise<\n [\n typeof import('@pierre/theme/pierre-dark'),\n typeof import('@pierre/theme/pierre-light'),\n ]\n> | null = null;\nlet _prettier: Promise<typeof import('prettier/standalone')> | null = null;\nlet _pluginBabel: Promise<typeof import('prettier/plugins/babel')> | null =\n null;\nlet _pluginHtml: Promise<typeof import('prettier/plugins/html')> | null = null;\nlet _pluginPostcss: Promise<typeof import('prettier/plugins/postcss')> | null =\n null;\nlet _pluginEstree: Promise<typeof import('prettier/plugins/estree')> | null =\n null;\n\nconst loadShiki = () => (_shiki ??= import('shiki'));\n\nconst loadThemes = () =>\n (_themes ??= Promise.all([\n import('@pierre/theme/pierre-dark'),\n import('@pierre/theme/pierre-light'),\n ]));\n\nconst loadPrettier = () => (_prettier ??= import('prettier/standalone'));\nconst loadPluginBabel = () =>\n (_pluginBabel ??= import('prettier/plugins/babel'));\nconst loadPluginHtml = () => (_pluginHtml ??= import('prettier/plugins/html'));\nconst loadPluginPostcss = () =>\n (_pluginPostcss ??= import('prettier/plugins/postcss'));\nconst loadPluginEstree = () =>\n (_pluginEstree ??= import('prettier/plugins/estree'));\n\nconst locale = {\n loading: 'Loading code...',\n copyToClipboard: 'Copy to clipboard',\n copied: 'Copied',\n copiedCode: 'Copied code',\n};\n\n/**\n * @label Code Highlighter\n * @tag wc-code-highlighter\n * @rawTag code-highlighter\n *\n * @summary A component that provides syntax highlighting for code snippets.\n *\n * @example\n * ```html\n * <wc-code-highlighter language=\"javascript\" style=\"height: 9rem\"><pre><code>\n * function helloWorld() {\n * console.log('Hello, world!');\n * }</code></pre>\n * </wc-code-highlighter>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class CodeHighlighter extends LitElement {\n static styles = [styles];\n\n private static readonly COPY_FEEDBACK_DURATION = 3000;\n\n @property({ type: String, reflect: true })\n language: BundledLanguage = 'javascript';\n\n @property({ attribute: 'line-numbers', type: Boolean, reflect: true })\n lineNumbers: boolean = false;\n\n @property({ type: String })\n value: string = '';\n\n @property({ type: Boolean, reflect: true })\n format?: boolean = true;\n\n @property({ type: Boolean })\n hideCopy: boolean = false;\n\n @state() private compiledCode: string | null = null;\n\n @state() private _copied = false;\n\n private parsedCode: string | null = null;\n\n private _copyFeedbackTimeout: number | null = null;\n\n async connectedCallback() {\n // eslint-disable-next-line wc/guard-super-call\n super.connectedCallback();\n }\n\n disconnectedCallback() {\n if (this._copyFeedbackTimeout !== null) {\n window.clearTimeout(this._copyFeedbackTimeout);\n this._copyFeedbackTimeout = null;\n }\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this.__highlightCode();\n }\n\n // eslint-disable-next-line class-methods-use-this\n private decode(str: string) {\n return str.replace(/&lt;/g, '<').replace(/&gt;/g, '>');\n }\n\n private async __highlightCode() {\n let codeString = '';\n if (this.value) {\n codeString = this.value;\n } else {\n // Accessing light DOM children\n const codeTag = this.querySelector('code');\n if (codeTag) {\n codeString = codeTag.innerHTML;\n } else if (this.childNodes.length > 0) {\n codeString = (this as HTMLElement).innerText;\n }\n }\n\n codeString = this.decode(codeString);\n\n if (this.format !== false) {\n // eslint-disable-next-line default-case\n switch (this.language) {\n case 'javascript': {\n const [prettier, pluginBabel, pluginEstree] = await Promise.all([\n loadPrettier(),\n loadPluginBabel(),\n loadPluginEstree(),\n ]);\n codeString = await prettier.format(codeString, {\n parser: 'babel',\n plugins: [pluginBabel, pluginEstree],\n bracketSameLine: true,\n htmlWhitespaceSensitivity: 'ignore',\n });\n break;\n }\n case 'html': {\n const [prettier, pluginHtml] = await Promise.all([\n loadPrettier(),\n loadPluginHtml(),\n ]);\n codeString = await prettier.format(codeString, {\n parser: 'html',\n plugins: [pluginHtml],\n bracketSameLine: true,\n htmlWhitespaceSensitivity: 'ignore',\n });\n break;\n }\n case 'css': {\n const [prettier, pluginPostcss] = await Promise.all([\n loadPrettier(),\n loadPluginPostcss(),\n ]);\n codeString = await prettier.format(codeString, {\n parser: 'css',\n plugins: [pluginPostcss],\n });\n break;\n }\n }\n }\n\n this.parsedCode = codeString;\n\n const transformers: ShikiTransformer[] = [];\n\n // If line numbers are enabled, we inject a transformer\n // that adds the 'line' class to every line node.\n if (this.lineNumbers) {\n transformers.push({\n name: 'add-line-class',\n line(node) {\n // Shiki v1 helper to add classes to the AST\n this.addClassToHast(node, 'line');\n },\n });\n }\n\n const [\n { codeToHtml },\n [{ default: pierreDark }, { default: pierreLight }],\n ] = await Promise.all([loadShiki(), loadThemes()]);\n\n this.compiledCode = await codeToHtml(codeString, {\n lang: this.language,\n themes: {\n // @ts-ignore\n light: pierreLight,\n // @ts-ignore\n dark: pierreDark,\n },\n transformers,\n });\n }\n\n protected updated(changed: Map<PropertyKey, unknown>) {\n // Only re-highlight when the source content or rendering options change,\n // not on unrelated state updates like the copy-button feedback toggle.\n if (\n changed.has('value') ||\n changed.has('language') ||\n changed.has('lineNumbers') ||\n changed.has('format')\n ) {\n this.__highlightCode();\n }\n }\n\n private async __handleCopyClick() {\n if (this.parsedCode == null) {\n return;\n }\n\n await copyToClipboard(this.parsedCode);\n this._copied = true;\n\n if (this._copyFeedbackTimeout !== null) {\n window.clearTimeout(this._copyFeedbackTimeout);\n }\n\n this._copyFeedbackTimeout = window.setTimeout(() => {\n this._copied = false;\n this._copyFeedbackTimeout = null;\n }, CodeHighlighter.COPY_FEEDBACK_DURATION);\n }\n\n render() {\n if (this.compiledCode === null) {\n return html`\n <div class=\"code-loader\">\n <wc-circular-progress indeterminate></wc-circular-progress>\n ${locale.loading}\n </div>\n `;\n }\n\n return html`\n <div\n class=${classMap({\n 'code-highlighter': true,\n 'line-numbers': this.lineNumbers,\n })}\n >\n <div class=\"header\">\n <div class=\"header-title\">\n <slot name=\"title\">${this.language?.toUpperCase()}</slot>\n </div>\n <div class=\"header-actions\">\n <wc-icon-button\n color=${this._copied ? 'success' : 'surface'}\n variant=\"text\"\n size=\"xs\"\n aria-label=${this._copied\n ? locale.copied\n : locale.copyToClipboard}\n tooltip=${this._copied ? locale.copied : locale.copyToClipboard}\n @click=${this.__handleCopyClick}\n >\n <wc-icon\n name=${this._copied ? 'check' : 'content_copy'}\n ></wc-icon>\n </wc-icon-button>\n </div>\n </div>\n\n <div class=\"scroll-wrapper\">\n <div class=\"highlighter\">${unsafeHTML(this.compiledCode || '')}</div>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","unsafeHTML","styles","property","state"],"mappings":";;;;;;;AAAA,SAAS,2BAA2B,CAAC,IAAY,EAAA;IAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AACzD,IAAA,cAAc,CAAC,KAAK,GAAG,IAAI;;AAG3B,IAAA,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;AAC3C,IAAA,cAAc,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAC1C,IAAA,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS;AAErC,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;IACzC,cAAc,CAAC,MAAM,EAAE;AAEvB,IAAA,IAAI;AACF,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IAC9B;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC;IACvD;YAAU;AACR,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;IAC3C;AACF;AAEO,eAAe,eAAe,CAAC,IAAY,EAAA;IAChD,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE;;AAExD,QAAA,IAAI;YACF,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;QAC3C;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC;;YAE/D,2BAA2B,CAAC,IAAI,CAAC;QACnC;IACF;SAAO;;QAEL,2BAA2B,CAAC,IAAI,CAAC;IACnC;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA,IAAI,MAAM,GAA2C,IAAI;AACzD,IAAI,OAAO,GAKA,IAAI;AACf,IAAI,SAAS,GAAyD,IAAI;AAC1E,IAAI,YAAY,GACd,IAAI;AACN,IAAI,WAAW,GAA2D,IAAI;AAC9E,IAAI,cAAc,GAChB,IAAI;AACN,IAAI,aAAa,GACf,IAAI;AAEN,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,OAAO,qBAAO,CAAC,CAAC;AAEpD,MAAM,UAAU,GAAG,OAChB,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC;IACvB,OAAO,2BAA2B,CAAC;IACnC,OAAO,4BAA4B,CAAC;AACrC,CAAA,CAAC,CAAC;AAEL,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,OAAO,0BAAqB,CAAC,CAAC;AACxE,MAAM,eAAe,GAAG,OACrB,YAAY,KAAK,OAAO,qBAAwB,CAAC,CAAC;AACrD,MAAM,cAAc,GAAG,OAAO,WAAW,KAAK,OAAO,oBAAuB,CAAC,CAAC;AAC9E,MAAM,iBAAiB,GAAG,OACvB,cAAc,KAAK,OAAO,uBAA0B,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,OACtB,aAAa,KAAK,OAAO,sBAAyB,CAAC,CAAC;AAEvD,MAAM,MAAM,GAAG;AACb,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,eAAe,EAAE,mBAAmB;AACpC,IAAA,MAAM,EAAE,SAET;AAED;;;;;;;;;;;;;;;;AAgBG;AAEI,IAAM,eAAe,GAAA,iBAAA,GAArB,MAAM,eAAgB,SAAQA,GAAU,CAAA;AAAxC,IAAA,WAAA,GAAA;;QAML,IAAA,CAAA,QAAQ,GAAoB,YAAY;QAGxC,IAAA,CAAA,WAAW,GAAY,KAAK;QAG5B,IAAA,CAAA,KAAK,GAAW,EAAE;QAGlB,IAAA,CAAA,MAAM,GAAa,IAAI;QAGvB,IAAA,CAAA,QAAQ,GAAY,KAAK;QAER,IAAA,CAAA,YAAY,GAAkB,IAAI;QAElC,IAAA,CAAA,OAAO,GAAG,KAAK;QAExB,IAAA,CAAA,UAAU,GAAkB,IAAI;QAEhC,IAAA,CAAA,oBAAoB,GAAkB,IAAI;IAiMpD;AA/LE,IAAA,MAAM,iBAAiB,GAAA;;QAErB,KAAK,CAAC,iBAAiB,EAAE;IAC3B;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE;AACtC,YAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC9C,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;QAClC;QACA,KAAK,CAAC,oBAAoB,EAAE;IAC9B;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,eAAe,EAAE;IACxB;;AAGQ,IAAA,MAAM,CAAC,GAAW,EAAA;AACxB,QAAA,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;IACxD;AAEQ,IAAA,MAAM,eAAe,GAAA;QAC3B,IAAI,UAAU,GAAG,EAAE;AACnB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,UAAU,GAAG,IAAI,CAAC,KAAK;QACzB;aAAO;;YAEL,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC1C,IAAI,OAAO,EAAE;AACX,gBAAA,UAAU,GAAG,OAAO,CAAC,SAAS;YAChC;iBAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,gBAAA,UAAU,GAAI,IAAoB,CAAC,SAAS;YAC9C;QACF;AAEA,QAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAEpC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;;AAEzB,YAAA,QAAQ,IAAI,CAAC,QAAQ;gBACnB,KAAK,YAAY,EAAE;AACjB,oBAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC9D,wBAAA,YAAY,EAAE;AACd,wBAAA,eAAe,EAAE;AACjB,wBAAA,gBAAgB,EAAE;AACnB,qBAAA,CAAC;AACF,oBAAA,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;AAC7C,wBAAA,MAAM,EAAE,OAAO;AACf,wBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;AACpC,wBAAA,eAAe,EAAE,IAAI;AACrB,wBAAA,yBAAyB,EAAE,QAAQ;AACpC,qBAAA,CAAC;oBACF;gBACF;gBACA,KAAK,MAAM,EAAE;oBACX,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC/C,wBAAA,YAAY,EAAE;AACd,wBAAA,cAAc,EAAE;AACjB,qBAAA,CAAC;AACF,oBAAA,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;AAC7C,wBAAA,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,CAAC,UAAU,CAAC;AACrB,wBAAA,eAAe,EAAE,IAAI;AACrB,wBAAA,yBAAyB,EAAE,QAAQ;AACpC,qBAAA,CAAC;oBACF;gBACF;gBACA,KAAK,KAAK,EAAE;oBACV,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAClD,wBAAA,YAAY,EAAE;AACd,wBAAA,iBAAiB,EAAE;AACpB,qBAAA,CAAC;AACF,oBAAA,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;AAC7C,wBAAA,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,qBAAA,CAAC;oBACF;gBACF;;QAEJ;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;QAE5B,MAAM,YAAY,GAAuB,EAAE;;;AAI3C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC;AAChB,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,IAAI,CAAC,IAAI,EAAA;;AAEP,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;gBACnC,CAAC;AACF,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,CACJ,EAAE,UAAU,EAAE,EACd,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EACpD,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAElD,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,QAAQ;AACnB,YAAA,MAAM,EAAE;;AAEN,gBAAA,KAAK,EAAE,WAAW;;AAElB,gBAAA,IAAI,EAAE,UAAU;AACjB,aAAA;YACD,YAAY;AACb,SAAA,CAAC;IACJ;AAEU,IAAA,OAAO,CAAC,OAAkC,EAAA;;;AAGlD,QAAA,IACE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AACpB,YAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACvB,YAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAC1B,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EACrB;YACA,IAAI,CAAC,eAAe,EAAE;QACxB;IACF;AAEQ,IAAA,MAAM,iBAAiB,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B;QACF;AAEA,QAAA,MAAM,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AAEnB,QAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE;AACtC,YAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAChD;QAEA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AACjD,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAClC,QAAA,CAAC,EAAE,iBAAe,CAAC,sBAAsB,CAAC;IAC5C;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;AAC9B,YAAA,OAAOC,CAAI,CAAA;;;AAGL,UAAA,EAAA,MAAM,CAAC,OAAO;;OAEnB;QACH;AAEA,QAAA,OAAOA,CAAI,CAAA;;AAEC,cAAA,EAAAC,CAAQ,CAAC;AACf,YAAA,kBAAkB,EAAE,IAAI;YACxB,cAAc,EAAE,IAAI,CAAC,WAAW;SACjC,CAAC;;;;AAIuB,+BAAA,EAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;;;;sBAIvC,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS;;;AAG/B,yBAAA,EAAA,IAAI,CAAC;cACd,MAAM,CAAC;cACP,MAAM,CAAC,eAAe;AAChB,sBAAA,EAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe;AACtD,qBAAA,EAAA,IAAI,CAAC,iBAAiB;;;uBAGtB,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,cAAc;;;;;;;AAOzB,mCAAA,EAAAC,CAAU,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;;;KAGnE;IACH;;AAzNO,eAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAEA,eAAA,CAAA,sBAAsB,GAAG,IAAH;AAG9C,UAAA,CAAA;IADCC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACA,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAGzC,UAAA,CAAA;AADC,IAAAA,CAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACxC,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAG7B,UAAA,CAAA;AADC,IAAAA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACP,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAGnB,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAClB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAGxB,UAAA,CAAA;AADC,IAAAA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACD,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAET,UAAA,CAAA;AAAhB,IAAAC,CAAK;AAA8C,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AAEnC,UAAA,CAAA;AAAhB,IAAAA,CAAK;AAA2B,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAtBtB,eAAe,GAAA,iBAAA,GAAA,UAAA,CAAA;IAD3B;AACY,CAAA,EAAA,eAAe,CA2N3B;;;;"}
1
+ {"version":3,"file":"code-highlighter.js","sources":["../../src/__internal/utils/copy-to-clipboard.ts","../../src/code-highlighter/code-highlighter.ts"],"sourcesContent":["function fallbackCopyTextToClipboard(text: string) {\n const temporaryInput = document.createElement('textarea');\n temporaryInput.value = text;\n\n // Make the element non-visible but still in the DOM so it can be selected\n temporaryInput.setAttribute('readonly', '');\n temporaryInput.style.position = 'absolute';\n temporaryInput.style.left = '-9999px';\n\n document.body.appendChild(temporaryInput);\n temporaryInput.select();\n\n try {\n document.execCommand('copy');\n } catch (err) {\n console.error('Fallback: Failed to copy text: ', err);\n } finally {\n document.body.removeChild(temporaryInput);\n }\n}\n\nexport async function copyToClipboard(text: string) {\n if (navigator.clipboard && navigator.clipboard.writeText) {\n // Use the modern Clipboard API\n try {\n await navigator.clipboard.writeText(text);\n } catch (err) {\n console.error('Failed to copy text using Clipboard API: ', err);\n // Fallback if API fails for some reason\n fallbackCopyTextToClipboard(text);\n }\n } else {\n // Use the fallback method for older browsers\n fallbackCopyTextToClipboard(text);\n }\n}\n","import { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport type { BundledLanguage, ShikiTransformer } from 'shiki';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport { copyToClipboard } from '@/__internal/utils/copy-to-clipboard.js';\nimport styles from './code-highlighter.scss';\n\n// Module-level promises – Rollup splits each import() specifier into a separate chunk.\n// Caching here prevents parallel loads when multiple instances initialise at the same time.\nlet _shiki: Promise<typeof import('shiki')> | null = null;\nlet _themes: Promise<\n [\n typeof import('@pierre/theme/pierre-dark'),\n typeof import('@pierre/theme/pierre-light'),\n ]\n> | null = null;\nlet _prettier: Promise<typeof import('prettier/standalone')> | null = null;\nlet _pluginBabel: Promise<typeof import('prettier/plugins/babel')> | null =\n null;\nlet _pluginHtml: Promise<typeof import('prettier/plugins/html')> | null = null;\nlet _pluginPostcss: Promise<typeof import('prettier/plugins/postcss')> | null =\n null;\nlet _pluginEstree: Promise<typeof import('prettier/plugins/estree')> | null =\n null;\n\nconst loadShiki = () => (_shiki ??= import('shiki'));\n\nconst loadThemes = () =>\n (_themes ??= Promise.all([\n import('@pierre/theme/pierre-dark'),\n import('@pierre/theme/pierre-light'),\n ]));\n\nconst loadPrettier = () => (_prettier ??= import('prettier/standalone'));\nconst loadPluginBabel = () =>\n (_pluginBabel ??= import('prettier/plugins/babel'));\nconst loadPluginHtml = () => (_pluginHtml ??= import('prettier/plugins/html'));\nconst loadPluginPostcss = () =>\n (_pluginPostcss ??= import('prettier/plugins/postcss'));\nconst loadPluginEstree = () =>\n (_pluginEstree ??= import('prettier/plugins/estree'));\n\nconst locale = {\n loading: 'Loading code...',\n copyToClipboard: 'Copy to clipboard',\n copied: 'Copied',\n copiedCode: 'Copied code',\n};\n\n/**\n * @label Code Highlighter\n * @tag wc-code-highlighter\n * @rawTag code-highlighter\n *\n * @summary A component that provides syntax highlighting for code snippets.\n *\n * @example\n * ```html\n * <wc-code-highlighter language=\"javascript\" style=\"height: 9rem\"><pre><code>\n * function helloWorld() {\n * console.log('Hello, world!');\n * }</code></pre>\n * </wc-code-highlighter>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class CodeHighlighter extends LitElement {\n static styles = [styles];\n\n private static readonly COPY_FEEDBACK_DURATION = 3000;\n\n @property({ type: String, reflect: true })\n language: BundledLanguage = 'javascript';\n\n @property({ attribute: 'line-numbers', type: Boolean, reflect: true })\n lineNumbers: boolean = false;\n\n @property({ type: String })\n value: string = '';\n\n @property({ type: Boolean, reflect: true })\n format?: boolean = true;\n\n @property({ type: Boolean })\n hideCopy: boolean = false;\n\n @state() private compiledCode: string | null = null;\n\n @state() private _copied = false;\n\n private parsedCode: string | null = null;\n\n private _copyFeedbackTimeout: number | null = null;\n\n async connectedCallback() {\n // eslint-disable-next-line wc/guard-super-call\n super.connectedCallback();\n }\n\n disconnectedCallback() {\n if (this._copyFeedbackTimeout !== null) {\n window.clearTimeout(this._copyFeedbackTimeout);\n this._copyFeedbackTimeout = null;\n }\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this.__highlightCode();\n }\n\n // eslint-disable-next-line class-methods-use-this\n private decode(str: string) {\n return str.replace(/&lt;/g, '<').replace(/&gt;/g, '>');\n }\n\n private async __highlightCode() {\n let codeString = '';\n if (this.value) {\n codeString = this.value;\n } else {\n // Accessing light DOM children\n const codeTag = this.querySelector('code');\n if (codeTag) {\n codeString = codeTag.innerHTML;\n } else if (this.childNodes.length > 0) {\n codeString = (this as HTMLElement).innerText;\n }\n }\n\n codeString = this.decode(codeString);\n\n if (this.format !== false) {\n // eslint-disable-next-line default-case\n switch (this.language) {\n case 'javascript': {\n const [prettier, pluginBabel, pluginEstree] = await Promise.all([\n loadPrettier(),\n loadPluginBabel(),\n loadPluginEstree(),\n ]);\n codeString = await prettier.format(codeString, {\n parser: 'babel',\n plugins: [pluginBabel, pluginEstree],\n bracketSameLine: true,\n htmlWhitespaceSensitivity: 'ignore',\n });\n break;\n }\n case 'html': {\n const [prettier, pluginHtml] = await Promise.all([\n loadPrettier(),\n loadPluginHtml(),\n ]);\n codeString = await prettier.format(codeString, {\n parser: 'html',\n plugins: [pluginHtml],\n bracketSameLine: true,\n htmlWhitespaceSensitivity: 'ignore',\n });\n break;\n }\n case 'css': {\n const [prettier, pluginPostcss] = await Promise.all([\n loadPrettier(),\n loadPluginPostcss(),\n ]);\n codeString = await prettier.format(codeString, {\n parser: 'css',\n plugins: [pluginPostcss],\n });\n break;\n }\n }\n }\n\n this.parsedCode = codeString;\n\n const transformers: ShikiTransformer[] = [];\n\n // If line numbers are enabled, we inject a transformer\n // that adds the 'line' class to every line node.\n if (this.lineNumbers) {\n transformers.push({\n name: 'add-line-class',\n line(node) {\n // Shiki v1 helper to add classes to the AST\n this.addClassToHast(node, 'line');\n },\n });\n }\n\n const [\n { codeToHtml },\n [{ default: pierreDark }, { default: pierreLight }],\n ] = await Promise.all([loadShiki(), loadThemes()]);\n\n this.compiledCode = await codeToHtml(codeString, {\n lang: this.language,\n themes: {\n // @ts-ignore\n light: pierreLight,\n // @ts-ignore\n dark: pierreDark,\n },\n transformers,\n });\n }\n\n protected updated(changed: Map<PropertyKey, unknown>) {\n // Only re-highlight when the source content or rendering options change,\n // not on unrelated state updates like the copy-button feedback toggle.\n if (\n changed.has('value') ||\n changed.has('language') ||\n changed.has('lineNumbers') ||\n changed.has('format')\n ) {\n this.__highlightCode();\n }\n }\n\n private async __handleCopyClick() {\n if (this.parsedCode == null) {\n return;\n }\n\n await copyToClipboard(this.parsedCode);\n this._copied = true;\n\n if (this._copyFeedbackTimeout !== null) {\n window.clearTimeout(this._copyFeedbackTimeout);\n }\n\n this._copyFeedbackTimeout = window.setTimeout(() => {\n this._copied = false;\n this._copyFeedbackTimeout = null;\n }, CodeHighlighter.COPY_FEEDBACK_DURATION);\n }\n\n render() {\n if (this.compiledCode === null) {\n return html`\n <div class=\"code-loader\">\n <wc-circular-progress indeterminate></wc-circular-progress>\n ${locale.loading}\n </div>\n `;\n }\n\n return html`\n <div\n class=${classMap({\n 'code-highlighter': true,\n 'line-numbers': this.lineNumbers,\n })}\n >\n <div class=\"header\">\n <div class=\"header-title\">\n <slot name=\"title\">${this.language?.toUpperCase()}</slot>\n </div>\n <div class=\"header-actions\">\n <wc-icon-button\n color=${this._copied ? 'success' : 'surface'}\n variant=\"text\"\n size=\"xs\"\n aria-label=${this._copied\n ? locale.copied\n : locale.copyToClipboard}\n tooltip=${this._copied ? locale.copied : locale.copyToClipboard}\n @click=${this.__handleCopyClick}\n >\n <wc-icon\n name=${this._copied ? 'check' : 'content_copy'}\n ></wc-icon>\n </wc-icon-button>\n </div>\n </div>\n\n <div class=\"scroll-wrapper\">\n <div class=\"highlighter\">${unsafeHTML(this.compiledCode || '')}</div>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","unsafeHTML","styles","property","state"],"mappings":"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"}
@@ -1151,87 +1151,6 @@
1151
1151
  }
1152
1152
  }
1153
1153
  },
1154
- {
1155
- "label": "Canvas",
1156
- "tag": "wc-canvas",
1157
- "rawTag": "canvas",
1158
- "summary": "A SVG canvas for drawing shapes, lines, and connectors on a dotted grid.",
1159
- "cssprop": "--canvas-arrow-color - Stroke color for arrow markers. Defaults to on-surface.",
1160
- "example": "```html\n<wc-canvas id=\"my-canvas\"></wc-canvas>\n<script>\n document.querySelector('#my-canvas').shapes = [\n { type: 'circle', x: 0, y: 0, radius: 0.25, color: 'red' },\n ];\n</script>\n```",
1161
- "customElement": {
1162
- "kind": "class",
1163
- "description": "",
1164
- "cssProperties": [
1165
- {
1166
- "description": "Background color for the canvas wrapper. Defaults to surface-container-low.",
1167
- "name": "--canvas-background"
1168
- },
1169
- {
1170
- "description": "Color of the background grid dots. Defaults to outline-variant.",
1171
- "name": "--canvas-dot-color"
1172
- },
1173
- {
1174
- "description": "Default stroke color for lines and connectors. Defaults to on-surface.",
1175
- "name": "--canvas-line-color"
1176
- },
1177
- {
1178
- "description": "Stroke color on hover for clickable shapes. Defaults to primary.",
1179
- "name": "--canvas-hover-color"
1180
- },
1181
- {
1182
- "description": "Stroke color for arrow markers. Defaults to on-surface.",
1183
- "name": "--canvas-arrow-color"
1184
- }
1185
- ],
1186
- "attributes": [
1187
- {
1188
- "name": "shapes",
1189
- "type": {
1190
- "text": "CanvasShape[]"
1191
- },
1192
- "default": "[]",
1193
- "description": "Array of shape objects to render on the canvas.",
1194
- "fieldName": "shapes"
1195
- },
1196
- {
1197
- "name": "padding",
1198
- "type": {
1199
- "text": "number"
1200
- },
1201
- "default": "1",
1202
- "description": "Padding around the computed viewbox (in grid units).",
1203
- "fieldName": "padding"
1204
- },
1205
- {
1206
- "name": "zoom",
1207
- "type": {
1208
- "text": "number"
1209
- },
1210
- "default": "1",
1211
- "description": "Zoom multiplier for the canvas dimensions.",
1212
- "fieldName": "zoom"
1213
- },
1214
- {
1215
- "name": "viewbox",
1216
- "type": {
1217
- "text": "string | undefined"
1218
- },
1219
- "description": "Optional viewbox override string (e.g. \"0 0 100 100\").",
1220
- "fieldName": "viewbox"
1221
- }
1222
- ],
1223
- "superclass": {
1224
- "name": "LitElement",
1225
- "package": "lit"
1226
- },
1227
- "tagName": "wc-canvas",
1228
- "customElement": true,
1229
- "rawTag": {
1230
- "name": "canvas",
1231
- "description": ""
1232
- }
1233
- }
1234
- },
1235
1154
  {
1236
1155
  "label": "Card",
1237
1156
  "tag": "wc-card",
@@ -3554,163 +3473,79 @@
3554
3473
  }
3555
3474
  },
3556
3475
  {
3557
- "label": "Flow Designer",
3558
- "tag": "wc-flow-designer",
3559
- "rawTag": "flow-designer",
3560
- "summary": "Low-code business process flow designer with swimlane layout, undo/redo, and interactive editing.",
3561
- "cssprop": "--flow-designer-action-bar-bg - Background color of the action bar. Defaults to surface-container.",
3562
- "example": "```html\n<wc-flow-designer id=\"editor\"></wc-flow-designer>\n<script>\n const workflow = {\n workflow_id: \"demo\",\n nodes: {\n id: \"node_1\",\n type: \"trigger\",\n label: \"Start\"\n }\n };\n document.querySelector('#editor').workflow = workflow;\n</script>\n```",
3476
+ "label": "Flow",
3477
+ "tag": "wc-flow",
3478
+ "rawTag": "flow",
3479
+ "summary": "An interactive node editor canvas with draggable nodes, custom HTML element rendering, and mouse-based edge connection creation on a dotted grid.",
3480
+ "example": "```html\n<wc-flow id=\"my-flow\"></wc-flow>\n<script>\n const flow = document.getElementById('my-flow');\n flow.nodes = [\n { id: '1', position: { x: 50, y: 50 }, data: { label: 'Node 1' } },\n { id: '2', position: { x: 250, y: 50 }, data: { label: 'Node 2' } }\n ];\n flow.edges = [\n { id: 'e1-2', source: '1', target: '2' }\n ];\n</script>\n```",
3481
+ "cssprop": "--flow-arrow-color - Stroke color for arrow markers. Defaults to on-surface.",
3563
3482
  "customElement": {
3564
3483
  "kind": "class",
3565
3484
  "description": "",
3566
3485
  "cssProperties": [
3567
3486
  {
3568
- "description": "Height of the flow designer container. Defaults to 400px.",
3569
- "name": "--flow-designer-height"
3570
- },
3571
- {
3572
- "description": "Border color of the flow designer. Defaults to outline-variant.",
3573
- "name": "--flow-designer-border-color"
3574
- },
3575
- {
3576
- "description": "Background color of the designer. Defaults to surface.",
3577
- "name": "--flow-designer-background"
3578
- },
3579
- {
3580
- "description": "Corner radius. Defaults to medium shape.",
3581
- "name": "--flow-designer-border-radius"
3582
- },
3583
- {
3584
- "description": "Background color of the action bar. Defaults to surface-container.",
3585
- "name": "--flow-designer-action-bar-bg"
3586
- }
3587
- ],
3588
- "events": [
3589
- {
3590
- "name": "validation-result",
3591
- "type": {
3592
- "text": "CustomEvent"
3593
- }
3487
+ "description": "Background color for the canvas wrapper. Defaults to surface-container-low.",
3488
+ "name": "--flow-background"
3594
3489
  },
3595
3490
  {
3596
- "name": "workflow-changed",
3597
- "type": {
3598
- "text": "CustomEvent"
3599
- }
3600
- }
3601
- ],
3602
- "attributes": [
3603
- {
3604
- "name": "workflow",
3605
- "type": {
3606
- "text": "Workflow"
3607
- },
3608
- "default": "{ workflow_id: '', nodes: { id: 'root', type: 'trigger', label: 'Start' } }",
3609
- "description": "The workflow definition to display and edit",
3610
- "fieldName": "workflow"
3491
+ "description": "Color of the background grid dots. Defaults to outline-variant.",
3492
+ "name": "--flow-dot-color"
3611
3493
  },
3612
3494
  {
3613
- "name": "readonly",
3614
- "type": {
3615
- "text": "boolean"
3616
- },
3617
- "default": "false",
3618
- "description": "Whether the flow designer is in read-only mode",
3619
- "fieldName": "readonly"
3495
+ "description": "Default stroke color for lines and connectors. Defaults to on-surface.",
3496
+ "name": "--flow-line-color"
3620
3497
  },
3621
3498
  {
3622
- "name": "disabled",
3623
- "type": {
3624
- "text": "boolean"
3625
- },
3626
- "default": "false",
3627
- "description": "Whether the flow designer is disabled",
3628
- "fieldName": "disabled"
3499
+ "description": "Stroke color on hover for clickable shapes. Defaults to primary.",
3500
+ "name": "--flow-hover-color"
3629
3501
  },
3630
3502
  {
3631
- "name": "show-validation",
3632
- "type": {
3633
- "text": "boolean"
3634
- },
3635
- "default": "false",
3636
- "description": "Show validation errors/warnings",
3637
- "fieldName": "showValidation"
3503
+ "description": "Stroke color for arrow markers. Defaults to on-surface.",
3504
+ "name": "--flow-arrow-color"
3638
3505
  }
3639
3506
  ],
3640
- "superclass": {
3641
- "name": "LitElement",
3642
- "package": "lit"
3643
- },
3644
- "tagName": "wc-flow-designer",
3645
- "customElement": true,
3646
- "rawTag": {
3647
- "name": "flow-designer",
3648
- "description": ""
3649
- }
3650
- }
3651
- },
3652
- {
3653
- "tag": "wc-flow-designer-node",
3654
- "rawTag": "flow-designer-node",
3655
- "wip": "true",
3656
- "customElement": {
3657
- "kind": "class",
3658
- "description": "Individual node component for flow designer\nRenders a single workflow node with customizable slot templates",
3659
3507
  "attributes": [
3660
3508
  {
3661
- "name": "node",
3509
+ "name": "nodes",
3662
3510
  "type": {
3663
- "text": "WorkflowNode"
3511
+ "text": "FlowNode[]"
3664
3512
  },
3665
- "default": "{ id: '', type: 'action', label: '' }",
3666
- "description": "The workflow node to render",
3667
- "fieldName": "node"
3668
- },
3669
- {
3670
- "name": "selected",
3671
- "type": {
3672
- "text": "boolean"
3673
- },
3674
- "default": "false",
3675
- "description": "Whether this node is currently selected",
3676
- "fieldName": "isSelected"
3513
+ "default": "[]",
3514
+ "fieldName": "nodes"
3677
3515
  },
3678
3516
  {
3679
- "name": "editing",
3517
+ "name": "edges",
3680
3518
  "type": {
3681
- "text": "boolean"
3519
+ "text": "FlowEdge[]"
3682
3520
  },
3683
- "default": "false",
3684
- "description": "Whether this node is in edit mode",
3685
- "fieldName": "isEditing"
3521
+ "default": "[]",
3522
+ "fieldName": "edges"
3686
3523
  },
3687
3524
  {
3688
- "name": "disabled",
3525
+ "name": "zoom",
3689
3526
  "type": {
3690
- "text": "boolean"
3527
+ "text": "number"
3691
3528
  },
3692
- "default": "false",
3693
- "description": "Whether this node is disabled",
3694
- "fieldName": "disabled"
3529
+ "default": "1",
3530
+ "fieldName": "zoom"
3695
3531
  },
3696
3532
  {
3697
- "name": "show-delete",
3533
+ "name": "padding",
3698
3534
  "type": {
3699
- "text": "boolean"
3535
+ "text": "number"
3700
3536
  },
3701
- "default": "true",
3702
- "description": "Whether to show the delete button",
3703
- "fieldName": "showDelete"
3537
+ "default": "50",
3538
+ "fieldName": "padding"
3704
3539
  }
3705
3540
  ],
3706
3541
  "superclass": {
3707
3542
  "name": "LitElement",
3708
3543
  "package": "lit"
3709
3544
  },
3710
- "tagName": "wc-flow-designer-node",
3545
+ "tagName": "wc-flow",
3711
3546
  "customElement": true,
3712
3547
  "rawTag": {
3713
- "name": "flow-designer-node",
3548
+ "name": "flow",
3714
3549
  "description": ""
3715
3550
  }
3716
3551
  }
@@ -5324,9 +5159,9 @@
5324
5159
  {
5325
5160
  "name": "variant",
5326
5161
  "type": {
5327
- "text": "'standard' | 'vibrant'"
5162
+ "text": "\"standard\" | \"vibrant\""
5328
5163
  },
5329
- "default": "'standard'",
5164
+ "default": "\"standard\"",
5330
5165
  "description": "Visual variant of the menu. `\"vibrant\"` applies stronger color emphasis.",
5331
5166
  "fieldName": "variant"
5332
5167
  },
@@ -5335,7 +5170,7 @@
5335
5170
  "type": {
5336
5171
  "text": "string"
5337
5172
  },
5338
- "default": "''",
5173
+ "default": "\"\"",
5339
5174
  "description": "ID of the anchor element the menu is positioned relative to.",
5340
5175
  "fieldName": "anchor"
5341
5176
  },
@@ -5380,7 +5215,7 @@
5380
5215
  "type": {
5381
5216
  "text": "Placement"
5382
5217
  },
5383
- "default": "'bottom-start'",
5218
+ "default": "\"bottom-start\"",
5384
5219
  "description": "Floating UI placement of the menu relative to its anchor.",
5385
5220
  "fieldName": "placement"
5386
5221
  },
@@ -5422,7 +5257,7 @@
5422
5257
  "type": {
5423
5258
  "text": "string"
5424
5259
  },
5425
- "default": "''",
5260
+ "default": "\"\"",
5426
5261
  "description": "The value associated with this menu item, used to identify it on selection.",
5427
5262
  "fieldName": "value",
5428
5263
  "inheritedFrom": {
@@ -5466,15 +5301,6 @@
5466
5301
  "description": "Whether the associated submenu is currently open.",
5467
5302
  "fieldName": "submenuOpen"
5468
5303
  },
5469
- {
5470
- "name": "variant",
5471
- "type": {
5472
- "text": "'standard' | 'vibrant'"
5473
- },
5474
- "default": "'standard'",
5475
- "description": "Visual variant of the menu item.",
5476
- "fieldName": "variant"
5477
- },
5478
5304
  {
5479
5305
  "name": "htmlType",
5480
5306
  "type": {
@@ -8815,6 +8641,60 @@
8815
8641
  }
8816
8642
  }
8817
8643
  },
8644
+ {
8645
+ "label": "Timeline",
8646
+ "tag": "wc-timeline",
8647
+ "rawTag": "timeline",
8648
+ "summary": "A vertical timeline layout for a series of timeline items.",
8649
+ "example": "```html\n<wc-timeline>\n <wc-timeline-item description=\"Task completed\">\n <span>Task title</span>\n <wc-icon slot=\"dot\" name=\"check\"></wc-icon>\n </wc-timeline-item>\n</wc-timeline>\n```",
8650
+ "tags": "display",
8651
+ "customElement": {
8652
+ "kind": "class",
8653
+ "description": "",
8654
+ "superclass": {
8655
+ "name": "LitElement",
8656
+ "package": "lit"
8657
+ },
8658
+ "tagName": "wc-timeline",
8659
+ "customElement": true,
8660
+ "rawTag": {
8661
+ "name": "timeline",
8662
+ "description": ""
8663
+ }
8664
+ }
8665
+ },
8666
+ {
8667
+ "label": "Timeline Item",
8668
+ "tag": "wc-timeline-item",
8669
+ "rawTag": "timeline-item",
8670
+ "summary": "An item for use inside a timeline, with a dot/marker and description.",
8671
+ "example": "```html\n<wc-timeline-item description=\"Step completed\">\n <span>Step title</span>\n <wc-icon slot=\"dot\" name=\"check\"></wc-icon>\n</wc-timeline-item>\n```",
8672
+ "tags": "display",
8673
+ "customElement": {
8674
+ "kind": "class",
8675
+ "description": "",
8676
+ "attributes": [
8677
+ {
8678
+ "name": "loading",
8679
+ "type": {
8680
+ "text": "boolean"
8681
+ },
8682
+ "default": "false",
8683
+ "fieldName": "loading"
8684
+ }
8685
+ ],
8686
+ "superclass": {
8687
+ "name": "LitElement",
8688
+ "package": "lit"
8689
+ },
8690
+ "tagName": "wc-timeline-item",
8691
+ "customElement": true,
8692
+ "rawTag": {
8693
+ "name": "timeline-item",
8694
+ "description": ""
8695
+ }
8696
+ }
8697
+ },
8818
8698
  {
8819
8699
  "label": "Time Picker",
8820
8700
  "tag": "wc-time-picker",