Skip to content

Change Log ​

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

4.1.1 (2026-05-27) ​

Note: Version bump only for package @matterway/sdk

4.1.1-alpha.0 (2026-05-27) ​

Bug Fixes ​

  • ci: no-references fix release (#2499) PROD_RELEASE

4.1.0-alpha.0 (2026-05-27) ​

Features ​

  • release: no-references migrate SDK to shared release workflow (#2487)

Bug Fixes ​

  • progressList: no-references ensure ui cleanup (#2498) PROD_RELEASE

Unreleased ​

Refactors ​

  • ui: unify Confirmation enums and flip resolve default to false. Breaking (against the @experimental 4.0.0 surface):
    • CONFIRMATION_BUTTON removed; the single CONFIRMATION family β€” 'requested' | 'approved' | 'rejected' β€” is now used for the block's status, the status prop, and the resolve payload.
    • CONFIRMATION.ACCEPTED β†’ CONFIRMATION.APPROVED.
    • acceptedMessage prop β†’ approvedMessage; CSS class mw-confirmation-accepted β†’ mw-confirmation-approved.
    • resolveValue shape: {button, data} β†’ {status, data}.
    • UiConfirmation default flips from resolve: true to resolve: false β€” the click now flips the block face in place and fires onApprove / onReject without ending the surrounding render(...). Pass resolve: true to opt back into the old one-shot prompt behavior. Closes #2450.

4.0.0 (2026-05-26) ​

Features ​

  • ui: add Confirmation (experimental) β€” an inline tri-state approval prompt for gating destructive or non-reversible actions. Shows a short message with Approve / Reject buttons, then re-renders as an "approved" or "rejected" status row once the user picks. Container-free β€” drop it inside Bubble, Modal, Group, or anywhere else without lock-in:

    ts
    import {Confirmation} from '@matterway/sdk/UI';
    
    Confirmation({
      name: 'deleteFile',
      message: 'Delete /tmp/example.txt?',
      onApprove: () => console.log('approved'),
      onReject: () => console.log('rejected'),
    });

    Persists the final status in internalState[name] ('accepted' / 'rejected') and resolves the UI with {button: 'approve' | 'reject', data}, so the block reflects the decision after navigation. Closes #2450.

  • ui: align KeyValue with Figma (size-12 muted label, size-14 foreground value, 12px row gap, 16px icon with 2px vertical pad). Vertical stacks label above value; horizontal puts the value on the right, with extra rendering as a right-side value (vertical) or a subtitle under the label (horizontal). TSDoc rewritten from the Figma usage rules. Issue #2107.

    ts
    import {KeyValue} from '@matterway/sdk/UI';
    
    // Stacked (default)
    KeyValue({icon: 'document', label: 'Order ID', value: 'BB-GE 350'});
    
    // Inline + right-side extra
    KeyValue({
      icon: 'document',
      label: 'Missing Order',
      value: 'BB-GE 350',
      extra: '+$39.00',
      layout: 'horizontal',
    });
  • ui: Layout/Vertical now gets first:mt-0 mt-4 so stacked Vertical() siblings pick up the same 16px rhythm as Text β€” first sibling has no top margin, every later one gets mt-4. Inner children are reset ([&>*]:!mt-0) so the layout's own gap stays in control.

  • ui: add LocalChat (experimental) β€” a working chat surface backed by Chrome's built-in LanguageModel (Gemini Nano via the Prompt API). Runs entirely locally in the browser, no external model needed. Pair with a PromptInput bound to the same state key to drive a real conversation:

    ts
    import {LocalChat, PromptInput} from '@matterway/sdk/UI';
    
    LocalChat({
      name: 'messages',
      systemPrompt: 'You are a concise, friendly assistant.',
    });
    PromptInput({name: 'message', pushTo: 'messages'});

    Requires Chrome 138+ with the Prompt API enabled (chrome://flags#prompt-api-for-gemini-nano). When unavailable, the first assistant turn renders a friendly notice telling the user how to enable it.

  • ui: add AI-elements voice tier (experimental) β€” five blocks for voice-driven assistant surfaces, using only commercial-safe deps:

    ts
    import {
      AudioPlayer,
      Transcription,
      MicSelector,
      VoiceSelector,
      SpeechInput,
    } from '@matterway/sdk/UI';
    
    AudioPlayer({src: 'https://example.com/clip.mp3'});
    Transcription({
      segments: [
        {speaker: 'Alice', words: [{text: 'hello', start: 0, end: 0.5}]},
      ],
      currentTime: 0.2,
    });
    MicSelector({name: 'micDeviceId'});
    VoiceSelector({name: 'voiceURI'});
    SpeechInput({name: 'message', language: 'en-US'});

    Deps:

    • AudioPlayer uses media-chrome β€” MIT-licensed web components.
    • MicSelector uses navigator.mediaDevices.enumerateDevices().
    • VoiceSelector uses speechSynthesis.getVoices() + SpeechSynthesisUtterance for previews.
    • SpeechInput uses the browser's SpeechRecognition API. Privacy note: Chrome's implementation streams audio to Google's servers for recognition β€” the API itself is royalty-free, but it is not a local model. Document this when surfacing the block in a skill.
    • Transcription is presentational and ships no runtime dep beyond React.
  • ui: add AI-elements dev tier (experimental) β€” fifteen more blocks targeted at developer-assistant surfaces (terminals, tests, file trees, sandboxes, commits).

    ts
    import {
      Shimmer,
      Checkpoint,
      Terminal,
      StackTrace,
      FileTree,
      EnvVarList,
      Commit,
      TestResults,
      ApiSchema,
      PackageInfo,
      PlanList,
      PlanItem,
      Queue,
      WebPreview,
      Sandbox,
      AgentCard,
    } from '@matterway/sdk/UI';
    
    Terminal({output: '$ npm test\nAll tests passed.', isStreaming: false});
    TestResults({
      results: [
        {name: 'index β€Ί Bubble', status: 'passed', duration: 4},
        {name: 'index β€Ί Modal', status: 'failed', message: 'expected 1 got 2'},
      ],
    });
    FileTree({
      name: 'selectedPath',
      nodes: [
        {
          id: '/src',
          name: 'src',
          children: [{id: '/src/index.ts', name: 'index.ts'}],
        },
      ],
    });
    PlanList({title: 'Steps'}, [
      PlanItem({status: 'done'}, [Text({content: 'Read docs'})]),
      PlanItem({status: 'in-progress'}, [Text({content: 'Wire components'})]),
      PlanItem([Text({content: 'Open PR'})]),
    ]);
    AgentCard({
      name: 'Helper',
      model: 'claude-opus-4-7',
      tools: [{name: 'search_web'}, {name: 'read_file'}],
    });

    Naming diverges from upstream SchemaDisplay β†’ ApiSchema, EnvironmentVariables β†’ EnvVarList, Agent β†’ AgentCard, Plan β†’ PlanList/PlanItem (bare Plan is too generic in our domain).

  • ui: add AI-elements chat tier (experimental) β€” twenty new blocks for building chat-shaped UIs, ported from vercel/ai-elements and reworked to fit the Matterway 3-layer pattern (mw-* design tokens, session-scoped Zustand state, mw-<name> class names).

    Container / transcript:

    ts
    import {
      Conversation,
      Message,
      MessageBody,
      Response,
      Suggestion,
      SuggestionList,
      MessageAction,
      MessageActions,
      PromptInput,
    } from '@matterway/sdk/UI';
    
    Conversation([
      Message({from: 'assistant'}, [
        MessageBody({content: 'Hi! How can I help?'}),
      ]),
      Message({from: 'user'}, [
        MessageBody({content: 'Summarise this article.'}),
      ]),
      Message({from: 'assistant'}, [
        Response({content: 'Streaming…', isStreaming: true}),
      ]),
    ]);
    
    SuggestionList([
      Suggestion({value: 'Tell me a joke', resolve: true}),
      Suggestion({value: 'Summarize this', name: 'prompt'}),
    ]);
    
    MessageActions([
      MessageAction({value: 'copy', label: 'Copy'}),
      MessageAction({value: 'regenerate', label: 'Regenerate'}),
    ]);
    
    PromptInput({name: 'message', placeholder: 'Ask anything…'});

    Code & citations:

    ts
    import {
      CodeBlock,
      Snippet,
      Sources,
      Source,
      InlineCitation,
    } from '@matterway/sdk/UI';
    
    CodeBlock({code: 'console.log("hi")', language: 'javascript'});
    Snippet({code: 'npm install @matterway/sdk'});
    Sources([Source({href: 'https://example.com', title: 'Example article'})]);
    InlineCitation({sources: ['https://a.com', 'https://b.com']});

    Reasoning, tool calls, tasks:

    ts
    import {
      Reasoning,
      ChainOfThought,
      ChainOfThoughtStep,
      ToolInvocation,
      Task,
      TaskItem,
      TaskItemFile,
    } from '@matterway/sdk/UI';
    
    Reasoning({content: 'First, I checked…', isStreaming: false, duration: 8});
    ChainOfThought([
      ChainOfThoughtStep([Text({content: 'Identify request'})]),
      ChainOfThoughtStep([Text({content: 'Fetch docs'})]),
    ]);
    ToolInvocation({
      toolName: 'search_web',
      state: 'completed',
      input: {query: 'matterway'},
      output: '5 results',
    });
    Task({title: 'Updated files'}, [
      TaskItem([TaskItemFile({name: 'index.ts'})]),
    ]);

    Attachments, model context, artifacts:

    ts
    import {
      Attachments,
      Attachment,
      TokenContext,
      Artifact,
      GeneratedImage,
      OpenInChat,
      ModelSelector,
    } from '@matterway/sdk/UI';
    
    Attachments([
      Attachment({name: 'doc.pdf', kind: 'document', size: 12_400}),
      Attachment({name: 'photo.png', kind: 'image', thumbnail: 'data:…'}),
    ]);
    TokenContext({usedTokens: 1234, maxTokens: 8000, modelId: 'claude-opus-4-7'});
    Artifact({title: 'Generated image', closable: true}, [
      GeneratedImage({base64: 'iVBOR…', mediaType: 'image/png', alt: 'logo'}),
    ]);
    OpenInChat({prompt: 'Summarize this article'});
    ModelSelector({
      name: 'model',
      defaultValue: 'claude-opus-4-7',
      models: [
        {id: 'claude-opus-4-7', label: 'Opus 4.7', provider: 'Anthropic'},
        {id: 'claude-sonnet-4-6', label: 'Sonnet 4.6', provider: 'Anthropic'},
      ],
    });

    Naming differs from upstream where the bare name collided with the Matterway vocabulary or domain: upstream Tool β†’ ToolInvocation, Context β†’ TokenContext, Image (AI-generated) β†’ GeneratedImage, Loader β†’ reuse existing Spinner. Streaming-aware components (Response, Reasoning) accept isStreaming: true to render a CSS shimmer / blinking cursor; the streaming transport itself remains skill-driven for now.

  • deps: migrate to React 19 β€” bump react, react-dom, and @types/react to ^19.2.0, add @types/react-dom ^19.2.0, and pin them via pnpm overrides so the whole transitive tree resolves to a single React 19; update react-day-picker to v10 (caption β†’ month_caption, IconLeft/IconRight β†’ Chevron, initialFocus β†’ autoFocus, DayPicker*Props β†’ DayPickerProps); replace global JSX.Element / JSX.IntrinsicElements with React.JSX.* (JSX is no longer global in React 19); widen useDraggable's RefObject<HTMLDivElement> to allow null; pass an explicit initial value to useRef<string>(undefined); drop the now-unused @ts-expect-error on react-dom/client

  • ui: add camelCase block aliases for the renderer (src/renderer/blocks/aliases.ts) so skill authors can reference blocks by their canonical camelCase names

  • ui: consolidate the public UI surface into a single barrel at src/UI/index.ts (replaces the previous src/UI/index.tsx)

  • ui: promote five previously-internal mw components to first-class renderer blocks β€” Highlight, ImageViewer, SheetViewer, DocViewerList, and ToastNotification β€” each with a Ui<Name> shell in src/UI/components/ and a block factory in src/renderer/blocks/index.ts. Stacked Highlight blocks now space themselves with a top margin (first one flush) so consecutive callouts don't visually merge.

    ts
    import {
      Highlight,
      ImageViewer,
      SheetViewer,
      DocViewerList,
      ToastNotification,
    } from '@matterway/sdk/UI';
    
    Highlight({text: 'Verify the extracted invoice number'});
    ImageViewer({src: 'data:image/png;base64,...', filename: 'invoice.png'});
    SheetViewer({base64: '...xlsx-base64...'});
    DocViewerList({
      items: [
        {filetype: FileType.IMAGE, src: '...', filename: 'a.png'},
        {filetype: FileType.PDF, src: '...'},
      ],
    });
    ToastNotification({
      title: 'Saved',
      text: 'Your changes are live.',
      duration: 4000,
    });

    The renderer-side Highlight block is distinct from the puppeteer Highlight class exported from the top-level @matterway/sdk entry, which paints a DOM-level overlay around a live page element β€” same name, different module (@matterway/sdk/UI vs @matterway/sdk).

  • highlight: new functional Highlight block exported from src/highlight (replaces the legacy showHighlight imperative API)

  • context: ctx.render is now generic in its resolved value β€” ctx.render<T>((resolve) => …) returns Promise<T> and types resolve accordingly. Defaults to unknown when the type argument is omitted, preserving existing call sites.

    ts
    const choice = await ctx.render<'yes' | 'no'>((resolve) => {
      // render UI that eventually calls resolve('yes') or resolve('no')
    });

Bug Fixes ​

  • calendar: restore nav button positioning under react-day-picker v10 β€” anchor the prev/next buttons to an absolute-positioned nav row above the month caption so they no longer overlap the label after the v10 DOM/classname changes
  • ui: correct field callback prop return types (hidden/disabled/required) on BadgeField, ButtonToggleField, CheckboxListField, CurrencyField, EmailField, PercentField, PhoneField, RadioListField, and SegmentedField β€” callbacks now type as Promise<boolean> instead of the unusable Promise<false>
  • ui: widen BadgeField's static wrap prop to boolean β€” was previously typed as false | callback, making wrap: true a type error
  • renderer: rebuild FileUpload validFiles ArrayBuffers from page-side chunks on render() resolution, not just inside the fileUpload() template helper β€” callers using render() directly with a FileUpload block now receive real ArrayBuffers on MwFile, so downstream consumers like exceljs no longer fail with Can't read the data of 'the loaded zip file'. render() now awaits the chunk rebuild before resolving, closing a race where the resolved payload could be consumed before validFiles was rewritten.

Chores ​

  • lint: narrow the src/assistant-ui/components ESLint ignore to base/** only so the rest of the tree (bubbles, doc, icons, mw, top-level barrel) is linted again β€” prefer-read-only-props and no-restricted-globals now catch issues SonarCloud was flagging. Add a project-wide no-restricted-globals rule (error) preferring globalThis over window for cross-environment compatibility, plus Number.parseInt / Number.parseFloat / Number.isNaN over their loose global counterparts (the Number.* forms don't coerce β€” Number.isNaN("foo") is false, whereas isNaN("foo") is true). Add a project-wide complexity rule (warn, max 20) to mirror SonarCloud's cyclomatic-complexity threshold so over-complex functions surface locally without blocking the rule rollout.
  • lint: replace global parseInt / parseFloat / isNaN calls with their Number.* counterparts across scripts/build-tokens.js, scripts/generate-css.js, src/assistant-ui/components/mw/ImageViewer, src/assistant-ui/components/mw/PDFviewer, src/assistant-ui/library/legacyThemes/utils.ts, src/highlight/Highlight.tsx, and src/highlight/highlightElement.tsx to satisfy the new no-restricted-globals rule β€” no behaviour change (the Number.* forms don't coerce, but every call site already passes a string).
  • lint: finish the globalThis-over-window migration. Convert SDK-internal global augmentations from interface Window {...} to declare global { var X: T } so the same globals (__MW, __mw_session_stores, __mw_events, __mw_pending_origin, __mw_outbox, __mw_inbox, __mw_events_refs, __MW_Vendors, MW_SKILL_STOP, mw_matcherObserver, mw_matcherBackup, _mw_matchers, mwFilesChunks) type-check via both globalThis.X and window.X. Then replace every window.X reference in the renderer (browser entry, bridge, RPC proxy, state persistence, core, render, events, groups, page-port, chunking, useBridge), hot-reload, highlight, mouse, file, themes, wait, utils, UI components (CodeBlock, Confetti, EnvVarList, LocalChat, OpenInChat, PDFviewer, Reasoning, Snippet, SpeechInput, Terminal, VoiceSelector), and createSkillMountRoot with globalThis.X. With the migration done, the no-restricted-globals rule for window flips from warn to error so future window usages fail CI.
  • lint: add a capitalized-comments rule (error) that ignores nosemgrep, eslint-*, ts-*, prettier-*, and @ts-* pragma prefixes (these tooling directives are conventionally lowercase) β€” and rewrite the existing // nosemgrep: directives in scripts/generate-index.js, src/skill-scripts/paths.ts, src/skill-scripts/utils.ts, and src/skill-scripts/vite-paths.ts as block comments so the inline eslint-disable-next-line capitalized-comments workarounds can be dropped.
  • lint: sort Readonly prop members in Failure, ButtonList, CheckboxField, Confetti, DownloadLink, FileBox, FileItem, GeneratedImage, Group, HighLight, ImageViewer, InlineCitation, Layout, OpenInChat, PackageInfo, Queue, Shimmer, SplitView, Terminal, useDropzoneWithLimit, getDataStoreFile, highlightSelector, Progressible, error-boundary, ChunkManifest, usePdfDocument, computeLockedHeight, and OcrOptions types β€” required props first, then optional props alphabetized β€” to satisfy the project's prop-ordering lint rule. No behaviour change.
  • ui: clean up bubble/mw component code style so the previously-warned rules (no-inline-comments, @typescript-eslint/no-floating-promises, default-case, @matterway/stylistic/sort-imports) can stay at their default error level β€” converted inline // … to block comments where the explanation needed to stay, marked intentional fire-and-forget promises with void, and resorted imports β€” no behaviour change.
  • ui: refactor UiDateField's effective-value resolution into a shared resolveEffectiveValue<T> helper used by the multiple / range / single branches β€” replaces three near-identical ternary chains with one typed helper that takes a shape predicate and falls back to defaultValue only when it matches the expected shape for the field's type. No behaviour change.
  • ui: refactor CodeBlock tokenizer into per-token-kind scanner helpers (scanLineComment, scanBlockComment, scanString, scanNumber, scanIdentifier) so the main loop stays under the project's cyclomatic-complexity ceiling β€” no behaviour change.
  • ui: rename the HighLight mw folder to Highlight (src/assistant-ui/components/mw/HighLight/ β†’ src/assistant-ui/components/mw/Highlight/) and re-export via the matching ./mw/Highlight barrel β€” file casing now matches the component name and the public renderer block.
  • templates: extract success template's i18n defaults into a resolveSuccessCopy helper so the main function stays under the project's cyclomatic-complexity ceiling β€” no behaviour change.
  • templates: extract feedback template's i18n defaults into a resolveFeedbackCopy helper so the main function stays under the project's cyclomatic-complexity ceiling β€” no behaviour change.
  • templates: collapse fileUpload() template into a thin wrapper over render() β€” the validFiles rebuild now happens in render() itself, so the template stops calling updateFileUploadState directly.
  • chunking: split buildChunks into extractChunksFromRollup + buildDepsMap and break the singleton-invariants assertion into indexModulesByChunk / assertNoDuplicateModules / logMissingCanaries helpers to stay under the project's cognitive-complexity ceiling β€” no behaviour change.
  • chunking: refactor collectPatternNames in iife-wrap into per-pattern helpers (collectObjectPatternNames, collectArrayPatternNames) driven by a switch so the main dispatch stays under the project's cognitive-complexity ceiling β€” no behaviour change.
  • chunking: split sdkRuntimeImports and scanSdkComponents in the SDK scanner into focused helpers (parseSdkImportTarget, yieldNamedImports, recordRendererImport, recordComponentImport, parseSourceFile) so each function stays under the project's cognitive-complexity ceiling β€” no behaviour change.
  • skill-scripts: extract start script's background/content/workflow watchers into focused helpers (startWorkflowBackgroundWatcher, startViteBackgroundWatcher, startContentWatcher, applyNewRendererBackgroundConfig, buildContentOverride) so the main start() function stays under the project's cognitive-complexity ceiling β€” no behaviour change.
  • skill-scripts: extract workflow-prebuild's step-call discovery and useStepCtx injection into focused helpers (findWorkflowFile, collectRuntimeImports, extractWorkflowBody, resolveStepFile for discovery; findEntryFunction, hasCtxFirstParam, isStepDirective, findInjectAfter, isAlreadyInjected for injection) so each function stays under the project's cognitive-complexity ceiling β€” no behaviour change.
  • scripts: refactor generate-index.js's resolveStarExportChain into focused helpers (resolveStarSpecifier for ./other β†’ concrete path resolution, isExported / collectLocalExportNames for local export-name extraction) so the main walker stays under the project's cognitive-complexity ceiling β€” no behaviour change.
  • scripts: add audit:blocks script (scripts/audit-block-coverage.mjs) that enforces every src/assistant-ui/components/mw/<Name>/ component has a Ui<Name> shell in src/UI/components/ and a createBlock('Ui<Name>', …) factory in src/renderer/blocks/index.ts β€” internal-only primitives (layout, list, overlay, spinner, table, upload, file-box, file-item, single-checkbox) are tracked in scripts/block-audit-allowlist.json with a documented reason. Chained into pnpm lint:all so new mw components can't land without going through the shell + factory pipeline.
  • utils: refactor mergeDeep into small helpers (shouldSkipKey, mergeEntry, mergeOneSource) to stay under the project's cyclomatic-complexity ceiling β€” no behaviour change.
  • renderer: refactor ensureChunks into small helpers (clearInjectedIfPageReset, computePendingChunks, injectChunk) to stay under the project's cyclomatic-complexity ceiling β€” no behaviour change.
  • renderer: add regression coverage for the FileUpload validFiles ArrayBuffer rebuild β€” tests pin that render() awaits updateFileUploadState before resolving, that callers observe the rewritten ArrayBuffers on the result, and that the helper runs even when the payload carries no FileUpload data.
  • package: register subpath exports for the new AI-elements mw components (AgentCard, ApiSchema, Artifact, Attachments, AudioPlayer, ChainOfThought, Checkpoint, CodeBlock, Commit, Conversation, EnvVarList, FileTree, GeneratedImage, InlineCitation, LocalChat, Message, MessageActions, MessageBody, MicSelector, ModelSelector, OpenInChat, PackageInfo, PlanList, PromptInput, Queue, Reasoning, Response, Sandbox, Shimmer, Snippet, Sources, SpeechInput, StackTrace, Suggestion, Task, Terminal, TestResults, TokenContext, ToolInvocation, Transcription, VoiceSelector, WebPreview) so deep @matterway/sdk/lib/assistant-ui/components/mw/* imports resolve.

Breaking Changes ​

The next release is a major API consolidation. The remainder of this section is a topical migration guide β€” group by area to find what applies to your skill.

Topics:

  1. React 19
  2. File API: SdkFile/SDKFile β†’ MwFile
  3. Renderer block factories renamed to *Field
  4. XPath aliases removed; selector helpers are unified
  5. $eval / $xEval removed from the public API
  6. getAssistantDataPath removed
  7. ButtonList items: text β†’ label
  8. Tiff component removed
  9. HeaderBar / Modal / SplitView / DocViewer: description prop removed
  10. runJobsWithProgressList consolidated under the renderer
  11. Legacy imperative UI surfaces removed
  12. Subpath exports removed
  13. Dependency drops

React 19 ​

react, react-dom, and @types/react move to ^19.2.0, pinned via pnpm overrides so the whole tree resolves to a single React 19. react-day-picker goes to v10. JSX is no longer global.

  • caption β†’ month_caption, IconLeft/IconRight β†’ Chevron, initialFocus β†’ autoFocus, DayPicker*Props β†’ DayPickerProps.
  • Replace global JSX.Element / JSX.IntrinsicElements with React.JSX.*.
  • useRef<string>() (no initial value) β†’ useRef<string>(undefined).
  • RefObject<HTMLDivElement> parameter types that can receive null must be widened (or use RefObject<HTMLDivElement | null>).

File API: SdkFile/SDKFile β†’ MwFile ​

The base64-oriented file surface is gone. All loader/writer helpers, the type, and its conversion utilities have Mw* counterparts already shipped. MwFile.arrayBuffer is now an ArrayBuffer field; MwFile.base64() is a method.

RemovedReplacement
SdkFile, SDKFileMwFile
convertBase64ToFileconvertBase64ToMwFile
convertBase64ToBufferconvertBase64ToArrayBuffer (or Buffer.from(arrayBuffer))
fileFromDrivemwFileFromDrive
fileFromUrlmwFileFromUrl
fileFromInputmwFileFromInput
fileToDrivemwFileToDrive
downloadFilefileDownload
fileToInputmwFileToInput

Before:

ts
import {fileFromDrive, fileToInput, SdkFile} from '@matterway/sdk';

const file: SdkFile = await fileFromDrive(
  '/tmp/invoice.pdf',
  'application/pdf',
);
const bytes = await file.arrayBuffer(); // method
const base64 = file.data; // base64 string field
await fileToInput(ctx, '#upload', file);

After:

ts
import {mwFileFromDrive, mwFileToInput, MwFile} from '@matterway/sdk';

const file: MwFile = await mwFileFromDrive(
  '/tmp/invoice.pdf',
  'application/pdf',
);
const bytes = file.arrayBuffer; // field
const base64 = file.base64(); // method
await mwFileToInput(ctx, '#upload', file);
SharePoint API ​

The SharepointAPI returned by getSharepointApi(ctx, ...) now speaks MwFile:

  • getFileByName resolves to MwFile (was SdkFile).
  • uploadFile accepts MwFile.
  • getItemAttachment resolves to {file: MwFile, item} (was {response: base64string, item}).

Before:

ts
const {response, item} = await sp.getItemAttachment(listName, itemId);
const buffer = convertBase64ToBuffer(response);

After:

ts
const {file, item} = await sp.getItemAttachment(listName, itemId);
const buffer = Buffer.from(file.arrayBuffer);

(getSharepointApi itself remains @deprecated β€” the Graph API helpers in the same module are the long-term replacement.)

Renderer block factories renamed to *Field ​

The five pre-renamed factories and their camelCase aliases are gone β€” names now match the underlying Ui*Field shadcn components.

RemovedReplacement
Input / inputInputField / inputField
Select / selectSelectField / selectField
MultiSelect / multiSelectMultiSelectField / multiSelectField
CheckboxList / checkboxListCheckboxListField / checkboxListField
RadioList / radioListRadioListField / radioListField

Before:

ts
import {Input, Select} from '@matterway/sdk/UI';
render(
  ctx,
  Bubble([Input({name: 'firstName'}), Select({name: 'country', items})]),
);

After:

ts
import {InputField, SelectField} from '@matterway/sdk/UI';
render(
  ctx,
  Bubble([
    InputField({name: 'firstName'}),
    SelectField({name: 'country', items}),
  ]),
);

XPath aliases removed; selector helpers are unified ​

The selector-aware helpers already accept XPath strings (detected via isXPath) or the explicit ::-p-xpath(...) prefix. The XPath-named aliases are gone.

RemovedReplacement
waitForXPathwaitForSelector
watchXPathwatchSelector (wrap xpath as `::-p-xpath(${xp})` if needed)
highlightXPathhighlightSelector
clickByXPathclick
scrollToXPathSelectorscrollToSelector
typeByXPathtype
fillByXPathfill
getValueByXPathgetValue
setValueByXPathsetValue
focusByXPathfocus
selectFramegetFrame
selectNestedFramegetFrame (use >> separator for nesting)
getNestedFramegetFrame (use >> separator for nesting)

Before:

ts
await waitForXPath(ctx, '//button[text()="Submit"]');
await clickByXPath(ctx, '//button[text()="Submit"]');

After:

ts
await waitForSelector(ctx, '//button[text()="Submit"]');
await click(ctx, '//button[text()="Submit"]');

For nested frames, replace getNestedFrame(ctx, [outer, inner]) with a single getFrame call using the >> separator:

ts
const inner = await getFrame(ctx, 'iframe#outer >> iframe#inner');

$eval / $xEval removed from the public API ​

These were @deprecated @private helpers that nevertheless leaked through the @matterway/sdk barrel. They are now @internal and no longer re-exported from src/utils/index.ts. Skill authors should use the typed selector helpers (click, type, fill, getValue, setValue, focus, etc.) which cover the common cases. For ad-hoc evaluation, drop down to puppeteer's page.$eval / page.evaluate via the context's page handle.

getAssistantDataPath removed ​

The standalone helper that computed the per-platform assistant data directory is gone. The host runtime provides the same value via the injected assistant API β€” use ctx.assistant.getAssistantPath().

Before:

ts
import {getAssistantDataPath} from '@matterway/sdk';
const root = getAssistantDataPath();

After:

ts
const root = ctx.assistant.getAssistantPath();

ButtonList items: text β†’ label ​

Affects every template that builds a navigation/button row (Failure, FileUpload, Success, ThumbsFeedback, etc.).

Before:

tsx
ButtonList({items: [{text: 'Submit', value: 'submit'}]});

After:

tsx
ButtonList({items: [{label: 'Submit', value: 'submit'}]});

Tiff component removed ​

Use ImageViewer, which renders TIFFs alongside other formats. With MwFile, pass file.base64() as src:

Before:

tsx
import {Tiff} from '@matterway/sdk';
<Tiff file={tiffFile} alt='scan' />;

After:

tsx
import {ImageViewer} from '@matterway/sdk';
<ImageViewer src={tiffFile.base64()} filename={tiffFile.name} />;

HeaderBar / Modal / SplitView / DocViewer: description prop removed ​

The prop was a no-op for some time. Drop it from call sites and from template options.

Before:

ts
HeaderBar({title: 'Upload', description: 'Pick a file'});
Modal({title: 'Confirm', description: 'Are you sure?'}, [...]);
message(ctx, {title: 'Done', description: 'Saved.', text: 'All good'});

After:

ts
HeaderBar({title: 'Upload'});
Modal({title: 'Confirm'}, [...]);
message(ctx, {title: 'Done', text: 'All good'});

runJobsWithProgressList consolidated under the renderer ​

The standalone runJobsWithProgressList re-export from @matterway/sdk emitted a deprecation warning and delegated to runProgressibleJobs. Import the renderer template instead.

Before:

ts
import {runJobsWithProgressList} from '@matterway/sdk';
await runJobsWithProgressList(ctx, jobs, {title: 'Working…'});

After:

ts
import {runJobsWithProgressList} from '@matterway/sdk/UI';
await runJobsWithProgressList(ctx, jobs, {title: 'Working…'});

Legacy imperative UI surfaces removed ​

The "show*" entry points and their bubble/template/component implementations are gone. Compose the renderer instead β€” render(ctx, blockTree) with the block factories in @matterway/sdk/UI.

Removed APIReplacement
showUI({ctx, element})render(ctx, blockTree)
showMessage(ctx, options)message(ctx, options) β€” renderer template
showRequestUserAction(ctx, options)requestUserAction(ctx, options) β€” renderer template
showNotice / showSuccessNotice / showFailureNoticesuccess(ctx, options) / failure(ctx, options) / message(ctx, options) templates
showWarningNoticemessage(ctx, options) with icon: 'warning-circle-outline'
showForm(ctx, schema, …)render(ctx, Bubble([InputField, SelectField, …, NavigationBar])) β€” compose explicit field blocks
showProgress / showProgressListprogressList(ctx, options) β€” renderer template
showHighlight(ctx, selector, options)Highlight(ctx, selector, options) block in @matterway/sdk/highlight
showUploadFile / showFileUploadfileUpload(ctx, options) β€” renderer template (returns MwFile[] | null)
showDownloadFile / showFileDownloadRender a DownloadLink block, or compose your own using MwFile.base64()
import {bubble, …} from '@matterway/sdk/UI/blocks'import {bubble, …} from '@matterway/sdk/UI' β€” block factories are now part of the top-level UI barrel

Component implementations under src/message, src/notice, src/progress/components, src/form/components, src/file/components, the entire Form* schema layer (yup types, Layouts, ListExtra, FormItem, FormBubble), and bubble-specific React components (MessageBubble, NoticeBubble, ProgressListBubble, UploadFileBubble, DownloadMwFile, …) are all gone β€” they were implementation details of the show* APIs and have no direct replacement; the renderer composes the same UI from block factories.

runProgressibleJobs, runJobsWithProgress, makeProgressiblePromise, Progressible, and showTabProgress remain unchanged. The pure file IO helpers (getMwFile, mwFileFromDrive/Url/Input, mwFileToDrive/Input, fileDownload, fetchFileChunks) remain.

Before:

ts
import {showUI, Bubble, Input} from '@matterway/sdk/UI';
const {data} = await showUI({ctx, element: Bubble([Input({name: 'q'})])});

After:

ts
import {render, Bubble, InputField} from '@matterway/sdk/UI';
const {data} = await render(ctx, Bubble([InputField({name: 'q'})]));

Form migration example:

ts
// Before
import {showForm} from '@matterway/sdk';
const {data} = await showForm(ctx, {
  fields: [
    {kind: 'input', name: 'email', label: 'Email'},
    {kind: 'select', name: 'country', label: 'Country', items},
  ],
});

// After
import {
  render,
  Bubble,
  InputField,
  SelectField,
  NavigationBar,
} from '@matterway/sdk/UI';
const {data} = await render(
  ctx,
  Bubble([
    InputField({name: 'email', label: 'Email'}),
    SelectField({name: 'country', label: 'Country', items}),
    NavigationBar({buttons: [{label: 'Submit', value: 'submit'}]}),
  ]),
);

Subpath exports removed ​

The corresponding ./lib/... subpath exports for the removed source trees are gone from package.json. If you imported from any of these deep paths, switch to the top-level barrels.

Removed deep pathNew import
@matterway/sdk/lib/UI/blocks (or .../blocks/doc)@matterway/sdk/UI β€” block factories live in the main UI barrel
@matterway/sdk/lib/assistant-design-system/**@matterway/sdk/lib/assistant-ui/components/mw/** (shadcn-based replacements)
@matterway/sdk/lib/assistant-ui/components/mw/Tiff@matterway/sdk/lib/assistant-ui/components/mw/ImageViewer
@matterway/sdk/lib/file/components@matterway/sdk/UI (file blocks FileUpload, DownloadLink)
@matterway/sdk/lib/form/components (+ Fields, types, …)@matterway/sdk/UI (field blocks InputField, SelectField, …)
@matterway/sdk/lib/message (+ components)@matterway/sdk/UI (message, requestUserAction templates)
@matterway/sdk/lib/notice (+ components)@matterway/sdk/UI (success, failure, message templates)
@matterway/sdk/lib/progress/components@matterway/sdk/UI (progressList, runJobsWithProgressList templates)

Dependency drops ​

  • @matterway/background-react β€” gone. It was React-18-only (depended on ReactCurrentDispatcher) and the last consumer of the legacy showUI path.
  • shiki β€” gone. CodeBlock now uses a built-in pattern-based tokenizer instead of shiki, eliminating the runtime grammar dynamic imports that the SDK's chunk-evaluation pipeline could not resolve.
  • src/assistant-design-system β€” removed in its entirety (Bubble, Modal, Overlay, Shield, SplitView containers; Badge, Button, Callout, etc.; the ThemeContext / Root provider / classicTheme / DraggableIcons). Use the shadcn-based components under @matterway/sdk/lib/assistant-ui/components/mw.

3.23.1 (2026-05-20) ​

Bug Fixes ​

  • renderer: self-heal chunk injection state when the page navigates or resets β€” ensureChunks now probes window.__MW and clears the tracked injected set only on an explicit "gone" signal (typeof __MW === 'undefined' or an adapter error), preventing a follow-up render() from silently no-opping after page.reload() while staying safe under non-conforming adapters.
  • renderer: abort nav-replay mount if the session was cleaned up during chunk injection β€” avoids re-mounting a superseded session (e.g. a progress() after page.reload() issued cleanupOthers) and leaking an mw-ui-root-<sid> that never gets torn down.

3.23.0 (2026-05-18) ​

Features ​

  • workflow: add workflow skill support, including useStepCtx, cloud/local step-location wrappers, the workflow-build / workflow-prebuild pipeline, the steps.js zip entry, and the @workflow/builders dependency

Bug Fixes ​

  • workflow-build: replace regex-based step-dispatch rewriter with an AST-based transform using the TypeScript compiler API, eliminating regex backtracking concerns and improving robustness against whitespace and comment variations in generated steps.js

  • workflow-prebuild: replace regex-based 'use workflow' / 'use step' directive injection with an AST-based transform using the TypeScript compiler API and magic-string, eliminating ReDoS concerns and correctly handling type annotations, generics, comments, and nested function declarations

  • changelog: harden update-changelog.sh against user-level Stop hook leakage by passing --setting-sources project,local, rejecting Claude output that doesn't contain a recognized changelog section heading, and falling back to main's Unreleased section when the local one is detected as corrupted β€” preventing rich entries from being silently replaced by placeholder bullets after a regeneration

  • eslint: re-enable curly: ['error', 'all'] in the local ESLint config (previously disabled by bundled eslint-config-prettier) and enforce react/prefer-read-only-props on .tsx files outside assistant-design-system, ensuring consistent brace style and read-only React props across the codebase

  • deps: pin pnpm overrides to security-patched versions of undici (>=7.24.0), devalue (>=5.8.1), fast-uri (>=3.1.2), and @babel/plugin-transform-modules-systemjs (>=7.29.4), and drop stale overrides for basic-ftp, axios, ip-address, and tailwindcss

Chores ​

  • workflow-build: expand single-line if (!...) return undefined; guards into braced blocks in asTaggedCall / asRegisterCall / findStepDispatchMatches to comply with the re-enabled curly: all rule

3.20.0 (2026-05-13) ​

Features ​

  • card: add Card mw component with optional header, body, and prescriptive footer actions

    tsx
    // 1 action β€” full-width primary button
    <Card title="Upgrade plan" actions={[{label: 'Upgrade to Pro'}]} />
    
    // 2 actions β€” secondary left, primary right
    <Card
      title="Unsaved changes"
      actions={[
        {label: 'Discard', variant: 'outline'},
        {label: 'Save changes'},
      ]}
    />
  • carousel: add Carousel mw component (base + mw wrapper over embla-carousel-react) with built-in previous/next chevrons and configurable slide width via slideBasis

    ts
    Carousel({
      slideBasis: '1/3',
      slides: [
        {key: 'plan-basic', content: 'Basic'},
        {key: 'plan-pro', content: 'Pro'},
        {key: 'plan-team', content: 'Team'},
      ],
    });
  • tabs: add Tabs mw component (mw wrapper over base/tabs) for switching between related content panels within a bounded section

    ts
    Tabs({
      defaultValue: 'overview',
      items: [
        {value: 'overview', label: 'Overview', content: 'Overview panel'},
        {value: 'activity', label: 'Activity', content: 'Activity panel'},
        {value: 'settings', label: 'Settings', content: 'Settings panel'},
      ],
    });
  • tooltip: add Tooltip mw component (base + mw wrapper) for short contextual hints on hover or focus

    ts
    Tooltip({
      content: 'Permanently delete this conversation',
      children: 'Delete',
    });
  • pagination: add Pagination mw component (base + mw wrapper) with Previous/Next buttons, numbered page links, and ellipsis support for long page ranges

    ts
    Pagination({
      page: 3,
      pageCount: 12,
      onPageChange: (page) => console.log('go to page', page),
    });
  • navigationMenu: add NavigationMenu mw component (base + mw wrapper) β€” top-level horizontal nav with link items and trigger items that open rich content panels (distinct from existing NavigationBar)

    ts
    NavigationMenu({
      items: [
        {type: 'link', label: 'Docs', href: '/docs', active: true},
        {
          type: 'trigger',
          label: 'Products',
          content: {
            variant: 'text',
            links: [
              {
                label: 'Assistant',
                description: 'Build agentic skills',
                href: '/products/assistant',
              },
              {
                label: 'Designer',
                description: 'Visual flow editor',
                href: '/products/designer',
              },
            ],
          },
        },
      ],
    });
  • dropdownMenu: add DropdownMenu mw component (base + mw wrapper) β€” context menu anchored to a trigger, supporting default, checkbox, radio, sub-menu, label, and separator item types

    ts
    DropdownMenu({
      trigger: 'Actions',
      groups: [
        {
          key: 'safe',
          items: [
            {key: 'edit', label: 'Edit', onClick: () => console.log('edit')},
            {
              key: 'duplicate',
              label: 'Duplicate',
              onClick: () => console.log('duplicate'),
            },
          ],
        },
        {
          key: 'destructive',
          items: [
            {
              key: 'delete',
              label: 'Delete',
              onClick: () => console.log('delete'),
            },
          ],
        },
      ],
    });
  • dataTable: add DataTable mw component (base + mw wrapper) β€” sortable, filterable table with row selection, column visibility, and pagination

    ts
    DataTable({
      columns: [
        {accessorKey: 'name', header: 'Name'},
        {accessorKey: 'status', header: 'Status'},
        {accessorKey: 'role', header: 'Role'},
      ],
      data: [
        {name: 'Ada Lovelace', status: 'active', role: 'Admin'},
        {name: 'Alan Turing', status: 'invited', role: 'Member'},
      ],
      searchKey: 'name',
    });
  • hoverCard: add HoverCard mw component (base + mw wrapper) β€” floating card shown on hover over a trigger, for read-only previews like profiles, link summaries, or entity metadata

    ts
    HoverCard({
      trigger: 'Ada Lovelace',
      children: 'First computer programmer (1815–1852).',
    });
  • dateField: add displayFormat prop to control how the date is shown and parsed in the text input (any date-fns format string). Default remains dd.MM.yyyy; the value emitted via onSelect stays in ISO form per type.

    ts
    DateField({
      name: 'birthday',
      label: 'Birthday',
      defaultValue: '2026-05-12',
      displayFormat: 'MM/dd/yyyy',
    });
  • item: add Item and ItemGroup mw components β€” list entries with optional media, title, description, and action slots; ItemGroup renders a divider-separated list

    ts
    ItemGroup({
      items: [
        {key: 'alice', title: 'Alice Johnson', description: 'alice@example.com'},
        {key: 'bob', title: 'Bob Smith', description: 'bob@example.com'},
      ],
    });
  • popover: add Popover mw component β€” floating panel anchored to a trigger for rich, interactive content (forms, settings, pickers). Use HoverCard for hover-only previews; use DropdownMenu for action lists.

    ts
    Popover({
      trigger: 'Filters',
      heading: 'Filter results',
      children: 'Filter controls go here.',
    });

3.6.3 (2026-05-08) ​

Bug Fixes ​

  • renderer: lower z-index by 1 to allow render below assistant runner UI

3.6.2 (2026-05-08) ​

Features ​

  • renderer: FileUpload block now accepts a validate function directly; the block fetches the file's arrayBuffer server-side and supports returning undefined (valid), a string (error message), or the explicit {isValid, message, processedFile?} shape.

    ts
    FileUpload({
      name: 'docs',
      validate: async (file) => {
        if (file.arrayBuffer.byteLength > 1_000_000) return 'File too large';
      },
    });
  • renderer: src/client/ components are now discovered recursively at any depth, with clear errors for basename collisions, missing default exports, and non-PascalCase filenames.

  • renderer: export updateFileUploadState from the package entry for hand-composed FileUpload flows via render().

Bug Fixes ​

  • renderer: styled-components now inserts styles into the per-session shadow root via StyleSheetManager, so styled.* components in src/client/ render with their styles instead of leaking to document.head unstyled.
  • ui: FileUpload now surfaces files rejected during onDrop (wrong type, too large) in the file list by syncing pre-validated files into validFiles.
  • renderer: fileUpload template no longer crashes when the result has no button (e.g. cancelled session).

3.6.1 (2026-05-07) ​

Chores ​

  • deps: clean up pnpm overrides, removing entries no longer needed and tightening version ranges for basic-ftp, axios, postcss, and ip-address.

3.6.0 (2026-05-07) ​

Features ​

  • success template: add showConfetti option to opt out of the confetti animation (defaults to true)
ts
await success(ctx, {
  title: 'Done',
  showConfetti: false,
});

Bug Fixes ​

  • assistant-ui: expand Tailwind v4 custom property defaults in Shadow DOM so utilities composing multiple --tw-* vars (e.g. -translate-y-1/2, gradients, shadows, filters) render correctly in Chromium where @property registrations don't apply at the shadow root
  • renderer: render() now cleans up other active sessions on the same target by default. Pass cleanupOthers: false to opt out and stack multiple UIs on the same page.
ts
await render(ctx, StepOne()); // mounts
await render(ctx, StepTwo()); // StepOne cleans up
render(ctx, StatusBar(), {cleanupOthers: false}); // stacks on top

3.5.3 (2026-05-06) ​

Chores ​

  • deps: add Radix UI primitives for new MDS components (accordion, alert-dialog, dropdown-menu, hover-card, navigation-menu, tooltip)
  • deps: add @tanstack/react-table for table component
  • deps: add embla-carousel-react for carousel component
  • deps: add lucide-react for icon support

3.5.2 (2026-05-06) ​

Version bump only.

3.5.1 (2026-05-05) ​

Features ​

  • renderer/blocks: add InputField, SelectField, MultiSelectField, CheckboxListField, RadioListField block functions whose names match their underlying Ui*Field components

    ts
    import {
      InputField,
      SelectField,
      MultiSelectField,
      CheckboxListField,
      RadioListField,
    } from '@matterway/sdk/UI';
    
    InputField({name: 'email', label: 'Email'});
    SelectField({name: 'country', items: [{value: 'us', label: 'US'}]});
  • renderer/react: new @matterway/sdk/UI/react entry point for hosting Ui* components in regular React / Next.js apps without Puppeteer or the skill bridge. Exposes SessionRoot, RenderBlockTree, and registerComponent/registerComponents for custom block types

    tsx
    import {SessionRoot, RenderBlockTree} from '@matterway/sdk/UI/react';
    
    <SessionRoot onResolve={({data, button}) => console.log(data, button)}>
      <RenderBlockTree tree={treeFromServer} />
    </SessionRoot>;
  • renderer: add fromBrowser(target) PagePort for same-realm rendering. Use when the renderer's "Node side" and "browser side" run in the same React process

    ts
    import {fromBrowser} from '@matterway/sdk/UI/renderer';
    
    const port = fromBrowser(rootElement);
  • mw-scripts: new build-time CLI that scans a consumer's src/ for SDK block-factory imports and generates a sdk-components.gen.ts registry that the renderer uses to look up Ui* components. Supports one-shot and watch modes

    sh
    mw-scripts                       # one-shot scan + write
    mw-scripts --watch -- next dev   # watch mode + spawn child cmd
  • styles: ship a second CSS bundle @matterway/sdk/styles.css with :root preserved (alongside the Shadow-DOM :host-rewritten index.css) for apps that mount SDK components directly into the document body

    ts
    import '@matterway/sdk/styles.css';
  • exports: add subpath exports for ./UI/blocks, ./UI/react, ./UI/components, ./UI/components/*, and ./styles.css

  • ui/buttonList: add canonical label field on button items (deprecates text); FileUpload and NavigationBar now forward label end-to-end

    ts
    NavigationBar({buttons: [{label: 'Submit', value: 'submit'}]});

Bug Fixes ​

  • ui/button: disabled buttons no longer apply hover styles and now show a not-allowed cursor; enabled buttons show a pointer cursor
  • ui/styles: set explicit --tw-border-style and --tw-outline-style defaults so borders render correctly when styles are adopted into a Shadow DOM
  • ui/mdx: tighten paragraph spacing (leading-5, my-0) and align callout content left with reduced padding (p-3, rounded-md) for more compact rendering
  • ui/modal: fix modal and splitview centering by using flexbox layout instead of absolute positioning with transform, so dragging composes cleanly with centering and maxWidth: 90vw is respected
  • renderer/hydrate: convert Block-valued props (e.g. SplitView's sidebar) into React elements before passing to host components, preventing "Objects are not valid as a React child" errors
  • ui/statusList: align status icon spacing with mt-0.5 for consistent vertical rhythm

Chores ​

  • renderer: exclude renderer from the root barrel so block imports keep flowing through @matterway/sdk/UI (required for the chunking scanner to detect block usage)
  • deps: add chokidar for mw-scripts --watch

Deprecations ​

  • renderer/blocks: Input, Select, MultiSelect, CheckboxList, RadioList are deprecated in favor of their *Field counterparts. The old names still work but will be removed in a future release.

    ts
    // Before
    import {
      Input,
      Select,
      MultiSelect,
      CheckboxList,
      RadioList,
    } from '@matterway/sdk/UI';
    
    // After
    import {
      InputField,
      SelectField,
      MultiSelectField,
      CheckboxListField,
      RadioListField,
    } from '@matterway/sdk/UI';
  • ui/buttonList: text field on button items is deprecated in favor of label

    ts
    // Before
    NavigationBar({buttons: [{text: 'Submit', value: 'submit'}]});
    
    // After
    NavigationBar({buttons: [{label: 'Submit', value: 'submit'}]});

3.4.0 (2026-04-30) ​

Features ​

  • PDFnative: add new PDFnative component export under ./lib/assistant-ui/components/mw/PDFnative
  • renderer: add PdfNative block factory in src/renderer/blocks for the native browser PDF viewer (iframe-based, no pdf.js)
  • UI: add pdfNative block and UiPDFnative component for the legacy showUI path (deprecated β€” prefer the renderer block)
ts
import {PdfNative} from '@matterway/sdk/renderer/blocks';

PdfNative({
  src: 'base64-or-data-url-or-blob-url',
  showToolbar: false,
});

Chores ​

  • PDFviewer: extract sample PDF base64 into shared samplePdf.ts for reuse across PDF stories

3.3.0 (2026-04-29) ​

Version bump only.

3.2.4 (2026-04-28) ​

Features ​

  • Mdx: render GitHub-flavored markdown tables with header styling, column alignment, inline markdown in cells, and horizontal overflow scrolling. Tables inherit the surrounding text color when one is provided.

    tsx
    <Mdx>{`
    | Name | Role | Location |
    |------|------|----------|
    | Alice | Engineer | Berlin |
    | Bob | Designer | Lisbon |
    `}</Mdx>

Bug Fixes ​

  • PDFviewer: polyfill Map.prototype.getOrInsertComputed on the main thread and prepend the same polyfill to the pdf.js worker source so PDFs render on older Chromium-based Edge versions that lack the TC39 upsert method.
  • ProgressList: move status icon to the start of each item and let the label flex to fill available space so long sublabels no longer push the icon off-screen.

3.2.3 (2026-04-28) ​

Chores ​

  • build: migrate Tailwind CSS from v3 to v4, moving theme configuration from tailwind.config.js into src/assistant-ui/styles.css via @theme inline, @source, and @custom-variant directives.
  • build: replace tailwindcss + autoprefixer PostCSS plugins with @tailwindcss/postcss; drop autoprefixer dependency.
  • test: loosen PDFviewer Tailwind compilation assertions to check for property presence rather than exact emitted values, since Tailwind v4 produces semantically-equivalent but textually-different output (e.g. flex:1 vs flex:1 1 0%, calc(var(--spacing)*0) vs 0).

3.2.2 (2026-04-27) ​

Features ​

  • pages: add createWindow to open a separate, visible browser window (not a tab) and return a scoped Context β€” useful when two UIs need to be visible simultaneously (e.g. editor + live preview).
ts
import {createWindow} from '@matterway/sdk';

const previewCtx = await createWindow(ctx, 'https://example.com');
// ctx.page and previewCtx.page are visible side by side.
  • renderer: Block children now accept components imported from src/client/ without as unknown as Block casts β€” the build transform rewrites client imports into Block-returning callables, and the ChildBlock type bridges the ReactElement gap.

  • PDFviewer: full rewrite on top of pdfjs-dist β€” replaces the <iframe> preview with an in-SDK renderer that supports page-by-page canvas rendering, zoom (10%–500%), rotation, page navigation, filename display, and a download button. Pages render lazily via IntersectionObserver and the viewer's outer height locks to the document's natural size so zooming scrolls inside rather than resizing the container.

tsx
<PDFviewer src={base64OrBlobOrDataUrl} filename='report.pdf' showToolbar />

Bug Fixes ​

  • renderer: prevent cross-window state-sync echo loops in session groups by relaying the Node-origin marker through window.__mw_pending_origin so browser-side persistence tags its echo correctly and Node skips re-broadcasting.
  • renderer: clear the per-render sessionId entry in window.__mw_session_stores on unmount while preserving the shared storeId entry when other peers still need it.
  • renderer: reject raw React elements and untransformed React components inside Block trees with a clear error pointing to src/client/ as the fix, instead of rendering blank.
  • renderer: report the exact child path (e.g. children[2].children[0]) when a React element is found in a Block tree, instead of the placeholder children[?].
  • renderer: reuse the shared isReactElement helper in the browser hydrate path so React-element detection stays consistent with the tree walker and serializer.
  • skill-scripts: invalidate the chunk-manifest cache in Rollup watch mode when skill source files change, so adding a new block import is picked up without restarting skill-scripts start.
  • render: patch for 3rd-party libs so chunks that import CJS/UMD packages (exceljs, handsontable) don't leak top-level export/import after IIFE wrapping.
  • pages: avoid double navigation in createWindow when no URL is provided by creating the target directly at the destination instead of about:blank-then-goto.
  • chunking: defer export * re-exports to runtime via Object.assign into the chunk's exports slot, so bulk re-exports from CJS/UMD vendor namespaces merge correctly instead of overwriting the shared __MW_Vendors object.

Chores ​

  • chunking: rename the core chunk to init and evaluate each chunk (init + vendors + components) in its own topologically-sorted port.evaluate call, so partial failures don't lose track of chunks that already ran.
  • chunking: shared modules are now extracted into auto-generated vendor-* chunks exposed via window.__MW_Vendors, replacing the hand-maintained SHARED_GLOBALS allowlist and guaranteeing singleton identity across chunks.
  • chunking: add singleton-invariant tests and a jsdom integration test that exercises the CJS-wrapping path (UiSheet β†’ exceljs/handsontable) to catch export-leak regressions in the IIFE wrapper.
  • chunking: add a per-render isolation integration test that builds a fixture with PdfClient (heavy, imports PDFviewer), TextClient (imports Text via the same assistant-ui barrel that re-exports PDFviewer), and PlainClient (no SDK imports), then asserts pdfjs only lands in the PdfClient chunk β€” never in init, vendor chunks, or any chunk reachable from an unrelated render's dep graph. Replaces the ad-hoc measure-sizes.test.ts size dump.
  • chunking: virtual:mw-chunk-manifest now default-exports the manifest only; runtime registration (setChunkManifest) moved to the background-entry injection plugin so the call site is controlled.
  • chunking: derive the block-fn β†’ Ui-component map from src/renderer/blocks/index.ts via a shared scripts/parse-blocks.js AST parser consumed by both generate-blocks-manifest.js (emits blocks-manifest.generated.ts for the chunker) and generate-templates-manifest.js, replacing the hand-maintained BLOCK_FN_TO_COMPONENT and fileOverrides maps that used to drift when new blocks landed.
  • build: treat src/index.ts and the chunking manifests as auto-generated β€” regenerated by pnpm build:generated (run from prepare and prepack) so the tree is reproducible from inputs + scripts and publish always includes fresh artifacts.
  • build: bundle the pdfjs-dist worker as a string constant via scripts/generate-pdfjs-worker.js so skills don't need to ship a separate worker file; falls back to pdfjs's main-thread worker under strict CSPs that block blob: workers.
  • deps: add pdfjs-dist for the new PDFviewer renderer and @playwright/test for real-browser layout tests (pnpm test:browser).
  • deps: add acorn and magic-string for the IIFE-wrapping build plugin.

3.2.0 (2026-04-23) ​

Bug Fixes ​

  • skill-scripts: restore tsconfig.json::compilerOptions.baseUrl-only import resolution in the Vite build, fixing "Rollup failed to resolve import" for skills that use bare imports (e.g. import {initI18n} from 'locales') without declaring compilerOptions.paths
  • skill-scripts: inline dynamic imports in the background bundle so skills relying on code-splitting produce a single executable chunk

3.1.0 (2026-04-22) ​

Features ​

  • package: declare package as ESM ("type": "module") and expose subpath exports map β€” consumers can now import from @matterway/sdk/UI, @matterway/sdk/UI/renderer, and @matterway/sdk/client

    ts
    import {Bubble, Text, Input} from '@matterway/sdk/UI';
    import {render} from '@matterway/sdk/UI/renderer';
    import {useData, useBridge} from '@matterway/sdk/client';
  • package: auto-generate explicit ./lib/<dir> export entries for every src/ directory with an index.ts(x) via new build:exports step β€” fixes ESM resolution for legacy skills that import directories (e.g. @matterway/sdk/lib/assistant-ui/library) which the ./lib/* wildcard alone cannot resolve

  • renderer/templates: add pre-built template builders (failure, feedback, fileUpload, message, progress, progressList, requestUserAction, runJobsWithProgressList, success) β€” each returns a plain Block tree for common UI patterns

  • data-store: add data-store module for session-scoped data access

  • skill-scripts: auto-generate templates manifest via new build:manifests step β€” templates-manifest.generated.ts is picked up by the chunk scanner to discover template entries

  • skill-scripts: add component chunking system β€” per-component Rollup builds produce IIFE chunks loaded on demand, with shared React/runtime singletons on window.__MW_* globals

  • skill-scripts: auto-detect SDK UI component imports and generate virtual content entry importing only used components

  • skill-scripts: auto-discover client components from src/client/ directory via import.meta.glob

  • skill-scripts: transform client/ imports in background files to callable ref functions, keeping real component code out of Node.js

  • skill-scripts: validate client component filenames β€” basenames must be valid JavaScript identifiers (PascalCase recommended), with a clear error message pointing to the offending file

  • skill-scripts: read the skill's full compilerOptions.paths from tsconfig.json when building Vite aliases β€” previously only a hardcoded set of five names (locales, components, shared, steps, skillRenderCheck) resolved against baseUrl, which broke skills using moduleResolution: bundler (no baseUrl) or declaring custom aliases; now supports exact and globbed patterns with TS-compatible semantics

  • tsconfig: include all .tsx files and exclude stories from build output

  • renderer: add block functions for composing UI in background context β€” returns plain Block data objects with no JSX or React dependency

    ts
    import {Bubble, Text, Input, NavigationBar} from '@matterway/sdk/UI';
    
    const form = Bubble([
      Text({content: 'Enter your email'}),
      Input({name: 'email', label: 'Email', required: true}),
      NavigationBar({buttons: [{text: 'Submit', value: 'submit'}]}),
    ]);
  • renderer: add RPC bridge with signal+queue pattern for Node ↔ browser callback invocation, decoupled from Puppeteer/Playwright via PagePort abstraction

  • renderer: add browser-side component registry for resolving serialized tree types to real React components

  • renderer: add BlockErrorBoundary that isolates render failures per session and shows a fallback UI with the underlying error

  • renderer: add browser hydration and mount pipeline with Shadow DOM isolation per session

  • renderer: add state persistence layer that syncs Zustand store snapshots between Node and browser with origin-aware debouncing

  • renderer: add chunking runtime β€” setChunkManifest + on-demand chunk loading walk the tree and inject only needed component IIFEs

  • renderer: add client-side hooks useData and useBridge for accessing session state and calling background callbacks from client components

  • renderer: add cross-window/session groups β€” multiple sessions can share a Zustand store via sessionId aliasing with state relay across tabs

  • renderer: add observability events for session lifecycle, RPC traffic, and chunk loads

Chores ​

  • build: migrate config and build scripts from CommonJS to ESM
  • build: restrict build:exports directory scan to an explicit safe-name allowlist (^[A-Za-z0-9_][A-Za-z0-9._-]*$) β€” hardens against path traversal from unexpected directory names
  • build: annotate validated path.join call in build:exports scanner with semgrep suppression β€” entry names are pre-validated against the safe-name allowlist
  • skill-scripts: rename jest transform files to .cjs for ESM compatibility
  • skill-scripts: annotate non-literal RegExp construction in vite-paths with semgrep suppressions β€” patterns come from the skill's own developer-authored tsconfig.json and are escaped before interpolation
  • deps: add jsdom for jsdom-based integration tests
  • deps: bump transitive dependencies via pnpm overrides to patch security advisories (handlebars, path-to-regexp, lodash, @xmldom/xmldom, basic-ftp, brace-expansion, picomatch, yaml, follow-redirects, dompurify, axios)

3.0.51 (2026-04-15) ​

Features ​

  • DateField: added controlled value prop to single, multiple, and range date field variants

Bug Fixes ​

  • DateField: fixed default value re-initialization overwriting user-cleared selections
  • DateField: fixed popover focus detection in Shadow DOM environments
  • DateField: fixed popover not reopening on input click after closing
  • DateField: fixed popover closing unexpectedly when clicking calendar content
  • DateField: preserved caret position in single date input during typing
  • DateField: close popover and blur input on Enter key press in single date mode
  • deps: added axios ^1.15.0 override for SSRF and header injection CVEs

3.0.50 (2026-04-08) ​

Features ​

  • skill-scripts: add SDK version (sdk_version) to skill manifest on build
  • components: add new Radix UI primitives β€” Accordion, AlertDialog, DropdownMenu, HoverCard, NavigationMenu, and Tooltip
  • components: add @tanstack/react-table for data table support
  • components: add embla-carousel-react for carousel/slider support
  • components: add lucide-react icon library

Bug Fixes ​

  • waitForPageChange: fix crypto issue by replacing uniqueId with pseudoUniqueId

Chores ​

  • ts: upgrade TypeScript to 6.0
  • ci: remove BlackDuck and Checkmarx workflows
  • ci: migrate @matterway packages registry from npm to GitHub Packages
  • license: update copyright to Cognizant
  • tsconfig: switch moduleResolution to bundler (main) and nodenext (skill-scripts)
  • deps: bump mammoth to ^1.12.0, vite to ^7.3.2, eslint to ^10.2.0, lerna to ^9.0.7, vitepress to ^2.0.0-alpha.17, @matterway/eslint-config to ^6.0.8
  • deps: no-references security patches
  • deps: restore pnpm security overrides for tar, ajv, minimatch, rollup, basic-ftp, underscore, svgo, dompurify, and flatted
  • pnpm: remove redundant yauzl security override (now resolved by direct dependency)
  • githooks: source nvm in pre-commit and commit-msg for GUI app compatibility
  • npmrc: remove vite from minimum-release-age exclusions
  • deps: migrate @matterway packages to GitHub Packages registry

3.0.45 (2026-03-23) ​

Bug Fixes ​

  • file: preserve error cause chain in openFolder, openFile, moveFileOrFolder, selectFileOrFolder, renameFileOrFolder, deleteFileOrFolder, and createFileOrFolder
  • pdf: preserve error cause in mergePdfs
  • hot-reload: preserve error cause when resolving assistant path
  • hot-reload: use console instead of log inside page.evaluate() calls in autostart and hot-reload toggle
  • jobs: preserve error cause in runJobs and runJobsSequentially failure handling
  • ms-graph: preserve error cause in getFileByPath
  • ms-graph: preserve error cause across all SharePoint eval functions (getSiteIdEval, getDrivesEval, getDriveItemsEval, getFileByPathEval, uploadFileEval, getListsEval, getListItemsEval, getDriveFromFolderItemsEval, getFileEval, deleteFileEval, copyFileEval, moveFileEval)
  • ms-graph: use console instead of log inside page.evaluate() calls in SharePoint HTTP functions

Chores ​

  • lint: remove unused preserve-caught-error ESLint rule override

3.0.44 (2026-03-23) ​

Chores ​

  • ci: add statuses: write permission to Checkmarx SAST workflow
  • ci: capitalize Release workflow name
  • deps: update flatted override to enforce >=3.4.2

3.0.43 (2026-03-23) ​

Features ​

  • logger: add structured, filterable logging system with source tagging and level control

    ts
    // Within SDK
    // ----------
    
    // SDK log β€” all output prefixed with [SDK]
    log.debug('click: starting', {selector: '#btn'});
    log.warn('deprecation notice');
    log.error('unexpected failure', err);
    
    // Sub-loggers for Puppeteer and browser output
    log.puppeteer.debug('evaluate: getting page title');
    log.browser.error('uncaught exception');
    ts
    // Create a custom sub-logger for your skill
    // -----------------------------------------
    import {log, logger} from '@matterway/sdk';
    
    const log = logger.create('my-skill');
    log.info('fetchEmails: done'); // [my-skill] fetchEmails: done
    
    // Configure filtering at runtime
    logger.setConfig({level: 'warn'});
    logger.setConfig({mute: ['retry', 'waitForSelector']});
    logger.setConfig({enabledSources: ['my-skill']});
  • logger: add captureBrowserLogs(ctx) to route browser console messages and uncaught errors through log.browser.*

    ts
    import {captureBrowserLogs} from '@matterway/sdk';
    
    export async function start(ctx: Context) {
      captureBrowserLogs(ctx);
      // browser console.log / errors now flow through log.browser.*
    }
  • logger: patch debug package to route puppeteer:* protocol logs through log.puppeteer

  • mdx: add error callout type with destructive-colored icon alongside existing info and warning types

  • ui: add required prop to Label component that renders a styled destructive-colored asterisk

Bug Fixes ​

  • ui: move badge hover effects from base Badge variants to interactive BadgeField only, preventing hover styles on non-interactive badges

  • ui: fix destructive-foreground theme token from red.50 to red.800 for proper error text contrast

  • ui: use destructive-foreground token for validation messages and error text across all form fields and viewers

  • ui: render required-field asterisk via Label required prop with proper destructive styling instead of plain-text concatenation

  • ui: move validation messages directly below label in RadioListField and CheckboxListField for consistent layout

  • ui: sync Input and Textarea base components with design system β€” compact h-9 height, consistent text-sm font size, shadow-sm

  • ui: increase Label font weight from medium to semibold

  • ui: reduce default icon size in Completion and Failure from 80px to 64px and center-align Completion layout

  • ui: use text-foreground for InputField prefix and suffix in default state instead of text-muted-foreground

  • ui: improve Success confetti height calculation using getBoundingClientRect and remove redundant Root wrapper

Chores ​

  • logging: replace all console.log/debug/warn/error calls with structured log.* calls across the SDK
  • scripts: increase update-changelog.sh Claude max-turns from 1 to 5
  • ci: add statuses: write permission to Checkmarx SAST workflow
  • storybook: rewrite Success, Failure, Feedback, and FileUpload bubble stories using composed mw primitives
  • storybook: remove FileBox stories, simplify HeaderBar and Completion stories
  • storybook: migrate story imports from @storybook/react to @storybook/react-vite
  • ui: mark FileBox component as @internal

3.0.42 (2026-03-18) ​

Features ​

  • icons: add IconSearch icon component and register it in the icon map

Bug Fixes ​

  • CheckboxField: fix checkbox and label vertical alignment by aligning items to start and tightening label line-height
  • CommandInput: replace info circle icon with search icon for the command input search field
  • DateField: replace CSS variable --input-radius with fixed rounded-md for consistent border radius
  • HighLight: replace inner accent bar div with a border-l-4 on the container for simpler, full-height styling

3.0.41 (2026-03-18) ​

Features ​

  • figma: add MDS design-token pipeline that resolves Figma token JSON into CSS custom properties
    bash
    pnpm build:tokens                  # default: matterway brand
    pnpm build:tokens --brand cognizant
  • figma: add multi-brand token support (matterway, cognizant) with layered token sets (tailwind β†’ brand β†’ theme β†’ mode)
  • figma: inject resolved token CSS into the build automatically via generate-css.js

Bug Fixes ​

  • form: getValue now always returns string (never null); empty input values are correctly returned as "" instead of falling through to textContent
  • form: getValue input detection now uses instanceof checks (HTMLInputElement, HTMLTextAreaElement, HTMLSelectElement) instead of duck-typing with 'value' in el, preventing false positives on non-input elements
  • form: getValue now disposes element handles after use to prevent memory leaks
  • form: getValue error messages now distinguish between CSS selector and XPath lookup failures

Breaking Changes ​

  • tokens: removed hardcoded themes/dark.css and themes/light.css; theme variables are now generated from src/assistant-ui/tokens/ JSON files
  • tokens: removed --radius, --input-radius, and --input-radius-inner CSS custom properties; components now use standard Tailwind radius classes (rounded-xl, rounded-md, rounded, rounded-sm)
  • tokens: removed --container-shadow, --container-border-color, --slate-50, --slate-200, --badge-orange, --badge-yellow, --pdf-error, --info-callout, --info-callout-background CSS custom properties; replaced by semantic token equivalents or Tailwind utilities
  • badge: border-radius changed from rounded-full to rounded-md
  • build: build:sdk no longer copies themes/ directory to lib/
  • form: getValue return type narrowed from Promise<string | null> to Promise<string>

Chores ​

  • icons: replace IconLoader with IconLoader2 in Spinner and icon map
  • components: replace all rounded-[var(--input-radius)] / hsl(var(--...)) patterns with standard Tailwind classes and semantic token names across 20+ components
  • deps: add flatted (>=3.4.0) and yauzl (>=3.2.1) version overrides
  • tooling: format script now runs Prettier on the entire project instead of only src/

3.0.37 (2026-03-16) ​

Features ​

  • DateField: single date mode now supports inline text entry (dd.MM.yyyy) with a calendar popover, replacing the previous picker-only UI
  • DateField: range and multiple modes now use the same calendar-icon + popover pattern, replacing the previous DatePicker UI
  • DateField: add placeholder prop for all date input types
  • DateField: popover closes automatically after selecting a date in single mode
  • popover: export PopoverAnchor component
  • Export Timezone, TimezoneAbbreviation, and IanaTimezone types
  • tokens: add MDS design token system with multi-brand support (matterway, cognizant)
  • tokens: add build:tokens script to resolve token JSON files into CSS custom properties
    bash
    pnpm build:tokens                  # default: matterway brand
    pnpm build:tokens --brand cognizant
  • tokens: integrate token resolution into CSS build pipeline via generate-css.js
  • figma: sync design tokens from Figma, aligning component styles with MDS token definitions

Bug Fixes ​

  • calendar: fix outside-day cells retaining accent background when not selected
  • DateField: improve focus management so the calendar popover stays open when clicking between the input and calendar

Breaking Changes ​

  • themes: remove hardcoded themes/dark.css and themes/light.css in favor of token-resolved CSS
    • Theme CSS variables are now resolved at build time from src/assistant-ui/tokens/ JSON files and inlined into the CSS bundle by generate-css.js
    • The themes/ directory is no longer shipped
    • No migration needed for SDK consumers β€” the generated CSS output is equivalent
  • styles: remove --radius, --input-radius, and --input-radius-inner CSS custom properties; components now use Tailwind border-radius utilities directly
  • tailwind: redefine borderRadius theme scale with fixed pixel values (sm: 2px, DEFAULT: 4px, md: 6px, lg: 8px, xl: 12px, full: 9999px) replacing CSS variable-based values
    • Migration: replace rounded-[var(--input-radius)] β†’ rounded-md, rounded-[var(--input-radius-inner)] β†’ rounded, rounded-[var(--radius)] β†’ rounded-xl
  • tokens: remove SDK extension tokens info-callout, info-callout-background, badge-orange, badge-yellow, pdf-error, slate-50, slate-200, container-border-color, container-shadow
    • Components now use semantic Tailwind classes (text-info, text-destructive, bg-info-background, border-border, shadow-2xl) instead of hsl(var(...)) references
  • badge: change default badge shape from pill (rounded-full) to rounded rectangle (rounded-md)
  • icons: replace IconLoader with IconLoader2 in icon map and Spinner component

Chores ​

  • ci: pin GitHub Actions to full commit SHAs for reproducibility (pnpm/action-setup, browser-actions/setup-chrome, actions/create-github-app-token)

3.0.36 (2026-03-13) ​

Bug Fixes ​

  • docs: fix Storybook navigation link to open within the docs site

Chores ​

  • lint: enable @typescript-eslint/no-floating-promises rule and fix existing violations

3.0.34 (2026-03-11) ​

Bug Fixes ​

  • ci: use GH_PACKAGES_TOKEN secret and shared registry-setup action for GitHub Packages publish

Chores ​

  • lint: remove no-inline-comments rule override and move all inline comments above their respective code lines
  • lint: convert inline property comments to TSDoc (/** */) on public interfaces (SharepointOptions, PDFviewerProps, EmojiProps, FADE_DURATION, CHUNK_SIZE)
  • lint: remove default-case and no-fallthrough rule overrides and replace switch statements with if/else if chains
  • deps: bump tar override from ^7.5.10 to ^7.5.11

3.0.32 (2026-03-10) ​

Features ​

  • getTimestamp: add timezone support via timezone and useLocalTimezone options
    ts
    getTimestamp({timezone: 'IST'}); // uses Asia/Kolkata
    getTimestamp({timezone: 'Asia/Tokyo'});
    getTimestamp({useLocalTimezone: true});

Chores ​

  • lint: enable prefer-const rule and fix violations across codebase
  • lint: enable @typescript-eslint/no-unused-vars rule and remove unused imports/variables
  • pages: remove dead code branch in connectToMinimizedWindow
  • changelog: pass current Unreleased section to changelog bot for incremental updates
  • changelog: add migration example guidance for deprecations and breaking changes

3.0.31 (2026-03-10) ​

Bug Fixes ​

  • ui: fix selectField autocomplete input visibility when popover opens above trigger (#2244)

Chores ​

  • deps: add dompurify security patch override (>=3.3.2)
  • deps: remove trailing newline from .npmrc
  • lint: enable sort-imports rule and sort all imports across the codebase (#2242)
  • lint: update index generator script to produce sorted import output (#2242)

3.0.29 (2026-03-06) ​

Bug Fixes ​

  • lint: revert lint changes, keep linter updates

Chores ​

  • eslint: add temporary rule overrides for incremental cleanup
  • deps: update pnpm-lock.yaml with latest dependency versions

3.0.28 (2026-03-06) ​

Bug Fixes ​

  • changelog: whitespace-aware stripping of Unreleased heading

Chores ​

  • ci: guard version bump and push steps behind actual commit detection to prevent no-op pushes
  • ci: use --no-push in lerna version and defer push to a single conditional step

3.0.26 (2026-03-05) ​

Bug Fixes ​

  • security: replace Node.js crypto with Web Crypto API, removing elliptic dependency
  • security: remove crypto-browserify and vite-plugin-node-polyfills from build
  • ai: remove unused fixBedrock.ts crypto shim

Chores ​

  • changelog: add error handling fallback in changelog script

3.0.25 (2026-03-05) ​

Features ​

  • changelog: add AI-generated changelog via Claude CLI pre-commit hook

Bug Fixes ​

  • security: dependency security patches

Chores ​

  • npmrc: remove redundant @matterway:registry line

3.0.16 (2026-02-27) ​

Features ​

  • ui: create multiSelectField component

Bug Fixes ​

  • success: click on thumbs up first, no navbar flash
  • upload: showUI.fileUpload cancel should return null
  • upload: showUI.fileUpload max file limit default

Chores ​

  • deps: update husky to v9

3.0.12 (2026-02-26) ​

Bug Fixes ​

  • deps: eslint compatibility

3.0.11 (2026-02-26) ​

Bug Fixes ​

  • deps: security patches

3.0.10 (2026-02-25) ​

Features ​

  • skill-scripts: add skill-scripts CLI to SDK
  • ci: add BlackDuck license scan
  • docs: add Storybook reference to docs site
  • docs: add SDK AI context (AGENTS.md, CLAUDE.md)

Bug Fixes ​

  • showUI: fix fileUpload reuse
  • scripts: make scripts run on both Windows and Mac
  • deps: update dependencies and security patches
  • deps: clean up resolutions and commitlint resolutions
  • ci: BlackDuck scan blocks release

Chores ​

  • docs: add TSDoc comments for exports
  • tests: add tests and improve test runner
  • commitlint: use shared @matterway/commitlint-config

3.0.2 (2026-02-18) ​

Bug Fixes ​

  • showUI: fix fileUpload

Chores ​

  • deps: security updates
  • ci: update actions/checkout and actions/setup-node to v6

3.0.0 (2026-02-13) ​

Major version bump caused by a CI versioning fix. Includes all changes shipped during the 2.x series:

Features ​

  • ui: add hidden field validation
  • ui: use Matterway app icon as default headerbar icon
  • ui: add select-all to checkboxListField and improve dynamic items props
  • showUI: fix and improve showUI.fileUpload reuse

Bug Fixes ​

  • showUI: fix validation race condition
  • showUI: fix file upload return value
  • showUI: fix success statusList display
  • ui: fix modal custom dimension default position
  • ui: make error text selectable
  • ui: fix segmentedField XL item label overlap
  • form: add form validation to showForm
  • build: reduce skill bundle size (restructured internal module exports)
  • ci: fix production release versioning

⚠ BREAKING CHANGES ​

Note: these breaking changes shipped as patches during the 2.x series due to CI not detecting BREAKING CHANGE footers. The 3.0.0 bump corrected the version.

  • showUI: showUI.progressList no longer returns a value (changed from Promise<result> to void)
  • showUI: removed buttons prop from showUI.progressList

2.0.16 (2026-02-13) ​

Version bump only.

2.0.15 (2026-02-13) ​

Bug Fixes ​

  • build: reduce skill bundle size (restructured internal module exports)
  • ci: fix production release versioning

⚠ BREAKING CHANGES ​

Note: these should have triggered a major version bump but didn't due to CI issues. The 3.0.0 bump corrected this.

  • showUI: showUI.progressList no longer returns a value (changed from Promise<result> to void)
  • showUI: removed buttons prop from showUI.progressList

2.0.13 (2026-02-11) ​

Features ​

  • ui: add hidden field validation

2.0.12 (2026-02-09) ​

Bug Fixes ​

  • showUI: fix validation race condition

2.0.11 (2026-02-06) ​

Bug Fixes ​

  • ui: fix modal custom dimension default position

2.0.10 (2026-02-05) ​

Features ​

  • ui: use Matterway app icon as default headerbar icon

2.0.9 (2026-02-04) ​

Bug Fixes ​

  • ui: make error text selectable

2.0.8 (2026-01-29) ​

Bug Fixes ​

  • showUI: fix file upload return value

2.0.7 (2026-01-29) ​

Bug Fixes ​

  • form: add form validation to showForm

2.0.6 (2026-01-28) ​

Bug Fixes ​

  • ui: fix segmentedField XL item label overlap

2.0.5 (2026-01-28) ​

Bug Fixes ​

  • showUI: fix success statusList display

2.0.4 (2026-01-27) ​

Features ​

  • ui: add select-all to checkboxListField and improve dynamic items props

2.0.3 (2026-01-26) ​

Bug Fixes ​

  • ci: suppress npm log output

2.0.2 (2026-01-23) ​

Version bump only.

2.0.1 (2026-01-23) ​

Version bump only. Major version bump caused by CI versioning issue (no actual breaking API changes from 1.78.7).

1.78.7 (2026-01-23) ​

Features ​

  • showUI: add touched-state validation
  • ui: consolidate UIv2 components into main UI package (major internal restructure)

⚠ BREAKING CHANGES ​

Note: these breaking changes should have triggered a major version bump but didn't due to CI issues. The 2.0.0 bump happened later as a CI fix.

  • showUI: invalid prop now returns validation messages (removes validationMessage prop)
  • showUI: dynamic props are now async: ({value, data}) => value
  • showUI: return value changed from {state} to {data, button}

1.48.2 (2025-09-04) ​

Bug Fixes ​

  • ui: fix types and standardise imports

1.48.1 (2025-09-04) ​

Features ​

  • showUI: add percentField component for percentage inputs

1.48.0 (2025-09-03) ​

Features ​

  • showUI: add badgeField

1.47.0 (2025-09-03) ​

Features ​

  • showUI: add phoneField

1.46.0 (2025-09-03) ​

Features ​

  • ui: checkbox label interaction

1.45.11 (2025-09-03) ​

Features ​

  • showUI: add emailField component for email inputs

1.45.10 (2025-09-03) ​

Bug Fixes ​

  • author: valid email value

1.45.9 (2025-09-03) ​

Version bump only.

1.45.8 (2025-09-03) ​

Version bump only.

1.45.7 (2025-09-03) ​

Version bump only.

1.45.6 (2025-09-03) ​

Bug Fixes ​

  • ui: tighten input

1.45.5 (2025-09-03) ​

Bug Fixes ​

  • readme: add readmeFilename

1.45.4 (2025-09-03) ​

Version bump only.

1.45.3 (2025-09-03) ​

Version bump only.

1.45.2 (2025-09-03) ​

Version bump only.

1.45.1 (2025-09-03) ​

Version bump only.

1.45.0 (2025-09-02) ​

Features ​

  • showUI: add dateField

1.44.0 (2025-09-02) ​

Features ​

  • showUI: add currencyField

1.43.4 (2025-09-02) ​

Bug Fixes ​

  • ui: fix storybook

1.43.3 (2025-09-02) ​

Bug Fixes ​

  • ui: date field consistency

1.43.2 (2025-09-02) ​

Bug Fixes ​

  • showUI: items are async calc

1.43.1 (2025-09-02) ​

Bug Fixes ​

  • fileUpload: fix file upload chunks

1.43.0 (2025-09-01) ​

Features ​

  • ui: move content scripts

1.42.4 (2025-09-01) ​

Bug Fixes ​

  • handsontable: update license

1.42.3 (2025-08-29) ​

Bug Fixes ​

  • ui: progress items consistency

1.42.2 (2025-08-29) ​

Bug Fixes ​

  • ui: radioListField items consistency

1.42.1 (2025-08-29) ​

Bug Fixes ​

  • ui: use statusList for consistency

1.42.0 (2025-08-28) ​

Features ​

  • showUI: upgrade message

1.41.0 (2025-08-28) ​

Features ​

  • showUI: add completion to showUI

1.40.0 (2025-08-28) ​

Features ​

  • ui: add completion component

1.39.0 (2025-08-28) ​

Features ​

  • ui: add convenience callout component

1.38.0 (2025-08-28) ​

Features ​

  • ui: add text highlight

1.37.0 (2025-08-27) ​

Features ​

  • showUI: add image viewer

1.36.0 (2025-08-27) ​

Features ​

  • showUI: add keyValue

1.35.0 (2025-08-27) ​

Features ​

  • showUI: add icon

1.34.3 (2025-08-27) ​

Bug Fixes ​

  • assistant-ui: legacy types, closes

1.34.2 (2025-08-26) ​

Bug Fixes ​

  • assistant-ui: legacy types

1.34.1 (2025-08-25) ​

Bug Fixes ​

  • assistant-ui: fix imports

1.34.0 (2025-08-22) ​

Features ​

  • ui: add link and download file component

1.33.0 (2025-08-21) ​

Features ​

  • ui: add field comparison

1.32.3 (2025-08-21) ​

Version bump only.

1.32.1 (2025-08-20) ​

Bug Fixes ​

  • build: build SDK before packing in release workflow

1.32.0 (2025-08-20) ​

Features ​

  • release: add alpha channel

1.31.4 (2025-08-20) ​

Version bump only.

1.31.3 (2025-08-19) ​

Bug Fixes ​

  • content: createSkillMountRoot

1.31.2 (2025-08-19) ​

Version bump only.

1.31.1 (2025-08-19) ​

Bug Fixes ​

  • security: fix tmp package issue

1.31.0 (2025-08-19) ​

Features ​

  • ui: add showFileUpload to showUI

1.30.0 (2025-08-18) ​

Features ​

  • ui: add showUISuccess, closes

1.29.0 (2025-08-18) ​

Features ​

  • ui: add showFailureNotice to showUI

1.28.0 (2025-08-14) ​

Features ​

  • ui: showUI.requestUserAction

1.27.0 (2025-08-14) ​

Features ​

  • ui: add showProgress to showUI

1.26.0 (2025-08-14) ​

Features ​

  • ui: add new radioList to showUI

1.25.0 (2025-08-14) ​

Features ​

  • ui: add fileUpload to showUI

1.24.0 (2025-08-14) ​

Features ​

  • ui: add showProgressList to showUI

1.23.0 (2025-08-13) ​

Features ​

  • ui: add progressList to showUI

1.22.0 (2025-08-13) ​

Features ​

  • ui: add checkboxList to showUI, closes

1.21.0 (2025-08-12) ​

Features ​

  • ui: add segmentedField to showUI

1.20.0 (2025-08-12) ​

Features ​

  • ui: add select to showUI

1.19.0 (2025-08-12) ​

Features ​

  • ui: add statusList to showUI

1.18.0 (2025-08-11) ​

Features ​

  • ui: add modal to showUI, closes

1.17.0 (2025-08-11) ​

Features ​

  • ui: add vertical to showUI, closes

1.16.0 (2025-08-08) ​

Features ​

  • assistant-ui: success bubble feedback state, closes

1.15.2 (2025-08-08) ​

Bug Fixes ​

  • assistant-ui: storybook view

1.15.1 (2025-08-08) ​

Bug Fixes ​

  • build: fix build

1.15.0 (2025-08-06) ​

Features ​

  • hotReload: add ts docs for hot reload fns

1.14.3 (2025-08-01) ​

Bug Fixes ​

  • assistant-ui: adjust upload bubble

1.14.2 (2025-07-31) ​

Bug Fixes ​

  • assistant-ui: several fixes

1.14.1 (2025-07-31) ​

Bug Fixes ​

  • showUI: require should affect navigation bar

1.14.0 (2025-07-30) ​

Features ​

  • assistant-ui: add new key/value component

1.13.2 (2025-07-29) ​

Version bump only.

1.13.1 (2025-07-29) ​

Version bump only.

1.13.0 (2025-07-29) ​

Features ​

  • assistant-ui: add ocr confidence score to input

1.12.0 (2025-07-28) ​

Features ​

  • assistant-ui: toggle field

1.11.2 (2025-07-28) ​

Version bump only.

1.11.1 (2025-07-25) ​

Version bump only.

1.11.0 (2025-07-25) ​

Features ​

  • assistant-ui: add doc viewer tabs

1.10.0 (2025-07-25) ​

Features ​

  • assistant-ui: handsontable SheetViewer

1.9.0 (2025-07-25) ​

Features ​

  • assistant-ui: tiff

1.8.1 (2025-07-24) ​

Version bump only.

1.8.0 (2025-07-24) ​

Features ​

  • form: add root to getValue

1.7.1 (2025-07-24) ​

Bug Fixes ​

  • assistant-ui: consistent naming

1.7.0 (2025-07-24) ​

Features ​

  • assistant-ui: add new segmented field

1.6.0 (2025-07-24) ​

Features ​

  • assistant-ui: group highlight

1.5.1 (2025-07-24) ​

Chores ​

  • build: restructure SDK exports and convert file/form index files from .tsx to .ts

1.5.0 (2025-07-23) ​

Features ​

  • assistant-ui: add new image preview

1.4.28 (2025-07-22) ​

Bug Fixes ​

  • ui: tailwind and dynamic colors

1.4.27 (2025-07-22) ​

Version bump only.

1.4.26 (2025-07-21) ​

Version bump only.

1.4.25 (2025-07-18) ​

Bug Fixes ​

  • hot-reload: update hot reloads, closes

1.4.24 (2025-07-18) ​

Bug Fixes ​

  • build: ignore generate in nodemon watch

1.4.23 (2025-07-17) ​

Bug Fixes ​

  • assistant-ui: fix paddings and containers

1.4.22 (2025-07-17) ​

Bug Fixes ​

  • assistant-ui: fix storybook

1.4.21 (2025-07-16) ​

Version bump only.

1.4.20 (2025-07-16) ​

Version bump only.

1.4.19 (2025-07-16) ​

Bug Fixes ​

  • assistant-ui: fix style provider

1.4.18 (2025-07-15) ​

Reverts ​

  • Revert "chore(deps): bump react-markdown from 9.1.0 to 10.1.0 (#1517)" (#1535), closes

1.4.17 (2025-07-15) ​

Bug Fixes ​

  • build: fix paths and add more logs

1.4.16 (2025-07-15) ​

Version bump only.

1.4.15 (2025-07-15) ​

Version bump only.

1.4.14 (2025-07-14) ​

Version bump only.

1.4.13 (2025-07-14) ​

Version bump only.

1.4.12 (2025-07-11) ​

Version bump only.

1.4.11 (2025-07-11) ​

Version bump only.

1.4.10 (2025-07-11) ​

Version bump only.

1.4.9 (2025-07-11) ​

Version bump only.

1.4.8 (2025-07-11) ​

Version bump only.

1.4.7 (2025-07-11) ​

Features ​

  • assistant-ui: add base UI component library (avatar, badge, button, calendar, card, checkbox, dialog, dropdown, input, label, popover, select, separator, switch, table, tabs, textarea, tooltip)

1.4.6 (2025-07-10) ​

Version bump only.

1.4.5 (2025-07-10) ​

Version bump only.

1.4.4 (2025-07-09) ​

Reverts ​

  • packages: revert new packages migration (compatibility issues)

1.4.3 (2025-07-08) ​

Chores ​

  • build: improve createSkillMountRoot, add test mocks for background-react and pdf-parse

1.4.2 (2025-07-08) ​

Bug Fixes ​

  • ms-graph: fix pagination for long SharePoint lists

1.4.1 (2025-07-08) ​

Bug Fixes ​

  • ms-graph: fix getListItems API call

1.4.0 (2025-07-07) ​

Features ​

  • fillOptions: add additional configuration options to fillOptions

1.3.12 (2025-07-03) ​

Bug Fixes ​

  • utils: harden set utility against edge cases

1.3.11 (2025-07-03) ​

Bug Fixes ​

  • utils: improve mergeDeep security hardening

1.3.10 (2025-07-03) ​

Bug Fixes ​

  • utils: additional set utility fixes

1.3.9 (2025-07-03) ​

Bug Fixes ​

  • utils: harden set utility against prototype pollution

1.3.8 (2025-07-03) ​

Bug Fixes ​

  • utils: fix prototype pollution vulnerability in utility functions

1.3.7 (2025-07-03) ​

Bug Fixes ​

  • gh-actions: add missing permissions to GitHub Actions workflows

1.3.6 (2025-07-02) ​

Bug Fixes ​

  • offerMwFile: fix unsafe shell command construction (security)

1.3.5 (2025-07-02) ​

Version bump only.

1.3.4 (2025-07-02) ​

Bug Fixes ​

  • mergeDeep: fix prototype pollution vulnerability in deep merge

1.3.3 (2025-07-02) ​

Bug Fixes ​

  • utils: add tests and fixes for set utility

1.3.2 (2025-07-02) ​

Bug Fixes ​

  • waitForSelector: fix polynomial regex (ReDoS vulnerability)

1.3.1 (2025-06-30) ​

Version bump only.

1.3.0 (2025-06-24) ​

Features ​

  • test: add test coverage for SDK modules

1.2.1 (2025-06-17) ​

Bug Fixes ​

  • test: fix broken tests

1.2.0 (2025-06-17) ​

Features ​

  • ui: add overlay backdrop to showUI containers

1.1.8 (2025-06-13) ​

Version bump only.

1.1.7 (2025-06-13) ​

Version bump only.

1.1.6 (2025-06-12) ​

Bug Fixes ​

  • types: fix runJobs TypeScript type definitions

1.1.5 (2025-06-10) ​

Bug Fixes ​

  • dynamic-ui: fix dynamic field validity not updating when value changes

1.1.4 (2025-06-06) ​

Version bump only.

1.1.3 (2025-06-06) ​

Bug Fixes ​

  • wait: fix waitForText helper

1.1.2 (2025-06-03) ​

Bug Fixes ​

  • highlight: fix highlightSelector element highlighting

1.1.1 (2025-05-26) ​

Version bump only.

1.1.0 (2025-05-22) ​

Features ​

  • showUI: add showSuccessNotice for success message display

1.0.6 (2025-05-22) ​

Version bump only.

1.0.5 (2025-05-22) ​

Bug Fixes ​

  • build: fix skill build for MS Graph API integration

1.0.4 (2025-05-21) ​

Version bump only.

1.0.3 (2025-05-21) ​

Version bump only.

1.0.2 (2025-05-21) ​

Version bump only.

1.0.1 (2025-05-20) ​

Bug Fixes ​

  • build: fix Lerna build error

0.127.0 (2025-05-20) ​

Features ​

  • pages: add GoToOptions support to navigation helpers

0.126.11 (2025-05-19) ​

Version bump only.

0.126.10 (2025-05-19) ​

Bug Fixes ​

  • release: fix release script path

0.126.9 (2025-05-19) ​

Bug Fixes ​

  • release: add debug logging to release script

0.126.8 (2025-05-18) ​

Version bump only.

0.126.7 (2025-05-16) ​

Bug Fixes ​

  • release: fix release script path

0.126.6 (2025-05-16) ​

Version bump only.

0.126.5 (2025-05-16) ​

Bug Fixes ​

  • release: fix copy path in release script

0.126.4 (2025-05-15) ​

Version bump only.

0.126.3 (2025-05-15) ​

Bug Fixes ​

  • select: fix dropdown positioning

0.126.2 (2025-05-15) ​

Bug Fixes ​

  • export: export missing fileFromUrl function

0.126.1 (2025-05-14) ​

Bug Fixes ​

  • form: fix setText to accept component values

0.126.0 (2025-05-14) ​

Features ​

  • form: add support for dynamic field values

0.125.0 (2025-05-13) ​

Features ​

  • getFrame: add nested iframe selector support

0.124.5 (2025-05-09) ​

Bug Fixes ​

  • ci: fix Prettier configuration

0.124.4 (2025-05-05) ​

Bug Fixes ​

  • sheet: refactor Handsontable license key to use constants, remove dotenv import

0.124.3 (2025-05-05) ​

Bug Fixes ​

  • sheet: pass Handsontable license key through to Sheet component

0.124.2 (2025-05-02) ​

Version bump only.

0.124.1 (2025-05-02) ​

Bug Fixes ​

  • deps: update unzipper

0.124.0 (2025-05-02) ​

Features ​

  • dynamicUI: add file preview with Handsontable

0.123.6 (2025-04-30) ​

Version bump only.

0.123.5 (2025-04-30) ​

Version bump only.

0.123.4 (2025-04-30) ​

Bug Fixes ​

  • colorRow: fix coloring empty cells

0.123.3 (2025-04-30) ​

Version bump only.

0.123.2 (2025-04-30) ​

Chores ​

  • file: rename SdkFile to MwFile across codebase

0.123.1 (2025-04-30) ​

Bug Fixes ​

  • progress: fix progress injects again after navigation

0.123.0 (2025-04-29) ​

Features ​

  • highlight: use assistant or default color, make options optional

0.122.1 (2025-04-28) ​

Bug Fixes ​

  • pdfExtractRanges: fix out of range pages

0.122.0 (2025-04-28) ​

Features ​

  • dynamic-ui: add required fields validity support

0.121.3 (2025-04-28) ​

Version bump only.

0.121.2 (2025-04-28) ​

Bug Fixes ​

  • file: update file reader

0.121.1 (2025-04-25) ​

Bug Fixes ​

  • ui: fix persisting state

0.121.0 (2025-04-24) ​

Features ​

  • dynamic-ui: update uploadFile to support MwFile

0.120.2 (2025-04-24) ​

Bug Fixes ​

  • file: relax overly strict file path sanitization

0.120.1 (2025-04-23) ​

Bug Fixes ​

  • highlights: fix removeAllHighlights breaking when highlight is missing

0.120.0 (2025-04-23) ​

Features ​

  • file: add text content extraction from docx and pdf

0.119.3 (2025-04-22) ​

Bug Fixes ​

  • excel: expose cell get/set helpers

0.119.2 (2025-04-22) ​

Features ​

  • excel: export getWorksheet and 14 new excel utility functions

0.119.1 (2025-04-22) ​

Bug Fixes ​

  • build: apply security patches

0.119.0 (2025-04-22) ​

Features ​

  • dynamic-ui: add toggle field

0.118.0 (2025-04-22) ​

Features ​

  • dynamic-ui: add progress item component

0.117.1 (2025-04-16) ​

Bug Fixes ​

  • ui: add gap to vertical and horizontal layouts

0.117.0 (2025-04-16) ​

Features ​

  • dynamic-ui: add documentation for new containers

0.116.2 (2025-04-16) ​

Features ​

  • UI: add splitView block component

0.116.1 (2025-04-16) ​

Features ​

  • UI: add state management and resolve logic to NavigationBar

0.116.0 (2025-04-15) ​

Features ​

  • upload-file: add file upload to dynamic UI

0.115.0 (2025-04-15) ​

Features ​

  • ui: add more dynamic UI containers

0.114.0 (2025-04-15) ​

Features ​

  • dynamic-ui: add documentation to dynamic components

0.113.0 (2025-04-10) ​

Features ​

  • statuses: move statuses to assistant design system and add to dynamic UI

Breaking Changes ​

  • statuses: statuses component path changed β€” now imported from the assistant design system

0.112.0 (2025-04-08) ​

Features ​

  • outlook: add more Outlook helper functions

0.111.16 (2025-04-08) ​

Version bump only.

0.111.15 (2025-04-08) ​

Bug Fixes ​

  • themes: fix themes bug in showTabProgress

0.111.14 (2025-03-31) ​

Version bump only.

0.111.13 (2025-03-28) ​

Bug Fixes ​

  • excel: add hide sheet by name, index, or regex

0.111.12 (2025-03-27) ​

Bug Fixes ​

  • excel: implement workbookToSdkFile

0.111.11 (2025-03-27) ​

Bug Fixes ​

  • Content: fix Content flex issue

0.111.10 (2025-03-24) ​

Bug Fixes ​

  • SelectBase: fix default value not being selected in showForm select

0.111.9 (2025-03-24) ​

Bug Fixes ​

  • file: expose fileFromDrive

0.111.8 (2025-03-24) ​

Version bump only.

0.111.7 (2025-03-24) ​

Bug Fixes ​

  • xpath: handle negative xpath case

0.111.6 (2025-03-18) ​

Bug Fixes ​

  • showFileUpload: fix skill not resolving when validate is not provided

0.111.5 (2025-03-18) ​

Version bump only.

0.111.4 (2025-03-17) ​

Bug Fixes ​

  • bubble: remove extra space in bubble header and style scroll

0.111.3 (2025-03-14) ​

Bug Fixes ​

  • fileDownload: fix zip files being downloaded corrupt

0.111.2 (2025-03-13) ​

Bug Fixes ​

  • theme: fix themes for older assistant versions

0.111.1 (2025-03-13) ​

Bug Fixes ​

  • colorRow: fix coloring every row in every sheet

0.111.0 (2025-03-13) ​

Features ​

  • UI: dynamic UI proof of concept

0.110.9 (2025-03-13) ​

Bug Fixes ​

  • openFile: handle case when file does not exist

0.110.8 (2025-03-13) ​

Chores ​

  • ai: migrate SdkFile to MwFile in askFile and ocr modules

0.110.7 (2025-03-12) ​

Features ​

  • form: add dynamic form documentation and examples

0.110.6 (2025-03-12) ​

Bug Fixes ​

  • getFrame: fix getFrame theme

0.110.5 (2025-03-12) ​

Bug Fixes ​

  • theme: remove scroll bar

0.110.4 (2025-03-11) ​

Version bump only.

0.110.3 (2025-03-11) ​

Bug Fixes ​

  • page: fix reload

0.110.2 (2025-03-06) ​

Version bump only.

0.110.1 (2025-03-06) ​

Bug Fixes ​

  • suggestionText: fix suggestion text

0.110.0 (2025-03-05) ​

Features ​

  • package: add pdfjs dependency

0.109.4 (2025-03-05) ​

Bug Fixes ​

  • segmented: fix SegmentedField text color styling

0.109.3 (2025-03-05) ​

Bug Fixes ​

  • segmented: fix segmented checked state background color

0.109.2 (2025-03-05) ​

Version bump only.

0.109.1 (2025-03-05) ​

Features ​

  • file: add allowedTypes validation to upload components

0.109.0 (2025-03-05) ​

Features ​

  • pdf: implement mergePdfs and downloadPdf

0.108.1 (2025-03-05) ​

Bug Fixes ​

  • file: export showUploadFile

0.108.0 (2025-03-04) ​

Features ​

  • highlight: add show highlight feature

0.107.0 (2025-03-04) ​

Features ​

  • page: add navigate helper

0.106.1 (2025-03-04) ​

Version bump only.

0.106.0 (2025-03-04) ​

Features ​

  • build: minify SDK size β€” part 2 (content)

0.105.3 (2025-03-03) ​

Version bump only.

0.105.2 (2025-03-03) ​

Bug Fixes ​

  • showSuccessNotice: fix event name sent by ctx.telemetry.sendEvent

0.105.1 (2025-03-03) ​

Bug Fixes ​

  • showForm: fix date input not taking correct width

0.105.0 (2025-03-03) ​

Features ​

  • theme: implement organization theme

0.104.0 (2025-03-03) ​

Features ​

  • build: minify SDK size β€” part 1 (background)

0.103.4 (2025-03-03) ​

Version bump only.

0.103.3 (2025-02-28) ​

Bug Fixes ​

  • ai: update AI secrets

0.103.2 (2025-02-28) ​

Version bump only.

0.103.1 (2025-02-28) ​

Bug Fixes ​

  • select: fix multiple select

0.103.0 (2025-02-28) ​

Features ​

  • AI: add askFile function

0.102.1 (2025-02-27) ​

Version bump only.

0.102.0 (2025-02-26) ​

Features ​

  • ai: add basic OCR helper

0.101.0 (2025-02-26) ​

Features ​

  • ai: add standard AI helpers

0.100.0 (2025-02-26) ​

Features ​

  • file: add PDF pages extraction helpers

0.99.0 (2025-02-25) ​

Features ​

  • file: add file and folder manipulation helpers

0.98.2 (2025-02-24) ​

Bug Fixes ​

  • context: make assistant required in Context interface, update mock context

0.98.1 (2025-02-24) ​

Version bump only.

0.98.0 (2025-02-24) ​

Features ​

  • file: add zip support

0.97.8 (2025-02-21) ​

Version bump only.

0.97.7 (2025-02-21) ​

Bug Fixes ​

  • success: update colors in light mode

0.97.6 (2025-02-20) ​

Version bump only.

0.97.5 (2025-02-20) ​

Chores ​

  • success: extend success notice props

0.97.4 (2025-02-20) ​

Bug Fixes ​

  • notice: remove unused import in Thumbs component

0.97.3 (2025-02-20) ​

Version bump only.

0.97.2 (2025-02-20) ​

Features ​

  • notice: redesign success bubble with feedback UI

0.97.1 (2025-02-19) ​

Version bump only.

0.97.0 (2025-02-17) ​

Features ​

  • sanitizeFilePath: handle spaces in path and add tests

0.96.7 (2025-02-17) ​

Bug Fixes ​

  • markdown: install and use remark-breaks

0.96.6 (2025-02-17) ​

Version bump only.

0.96.5 (2025-02-17) ​

Bug Fixes ​

  • select: fix select returning default value even if default was cleared

0.96.4 (2025-02-17) ​

Features ​

  • checkbox: add checkAll position support (top/bottom)

0.96.3 (2025-02-11) ​

Version bump only.

0.96.2 (2025-02-10) ​

Chores ​

  • checkbox: add checkAll position type to form fields

0.96.1 (2025-01-31) ​

Version bump only.

0.96.0 (2025-01-31) ​

Features ​

  • sharepoint: add user authentication for SharePoint

0.95.5 (2025-01-30) ​

Bug Fixes ​

  • utils: fix $xEval to use element.evaluate instead of page.evaluate

0.95.4 (2025-01-30) ​

Bug Fixes ​

  • select: fix position of select dropdown

0.95.3 (2025-01-28) ​

Bug Fixes ​

  • license: fix license checker

0.95.2 (2025-01-23) ​

Bug Fixes ​

  • storybook: remove unused story

0.95.1 (2025-01-22) ​

Version bump only.

0.95.0 (2025-01-20) ​

Features ​

  • sharepoint: add getFileByPath function

0.94.5 (2025-01-15) ​

Version bump only.

0.94.4 (2025-01-15) ​

Features ​

  • pages: add createMinimizedWindow extension API support

0.94.3 (2025-01-10) ​

Bug Fixes ​

  • README: clean up test pack instructions

0.94.2 (2025-01-10) ​

Bug Fixes ​

  • runJobs: fix background window concurrency

0.94.1 (2025-01-10) ​

Bug Fixes ​

  • markdown: clean up callouts

0.94.0 (2025-01-10) ​

Features ​

  • sharepoint: add SharePoint Graph API integration

0.93.3 (2025-01-10) ​

Chores ​

  • tests: relocate test files to colocated paths

0.93.2 (2024-12-16) ​

Version bump only.

0.93.1 (2024-12-16) ​

Version bump only.

0.93.0 (2024-12-16) ​

Features ​

  • utils: add getFormattedDate helper

0.92.6 (2024-12-16) ​

Bug Fixes ​

  • form: fix masked input validation

0.92.5 (2024-12-16) ​

Version bump only.

0.92.4 (2024-12-12) ​

Version bump only.

0.92.3 (2024-12-12) ​

Bug Fixes ​

  • checkbox: re-export checkboxField

0.92.2 (2024-12-11) ​

Bug Fixes ​

  • fields: consider the invalid prop in fields

0.92.1 (2024-12-11) ​

Bug Fixes ​

  • select: fix select placeholder

0.92.0 (2024-12-11) ​

Features ​

  • file: update file validation flow

0.91.4 (2024-12-10) ​

Version bump only.

0.91.3 (2024-12-10) ​

Version bump only.

0.91.2 (2024-12-10) ​

Version bump only.

0.91.1 (2024-12-10) ​

Version bump only.

0.91.0 (2024-12-09) ​

Features ​

  • watchers: move watcher tests to separate files

0.90.1 (2024-12-09) ​

Version bump only.

0.90.0 (2024-12-06) ​

Features ​

  • showForm: resolve showForm on Enter key press

0.89.0 (2024-12-04) ​

Features ​

  • file: pre-validate file size

0.88.0 (2024-12-03) ​

Features ​

  • uniqueId: use crypto instead of incremented ID

0.87.5 (2024-12-02) ​

Version bump only.

0.87.4 (2024-11-28) ​

Bug Fixes ​

  • build: fix build issue with test imports

0.87.3 (2024-11-28) ​

Features ​

  • form: add style prop to showForm
  • modules: remove base64 module

0.87.2 (2024-11-28) ​

Version bump only.

0.87.1 (2024-11-27) ​

Chores ​

  • progress: reorganize progress folder and add tests

0.87.0 (2024-11-26) ​

Features ​

  • release: send Slack message when SDK build fails

0.86.0 (2024-11-26) ​

Chores ​

  • tests: extract each helper and test into separate files

0.85.0 (2024-11-25) ​

Features ​

  • select: add option select width

0.84.0 (2024-11-21) ​

Features ​

  • race: add raceSelectors and racePromises helper functions

0.83.3 (2024-11-20) ​

Version bump only.

0.83.2 (2024-11-20) ​

Version bump only.

0.83.1 (2024-11-20) ​

Bug Fixes ​

  • waiters: fix waitForSelector with hidden elements

0.83.0 (2024-11-19) ​

Features ​

  • showForm: update showForm documentation

0.82.10 (2024-11-19) ​

Bug Fixes ​

  • build: fix puppeteer error

0.82.9 (2024-11-19) ​

Version bump only.

0.82.8 (2024-11-19) ​

Bug Fixes ​

  • test: fix test logs

0.82.7 (2024-11-19) ​

Bug Fixes ​

  • waiters: fix waitForSelector

0.82.6 (2024-11-13) ​

Bug Fixes ​

  • file: fix file upload text

0.82.5 (2024-11-05) ​

Bug Fixes ​

  • fill: fix fill not working with xpath

0.82.4 (2024-10-30) ​

Bug Fixes ​

  • form: add checked prop to radio list items

0.82.3 (2024-10-30) ​

Bug Fixes ​

  • file: fix uploading corrupted files

0.82.2 (2024-10-16) ​

Bug Fixes ​

  • uploadFile: remove extra overlay in showUploadFile

0.82.1 (2024-10-16) ​

Version bump only.

0.82.0 (2024-10-14) ​

Features ​

  • list-item: add extra prop to some showForm types

0.81.5 (2024-10-14) ​

Bug Fixes ​

  • build: fix build tests

0.81.4 (2024-10-10) ​

Bug Fixes ​

  • form: sonarcloud form

0.81.3 (2024-10-10) ​

Bug Fixes ​

  • tabProgress: fix removing overlay

0.81.2 (2024-10-09) ​

Version bump only.

0.81.1 (2024-10-09) ​

Bug Fixes ​

  • file: fix file upload

0.81.0 (2024-10-09) ​

Features ​

  • bubble: specify position of the bubble

0.80.2 (2024-10-09) ​

Bug Fixes ​

  • form: rollback form sonarcloud

0.80.1 (2024-10-09) ​

Bug Fixes ​

  • formItem: fix formItem error

0.80.0 (2024-10-09) ​

Features ​

  • progressList: add warning status to progresslist

0.79.1 (2024-10-07) ​

Bug Fixes ​

  • maintainability: sonarcloud

0.79.0 (2024-10-07) ​

Features ​

  • markdown: add support for tables in markdown

0.78.1 (2024-10-04) ​

Bug Fixes ​

  • maintainability: sonarcloud

0.78.0 (2024-10-02) ​

Features ​

  • sharepoint: add move, delete and copy function to sharpoint helper

0.77.2 (2024-10-02) ​

Bug Fixes ​

  • maintainability: sonarcloud

0.77.1 (2024-09-27) ​

Bug Fixes ​

  • reliability: sonarcloud cleanup medium reliability

0.77.0 (2024-09-27) ​

Features ​

  • utils: get timestamp

0.76.0 (2024-09-26) ​

Features ​

  • sharepoint: fix list files URL

0.75.17 (2024-09-26) ​

Version bump only.

0.75.16 (2024-09-26) ​

Version bump only.

0.75.15 (2024-09-25) ​

Bug Fixes ​

  • theme: fix theme documentation

0.75.14 (2024-09-25) ​

Bug Fixes ​

  • file: divide big files to chunks while uploading

0.75.13 (2024-09-24) ​

Bug Fixes ​

  • themes: update the initialize theme function

0.75.12 (2024-09-24) ​

Version bump only.

0.75.11 (2024-09-19) ​

Version bump only.

0.75.10 (2024-09-19) ​

Bug Fixes ​

  • deps: remove npm-watch

0.75.9 (2024-09-19) ​

Bug Fixes ​

  • deps: patch semver

0.75.8 (2024-09-19) ​

Version bump only.

0.75.7 (2024-09-19) ​

Bug Fixes ​

  • deps: patch ws

0.75.6 (2024-09-19) ​

Bug Fixes ​

  • storybook: storybook upgrade

0.75.5 (2024-09-19) ​

Bug Fixes ​

  • axios: axios update

0.75.4 (2024-09-18) ​

Bug Fixes ​

  • lodash: remove lodash-es

0.75.3 (2024-09-10) ​

Bug Fixes ​

  • selectField: fix select value overflow cut

0.75.2 (2024-08-14) ​

Bug Fixes ​

  • import: fix errors about lodash

0.75.1 (2024-08-08) ​

Bug Fixes ​

  • showNotice: fix subtitle color in dark theme

0.75.0 (2024-07-30) ​

Features ​

  • showForm: deprecate initialData in showForm

0.74.0 (2024-07-30) ​

Features ​

  • toast: update toast component docs

0.73.1 (2024-07-30) ​

Version bump only.

0.73.0 (2024-07-25) ​

Features ​

  • showUploadFile: update showUploadFile docs

0.72.7 (2024-07-23) ​

Bug Fixes ​

  • form: fix input mask

0.72.6 (2024-07-19) ​

Version bump only.

0.72.5 (2024-07-19) ​

Bug Fixes ​

  • select: fix select component storybook page

0.72.4 (2024-07-11) ​

Bug Fixes ​

  • form: fix select styles

0.72.1 (2024-07-10) ​

Version bump only.

0.72.0 (2024-07-09) ​

Features ​

  • page: open multiple tabs in the same window in bg ctx

0.71.13 (2024-07-03) ​

Bug Fixes ​

  • icons: restore play icon

0.71.12 (2024-07-03) ​

Bug Fixes ​

  • release: fix slack msg

0.71.11 (2024-07-03) ​

Version bump only.

0.71.10 (2024-07-03) ​

Bug Fixes ​

  • bubble: fix drag and drop on google pages

0.71.9 (2024-07-03) ​

Bug Fixes ​

  • release: manual release

0.71.8 (2024-07-03) ​

Bug Fixes ​

  • pages: await browser targets

0.71.7 (2024-07-01) ​

Bug Fixes ​

  • form: styled components import

0.71.6 (2024-07-01) ​

Bug Fixes ​

  • navigation: fix navigation and press conditions

0.71.5 (2024-06-26) ​

Bug Fixes ​

  • release: slack notification

0.71.4 (2024-06-26) ​

Bug Fixes ​

  • release: auto-release alpha

0.71.3 (2024-06-25) ​

Bug Fixes ​

  • test: mock assistant API

0.71.2 (2024-06-25) ​

Bug Fixes ​

  • themes: update get file path

0.71.1 (2024-06-24) ​

Bug Fixes ​

  • theme: fix theme events

0.71.0 (2024-06-24) ​

Features ​

  • callout: left align text in callout

0.70.0 (2024-06-21) ​

Features ​

  • form: make groups collapsable optionally

0.69.4 (2024-06-13) ​

Bug Fixes ​

  • designer: update skillcompletition

0.69.3 (2024-06-11) ​

Version bump only.

0.69.2 (2024-06-11) ​

Bug Fixes ​

  • select: fix menu width

0.69.1 (2024-06-10) ​

Bug Fixes ​

  • successNotice: add thumbs feedback comment

0.69.0 (2024-06-10) ​

Features ​

  • successNotice: add thumbs feedback comment

0.68.4 (2024-06-10) ​

Bug Fixes ​

  • docs: rm select from docs

0.68.3 (2024-06-10) ​

Bug Fixes ​

  • release: rm commit msg

0.68.2 (2024-06-10) ​

Bug Fixes ​

  • release: commit msg

0.68.1 (2024-06-10) ​

Bug Fixes ​

  • release: test alpha release, closes

0.68.0 (2024-06-07) ​

Features ​

  • release: add manual trigger and channel support to release workflow

0.67.0 (2024-06-07) ​

Features ​

  • suggestionBox: add suggestion box to the success bubble

0.66.0 (2024-06-07) ​

Features ​

  • xpath: refactor core modules to use XPath selectors as primary strategy

0.65.5 (2024-06-06) ​

Bug Fixes ​

  • form: fix build

0.65.4 (2024-06-06) ​

Bug Fixes ​

  • form: build fix

0.65.3 (2024-06-06) ​

Version bump only.

0.65.2 (2024-06-04) ​

Bug Fixes ​

  • form: fix form validation for regex and custom

0.65.1 (2024-06-03) ​

Bug Fixes ​

  • input: fix warnings/errors for multiple and defaultValue

0.65.0 (2024-05-31) ​

Features ​

  • icons: readd some missing icons

0.64.0 (2024-05-31) ​

Features ​

  • ads: add white overlay option

0.63.0 (2024-05-31) ​

Features ​

  • icons: remove unused icons

0.62.0 (2024-05-30) ​

Features ​

  • sdk: rename watcher module to wait, add getText, refactor form and DOM modules

0.61.7 (2024-05-29) ​

Bug Fixes ​

  • build: update build-branch workflow to be manual

0.61.6 (2024-05-29) ​

Bug Fixes ​

  • vertical: fix broken buttons space

0.61.4 (2024-05-29) ​

Bug Fixes ​

  • markdown: fix opening link in a new tab in info and warn

0.61.3 (2024-05-29) ​

Bug Fixes ​

  • select: update styles of select

0.61.2 (2024-05-28) ​

Version bump only.

0.61.1 (2024-05-28) ​

Bug Fixes ​

  • ads: bubble position update

0.61.0 (2024-05-28) ​

Features ​

  • sdk: add assistant type to Context

0.60.4 (2024-05-28) ​

Bug Fixes ​

  • release: lerna, version, commit

0.53.1 (2024-04-29) ​

Version bump only.

0.53.0 (2024-04-29) ​

Features ​

  • architecture: cut the size of the SDK and migrate to ES6

Bug Fixes ​

  • form: add overlay option to showForm

0.52.2 (2024-04-17) ​

Bug Fixes ​

  • form: add overlay option to showForm

0.52.1 (2024-04-05) ​

Bug Fixes ​

  • form: if select is at the bottom of showForm, it will not show all items

0.52.0 (2024-03-25) ​

Features ​

  • check-licenses: fix file drive

0.51.1 (2024-03-20) ​

Version bump only.

0.51.0 (2024-03-20) ​

Features ​

  • check-licenses: add artifact

0.50.7 (2024-03-19) ​

Version bump only.

0.50.6 (2024-03-19) ​

Version bump only.

0.50.5 (2024-03-19) ​

Version bump only.

0.50.4 (2024-03-19) ​

Bug Fixes ​

  • form: transformation doesn’t work

0.50.3 (2024-03-18) ​

Bug Fixes ​

  • bubble: fix section's container radius

0.50.2 (2024-03-18) ​

Bug Fixes ​

  • showForm: fix segmented type issues

0.50.1 (2024-03-14) ​

Version bump only.

0.50.0 (2024-03-12) ​

Features ​

  • splitview: add split view component

0.49.3 (2024-03-12) ​

Version bump only.

0.49.2 (2024-03-12) ​

Reverts ​

  • Revert "fix(form): #669 fix default values in form (#676)" (#692), closes

0.49.1 (2024-03-11) ​

Version bump only.

0.49.0 (2024-03-11) ​

Features ​

  • tiff: tiff viewer

0.48.4 (2024-03-11) ​

Version bump only.

0.48.3 (2024-03-11) ​

Version bump only.

0.48.2 (2024-03-11) ​

Version bump only.

0.48.1 (2024-03-11) ​

Bug Fixes ​

  • form: fix default values in form

0.48.0 (2024-03-06) ​

Features ​

  • bubble: remove overflow hidden from Bubble

0.47.14 (2024-03-05) ​

Chores ​

  • deps: update node-fetch

0.47.13 (2024-03-05) ​

Chores ​

  • deps: update Prettier and reformat source

0.47.12 (2024-03-05) ​

Version bump only.

0.47.11 (2024-03-05) ​

Features ​

  • form: add date range component

0.47.10 (2024-03-05) ​

Version bump only.

0.47.9 (2024-03-01) ​

Features ​

  • xpath: rename xpath methods for consistency

0.47.8 (2024-02-20) ​

Reverts ​

  • Revert "Fix/643 showform console errors (#645)" (#656), closes

0.47.7 (2024-02-20) ​

Bug Fixes ​

  • form: add option to hide group in form

0.47.6 (2024-02-16) ​

Version bump only.

0.47.5 (2024-02-12) ​

Version bump only.

0.47.4 (2024-02-05) ​

Bug Fixes ​

  • select: fix select not opening on click, add custom items to dropdown

0.47.3 (2024-01-29) ​

Bug Fixes ​

  • deps: fix vulnerabilities

0.47.2 (2024-01-24) ​

Version bump only.

0.47.1 (2024-01-05) ​

Bug Fixes ​

  • select: fix select not changing state

0.47.0 (2024-01-04) ​

Features ​

  • form: alphabetic/alphanumeric validation

0.46.1 (2024-01-02) ​

Version bump only.

0.46.0 (2023-12-20) ​

Features ​

  • analytics: send skill success event

0.45.0 (2023-12-20) ​

Features ​

  • debug-logs: add [SDK] to console debug

0.44.0 (2023-12-18) ​

Features ​

  • form: input mask

0.43.5 (2023-12-18) ​

Bug Fixes ​

  • form: fix validation priority

0.43.4 (2023-12-18) ​

Bug Fixes ​

  • checkboxlist: implement min/max/range selection validation

0.43.3 (2023-12-18) ​

Bug Fixes ​

  • form: fix StringFormat export

0.43.2 (2023-12-13) ​

Bug Fixes ​

  • skill-build: fix skill build

0.43.1 (2023-12-13) ​

Version bump only.

0.43.0 (2023-12-12) ​

Features ​

  • form: transform fields on blur

0.42.2 (2023-12-11) ​

Version bump only.

0.42.1 (2023-12-11) ​

Version bump only.

0.42.0 (2023-12-11) ​

Features ​

  • skill: fix webpack build

0.41.2 (2023-12-11) ​

Version bump only.

0.41.1 (2023-12-11) ​

Version bump only.

0.41.0 (2023-12-11) ​

Features ​

  • release: add multi select

0.40.4 (2023-12-11) ​

Version bump only.

0.40.3 (2023-12-06) ​

Bug Fixes ​

  • form: fix checked in checknoxList

0.40.2 (2023-12-05) ​

Bug Fixes ​

  • release: fix undefined attributes

0.40.1 (2023-12-05) ​

Bug Fixes ​

  • release: fix identifier

0.40.0 (2023-12-05) ​

Features ​

  • release: add contextual bubble

0.39.2 (2023-12-04) ​

Bug Fixes ​

  • form: fix validation for min/max | lessThan/moreThan

0.39.1 (2023-11-30) ​

Bug Fixes ​

  • release: clean up

0.39.0 (2023-11-30) ​

Features ​

  • release: update highlight to match themes

0.38.0 (2023-11-30) ​

Features ​

  • theme: add rainbow theme

0.37.1 (2023-11-28) ​

Bug Fixes ​

  • autosuggest: fix select autosuggest

0.37.0 (2023-11-27) ​

Features ​

  • input: add color and onClick to prefix/suffix

0.36.5 (2023-11-22) ​

Bug Fixes ​

  • ads: remove old widgets from ads

0.36.4 (2023-11-21) ​

Version bump only.

0.36.3 (2023-11-20) ​

Version bump only.

0.36.2 (2023-11-20) ​

Version bump only.

0.36.1 (2023-11-20) ​

Version bump only.

0.36.0 (2023-11-20) ​

Features ​

  • page: get element from nested shadow root

0.35.3 (2023-11-17) ​

Version bump only.

0.35.2 (2023-11-10) ​

Bug Fixes ​

  • sharepoint: throw error when status is not ok

0.35.1 (2023-11-07) ​

Version bump only.

0.35.0 (2023-11-07) ​

Features ​

  • yalc: add yalc instructions

0.34.4 (2023-11-03) ​

Version bump only.

0.34.3 (2023-10-30) ​

Bug Fixes ​

  • exports: fix skill build

0.34.2 (2023-10-26) ​

Bug Fixes ​

  • select: useRef for FormSelect

0.34.1 (2023-10-25) ​

Version bump only.

0.34.0 (2023-10-24) ​

Features ​

  • form: add support for dynamic components

0.33.38 (2023-10-24) ​

Bug Fixes ​

  • form: fix nan validation message

0.33.37 (2023-10-23) ​

Bug Fixes ​

  • form: do not validate hidden or disabled buttons

0.33.36 (2023-10-20) ​

Bug Fixes ​

  • form: fix showForm text

0.33.35 (2023-10-19) ​

Bug Fixes ​

  • scripts: downgrade background-react to work with scripts v1

0.33.34 (2023-10-18) ​

Bug Fixes ​

  • release: revert pr 502

0.33.33 (2023-10-17) ​

Bug Fixes ​

  • yarnlock: regenerate yarn lock

0.33.32 (2023-10-17) ​

Version bump only.

0.33.31 (2023-10-17) ​

Bug Fixes ​

  • release: remove text border

0.33.30 (2023-10-13) ​

Version bump only.

0.33.29 (2023-10-12) ​

Version bump only.

0.33.28 (2023-10-12) ​

Version bump only.

0.33.27 (2023-10-11) ​

Bug Fixes ​

  • file: open folder fix

0.33.26 (2023-10-05) ​

Bug Fixes ​

  • form: fix group title and description

0.33.25 (2023-10-04) ​

Version bump only.

0.33.24 (2023-10-04) ​

Version bump only.

0.33.23 (2023-10-04) ​

Version bump only.

0.33.22 (2023-10-04) ​

Version bump only.

0.33.21 (2023-10-04) ​

Version bump only.

0.33.20 (2023-10-04) ​

Version bump only.

0.33.19 (2023-10-04) ​

Version bump only.

0.33.18 (2023-10-04) ​

Version bump only.

0.33.17 (2023-09-28) ​

Version bump only.

0.33.16 (2023-09-28) ​

Version bump only.

0.33.15 (2023-09-28) ​

Version bump only.

0.33.14 (2023-09-28) ​

Bug Fixes ​

  • form: disable only submit button

0.33.13 (2023-09-28) ​

Version bump only.

0.33.12 (2023-09-27) ​

Version bump only.

0.33.11 (2023-09-27) ​

Version bump only.

0.33.10 (2023-09-27) ​

Version bump only.

0.33.9 (2023-09-27) ​

Version bump only.

0.33.8 (2023-09-27) ​

Version bump only.

0.33.7 (2023-09-26) ​

Version bump only.

0.33.6 (2023-09-26) ​

Version bump only.

0.33.5 (2023-09-26) ​

Chores ​

  • tests: add file operation tests

0.33.4 (2023-09-26) ​

Features ​

  • waiters: add waitForXPathSelector helper

0.33.3 (2023-09-25) ​

Chores ​

  • tests: add clear and type tests

0.33.2 (2023-09-25) ​

Chores ​

  • tests: add domClick tests

0.33.1 (2023-09-25) ​

Version bump only.

0.33.0 (2023-09-25) ​

Features ​

  • automation: draftEmail

0.32.3 (2023-09-22) ​

Version bump only.

0.32.2 (2023-09-22) ​

Version bump only.

0.32.1 (2023-09-21) ​

Version bump only.

0.32.0 (2023-09-20) ​

Features ​

  • tests: global config for mocks

0.31.21 (2023-09-20) ​

Version bump only.

0.31.20 (2023-09-20) ​

Bug Fixes ​

  • form: clean values inside form after render

0.31.19 (2023-09-20) ​

Version bump only.

0.31.18 (2023-09-20) ​

Version bump only.

0.31.17 (2023-09-20) ​

Features ​

  • form: update conditional fields
  • waiters: add wait and waitForSelector unit tests

0.31.16 (2023-09-20) ​

Version bump only.

0.31.15 (2023-09-20) ​

Version bump only.

0.31.14 (2023-09-20) ​

Version bump only.

0.31.13 (2023-09-20) ​

Version bump only.

0.31.12 (2023-09-20) ​

Version bump only.

0.31.11 (2023-09-18) ​

Bug Fixes ​

  • release: fix highlighter position

0.31.10 (2023-09-18) ​

Version bump only.

0.31.9 (2023-09-15) ​

Bug Fixes ​

  • highlight: fix highlights position

0.31.8 (2023-09-13) ​

Version bump only.

0.31.7 (2023-09-13) ​

Version bump only.

0.31.6 (2023-09-13) ​

Version bump only.

0.31.5 (2023-09-08) ​

Bug Fixes ​

  • config: fix build watcher

0.31.4 (2023-09-07) ​

Bug Fixes ​

  • storage: tmp remove storage

0.31.3 (2023-09-07) ​

Version bump only.

0.31.2 (2023-09-06) ​

Bug Fixes ​

  • storage: fix path

0.31.1 (2023-09-06) ​

Bug Fixes ​

  • tests: fix local tests

0.31.0 (2023-09-06) ​

Features ​

  • sdk: retry behaviour for mouse and keyboard helpers, closes

0.30.5 (2023-09-05) ​

Version bump only.

0.30.4 (2023-09-05) ​

Version bump only.

0.30.3 (2023-09-05) ​

Version bump only.

0.30.2 (2023-09-05) ​

Version bump only.

0.30.1 (2023-09-05) ​

Version bump only.

0.30.0 (2023-09-05) ​

Features ​

  • storage: storage package

0.29.3 (2023-09-05) ​

Version bump only.

0.29.2 (2023-08-31) ​

Version bump only.

0.29.1 (2023-08-29) ​

Bug Fixes ​

  • release: fix release

0.29.0 (2023-08-25) ​

Features ​

  • automation: add mouseEvent hover helper

Chores ​

  • deps: bump yup from 0.32.11 to 1.2.0
  • deps: bump react from 17.0.2 to 18.2.0

0.28.13 (2023-08-29) ​

Version bump only.

0.28.12 (2023-08-29) ​

Version bump only.

0.28.11 (2023-08-29) ​

Version bump only.

0.28.10 (2023-08-29) ​

Version bump only.

0.28.9 (2023-08-28) ​

Bug Fixes ​

  • file: fix UI

0.28.8 (2023-08-25) ​

Version bump only.

0.28.7 (2023-08-25) ​

Bug Fixes ​

  • npm: fix dependencies

0.28.6 (2023-08-25) ​

Bug Fixes ​

  • themes: fix path

0.28.5 (2023-08-25) ​

Version bump only.

0.28.4 (2023-08-25) ​

Version bump only.

0.28.3 (2023-08-25) ​

Bug Fixes ​

  • release: fix lerna

0.28.2 (2023-08-25) ​

Bug Fixes ​

  • release: fix lerna

0.28.1 (2023-08-25) ​

Version bump only.

Matterway Assistant SDK Documentation