# Changelog > Svelte component changes, affected registry items, and update instructions. [Canonical documentation](https://coss.miel.my/docs/changelog) This is the change history for COSS for Svelte. Dates refer to this repository, not the upstream React library. Commit links identify the changes within each day. ## Updating an existing project Registry installs copy source files into your project. Updating a dependency or visiting the new documentation does not update those files. Refresh the affected registry items below, then merge any application-code changes described in the entry. The history currently uses Git commits rather than numbered package releases. Record the repository revision when you install or update components. If you do not know your installed revision, compare your local files with the current registry before deciding that an entry does not apply. For example, refresh the complete Combobox item: ```bash pnpm dlx shadcn-svelte@latest add https://coss.miel.my/r/combobox.json ``` Replace `combobox` with another affected registry ID. Review the diff before accepting replacements, preserve local customizations, and include new files and registry dependencies. Copying one changed file may leave imports unresolved. Install commands fetch the current registry, not the historical commit linked below. Examples have their own source. Refreshing a component does not rewrite an example you copied into an application. Check the affected particle IDs and update that markup separately. Website-only entries require no component reinstall. For agents, use [the Markdown changelog](/docs/changelog.md). The prompt at the end of this page gives a procedure for checking an existing project. ## September 8, 2026 ### Combobox selection and item rendering Refresh `combobox` if your copy predates these fixes. - Selected object values now retain their checkmark when an uncontrolled popup reopens. Queries and selected labels survive item refreshes, and composed input queries reach the list. See [selection identity](https://github.com/mielsense/coss-sv/commit/2d88b7f), [item refreshes](https://github.com/mielsense/coss-sv/commit/4c8908a), and [composed queries](https://github.com/mielsense/coss-sv/commit/2863e09). - `Combobox.List` accepts an `item` snippet, so flat lists no longer need a separate `Combobox.Collection`. Existing Collection usage remains supported. See [list rendering](https://github.com/mielsense/coss-sv/commit/6aeca12). - `createComboboxItems` describes source records using labels and primitive selection values supplied by your `getLabel` and `getValue` callbacks. Item snippets receive the original records. `Combobox.Root` resolves these collections, including grouped and externally filtered items, and rejects duplicate or invalid values. Choose stable IDs in `getValue`. This is optional; existing item arrays remain supported. Refresh the whole item to include its new helper and collection files. See [typed collections](https://github.com/mielsense/coss-sv/commit/af4d63f). - Input-based popups align to the native input rather than its outer border wrapper. Explicit anchors and chip containers keep precedence; inputs inside a popup retain the trigger anchor. Default selections and grouped examples now match the reference. See [popup alignment and examples](https://github.com/mielsense/coss-sv/commit/80214ea). For copied examples, review `p-combobox-2`, `8`, `9`, `10`, `12`, `14`, `16`, and `18` under the `p-combobox-` prefix. Use `defaultValue` for an initial selection. Use `bind:value` or a value-change callback when application state controls the selection. A fixed `value` prop does not become writable state. ### Autocomplete and Command filtering Refresh `autocomplete` and `command` where installed. Both List components now accept a typed `item` snippet that renders the filtered items. Static children remain supported. The grouped `p-autocomplete-10` example and `p-command-1` and `p-command-2` used static group loops, leaving unrelated options visible after a search. These examples now render filtered groups through the List item snippet. All 16 Autocomplete examples use the shared list renderer. Grouped examples retain an inner Collection for the group's items. See [the component and example fix](https://github.com/mielsense/coss-sv/commit/73879e6). If you copied a static group loop, update that application markup too. Reinstalling the component alone will not change it. Check a matching query, a query with no results, arrow-key navigation, Enter, and Escape after updating. Autocomplete and Combobox search inputs also suppress the browser's extra search decoration. Refresh the affected item for this styling fix. See [Autocomplete](https://github.com/mielsense/coss-sv/commit/b569769) and [Combobox](https://github.com/mielsense/coss-sv/commit/af4d63f). ### Select and bindings initialized as undefined Distinct object values with identical labels no longer collapse into one selection. See [duplicate-label handling](https://github.com/mielsense/coss-sv/commit/f2efb9a). Refresh `select` and its `selection-change-context` registry dependency. Refresh `select` for object selection that retains its selected indicator and for function bindings that respect the value returned by the parent. See [object identity](https://github.com/mielsense/coss-sv/commit/8416fe8) and [parent binding responses](https://github.com/mielsense/coss-sv/commit/c32522f). Refresh these items if a binding starts as `undefined`: `checkbox`, `checkbox-group`, `combobox`, `radio-group`, `select`, `switch`, `tabs`, `toggle`, and `toggle-group`. They now observe later bound values instead of remaining on the initial internal state. Existing binding syntax does not need to change. See [the binding fix](https://github.com/mielsense/coss-sv/commit/09cdea9). ### Calendar selection Refresh `calendar` if you use multiple selection. Selection now normalizes dates before toggling them, so a date with a time component compares consistently with its calendar day. See [the selection fix](https://github.com/mielsense/coss-sv/commit/db2b9f6). Existing selection props remain supported. ### Command and submenu refs Refresh `command`, `menu`, and `context-menu` if you bind element refs. Command Input, List, Panel, Footer, and Shortcut now forward refs, as do Menu and Context Menu submenu popups. Check application focus and measurement code that previously received a missing ref. See [the ref fix](https://github.com/mielsense/coss-sv/commit/87b90c9). ### Number Field form submission Refresh `number-field` if you use it inside a named Field. The formatted display input previously submitted alongside the canonical value, creating duplicate form entries. Only the canonical input now submits the value, including before hydration. Native form ownership, reset, validation, and Enter submission are preserved. See [the form fix](https://github.com/mielsense/coss-sv/commit/7cd20c6). Canceled Number Field edits also keep the displayed and canonical values in sync. Form resets restore the initial default, and canceled resets preserve the edited value. Refresh `number-field` for these fixes as well. See [edit and reset handling](https://github.com/mielsense/coss-sv/commit/e528d0b). Remove application workarounds that discard a duplicate entry only after checking the updated `FormData`. The field should submit one value under its name. ### OTP Field reset Refresh `otp-field` if your form can cancel a reset event. The control now keeps its value when the reset is canceled. See [the reset fix](https://github.com/mielsense/coss-sv/commit/23d2603). The documentation also clarifies accessible slot labels. A label on the root names the group. Give individual inputs their own labels; inside a Field, the first input can inherit the Field label. Review copied OTP examples if their slots have no accessible names. ### Delegated attributes Refresh `group` if you customize attributes through delegated render props. `Group.Text` now preserves consumer overrides. Refresh `pagination` if you pass `aria-current={null}` to `Pagination.Link`. Both native and delegated links now honor it instead of restoring the default current-page attribute. See [Group.Text](https://github.com/mielsense/coss-sv/commit/7cd20c6) and [Pagination.Link](https://github.com/mielsense/coss-sv/commit/b569769). ### Copied example defaults Several examples passed fixed values to controlled inputs, so user edits or selected indicators could revert. They now use uncontrolled defaults where the example does not manage state. This affects examples for Select, Combobox, Breadcrumb, Card, Context Menu, Dialog, Drawer, Field, Group, Input, Input Group, Menu, Sheet, and Textarea. The commits list the exact particle files: [selection and form examples](https://github.com/mielsense/coss-sv/commit/7cd20c6), [Combobox examples](https://github.com/mielsense/coss-sv/commit/80214ea), and [remaining defaults](https://github.com/mielsense/coss-sv/commit/c23f43b). Compare any copied particles with those diffs. Use `defaultValue` for an initial value and retain bindings for state the application actually controls. Do not replace every `value` prop mechanically. `p-input-group-27` also handles denied clipboard writes and cleans up copy feedback. ### Documentation and repository maintenance The website and repository changes listed here require no component reinstall. Some linked commits also contain component or particle fixes described above; that advice applies only to the changes listed in this section. - The site and registry commands use `https://coss.miel.my/`. Existing copied source keeps working. Update saved install URLs for future use. See [the domain update](https://github.com/mielsense/coss-sv/commit/894a728). - Code blocks use the matching light and dark syntax themes. Header logo sizing, buttons, preview spacing, homepage grid markers, and inset card headers now follow the reference. See [code themes](https://github.com/mielsense/coss-sv/commit/98f088e), [header styles](https://github.com/mielsense/coss-sv/commit/7bb14fc), and [homepage fixes](https://github.com/mielsense/coss-sv/commit/df993a6). - Manual installation contains long commands and file tabs, supports source expansion, and restores copy controls. See [manual installation](https://github.com/mielsense/coss-sv/commit/8216f4f). - The header reads this repository's star count. Navigation, clipboard feedback, blocked storage, and mobile spacing have fixes. See [stars](https://github.com/mielsense/coss-sv/commit/479115c), [navigation and clipboard](https://github.com/mielsense/coss-sv/commit/a8c48a2), and [website mobile spacing](https://github.com/mielsense/coss-sv/commit/c23f43b). The same commit also changes copied example defaults, covered above. - Documentation preprocessing now distinguishes script tags from similarly named custom elements and respects quoted attributes. Parity comment removal preserves separators instead of joining markup fragments. These are source-processing fixes, not an HTML sanitizer for untrusted content. See [source processing](https://github.com/mielsense/coss-sv/commit/494fc16) and [linear script detection](https://github.com/mielsense/coss-sv/commit/43463dd). - Test-only comment checks no longer use the regular expressions flagged for excessive backtracking. Build ordering and synthetic Drawer gesture timestamps make the checks deterministic. These changes do not alter installed component behavior. See [the test-only comment changes](https://github.com/mielsense/coss-sv/commit/b569769), [build ordering](https://github.com/mielsense/coss-sv/commit/b0558ba), and [Drawer test timing](https://github.com/mielsense/coss-sv/commit/d94b31d). The registry includes these component changes through [b7c8af6](https://github.com/mielsense/coss-sv/commit/b7c8af6). ## September 1, 2026 ### Combobox object toggling Refresh `combobox` and its `selection-change-context` registry dependency if your copy predates [3cc0ab7](https://github.com/mielsense/coss-sv/commit/3cc0ab7). Selecting an already selected object now toggles it correctly in multiple mode and keeps the selected indicator consistent. That change also updates `p-combobox-9`, `p-combobox-12`, `p-combobox-14`, `p-combobox-19`, and `p-combobox-20`. Compare those files if you copied the examples. The September 8 fixes above further correct selection identity and query handling; use the current registry to receive both sets of changes. ### Tooltip positioning Refresh the complete `tooltip` item if your copy predates [893c136](https://github.com/mielsense/coss-sv/commit/893c136). Position transitions now wait for stable geometry, preventing popup flicker and jumps. Keep its registry helper files when merging the update. Check tooltips that move between targets or use composed triggers. ### Documentation and dependency maintenance Particle search and displayed source were restored, and particle source no longer depends on a runtime fetch. Package-manager tabs and Svelte import aliases were added to the docs. These website fixes need no component reinstall. See [particle search](https://github.com/mielsense/coss-sv/commit/12fc741), [source rendering](https://github.com/mielsense/coss-sv/commit/a04a300), and [install tabs](https://github.com/mielsense/coss-sv/commit/cecafd4). The repository pins a patched transitive `cookie` dependency. This affects people building or hosting the repository, not copied component files. Repository users should update their checkout and install from the current lockfile. See [the dependency fix](https://github.com/mielsense/coss-sv/commit/92ad5bb). ## August 31, 2026 ### Initial complete Svelte port The complete component port and documentation registry landed in [1f6593a](https://github.com/mielsense/coss-sv/commit/1f6593a) and [2929e66](https://github.com/mielsense/coss-sv/commit/2929e66). These commits are the baseline for the dated fixes above, not a numbered package release. If you copied files from earlier development commits, compare all installed items with the current registry. Development changes included portable imports, Hugeicons dependencies, complete registry file lists, self-contained particle installs, Field accessibility, Tooltip helpers, and Accordion behavior. Use [the August 31 source tree](https://github.com/mielsense/coss-sv/tree/2929e66) to identify the baseline, then apply later fixes. This changelog groups that initial development work rather than treating each unfinished component as a release. ## Agent update prompt Copy this prompt with the Markdown changelog and give the agent access to your project: ```text Review this project's installed COSS for Svelte components against https://coss.miel.my/docs/changelog.md. Find the local component directory, registry configuration, copied particles, and any recorded installation revision. Do not infer the installed revision from a dependency version. If the revision is unknown, compare local source with the current registry and report that uncertainty. For each applicable entry, list the affected registry IDs and local files, the behavior fixed, and whether it needs a component refresh, an application markup change, or no action. Include dependencies installed indirectly. Use the linked commits to distinguish multiple updates on the same date. Merge only the required updates. Preserve local customizations and include new helper files and registry dependencies. Do not blindly overwrite the component directory or change every controlled value to a default value. Run the project's typecheck and affected interaction tests. Verify selected indicators after reopening, filtering and empty results, keyboard navigation, form values and reset behavior where relevant. Report changes, skipped updates, remaining failures, and the revision used for the comparison. ```