You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maka.apache.org by "dependabot[bot] (via GitHub)" <gi...@apache.org> on 2026/08/31 18:56:24 UTC

[PR] chore(deps): bump the minor-and-patch group across 1 directory with 24 updates [maka]

dependabot[bot] opened a new pull request, #4401:
URL: https://github.com/apache/maka/pull/4401

   Bumps the minor-and-patch group with 24 updates in the / directory:
   
   | Package | From | To |
   | --- | --- | --- |
   | [@ai-sdk/provider-utils](https://github.com/vercel/ai/tree/HEAD/packages/provider-utils) | `5.0.28` | `5.0.33` |
   | [@astryxdesign/cli](https://github.com/facebook/astryx/tree/HEAD/packages/cli) | `0.4.5` | `0.5.0` |
   | [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.5.9` | `2.5.11` |
   | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.2.0` | `26.4.0` |
   | [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) | `6.32.2` | `6.33.0` |
   | [intl-messageformat](https://github.com/formatjs/formatjs) | `11.2.12` | `11.2.14` |
   | [@ai-sdk/anthropic](https://github.com/vercel/ai/tree/HEAD/packages/anthropic) | `4.0.40` | `4.0.45` |
   | [@ai-sdk/code-mode](https://github.com/vercel/ai/tree/HEAD/packages/code-mode) | `1.0.27` | `1.0.41` |
   | [@ai-sdk/cohere](https://github.com/vercel/ai/tree/HEAD/packages/cohere) | `4.0.28` | `4.0.34` |
   | [@ai-sdk/google](https://github.com/vercel/ai/tree/HEAD/packages/google) | `4.0.47` | `4.0.57` |
   | [@ai-sdk/open-responses](https://github.com/vercel/ai/tree/HEAD/packages/open-responses) | `2.0.34` | `2.0.35` |
   | [@ai-sdk/openai](https://github.com/vercel/ai/tree/HEAD/packages/openai) | `4.0.44` | `4.0.51` |
   | [@ai-sdk/openai-compatible](https://github.com/vercel/ai/tree/HEAD/packages/openai-compatible) | `3.0.32` | `3.0.40` |
   | [@slack/socket-mode](https://github.com/slackapi/node-slack-sdk) | `3.0.0` | `3.0.1` |
   | [@slack/web-api](https://github.com/slackapi/node-slack-sdk) | `8.0.0` | `8.1.1` |
   | [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `7.0.70` | `7.0.84` |
   | [zod](https://github.com/colinhacks/zod) | `4.4.3` | `4.5.1` |
   | [@earendil-works/pi-tui](https://github.com/earendil-works/pi/tree/HEAD/packages/tui) | `0.84.2` | `0.84.3` |
   | [katex](https://github.com/KaTeX/KaTeX) | `0.16.47` | `0.18.4` |
   | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.33.0` | `1.35.0` |
   | [mermaid](https://github.com/mermaid-js/mermaid) | `11.17.0` | `11.17.2` |
   | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.4` | `19.2.5` |
   | [@jackwener/opencli](https://github.com/jackwener/opencli) | `1.8.6` | `1.8.7` |
   | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.1.0` | `6.1.1` |
   
   
   Updates `@ai-sdk/provider-utils` from 5.0.28 to 5.0.33
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a href="https://github.com/vercel/ai/blob/main/packages/provider-utils/CHANGELOG.md">@​ai-sdk/provider-utils's changelog</a>.</em></p>
   <blockquote>
   <h2>5.0.33</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>90192f1: Mark transient network errors that occur while reading successful response bodies as retryable.</li>
   </ul>
   <h2>5.0.32</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>3e125ba: Allow manual tool approval statuses to include a reason and preserve it across
   core, model, and UI approval requests. OPA <code>requires-approval</code> decisions now
   surface their reason to human approvers. UI request chunks serialize the
   optional <code>reason</code>, while UI messages retain it as <code>approval.requestReason</code>
   separately from an approver's response <code>reason</code>.</li>
   </ul>
   <h2>5.0.31</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>a9782e1: fix: align batch result parsing, request counts, and lifecycle behavior across providers</li>
   <li>35841f5: feat: normalize mid-stream provider error events across supported providers into public StreamProviderError instances and preserve provider-owned type, code, status, retry, and raw payload metadata</li>
   <li>d2f3353: Split OpenAI and Azure OpenAI embedding requests by a conservative UTF-8 byte budget derived from their aggregate token limit, in addition to input count limits.</li>
   </ul>
   <h2>5.0.30</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>Updated dependencies [591d25b]
   <ul>
   <li><code>@​ai-sdk/provider</code><a href="https://github.com/4"><code>@​4</code></a>.0.8</li>
   </ul>
   </li>
   </ul>
   <h2>5.0.29</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>b74971f: Preserve schema-valued additional properties when converting Zod 4 schemas.</li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/vercel/ai/commit/0a0f271cff061e1ca953ed9d14ed7d525613a4a9"><code>0a0f271</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/19857">#19857</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/90192f19a1348eec52a482a6b33118f1768790b7"><code>90192f1</code></a> fix: mark response body network errors as retryable (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/19890">#19890</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/c93fa8d49ad8d2c690918a6c540c2e13d63f21ee"><code>c93fa8d</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/19748">#19748</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/3e125bac1dd1f67be708741ac1f7b691909a3804"><code>3e125ba</code></a> fix: human tool approval requests omit policy reasons (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/19658">#19658</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/a01c48165516d5f3f271c0b669183204e01dd2ea"><code>a01c481</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/19478">#19478</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/35841f5d43e7407e49f3d4c4e005b8334ca20376"><code>35841f5</code></a> feat: normalize mid-stream provider error events into public typed errors wit...</li>
   <li><a href="https://github.com/vercel/ai/commit/d2f335310d41beadb32205434622d8680db39c39"><code>d2f3353</code></a> fix: split large embedding batches that exceed provider aggregate token limit...</li>
   <li><a href="https://github.com/vercel/ai/commit/a9782e1baf61383f2f4242ee8c93f2dea2f0a30c"><code>a9782e1</code></a> fix(batch): align result parsing, request counts, and behavior across provide...</li>
   <li><a href="https://github.com/vercel/ai/commit/3d3afacf9b587f5df1edd6cfdb91b3771d1c7e4e"><code>3d3afac</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/19362">#19362</a>)</li>
   <li><a href="https://github.com/vercel/ai/commit/ed857f50f112e23930b0c2dd8d532cc8bebbc911"><code>ed857f5</code></a> Version Packages (<a href="https://github.com/vercel/ai/tree/HEAD/packages/provider-utils/issues/19296">#19296</a>)</li>
   <li>Additional commits viewable in <a href="https://github.com/vercel/ai/commits/@ai-sdk/provider-utils@5.0.33/packages/provider-utils">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@astryxdesign/cli` from 0.4.5 to 0.5.0
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/facebook/astryx/releases">@​astryxdesign/cli's releases</a>.</em></p>
   <blockquote>
   <h2>v0.5.0</h2>
   <p>Astryx 0.5.0 — all <code>@astryxdesign/*</code> packages ship at this version.</p>
   <pre lang="bash"><code>npx astryx upgrade --apply
   </code></pre>
   <h2><code>@​astryxdesign/core</code></h2>
   <h3>Breaking Changes</h3>
   <ul>
   <li>
   <p>Banner: the collapse axis moves onto one <code>collapsible</code> prop, and content can opt out of collapsing (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5255">#5255</a>)
   Banner inferred its disclosure from its content: any <code>children</code> got a chevron in the header and were hidden until it was pressed. There was no way to show content without a toggle — the case a banner most often wants, a list of the three fields that failed validation — and <code>defaultIsExpanded</code> was the only knob, with no controlled mode.</p>
   <p>The whole axis is now one <code>boolean | CollapsibleConfig</code> prop, following the boolean-or-config convention <code>SideNav.collapsible</code> set, and backed by the shared <code>useCollapsible</code> hook rather than Banner's own state:</p>
   <pre lang="tsx"><code>&lt;Banner status=&quot;error&quot; title=&quot;3 fields need attention&quot;&gt;…&lt;/Banner&gt;  // unchanged: collapsible, starts closed
   &lt;Banner collapsible={false}&gt;…&lt;/Banner&gt;                             // new: always visible, no toggle
   &lt;Banner collapsible={{defaultIsOpen: true}}&gt;…&lt;/Banner&gt;             // replaces defaultIsExpanded
   &lt;Banner collapsible={{isOpen, onOpenChange}}&gt;…&lt;/Banner&gt;            // new: controlled
   </code></pre>
   <p><strong>The default is unchanged</strong> — a banner that never mentioned <code>defaultIsExpanded</code> behaves exactly as it did. The breaking part is the prop itself: <code>defaultIsExpanded</code> is removed in favour of the config, which is a type error at every JSX call site that names it.</p>
   <p><strong>Codemod:</strong> <code>npx astryx upgrade --codemod banner-collapsible-content</code></p>
   <p>It rewrites <code>defaultIsExpanded</code> to <code>collapsible={{defaultIsOpen: true}}</code> and drops <code>defaultIsExpanded={false}</code>, which is now the default. Banners that never set the prop are left alone.</p>
   <p><strong>One case the codemod and the compiler both miss: a spread.</strong> <code>defaultIsExpanded</code> inside a props object is out of the transform's scope. A props object in a typed position still fails to compile — but an inferred one that is spread, <code>&lt;Banner {...args} /&gt;</code>, does not, because TypeScript does not excess-property-check a spread. The prop then falls through to the DOM and the banner quietly starts collapsed. <strong>Grep for <code>defaultIsExpanded</code> after running the codemod</strong> and migrate any spread sites by hand.</p>
   </li>
   <li>
   <p>Overlays share one dismissal stack, so a single Escape dismisses exactly one layer. Every overlay used to own its own Escape listener, which meant one press could close a popover <em>and</em> the Dialog hosting it, or a modal <em>and</em> the modal it was opened from. <code>useLayerDismissal</code> replaces that with a single stack: the stack owns one listener, routes each press to the top-most layer, and suppresses the browser's own close-watcher so nothing dismisses twice. A layer declares what it does with a press via <code>escapeBehavior</code> — <code>close</code> (default) or <code>block</code>, for a <code>required</code> Dialog that must swallow the press without closing so nothing behind it dismisses either. Fixes a Tooltip inside a Dialog closing the Dialog rather than the tip, and a HoverCard trigger swallowing Escape whenever it merely had focus. Dismissals the browser starts on its own — the Android back gesture, the platform close watcher — still close a Dia
 log, and follow the same top-most rule. An Escape that cancels an in-progress IME composition dismisses nothing: the stack claims that press so the browser raises no close request of its own, and a close request that arrives mid-composition anyway is declined, so a CJK user backing out of a half-formed character no longer loses the layer and everything typed into it. One behavior change worth knowing about if you listen for Escape yourself: the stack claims a press with <code>preventDefault()</code> but deliberately leaves propagation alone, so a <code>keydown</code> listener on <code>window</code> now sees an Escape that a focus-trapped layer used to stop — with <code>defaultPrevented</code> already <code>true</code>, which is how to tell the stack has acted on it. Top-most is resolved from React-tree nesting (which survives portals) rather than DOM containment alone. A layer's place in that order is keyed to the layer's identity rather than to each registration, so a prop change
  that re-registers it — a Dialog whose <code>purpose</code> flips while it is open — never promotes it above the layers opened over it. Controlled layers follow their control state: a controlled <code>Tooltip</code> or <code>HoverCard</code> stays on the stack and takes the press like any other layer, but answers it by calling <code>onOpenChange(false)</code> rather than hiding itself — whether it actually closes is the caller's update to make, exactly as it has always been for <code>Dialog</code> (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/4881">#4881</a>).</p>
   </li>
   </ul>
   <h3>New Components</h3>
   <ul>
   <li>
   <p>Allow MultiSelector count labels to be customized (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/4032">#4032</a>)</p>
   </li>
   <li>
   <p>MultiSelector: rename the unreleased <code>formatTriggerCount</code> prop to <code>formatValue</code> and widen it to the whole trigger line. It now receives the selected items (<code>{value, label}[]</code>, count available as <code>.length</code>) and formats the trigger for <code>triggerDisplay=&quot;count&quot;</code> and <code>&quot;labels&quot;</code>; <code>&quot;badges&quot;</code> renders elements, so it is not used there. <code>formatValue</code> matches NumberInput and Slider, so the same idea has one name across the system. Defaults are unchanged when the prop is absent (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5377">#5377</a>).</p>
   </li>
   <li>
   <p>Promote <code>Stepper</code> and <code>Step</code> from the canary-only Lab package to Core. The stable package now ships their existing horizontal/vertical layouts, separated and on-track indicators, semantic status, density, and non-linear navigation, plus Core documentation and rendered examples. The default <code>aria-label</code> is now localized.
   Advancing one step now animates the connector. Every connector the four layouts draw — the separated bars and the on-track segments alike — grows its accent fill out of the segment's leading edge instead of swapping a background color, so moving forward reads as progress travelling the track. That one gesture is the only thing that animates: going back, jumping forward by more than one step, and mounting mid-flow all apply at once, as does any change under <code>prefers-reduced-motion</code>. Retreats are deliberately instant — run in reverse the same transition ends on a shrinking stub of accent, and a remnant still on the track reads as unfinished where the identical curve growing forward reads as arrived — and multi-step jumps are instant because a jump is a navigation rather than a progression, so sweeping a front across the crossed segments only makes the user sit out a journey they asked to skip. Where one span is drawn by several segments (the on-track layouts split
  a span between two steps, three when a content slot sits between them) the segments take abutting slices of the span's time and run linearly, so the fill reads as one line growing at a constant speed rather than pieces lighting in turn.</p>
   <p>Five visual fixes land with the promotion. Horizontal steps now divide the track evenly instead of sizing to their own labels, so every progress segment is the same width regardless of how long a step is named. Number indicators shrink from 20px to 16px to match the check, ring, and custom-icon indicators, so a step swapping its number for a check as it completes no longer nudges the label beside it. A step description now occupies a 16px box rather than a 24px one — it previously inherited the page's line box instead of applying its own leading, which opened an 8px gap under the label. A step's content slot now starts flush with the label above it at every density: the slot renders outside the density-padded label area, so it was hanging one pad short of it. And a vertical on-track step carrying content keeps its connector unbroken — the content renders below the row that draws the line, so the track used to split open around any step with content (<a href="https://github.
 com/facebook/astryx/tree/HEAD/packages/cli/issues/5201">#5201</a>).</p>
   </li>
   </ul>
   <h3>New Features</h3>
   <ul>
   <li>AspectRatio: emit <code>ratio</code> as a class-level declaration instead of a hard inline style, so the ratio can be overridden responsively: StyleX consumers pass an <code>aspect-ratio</code> rule via <code>xstyle</code> (including under <code>@media</code>/<code>@container</code> conditions), and plain-CSS/Tailwind consumers override <code>aspect-ratio</code> from their own unlayered rules, which beat the <code>astryx-base</code> cascade layer regardless of specificity. The mixed-gallery template's hero now switches 3:1 to 3:2 when the grid stacks with a one-line override on a single element, replacing the duplicated hero markup the fixed inline ratio previously forced (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/3883">#3883</a>, closes <a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/2798">#2798</a>)</li>
   <li>ChatMessageList: add an <code>align</code> prop for top-aligned message lists
   (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/3933">#3933</a>, closes <a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/2572">#2572</a>).</li>
   <li>DateTimeInput: new <code>timeOptionInterval</code> prop adds a dropdown of preset times to the time field, at a cadence of <code>5 | 10 | 15 | 30 | 60</code> minutes (<code>60</code> gives the 12 AM - 11 PM list). The field becomes an APG combobox over a <code>listbox</code>: click or Alt+ArrowDown opens it, ArrowUp/ArrowDown move the active option, Enter picks, Escape closes, and typing moves the highlight to the closest option without filtering the list. <code>min</code>/<code>max</code> trim the options on the boundary date. Style the popup through the <code>date-time-input-time-listbox</code> and <code>date-time-input-time-option</code> theme targets.
   Opt-in and additive: with <code>timeOptionInterval</code> omitted the time field keeps exactly its current behavior and gains no combobox semantics, so existing <code>getByRole('combobox')</code> queries still resolve to the date input. With the list closed the arrow keys keep stepping by <code>timeIncrement</code> (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/4837">#4837</a>).</li>
   <li>Markdown: opt-in source ranges on parsed blocks</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a href="https://github.com/facebook/astryx/blob/main/packages/cli/CHANGELOG.md">@​astryxdesign/cli's changelog</a>.</em></p>
   <blockquote>
   <h1>0.5.0</h1>
   <h4>Breaking Changes</h4>
   <ul>
   <li>
   <p>Banner: the collapse axis moves onto one <code>collapsible</code> prop, and content can opt out of collapsing (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5255">#5255</a>)
   Banner inferred its disclosure from its content: any <code>children</code> got a chevron in the header and were hidden until it was pressed. There was no way to show content without a toggle — the case a banner most often wants, a list of the three fields that failed validation — and <code>defaultIsExpanded</code> was the only knob, with no controlled mode.</p>
   <p>The whole axis is now one <code>boolean | CollapsibleConfig</code> prop, following the boolean-or-config convention <code>SideNav.collapsible</code> set, and backed by the shared <code>useCollapsible</code> hook rather than Banner's own state:</p>
   <pre lang="tsx"><code>&lt;Banner status=&quot;error&quot; title=&quot;3 fields need attention&quot;&gt;…&lt;/Banner&gt;  // unchanged: collapsible, starts closed
   &lt;Banner collapsible={false}&gt;…&lt;/Banner&gt;                             // new: always visible, no toggle
   &lt;Banner collapsible={{defaultIsOpen: true}}&gt;…&lt;/Banner&gt;             // replaces defaultIsExpanded
   &lt;Banner collapsible={{isOpen, onOpenChange}}&gt;…&lt;/Banner&gt;            // new: controlled
   </code></pre>
   <p><strong>The default is unchanged</strong> — a banner that never mentioned <code>defaultIsExpanded</code> behaves exactly as it did. The breaking part is the prop itself: <code>defaultIsExpanded</code> is removed in favour of the config, which is a type error at every JSX call site that names it.</p>
   <p><strong>Codemod:</strong> <code>npx astryx upgrade --codemod banner-collapsible-content</code></p>
   <p>It rewrites <code>defaultIsExpanded</code> to <code>collapsible={{defaultIsOpen: true}}</code> and drops <code>defaultIsExpanded={false}</code>, which is now the default. Banners that never set the prop are left alone.</p>
   <p><strong>One case the codemod and the compiler both miss: a spread.</strong> <code>defaultIsExpanded</code> inside a props object is out of the transform's scope. A props object in a typed position still fails to compile — but an inferred one that is spread, <code>&lt;Banner {...args} /&gt;</code>, does not, because TypeScript does not excess-property-check a spread. The prop then falls through to the DOM and the banner quietly starts collapsed. <strong>Grep for <code>defaultIsExpanded</code> after running the codemod</strong> and migrate any spread sites by hand.</p>
   </li>
   </ul>
   <h4>New Components</h4>
   <ul>
   <li>
   <p>Promote <code>Stepper</code> and <code>Step</code> from the canary-only Lab package to Core. The stable package now ships their existing horizontal/vertical layouts, separated and on-track indicators, semantic status, density, and non-linear navigation, plus Core documentation and rendered examples. The default <code>aria-label</code> is now localized.
   Advancing one step now animates the connector. Every connector the four layouts draw — the separated bars and the on-track segments alike — grows its accent fill out of the segment's leading edge instead of swapping a background color, so moving forward reads as progress travelling the track. That one gesture is the only thing that animates: going back, jumping forward by more than one step, and mounting mid-flow all apply at once, as does any change under <code>prefers-reduced-motion</code>. Retreats are deliberately instant — run in reverse the same transition ends on a shrinking stub of accent, and a remnant still on the track reads as unfinished where the identical curve growing forward reads as arrived — and multi-step jumps are instant because a jump is a navigation rather than a progression, so sweeping a front across the crossed segments only makes the user sit out a journey they asked to skip. Where one span is drawn by several segments (the on-track layouts split
  a span between two steps, three when a content slot sits between them) the segments take abutting slices of the span's time and run linearly, so the fill reads as one line growing at a constant speed rather than pieces lighting in turn.</p>
   <p>Five visual fixes land with the promotion. Horizontal steps now divide the track evenly instead of sizing to their own labels, so every progress segment is the same width regardless of how long a step is named. Number indicators shrink from 20px to 16px to match the check, ring, and custom-icon indicators, so a step swapping its number for a check as it completes no longer nudges the label beside it. A step description now occupies a 16px box rather than a 24px one — it previously inherited the page's line box instead of applying its own leading, which opened an 8px gap under the label. A step's content slot now starts flush with the label above it at every density: the slot renders outside the density-padded label area, so it was hanging one pad short of it. And a vertical on-track step carrying content keeps its connector unbroken — the content renders below the row that draws the line, so the track used to split open around any step with content (<a href="https://github.
 com/facebook/astryx/tree/HEAD/packages/cli/issues/5201">#5201</a>).</p>
   </li>
   </ul>
   <h4>New Features</h4>
   <ul>
   <li>AspectRatio: emit <code>ratio</code> as a class-level declaration instead of a hard inline style, so the ratio can be overridden responsively: StyleX consumers pass an <code>aspect-ratio</code> rule via <code>xstyle</code> (including under <code>@media</code>/<code>@container</code> conditions), and plain-CSS/Tailwind consumers override <code>aspect-ratio</code> from their own unlayered rules, which beat the <code>astryx-base</code> cascade layer regardless of specificity. The mixed-gallery template's hero now switches 3:1 to 3:2 when the grid stacks with a one-line override on a single element, replacing the duplicated hero markup the fixed inline ratio previously forced (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/3883">#3883</a>, closes <a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/2798">#2798</a>)</li>
   <li>CLI: <code>astryx theme targets</code> lists every component theming target — the <code>defineTheme</code> key, the class it paints, and the props and states it accepts — for one component or the whole system, with <code>--json</code> for lint and audit scripts. <code>astryx theme --help</code> now points at component overrides instead of reading as a build-tool menu. The listing and <code>theme build</code>'s override validation share one enumeration of the component docs, so neither can drift from the components (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5115">#5115</a>).</li>
   </ul>
   <h4>Fixes</h4>
   <ul>
   <li>
   <p>neutral theme: darken the light-mode error red from <code>#e33f4a</code> to <code>#c9303a</code> so the filled <code>Badge variant=&quot;error&quot;</code> label clears WCAG 2.1 AA. White on <code>#e33f4a</code> is 4.14:1 and the badge label is 12px/weight 500, so the 4.5:1 normal-text threshold applies rather than the 3:1 large-text allowance; <code>#c9303a</code> gives 5.29:1 while holding the hue (OKLCH H 21.9 -&gt; 22.8, C 0.200 -&gt; 0.189). StatusDot and the ProgressBar <code>--color-error</code> rebinding move with it — both are documented as tracking the badge fill so the dot and its badge read as one status language. Dark mode is untouched (dark text on <code>#ff705d</code>, 6.60:1). Adds <code>scripts/check-badge-contrast.test.mjs</code>, which resolves every theme's badge label/fill pair through <code>light-dark()</code>, <code>var()</code> indirection and alpha compositing, and holds all of them to 4.5:1 (<a href="https://github.com/facebook/astryx/tree/HEAD/packa
 ges/cli/issues/4446">#4446</a>).</p>
   </li>
   <li>
   <p>Unified search and build now include components contributed by integrations, so a component registered through an integration is findable and buildable alongside the built-in set instead of silently missing from both (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5259">#5259</a>).</p>
   </li>
   <li>
   <p>Table - Grouped page template: wrap the rows in <code>TableBody</code>
   The template rendered <code>&lt;TableRow&gt;</code> straight into <code>&lt;Table&gt;</code>, so the emitted DOM was <code>&lt;table&gt;&lt;tr&gt;</code>. <code>&lt;table&gt;</code> cannot contain a row directly: the HTML parser inserts an implied <code>&lt;tbody&gt;</code> when it parses server-rendered markup and React does not when it renders on the client, so anyone who copied the template into an app as a server-rendered page inherited a hydration mismatch in their own app. Client-only the DOM is still invalid — nothing reparents the rows, so the table ends up with <code>&lt;tr&gt;</code> children and no <code>&lt;tbody&gt;</code> at all, and any CSS or query aimed at <code>tbody</code> silently misses.</p>
   <p>The rows now sit in <code>&lt;TableBody&gt;</code>, the same element the data-driven <code>data={...}</code> path renders, so styling, dividers, and column widths are unchanged (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5278">#5278</a>).</p>
   </li>
   </ul>
   <h4>Other Changes</h4>
   <ul>
   <li>Public component theming vars are enumerable, and guarded against being documented but unsettable
   <code>collectThemingVars</code> joins <code>collectThemingTargets</code> as part of the one enumeration the theming surface is read from. Two guards ride on it: a documented public var no component reads compiles to a declaration that never applies, and a var the component writes inline outranks every cascade layer, so no theme can reach it. Both had shipped; neither is visible in the generated theme CSS the jsdom suites assert on (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5409">#5409</a>).</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/facebook/astryx/commit/ea888ef33283ea44e37817d36bc8e84a0568bc30"><code>ea888ef</code></a> release: v0.5.0 (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5435">#5435</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/b6c0501302f925fab09cdbd0136c1b4b6b7e01b6"><code>b6c0501</code></a> fix(cli): grouped-table template rendered rows outside a tbody (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5278">#5278</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/32d41f63f61961d719cebe86dfa476935c0e501f"><code>32d41f6</code></a> cli: include integration-contributed components in unified search/build (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5259">#5259</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/3c52d510c933fd4106a5b33a05f1b6e5986f3cdf"><code>3c52d51</code></a> test(cli): guard public component theme vars against being documented but uns...</li>
   <li><a href="https://github.com/facebook/astryx/commit/dfdd778050d4e07382cb5e2c8ca5452dcdce3a57"><code>dfdd778</code></a> feat(core)!: Banner content is visible by default; collapse moves to a `colla...</li>
   <li><a href="https://github.com/facebook/astryx/commit/20bae6c4604b6cb6bcad57c117a029072d266707"><code>20bae6c</code></a> docs: replace em dashes and curly quotes in CLI and component doc prose (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5354">#5354</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/42468a9ccbaee58eb3e8b856fef97374e8a12372"><code>42468a9</code></a> docs(cli): document the integration manifest docs field in the README (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/5331">#5331</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/0b6762d2733b3e5439ff9a1151d9fced79d63277"><code>0b6762d</code></a> feat(AspectRatio): responsive ratio — emit ratio as an overridable class-leve...</li>
   <li><a href="https://github.com/facebook/astryx/commit/1abeec7493f0bcfdd8541ac232673d692ff8a56c"><code>1abeec7</code></a> fix(theme-neutral): Badge error label meets AA (<a href="https://github.com/facebook/astryx/tree/HEAD/packages/cli/issues/4446">#4446</a>)</li>
   <li><a href="https://github.com/facebook/astryx/commit/789ef5745cfd5fcf8caf7cc58b4065fba9ba3681"><code>789ef57</code></a> feat(cli): <code>astryx theme targets</code> — the themeable surface, enumerable in one ...</li>
   <li>Additional commits viewable in <a href="https://github.com/facebook/astryx/commits/v0.5.0/packages/cli">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@biomejs/biome` from 2.5.9 to 2.5.11
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/biomejs/biome/releases">@​biomejs/biome's releases</a>.</em></p>
   <blockquote>
   <h2>Biome CLI v2.5.11</h2>
   <h2>2.5.11</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11499">#11499</a> <a href="https://github.com/biomejs/biome/commit/9743d0ceae807757300e5b0ec66266125bc664c1"><code>9743d0c</code></a> Thanks <a href="https://github.com/scs0209"><code>@​scs0209</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11496">#11496</a>: <a href="https://biomejs.dev/linter/rules/use-valid-anchor/"><code>useValidAnchor</code></a> now treats Astro JSX shorthand attributes like <code>&lt;a {href}&gt;</code> as a valid <code>href</code>.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11437">#11437</a> <a href="https://github.com/biomejs/biome/commit/88f805e19b67ab4c876e4fc4a8b4018bd03df20b"><code>88f805e</code></a> Thanks <a href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/9944">#9944</a>: adjacent elements inside an Astro expression now parse as an implicit fragment instead of raising an error.</p>
   <pre lang="astro"><code>{options.map(() =&gt;
     &lt;div /&gt;
     &lt;div /&gt;
   )}
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11437">#11437</a> <a href="https://github.com/biomejs/biome/commit/88f805e19b67ab4c876e4fc4a8b4018bd03df20b"><code>88f805e</code></a> Thanks <a href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! - Fixed Astro templates rejecting unclosed HTML void elements, such as <code>{cond &amp;&amp; &lt;br&gt;}</code>.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11507">#11507</a> <a href="https://github.com/biomejs/biome/commit/e2fc03669886732ac9c768aa00f3ffae46241848"><code>e2fc036</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11157">#11157</a>: <a href="https://biomejs.dev/linter/rules/no-unused-variables/"><code>noUnusedVariables</code></a> no longer reports Vue <code>&lt;script setup&gt;</code> bindings used by CSS <code>v-bind()</code> as unused.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11398">#11398</a> <a href="https://github.com/biomejs/biome/commit/afc4615079a72e0810f06186f78e5cb177a5638e"><code>afc4615</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11389">#11389</a>: Files passed through <code>--stdin-file-path</code> now use full HTML support for Astro, Svelte, and Vue when it is enabled.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11526">#11526</a> <a href="https://github.com/biomejs/biome/commit/372cd68ba156efdc497017598a49e21484a3ada9"><code>372cd68</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://biomejs.dev/linter/rules/no-vue-ref-as-operand/"><code>noVueRefAsOperand</code></a> to track Vue refs through declaration aliases and <code>toRefs()</code> properties, and to recognize <code>useTemplateRef()</code> results. The rule no longer reports false positives such as plain ref transfers, plain <code>toRefs()</code> property access, <code>defineModel()</code> modifiers, or the supported <code>.effect</code> member as operands.</p>
   <p>The refactor enabling these fixes also improves the performance of the rule.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11458">#11458</a> <a href="https://github.com/biomejs/biome/commit/a7cd2868c3d98fbc75174c5bf69fdcfacbe87304"><code>a7cd286</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11436">#11436</a>: GritQL snippets such as <code>export { $specifiers } from $source</code> now match named re-exports with aliases, inline <code>type</code> modifiers, and multiple specifiers.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11515">#11515</a> <a href="https://github.com/biomejs/biome/commit/382b15d5e0f9e2a75604fec1f15ad342628c99c7"><code>382b15d</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11390">#11390</a>, where <code>noFloatingPromises</code> performed expensive full type inference for calls to non-Promise methods declared on third-party TypeScript classes. The rule now classifies those calls using targeted type information.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11516">#11516</a> <a href="https://github.com/biomejs/biome/commit/6f40e8224afc58737626d997c0ea779e2b37baca"><code>6f40e82</code></a> Thanks <a href="https://github.com/levrik"><code>@​levrik</code></a>! - Fixed <a href="https://biomejs.dev/linter/rules/no-vue-ref-as-operand/"><code>noVueRefAsOperand</code></a> so it no longer reports a callback parameter (e.g. from <code>.find()</code>, <code>.map()</code>) as an unwrapped ref value just because it's nested inside a <code>ref()</code>, <code>computed()</code>, or similar call.</p>
   <pre lang="js"><code>const result = computed(() =&gt; list.find((item) =&gt; item.label === &quot;a&quot;));
   </code></pre>
   <p>Previously, <code>item</code> here was incorrectly treated as a ref value because the rule attributed it to the outer <code>computed()</code> call.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11495">#11495</a> <a href="https://github.com/biomejs/biome/commit/496268d1470b6a4cd52bff03d37899c4bb7f77ab"><code>496268d</code></a> Thanks <a href="https://github.com/Netail"><code>@​Netail</code></a>! - Fixed <a href="https://biomejs.dev/linter/rules/use-graphql-naming-convention/"><code>useGraphqlNamingConvention</code></a> so it no longer reports GraphQL enum value definitions with comments &amp; descriptions and now displays a more accurate diagnostic range.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11407">#11407</a> <a href="https://github.com/biomejs/biome/commit/6ef52b02fc07e23de7ad498d853aaf2c825717fd"><code>6ef52b0</code></a> Thanks <a href="https://github.com/1678092075"><code>@​1678092075</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11214">#11214</a>: <a href="https://biomejs.dev/linter/rules/no-unused-variables/"><code>noUnusedVariables</code></a> no longer reports type parameters declared by non-default function overload signatures that have an implementation.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11322">#11322</a> <a href="https://github.com/biomejs/biome/commit/5c353e6c85a40807e2710684da807f8757ee650c"><code>5c353e6</code></a> Thanks <a href="https://github.com/jp-knj"><code>@​jp-knj</code></a>! - Added a new nursery rule <code>noAstroSetHtmlDirective</code>, which disallows Astro's <code>set:html</code> directive because untrusted content can introduce cross-site scripting vulnerabilities.</p>
   <p>For example, the following snippet triggers the rule:</p>
   <pre lang="astro"><code>&lt;div set:html={content} /&gt;
   </code></pre>
   </li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a href="https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md">@​biomejs/biome's changelog</a>.</em></p>
   <blockquote>
   <h2>2.5.11</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11499">#11499</a> <a href="https://github.com/biomejs/biome/commit/9743d0ceae807757300e5b0ec66266125bc664c1"><code>9743d0c</code></a> Thanks <a href="https://github.com/scs0209"><code>@​scs0209</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11496">#11496</a>: <a href="https://biomejs.dev/linter/rules/use-valid-anchor/"><code>useValidAnchor</code></a> now treats Astro JSX shorthand attributes like <code>&lt;a {href}&gt;</code> as a valid <code>href</code>.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11437">#11437</a> <a href="https://github.com/biomejs/biome/commit/88f805e19b67ab4c876e4fc4a8b4018bd03df20b"><code>88f805e</code></a> Thanks <a href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/9944">#9944</a>: adjacent elements inside an Astro expression now parse as an implicit fragment instead of raising an error.</p>
   <pre lang="astro"><code>{options.map(() =&gt;
     &lt;div /&gt;
     &lt;div /&gt;
   )}
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11437">#11437</a> <a href="https://github.com/biomejs/biome/commit/88f805e19b67ab4c876e4fc4a8b4018bd03df20b"><code>88f805e</code></a> Thanks <a href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! - Fixed Astro templates rejecting unclosed HTML void elements, such as <code>{cond &amp;&amp; &lt;br&gt;}</code>.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11507">#11507</a> <a href="https://github.com/biomejs/biome/commit/e2fc03669886732ac9c768aa00f3ffae46241848"><code>e2fc036</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11157">#11157</a>: <a href="https://biomejs.dev/linter/rules/no-unused-variables/"><code>noUnusedVariables</code></a> no longer reports Vue <code>&lt;script setup&gt;</code> bindings used by CSS <code>v-bind()</code> as unused.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11398">#11398</a> <a href="https://github.com/biomejs/biome/commit/afc4615079a72e0810f06186f78e5cb177a5638e"><code>afc4615</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11389">#11389</a>: Files passed through <code>--stdin-file-path</code> now use full HTML support for Astro, Svelte, and Vue when it is enabled.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11526">#11526</a> <a href="https://github.com/biomejs/biome/commit/372cd68ba156efdc497017598a49e21484a3ada9"><code>372cd68</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://biomejs.dev/linter/rules/no-vue-ref-as-operand/"><code>noVueRefAsOperand</code></a> to track Vue refs through declaration aliases and <code>toRefs()</code> properties, and to recognize <code>useTemplateRef()</code> results. The rule no longer reports false positives such as plain ref transfers, plain <code>toRefs()</code> property access, <code>defineModel()</code> modifiers, or the supported <code>.effect</code> member as operands.</p>
   <p>The refactor enabling these fixes also improves the performance of the rule.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11458">#11458</a> <a href="https://github.com/biomejs/biome/commit/a7cd2868c3d98fbc75174c5bf69fdcfacbe87304"><code>a7cd286</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11436">#11436</a>: GritQL snippets such as <code>export { $specifiers } from $source</code> now match named re-exports with aliases, inline <code>type</code> modifiers, and multiple specifiers.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11515">#11515</a> <a href="https://github.com/biomejs/biome/commit/382b15d5e0f9e2a75604fec1f15ad342628c99c7"><code>382b15d</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11390">#11390</a>, where <code>noFloatingPromises</code> performed expensive full type inference for calls to non-Promise methods declared on third-party TypeScript classes. The rule now classifies those calls using targeted type information.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11516">#11516</a> <a href="https://github.com/biomejs/biome/commit/6f40e8224afc58737626d997c0ea779e2b37baca"><code>6f40e82</code></a> Thanks <a href="https://github.com/levrik"><code>@​levrik</code></a>! - Fixed <a href="https://biomejs.dev/linter/rules/no-vue-ref-as-operand/"><code>noVueRefAsOperand</code></a> so it no longer reports a callback parameter (e.g. from <code>.find()</code>, <code>.map()</code>) as an unwrapped ref value just because it's nested inside a <code>ref()</code>, <code>computed()</code>, or similar call.</p>
   <pre lang="js"><code>const result = computed(() =&gt; list.find((item) =&gt; item.label === &quot;a&quot;));
   </code></pre>
   <p>Previously, <code>item</code> here was incorrectly treated as a ref value because the rule attributed it to the outer <code>computed()</code> call.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11495">#11495</a> <a href="https://github.com/biomejs/biome/commit/496268d1470b6a4cd52bff03d37899c4bb7f77ab"><code>496268d</code></a> Thanks <a href="https://github.com/Netail"><code>@​Netail</code></a>! - Fixed <a href="https://biomejs.dev/linter/rules/use-graphql-naming-convention/"><code>useGraphqlNamingConvention</code></a> so it no longer reports GraphQL enum value definitions with comments &amp; descriptions and now displays a more accurate diagnostic range.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11407">#11407</a> <a href="https://github.com/biomejs/biome/commit/6ef52b02fc07e23de7ad498d853aaf2c825717fd"><code>6ef52b0</code></a> Thanks <a href="https://github.com/1678092075"><code>@​1678092075</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/11214">#11214</a>: <a href="https://biomejs.dev/linter/rules/no-unused-variables/"><code>noUnusedVariables</code></a> no longer reports type parameters declared by non-default function overload signatures that have an implementation.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11322">#11322</a> <a href="https://github.com/biomejs/biome/commit/5c353e6c85a40807e2710684da807f8757ee650c"><code>5c353e6</code></a> Thanks <a href="https://github.com/jp-knj"><code>@​jp-knj</code></a>! - Added a new nursery rule <code>noAstroSetHtmlDirective</code>, which disallows Astro's <code>set:html</code> directive because untrusted content can introduce cross-site scripting vulnerabilities.</p>
   <p>For example, the following snippet triggers the rule:</p>
   <pre lang="astro"><code>&lt;div set:html={content} /&gt;
   </code></pre>
   </li>
   <li>
   <p><a href="https://redirect.github.com/biomejs/biome/pull/11462">#11462</a> <a href="https://github.com/biomejs/biome/commit/18883b7dafb8f9581534508fdd5b1e34632f2724"><code>18883b7</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/10776">#10776</a>: <a href="https://biomejs.dev/linter/rules/use-vue-hyphenated-attributes/"><code>useVueHyphenatedAttributes</code></a> no longer reports lowercase attribute names containing punctuation, such as <code>pt:header:data-test-id</code> and <code>some_attr</code>.</p>
   </li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/biomejs/biome/commit/4d9c1d53ff57c44247e7a32718e1c69a0c1735af"><code>4d9c1d5</code></a> ci: release (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11457">#11457</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/18883b7dafb8f9581534508fdd5b1e34632f2724"><code>18883b7</code></a> fix(html): ignore punctuation in Vue attribute casing (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11462">#11462</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/5c353e6c85a40807e2710684da807f8757ee650c"><code>5c353e6</code></a> feat: adds the noAstroSetHtmlDirective rule for .astro (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11322">#11322</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/3e5367f13de6c8cb80070544774c9935cac7d649"><code>3e5367f</code></a> feat(lint): rule noUndeclaredCustomProperties (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11191">#11191</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/05797b196eb4412bb373d0825c44b0dd856f4134"><code>05797b1</code></a> ci: release (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11450">#11450</a>)</li>
   <li><a href="https://github.com/biomejs/biome/commit/5f1ed342cb4f3fa85ec9361a4534ff95da885c13"><code>5f1ed34</code></a> chore: add CodSpeed and Cloudflare to sponsors (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/11410">#11410</a>)</li>
   <li>See full diff in <a href="https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.11/packages/@biomejs/biome">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@types/node` from 26.2.0 to 26.4.0
   <details>
   <summary>Commits</summary>
   <ul>
   <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `knip` from 6.32.2 to 6.33.0
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/webpro-nl/knip/releases">knip's releases</a>.</em></p>
   <blockquote>
   <h2>Release 6.33.0</h2>
   <ul>
   <li>Support package manifest resolution under Yarn PnP (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1946">#1946</a>) (a82efb62b290e004bdabee40bcb337baf3701a1b) - thanks <a href="https://github.com/WooWan"><code>@​WooWan</code></a>!</li>
   <li>Resolve oxlint jsPlugins from .oxlintrc.jsonc (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1973">#1973</a>) (d055023182789555a574eaefde80dac997190437) - thanks <a href="https://github.com/DreierF"><code>@​DreierF</code></a>!</li>
   <li>Update dependency bun to v1.4.0 (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1964">#1964</a>) (937ab38ad514a00edafecff4ca04603b015bf921) - thanks <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot]!</li>
   <li>Expose <code>defineConfig</code> on a <code>./config</code> entrypoint (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1960">#1960</a>) (17f7a6051d9781860f248cc2a745dbe837713cd9) - thanks <a href="https://github.com/theRizwan"><code>@​theRizwan</code></a>!</li>
   <li>Preserve all environment variables in exec.ts (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1979">#1979</a>) (c0a9ecf8d1c0cdd7789c1e1bea893706c060239d) - thanks <a href="https://github.com/DreamLongYT"><code>@​DreamLongYT</code></a>!</li>
   <li>Add support for TypeScript content mappers (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1978">#1978</a>) (db67f9bd8cebf0ea3c298690d462c154827aa462) - thanks <a href="https://github.com/remcohaszing"><code>@​remcohaszing</code></a>!</li>
   <li>fix(vitest): resolve array entries and root-relative setup dependencies (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1982">#1982</a>) (0ecf48538c339437e6f9dfe9a6013d307783cbd3) - thanks <a href="https://github.com/DreamLongYT"><code>@​DreamLongYT</code></a>!</li>
   <li>Fix type annotation in dynamic configuration function example (ada88c7f01563b73643af34a147a71fd9ab9d2dc)</li>
   <li>Format docs with remark (7764c2a4ebecdbf226c19494d255d9cb14550822)</li>
   <li>Throw on configuration that is not an object (d7ac0cf1de8f79be6ec53412cac9f7edf8f35ba7)</li>
   <li>Clarify dependency inputs, isTypeOnly and toConfig in plugin docs (2bd367961554ad1addb520bdfad5e31125885969)</li>
   <li>Resolve content mapper process from package.json#typescript.contentMapper.exec (74640c03e450624409692f4cc17699775108fd7e)</li>
   <li>Encode argv arrays before parsing them as shell commands (b79234c15153fbf592e82c94e4e4e9f41b4479e0)</li>
   <li>Update dependencies (28510146c2b97d88f7188f1239b9307aac7dbf0c)</li>
   <li>Replace non-breaking space in module graph comment (4e22bfcd09deccc92ed158f5554fe3e03f3a2c51)</li>
   <li>Update fix format test for oxfmt package.json key sorting (65011bf6054d03fb5580f3381867b07d1b8a9a0c)</li>
   <li>fix(webpack): resolve entry descriptors using import field (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1981">#1981</a>) (cad8910e7fb89c2510fc9f5885289335dd4e60da) - thanks <a href="https://github.com/DreamLongYT"><code>@​DreamLongYT</code></a>!</li>
   <li>fix: count enum element access as a whole-object read (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1958">#1958</a>) (5a47d603aa23b388ae7ce4fe301656f1abc43b14) - thanks <a href="https://github.com/addielaruee"><code>@​addielaruee</code></a>!</li>
   <li>Resolve oxlint/vite-plus import resolvers from <code>settings</code> (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1983">#1983</a>) (c1165b70efe27398b86fa50bcea7d85c253d3ee7) - thanks <a href="https://github.com/DreierF"><code>@​DreierF</code></a>!</li>
   <li>fix(nuxt): resolve string extends configs (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1984">#1984</a>) (4a5d7068d6264ea45c78c832abe7ba052763517e) - thanks <a href="https://github.com/DreamLongYT"><code>@​DreamLongYT</code></a>!</li>
   <li>Wrap up webpack entry resolution (505decdb821f9b76d194742cee7e98c75ef7d8e9)</li>
   <li>Keep element access precise for number-like enum member names (bcbac3a8b8283da3b32256584b3cc6569ae5c02f)</li>
   <li>Resolve <code>Object.*</code> enum enumeration through import aliases (347967daaed817ca20e1ad6148388a66ec8b421b)</li>
   <li>Resolve named string-key access on namespace-qualified enums (2ac1fbc1e92f3dae662ca4d4701cf010346be49a)</li>
   <li>Normalize line endings in nuxt-config-string fixture (9fe2b2b2db8690685ec7c6cf8b3d39b9ed7b3fdc)</li>
   <li>Resolve nuxt layer sources from all <code>extends</code> entry shapes (db136151d9f98801837b33646ef7b02ae7b5a86d)</li>
   <li>Report unused exports behind Vitest module promise mocks (resolve <a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1966">#1966</a>) (74954c219367ca1577184cca08c30dbb3fb6222e)</li>
   <li>Check line endings against <code>.gitattributes</code> in <code>pnpm run ci</code> (ddc9fd0cc3328260665203c8573702bb6c9d0dd6)</li>
   </ul>
   <h2>Release 6.32.3</h2>
   <ul>
   <li>Update sentry production snapshot (9f18cba93c91de8554636b13692d6e7a937b7697)</li>
   <li>Pin TypeScript ecosystem test (de5162952d223050f3135afb02d4e8de6d46f381)</li>
   <li>Update query snapshot (f6964dd577d8f7967f9be6778f5c3953632e3c96)</li>
   <li>fix(tsup): match config files with .cts and .mts extensions (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1938">#1938</a>) (68d6f52f7913cfa1e36618e6b03f90734da34149) - thanks <a href="https://github.com/codeAnqiang-ma"><code>@​codeAnqiang-ma</code></a>!</li>
   <li>fix(lefthook): match all config file names and extensions (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1940">#1940</a>) (4015ae0330c78e97360a2c8f697d17f82c5c24ae) - thanks <a href="https://github.com/codeAnqiang-ma"><code>@​codeAnqiang-ma</code></a>!</li>
   <li>fix(binaries): resolve missing pnpm subcommands (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1945">#1945</a>) (deedbf69dcbd6a59d6705a72cadb4e40ad9c8029) - thanks <a href="https://github.com/marcalexiei"><code>@​marcalexiei</code></a>!</li>
   <li>Fix nested gitignore negation inside ignored dot-directories (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1913">#1913</a>) (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1942">#1942</a>) (0201641af48f52edfbe72076118944ee6273718e) - thanks <a href="https://github.com/DSeaStar"><code>@​DSeaStar</code></a>!</li>
   <li>fix(webdriver-io): match all supported config file extensions (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1948">#1948</a>) (dc7aca5a865d1762a41dd97493b73398ec3abc19) - thanks <a href="https://github.com/solomonaustin"><code>@​solomonaustin</code></a>!</li>
   <li>Resolve vitest include patterns relative to test.dir (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1929">#1929</a>) (ee555d227208dd6a34e002318bd6710dedb4d5ca) - thanks <a href="https://github.com/kirthi-b"><code>@​kirthi-b</code></a>!</li>
   <li>Change GitHub stars badge style to flat (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1967">#1967</a>) (ff0d791e8130430524dc88c4df73ad87f82879f7) - thanks <a href="https://github.com/DreamLongYT"><code>@​DreamLongYT</code></a>!</li>
   <li>Ignore printf as global binary (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1972">#1972</a>) (a0c0b0805a8a26a6efdedfe2561b168da2a22b68) - thanks <a href="https://github.com/taracutie"><code>@​taracutie</code></a>!</li>
   <li>fix: add bun 1.4 dedupe subcommand (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1969">#1969</a>) (d1d5d4276ece6daf2215f5ff3f4224b5b50dcac3) - thanks <a href="https://github.com/NimmLor"><code>@​NimmLor</code></a>!</li>
   <li>Resolve Vitest mocks from test root (e655b0ba0192546a2688d702323c8e7c58fecde1)</li>
   <li>Resolve local Vitest reporters from test root (resolve <a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1953">#1953</a>) (f4ff31ad0385c5955627ec1b3bed2bc0000b14fe)</li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a href="https://github.com/webpro-nl/knip/commit/fb25eceeb1934beb0189b4e03b2eb7c9a8e07aaa"><code>fb25ece</code></a> Release knip@6.33.0</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/74954c219367ca1577184cca08c30dbb3fb6222e"><code>74954c2</code></a> Report unused exports behind Vitest module promise mocks (resolve <a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1966">#1966</a>)</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/db136151d9f98801837b33646ef7b02ae7b5a86d"><code>db13615</code></a> Resolve nuxt layer sources from all <code>extends</code> entry shapes</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/9fe2b2b2db8690685ec7c6cf8b3d39b9ed7b3fdc"><code>9fe2b2b</code></a> Normalize line endings in nuxt-config-string fixture</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/2ac1fbc1e92f3dae662ca4d4701cf010346be49a"><code>2ac1fbc</code></a> Resolve named string-key access on namespace-qualified enums</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/347967daaed817ca20e1ad6148388a66ec8b421b"><code>347967d</code></a> Resolve <code>Object.*</code> enum enumeration through import aliases</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/bcbac3a8b8283da3b32256584b3cc6569ae5c02f"><code>bcbac3a</code></a> Keep element access precise for number-like enum member names</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/505decdb821f9b76d194742cee7e98c75ef7d8e9"><code>505decd</code></a> Wrap up webpack entry resolution</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/4a5d7068d6264ea45c78c832abe7ba052763517e"><code>4a5d706</code></a> fix(nuxt): resolve string extends configs (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1984">#1984</a>)</li>
   <li><a href="https://github.com/webpro-nl/knip/commit/c1165b70efe27398b86fa50bcea7d85c253d3ee7"><code>c1165b7</code></a> Resolve oxlint/vite-plus import resolvers from <code>settings</code> (<a href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1983">#1983</a>)</li>
   <li>Additional commits viewable in <a href="https://github.com/webpro-nl/knip/commits/knip@6.33.0/packages/knip">compare view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `intl-messageformat` from 11.2.12 to 11.2.14
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a href="https://github.com/formatjs/formatjs/releases">intl-messageformat's releases</a>.</em></p>
   <blockquote>
   <h2>intl-messageformat: 11.2.14</h2>
   <h2>11.2.14 (2026-08-07)</h2>
   <h2>What's Changed</h2>
   <ul>
   <li>chore(deps): update dependency svelte to v5.56.7 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6940">formatjs/formatjs#6940</a></li>
   <li>chore(deps): update dependency ts-jest to v29.4.12 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6941">formatjs/formatjs#6941</a></li>
   <li>chore(deps): update radix-ui-primitives monorepo by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6942">formatjs/formatjs#6942</a></li>
   <li>chore(deps): update dependency rolldown-plugin-dts to v0.27.14 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6947">formatjs/formatjs#6947</a></li>
   <li>chore(deps): update radix-ui-primitives monorepo by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6948">formatjs/formatjs#6948</a></li>
   <li>chore(deps): update tailwindcss monorepo to v4.3.3 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6949">formatjs/formatjs#6949</a></li>
   <li>chore(deps): update vue monorepo to v3.5.40 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6950">formatjs/formatjs#6950</a></li>
   <li>chore(deps): update dependency svelte to v5.56.8 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6951">formatjs/formatjs#6951</a></li>
   <li>chore(deps): update radix-ui-primitives monorepo by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6952">formatjs/formatjs#6952</a></li>
   <li>fix(deps): update dependency eslint-plugin-formatjs to v6.4.19 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6953">formatjs/formatjs#6953</a></li>
   <li>fix(deps): update formatjs monorepo by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6954">formatjs/formatjs#6954</a></li>
   <li>chore(deps): update dependency fs-extra to v11.4.0 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6959">formatjs/formatjs#6959</a></li>
   <li>chore(deps): update dependency happy-dom to v20.11.1 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6960">formatjs/formatjs#6960</a></li>
   <li>chore(deps): update dependency lucide-react to v1.27.0 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6963">formatjs/formatjs#6963</a></li>
   <li>chore(deps): update dependency oxlint to v1.75.0 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6964">formatjs/formatjs#6964</a></li>
   <li>fix(formatjs_cli): extract id-only messages by <a href="https://github.com/longlho"><code>@​longlho</code></a> in <a href="https://redirect.github.com/formatjs/formatjs/pull/6962">formatjs/formatjs#6962</a></li>
   <li>chore(deps): update dependency tinybench to v6.1.2 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6966">formatjs/formatjs#6966</a></li>
   <li>chore(deps): update dependency webpack to v5.109.0 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6967">formatjs/formatjs#6967</a></li>
   <li>chore(deps): update dependency rollup to v4.62.3 by <a href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in <a href="https://redirect.github.com/formatjs/formatjs/pull/6970">formatjs/formatjs#6970</a></li>
   <li>chore: release main by <a href="https://github.com/longlho"><code>@​longlho</code></a> in <a href="https://redirect.github.com/formatjs/formatjs/pull/6955">formatjs/formatjs#6955</a></li>
   <li>docs: add internationalization best practices by <a href="https://github.com/longlho"><code>@​longlho</code></a> in <a href="https://redirect.github.com/formatjs/formatjs/pull/6972">formatjs/formatjs#6972</a></li>
   <li>docs: add i18n best practices skill by <a href="https://github.com/longlho"><code>@​longlho</code></a> in <a href="https://redirect.github.com/formatjs/formatjs/pull/6973">formatjs/formatjs#6973</a></li>
   <li>feat(formatjs_icu_messageformat): add Rust message formatter by <a href="https://github.com/longlho"><code>@​longlho</code></a> in <a href="https://redirect.github.com/formatjs/formatjs/pull/6974">formatjs/formatjs#6974</a></li>
   <li>feat(formatjs_intl): add Rust intl runtime by <a href="https://github.com/longlho"><code>@​longlho</code></a> in <a href="https://redirect.github.com/formatjs/formatjs/pull/6975">formatjs/formatjs#6975</a></li>
   <li>chore: release main by <a href="https://github.com/longlho"><code>@​longlho</code></a...
   
   _Description has been truncated_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] chore(deps): bump the minor-and-patch group across 1 directory with 24 updates [maka]

Posted by "dependabot[bot] (via GitHub)" <gi...@apache.org>.
dependabot[bot] closed pull request #4401: chore(deps): bump the minor-and-patch group across 1 directory with 24 updates
URL: https://github.com/apache/maka/pull/4401


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] chore(deps): bump the minor-and-patch group across 1 directory with 24 updates [maka]

Posted by "dependabot[bot] (via GitHub)" <gi...@apache.org>.
dependabot[bot] commented on PR #4401:
URL: https://github.com/apache/maka/pull/4401#issuecomment-5488312103

   Looks like these dependencies are updatable in another way, so this is no longer needed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org