# Mielui — complete documentation Source: http://sveltekit-prerender/docs/components/chart/bar.md # Bar chart Compare categories with grouped or stacked bars. ## Install ~~~~sh pnpm dlx @mielui/svelte add chart ~~~~ ## Usage Use one Bar for each numeric series and match its key to a config entry. Bars share a zero baseline. Set stacked on Root to add bar series together. Positive and negative values stack on opposite sides of zero. Set orientation="horizontal" when category labels need more room. Use the [Chart API reference](/docs/components/chart.md) for all exported parts and their props. ## Examples ### Grouped series Compare two measurements side by side for each category. ~~~~svelte ~~~~ ### Horizontal stacks Stack related counts and keep long category names beside the bars. ~~~~svelte ~~~~ ### Positive and negative values Net changes extend on either side of zero. Negative values remain negative in the tooltip. ~~~~svelte ~~~~ ### Revise a forecast Switch between forecasts for the same months. Values and the numeric scale transition together, including when you switch again before motion finishes. ~~~~svelte
~~~~ ### Continuous motion A light sweep follows the existing bars. It leaves the values unchanged and pauses offscreen. ~~~~svelte ~~~~ For the rendered guide, visit [Bar chart](/docs/components/chart/bar). --- Source: http://sveltekit-prerender/docs/components/chart/line.md # Line chart Follow changes over time without a filled area. ## Install ~~~~sh pnpm dlx @mielui/svelte add chart ~~~~ ## Usage Use a Line for each numeric series. Sort dates before passing data; lines connect points in the supplied order. String categories have equal spacing. Date and numeric categories preserve their distance. A null or missing measurement breaks the line instead of turning into zero. Use the [Chart API reference](/docs/components/chart.md) for all exported parts and their props. ## Examples ### Compare trends Two lines share one numeric scale and a labelled legend. ~~~~svelte ~~~~ ### Missing measurements Wednesday has no reading. The gap stays visible so the chart does not imply a measurement. ~~~~svelte ~~~~ ### Irregular dates April 3 and April 10 are seven days apart. Their spacing is wider than samples taken two days apart. ~~~~svelte ~~~~ ### Continuous motion A traveling highlight follows each line without changing its path or values. ~~~~svelte ~~~~ For the rendered guide, visit [Line chart](/docs/components/chart/line). --- Source: http://sveltekit-prerender/docs/components/chart/area.md # Area chart Show the amount over time with a filled series. ## Install ~~~~sh pnpm dlx @mielui/svelte add chart ~~~~ ## Usage Place Area inside Plot. The fill extends to zero and fades toward the baseline. Multiple areas overlap on the same scale. They are not stacked; use grouped bars when overlap would obscure the comparison. Use the [Chart API reference](/docs/components/chart.md) for all exported parts and their props. ## Examples ### One series Monthly revenue uses one filled series with an outlined edge. ~~~~svelte ~~~~ ### Overlapping series Desktop and mobile sessions share a scale. Their legend and tooltip keep the two measurements identifiable. ~~~~svelte ~~~~ ### Changing values Switch forecasts while the chart is moving. The next transition starts from the current display. ~~~~svelte
~~~~ ### Continuous motion A light sweep travels through the filled area without changing its values. ~~~~svelte ~~~~ For the rendered guide, visit [Area chart](/docs/components/chart/area). --- Source: http://sveltekit-prerender/docs/components/chart/mixed.md # Mixed chart Compare totals and benchmarks in one plot. ## Install ~~~~sh pnpm dlx @mielui/svelte add chart ~~~~ ## Usage Compose Bar, Line, and Area in the same Plot. All marks use the same numeric axis, so their values must use compatible units. Lines do not reserve bar slots or contribute to stacked bar totals. Keep target series in config so legends and tooltips can name them. Use the [Chart API reference](/docs/components/chart.md) for all exported parts and their props. ## Examples ### Totals and target Bars show measured totals and a line shows the target for the same period. ~~~~svelte ~~~~ ### Continuous motion Bar sweeps and the line highlight continue after entry without changing the dataset. ~~~~svelte ~~~~ ### Custom legend and tooltip Move the legend above the plot, omit the grid and Y-axis, and render tooltip values through its snippet. ~~~~svelte {#snippet children({ label, color })}
{label} Live example
{/snippet}
{#snippet children({ label, values })}
{label} {#each values as item} {item.formatted} {/each}
{/snippet}
~~~~ For the rendered guide, visit [Mixed chart](/docs/components/chart/mixed). --- Source: http://sveltekit-prerender/docs/components/pie-chart/pie.md # Pie chart Show a few categories as shares of a total. ## Install ~~~~sh pnpm dlx @mielui/svelte add pie-chart ~~~~ ## Usage Set Arc innerRadius to 0 for a solid pie and omit Label. Each datum has a stable key and a nonnegative value. Use a bar chart when small differences matter or when many categories would produce thin slices. The legend provides exact values without relying on color. Use the [Pie Chart API reference](/docs/components/pie-chart.md) for all exported parts and their props. ## Examples ### Category shares A solid pie with exact values in its legend and tooltip. ~~~~svelte ~~~~ ### Continuous motion Each segment brightens in sequence. Its position and proportion stay fixed. ~~~~svelte

Time by team

Share of tracked hours this week.

~~~~ ### Filter a category Exclude internal traffic and watch the remaining shares recalculate. Stable keys preserve category identity. ~~~~svelte
{#snippet children({ label, percentage })} {label} {percentage.toFixed(1)}% {/snippet}
~~~~ For the rendered guide, visit [Pie chart](/docs/components/pie-chart/pie). --- Source: http://sveltekit-prerender/docs/components/pie-chart/donut.md # Donut chart Place a total or active value inside a category breakdown. ## Install ~~~~sh pnpm dlx @mielui/svelte add pie-chart ~~~~ ## Usage Arc defaults to a donut. Change innerRadius to control the opening and compose Label inside Plot for center content. Place Legend and Tooltip directly inside Root. Their snippets receive the formatted value and the percentage of the current total. Use the [Pie Chart API reference](/docs/components/pie-chart.md) for all exported parts and their props. ## Examples ### Total in the center The default center label shows the total and responds to the active category. ~~~~svelte

Where visitors come from

Sessions by acquisition channel this month.

~~~~ ### Switch periods Switch monthly and annual subscriptions. Slice angles update while the continuous highlight remains decorative. ~~~~svelte

{annual ? 'Annual plans' : 'Monthly plans'}

{#snippet children({ total, active })} {active ? active.value : total} {/snippet}
~~~~ ### Custom center and legend Replace the center content and legend labels while retaining the shared values and keyboard interaction. ~~~~svelte

Infrastructure spend

This month, before tax.

{#snippet children({ total, active })} {currency(active?.value ?? total)} {active ? config[active.key as keyof typeof config].label : 'Total spend'} {/snippet} {#snippet children({ item, label, value, percentage })} {label} {value} {percentage.toFixed(1)}% {/snippet} {#snippet children({ label, value, percentage })} {label} {value} ·{percentage.toFixed(1)}% {/snippet}
~~~~ For the rendered guide, visit [Donut chart](/docs/components/pie-chart/donut). --- Source: http://sveltekit-prerender/docs/agent-skill.md # Agent skill Install with: ```sh npx skills add mielsense/mielui --skill mielui ``` Use /llms.txt for the index and /llms-full.txt for the complete reference. # Mielui Build Svelte interfaces using Mielui's documented APIs, tokens, and composition. Mielui began from Sivir UI and is maintained independently, with its own components, behavior, themes, documentation, and releases. Use Mielui sources for implementation decisions. Sivir examples and version numbers do not establish Mielui compatibility. Preserve the upstream copyright and license notices when copying or redistributing source. The CLI stores them in `notices/mielui/` inside the configured source directory; the repository's UPSTREAM.md records its origins. ## Step 1: Establish the project state Inspect the project before changing code: 1. Confirm the installed Mielui release's peer requirements. Mielui 0.1.1 requires Svelte 5.56 or newer within Svelte 5 and Tailwind CSS v4. 2. Read the package manifest, lockfile, global CSS entry, and nearby Svelte components. 3. Detect the integration mode: - Package mode: `@mielui/svelte` is a dependency and components import from it. - Source-copy mode: `mielui.json` and a local Mielui directory exist. - Not installed: neither mode is present. 4. Identify the installed Mielui package version or the component versions recorded in `mielui.json`. 5. Preserve the project's package manager, import style, aliases, theme, and local component conventions. Do not silently switch an existing project between package and source-copy modes. ## Step 2: Load current Mielui sources Fetch `http://sveltekit-prerender/llms.txt` at the start of each Mielui task. Treat it as the index for the current catalog, installation guide, theming guide, changelog, and generated component references. Load documentation progressively: | Task | Read from the `llms.txt` index | | --- | --- | | First Mielui integration | Introduction, Installation, and Theming | | Choosing components | Components index, then candidate component pages | | Implementing a component | That component's Markdown page and every Mielui dependency needed for custom composition | | AI or coding-agent UI | Candidate AI component pages plus [component selection](http://sveltekit-prerender/docs/component-selection.md) | | Upgrading or resolving an API mismatch | Installed version, the compiled changelog, the LLM changelog page when linked, and component pages | | Visual design or review | [design language](http://sveltekit-prerender/docs/design-language.md) | Each generated component page contains its current version, dependencies, install command, prop tables for exported parts, public `index.ts` API, and runnable examples. `/llms-full.txt` combines the full reference; prefer individual pages for focused tasks. Read the exact page before using a component that is new to the project. Never invent a part, prop, event, variant, slot/snippet contract, or import path. Use this authority order when sources disagree: 1. Local source-copied components define source-copy behavior. 2. The installed package and its declarations define package behavior at the locked version. 3. The live Mielui Markdown defines the latest released API and examples. 4. The rendered documentation is visual context, not a substitute for the typed API. If the project is behind the live release, adapt to the installed API or ask before upgrading. Do not paste latest-only syntax into an older installation. If web access is unavailable, inspect local Mielui source or installed declarations. State that the live reference could not be checked rather than guessing. ## Step 3: Model the interface State the user's job, the dominant content or action, and the important empty, loading, success, and error states. For substantial pages, compare at least two materially different compositions and choose the one that makes the task clearest. Read [design language](http://sveltekit-prerender/docs/design-language.md) before creating or substantially reshaping an interface. Follow the host application's established visual system when it is more specific than Mielui's defaults. Choose geometry before components. Mielui is a set of purposeful primitives, not a requirement to wrap every region in a component. ## Step 4: Select and verify components Read [component selection](http://sveltekit-prerender/docs/component-selection.md) when selecting new primitives or composing an AI interface. Prefer the highest-level Mielui component that matches the interaction semantics. Use native Svelte and semantic HTML for layout and content where Mielui adds no behavior. Avoid recreating focus management, keyboard navigation, overlays, live regions, loading behavior, or controlled state already supplied by a component. Before implementation: 1. List the selected component slugs. 2. Fetch each selected component page from the links in `llms.txt`. 3. Confirm exports, required props, bindable state, event signatures, dependencies, and examples. 4. Reject removed components listed in the current components index and follow its migration guidance. 5. Keep compound components in their documented namespace shape, such as `Dialog.Root` and `Dialog.Content`. Examples are API evidence, not page templates. Adapt their state model and composition to the user's real content. ## Step 5: Install consistently When Mielui is absent, choose with the user unless the requested mode is already clear: | Mode | Choose when | | --- | --- | | Package | The project wants dependency-managed updates and imports from `@mielui/svelte`. | | Source copy | The project wants to own and modify component source. | Use the project's package manager. Translate the documentation's pnpm examples when needed. For package mode: ```sh pnpm add @mielui/svelte ``` Import the token sheet once in the application's global CSS: ```css @import '@mielui/svelte/ui.css'; ``` Ignore the `mielui add` command in a component page when using package mode. That command is only for source-copy projects; package components are already available through the installed dependency. For source-copy mode: ```sh pnpm dlx @mielui/svelte init -y pnpm dlx @mielui/svelte add ``` Import the generated token sheet once and use the aliases recorded in `mielui.json`; do not assume the default path if configuration already exists. Let the CLI resolve transitive Mielui dependencies. Add only components required by the design. Treat `mielui add` as an operation for missing source, not a safe update command. It skips existing files unless `--overwrite` is passed but can still advance recorded versions in `mielui.json`. Before updating copied components, inspect local modifications and the upstream change, then ask before using `--overwrite` because it replaces owned source. ## Step 6: Implement with Mielui Use Svelte 5 state and binding patterns that match the project's code. Preserve native semantics and use the component's typed callbacks and bindable props as documented. Use Mielui semantic tokens and Tailwind utilities before custom values. Let typography, alignment, spacing, and content hierarchy do most of the visual work. Add surfaces, borders, radii, color, and motion only when they communicate grouping, interaction, state, or continuity. For AI interfaces, compose transcript behavior, message roles, response content, reasoning, tools, questions, progress, attachments, and the composer as separate stateful concerns. Do not make every assistant event look like a chat bubble, and do not animate already-live network chunks merely for decoration. Implement real states, not only the ideal screenshot: - Empty content gives a useful next action. - Loading preserves layout and communicates what is pending. - Errors explain what failed and how to recover. - Success confirms the user's action without unnecessary ceremony. - Long content wraps or scrolls in the correct local region. ## Step 7: Verify the result Run the project's normal lightweight formatting and lint checks. Run broader checks only when requested or required by the host repository. Inspect the rendered interface at desktop and narrow widths, in every supported theme. Exercise keyboard focus, overlays, escape and outside-click behavior, form submission, disabled and pending states, transcript following, and long content where applicable. Check the browser console for runtime and accessibility errors. Before finishing, confirm: - Every Mielui API used matches the installed version. - The stylesheet or local token sheet is imported exactly once. - The first viewport makes the task and dominant action or content clear. - Responsive behavior recomposes rather than merely shrinking. - No decorative container, label, icon, color, or motion can be removed without losing meaning. - The implementation uses real product content and covers relevant non-happy states. Report the Mielui components added, integration mode, verification performed, and any version or documentation limitation. ## Current composition contracts The catalog separates Components, Blocks, AI components, Chart components, and Actions. Public component imports remain under `@mielui/svelte/components/` even when source folders use another category. Chart, PieChart, Gauge, and Heatmap are charts. Actions use `@mielui/svelte/actions/`: morph, number-shuffle, and shimmer. Use Dialog instead of Modal, Kbd instead of Shortcut, and HugeiconsIcon with Hugeicons glyph data. Group connects real Button, Input, and trigger components; include Group.Separator between controls. Tag Input uses outline badges. Toast is composable through Root, Content, Footer, Title, Icon, Actions, Action, and Close. The description occupies the upper inset and the compact title/actions row sits below. The toast helpers render these same parts. Overlay surfaces accept `surface="solid" | "glass"` on the documented owning part; do not apply glass independently to nested surfaces. Heatmap.Root accepts `animation="rows" | "columns" | "live" | "none"`, defaulting to rows. Reduced motion disables entrances. Slider range mode binds a pair of numbers, accepts thumbLabels, and supports dir="rtl". Read each page before using these APIs, particularly when the locked package predates the unreleased changelog. ## Tables, native selects, and loading placeholders Compose Table.Root with Header, Body, Row, Head, and Cell. Caption, Footer, and ScrollArea are optional. Use variant="inset" for a recessed table. Sorting and selection remain application state; use native aria-sort and existing Button or Checkbox controls. NativeSelect.Root renders a native select. Bind a string for single selection or a string array with multiple. Its size prop is the native number of visible options. Compose Option and OptGroup inside it. Apply use:shimmer from @mielui/svelte/actions/shimmer to a loading container, or set variant="shimmer" on Skeleton. Shimmer takes no options and disables itself for reduced motion. Label the loading region; the visual highlight is hidden from assistive technology. ## Selection, uploads, and motion Select.Root and Combobox.Root use a string value by default. Set `type="multiple"` and bind a `string[]` for multiple selection. Keep the documented Trigger, Content, and Item composition; multiple selection leaves the menu open. Do not add a second selection store around the binding. FileUpload.Root owns validation and upload state. Use `maxFiles={1}` for single-file picking. Its children snippet exposes the summary for composing the empty dropzone and selected file states. `onUpload` is required; implement the upload there and resolve it only after server confirmation. A local-only demo should explicitly say that it does not upload files. Keep cancellation and retry connected to the documented upload context. Notch provides nonmodal edge content through Root and Content, with optional Header, Peek, SideAction, and other documented parts. Use `` for notifications instead of adding a second notification host. Gauge distinguishes `value={null}` from a valid zero measurement. Gauge and Heatmap accept loading states and handle their own placeholder presentation. Use their documented animation options instead of adding timers around examples. Apply `use:numberShuffle={{ value }}` to a text-only element containing the final number. Keep icons and controls outside it. The action preserves accessible source text and honors reduced motion and disabled theme motion. --- Source: http://sveltekit-prerender/docs/actions.md # Actions - [Morph](/docs/actions/morph.md): animate SVG geometry and text changes. - [Number shuffle](/docs/actions/number-shuffle.md): roll digits when a value changes. - [Shimmer](/docs/actions/shimmer.md): animate a loading highlight. --- Source: http://sveltekit-prerender/docs/actions/morph.md # Morph Animate SVG geometry and text changes with the morph Svelte action. ## API | Option | Type | Default | | --- | --- | --- | | key | unknown | Required | | duration | number | 220 milliseconds | Import from @mielui/svelte/actions/morph. Attach to a visual wrapper inside a button, keeping the accessible name on the button. Change key when its visual content changes. Use a stable wrapper size. Closed shapes with matching viewBox values interpolate. Open strokes and incompatible geometry crossfade. Reduced motion skips animation. Interrupted or unmounted animations remove temporary visual copies. ## Example ```svelte ``` --- Source: http://sveltekit-prerender/docs/actions/shimmer.md # Shimmer Import shimmer from @mielui/svelte/actions/shimmer. Apply use:shimmer to a container. No options are required. The decorative highlight respects rounded corners and reduced motion. Unmounting cancels the animation and restores positioning. Add an accessible loading label to the region. Skeleton supports variant="default" | "shimmer". The default is still. ```svelte
Loading profile…
``` ## Text On a plain-text element, the highlight moves through the letters. Use a status region for loading feedback. ```svelte

Thinking…

``` --- Source: http://sveltekit-prerender/docs/actions/number-shuffle.md # Number shuffle Roll digits as a numeric value changes. ## Usage Import numberShuffle from @mielui/svelte/actions/number-shuffle. Attach it to a text-only element and pass value. Render the final formatted value as normal text for server rendering and accessibility. Keep icons and markup outside the animated element. ```svelte
{value}
``` ## Formatted values ```svelte
{format(value)}
``` ## API reference | Option | Type | Default | | --- | --- | --- | | value | number | Required | | format | (value: number) => string | String | | duration | number | Twice the theme panel duration, fallback 480ms | The action rolls from zero on mount and continues from the current value on interrupted updates. Reduced motion, disabled theme motion, and duration zero show the final value immediately. Visual digits are hidden from assistive technology. Removing the element cleans up animation and restores its styles. --- Source: http://sveltekit-prerender/docs/introduction.md # Introduction mielui is a Svelte 5 and Tailwind CSS v4 component library. Install it as a package or use the CLI to copy component source into your project. ## Requirements - Svelte 5 - Tailwind CSS v4 ## Quick start ~~~~sh pnpm add @mielui/svelte # then in your CSS: # @import '@mielui/svelte/ui.css'; ~~~~ ~~~~sh pnpm dlx @mielui/svelte init -y pnpm dlx @mielui/svelte add button ~~~~ --- Source: http://sveltekit-prerender/docs/installation.md # Installation Install Mielui as a package when you want dependency-managed components, or initialize it with the CLI when you want to own the copied source. ## Package ~~~~sh pnpm add @mielui/svelte ~~~~ Add the token sheet to your CSS: ~~~~css @import '@mielui/svelte/ui.css'; ~~~~ ## CLI ~~~~sh pnpm dlx @mielui/svelte init pnpm dlx @mielui/svelte add button ~~~~ --- Source: http://sveltekit-prerender/docs/theming.md # Theming Mielui components use CSS custom properties from `@mielui/svelte/ui.css`. Import that stylesheet, then override the tokens in your application CSS to adapt colors, radii, typography, and spacing to your product. See the rendered guide at [/docs/theming](/docs/theming) for token examples and theme presets. --- Source: http://sveltekit-prerender/docs/changelog.md # Changelog ## 0.2.0 · Unreleased ### Docs - Document milestone-based releases spanning multiple feature and fix pull requests. - Redesign the landing page with a colorful hero, live component previews, and responsive navigation. - Simplify the landing page copy and showcase, with consistent outer gutters and a distinct theme-driven palette. - Give Docs and Studio a continuous outer shell with recessed content and integrated navigation, header, and footer controls. - Match the landing hero and showcase accents to the active primary color. - Move docs page controls inside the inset frame and soften the outer shell color. - Open docs navigation and page outline in toggleable floating panels, giving content the full page width. - Add nonmodal glass navigation and Studio inspectors with hover reveal and docking, restore the right page outline, and tighten the black outer canvas. - Align the page-outline header with preview tabs, soften docked borders, and strengthen light-mode section headers. - Simplify docs section labels and refresh Studio overlay previews with compact workspace content. - Restore framed lead demos, strengthen section labels, and align footer actions in a flush row. - Simplify Studio section labels and inspector disclosures without separator lines. - Make the selected sidebar page easier to identify with a tinted background and stronger label. - Remove the footer divider to match the borderless page header. - Align the Studio sidebar toggle with its header controls in both floating and pinned layouts. - Soften scrolling content at the header and footer with short background fades. - Improve light-mode preview tab contrast and section info hover visibility. - Keep search results inset from the palette sides and tint keyboard hints with the primary color. - Expand the introduction with a setup comparison, complete package quick start, and guidance for theming and component exploration. - Add a brief pixel reveal between pages, with reduced-motion support and interruptible navigation. - Restore the GitHub star action in Studio with the same ordering as the docs header. - Tighten search result insets and give keyboard hints a solid primary surface with shared control depth. - Match selected preview tabs to the package-manager picker surface. - Remember pinned docs and Studio sidebars independently across visits. - Unify Docs and Studio header controls and harden sidebar pinning and page-transition cleanup. - Correct homepage showcase composition to use supported chart surface settings and labeled tab controls. - Refresh the README screenshot to show the redesigned homepage. ### Feature - Choose single or double borders across framed surfaces, including cards, dialogs, menus, Notch, and Toast in themes and Studio. - Organize Studio appearance and interaction settings, with toggle buttons for value choices and a compact Advanced colors action in the Color header. - Add an opt-in depth toolbar variant with raised keys and recessed selections; the default remains flat. - Use number shuffle for changing numeric readouts in tables, charts, uploads, commands, Studio, and interactive examples. - Customize five pastel chart colors in Studio; chart demos and default series share the same palette. - Choose the top or bottom position of inset strips, with local overrides for fixed headers. - Add an optional inset DataTable layout with compact filters and shared pagination inside the frame. - Preview glass against a colored Studio backdrop, with dropdown, popover, and hover-card examples. - Use rounder default corners and more spacious composer input panels. - Add the Daydream preset with flat sage-gray cards, soft pink controls, and pastel chart colors in light and dark modes. ### Fix - Keep theme choice controls accessibly labelled without unsupported component props. - Extend menu separators across the full inner panel width, including submenus. - Keep tooltip text readable when glass surfaces are enabled. - Refine the optional toolbar depth with shallow key faces and show zoom controls in both toolbar demos, with tooltips matching the input surface. - Make Cartesian, pie, and heatmap tooltips follow single borders and glass surfaces. - Keep donut tooltips aligned with the pointer without a trailing position animation. - Soften live chart highlights, add quiet intervals, and suppress them while inspecting values. - Preserve continuous single-border outlines on tables and preview/code cards. - Keep glass inset panels visually distinct while allowing backdrop colors through. - Align the Native Select chevron with other selection controls without a duplicate native arrow. - Keep installation command tabs above the command regardless of inset-strip preference. - Retain structural inset gutters on data tables, composers, and code/preview panels in single-border mode. - Soften the dark glass composer input tint so backdrop color stays visible without a heavy grey fill. - Preserve custom accessible labels on numbered data-table pagination. - Avoid duration-formatting errors for tool status values with excessive decimal precision. - Keep file diff signs attached to their animated counts and remove redundant inset surface styles. - Preserve preset colors, typography, and token overrides when selecting or exporting a theme in Studio. - Keep the Studio preset picker and reset button aligned across theme densities. ## 0.1.1 ### Breaking - Remove Fullscreen Nav. Use Sheet with navigation links for mobile menus. - Rename Modal to Dialog, including its types, package subpath, and CLI command. - Replace standalone Toast usage with Toast.Root and its composable parts. Toast progress bars have been removed. - Renamed Shortcut to Kbd, including its import path and prop type. - Require Svelte 5.33 or newer for attachment support. - Card titles default to level-two headings and accept an explicit heading level. - Alert announcements are opt-in, with separate polite and assertive modes. - Breadcrumb current-page state is explicit instead of inferred from the router. - Reorder List dragging starts from its handle; row content remains interactive and accessible. - Enforce mode-specific Input, Question, Accordion, and Toggle Group values and branch-specific Button and Badge attributes. - Require Svelte 5.56 or newer for modern reactive template declaration syntax. ### Docs - Use pnpm and Node.js for repository setup, development, and release tooling. - Added a component audit covering behavior, accessibility, composition, and motion. - Moved Show More into Blocks. - Toolbar now appears under Blocks. Its import path stays the same. - Add manual installation instructions with dependency commands, file tabs, copying, and expandable source. - Add a right-aligned On this page sidebar with smooth section navigation and reduced-motion support. - Move Gauge into Chart components. - Use Hugeicons throughout components and examples, with an SSR-safe HugeiconsIcon renderer. - Use dashed guides in the left documentation navigation. - Add replay controls to inset chart previews. - Align the documentation breadcrumb with the article heading. - Add Copy page actions with Markdown and AI links. - Replace anatomy summaries with prop tables for every exported component part, including native attributes and events. - Add the Agent skill guide and a complete llms-full.txt reference. - Update example identities and project links to mielsense. - Improve code-example formatting and separate API reference links in the page outline. - Document every Table and Native Select part and use Table for API references. - Shorten repetitive documentation copy and update component counts. - Soften the scrolling edge beneath the documentation toolbar. - Animate native-attribute disclosures with Collapsible. - Align Star and theme controls with the page outline and use a home icon in breadcrumbs. - Document component reuse and accessible interaction motion in the design guidelines. - Group Reorder List, Command, Color Picker, and Toast under Blocks while preserving their imports and documentation links. - Include motion actions in the component catalog and keep its counts and search in sync with navigation. - Show headless component props in the main API tables and document props from every discriminated mode. - Join the publish-date input and calendar trigger with Group in the Date Picker example. - Keep the Number Field seat-count example compact instead of stretching the control to its container. - Show Data Table search and filtering as one joined control. - Replace the Toolbar demo with selectable design tools and keyboard hints. - Rebuild Studio previews with aligned control states, Charts and AI sections, and an invoice table. - Separate basic remote form validation from multiple actions and reset. - Allow unrestricted cross-month selection in the two-month Range Calendar example and show its selected dates. - Join Date Range Picker inputs and calendar trigger with Group. - Add a promise-toast demo and use promise notifications in Form examples. - Organize Studio theme controls into collapsible sections with a tooltip-labelled advanced settings button. - Give both levels of the nested Drawer example handles and normal dismissal. - Add Bun install commands with syntax highlighting. - Add composed examples for File Upload, Reorder List, Toolbar, Separator, and Response Stream. - Add tooltips to Studio and documentation icon actions. - Simplify the top navigation to Docs and Studio. - Replace machine-specific paths in the design-system implementation plans. - Derive homepage component counts from the catalog and check each catalog entry's category, examples, and API reference. - Document controlled overlays, upload cancellation and retry, and theme storage limitations. - Add a live File Diff example and refresh generated component prop tables. - Use shared border, radius, and elevation tokens in legacy API tables. - Document shared edge, inset, focus, and motion rules for component contributions. - Keep Notch and notch notification examples inside their preview frames. - Make chart state and period-switching examples easier to adapt with named event handlers. - Chart guides have dedicated type pages, searchable navigation, and matching Markdown references. Tablet documentation navigation remains accessible. - Split chart examples into focused bar, line, area, mixed, pie, and donut guides with continuous motion, data updates, missing measurements, and loading states. - Add interactive Gauge capacity and Heatmap reporting-range examples. - Use flat leading previews and source sections, inset example cards, compact API table headers, and persistent footer page actions. - Block examples now include contained toast previews, continuous Markdown streaming, recoverable task steps, and visible command and code-action results. - Component examples now include working local actions, accessible icon controls, upload completion and recovery, and shorter variant comparisons. - Make AI examples finish, stop, and retry their simulated work; preserve partial responses and clean up pending delivery when previews close. - Document AI state ownership and add composed tool retries, response cancellation, and interactive Morph and Shimmer examples. - Rebuild Docs and Studio around fixed headers and footers, thin section dividers, and quieter navigation. Widen the documentation section rail. - Clarify inherited glass surfaces and keep example action results spaced below their controls. - Center the homepage cat within a bordered layout with subtle dithering and muted scrolling component names. - Keep preview toolbars aligned across nested examples and prevent their controls from overlapping pinned section headings. - Clarify core component setup and form behavior, and make the Group and indeterminate Progress examples interactive. - Balance section content spacing, keep sticky headings opaque, and center grid intersections across the documentation rails. - Keep navigation headings and the leading preview toolbar sticky, use text-only hover and selection states, and show API guidance from an info control. - Align footer actions with the header columns and disable elastic overscroll across the site. - Match error pages to the documentation grid and provide a retry action when a page fails to load. - Add visual component catalog cards with descriptions and search across component names and descriptions. - Present each changelog version as a sticky section and keep catalog descriptions in footer info cards. - Simplify Studio into aligned control and content previews, unify its tabs, and match footer and header heights. - Move Studio preview tabs into the header and preview width controls into the footer. - Keep headers, footers, section headings, and navigation headings at one shared height, with aligned intersection marks. - Align Studio chart, conversation, and application previews with the shared section layout and keep the composer clear of messages. - Strengthen section headings and move Button behavior notes into its Usage section. - Keep component behavior notes inside their relevant sections instead of below standalone previews. - Remove the trailing divider below Studio’s Typography controls. - Widen Studio’s conversation preview and place its simulation note below the composer. - Let the Studio conversation span the preview and scroll behind a narrower floating composer. - Add matching grid junction markers at the Studio header and footer. - Clarify block and AI component usage, state ownership, and Markdown link and image handling. - Review every component’s usage, examples, and API coverage; add chart loading, empty-data, and animation examples to each chart-type guide. - Keep documentation scrolling available over Toast previews and show section descriptions in information hover cards. - Remove excess space below the final documentation sidebar item. - Use warm pastel red and yellow series colors in chart examples. - Add loading, empty, and live-motion controls to Gauge and Heatmap examples. - Show a larger invoice dataset in Studio using the shared Data Table, with sorting, selection, and pagination. - Arrange Studio component cards in compact responsive stacks, with a smaller calendar and label and sharing examples. - Remove the repository’s OpenCode setup and skill lockfile. - Show the Markdown preview directly on the canvas without a card or nested scroll area. - Group components by type in the sidebar, with a preview catalog for each group. - Make documentation search more compact, with quick destinations and a scrollable results list. - Add space between catalog cards and use consistent parent-label styling and spacing for all nested sidebar groups, including charts, while keeping standalone links compact. - Keep the expanded Notch export example clear of its trigger and show its file count in a compact badge. - Nest catalog categories under Components in the page outline. - Increase the space between component catalog sections. - Clarify the homepage description of component theming. - Match the Code tab background and rounded corners to its example preview. - Add a single-file upload example that replaces the dropzone with the selected file. - Gently snap sidebar groups and page sections to the top while preserving free scrolling within long sections and reduced-motion preferences. - Snap sidebar group headings to the top without snapping to the bottom edges of long groups. - Give consecutive documentation examples more separation while keeping their headings and previews together. - Prevent sidebar settling from targeting offscreen groups; only visible headings approaching the top can catch. - Align page-outline link gutters and nested indentation with the navigation sidebar. - Use the same bounded top-only magnetic settling in the content column and sidebar. - Give the page-outline hook a full outer gutter and more space before its labels. - Align the footer info icon with the navigation button inset and distinguish outline hover previews with a dashed gray hook. - Move the page-outline hook directly to a clicked section without pausing on headings passed during smooth scrolling. - Keep catalog search pinned in a header-height row, with section headings and outline jumps positioned below it. - Slow the page-outline hook’s glide while retaining direct section targeting and reduced-motion behavior. - Remove the doubled divider between catalog search and the first section. - Match article, toolbar, and footer side gutters to the page-outline header. - Align the leading Preview / Code tabs with the shared content gutter. - Give documentation content a moderate side gutter while keeping tabs, headings, toolbar, and footer aligned. - Scale magnetic catch distances to neighboring section heights and settle only once per downward scroll gesture, preventing short sections from oscillating. - Match the Copy page control height to the adjacent-page arrows in the docs footer. - Keep Form and keyboard-shortcut demo feedback inside their previews and dispose unfinished toast demos on navigation. - Separate page-outline state and Studio token parsing from presentation while reducing unnecessary outline work during preview updates. - Update the agent skill and package guides for Mielui's current APIs, independent release history, and retained Sivir UI and COSS attribution. - Refresh the README screenshot with the current homepage. - Clarify current documentation sources and distinguish the historical Sivir UI changelog from Mielui releases. - Document npm publishing authorization and the GitHub release steps for maintainers. - Add agent release guidance and clarify first-publication setup before enabling trusted publishing. ### Feature - Group components into Components, Blocks, AI components, and Chart components. Existing imports and docs URLs stay available. - Toast notifications use an inset content area with a title and action buttons in the footer. - Slider adds pill-shaped handles, a two-handle range mode, and right-to-left support. - Group connects related controls with separators and optional text, in horizontal or vertical layouts. - Add Heatmap with composable calendar, labels, summary, detail, legend, and keyboard navigation. - Add Morph for SVG geometry transitions and text changes, including the theme switch. - Add optional glass surfaces to overlays, menus, tooltips, selection popups, and toasts. - Add a centered component preview and wide or narrow canvases to Theme Studio. - Animate Heatmap cells and Gauge arcs on entry, with reduced-motion support. - Add Table with default and inset variants, plus Native Select with grouped and multiple options. - Add the Shimmer action and a shimmer variant for Skeleton. - Add site-wide documentation search with Command-K and Control-K. - Add a glass Composer surface and a Thinking text example for Shimmer. - Add composable Task Steps rows and summaries, Reorder List handles and content, and Message metadata parts. - Add separate Tool trigger/content parts, Color Picker surfaces, and Show More preview/trigger slots. - Add Command search/result slots, optional Alert icons, and an optional Sheet header close control. - Add controlled Context Menu state and manual tab activation. - Add scoped Tooltip providers and noninteractive rich descriptions. - Add composable Field, Fieldset, and Form components with accessible errors and SvelteKit remote-form examples. - Add Calendar, Range Calendar, Date Picker, and Date Range Picker with keyboard navigation and date constraints. - Add Number Field and OTP Field with native form submission and reset support. - Add Separator and a public composable Toolbar with keyboard navigation. - Add a swipe-dismissable Drawer with modal focus management. - Add a composable Data Table powered by TanStack Table v9, with explicit sort menus, editable filter chips, selection, and pagination. - Data Table filters accept a search control as children and align filter and sort buttons with inputs. - Form error summaries accept validation paths directly and focus after unsuccessful submissions. - Add File Upload with validation, progress, cancellation, retries, and animated completion. - Initialize Mielui from a Studio JSON preset with `init --preset`, or apply it with `add theme`. - Set glass surfaces globally from Studio or the `--mielui-surface` CSS variable. - Studio’s AI workspace demonstrates streamed Markdown, reasoning, tool activity, file attachments, and an overlaid composer with stop and replay controls. - Studio’s component preview centers interactive mini cards for controls, checklists, team members, and disclosures. - Checkbox supports small, medium, and large sizes, with a larger 18px default. - Add composable bar, line, area, mixed, pie, and donut charts powered by LayerChart, with tooltips, legends, and animated data updates. - Charts offer entry reveals and ongoing live highlights that respect reduced motion and pause offscreen. - Add a composable Empty State for first-use screens, empty search results, and completed work. - Add Notch for custom activities at any screen edge, with solid and glass surfaces and animated expansion. - Toast notifications can use a shared Notch surface through the Toaster variant. - Notch offers a persistent peek rail, timed notifications, and swipe dismissal, with timers paused during interaction. - Heatmap includes a shared tooltip for hovered and keyboard-focused days, with an optional Tooltip part for custom layouts. - Adjust edge highlight strength in Studio or theme presets. Controls, keycaps, and raised surfaces now use half strength by default. - Notch supports detached side actions that unfold on hover or focus. Notch notifications show one item at a time with previous and next controls. - Place counters or custom content outside a Notch with Accessory; notification counts now use this separate part. - Add built-in live motion to Gauge and Heatmap through their animation props. - Add built-in loading and empty-data states to Gauge and Heatmap. - Select and Combobox support multiple selection with array values and menus that stay open while choosing options. - Add the Number shuffle action and animate Gauge values with rolling digits. ### Fix - Replace the logo and favicons with the approved compact cat silhouette. - Tag Input values have visible badge borders and backgrounds. - Toast timers pause during keyboard interaction, and close buttons remain visible. - Toast descriptions have more room above a compact title and action row. - Tag Input badges use stronger borders and a contrasting fill. - Homepage navigation uses equal button heights and spacing, with the redundant Components button removed. - Tag Input uses the standard transparent outline Badge styling. - Restore Changelog and Studio pages after TypeScript preprocessing and component path errors. - Preserve Group outer borders with single-pixel separators and composed Input, menu, and popup examples. - Match Alert to the inset Toast layout, with the description above the status row. - Render Tag Input tags as transparent outline badges. - Keep the darker inset panel inside frosted glass overlays. - Match Alert text size, vertical centering, and status-row spacing to Toast. - Use a minus indicator for checked checkboxes. - Keep morph visuals in place while updating SVG geometry without a delayed icon swap. - Keep the theme icon color synchronized with the active theme during morph transitions. - Align Switch labels with the pill-shaped control. - Keep Accordion borders between items only. - Restore original SVG visibility when Morph is removed or its child icon changes. - Respect the theme’s disabled-motion setting in chart entrances and motion actions. - Preserve checkbox state while disabled and forward accessible names to the native input. - Size Composer submission controls to their visible content and respect custom action labels. - Preserve fractional Gauge ranges and normalize invalid numeric values. - Fix preview deployment type checks for icon imports, native controls, table captions, and documentation examples. - Use Bits UI for dialogs, sheets, popovers, menus, selection controls, tabs, disclosures, switches, and toggles while retaining Mielui styling and motion. - Add menu keyboard navigation, typeahead, nested dismissal, and touch long-press behavior. - Preserve canceled events, optional overlay labels, and conditional dialog actions. - Keep option labels and disabled selections synchronized as collections change. - Prevent obsolete streams, clipboard requests, and canceled reorder gestures from overwriting newer state. - Reconcile toast persistence, durations, paused timers, and visible notification limits. - Connect field and tooltip descriptions to their controls, and ignore inactive or composing shortcuts. - Update scroll cues after content changes and support fractional progress ranges. - Preserve preview state when switching to source code and reduce redundant status animation. - Reset Avatar loading state on source changes and preserve native image callbacks. - Keep skeleton placeholders inert, normalize pagination bounds, and prevent silent inset Card footer replacement. - Add keyboard navigation to Toolbar and improve Color Picker labels, pointer ownership, and reduced motion. - Preserve Slider handle identity while adopting Bits UI keyboard behavior and adding named form values and reset support. - Use Bits UI for Combobox navigation and selection while preserving fuzzy search and Mielui styling. - Show submission errors without losing Composer drafts or Question answers, and ignore obsolete completions. - Keep disabled Button links from navigating and preserve native Input checkbox, radio, and file semantics. - Repair active tabs after removal or disabling, and keep Command results synchronized during collection changes. - Keep IME confirmation and canceled click handlers from activating commands or opening selection popups. - Give toasts one visual exit and stop long response streams from animating every character. - Preserve Group variant styling with a single joined divider. - Forward overlay action refs and keep cancel actions from stealing focus after opening. - Defer offscreen documentation previews while preserving mounted preview state. - Remove the resting shadow from outline buttons while retaining their border and keyboard focus indicator. - Show invalid input borders and reveal field errors with interruptible, reduced-motion-aware transitions. - Restore pointer hover and selection in menus and floating panels by keeping their content above dismissal layers. - Keep top and bottom drawers full width in the examples and give nested drawers separate backdrops and focus boundaries, with cancelled swipes returning to rest. - Prevent date segments from overlapping on narrow screens and keep calendar popups above surrounding navigation. - Keep advanced Studio spacing and motion overrides until their corresponding preset changes. - Match date-picker trigger heights to their inputs and keep hover feedback distinct. - Position Toast dismiss buttons at the top-right without covering the message. - Use round send and stop icons in Composer without changing its toolbar variants. - Show rejected attachments in compact error cards without decoding oversized image previews. - Animate promise toast resizing in 50 ms and place title-only messages inside a fitted inset panel. - Preserve Studio color, typography, spacing, and motion choices in CLI-compatible theme exports. - Keep tab highlights aligned while their dialog or other parent animates in. - Studio places advanced colors below the color controls and groups shape and motion presets with labeled advanced-settings buttons. - Studio previews share one surface, with dedicated Charts and AI tabs and flush joins on advanced-setting controls. - Studio uses full-width previews, a denser component gallery, and joined preset and copy controls. - Studio shows a year of heatmap activity and pairs a full-width conversation with the narrower Composer layout used in its documentation. - Fix TypeScript errors in composed controls, upload and toast motion, and documentation examples while preserving native event handlers and refs. - Update the docs and installer workspace to Svelte 5.57.1 and SvelteKit 2.70.3, with svelte-check 4.7.6. - Honor a consumer project's declared package manager and recognize Bun lockfiles in the CLI. - Keep theme editing usable when browser storage is blocked or full, and report failed theme saves. - Keep upload image previews stable as progress changes. - Keep Dialog, Sheet, Popover, and File Diff state synchronized with their bound values and current props. - Restore nested dialog stacking, single-layer dismissal, focus return, and shared background scroll locks. - Cache the GitHub star count and retain the last valid count during temporary API failures. - Preserve invoice-preview state when switching Studio tabs. - Buttons, fields, selects, and floating surfaces share subtle light-catching edges that follow the theme’s shadow settings. - Gauge defaults to a larger 120px display with proportional arcs and labels, and smoothly animates value changes. - Pie chart tooltips use opaque inset surfaces. - Menus, overlays, tooltips, conversation scrolling, and response text respect reduced motion and the theme’s disabled-motion setting. - Accordion triggers retain their content relationships, and focus traversal includes editable text regions. - Joined inputs, selects, and buttons share one control height across sizes. Table badges fit their labels instead of filling the cell. - Segmented tabs keep even rail padding at fractional spacing and inside scaled containers. - Keep inset Cards stable when their footer is removed during a state change. - Studio groups edge highlight strength under its switch and restores the previous strength when re-enabled. - Data Table uses the shared inset Table surface with a compact header. - Alert dialogs announce their title and description. Select triggers and option lists now expose linked combobox semantics and accessible names. - Combobox results collapse smoothly when filtered and stop locking page scroll as soon as the menu closes. - Give Notch content more padding and keep its detached actions close to the panel. - Dialogs restore focus when removed while open without interrupting a newly opened dialog. - Escape closes only the deepest open dropdown or context submenu, keeping its parent menu available. - Notch side actions unfold with synchronized shape and button motion, including interrupted hover changes. - Morph and Shimmer stop active effects when inherited theme motion is disabled and clean up their theme observers on removal. - Stopping a controlled Composer response no longer submits the preserved prompt again when the control returns to Send. - Let Show More content fade into its surrounding surface without a mismatched background strip. - Rework live chart motion with stationary pie highlights, area-fill sweeps, and staggered bar highlights; keep offscreen effects paused without trapping visible sweeps. - Keep Reasoning duration labels spaced, respect reduced motion in copy feedback, and keep notch notification text wrapped during morphs. - Guard font preference storage and isolate font state between server renders. - Keep Accordion accessibility relationships valid when content is omitted and honor disabled Tag Input controls. - Keep disabled Popover triggers closed and dismiss empty tooltips. - Preserve invoice draft validation and reset stale filters when creating or locating an invoice in Studio. - Scale Heatmap entrance timing with the theme motion setting. - Keep page-outline jumps aligned after lazy previews load and track section headings by their document position. - Remove content and icon morphing from Toast notifications, including stacked Notch notifications. - Prevent hidden chart data tables from creating extra scroll space inside previews. - Give chart loading and empty messages the shared inset card appearance. - Match Heatmap tooltips to the shared chart surface and inset the Gauge arc inside a thicker track. - Give Gauge arc ends a subtle corner radius. - Keep Gauge loading and empty states compact without a nested card. - Preserve the Heatmap calendar layout while loading or showing no activity. - Match the Gauge background track to its colored arc thickness. - Restore the Color Picker hue slider’s rainbow track. - Match catalog preview button text colors to the active theme. - Place Switch edge highlights on the thumb, keep passive surfaces flat, and preserve control edges when fields and buttons receive focus. - Restrict the native file picker to one file when maxFiles is one. - Keep File Upload removal animations inside the file list instead of jumping toward the viewport corner. - Preserve the Gauge loading ring while using theme colors for its mask. - Keep slider dragging focused without rescheduling focus on every pointer movement, and clear stale tab hover indicators when tabs disappear or become disabled. - Honor motion settings and visibility for spinner, progress, and shimmer animations; update traveling highlights when theme motion settings change. - Restore Notch swipe position and release pointer capture when gestures reverse or are cancelled. - Handle large chart datasets without argument-limit failures and avoid rebuilding number formatters for every tick or slice. - Parse small percentage color alpha and repeated CSS variable references correctly in Studio. - Keep Studio header sizing within supported limits and reject font values that can break generated CSS declarations. - Show indeterminate attachment progress for nonfinite values and refresh Morph text colors after theme changes. - Evaluate nested Studio length calculations with correct arithmetic precedence and root-relative units. - Include upstream license and attribution notices with CLI source installations without replacing the application's own license. - Remove unused bundled documentation fonts that lacked accompanying license notices. - Keep theme registry schema normalization compatible with its Elysia runtime. - Avoid false tab-alignment test failures caused by browser subpixel rounding. - Prevent dependency discovery from reloading browser tests during fresh CI runs. ## 0.1.0 ### Docs - Initialize Mielui from Sivir UI with renamed packages and docs, preserved MIT attribution, and sleeping-cat branding. - Start Mielui releases at 0.1.0, independently of upstream Sivir UI versions. - Simplify the sleeping-cat favicon and matching logo to a single outline. - Use a mauve default accent with dark button labels and a lighter hover state. - Restore the README’s overview, preview, documentation link, and agent-skill instructions. --- Source: http://sveltekit-prerender/docs/components.md # mielui components Each component reference is generated at build time from its package manifest, public API source, and Svelte examples. Published Markdown reflects changes to those canonical sources. ## Components - [Accordion](/docs/components/accordion.md) - [Alert](/docs/components/alert.md) - [Alert Dialog](/docs/components/alert-dialog.md) - [Avatar](/docs/components/avatar.md) - [Badge](/docs/components/badge.md) - [Breadcrumb](/docs/components/breadcrumb.md) - [Button](/docs/components/button.md) - [Calendar](/docs/components/calendar.md) - [Card](/docs/components/card.md) - [Checkbox](/docs/components/checkbox.md) - [Collapsible](/docs/components/collapsible.md) - [Combobox](/docs/components/combobox.md) - [Context Menu](/docs/components/context-menu.md) - [Date Picker](/docs/components/date-picker.md) - [Date Range Picker](/docs/components/date-range-picker.md) - [Dialog](/docs/components/dialog.md) - [Drawer](/docs/components/drawer.md) - [Dropdown Menu](/docs/components/dropdown-menu.md) - [Empty State](/docs/components/empty-state.md) - [Field](/docs/components/field.md) - [Fieldset](/docs/components/fieldset.md) - [File Upload](/docs/components/file-upload.md) - [Form](/docs/components/form.md) - [Group](/docs/components/group.md) - [Hover Card](/docs/components/hover-card.md) - [Input](/docs/components/input.md) - [Kbd](/docs/components/kbd.md) - [Label](/docs/components/label.md) - [Native Select](/docs/components/native-select.md) - [Number Field](/docs/components/number-field.md) - [OTP Field](/docs/components/otp-field.md) - [Pagination](/docs/components/pagination.md) - [Popover](/docs/components/popover.md) - [Progress](/docs/components/progress.md) - [Radio Group](/docs/components/radio-group.md) - [Range Calendar](/docs/components/range-calendar.md) - [Scroll Area](/docs/components/scroll-area.md) - [Select](/docs/components/select.md) - [Separator](/docs/components/separator.md) - [Sheet](/docs/components/sheet.md) - [Skeleton](/docs/components/skeleton.md) - [Slider](/docs/components/slider.md) - [Spinner](/docs/components/spinner.md) - [Switch](/docs/components/switch.md) - [Table](/docs/components/table.md) - [Tabs](/docs/components/tabs.md) - [Tag Input](/docs/components/tag-input.md) - [Textarea](/docs/components/textarea.md) - [Toggle](/docs/components/toggle.md) - [Toggle Group](/docs/components/toggle-group.md) - [Tooltip](/docs/components/tooltip.md) - [Typography](/docs/components/typography.md) ## Blocks - [Code Block](/docs/components/code-block.md) - [Color Picker](/docs/components/color-picker.md) - [Command](/docs/components/command.md) - [Copy Button](/docs/components/copy-button.md) - [Data Table](/docs/components/data-table.md) - [File Diff](/docs/components/file-diff.md) - [Markdown](/docs/components/markdown.md) - [Notch](/docs/components/notch.md) - [Reorder List](/docs/components/reorder-list.md) - [Show More](/docs/components/show-more.md) - [Task Steps](/docs/components/task-steps.md) - [Toast](/docs/components/toast.md) - [Toolbar](/docs/components/toolbar.md) ## AI components - [Attachment](/docs/components/attachment.md) - [Composer](/docs/components/composer.md) - [Conversation](/docs/components/conversation.md) - [Message](/docs/components/message.md) - [Question](/docs/components/question.md) - [Reasoning](/docs/components/reasoning.md) - [Response Stream](/docs/components/response-stream.md) - [Tool](/docs/components/tool.md) ## Chart components - [Chart](/docs/components/chart.md) - [Gauge](/docs/components/gauge.md) - [Heatmap](/docs/components/heatmap.md) - [Pie Chart](/docs/components/pie-chart.md) ## Package assets - [Brand Mark](/docs/brand-mark.md) - package-only logo component; not available through `mielui add`. ## Removed components These names are no longer standalone package exports or CLI installation targets. - **Modal:** Rename Modal to Dialog and use the dialog package subpath or CLI target. - **Fullscreen Nav:** Compose Sheet with navigation links for a mobile menu. - **Approval Request:** Compose `AlertDialog` directly with the review details and confirmation actions required by your workflow. - **Marquee:** Use a restrained Tailwind animation around the content only when continuous motion is essential. - **Panel:** Use `Card.Root variant="panel"` for the former framed panel treatment. --- Source: http://sveltekit-prerender/docs/components/native-controls.md # Native controls Buttons, text fields, and selects built around native form elements. ## Components - [Button](/docs/components/button.md): Displays an action or link with stable loading, success, and error states. - [Input](/docs/components/input.md): Text input with labels, helper text, leading and trailing adornments, visual variants, and native validation. - [Native Select](/docs/components/native-select.md): A select field that uses your browser and operating system's option picker. - [Textarea](/docs/components/textarea.md): Multi-line text input with labels, descriptions, and automatic resizing. --- Source: http://sveltekit-prerender/docs/components/inputs.md # Inputs Selection, numeric, file, and structured inputs. ## Components - [Checkbox](/docs/components/checkbox.md): A binary option presented as a labeled box. - [Combobox](/docs/components/combobox.md): Searchable select dropdown with fuzzy matching. - [File Upload](/docs/components/file-upload.md): File uploads with progress, cancellation, retry, and animated completion. - [Number Field](/docs/components/number-field.md): Numeric input with native validation and composable step controls. - [OTP Field](/docs/components/otp-field.md): One accessible input, presented as individual code cells. - [Radio Group](/docs/components/radio-group.md): A group of mutually-exclusive options. - [Select](/docs/components/select.md): Single or multiple selection from a short, known option list. - [Slider](/docs/components/slider.md): Single-value and two-handle sliders with keyboard and RTL support. - [Switch](/docs/components/switch.md): On/off toggle for system-level settings. - [Tag Input](/docs/components/tag-input.md): Enter and validate removable tags with keyboard, paste, and form support. - [Toggle](/docs/components/toggle.md): A two-state button that is pressed or unpressed. - [Toggle Group](/docs/components/toggle-group.md): A row of toggles with shared selection state. --- Source: http://sveltekit-prerender/docs/components/forms.md # Forms Labels, field groups, validation, and form composition. ## Components - [Field](/docs/components/field.md): Composable labels, descriptions, and validation for native and custom form controls. - [Fieldset](/docs/components/fieldset.md): Native form grouping with legends, descriptions, and disabled semantics. - [Form](/docs/components/form.md): Composable native forms that preserve SvelteKit actions, remote-form attachments, validation, and submitter behavior. - [Label](/docs/components/label.md): A styled native label that names a form control. --- Source: http://sveltekit-prerender/docs/components/dates.md # Dates Calendars and date selection for single dates and ranges. ## Components - [Calendar](/docs/components/calendar.md): A composable calendar for choosing a single date. - [Date Picker](/docs/components/date-picker.md): An editable date field with a calendar popup. - [Date Range Picker](/docs/components/date-range-picker.md): Editable start and end dates with a shared calendar popup. - [Range Calendar](/docs/components/range-calendar.md): Choose a start and end date with keyboard navigation and a continuous range highlight. --- Source: http://sveltekit-prerender/docs/components/navigation.md # Navigation Breadcrumbs, pagination, and tabbed views. ## Components - [Breadcrumb](/docs/components/breadcrumb.md): A trail of links showing the user's position in a hierarchy. - [Pagination](/docs/components/pagination.md): A compact pager that truncates with an ellipsis. Always shows the first and last page so users know how big the data set is. - [Tabs](/docs/components/tabs.md): Switch between mutually-exclusive views with horizontal or vertical tabs and a sliding indicator. --- Source: http://sveltekit-prerender/docs/components/overlays.md # Overlays Dialogs, menus, panels, and contextual information. ## Components - [Alert Dialog](/docs/components/alert-dialog.md): A dialog that interrupts the user to confirm a consequential action. - [Context Menu](/docs/components/context-menu.md): A right-click menu for actions that apply to whatever the user clicked on. It uses the same item grammar as DropdownMenu and opens on right-click. - [Dialog](/docs/components/dialog.md): A dialog for focused tasks, forms, and details. - [Drawer](/docs/components/drawer.md): Swipeable edge panel with accessible focus management and direct manipulation. - [Dropdown Menu](/docs/components/dropdown-menu.md): A list of actions anchored to a button. Use it for user menus, row-level actions, and anywhere a `…` button needs to do more than one thing. - [Hover Card](/docs/components/hover-card.md): A preview card that opens on hover or keyboard focus. Use it for user mentions, link previews, or definitions. - [Popover](/docs/components/popover.md): A floating surface anchored to a trigger element. - [Sheet](/docs/components/sheet.md): An edge-anchored drawer for mobile menus, filters, and side panels. - [Tooltip](/docs/components/tooltip.md): Brief explanatory text on hover or focus. --- Source: http://sveltekit-prerender/docs/components/layout.md # Layout Surfaces, disclosure, grouping, scrolling, and tabular layout. ## Components - [Accordion](/docs/components/accordion.md): Stacked collapsible sections with single- and multi-open modes. - [Card](/docs/components/card.md): Surface container for grouping related content. - [Collapsible](/docs/components/collapsible.md): A single collapsible panel with open/close toggle. - [Group](/docs/components/group.md): Connect related controls with separators and optional labels. - [Scroll Area](/docs/components/scroll-area.md): A scroll container with themed scrollbars and optional overflow cues. - [Separator](/docs/components/separator.md): Semantic or decorative divider in either orientation. - [Table](/docs/components/table.md): Display rows and columns with native table semantics. --- Source: http://sveltekit-prerender/docs/components/status-and-content.md # Status and content Status messages, progress, identity, and text. ## Components - [Alert](/docs/components/alert.md): Tinted callouts for inline status, confirmation, and warnings. - [Avatar](/docs/components/avatar.md): An image with initials while it loads or when it fails. - [Badge](/docs/components/badge.md): Compact labels for status, counts, and tags. - [Empty State](/docs/components/empty-state.md): Explain why content is missing and give people a useful next step. - [Kbd](/docs/components/kbd.md): Inline keyboard-shortcut badge. - [Progress](/docs/components/progress.md): Show how far along a task is. Determinate with value or indeterminate for unknown duration. - [Skeleton](/docs/components/skeleton.md): Loading content without flicker or layout shift. - [Spinner](/docs/components/spinner.md): An animated loading indicator for indeterminate work. - [Typography](/docs/components/typography.md): Semantic document headings, text, inline code, and interface typography primitives. --- Source: http://sveltekit-prerender/docs/brand-mark.md # Brand Mark The Mielui brand mark is a package-only visual asset. It is exported from the package root and the dedicated `brand-mark` path, but it is not a CLI registry component. ## Install ~~~~sh pnpm add @mielui/svelte ~~~~ ## API - `size?: number` sets both dimensions in pixels and defaults to `30`. - `class?: string` adds utility classes to the outer `span`. - `label?: string` gives the mark an accessible image name. Without a label, the mark is decorative and hidden from assistive technology. ## Example ~~~~svelte import { BrandMark } from '@mielui/svelte'; ~~~~ For a narrower import, use `@mielui/svelte/brand-mark`. --- Source: http://sveltekit-prerender/docs/skill.md # Mielui Build Svelte interfaces using Mielui's documented APIs, tokens, and composition. Mielui began from Sivir UI and is maintained independently, with its own components, behavior, themes, documentation, and releases. Use Mielui sources for implementation decisions. Sivir examples and version numbers do not establish Mielui compatibility. Preserve the upstream copyright and license notices when copying or redistributing source. The CLI stores them in `notices/mielui/` inside the configured source directory; the repository's UPSTREAM.md records its origins. ## Step 1: Establish the project state Inspect the project before changing code: 1. Confirm the installed Mielui release's peer requirements. Mielui 0.1.1 requires Svelte 5.56 or newer within Svelte 5 and Tailwind CSS v4. 2. Read the package manifest, lockfile, global CSS entry, and nearby Svelte components. 3. Detect the integration mode: - Package mode: `@mielui/svelte` is a dependency and components import from it. - Source-copy mode: `mielui.json` and a local Mielui directory exist. - Not installed: neither mode is present. 4. Identify the installed Mielui package version or the component versions recorded in `mielui.json`. 5. Preserve the project's package manager, import style, aliases, theme, and local component conventions. Do not silently switch an existing project between package and source-copy modes. ## Step 2: Load current Mielui sources Fetch `http://sveltekit-prerender/llms.txt` at the start of each Mielui task. Treat it as the index for the current catalog, installation guide, theming guide, changelog, and generated component references. Load documentation progressively: | Task | Read from the `llms.txt` index | | --- | --- | | First Mielui integration | Introduction, Installation, and Theming | | Choosing components | Components index, then candidate component pages | | Implementing a component | That component's Markdown page and every Mielui dependency needed for custom composition | | AI or coding-agent UI | Candidate AI component pages plus [component selection](http://sveltekit-prerender/docs/component-selection.md) | | Upgrading or resolving an API mismatch | Installed version, the compiled changelog, the LLM changelog page when linked, and component pages | | Visual design or review | [design language](http://sveltekit-prerender/docs/design-language.md) | Each generated component page contains its current version, dependencies, install command, prop tables for exported parts, public `index.ts` API, and runnable examples. `/llms-full.txt` combines the full reference; prefer individual pages for focused tasks. Read the exact page before using a component that is new to the project. Never invent a part, prop, event, variant, slot/snippet contract, or import path. Use this authority order when sources disagree: 1. Local source-copied components define source-copy behavior. 2. The installed package and its declarations define package behavior at the locked version. 3. The live Mielui Markdown defines the latest released API and examples. 4. The rendered documentation is visual context, not a substitute for the typed API. If the project is behind the live release, adapt to the installed API or ask before upgrading. Do not paste latest-only syntax into an older installation. If web access is unavailable, inspect local Mielui source or installed declarations. State that the live reference could not be checked rather than guessing. ## Step 3: Model the interface State the user's job, the dominant content or action, and the important empty, loading, success, and error states. For substantial pages, compare at least two materially different compositions and choose the one that makes the task clearest. Read [design language](http://sveltekit-prerender/docs/design-language.md) before creating or substantially reshaping an interface. Follow the host application's established visual system when it is more specific than Mielui's defaults. Choose geometry before components. Mielui is a set of purposeful primitives, not a requirement to wrap every region in a component. ## Step 4: Select and verify components Read [component selection](http://sveltekit-prerender/docs/component-selection.md) when selecting new primitives or composing an AI interface. Prefer the highest-level Mielui component that matches the interaction semantics. Use native Svelte and semantic HTML for layout and content where Mielui adds no behavior. Avoid recreating focus management, keyboard navigation, overlays, live regions, loading behavior, or controlled state already supplied by a component. Before implementation: 1. List the selected component slugs. 2. Fetch each selected component page from the links in `llms.txt`. 3. Confirm exports, required props, bindable state, event signatures, dependencies, and examples. 4. Reject removed components listed in the current components index and follow its migration guidance. 5. Keep compound components in their documented namespace shape, such as `Dialog.Root` and `Dialog.Content`. Examples are API evidence, not page templates. Adapt their state model and composition to the user's real content. ## Step 5: Install consistently When Mielui is absent, choose with the user unless the requested mode is already clear: | Mode | Choose when | | --- | --- | | Package | The project wants dependency-managed updates and imports from `@mielui/svelte`. | | Source copy | The project wants to own and modify component source. | Use the project's package manager. Translate the documentation's pnpm examples when needed. For package mode: ```sh pnpm add @mielui/svelte ``` Import the token sheet once in the application's global CSS: ```css @import '@mielui/svelte/ui.css'; ``` Ignore the `mielui add` command in a component page when using package mode. That command is only for source-copy projects; package components are already available through the installed dependency. For source-copy mode: ```sh pnpm dlx @mielui/svelte init -y pnpm dlx @mielui/svelte add ``` Import the generated token sheet once and use the aliases recorded in `mielui.json`; do not assume the default path if configuration already exists. Let the CLI resolve transitive Mielui dependencies. Add only components required by the design. Treat `mielui add` as an operation for missing source, not a safe update command. It skips existing files unless `--overwrite` is passed but can still advance recorded versions in `mielui.json`. Before updating copied components, inspect local modifications and the upstream change, then ask before using `--overwrite` because it replaces owned source. ## Step 6: Implement with Mielui Use Svelte 5 state and binding patterns that match the project's code. Preserve native semantics and use the component's typed callbacks and bindable props as documented. Use Mielui semantic tokens and Tailwind utilities before custom values. Let typography, alignment, spacing, and content hierarchy do most of the visual work. Add surfaces, borders, radii, color, and motion only when they communicate grouping, interaction, state, or continuity. For AI interfaces, compose transcript behavior, message roles, response content, reasoning, tools, questions, progress, attachments, and the composer as separate stateful concerns. Do not make every assistant event look like a chat bubble, and do not animate already-live network chunks merely for decoration. Implement real states, not only the ideal screenshot: - Empty content gives a useful next action. - Loading preserves layout and communicates what is pending. - Errors explain what failed and how to recover. - Success confirms the user's action without unnecessary ceremony. - Long content wraps or scrolls in the correct local region. ## Step 7: Verify the result Run the project's normal lightweight formatting and lint checks. Run broader checks only when requested or required by the host repository. Inspect the rendered interface at desktop and narrow widths, in every supported theme. Exercise keyboard focus, overlays, escape and outside-click behavior, form submission, disabled and pending states, transcript following, and long content where applicable. Check the browser console for runtime and accessibility errors. Before finishing, confirm: - Every Mielui API used matches the installed version. - The stylesheet or local token sheet is imported exactly once. - The first viewport makes the task and dominant action or content clear. - Responsive behavior recomposes rather than merely shrinking. - No decorative container, label, icon, color, or motion can be removed without losing meaning. - The implementation uses real product content and covers relevant non-happy states. Report the Mielui components added, integration mode, verification performed, and any version or documentation limitation. ## Current composition contracts The catalog separates Components, Blocks, AI components, Chart components, and Actions. Public component imports remain under `@mielui/svelte/components/` even when source folders use another category. Chart, PieChart, Gauge, and Heatmap are charts. Actions use `@mielui/svelte/actions/`: morph, number-shuffle, and shimmer. Use Dialog instead of Modal, Kbd instead of Shortcut, and HugeiconsIcon with Hugeicons glyph data. Group connects real Button, Input, and trigger components; include Group.Separator between controls. Tag Input uses outline badges. Toast is composable through Root, Content, Footer, Title, Icon, Actions, Action, and Close. The description occupies the upper inset and the compact title/actions row sits below. The toast helpers render these same parts. Overlay surfaces accept `surface="solid" | "glass"` on the documented owning part; do not apply glass independently to nested surfaces. Heatmap.Root accepts `animation="rows" | "columns" | "live" | "none"`, defaulting to rows. Reduced motion disables entrances. Slider range mode binds a pair of numbers, accepts thumbLabels, and supports dir="rtl". Read each page before using these APIs, particularly when the locked package predates the unreleased changelog. ## Tables, native selects, and loading placeholders Compose Table.Root with Header, Body, Row, Head, and Cell. Caption, Footer, and ScrollArea are optional. Use variant="inset" for a recessed table. Sorting and selection remain application state; use native aria-sort and existing Button or Checkbox controls. NativeSelect.Root renders a native select. Bind a string for single selection or a string array with multiple. Its size prop is the native number of visible options. Compose Option and OptGroup inside it. Apply use:shimmer from @mielui/svelte/actions/shimmer to a loading container, or set variant="shimmer" on Skeleton. Shimmer takes no options and disables itself for reduced motion. Label the loading region; the visual highlight is hidden from assistive technology. ## Selection, uploads, and motion Select.Root and Combobox.Root use a string value by default. Set `type="multiple"` and bind a `string[]` for multiple selection. Keep the documented Trigger, Content, and Item composition; multiple selection leaves the menu open. Do not add a second selection store around the binding. FileUpload.Root owns validation and upload state. Use `maxFiles={1}` for single-file picking. Its children snippet exposes the summary for composing the empty dropzone and selected file states. `onUpload` is required; implement the upload there and resolve it only after server confirmation. A local-only demo should explicitly say that it does not upload files. Keep cancellation and retry connected to the documented upload context. Notch provides nonmodal edge content through Root and Content, with optional Header, Peek, SideAction, and other documented parts. Use `` for notifications instead of adding a second notification host. Gauge distinguishes `value={null}` from a valid zero measurement. Gauge and Heatmap accept loading states and handle their own placeholder presentation. Use their documented animation options instead of adding timers around examples. Apply `use:numberShuffle={{ value }}` to a text-only element containing the final number. Keep icons and controls outside it. The action preserves accessible source text and honors reduced motion and disabled theme motion. --- Source: http://sveltekit-prerender/docs/component-selection.md # Mielui component selection Use this guide to narrow candidates, then read each candidate's current Markdown page from `http://sveltekit-prerender/llms.txt` before writing code. ## Choose by job | User need | Start with | Notes | | --- | --- | --- | | Trigger an action or navigate | Button | Use a real link destination through the documented link behavior. Reserve icon-only actions for recognizable icons with accessible names. | | Toggle one setting | Switch or Toggle | Use Switch for an on/off setting; use Toggle for a pressed tool or display mode. | | Choose one visible option | Radio Group | Best when comparing a small set benefits from seeing every choice. | | Choose from a compact list | Select | Use for a bounded list without search. Set type="multiple" and bind a string array for multiple selection. | | Search and choose an option | Combobox | Use for searchable option sets. Single and multiple selection use the same documented parts. | | Run or discover commands | Command | Use for an application command palette, not ordinary form selection. | | Show contextual actions | Dropdown Menu or Context Menu | Dropdown Menu has an explicit trigger; Context Menu is secondary pointer context and needs another accessible path. | | Collect short or long text | Input or Textarea | Use the component's integrated label, description, and validation API when available. | | Confirm a consequential action | Alert Dialog | Use Dialog for general tasks; reserve Alert Dialog for decisions that need explicit interruption and confirmation. | | Complete a focused task in place | Dialog | Use Sheet when preserving more page context or a side-oriented workflow matters. | | Show anchored supplemental UI | Popover or Hover Card | Popover is interactive; Hover Card is preview information and must not hold essential actions. | | Communicate persistent inline state | Alert | Keep it next to the content or action it qualifies. | | Confirm a transient action | Toast | Do not use a toast for errors or decisions that require immediate action. | | Pick files for upload | File Upload | Root owns validation and upload state; maxFiles={1} limits picking to one file. Compose empty and selected states with its summary snippet. | | Show ongoing edge activity | Notch | Use for nonmodal activity. Use the notch Toaster variant for notifications. | | Compare numeric series or distributions | Chart or Pie Chart | Compose Plot, marks, Legend, and Tooltip according to the chart page. | | Show activity over dates | Heatmap | Distinguish unavailable data from explicit zero counts. | | Show determinate work | Progress, Gauge, or Task Steps | Progress shows completion, Gauge emphasizes a measured value, and Task Steps names ordered workflow stages. | | Show indeterminate work | Spinner or Skeleton | Spinner marks compact activity; Skeleton reserves the shape of incoming content. | | Organize related content | Card | Use only when a surface communicates a real grouping or interactive object better than spacing. | | Reveal optional detail | Collapsible, Accordion, or Show More | Collapsible controls one region, Accordion manages peer sections, and Show More clamps long prose. | | Navigate peers or hierarchy | Tabs, Breadcrumb, Pagination, or Sheet with navigation links | Match the information model; do not use Tabs as a generic layout switch when controls or links are more accurate. | ## Compose AI interfaces Treat the AI surface as a system of independently meaningful states. | Concern | Component | Role | | --- | --- | --- | | Scrollable transcript | Conversation | Manages following, empty content, transcript layout, and jump-to-latest behavior. | | Speaker and response state | Message | Marks user, assistant, or system content and exposes streaming or error state plus contextual actions. | | Rich answer content | Markdown or Code Block | Render structured model output and code rather than rebuilding prose styles per message. | | Generated text arrival | Response Stream | Use for a string or async chunks when its entrance modes add useful continuity. Prefer direct rendering for already-streamed content when extra animation would delay reading. | | Model trace | Reasoning | Exposes concise status and optional detail. Keep the collapsed title informative; do not dump an unstructured internal monologue. | | Agent operations | Tool | Groups running, completed, or failed commands, searches, reads, inputs, and outputs without making each operation a full message. | | User prompt | Composer | Owns the controlled prompt value, submission state, toolbar, actions, and send/stop behavior. | | Agent clarification | Question | Uses single-choice, multiple-choice, or free-text answers with explicit submit and cancel behavior. | | Ordered execution | Task Steps | Shows stable workflow stages and the current or failed step. | | Files and artifacts | Attachment | Presents attached inputs or outputs with the component's documented status and actions. | A common coding-agent composition is: ```text Conversation.Root ├── Conversation.Content │ ├── Message.Root from="user" │ └── Message.Root from="assistant" │ └── Reasoning / Tool / Markdown / CodeBlock └── Conversation.ScrollButton Question.Root or Composer.Root ``` Render `Question` as a temporary takeover when the agent cannot continue without structured input; preserve an unsent composer draft. Keep `Tool` and `Reasoning` lower emphasis than the answer. Use `Message.Actions` for response-scoped actions such as copy, retry, or feedback. ## Resolve common ambiguities | Choice | Decision | | --- | --- | | Dialog vs Alert Dialog | Dialog supports a task; Alert Dialog blocks on a consequential decision. | | Dialog vs Sheet | Dialog concentrates attention; Sheet preserves more spatial relationship to the page. | | Select vs Combobox | Select is compact lookup; Combobox adds search. | | Combobox vs Command | Combobox produces a field value; Command invokes application actions. | | Alert vs Toast | Alert persists in context; Toast is transient confirmation. | | Spinner vs Skeleton | Spinner indicates activity; Skeleton reserves content geometry. | | Progress vs Task Steps | Progress communicates amount; Task Steps communicates sequence and stage identity. | | Toggle vs Checkbox | Toggle changes a tool or view's pressed state; Checkbox selects a form option. | | Accordion vs Tabs | Accordion reveals sections in one reading flow; Tabs switch among peer views. | | Card vs plain layout | Use Card only when the boundary itself explains grouping, interaction, or state. | Do not choose a component by visual resemblance alone. Match semantics, state ownership, keyboard behavior, and content structure first. --- Source: http://sveltekit-prerender/docs/design-language.md # Mielui Design Language Create a calm, intentional interface whose distinctiveness comes from composition, typography, alignment, and relationships specific to the user's work. ## Start With the Job Establish who uses the interface, what they must understand or do, the most important content or state, and which constraint or error could change the outcome. Order the experience by user need rather than data or source order. Give each section one purpose. Make the primary path understandable from the title, headings, key values, controls, and captions alone. Write direct, sentence-case interface copy. Name actions with the result they produce and keep that vocabulary stable through confirmation and error states. ## Compose Before Decorating Choose geometry before components. For substantial work, consider at least two materially different layouts and select the one that makes the user's task clearest with the least mediation. - Make the first viewport communicate the purpose and dominant action, relationship, or evidence. - Establish one dominant object in each major section and quiet its supporting content. - Compose the page as a field with a shared grid, not a stack of interchangeable cards. - Map magnitude to length or position, change to sequence, composition to proportion, process to connection, and alternatives to aligned rows or columns. - Use prose for one conclusion, tables for exact lookup, and charts only when a relationship becomes faster to understand visually. - Give true peers equal structure and visual weight. - Reflow underfilled splits, orphaned items, and accidental empty rectangles. If the layout feels safe or vague, strengthen one relationship through proportion, hierarchy, density, alignment, or placement before adding effects. ## Use Type and Space as Structure Use the application's configured sans typeface for interface text and headings. Reserve mono for code, commands, paths, timestamps, and compact technical identifiers. - Create hierarchy with type before adding surfaces, borders, or color. - Use one page title, clear section headings, readable body text, compact labels, and subdued metadata. - Keep long-form text near 60 to 68 characters per line; reflow before shrinking it. - Align related text to shared edges and baselines. - Use unmistakable gutters between adjacent text columns. - Use tabular numerals for vertically compared values. Build spacing from relationships: - Keep a heading close to its first paragraph. - Keep a label, value, and supporting detail together. - Use a steady body rhythm among related controls and content. - Use a clearly larger interval between distinct sections or tasks. - Keep captions, validation, and sources close to what they qualify. Give each visible gap one owner. Prefer a parent stack or grid over competing child margins. ## Apply Mielui Restraint Use Mielui semantic color tokens and preserve their meaning in every theme. Pair color-coded state with text, shape, or another non-color cue. Treat the interface as one continuous canvas. Add a surface, border, radius, or shadow only when it clarifies grouping, interaction, selection, or state better than spacing can. Default to stillness; add motion only to explain state change, preserve continuity, or confirm an action. Do not ship: - All-caps or widely tracked eyebrows, kickers, and overlines. - Decorative gradients, glows, blobs, textures, glass, or ornamental shadows. - A generic centered hero followed by a uniform card grid. - A rounded container around every section or metric. - Pills for ordinary metadata, labels, or status that does not need badge semantics. - Decorative icon tiles, oversized icons, or mixed icon styles. - Tiny muted copy, arbitrary type sizes, inconsistent peer values, or weak contrast. - Decorative charts, misleading scales, or color without meaning. - Stock imagery, fake screenshots, or decoration added to fill space. - Scroll reveals, parallax, pulsing indicators, bounce, or motion that delays the task. Avoiding these defaults is not permission to make a blank template. Commit to a composition and make its hierarchy, alignment, and information density precise. ## Recompose Responsively Use semantic HTML, logical heading order, native control behavior, visible focus, accessible names, sufficient contrast, and source order that matches reading order. Treat responsive design as recomposition, not uniform shrinking. Reflow grids, stack comparisons, preserve readable type and target sizes, and let dense tables scroll locally only when simplification or reordering would hurt lookup. Never hide page overflow to conceal a layout defect. ## Review in Order 1. Is the user's task and dominant object clear in the first viewport? 2. Does each section advance the task without repeating another section? 3. Does typography communicate hierarchy before decoration does? 4. Are peers aligned and spacing relationships deliberate? 5. Can any surface, border, icon, label, color, or motion be removed without losing meaning? 6. Does the interface reflow without overflow, broken reading order, or character-level wrapping? 7. Are semantics, focus, labels, contrast, and interaction states sound? Fix the highest-impact structural problem first, then inspect again. ## Shared appearance and motion Use the installed token sheet for control edges, elevation, insets, focus, press feedback, and motion. Filled controls use `--elevation-control-edge`; Switch and Slider apply it to their thumbs. Keep tracks, progress fills, and passive grouping wrappers flat. Composite fields have one raised editable boundary, not a shadow on every nested input. Overlay frames own their documented solid or glass treatment. Preserve the translucent inset in glass mode and compose focus shadows with existing elevation rather than replacing it. Check both themes and the theme's shadow switches when restyling controls. Use component motion options before custom animation. Respect reduced motion and zero theme duration. Stop recurring effects while hidden or offscreen and clean up observers, listeners, and pending work when unmounted. Do not add duplicate focus traps or dismissal listeners around components that already own those interactions. --- Source: http://sveltekit-prerender/changelog/0.2.0.md # @mielui/svelte 0.2.0 changelog This document aggregates the release notes for this version. Review it before integrating or upgrading Mielui. Large changes for this release have an LLM context page at [/changelog/0.2.0/llm.md](/changelog/0.2.0/llm.md). ## Docs - Document milestone-based releases spanning multiple feature and fix pull requests. - Redesign the landing page with a colorful hero, live component previews, and responsive navigation. - Simplify the landing page copy and showcase, with consistent outer gutters and a distinct theme-driven palette. - Give Docs and Studio a continuous outer shell with recessed content and integrated navigation, header, and footer controls. - Match the landing hero and showcase accents to the active primary color. - Move docs page controls inside the inset frame and soften the outer shell color. - Open docs navigation and page outline in toggleable floating panels, giving content the full page width. - Add nonmodal glass navigation and Studio inspectors with hover reveal and docking, restore the right page outline, and tighten the black outer canvas. - Align the page-outline header with preview tabs, soften docked borders, and strengthen light-mode section headers. - Simplify docs section labels and refresh Studio overlay previews with compact workspace content. - Restore framed lead demos, strengthen section labels, and align footer actions in a flush row. - Simplify Studio section labels and inspector disclosures without separator lines. - Make the selected sidebar page easier to identify with a tinted background and stronger label. - Remove the footer divider to match the borderless page header. - Align the Studio sidebar toggle with its header controls in both floating and pinned layouts. - Soften scrolling content at the header and footer with short background fades. - Improve light-mode preview tab contrast and section info hover visibility. - Keep search results inset from the palette sides and tint keyboard hints with the primary color. - Expand the introduction with a setup comparison, complete package quick start, and guidance for theming and component exploration. - Add a brief pixel reveal between pages, with reduced-motion support and interruptible navigation. - Restore the GitHub star action in Studio with the same ordering as the docs header. - Tighten search result insets and give keyboard hints a solid primary surface with shared control depth. - Match selected preview tabs to the package-manager picker surface. - Remember pinned docs and Studio sidebars independently across visits. - Unify Docs and Studio header controls and harden sidebar pinning and page-transition cleanup. - Correct homepage showcase composition to use supported chart surface settings and labeled tab controls. - Refresh the README screenshot to show the redesigned homepage. ## Feature - Choose single or double borders across framed surfaces, including cards, dialogs, menus, Notch, and Toast in themes and Studio. - Organize Studio appearance and interaction settings, with toggle buttons for value choices and a compact Advanced colors action in the Color header. - Add an opt-in depth toolbar variant with raised keys and recessed selections; the default remains flat. - Use number shuffle for changing numeric readouts in tables, charts, uploads, commands, Studio, and interactive examples. - Customize five pastel chart colors in Studio; chart demos and default series share the same palette. - Choose the top or bottom position of inset strips, with local overrides for fixed headers. - Add an optional inset DataTable layout with compact filters and shared pagination inside the frame. - Preview glass against a colored Studio backdrop, with dropdown, popover, and hover-card examples. - Use rounder default corners and more spacious composer input panels. - Add the Daydream preset with flat sage-gray cards, soft pink controls, and pastel chart colors in light and dark modes. ## Fix - Keep theme choice controls accessibly labelled without unsupported component props. - Extend menu separators across the full inner panel width, including submenus. - Keep tooltip text readable when glass surfaces are enabled. - Refine the optional toolbar depth with shallow key faces and show zoom controls in both toolbar demos, with tooltips matching the input surface. - Make Cartesian, pie, and heatmap tooltips follow single borders and glass surfaces. - Keep donut tooltips aligned with the pointer without a trailing position animation. - Soften live chart highlights, add quiet intervals, and suppress them while inspecting values. - Preserve continuous single-border outlines on tables and preview/code cards. - Keep glass inset panels visually distinct while allowing backdrop colors through. - Align the Native Select chevron with other selection controls without a duplicate native arrow. - Keep installation command tabs above the command regardless of inset-strip preference. - Retain structural inset gutters on data tables, composers, and code/preview panels in single-border mode. - Soften the dark glass composer input tint so backdrop color stays visible without a heavy grey fill. - Preserve custom accessible labels on numbered data-table pagination. - Avoid duration-formatting errors for tool status values with excessive decimal precision. - Keep file diff signs attached to their animated counts and remove redundant inset surface styles. - Preserve preset colors, typography, and token overrides when selecting or exporting a theme in Studio. - Keep the Studio preset picker and reset button aligned across theme densities. --- Source: http://sveltekit-prerender/changelog/0.1.1.md # @mielui/svelte 0.1.1 changelog This document aggregates the release notes for this version. Review it before integrating or upgrading Mielui. Large changes for this release have an LLM context page at [/changelog/0.1.1/llm.md](/changelog/0.1.1/llm.md). ## Breaking - Remove Fullscreen Nav. Use Sheet with navigation links for mobile menus. - Rename Modal to Dialog, including its types, package subpath, and CLI command. - Replace standalone Toast usage with Toast.Root and its composable parts. Toast progress bars have been removed. - Renamed Shortcut to Kbd, including its import path and prop type. - Require Svelte 5.33 or newer for attachment support. - Card titles default to level-two headings and accept an explicit heading level. - Alert announcements are opt-in, with separate polite and assertive modes. - Breadcrumb current-page state is explicit instead of inferred from the router. - Reorder List dragging starts from its handle; row content remains interactive and accessible. - Enforce mode-specific Input, Question, Accordion, and Toggle Group values and branch-specific Button and Badge attributes. - Require Svelte 5.56 or newer for modern reactive template declaration syntax. ## Docs - Use pnpm and Node.js for repository setup, development, and release tooling. - Added a component audit covering behavior, accessibility, composition, and motion. - Moved Show More into Blocks. - Toolbar now appears under Blocks. Its import path stays the same. - Add manual installation instructions with dependency commands, file tabs, copying, and expandable source. - Add a right-aligned On this page sidebar with smooth section navigation and reduced-motion support. - Move Gauge into Chart components. - Use Hugeicons throughout components and examples, with an SSR-safe HugeiconsIcon renderer. - Use dashed guides in the left documentation navigation. - Add replay controls to inset chart previews. - Align the documentation breadcrumb with the article heading. - Add Copy page actions with Markdown and AI links. - Replace anatomy summaries with prop tables for every exported component part, including native attributes and events. - Add the Agent skill guide and a complete llms-full.txt reference. - Update example identities and project links to mielsense. - Improve code-example formatting and separate API reference links in the page outline. - Document every Table and Native Select part and use Table for API references. - Shorten repetitive documentation copy and update component counts. - Soften the scrolling edge beneath the documentation toolbar. - Animate native-attribute disclosures with Collapsible. - Align Star and theme controls with the page outline and use a home icon in breadcrumbs. - Document component reuse and accessible interaction motion in the design guidelines. - Group Reorder List, Command, Color Picker, and Toast under Blocks while preserving their imports and documentation links. - Include motion actions in the component catalog and keep its counts and search in sync with navigation. - Show headless component props in the main API tables and document props from every discriminated mode. - Join the publish-date input and calendar trigger with Group in the Date Picker example. - Keep the Number Field seat-count example compact instead of stretching the control to its container. - Show Data Table search and filtering as one joined control. - Replace the Toolbar demo with selectable design tools and keyboard hints. - Rebuild Studio previews with aligned control states, Charts and AI sections, and an invoice table. - Separate basic remote form validation from multiple actions and reset. - Allow unrestricted cross-month selection in the two-month Range Calendar example and show its selected dates. - Join Date Range Picker inputs and calendar trigger with Group. - Add a promise-toast demo and use promise notifications in Form examples. - Organize Studio theme controls into collapsible sections with a tooltip-labelled advanced settings button. - Give both levels of the nested Drawer example handles and normal dismissal. - Add Bun install commands with syntax highlighting. - Add composed examples for File Upload, Reorder List, Toolbar, Separator, and Response Stream. - Add tooltips to Studio and documentation icon actions. - Simplify the top navigation to Docs and Studio. - Replace machine-specific paths in the design-system implementation plans. - Derive homepage component counts from the catalog and check each catalog entry's category, examples, and API reference. - Document controlled overlays, upload cancellation and retry, and theme storage limitations. - Add a live File Diff example and refresh generated component prop tables. - Use shared border, radius, and elevation tokens in legacy API tables. - Document shared edge, inset, focus, and motion rules for component contributions. - Keep Notch and notch notification examples inside their preview frames. - Make chart state and period-switching examples easier to adapt with named event handlers. - Chart guides have dedicated type pages, searchable navigation, and matching Markdown references. Tablet documentation navigation remains accessible. - Split chart examples into focused bar, line, area, mixed, pie, and donut guides with continuous motion, data updates, missing measurements, and loading states. - Add interactive Gauge capacity and Heatmap reporting-range examples. - Use flat leading previews and source sections, inset example cards, compact API table headers, and persistent footer page actions. - Block examples now include contained toast previews, continuous Markdown streaming, recoverable task steps, and visible command and code-action results. - Component examples now include working local actions, accessible icon controls, upload completion and recovery, and shorter variant comparisons. - Make AI examples finish, stop, and retry their simulated work; preserve partial responses and clean up pending delivery when previews close. - Document AI state ownership and add composed tool retries, response cancellation, and interactive Morph and Shimmer examples. - Rebuild Docs and Studio around fixed headers and footers, thin section dividers, and quieter navigation. Widen the documentation section rail. - Clarify inherited glass surfaces and keep example action results spaced below their controls. - Center the homepage cat within a bordered layout with subtle dithering and muted scrolling component names. - Keep preview toolbars aligned across nested examples and prevent their controls from overlapping pinned section headings. - Clarify core component setup and form behavior, and make the Group and indeterminate Progress examples interactive. - Balance section content spacing, keep sticky headings opaque, and center grid intersections across the documentation rails. - Keep navigation headings and the leading preview toolbar sticky, use text-only hover and selection states, and show API guidance from an info control. - Align footer actions with the header columns and disable elastic overscroll across the site. - Match error pages to the documentation grid and provide a retry action when a page fails to load. - Add visual component catalog cards with descriptions and search across component names and descriptions. - Present each changelog version as a sticky section and keep catalog descriptions in footer info cards. - Simplify Studio into aligned control and content previews, unify its tabs, and match footer and header heights. - Move Studio preview tabs into the header and preview width controls into the footer. - Keep headers, footers, section headings, and navigation headings at one shared height, with aligned intersection marks. - Align Studio chart, conversation, and application previews with the shared section layout and keep the composer clear of messages. - Strengthen section headings and move Button behavior notes into its Usage section. - Keep component behavior notes inside their relevant sections instead of below standalone previews. - Remove the trailing divider below Studio’s Typography controls. - Widen Studio’s conversation preview and place its simulation note below the composer. - Let the Studio conversation span the preview and scroll behind a narrower floating composer. - Add matching grid junction markers at the Studio header and footer. - Clarify block and AI component usage, state ownership, and Markdown link and image handling. - Review every component’s usage, examples, and API coverage; add chart loading, empty-data, and animation examples to each chart-type guide. - Keep documentation scrolling available over Toast previews and show section descriptions in information hover cards. - Remove excess space below the final documentation sidebar item. - Use warm pastel red and yellow series colors in chart examples. - Add loading, empty, and live-motion controls to Gauge and Heatmap examples. - Show a larger invoice dataset in Studio using the shared Data Table, with sorting, selection, and pagination. - Arrange Studio component cards in compact responsive stacks, with a smaller calendar and label and sharing examples. - Remove the repository’s OpenCode setup and skill lockfile. - Show the Markdown preview directly on the canvas without a card or nested scroll area. - Group components by type in the sidebar, with a preview catalog for each group. - Make documentation search more compact, with quick destinations and a scrollable results list. - Add space between catalog cards and use consistent parent-label styling and spacing for all nested sidebar groups, including charts, while keeping standalone links compact. - Keep the expanded Notch export example clear of its trigger and show its file count in a compact badge. - Nest catalog categories under Components in the page outline. - Increase the space between component catalog sections. - Clarify the homepage description of component theming. - Match the Code tab background and rounded corners to its example preview. - Add a single-file upload example that replaces the dropzone with the selected file. - Gently snap sidebar groups and page sections to the top while preserving free scrolling within long sections and reduced-motion preferences. - Snap sidebar group headings to the top without snapping to the bottom edges of long groups. - Give consecutive documentation examples more separation while keeping their headings and previews together. - Prevent sidebar settling from targeting offscreen groups; only visible headings approaching the top can catch. - Align page-outline link gutters and nested indentation with the navigation sidebar. - Use the same bounded top-only magnetic settling in the content column and sidebar. - Give the page-outline hook a full outer gutter and more space before its labels. - Align the footer info icon with the navigation button inset and distinguish outline hover previews with a dashed gray hook. - Move the page-outline hook directly to a clicked section without pausing on headings passed during smooth scrolling. - Keep catalog search pinned in a header-height row, with section headings and outline jumps positioned below it. - Slow the page-outline hook’s glide while retaining direct section targeting and reduced-motion behavior. - Remove the doubled divider between catalog search and the first section. - Match article, toolbar, and footer side gutters to the page-outline header. - Align the leading Preview / Code tabs with the shared content gutter. - Give documentation content a moderate side gutter while keeping tabs, headings, toolbar, and footer aligned. - Scale magnetic catch distances to neighboring section heights and settle only once per downward scroll gesture, preventing short sections from oscillating. - Match the Copy page control height to the adjacent-page arrows in the docs footer. - Keep Form and keyboard-shortcut demo feedback inside their previews and dispose unfinished toast demos on navigation. - Separate page-outline state and Studio token parsing from presentation while reducing unnecessary outline work during preview updates. - Update the agent skill and package guides for Mielui's current APIs, independent release history, and retained Sivir UI and COSS attribution. - Refresh the README screenshot with the current homepage. - Clarify current documentation sources and distinguish the historical Sivir UI changelog from Mielui releases. - Document npm publishing authorization and the GitHub release steps for maintainers. - Add agent release guidance and clarify first-publication setup before enabling trusted publishing. ## Feature - Group components into Components, Blocks, AI components, and Chart components. Existing imports and docs URLs stay available. - Toast notifications use an inset content area with a title and action buttons in the footer. - Slider adds pill-shaped handles, a two-handle range mode, and right-to-left support. - Group connects related controls with separators and optional text, in horizontal or vertical layouts. - Add Heatmap with composable calendar, labels, summary, detail, legend, and keyboard navigation. - Add Morph for SVG geometry transitions and text changes, including the theme switch. - Add optional glass surfaces to overlays, menus, tooltips, selection popups, and toasts. - Add a centered component preview and wide or narrow canvases to Theme Studio. - Animate Heatmap cells and Gauge arcs on entry, with reduced-motion support. - Add Table with default and inset variants, plus Native Select with grouped and multiple options. - Add the Shimmer action and a shimmer variant for Skeleton. - Add site-wide documentation search with Command-K and Control-K. - Add a glass Composer surface and a Thinking text example for Shimmer. - Add composable Task Steps rows and summaries, Reorder List handles and content, and Message metadata parts. - Add separate Tool trigger/content parts, Color Picker surfaces, and Show More preview/trigger slots. - Add Command search/result slots, optional Alert icons, and an optional Sheet header close control. - Add controlled Context Menu state and manual tab activation. - Add scoped Tooltip providers and noninteractive rich descriptions. - Add composable Field, Fieldset, and Form components with accessible errors and SvelteKit remote-form examples. - Add Calendar, Range Calendar, Date Picker, and Date Range Picker with keyboard navigation and date constraints. - Add Number Field and OTP Field with native form submission and reset support. - Add Separator and a public composable Toolbar with keyboard navigation. - Add a swipe-dismissable Drawer with modal focus management. - Add a composable Data Table powered by TanStack Table v9, with explicit sort menus, editable filter chips, selection, and pagination. - Data Table filters accept a search control as children and align filter and sort buttons with inputs. - Form error summaries accept validation paths directly and focus after unsuccessful submissions. - Add File Upload with validation, progress, cancellation, retries, and animated completion. - Initialize Mielui from a Studio JSON preset with `init --preset`, or apply it with `add theme`. - Set glass surfaces globally from Studio or the `--mielui-surface` CSS variable. - Studio’s AI workspace demonstrates streamed Markdown, reasoning, tool activity, file attachments, and an overlaid composer with stop and replay controls. - Studio’s component preview centers interactive mini cards for controls, checklists, team members, and disclosures. - Checkbox supports small, medium, and large sizes, with a larger 18px default. - Add composable bar, line, area, mixed, pie, and donut charts powered by LayerChart, with tooltips, legends, and animated data updates. - Charts offer entry reveals and ongoing live highlights that respect reduced motion and pause offscreen. - Add a composable Empty State for first-use screens, empty search results, and completed work. - Add Notch for custom activities at any screen edge, with solid and glass surfaces and animated expansion. - Toast notifications can use a shared Notch surface through the Toaster variant. - Notch offers a persistent peek rail, timed notifications, and swipe dismissal, with timers paused during interaction. - Heatmap includes a shared tooltip for hovered and keyboard-focused days, with an optional Tooltip part for custom layouts. - Adjust edge highlight strength in Studio or theme presets. Controls, keycaps, and raised surfaces now use half strength by default. - Notch supports detached side actions that unfold on hover or focus. Notch notifications show one item at a time with previous and next controls. - Place counters or custom content outside a Notch with Accessory; notification counts now use this separate part. - Add built-in live motion to Gauge and Heatmap through their animation props. - Add built-in loading and empty-data states to Gauge and Heatmap. - Select and Combobox support multiple selection with array values and menus that stay open while choosing options. - Add the Number shuffle action and animate Gauge values with rolling digits. ## Fix - Replace the logo and favicons with the approved compact cat silhouette. - Tag Input values have visible badge borders and backgrounds. - Toast timers pause during keyboard interaction, and close buttons remain visible. - Toast descriptions have more room above a compact title and action row. - Tag Input badges use stronger borders and a contrasting fill. - Homepage navigation uses equal button heights and spacing, with the redundant Components button removed. - Tag Input uses the standard transparent outline Badge styling. - Restore Changelog and Studio pages after TypeScript preprocessing and component path errors. - Preserve Group outer borders with single-pixel separators and composed Input, menu, and popup examples. - Match Alert to the inset Toast layout, with the description above the status row. - Render Tag Input tags as transparent outline badges. - Keep the darker inset panel inside frosted glass overlays. - Match Alert text size, vertical centering, and status-row spacing to Toast. - Use a minus indicator for checked checkboxes. - Keep morph visuals in place while updating SVG geometry without a delayed icon swap. - Keep the theme icon color synchronized with the active theme during morph transitions. - Align Switch labels with the pill-shaped control. - Keep Accordion borders between items only. - Restore original SVG visibility when Morph is removed or its child icon changes. - Respect the theme’s disabled-motion setting in chart entrances and motion actions. - Preserve checkbox state while disabled and forward accessible names to the native input. - Size Composer submission controls to their visible content and respect custom action labels. - Preserve fractional Gauge ranges and normalize invalid numeric values. - Fix preview deployment type checks for icon imports, native controls, table captions, and documentation examples. - Use Bits UI for dialogs, sheets, popovers, menus, selection controls, tabs, disclosures, switches, and toggles while retaining Mielui styling and motion. - Add menu keyboard navigation, typeahead, nested dismissal, and touch long-press behavior. - Preserve canceled events, optional overlay labels, and conditional dialog actions. - Keep option labels and disabled selections synchronized as collections change. - Prevent obsolete streams, clipboard requests, and canceled reorder gestures from overwriting newer state. - Reconcile toast persistence, durations, paused timers, and visible notification limits. - Connect field and tooltip descriptions to their controls, and ignore inactive or composing shortcuts. - Update scroll cues after content changes and support fractional progress ranges. - Preserve preview state when switching to source code and reduce redundant status animation. - Reset Avatar loading state on source changes and preserve native image callbacks. - Keep skeleton placeholders inert, normalize pagination bounds, and prevent silent inset Card footer replacement. - Add keyboard navigation to Toolbar and improve Color Picker labels, pointer ownership, and reduced motion. - Preserve Slider handle identity while adopting Bits UI keyboard behavior and adding named form values and reset support. - Use Bits UI for Combobox navigation and selection while preserving fuzzy search and Mielui styling. - Show submission errors without losing Composer drafts or Question answers, and ignore obsolete completions. - Keep disabled Button links from navigating and preserve native Input checkbox, radio, and file semantics. - Repair active tabs after removal or disabling, and keep Command results synchronized during collection changes. - Keep IME confirmation and canceled click handlers from activating commands or opening selection popups. - Give toasts one visual exit and stop long response streams from animating every character. - Preserve Group variant styling with a single joined divider. - Forward overlay action refs and keep cancel actions from stealing focus after opening. - Defer offscreen documentation previews while preserving mounted preview state. - Remove the resting shadow from outline buttons while retaining their border and keyboard focus indicator. - Show invalid input borders and reveal field errors with interruptible, reduced-motion-aware transitions. - Restore pointer hover and selection in menus and floating panels by keeping their content above dismissal layers. - Keep top and bottom drawers full width in the examples and give nested drawers separate backdrops and focus boundaries, with cancelled swipes returning to rest. - Prevent date segments from overlapping on narrow screens and keep calendar popups above surrounding navigation. - Keep advanced Studio spacing and motion overrides until their corresponding preset changes. - Match date-picker trigger heights to their inputs and keep hover feedback distinct. - Position Toast dismiss buttons at the top-right without covering the message. - Use round send and stop icons in Composer without changing its toolbar variants. - Show rejected attachments in compact error cards without decoding oversized image previews. - Animate promise toast resizing in 50 ms and place title-only messages inside a fitted inset panel. - Preserve Studio color, typography, spacing, and motion choices in CLI-compatible theme exports. - Keep tab highlights aligned while their dialog or other parent animates in. - Studio places advanced colors below the color controls and groups shape and motion presets with labeled advanced-settings buttons. - Studio previews share one surface, with dedicated Charts and AI tabs and flush joins on advanced-setting controls. - Studio uses full-width previews, a denser component gallery, and joined preset and copy controls. - Studio shows a year of heatmap activity and pairs a full-width conversation with the narrower Composer layout used in its documentation. - Fix TypeScript errors in composed controls, upload and toast motion, and documentation examples while preserving native event handlers and refs. - Update the docs and installer workspace to Svelte 5.57.1 and SvelteKit 2.70.3, with svelte-check 4.7.6. - Honor a consumer project's declared package manager and recognize Bun lockfiles in the CLI. - Keep theme editing usable when browser storage is blocked or full, and report failed theme saves. - Keep upload image previews stable as progress changes. - Keep Dialog, Sheet, Popover, and File Diff state synchronized with their bound values and current props. - Restore nested dialog stacking, single-layer dismissal, focus return, and shared background scroll locks. - Cache the GitHub star count and retain the last valid count during temporary API failures. - Preserve invoice-preview state when switching Studio tabs. - Buttons, fields, selects, and floating surfaces share subtle light-catching edges that follow the theme’s shadow settings. - Gauge defaults to a larger 120px display with proportional arcs and labels, and smoothly animates value changes. - Pie chart tooltips use opaque inset surfaces. - Menus, overlays, tooltips, conversation scrolling, and response text respect reduced motion and the theme’s disabled-motion setting. - Accordion triggers retain their content relationships, and focus traversal includes editable text regions. - Joined inputs, selects, and buttons share one control height across sizes. Table badges fit their labels instead of filling the cell. - Segmented tabs keep even rail padding at fractional spacing and inside scaled containers. - Keep inset Cards stable when their footer is removed during a state change. - Studio groups edge highlight strength under its switch and restores the previous strength when re-enabled. - Data Table uses the shared inset Table surface with a compact header. - Alert dialogs announce their title and description. Select triggers and option lists now expose linked combobox semantics and accessible names. - Combobox results collapse smoothly when filtered and stop locking page scroll as soon as the menu closes. - Give Notch content more padding and keep its detached actions close to the panel. - Dialogs restore focus when removed while open without interrupting a newly opened dialog. - Escape closes only the deepest open dropdown or context submenu, keeping its parent menu available. - Notch side actions unfold with synchronized shape and button motion, including interrupted hover changes. - Morph and Shimmer stop active effects when inherited theme motion is disabled and clean up their theme observers on removal. - Stopping a controlled Composer response no longer submits the preserved prompt again when the control returns to Send. - Let Show More content fade into its surrounding surface without a mismatched background strip. - Rework live chart motion with stationary pie highlights, area-fill sweeps, and staggered bar highlights; keep offscreen effects paused without trapping visible sweeps. - Keep Reasoning duration labels spaced, respect reduced motion in copy feedback, and keep notch notification text wrapped during morphs. - Guard font preference storage and isolate font state between server renders. - Keep Accordion accessibility relationships valid when content is omitted and honor disabled Tag Input controls. - Keep disabled Popover triggers closed and dismiss empty tooltips. - Preserve invoice draft validation and reset stale filters when creating or locating an invoice in Studio. - Scale Heatmap entrance timing with the theme motion setting. - Keep page-outline jumps aligned after lazy previews load and track section headings by their document position. - Remove content and icon morphing from Toast notifications, including stacked Notch notifications. - Prevent hidden chart data tables from creating extra scroll space inside previews. - Give chart loading and empty messages the shared inset card appearance. - Match Heatmap tooltips to the shared chart surface and inset the Gauge arc inside a thicker track. - Give Gauge arc ends a subtle corner radius. - Keep Gauge loading and empty states compact without a nested card. - Preserve the Heatmap calendar layout while loading or showing no activity. - Match the Gauge background track to its colored arc thickness. - Restore the Color Picker hue slider’s rainbow track. - Match catalog preview button text colors to the active theme. - Place Switch edge highlights on the thumb, keep passive surfaces flat, and preserve control edges when fields and buttons receive focus. - Restrict the native file picker to one file when maxFiles is one. - Keep File Upload removal animations inside the file list instead of jumping toward the viewport corner. - Preserve the Gauge loading ring while using theme colors for its mask. - Keep slider dragging focused without rescheduling focus on every pointer movement, and clear stale tab hover indicators when tabs disappear or become disabled. - Honor motion settings and visibility for spinner, progress, and shimmer animations; update traveling highlights when theme motion settings change. - Restore Notch swipe position and release pointer capture when gestures reverse or are cancelled. - Handle large chart datasets without argument-limit failures and avoid rebuilding number formatters for every tick or slice. - Parse small percentage color alpha and repeated CSS variable references correctly in Studio. - Keep Studio header sizing within supported limits and reject font values that can break generated CSS declarations. - Show indeterminate attachment progress for nonfinite values and refresh Morph text colors after theme changes. - Evaluate nested Studio length calculations with correct arithmetic precedence and root-relative units. - Include upstream license and attribution notices with CLI source installations without replacing the application's own license. - Remove unused bundled documentation fonts that lacked accompanying license notices. - Keep theme registry schema normalization compatible with its Elysia runtime. - Avoid false tab-alignment test failures caused by browser subpixel rounding. - Prevent dependency discovery from reloading browser tests during fresh CI runs. --- Source: http://sveltekit-prerender/changelog/0.1.0.md # @mielui/svelte 0.1.0 changelog This document aggregates the release notes for this version. Review it before integrating or upgrading Mielui. Large changes for this release have an LLM context page at [/changelog/0.1.0/llm.md](/changelog/0.1.0/llm.md). ## Docs - Initialize Mielui from Sivir UI with renamed packages and docs, preserved MIT attribution, and sleeping-cat branding. - Start Mielui releases at 0.1.0, independently of upstream Sivir UI versions. - Simplify the sleeping-cat favicon and matching logo to a single outline. - Use a mauve default accent with dark button labels and a lighter hover state. - Restore the README’s overview, preview, documentation link, and agent-skill instructions. --- Source: http://sveltekit-prerender/changelog/0.2.0/llm.md # @mielui/svelte 0.2.0 LLM changelog Context for coding agents upgrading or composing against this release. The human changelog is the short bullet list; this page covers only changes that need migration or composition detail. ## Borders Themes accept `chrome.borders: 'single' | 'double'`. Omitted values retain the existing double frame. Theme parsing preserves the setting and rejects unsupported values. Studio saves and exports it under Appearance as Borders. All double-frame surfaces honor `--mielui-border-inset-scale`, which defaults to one without generated theme CSS. Single sets the scale to zero; double sets it to one. This includes cards, menus, dialogs, sheets, toasts, Notch, code blocks, diffs, inset tables, composers, and chart tooltips. Shared modal and inset frames scale only their decorative inset. Panel cards also scale the inner border ring. Notch keeps its outer SVG outline, hides the inner outline, and expands the fill to the outer clip in single mode. Keep inset variants, their content padding, footers, and subpart composition. The setting changes the double-frame treatment, not the component variant. Existing single-border surfaces stay single. Glass, shadows, focus rings, and edge highlights remain independent. New double-frame implementations must follow this token rather than introduce fixed inset padding or a fixed inner ring. ## Toolbar depth exploration Toolbar.Root stays flat by default (`variant="default"`). Set `variant="depth"` on Root to enable the floating shell. Its Button, Link, and Item inherit the variant reactively, including through wrapper elements, and use the shared `--mielui-toolbar-raised` elevation, while selected Items use `--mielui-toolbar-pressed`. These theme-owned tokens include a contact shadow or inward shade and flatten with controlShadows: false. Compose focus rings with the appropriate elevation. Keep these treatments tied to theme shadow tokens; do not add fixed shadows to toolbar examples. The callable Toolbar used by composers retains its flat layout. The only public addition is Root's optional `variant: "default" | "depth"` prop. Glass Tooltip.Content uses the ordinary theme foreground to match its card-based translucent surface. Solid tooltips keep the dedicated tooltip color pair. Rich shortcut content should inherit the tooltip foreground, not the page's muted foreground, so it stays readable with both treatments. ## Changing numeric readouts Use `numberShuffle` from the existing action subpath for changing HTML numeric readouts. Give it a text-only span with the current value as source text. Pass the raw number as `value` and format its numeric argument for currencies, units, or decimals; a formatter returning a captured display string will not animate. Leave native editable inputs, SVG labels, and static identifiers unchanged. Custom render snippets should compose the same action. Never attach it to hidden tooltip sources that get cloned, because cloned DOM does not retain the action. Source-copy manifests that include these parts must also include both the action index and its render module. The action owns reduced-motion behavior and cleanup. ## Chart tooltip surfaces Chart tooltips inherit `overlaySurface()` and the shared inset frame. Do not override the frame padding with fixed spacing or add an inner border: its scaled padding already follows single/double borders. Keep the inner surface translucent in glass mode. Heatmap tooltip content is cloned into the shared tooltip bubble, so its content stays transparent and the bubble owns the glass treatment. ## Chart palette and rounder defaults Default chart colors are `--chart-1` through `--chart-5`, ordered purple, blue, red, green, yellow. Use `var(--chart-N)` in series config instead of hardcoded example colors. Explicit colors still override the fallback. Heatmaps use the first color for intensity and gauges use it for the primary tone; status tones keep their semantic colors. Studio saves palette edits in the active mode's theme tokens. The default radius scale is now 8/10/14/20px. Custom tokens and other radius presets remain available. ## Inset layout and glass Studio exports `--mielui-inset-position` as `top` or `bottom`. The shared internal `insetLayout` action moves exposed chrome strips and restores authored order when the token is absent. Consumers may pin an individual frame with `class="[--mielui-inset-position:top]"`. Use this for headers whose meaning depends on staying above content, such as package-manager tabs. Do not force a global preference onto both regions of a data table. Single-border mode removes decorative inset spacing on cards and ordinary overlays. Inset DataTable, Composer, CodeBlock, and documentation preview panels retain their structural gutter in both modes. Set the frame inset locally for those layouts; do not change the global border scale or ordinary cards. `DataTable.Root variant="inset"` is opt-in. Compose `Toolbar`, `View`, then a footer wrapper marked `data-ui="data-table-footer"` containing `Summary` and `Pagination`. These are the same parts used by the default high-level rendering. Omit or replace regions through the existing children snippet. The footer marker applies compact strip styling without introducing a new subcomponent. Known page counts use Mielui Pagination; unknown counts retain previous/next controls. Glass uses a translucent outer chrome and a separate translucent card fill inside. Do not make composer input panels fully transparent or opaque: both destroy either inset contrast or the backdrop. Preserve the shared surface helper, reduced-transparency fallback, and single-border geometry. --- Source: http://sveltekit-prerender/changelog/0.1.1/llm.md # @mielui/svelte 0.1.1 LLM changelog Context for coding agents upgrading or composing against this release. The human changelog is the short bullet list; this page covers only changes that need migration or composition detail. ## Navigation and repository tooling FullscreenNav and its component subpath are removed. Compose Sheet.Root, Sheet.Trigger, and Sheet.Content with a Sheet.Title, Sheet.Description, Sheet.Close, and ordinary navigation links. Keep the link list in a scrollable region and close the sheet when a link is selected. The repository now uses pnpm with Node.js. Install with `pnpm install --frozen-lockfile` and run workspace commands with `pnpm --filter run
Who can access this workspace? Only invited members can open projects. Owners can invite people and change their roles. Can I change my plan? Change your plan from Billing. New limits apply immediately, and your existing projects stay available. How do I export my data? Open Settings and choose Export. The archive includes your projects, files, and member list.
~~~~ ### Multiple Mode ~~~~svelte
Item A Content A. Any panels can be open together. Item B Content B. Opening this keeps Item A open too.
~~~~ ### Single Mode ~~~~svelte
Item A Content A. Only one panel is open at a time. Item B Content B. Opening this closes Item A.
~~~~ For the rendered reference, visit [/docs/components/accordion](/docs/components/accordion). --- Source: http://sveltekit-prerender/docs/components/alert.md # Alert Inset callout with separate visual variant and optional polite or assertive announcements. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: hugeicons-icon, utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add alert ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | variant | AlertVariant \| undefined | 'info' | No | No | | icon | false \| Snippet<[]> \| undefined | — | No | No | | announcement | "off" \| "assertive" \| "polite" \| undefined | 'off' | No | No | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Title | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; import Root from './alert.svelte'; import Description from './alert-description.svelte'; import Title from './alert-title.svelte'; export type AlertVariant = 'info' | 'error' | 'success' | 'warning'; export type AlertProps = { variant?: AlertVariant; icon?: Snippet | false; /** Announcement urgency, independent of appearance. Defaults to off. */ announcement?: 'off' | 'polite' | 'assertive'; } & DefaultProps & Omit, 'role' | 'aria-live' | 'aria-atomic'>; export type AlertTitleProps = DefaultProps; export type AlertDescriptionProps = DefaultProps; export { Description, Root, Title }; ~~~~ ## Examples ### Hero ~~~~svelte
Heads up You can add components to your app using the command line.
~~~~ ### Variant Error ~~~~svelte
Error This is a error alert with a title and description.
~~~~ ### Variant Info ~~~~svelte
Info This is a info alert with a title and description.
~~~~ ### Variant Success ~~~~svelte
Success This is a success alert with a title and description.
~~~~ ### Variant Warning ~~~~svelte
Warning This is a warning alert with a title and description.
~~~~ ### Variants ~~~~svelte
{#each messages as message (message.tone)} {message.title} {message.description} {/each}
~~~~ For the rendered reference, visit [/docs/components/alert](/docs/components/alert). --- Source: http://sveltekit-prerender/docs/components/alert-dialog.md # Alert Dialog Confirmation dialog with role="alertdialog", default allowClickOutside=false, and Exit/Confirm buttons (no Close). - Package: `@mielui/svelte` - Component version: `1.2.0` - Depends on Mielui components: _internal/utils, dialog, button - Shared utilities: utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add alert-dialog ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Confirm | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | closeOnClick | boolean \| undefined | true | No | No | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | surface | "solid" \| "glass" \| undefined | — | No | No | | ariaBusy | boolean \| undefined | — | No | No | | allowEscape | boolean \| undefined | true | No | No | | size | DialogSize \| undefined | 'sm' | No | No | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Exit | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | closeOnClick | boolean \| undefined | true | No | No | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Footer | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Header | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | open | boolean \| undefined | false | No | Yes | | onOpenChange | ((open: boolean) => void) \| undefined | — | No | No | | error | boolean \| undefined | false | No | No | | orientation | DialogOrientation \| undefined | 'vertical' | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Title | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | No | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { ButtonProps } from '@mielui/svelte/components/button'; import type { DialogOrientation, DialogSize } from '@mielui/svelte/components/dialog'; import type { DefaultProps } from '@mielui/svelte/utils'; import type { Snippet } from 'svelte'; import Root from './alert-dialog.svelte'; import Confirm from './alert-dialog-confirm.svelte'; import Content from './alert-dialog-content.svelte'; import Description from './alert-dialog-description.svelte'; import Exit from './alert-dialog-exit.svelte'; import Footer from './alert-dialog-footer.svelte'; import Header from './alert-dialog-header.svelte'; import Title from './alert-dialog-title.svelte'; import Trigger from './alert-dialog-trigger.svelte'; export type AlertDialogState = { open: boolean; triggerRef?: HTMLElement | null; }; export type AlertDialogProps = { open?: boolean; onOpenChange?: (open: boolean) => void; /** Sets supported browser chrome to red while the alert dialog is open. */ error?: boolean; /** Controls the default width and action layout. Defaults to `vertical`. */ orientation?: DialogOrientation; children?: Snippet; }; export type AlertDialogContentProps = { surface?: 'solid' | 'glass'; ariaBusy?: boolean; allowEscape?: boolean; /** Width preset. Vertical layouts remain compact; horizontal layouts are one step wider. */ size?: DialogSize; } & DefaultProps; export type AlertDialogActionProps = { closeOnClick?: boolean; } & ButtonProps; export { Confirm, Content, Description, Exit, Footer, Header, Root, Title, Trigger }; ~~~~ ## Examples ### Destructive ~~~~svelte
Delete project Delete this project? All branches, issues, and deploy history will be permanently removed. Cancel Delete project
~~~~ ### Glass ~~~~svelte
Delete workspace
Delete this workspace?
All projects, comments, and exports will be removed. This action cannot be undone.
Cancel Delete
~~~~ ### Hero ~~~~svelte
Delete workspace
Delete this workspace?
This preview will mark the sample workspace as deleted. Your actual workspaces are unaffected.
Cancel Delete

{deleted ? 'Sample workspace deleted.' : 'Sample workspace is active.'}

~~~~ ### Sign Out ~~~~svelte
Sign out Sign out? This preview will show a signed-out state. Your actual session is unchanged. Stay Sign out
{#if signedOut}

Signed out of the preview.

{/if}
~~~~ For the rendered reference, visit [/docs/components/alert-dialog](/docs/components/alert-dialog). --- Source: http://sveltekit-prerender/docs/components/avatar.md # Avatar Image avatar with fallback. 4 sizes (sm/md/lg/xl), circle or square shape. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: utils.createContext, utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add avatar ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Fallback | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | class | string \| undefined | — | No | No | ### Image | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | src | string \| undefined | — | No | No | | alt | string \| undefined | '' | No | No | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | size | "sm" \| "md" \| "lg" \| "xl" \| undefined | 'md' | No | No | | shape | "circle" \| "square" \| undefined | 'circle' | No | No | | children | Snippet<[]> \| undefined | — | No | No | | class | string \| undefined | — | No | No | ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { Snippet } from 'svelte'; import type { HTMLImgAttributes } from 'svelte/elements'; import Root from './avatar.svelte'; import Fallback from './avatar-fallback.svelte'; import Image from './avatar-image.svelte'; export type AvatarProps = { size?: 'sm' | 'md' | 'lg' | 'xl'; shape?: 'circle' | 'square'; children?: Snippet; } & DefaultProps; export type AvatarImageProps = { src?: string; alt?: string; } & DefaultProps & HTMLImgAttributes; export type AvatarFallbackProps = { children?: Snippet; } & DefaultProps; export { Fallback, Image, Root }; ~~~~ ## Examples ### Hero ~~~~svelte
MI
~~~~ ### Shapes ~~~~svelte
CR SQ
~~~~ ### Sizes ~~~~svelte
SM MD LG XL
~~~~ ### With Image ~~~~svelte
AM
~~~~ For the rendered reference, visit [/docs/components/avatar](/docs/components/avatar). --- Source: http://sveltekit-prerender/docs/components/badge.md # Badge Inline status pill with optional dot marker. 9 variants (5 intents + 4 statuses). Optionally renders as anchor when href is provided. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add badge ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Badge | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | variant | BadgeVariant \| undefined | 'secondary' | No | No | | icon | Component<{ size?: string \| number \| undefined; class?: string \| undefined; }, {}, string> \| undefined | — | No | No | | iconSize | string \| number \| undefined | 13 | No | No | | dot | boolean \| undefined | false | No | No | | children | Snippet<[]> \| undefined | — | No | No | | class | string \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { Component, Snippet } from 'svelte'; import type { HTMLAnchorAttributes, HTMLAttributes } from 'svelte/elements'; import Badge from './badge.svelte'; export type BadgeVariant = | 'primary' | 'secondary' | 'ghost' | 'outline' | 'destructive' | 'info' | 'success' | 'warning' | 'error'; type BadgeSharedProps = { variant?: BadgeVariant; icon?: Component<{ size?: number | string; class?: string }>; iconSize?: number | string; dot?: boolean; children?: Snippet; } & DefaultProps; type BadgeLinkProps = BadgeSharedProps & { href: string; } & Omit; type BadgeStaticProps = BadgeSharedProps & { href?: undefined; } & Omit, keyof BadgeSharedProps> & { [Attribute in Exclude< keyof HTMLAnchorAttributes, keyof HTMLAttributes >]?: never; }; export type BadgeProps = BadgeLinkProps | BadgeStaticProps; export { Badge }; export default Badge; ~~~~ ## Examples ### Hero ~~~~svelte Label ~~~~ ### Shapes ~~~~svelte
Beta 8 Draft Live
~~~~ ### Variant Destructive ~~~~svelte Destructive ~~~~ ### Variant Error ~~~~svelte Error ~~~~ ### Variant Ghost ~~~~svelte Ghost ~~~~ ### Variant Info ~~~~svelte Info ~~~~ ### Variant Outline ~~~~svelte Outline ~~~~ ### Variant Primary ~~~~svelte Primary ~~~~ ### Variant Secondary ~~~~svelte Secondary ~~~~ ### Variant Success ~~~~svelte Success ~~~~ ### Variant Warning ~~~~svelte Warning ~~~~ ### Variants ~~~~svelte
Primary Secondary Ghost Outline Destructive Info Success Warning Error
~~~~ For the rendered reference, visit [/docs/components/badge](/docs/components/badge). --- Source: http://sveltekit-prerender/docs/components/breadcrumb.md # Breadcrumb Router-independent navigation trail with explicit current-page items and decorative separators. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: hugeicons-icon, utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add breadcrumb ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Item | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | href | string \| undefined | — | No | No | | current | boolean \| undefined | false | No | No | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Separator | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { HTMLAnchorAttributes, HTMLAttributes } from 'svelte/elements'; import Root from './breadcrumb.svelte'; import Item from './breadcrumb-item.svelte'; import Separator from './breadcrumb-separator.svelte'; export type BreadcrumbProps = DefaultProps & HTMLAttributes; export type BreadcrumbItemProps = { href?: string; /** Whether this item represents the current page. Router independent. */ current?: boolean; } & DefaultProps & Omit; export type BreadcrumbSeparatorProps = DefaultProps; export { Item, Root, Separator }; ~~~~ ## Examples ### Hero ~~~~svelte
Home Docs Current
~~~~ ### Separators ~~~~svelte
Home Page
Home / Page
~~~~ ### With Icon ~~~~svelte
Docs Components
~~~~ For the rendered reference, visit [/docs/components/breadcrumb](/docs/components/breadcrumb). --- Source: http://sveltekit-prerender/docs/components/button.md # Button Click target with seven variants: primary, secondary, ghost, quiet, outline, destructive, and panel. Quiet matches ghost text color without a hover fill. Supports four sizes and stable loading, success, and error states. Renders as ~~~~ ### Disabled ~~~~svelte ~~~~ ### Hero ~~~~svelte ~~~~ ### Icon Group ~~~~svelte
Download sample Copy release notes {removed ? 'Restore attachment' : 'Remove attachment'}

{message}

~~~~ ### Leading Icon ~~~~svelte ~~~~ ### Loading ~~~~svelte

This preview simulates a request. It publishes nothing.

~~~~ ### Sizes ~~~~svelte
Favorite
~~~~ ### Trailing Icon ~~~~svelte ~~~~ ### Variant Destructive ~~~~svelte ~~~~ ### Variant Ghost ~~~~svelte ~~~~ ### Variant Outline ~~~~svelte ~~~~ ### Variant Panel ~~~~svelte ~~~~ ### Variant Primary ~~~~svelte ~~~~ ### Variant Quiet ~~~~svelte ~~~~ ### Variant Secondary ~~~~svelte ~~~~ ### Variants ~~~~svelte
~~~~ For the rendered reference, visit [/docs/components/button](/docs/components/button). --- Source: http://sveltekit-prerender/docs/components/calendar.md # Calendar Composable single-date calendar with localized keyboard navigation and month/year controls. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils, button - Shared utilities: utils.cn, hugeicons-icon ## Install ~~~~sh pnpm dlx @mielui/svelte add calendar ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### NextButton | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### PrevButton | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[CalendarRootSnippetProps]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | placeholder | DateValue \| undefined | — | No | Yes | | style | string \| StyleProperties \| null \| undefined | — | No | No | | disabled | boolean \| undefined | — | No | No | | value | DateValue \| undefined | — | No | Yes | | readonly | boolean \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | onValueChange | OnChangeFn \| undefined | — | No | No | | onPlaceholderChange | OnChangeFn \| undefined | — | No | No | | preventDeselect | boolean \| undefined | — | No | No | | minValue | DateValue \| undefined | — | No | No | | maxValue | DateValue \| undefined | — | No | No | | pagedNavigation | boolean \| undefined | — | No | No | | weekStartsOn | WeekStartsOn \| undefined | — | No | No | | weekdayFormat | "long" \| "short" \| "narrow" \| undefined | 'short' | No | No | | isDateDisabled | DateMatcher \| undefined | — | No | No | | isDateUnavailable | DateMatcher \| undefined | — | No | No | | fixedWeeks | boolean \| undefined | true | No | No | | numberOfMonths | number \| undefined | — | No | No | | calendarLabel | string \| undefined | — | No | No | | locale | string \| undefined | 'en-US' | No | No | | initialFocus | boolean \| undefined | — | No | No | | disableDaysOutsideMonth | boolean \| undefined | — | No | No | | maxDays | number \| undefined | — | No | No | | monthFormat | "numeric" \| "long" \| "short" \| "narrow" \| "2-digit" \| ((month: number) => string) \| undefined | — | No | No | | yearFormat | "numeric" \| "2-digit" \| ((year: number) => string) \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Cell | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | date | CalendarDate \| CalendarDateTime \| ZonedDateTime | — | Yes | No | | month | CalendarDate \| CalendarDateTime \| ZonedDateTime | — | Yes | No | | child | Snippet<[CalendarCellSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarCellSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Day | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[CalendarDaySnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarDaySnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Grid | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridBody | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridHead | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridRow | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### HeadCell | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Header | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Heading | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[CalendarHeadingSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarHeadingSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Month | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | month | { value: DateValue; weeks: DateValue[][]; dates: DateValue[]; } | — | Yes | No | | weekdays | string[] | — | Yes | No | | locale | string \| undefined | 'en-US' | No | No | | showHeading | boolean \| undefined | false | No | No | | day | Snippet<[date: DateValue]> \| undefined | — | No | No | ### MonthSelect | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | monthFormat | "numeric" \| "long" \| "short" \| "narrow" \| "2-digit" \| ((month: number) => string) \| undefined | — | No | No | | months | number[] \| undefined | — | No | No | | child | Snippet<[CalendarMonthSelectSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarMonthSelectSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### YearSelect | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | yearFormat | "numeric" \| "2-digit" \| ((year: number) => string) \| undefined | — | No | No | | years | number[] \| undefined | — | No | No | | child | Snippet<[CalendarYearSelectSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarYearSelectSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { DateValue } from '@internationalized/date'; import type { DefaultProps } from '@mielui/svelte/utils'; import type { Calendar as CalendarPrimitive, CalendarRootSnippetProps } from 'bits-ui'; import type { Snippet } from 'svelte'; export type CalendarProps = Omit< Extract, 'type' | 'child' >; export type CalendarMonthProps = Omit & { month: CalendarRootSnippetProps['months'][number]; weekdays: string[]; locale?: string; showHeading?: boolean; day?: Snippet<[date: DateValue]>; }; export { default as NextButton } from '../calendar/calendar-next-button.svelte'; export { default as PrevButton } from '../calendar/calendar-prev-button.svelte'; export { default as Root } from './calendar.svelte'; export { default as Cell } from './calendar-cell.svelte'; export { default as Day } from './calendar-day.svelte'; export { default as Grid } from './calendar-grid.svelte'; export { default as GridBody } from './calendar-grid-body.svelte'; export { default as GridHead } from './calendar-grid-head.svelte'; export { default as GridRow } from './calendar-grid-row.svelte'; export { default as HeadCell } from './calendar-head-cell.svelte'; export { default as Header } from './calendar-header.svelte'; export { default as Heading } from './calendar-heading.svelte'; export { default as Month } from './calendar-month.svelte'; export { default as MonthSelect } from './calendar-month-select.svelte'; export { default as YearSelect } from './calendar-year-select.svelte'; ~~~~ ## Examples ### Constraints ~~~~svelte isWeekend(date, 'en-US')} /> ~~~~ ### Hero ~~~~svelte

Meeting date {value?.toString() ?? 'Not selected'}

~~~~ ### Navigation ~~~~svelte {#snippet children({ months, weekdays })} {#each months as month (month.value.toString())} {/each} {/snippet} ~~~~ For the rendered reference, visit [/docs/components/calendar](/docs/components/calendar). --- Source: http://sveltekit-prerender/docs/components/card.md # Card Surface container with Header, Title, Description, Content, and Footer subparts. - Package: `@mielui/svelte` - Component version: `1.1.0` - Depends on Mielui components: _internal/utils, typography - Shared utilities: components/_internal/inset-layout, utils.cn, utils.createContext ## Install ~~~~sh pnpm dlx @mielui/svelte add card ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Footer | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Header | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | variant | "panel" \| "inset" \| "default" \| undefined | 'default' | No | No | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Title | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | level | HeadingLevel \| undefined | 2 | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { HTMLAttributes } from 'svelte/elements'; import type { HeadingLevel } from '../typography'; import Root from './card.svelte'; import Content from './card-content.svelte'; import Description from './card-description.svelte'; import Footer from './card-footer.svelte'; import Header from './card-header.svelte'; import Title from './card-title.svelte'; export type CardProps = { variant?: 'default' | 'panel' | 'inset'; } & DefaultProps; export type CardHeaderProps = DefaultProps; export type CardTitleProps = DefaultProps & HTMLAttributes & { /** Heading level in the surrounding document. Defaults to 2. */ level?: HeadingLevel; }; export type CardDescriptionProps = DefaultProps; export type CardContentProps = DefaultProps; export type CardFooterProps = DefaultProps; export { Content, Description, Footer, Header, Root, Title }; ~~~~ ## Examples ### Content Only ~~~~svelte

Your next invoice is due October 1. Billing details stay available to workspace owners.

~~~~ ### Full ~~~~svelte Account settings Manage your workspace settings.

Currently on the Team plan. 12 of 25 seats used.

{message}

~~~~ ### Header Footer ~~~~svelte Settings

{message}

~~~~ ### Hero ~~~~svelte
Team handbook Published
The policies and guides your team uses every day.
Framework
SvelteKit
Last update
Today
~~~~ ### Inset ~~~~svelte
Team handbook Published
The policies and guides your team uses every day.
Framework
SvelteKit
Last update
Today
~~~~ ### Panel ~~~~svelte Inset surface Concentric double-line frame for denser UI chrome.

Usevariant="panel" when a card should sit inside a framed surface instead of a flat border.

~~~~ For the rendered reference, visit [/docs/components/card](/docs/components/card). --- Source: http://sveltekit-prerender/docs/components/checkbox.md # Checkbox Custom-styled checkbox with bindable checked. Default and primary variants. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: components/_internal/field-metadata, hugeicons-icon, utils.cn, transition ## Install ~~~~sh pnpm dlx @mielui/svelte add checkbox ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Checkbox | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | checked | boolean \| undefined | false | No | Yes | | label | string \| undefined | — | No | No | | description | string \| undefined | — | No | No | | disabled | boolean \| undefined | — | No | No | | variant | "primary" \| "default" \| undefined | 'default' | No | No | | size | "sm" \| "md" \| "lg" \| undefined | 'md' | No | No | | onCheckedChange | ((checked: boolean) => void) \| undefined | — | No | No | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { HTMLInputAttributes } from 'svelte/elements'; import Checkbox from './checkbox.svelte'; export type CheckboxProps = { checked?: boolean; label?: string; description?: string; disabled?: boolean; variant?: 'default' | 'primary'; size?: 'sm' | 'md' | 'lg'; onCheckedChange?: (checked: boolean) => void; } & DefaultProps & Omit; export { Checkbox }; export default Checkbox; ~~~~ ## Examples ### Checked ~~~~svelte
~~~~ ### Disabled ~~~~svelte
~~~~ ### Hero ~~~~svelte

Launch checklist

{completedCount} /{totalCount}
~~~~ ### Label Only ~~~~svelte
~~~~ ### Sizes ~~~~svelte
~~~~ ### With Description ~~~~svelte
~~~~ For the rendered reference, visit [/docs/components/checkbox](/docs/components/checkbox). --- Source: http://sveltekit-prerender/docs/components/collapsible.md # Collapsible Single-item disclosure panel with bindable open state. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: utils.cn, utils.createContext, transition ## Install ~~~~sh pnpm dlx @mielui/svelte add collapsible ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | class | string \| undefined | — | No | No | ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | open | boolean \| undefined | false | No | Yes | | disabled | boolean \| undefined | false | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { Snippet } from 'svelte'; import type { HTMLButtonAttributes } from 'svelte/elements'; import Root from './collapsible.svelte'; import Content from './collapsible-content.svelte'; import Trigger from './collapsible-trigger.svelte'; export type CollapsibleProps = { open?: boolean; disabled?: boolean; children?: Snippet; }; export type CollapsibleTriggerProps = { children?: Snippet; } & DefaultProps & Omit; export type CollapsibleContentProps = { children?: Snippet; } & DefaultProps; export type CollapsibleState = { open: boolean; disabled: boolean; }; export { Content, Root, Trigger }; ~~~~ ## Examples ### Default ~~~~svelte
{open ? 'Hide delivery details' : 'Show delivery details'} Delivery takes 3 to 5 business days. A tracking link appears here after the order ships.
~~~~ ### Hero ~~~~svelte
Weekly sync, June 18

The export flow is ready for testing. Maya owns the migration guide, and Sam will review keyboard navigation before Friday.

  • • Ship the studio redesign by end of quarter
  • • Draft v2 migration guide for customers
  • • Review pricing experiment results with finance
~~~~ For the rendered reference, visit [/docs/components/collapsible](/docs/components/collapsible). --- Source: http://sveltekit-prerender/docs/components/combobox.md # Combobox Searchable popover-based picker with fuzzy results via fuse.js. - Package: `@mielui/svelte` - Component version: `2.4.0` - Depends on Mielui components: _internal/utils, popover, button, input, scroll-area - Shared utilities: components/_internal/button-attributes, components/_internal/surface, hugeicons-icon, utils.cn, utils.createContext, utils.inertOutside, utils.travelingHighlight ## Install ~~~~sh pnpm dlx @mielui/svelte add combobox ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | surface | "solid" \| "glass" \| undefined | — | No | No | | children | Snippet<[]> | — | Yes | No | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | | surfaceClass | string \| undefined | — | No | No | | allowClickOutside | boolean \| undefined | true | No | No | | dismissLayer | boolean \| undefined | true | No | No | | portal | boolean \| undefined | true | No | No | | refElement | VirtualElement \| undefined | — | No | No | | role | "none" \| "alertdialog" \| "dialog" \| "listbox" \| "menu" \| undefined | 'none' | No | No | | tabindex | number \| undefined | -1 | No | No | | focusTrap | boolean \| undefined | — | No | No | | lockScroll | boolean \| undefined | true | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Item | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | value | string \| string \| (string & string[]) | — | Yes | No | | label | string | — | Yes | No | | callback | (() => void) \| undefined | — | No | No | | disabled | boolean \| undefined | false | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Label | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> | — | Yes | No | | class | string \| undefined | — | No | No | ### Results | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | open | boolean \| undefined | false | No | Yes | | onOpenChange | ((open: boolean) => void) \| undefined | — | No | No | | placement | Placement \| undefined | 'bottom' | No | No | | state_key | string \| undefined | — | No | No | | stateKey | string \| undefined | — | No | No | | hoverable | boolean \| undefined | false | No | No | | delay | number \| undefined | 0 | No | No | | closeDelay | number \| undefined | 150 | No | No | | inert | boolean \| undefined | true | No | No | | type | "single" \| undefined \| "multiple" | — | No | No | | value | string \| undefined \| string[] \| undefined | undefined | No | Yes | | onValueChange | ((value: string) => void) \| undefined \| ((value: string[]) => void) \| undefined | — | No | No | ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | style | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | variant | ButtonVariant \| undefined | 'outline' | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | 'md' | No | No | | unstyled | boolean \| undefined | — | No | No | | icon | boolean \| undefined | — | No | No | | onopen | (() => void) \| undefined | — | No | No | | trailing | Snippet<[]> \| undefined | — | No | No | | placeholder | string \| undefined | 'Select…' | No | No | | searchPlacement | "menu" \| "trigger" \| undefined | 'trigger' | No | No | | threshold | number \| undefined | 0.28 | No | No | | appearance | "button" \| "input" \| undefined | 'button' | No | No | | element | HTMLButtonElement \| HTMLInputElement \| undefined | — | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { PopoverProps, PopoverTriggerProps } from '@mielui/svelte/components/popover'; import type { Snippet } from 'svelte'; import Root from './combobox.svelte'; import Content from './combobox-content.svelte'; import Item from './combobox-item.svelte'; import Label from './combobox-label.svelte'; import Results from './combobox-results.svelte'; import Trigger from './combobox-trigger.svelte'; export type ComboboxItem = { id: string; value: string; label: string; callback?: () => void; ref: HTMLButtonElement | HTMLAnchorElement | undefined; }; export type ComboboxState = { open: boolean; items: Set; results: Set; searchContent: string; searchPlacement: 'trigger' | 'menu'; threshold: number; appearance: 'button' | 'input'; activeValue?: string; selected?: ComboboxItem; }; export type ComboboxRootProps = PopoverProps & ( | { type?: 'single'; value?: string; onValueChange?: (value: string) => void; } | { type: 'multiple'; value?: string[]; onValueChange?: (value: string[]) => void; } ); export type ComboboxTriggerProps = Omit< PopoverTriggerProps, 'children' | 'element' | 'value' | 'type' > & { trailing?: Snippet; placeholder?: string; searchPlacement?: 'trigger' | 'menu'; threshold?: number; appearance?: 'button' | 'input'; element?: HTMLInputElement | HTMLButtonElement; }; export { Content, Item, Label, Results, Root, Trigger }; ~~~~ ## Examples ### Basic ~~~~svelte
{#each languages as item (item.value)} {/each}
~~~~ ### Glass ~~~~svelte
{#each frameworks as item (item.value)} {/each}
~~~~ ### Hero ~~~~svelte
{#each frameworks as item (item.value)} {/each}
~~~~ ### Input Search ~~~~svelte
{#each customers as item (item.value)} {/each}
~~~~ ### Menu Search ~~~~svelte
{#each repositories as repository (repository.value)} {/each}
~~~~ ### Multiple ~~~~svelte
{#each teams as team (team.value)} {/each}

{selected.length} {selected.length === 1 ? 'team' : 'teams'} selected

~~~~ ### Scrollable ~~~~svelte
{#each countries as country (country.value)} {/each}
~~~~ For the rendered reference, visit [/docs/components/combobox](/docs/components/combobox). --- Source: http://sveltekit-prerender/docs/components/context-menu.md # Context Menu Right-click contextual menu with sub-menus and checkbox items. Positioned via @floating-ui virtual element. - Package: `@mielui/svelte` - Component version: `1.1.0` - Depends on Mielui components: _internal/utils, popover, button - Shared utilities: components/_internal/button-attributes, transition, components/_internal/surface, hugeicons-icon, utils.closeMenuLayers, utils.cn, utils.createContext, utils.travelingHighlight ## Install ~~~~sh pnpm dlx @mielui/svelte add context-menu ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### CheckboxItem | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | callback | (() => void) \| undefined | — | No | No | | value | string \| string \| (string & string[]) | — | Yes | No | | inset | boolean \| undefined | false | No | No | | checked | boolean \| undefined | false | No | Yes | | disabled | boolean \| undefined | false | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | surface | "solid" \| "glass" \| undefined | — | No | No | ### Item | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | callback | (() => void) \| undefined | — | No | No | | inset | boolean \| undefined | false | No | No | | disabled | boolean \| undefined | false | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | open | boolean \| undefined | false | No | Yes | | onOpenChange | ((open: boolean) => void) \| undefined | — | No | No | ### Separator | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Sub | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | ### SubContent | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | surface | "solid" \| "glass" \| undefined | — | No | No | ### SubTrigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | inset | boolean \| undefined | false | No | No | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Public types ~~~~ts import type { VirtualElement } from '@floating-ui/dom'; import type { DefaultProps } from '@mielui/svelte/utils'; import type { Snippet } from 'svelte'; import type { ButtonProps } from '../button'; import Root from './context-menu.svelte'; import CheckboxItem from './context-menu-checkbox-item.svelte'; import Content from './context-menu-content.svelte'; import Item from './context-menu-item.svelte'; import Separator from './context-menu-separator.svelte'; import Sub from './context-menu-sub.svelte'; import SubContent from './context-menu-sub-content.svelte'; import SubTrigger from './context-menu-sub-trigger.svelte'; import Trigger from './context-menu-trigger.svelte'; export type ContextMenuProps = { children?: Snippet; open?: boolean; onOpenChange?: (open: boolean) => void; }; export type ContextMenuContentProps = DefaultProps & { surface?: 'solid' | 'glass' }; export type ContextMenuItemProps = { callback?: () => void; inset?: boolean; } & ButtonProps; export type ContextMenuCheckboxItemProps = { callback?: () => void; value: string; inset?: boolean; checked?: boolean; } & ButtonProps; export type ContextMenuSeparatorProps = DefaultProps; export type ContextMenuSubContentProps = DefaultProps & { surface?: 'solid' | 'glass' }; export type ContextMenuSubTriggerProps = { inset?: boolean; } & DefaultProps; export type ContextMenuSubProps = { children?: Snippet }; export type ContextMenuTriggerProps = DefaultProps; export type ContextMenuCheckboxItemState = { checked?: boolean; value: string; }; export type ContextMenuState = { open: boolean; virtualElement?: VirtualElement; checkboxItems: Map; }; export { CheckboxItem, Content, Item, Root, Separator, Sub, SubContent, SubTrigger, Trigger }; ~~~~ ## Examples ### File Row ~~~~svelte
{name}
Rename file
{#if editing}
{/if}

Open the file menu to rename it.

{message}

~~~~ ### Glass ~~~~svelte
{#if deleted} {:else}
{fileName} {`${copies} ${copies === 1 ? 'item' : 'items'}`} Right-click or press and hold
{#each actions as action (action)} apply(action)}> {action} {/each} Organize apply('Rename')}> Rename to updated draft Restore original
{/if}

{message}

~~~~ ### Hero ~~~~svelte
{#if deleted} {:else}
{fileName} {`${copies} ${copies === 1 ? 'item' : 'items'}`} Right-click or press and hold
{#each actions as action (action)} apply(action)}> {action} {/each} Organize apply('Rename')}> Rename to updated draft Restore original
{/if}

{message}

~~~~ ### Image ~~~~svelte
Rotate clockwise Reset orientation Copy preview link

Right-click or press and hold the illustration.

{message}

~~~~ ### Task Card ~~~~svelte
{#if deleted} {:else}
{fileName} {complete ? 'Completed' : `${copies} ${copies === 1 ? 'item' : 'items'}`} Right-click or press and hold
{#each actions as action (action)} apply(action)}> {action === 'Mark complete' && complete ? 'Reopen task' : action} {/each}
{/if}

{message}

~~~~ For the rendered reference, visit [/docs/components/context-menu](/docs/components/context-menu). --- Source: http://sveltekit-prerender/docs/components/date-picker.md # Date Picker Segmented date field and calendar popup with locale, validation, and form support. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils, calendar, button, input - Shared utilities: utils.cn, utils.createContext, hugeicons-icon, components/_internal/surface, transition ## Install ~~~~sh pnpm dlx @mielui/svelte add date-picker ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Cell | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | date | CalendarDate \| CalendarDateTime \| ZonedDateTime | — | Yes | No | | month | CalendarDate \| CalendarDateTime \| ZonedDateTime | — | Yes | No | | child | Snippet<[CalendarCellSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarCellSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Day | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[CalendarDaySnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarDaySnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Grid | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridBody | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridHead | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridRow | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### HeadCell | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Header | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Heading | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[CalendarHeadingSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarHeadingSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Month | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | month | { value: DateValue; weeks: DateValue[][]; dates: DateValue[]; } | — | Yes | No | | weekdays | string[] | — | Yes | No | | locale | string \| undefined | 'en-US' | No | No | | showHeading | boolean \| undefined | false | No | No | | day | Snippet<[date: DateValue]> \| undefined | — | No | No | ### MonthSelect | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | monthFormat | "numeric" \| "long" \| "short" \| "narrow" \| "2-digit" \| ((month: number) => string) \| undefined | — | No | No | | months | number[] \| undefined | — | No | No | | child | Snippet<[CalendarMonthSelectSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarMonthSelectSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### NextButton | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### PrevButton | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### YearSelect | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | yearFormat | "numeric" \| "2-digit" \| ((year: number) => string) \| undefined | — | No | No | | years | number[] \| undefined | — | No | No | | child | Snippet<[CalendarYearSelectSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarYearSelectSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | dir | Direction \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | align | "center" \| "start" \| "end" \| undefined | 'start' | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | onInteractOutside | InteractOutsideEventHandler \| undefined | — | No | No | | interactOutsideBehavior | InteractOutsideBehaviorType \| undefined | — | No | No | | onFocusOutside | ((event: FocusEvent) => void) \| undefined | — | No | No | | preventScroll | boolean \| undefined | — | No | No | | onEscapeKeydown | ((e: KeyboardEvent) => void) \| undefined | — | No | No | | escapeKeydownBehavior | EscapeBehaviorType \| undefined | — | No | No | | side | "left" \| "right" \| "top" \| "bottom" \| undefined | — | No | No | | sideOffset | number \| undefined | 6 | No | No | | alignOffset | number \| undefined | — | No | No | | arrowPadding | number \| undefined | — | No | No | | avoidCollisions | boolean \| undefined | — | No | No | | collisionBoundary | Arrayable \| undefined | — | No | No | | collisionPadding | number \| Partial> \| undefined | 8 | No | No | | sticky | "partial" \| "always" \| undefined | — | No | No | | hideWhenDetached | boolean \| undefined | — | No | No | | updatePositionStrategy | "always" \| "optimized" \| undefined | — | No | No | | strategy | "absolute" \| "fixed" \| undefined | — | No | No | | customAnchor | string \| HTMLElement \| Measurable \| null \| undefined | — | No | No | | preventOverflowTextSelection | boolean \| undefined | — | No | No | | onOpenAutoFocus | EventCallback \| undefined | — | No | No | | onCloseAutoFocus | EventCallback \| undefined | — | No | No | | trapFocus | boolean \| undefined | — | No | No | | surface | "solid" \| "glass" \| undefined | — | No | No | | portal | boolean \| undefined | true | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Label | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Segment | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | part | "month" \| "year" \| "day" \| "hour" \| "minute" \| "second" \| "dayPeriod" \| "timeZoneName" \| "literal" | — | Yes | No | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | placeholder | DateValue \| undefined | — | No | Yes | | disabled | boolean \| undefined | false | No | No | | value | DateValue \| undefined | — | No | Yes | | readonly | boolean \| undefined | false | No | No | | required | boolean \| undefined | false | No | No | | onValueChange | OnChangeFn \| undefined | — | No | No | | onPlaceholderChange | OnChangeFn \| undefined | — | No | No | | preventDeselect | boolean \| undefined | — | No | No | | minValue | DateValue \| undefined | — | No | No | | maxValue | DateValue \| undefined | — | No | No | | pagedNavigation | boolean \| undefined | — | No | No | | weekStartsOn | WeekStartsOn \| undefined | — | No | No | | weekdayFormat | "long" \| "short" \| "narrow" \| undefined | 'short' | No | No | | isDateDisabled | DateMatcher \| undefined | — | No | No | | isDateUnavailable | DateMatcher \| undefined | — | No | No | | fixedWeeks | boolean \| undefined | true | No | No | | numberOfMonths | number \| undefined | — | No | No | | calendarLabel | string \| undefined | — | No | No | | locale | string \| undefined | 'en-US' | No | No | | initialFocus | boolean \| undefined | — | No | No | | disableDaysOutsideMonth | boolean \| undefined | — | No | No | | monthFormat | "numeric" \| "long" \| "short" \| "narrow" \| "2-digit" \| ((month: number) => string) \| undefined | — | No | No | | yearFormat | "numeric" \| "2-digit" \| ((year: number) => string) \| undefined | — | No | No | | open | boolean \| undefined | false | No | Yes | | onOpenChange | OnChangeFn \| undefined | — | No | No | | onOpenChangeComplete | OnChangeFn \| undefined | — | No | No | | validate | DateValidator \| undefined | — | No | No | | onInvalid | DateOnInvalid \| undefined | — | No | No | | readonlySegments | ("month" \| "year" \| "day" \| "hour" \| "minute" \| "second" \| "dayPeriod")[] \| undefined | — | No | No | | hourCycle | 12 \| 24 \| undefined | — | No | No | | granularity | Granularity \| undefined | — | No | No | | hideTimeZone | boolean \| undefined | — | No | No | | closeOnDateSelect | boolean \| undefined | — | No | No | | errorMessageId | string \| undefined | — | No | No | ### Calendar | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[CalendarRootSnippetProps]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Input | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[DateFieldInputSnippetProps]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | name | string \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | form | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | openOnHover | boolean \| undefined | — | No | No | | openDelay | number \| undefined | — | No | No | | closeDelay | number \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { DatePicker as DatePickerPrimitive } from 'bits-ui'; export type DatePickerProps = Omit; export type DatePickerContentProps = Omit< DatePickerPrimitive.ContentProps, 'child' | 'forceMount' > & { surface?: 'solid' | 'glass'; portal?: boolean; }; export { Cell, Day, Grid, GridBody, GridHead, GridRow, HeadCell, Header, Heading, Month, MonthSelect, NextButton, PrevButton, YearSelect } from '../calendar'; export { default as Content } from '../date-picker/date-picker-content.svelte'; export { default as Label } from '../date-picker/date-picker-label.svelte'; export { default as Segment } from '../date-picker/date-picker-segment.svelte'; export { default as Root } from './date-picker.svelte'; export { default as Calendar } from './date-picker-calendar.svelte'; export { default as Input } from './date-picker-input.svelte'; export { default as Trigger } from './date-picker-trigger.svelte'; ~~~~ ## Examples ### Disabled ~~~~svelte
Dates are locked
~~~~ ### Form ~~~~svelte
{ event.preventDefault(); submitted = Array.from(new FormData(event.currentTarget).entries()).map(([name, entry]) => `${name}=${entry}`).join(', '); readonly = true; }} onreset={() => { submitted = ''; readonly = false; }} >
Appointment date

Choose a date between September and December 2026. Saving makes the field read-only.

{submitted || 'No date submitted.'}

~~~~ ### Hero ~~~~svelte
Publish date

Type a date or choose one from the calendar.

~~~~ ### Localized ~~~~svelte
Date du rendez-vous
~~~~ For the rendered reference, visit [/docs/components/date-picker](/docs/components/date-picker). --- Source: http://sveltekit-prerender/docs/components/date-range-picker.md # Date Range Picker Segmented start/end date fields and a range calendar popup. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils, date-picker, range-calendar - Shared utilities: utils.cn, hugeicons-icon ## Install ~~~~sh pnpm dlx @mielui/svelte add date-range-picker ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | dir | Direction \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | align | "center" \| "start" \| "end" \| undefined | 'start' | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | onInteractOutside | InteractOutsideEventHandler \| undefined | — | No | No | | interactOutsideBehavior | InteractOutsideBehaviorType \| undefined | — | No | No | | onFocusOutside | ((event: FocusEvent) => void) \| undefined | — | No | No | | preventScroll | boolean \| undefined | — | No | No | | onEscapeKeydown | ((e: KeyboardEvent) => void) \| undefined | — | No | No | | escapeKeydownBehavior | EscapeBehaviorType \| undefined | — | No | No | | side | "left" \| "right" \| "top" \| "bottom" \| undefined | — | No | No | | sideOffset | number \| undefined | 6 | No | No | | alignOffset | number \| undefined | — | No | No | | arrowPadding | number \| undefined | — | No | No | | avoidCollisions | boolean \| undefined | — | No | No | | collisionBoundary | Arrayable \| undefined | — | No | No | | collisionPadding | number \| Partial> \| undefined | 8 | No | No | | sticky | "partial" \| "always" \| undefined | — | No | No | | hideWhenDetached | boolean \| undefined | — | No | No | | updatePositionStrategy | "always" \| "optimized" \| undefined | — | No | No | | strategy | "absolute" \| "fixed" \| undefined | — | No | No | | customAnchor | string \| HTMLElement \| Measurable \| null \| undefined | — | No | No | | preventOverflowTextSelection | boolean \| undefined | — | No | No | | onOpenAutoFocus | EventCallback \| undefined | — | No | No | | onCloseAutoFocus | EventCallback \| undefined | — | No | No | | trapFocus | boolean \| undefined | — | No | No | | surface | "solid" \| "glass" \| undefined | — | No | No | | portal | boolean \| undefined | true | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Segment | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | part | "month" \| "year" \| "day" \| "hour" \| "minute" \| "second" \| "dayPeriod" \| "timeZoneName" \| "literal" | — | Yes | No | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Cell | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | date | CalendarDate \| CalendarDateTime \| ZonedDateTime | — | Yes | No | | month | CalendarDate \| CalendarDateTime \| ZonedDateTime | — | Yes | No | | child | Snippet<[CalendarCellSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarCellSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Day | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[CalendarDaySnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarDaySnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Grid | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridBody | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridHead | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### GridRow | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### HeadCell | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Header | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Heading | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[CalendarHeadingSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarHeadingSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Month | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | month | { value: DateValue; weeks: DateValue[][]; dates: DateValue[]; } | — | Yes | No | | weekdays | string[] | — | Yes | No | | locale | string \| undefined | 'en-US' | No | No | | showHeading | boolean \| undefined | false | No | No | | day | Snippet<[date: DateValue]> \| undefined | — | No | No | ### MonthSelect | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | monthFormat | "numeric" \| "long" \| "short" \| "narrow" \| "2-digit" \| ((month: number) => string) \| undefined | — | No | No | | months | number[] \| undefined | — | No | No | | child | Snippet<[CalendarMonthSelectSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarMonthSelectSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### NextButton | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### PrevButton | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### YearSelect | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | yearFormat | "numeric" \| "2-digit" \| ((year: number) => string) \| undefined | — | No | No | | years | number[] \| undefined | — | No | No | | child | Snippet<[CalendarYearSelectSnippetProps & { props: Record; }]> \| undefined | — | No | No | | children | Snippet<[CalendarYearSelectSnippetProps]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | placeholder | DateValue \| undefined | — | No | Yes | | style | string \| StyleProperties \| null \| undefined | — | No | No | | disabled | boolean \| undefined | false | No | No | | value | DateRange \| undefined | — | No | Yes | | readonly | boolean \| undefined | false | No | No | | required | boolean \| undefined | false | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | onValueChange | OnChangeFn \| undefined | — | No | No | | onPlaceholderChange | OnChangeFn \| undefined | — | No | No | | preventDeselect | boolean \| undefined | — | No | No | | minValue | DateValue \| undefined | — | No | No | | maxValue | DateValue \| undefined | — | No | No | | pagedNavigation | boolean \| undefined | — | No | No | | weekStartsOn | WeekStartsOn \| undefined | — | No | No | | weekdayFormat | "long" \| "short" \| "narrow" \| undefined | 'short' | No | No | | isDateDisabled | DateMatcher \| undefined | — | No | No | | isDateUnavailable | DateMatcher \| undefined | — | No | No | | fixedWeeks | boolean \| undefined | true | No | No | | numberOfMonths | number \| undefined | — | No | No | | calendarLabel | string \| undefined | — | No | No | | locale | string \| undefined | 'en-US' | No | No | | disableDaysOutsideMonth | boolean \| undefined | — | No | No | | maxDays | number \| undefined | — | No | No | | monthFormat | "numeric" \| "long" \| "short" \| "narrow" \| "2-digit" \| ((month: number) => string) \| undefined | — | No | No | | yearFormat | "numeric" \| "2-digit" \| ((year: number) => string) \| undefined | — | No | No | | open | boolean \| undefined | false | No | Yes | | onOpenChange | OnChangeFn \| undefined | — | No | No | | onOpenChangeComplete | OnChangeFn \| undefined | — | No | No | | validate | DateRangeValidator \| undefined | — | No | No | | onInvalid | DateOnInvalid \| undefined | — | No | No | | readonlySegments | ("month" \| "year" \| "day" \| "hour" \| "minute" \| "second" \| "dayPeriod")[] \| undefined | — | No | No | | hourCycle | 12 \| 24 \| undefined | — | No | No | | granularity | Granularity \| undefined | — | No | No | | hideTimeZone | boolean \| undefined | — | No | No | | errorMessageId | string \| undefined | — | No | No | | closeOnRangeSelect | boolean \| undefined | — | No | No | | onStartValueChange | OnChangeFn \| undefined | — | No | No | | onEndValueChange | OnChangeFn \| undefined | — | No | No | | minDays | number \| undefined | — | No | No | | excludeDisabled | boolean \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Calendar | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[CalendarRootSnippetProps]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Input | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[DateRangeFieldInputSnippetProps]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | type | "start" \| "end" | — | Yes | No | | name | string \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | form | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Label | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | child | Snippet<[{ props: Record; }]> \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | id | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | ref | HTMLElement \| null \| undefined | null | No | Yes | | openOnHover | boolean \| undefined | — | No | No | | openDelay | number \| undefined | — | No | No | | closeDelay | number \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { DateRangePicker as DatePickerPrimitive } from 'bits-ui'; export type DateRangePickerProps = Omit; export { default as Content } from '../date-picker/date-picker-content.svelte'; export { default as Segment } from '../date-picker/date-picker-segment.svelte'; export { Cell, Day, Grid, GridBody, GridHead, GridRow, HeadCell, Header, Heading, Month, MonthSelect, NextButton, PrevButton, YearSelect } from '../range-calendar'; export { default as Root } from './date-range-picker.svelte'; export { default as Calendar } from './date-range-picker-calendar.svelte'; export { default as Input } from './date-range-picker-input.svelte'; export { default as Label } from './date-range-picker-label.svelte'; export { default as Trigger } from './date-range-picker-trigger.svelte'; ~~~~ ## Examples ### Disabled ~~~~svelte
Dates are locked
~~~~ ### Form ~~~~svelte
{ event.preventDefault(); submitted = Array.from(new FormData(event.currentTarget).entries()).map(([name, entry]) => `${name}=${entry}`).join(', '); readonly = true; }} onreset={() => { submitted = ''; readonly = false; }} >
Travel dates

Choose both dates between September and December 2026. Saving makes the field read-only.

{submitted || 'No date submitted.'}

~~~~ ### Hero ~~~~svelte
Travel dates

Choose a start and end date, or edit each field.

~~~~ ### Two Months ~~~~svelte
Booking dates
~~~~ For the rendered reference, visit [/docs/components/date-range-picker](/docs/components/date-range-picker). --- Source: http://sveltekit-prerender/docs/components/dialog.md # Dialog Centered dialog overlay with portal, inert background, focus trap, click-outside, nested stacking, and Svelte transitions. Composes _internal/overlay for shared mechanics. - Package: `@mielui/svelte` - Component version: `1.3.1` - Depends on Mielui components: _internal/utils, button, _internal/overlay, typography - Shared utilities: components/_internal/inset-layout, components/_internal/surface, hugeicons-icon, utils.cn, utils.createContext, transition ## Install ~~~~sh pnpm dlx @mielui/svelte add dialog ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Body | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Close | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Confirm | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | surface | "solid" \| "glass" \| undefined | — | No | No | | allowClickOutside | boolean \| undefined | true | No | No | | allowEscape | boolean \| undefined | true | No | No | | role | "alertdialog" \| "dialog" \| undefined | 'dialog' | No | No | | contentClass | string \| undefined | '' | No | No | | overlayClass | string \| undefined | '' | No | No | | surfaceClass | string \| undefined | '' | No | No | | panelIdPrefix | string \| undefined | 'dialog' | No | No | | showClose | boolean \| undefined | true | No | No | | size | DialogSize \| undefined | — | No | No | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Footer | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Header | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | open | boolean \| undefined | false | No | Yes | | onOpenChange | ((open: boolean) => void) \| undefined | — | No | No | | error | boolean \| undefined | false | No | No | | orientation | DialogOrientation \| undefined | 'horizontal' | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Title | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { Snippet } from 'svelte'; import type { ButtonProps } from '../button'; import Root from './dialog.svelte'; import Body from './dialog-body.svelte'; import Close from './dialog-close.svelte'; import Confirm from './dialog-confirm.svelte'; import Content from './dialog-content.svelte'; import Description from './dialog-description.svelte'; import Footer from './dialog-footer.svelte'; import Header from './dialog-header.svelte'; import Title from './dialog-title.svelte'; import Trigger from './dialog-trigger.svelte'; export type DialogState = { open: boolean; error: boolean; orientation: DialogOrientation; }; export type DialogOrientation = 'horizontal' | 'vertical'; export type DialogSize = 'sm' | 'md' | 'lg' | 'xl'; export type DialogTriggerProps = ButtonProps; export type DialogTitleProps = DefaultProps; export type DialogHeaderProps = DefaultProps; export type DialogFooterProps = DefaultProps; export type DialogBodyProps = DefaultProps; export type DialogConfirmProps = ButtonProps; export type DialogCloseProps = ButtonProps; export type DialogDescriptionProps = DefaultProps; export type DialogContentProps = { surface?: 'solid' | 'glass'; allowClickOutside?: boolean; allowEscape?: boolean; role?: 'dialog' | 'alertdialog'; contentClass?: string; overlayClass?: string; surfaceClass?: string; panelIdPrefix?: string; showClose?: boolean; /** Width preset. Vertical layouts remain compact; horizontal layouts are one step wider. */ size?: DialogSize; } & DefaultProps & Partial>; export type DialogProps = { open?: boolean; onOpenChange?: (open: boolean) => void; /** Sets supported browser chrome to red while the dialog is open. */ error?: boolean; /** Controls the default width and action layout. Defaults to `horizontal`. */ orientation?: DialogOrientation; children?: Snippet; }; export { Body, Close, Confirm, Content, Description, Footer, Header, Root, Title, Trigger }; ~~~~ ## Examples ### Basic ~~~~svelte Open dialog Dialog title Describe what happens here. Cancel Confirm ~~~~ ### Glass ~~~~svelte
Add Domain
Add a domain
Add a domain to this local preview. No DNS settings are changed.
Cancel Add
{#if addedDomain}

{`${addedDomain} added to the preview.`}

{/if}
~~~~ ### Hero ~~~~svelte
Add Domain
Add a domain
Add a domain to this local preview. No DNS settings are changed.
Cancel Add
{#if addedDomain}

{`${addedDomain} added to the preview.`}

{/if}
~~~~ ### Nested ~~~~svelte Edit project Edit project Change the name, or transfer this project to someone else. Transfer ownership Transfer ownership The new owner gets full control. You will remain a member. Cancel Transfer Cancel Save ~~~~ ### Size Compact ~~~~svelte Open compact dialog Quick action Keep short confirmations focused with the compact size. Cancel Continue ~~~~ ### Size Large ~~~~svelte Open large dialog Review your workspace Use a larger surface when the dialog needs room for supporting details or multiple controls.

Invite teammates, configure permissions, and review workspace settings in one place.

Cancel Save changes
~~~~ ### Size Wide ~~~~svelte Open wide dialog Import project data Wide modals work well for previews, tables, and other content that benefits from horizontal space.

Repositories

Choose which repositories to import.

Environment

Set the target deployment environment.

Cancel Import
~~~~ ### With Select ~~~~svelte Invite member Invite member Choose a role for the new member.
Role {selected?.label ?? 'Select role'} {#each roles as option (option.value)} {option.label} {/each}
Cancel Invite
~~~~ For the rendered reference, visit [/docs/components/dialog](/docs/components/dialog). --- Source: http://sveltekit-prerender/docs/components/drawer.md # Drawer Swipeable edge panel with accessible focus management and direct manipulation. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils, button - Shared utilities: utils.cn, utils.pressable ## Install ~~~~sh pnpm dlx @mielui/svelte add drawer ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Body | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLDivElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Close | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | element | HTMLButtonElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | onInteractOutside | InteractOutsideEventHandler \| undefined | — | No | No | | interactOutsideBehavior | InteractOutsideBehaviorType \| undefined | — | No | No | | restoreScrollDelay | number \| null \| undefined | — | No | No | | onEscapeKeydown | ((e: KeyboardEvent) => void) \| undefined | — | No | No | | escapeKeydownBehavior | EscapeBehaviorType \| undefined | — | No | No | | forceMount | boolean \| undefined | — | No | No | | preventOverflowTextSelection | boolean \| undefined | — | No | No | | onOpenAutoFocus | EventCallback \| undefined | — | No | No | | onCloseAutoFocus | EventCallback \| undefined | — | No | No | | trapFocus | boolean \| undefined | — | No | No | | element | HTMLDivElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | element | HTMLParagraphElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Footer | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLDivElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Handle | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | element | HTMLDivElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Header | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLDivElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Overlay | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | forceMount | boolean \| undefined | — | No | No | | element | HTMLDivElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Portal | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | to | PortalTarget \| undefined | — | No | No | | disabled | boolean \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | direction | "left" \| "right" \| "top" \| "bottom" \| undefined | — | No | No | | open | boolean \| undefined | false | No | Yes | | onOpenChange | ((open: boolean) => void) \| undefined | — | No | No | | closeThreshold | number \| undefined | — | No | No | | handleOnly | boolean \| undefined | — | No | No | | dismissible | boolean \| undefined | true | No | No | | repositionInputs | boolean \| undefined | — | No | No | | nested | boolean \| undefined | false | No | No | ### Title | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | level | 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| undefined | — | No | No | | element | HTMLHeadingElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | id | string \| undefined | — | No | No | | style | string \| StyleProperties \| null \| undefined | — | No | No | | element | HTMLButtonElement \| null \| undefined | null | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; import type { Drawer as Primitive } from 'vaul-svelte'; export { default as Body } from './drawer-body.svelte'; export { default as Close } from './drawer-close.svelte'; export { default as Content } from './drawer-content.svelte'; export { default as Description } from './drawer-description.svelte'; export { default as Footer } from './drawer-footer.svelte'; export { default as Handle } from './drawer-handle.svelte'; export { default as Header } from './drawer-header.svelte'; export { default as Overlay } from './drawer-overlay.svelte'; export { default as Portal } from './drawer-portal.svelte'; export { default as Root } from './drawer-root.svelte'; export { default as Title } from './drawer-title.svelte'; export { default as Trigger } from './drawer-trigger.svelte'; export type DrawerRootProps = Pick< Primitive.RootProps, | 'children' | 'open' | 'onOpenChange' | 'direction' | 'dismissible' | 'handleOnly' | 'closeThreshold' | 'repositionInputs' > & { nested?: boolean }; export type DrawerTriggerProps = Omit & { element?: HTMLButtonElement | null; }; export type DrawerCloseProps = Omit & { element?: HTMLButtonElement | null; }; export type DrawerTitleProps = Omit & { element?: HTMLHeadingElement | null; }; export type DrawerDescriptionProps = Omit & { element?: HTMLParagraphElement | null; }; export type DrawerContentProps = Omit< Primitive.ContentProps, 'child' | 'ref' | 'onFocusOutside' > & { element?: HTMLDivElement | null; }; export type DrawerOverlayProps = Omit & { element?: HTMLDivElement | null; }; export type DrawerHandleProps = Omit & { element?: HTMLDivElement | null; }; export type DrawerPortalProps = Primitive.PortalProps; export type DrawerRegionProps = Omit, 'children'> & { children?: Snippet; element?: HTMLDivElement | null; }; ~~~~ ## Examples ### Hero ~~~~svelte Reading preferences Make yourself comfortable Adjust the text to suit the way you read.
Text size {textSize} px

A quiet place to pause, find a new idea, and enjoy the next page.

Done
~~~~ ### Nested ~~~~svelte Review changes Review changes Three updates are ready to apply to your reading list.
Collection
Weekend reading
Articles added
2
Articles archived
1
Review details Change details Review the articles included in this update.
  • The art of paying attention Added
  • A slower kind of weekend Added
  • Notes from the city Archived
Back to review
Finish review
~~~~ For the rendered reference, visit [/docs/components/drawer](/docs/components/drawer). --- Source: http://sveltekit-prerender/docs/components/dropdown-menu.md # Dropdown Menu Click-triggered menu popover with items, labels, separators, and nested submenus. - Package: `@mielui/svelte` - Component version: `2.2.0` - Depends on Mielui components: _internal/utils, popover, button, scroll-area - Shared utilities: components/_internal/button-attributes, transition, components/_internal/surface, hugeicons-icon, utils.closeMenuLayers, utils.cn, utils.createContext, utils.dynamicWidth, utils.travelingHighlight ## Install ~~~~sh pnpm dlx @mielui/svelte add dropdown-menu ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### CheckboxItem | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | checked | boolean \| undefined | false | No | Yes | | onCheckedChange | ((checked: boolean) => void) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> | — | Yes | No | | class | string \| undefined | — | No | No | | dynamic | boolean \| undefined | false | No | No | | tabindex | number \| undefined | -1 | No | No | | role | "none" \| "alertdialog" \| "dialog" \| "listbox" \| "menu" \| undefined | 'menu' | No | No | | surface | "solid" \| "glass" \| undefined | — | No | No | | allowClickOutside | boolean \| undefined | true | No | No | | dismissLayer | boolean \| undefined | true | No | No | | portal | boolean \| undefined | true | No | No | | refElement | VirtualElement \| undefined | — | No | No | | focusTrap | boolean \| undefined | false | No | No | | lockScroll | boolean \| undefined | false | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Item | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | callback | (() => void) \| undefined | — | No | No | | disabled | boolean \| undefined | false | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | href | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Label | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> | — | Yes | No | | class | string \| undefined | — | No | No | ### RadioGroup | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | value | string \| undefined | '' | No | Yes | | onValueChange | ((value: string) => void) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### RadioItem | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | value | string \| (string & string[]) | — | Yes | No | | children | Snippet<[]> \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | open | boolean \| undefined | false | No | Yes | | onOpenChange | ((open: boolean) => void) \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Separator | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | class | string \| undefined | — | No | No | ### Sub | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | ### SubContent | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | surface | "solid" \| "glass" \| undefined | — | No | No | | children | Snippet<[]> | — | Yes | No | | class | string \| undefined | — | No | No | | dynamic | boolean \| undefined | false | No | No | ### SubTrigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | class | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | style | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | No | | unstyled | boolean \| undefined | — | No | No | | icon | boolean \| undefined | — | No | No | | onopen | (() => void) \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> | — | Yes | No | | class | string \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | style | string \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | No | | unstyled | boolean \| undefined | — | No | No | | icon | boolean \| undefined | — | No | No | | onopen | (() => void) \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { ButtonProps } from '@mielui/svelte/components/button'; import type { DefaultProps } from '@mielui/svelte/utils'; import type { Snippet } from 'svelte'; import type { HTMLButtonAttributes } from 'svelte/elements'; import Root from './dropdown-menu.svelte'; import CheckboxItem from './dropdown-menu-checkbox-item.svelte'; import Content from './dropdown-menu-content.svelte'; import Item from './dropdown-menu-item.svelte'; import Label from './dropdown-menu-label.svelte'; import RadioGroup from './dropdown-menu-radio-group.svelte'; import RadioItem from './dropdown-menu-radio-item.svelte'; import Separator from './dropdown-menu-separator.svelte'; import Sub from './dropdown-menu-sub.svelte'; import SubContent from './dropdown-menu-sub-content.svelte'; import SubTrigger from './dropdown-menu-sub-trigger.svelte'; import Trigger from './dropdown-menu-trigger.svelte'; export type DropdownMenuProps = { open?: boolean; onOpenChange?: (open: boolean) => void; children?: Snippet; }; export type DropdownMenuItemProps = { callback?: () => void; } & ButtonProps; export type DropdownMenuRadioGroupProps = { value?: string; onValueChange?: (value: string) => void; children?: Snippet; }; export type DropdownMenuRadioItemProps = { value: string; children?: Snippet; element?: HTMLButtonElement | HTMLAnchorElement; } & DefaultProps & Omit; export type DropdownMenuCheckboxItemProps = { checked?: boolean; onCheckedChange?: (checked: boolean) => void; children?: Snippet; element?: HTMLButtonElement | HTMLAnchorElement; } & DefaultProps & Omit; export { CheckboxItem, Content, Item, Label, RadioGroup, RadioItem, Root, Separator, Sub, SubContent, SubTrigger, Trigger }; ~~~~ ## Examples ### Basic Menu ~~~~svelte
Sort files sort('Newest first')}> Newest first sort('Name A to Z')}>Name A to Z

{order}

~~~~ ### Configuration ~~~~svelte Configuration Configuration Model (model = 'GPT-5.6 Sol')}> GPT-5.6 Sol {#if model === 'GPT-5.6 Sol'} {/if} (model = 'Opus 4.6')}> Opus 4.6 {#if model === 'Opus 4.6'} {/if} Effort {#each ['Low', 'Medium', 'High'] as option (option)} (effort = option)}> {option} {#if effort === option} {/if} {/each} Speed {#each ['Fast', 'Standard', 'Deliberate'] as option (option)} (speed = option)}> {option} {#if speed === option} {/if} {/each} ~~~~ ### Dynamic Width ~~~~svelte Open menu Appearance Edit dashboard settings Density {#each densities as option (option)} (density = option)}> {option} {#if density === option} {/each} Reset everything to defaults ~~~~ ### Glass ~~~~svelte
My account alex@example.com selectSection('Profile')}> Profile selectSection('Billing')}> Billing selectSection('Settings')}> Settings selectSection('Help & feedback')}> Help & feedback selectSection('Sign out')}> Sign out

{descriptions[section]}

~~~~ ### Hero ~~~~svelte
My account alex@example.com selectSection('Profile')}> Profile selectSection('Billing')}> Billing selectSection('Settings')}> Settings selectSection('Help & feedback')}> Help & feedback selectSection('Sign out')}> Sign out

{descriptions[section]}

~~~~ ### Overlay Borders ~~~~svelte
border, (value) => { if (value) { border = value; } } } > {#each ['single', 'double'] as value (value)} { if (border === value) { event.preventDefault(); } }} class="min-w-20 border border-border bg-background shadow-[var(--elevation-control-edge)] data-[state=on]:border-border-strong data-[state=on]:bg-secondary" > {value === 'single' ? 'Single' : 'Double'} {/each}
Preview menu My account { selection = 'Profile selected'; }}> Profile { selection = 'Settings selected'; }}> Settings { selection = 'Help selected'; }}> Help and feedback

{selection}

~~~~ ### Row Actions ~~~~svelte

{fileName}

Rename Duplicate Archive Delete

{message}

~~~~ ### Share Menu ~~~~svelte
Share Workspace Invite collaborator Copy link Public {privateProject ? 'Make public' : 'Make private'}

{message}

~~~~ ### Sort Menu ~~~~svelte {selected} {#each options as option (option)} (selected = option)}> {option} {#if selected === option} {/if} {/each} ~~~~ ### User Menu ~~~~svelte mielsense Account Profile Your projects Billing Settings Preferences Help & support Log out ~~~~ For the rendered reference, visit [/docs/components/dropdown-menu](/docs/components/dropdown-menu). --- Source: http://sveltekit-prerender/docs/components/empty-state.md # Empty State Explain missing content and offer a next step with optional media, details, and actions. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils, typography - Shared utilities: utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add empty-state ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Actions | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Header | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Media | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Title | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | level | HeadingLevel \| undefined | 2 | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; import type { HeadingLevel } from '../typography'; import Root from './empty-state.svelte'; import Actions from './empty-state-actions.svelte'; import Content from './empty-state-content.svelte'; import Description from './empty-state-description.svelte'; import Header from './empty-state-header.svelte'; import Media from './empty-state-media.svelte'; import Title from './empty-state-title.svelte'; export type EmptyStateProps = HTMLAttributes & { children?: Snippet; }; export type EmptyStateHeaderProps = HTMLAttributes & { children?: Snippet; }; export type EmptyStateMediaProps = HTMLAttributes & { children?: Snippet; }; export type EmptyStateTitleProps = HTMLAttributes & { level?: HeadingLevel; children?: Snippet; }; export type EmptyStateDescriptionProps = HTMLAttributes & { children?: Snippet; }; export type EmptyStateContentProps = HTMLAttributes & { children?: Snippet; }; export type EmptyStateActionsProps = HTMLAttributes & { children?: Snippet; }; export { Actions, Content, Description, Header, Media, Root, Title }; ~~~~ ## Examples ### Hero ~~~~svelte No components yet Add your first component to start building your interface. ~~~~ ### Inbox ~~~~svelte You're all caught up No new messages. We'll let you know when someone replies. ~~~~ ### Search ~~~~svelte {query ? 'No matching files' : 'Search cleared'} {query ? `Nothing matches "${query}". Try another file name or clear your search.` : 'No search filter is active. Your files will appear here when available.'} {#if query} {/if} ~~~~ For the rendered reference, visit [/docs/components/empty-state](/docs/components/empty-state). --- Source: http://sveltekit-prerender/docs/components/field.md # Field Composable labels, control metadata, descriptions, and validation issues. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: utils.cn, utils.createContext, transition ## Install ~~~~sh pnpm dlx @mielui/svelte add field ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Control | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | describedBy | string \| undefined | — | No | No | | errorId | string \| undefined | — | No | No | | children | Snippet<[FieldControlAttributes]> | — | Yes | No | ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Error | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | issues | readonly Readonly<{ message: string; }>[] \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Group | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Label | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | controlId | string \| undefined | — | No | No | | disabled | boolean \| undefined | false | No | No | | required | boolean \| undefined | false | No | No | | invalid | boolean \| undefined | — | No | No | | issues | readonly Readonly<{ message: string; }>[] \| undefined | [] | No | No | | orientation | "horizontal" \| "vertical" \| undefined | 'vertical' | No | No | | element | HTMLDivElement \| undefined | — | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { Snippet } from 'svelte'; import type { Attachment } from 'svelte/attachments'; import type { HTMLAttributes, HTMLLabelAttributes } from 'svelte/elements'; import Root from './field.svelte'; import Content from './field-content.svelte'; import Control from './field-control.svelte'; import Description from './field-description.svelte'; import FieldError from './field-error.svelte'; import Group from './field-group.svelte'; import Label from './field-label.svelte'; export type FieldIssue = Readonly<{ message: string }>; export type FieldControlAttributes = { id: string; disabled: boolean | undefined; required: boolean | undefined; 'aria-invalid': 'true' | undefined; 'aria-describedby'?: string; [attachment: symbol]: Attachment; }; export type FieldProps = { controlId?: string; disabled?: boolean; required?: boolean; invalid?: boolean; issues?: readonly FieldIssue[]; orientation?: 'vertical' | 'horizontal'; element?: HTMLDivElement; } & HTMLAttributes; export type FieldControlProps = { describedBy?: string; errorId?: string; children: Snippet<[FieldControlAttributes]>; }; export type FieldLabelProps = HTMLLabelAttributes; export type FieldDescriptionProps = HTMLAttributes; export type FieldErrorProps = { issues?: readonly FieldIssue[]; } & HTMLAttributes; export type FieldContentProps = HTMLAttributes; export type FieldGroupProps = HTMLAttributes; export { Content, Control, Description, FieldError as Error, Group, Label, Root }; ~~~~ ## Examples ### Composite ~~~~svelte Seats (required) {#snippet children(control)} {/snippet} Choose between 1 and 12 seats. Verification code (required) {#snippet children(control)} {/snippet} Enter the six digits sent to your email. ~~~~ ### Hero ~~~~svelte Work email(required) {#snippet children(control)} {/snippet} We’ll only use this address for account updates. ~~~~ ### Horizontal ~~~~svelte {#snippet children(control)} {/snippet} Product updates A short email when there’s something useful to share. ~~~~ ### Validation ~~~~svelte
Username Letters, numbers, and hyphens. You can change this later. {#snippet children(control)} {/snippet}
~~~~ For the rendered reference, visit [/docs/components/field](/docs/components/field). --- Source: http://sveltekit-prerender/docs/components/fieldset.md # Fieldset Native form grouping with legends, descriptions, and disabled semantics. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add fieldset ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Legend | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | element | HTMLFieldSetElement \| undefined | — | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { HTMLAttributes, HTMLFieldsetAttributes } from 'svelte/elements'; import Root from './fieldset.svelte'; import Description from './fieldset-description.svelte'; import Legend from './fieldset-legend.svelte'; export type FieldsetProps = HTMLFieldsetAttributes & { element?: HTMLFieldSetElement }; export type FieldsetLegendProps = HTMLAttributes; export type FieldsetDescriptionProps = HTMLAttributes; export { Description, Legend, Root }; ~~~~ ## Examples ### Disabled ~~~~svelte
Billing contact Invoice email {#snippet children(control)} {/snippet}
~~~~ ### Hero ~~~~svelte Contact details How we can reach you about your workspace. Full name {#snippet children(control)} {/snippet} Email address {#snippet children(control)} {/snippet} ~~~~ For the rendered reference, visit [/docs/components/fieldset](/docs/components/fieldset). --- Source: http://sveltekit-prerender/docs/components/file-upload.md # File Upload Upload cards with validation, progress, cancellation, retry, and animated completion. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: button, tooltip, spinner - Shared utilities: hugeicons-icon, utils.cn, transition ## Install ~~~~sh pnpm dlx @mielui/svelte add file-upload ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Details | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Dropzone | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Item | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | item | { readonly id: string; readonly file: File; readonly status: "uploading" \| "complete" \| "error"; readonly progress?: number \| undefined; readonly error?: string \| undefined; readonly retryable: boolean; } | — | Yes | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### List | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[FileUploadEntry]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Preview | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Progress | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Remove | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | No | | unstyled | boolean \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Retry | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | No | | unstyled | boolean \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | accept | string \| undefined | — | No | No | | maxSize | number \| undefined | — | No | No | | maxFiles | number \| undefined | — | No | No | | disabled | boolean \| undefined | false | No | No | | onUpload | (file: File, options: { signal: AbortSignal; onProgress: (percent: number) => void; }) => Promise | — | Yes | No | | children | Snippet<[FileUploadSummary]> \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Status | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | No | | unstyled | boolean \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { ButtonProps } from '@mielui/svelte/components/button'; import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; import Root from './file-upload.svelte'; import Details from './file-upload-details.svelte'; import Dropzone from './file-upload-dropzone.svelte'; import Item from './file-upload-item.svelte'; import List from './file-upload-list.svelte'; import Preview from './file-upload-preview.svelte'; import Progress from './file-upload-progress.svelte'; import Remove from './file-upload-remove.svelte'; import Retry from './file-upload-retry.svelte'; import Status from './file-upload-status.svelte'; import Trigger from './file-upload-trigger.svelte'; export type FileUploadEntry = { readonly id: string; readonly file: File; readonly status: 'uploading' | 'complete' | 'error'; readonly progress?: number; readonly error?: string; readonly retryable: boolean; }; export type FileUploadSummary = { items: readonly FileUploadEntry[]; total: number; uploading: number; complete: number; }; export type FileUploadProps = Omit, 'children'> & { accept?: string; maxSize?: number; maxFiles?: number; disabled?: boolean; onUpload: ( file: File, options: { signal: AbortSignal; onProgress: (percent: number) => void; } ) => Promise; children?: Snippet<[FileUploadSummary]>; }; export type FileUploadPartProps = HTMLAttributes; export type FileUploadItemProps = FileUploadPartProps & { item: FileUploadEntry }; export type FileUploadListProps = Omit, 'children'> & { children?: Snippet<[FileUploadEntry]>; }; export type FileUploadButtonProps = Omit< Extract, 'href' | 'type' >; export { Details, Dropzone, Item, List, Preview, Progress, Remove, Retry, Root, Status, Trigger }; ~~~~ ## Examples ### Hero ~~~~svelte

Project files

Images and PDFs. Up to 3 files, 10 MB each.

Demo only. Files stay on your device.

~~~~ ### Single ~~~~svelte {#snippet children({ items })} {#if items.length === 0}

Profile photo

One PNG, JPEG, or WebP, up to 5 MB.

Choose photo
{:else} {#snippet children(item)}
{item.status === 'error' ? item.error : item.status === 'complete' ? 'Ready on this device' : 'Preparing photo…'}
Remove
{/snippet}

Remove the photo to choose a replacement.

{/if}

Local preview only. This example does not upload your file.

{/snippet}
~~~~ For the rendered reference, visit [/docs/components/file-upload](/docs/components/file-upload). --- Source: http://sveltekit-prerender/docs/components/form.md # Form Native forms with transparent attachment forwarding and composable pending feedback. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils, button - Shared utilities: utils.cn, utils.createContext, transition ## Install ~~~~sh pnpm dlx @mielui/svelte add form ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Actions | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | Also accepts the native HTML attributes and events listed in the rendered API reference. ### ErrorSummary | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | issues | readonly Readonly<{ message: string; controlId?: string \| undefined; path?: readonly (string \| number)[] \| undefined; }>[] \| undefined | [] | No | No | | focusOnError | boolean \| undefined | true | No | No | | heading | Snippet<[]> \| undefined | — | No | No | | children | Snippet<[readonly Readonly<{ message: string; controlId?: string \| undefined; path?: readonly (string \| number)[] \| undefined; }>[]]> \| undefined | — | No | No | | element | HTMLDivElement \| undefined | — | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | element | HTMLFormElement \| null \| undefined | — | No | Yes | | pending | number \| boolean \| undefined | false | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Status | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | tone | "error" \| "success" \| "neutral" \| undefined | 'neutral' | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Submit | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No | | onclick | ((event: MouseEvent) => void) \| undefined | — | No | No | | status | ButtonStatus \| undefined | — | No | No | | disabled | boolean \| undefined | — | No | No | | variant | ButtonVariant \| undefined | — | No | No | | size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No | | element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes | | unstyled | boolean \| undefined | — | No | No | | loading | boolean \| undefined | — | No | No | | loadingLabel | string \| undefined | — | No | No | | successLabel | string \| undefined | — | No | No | | errorLabel | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { Snippet } from 'svelte'; import type { HTMLAttributes, HTMLFormAttributes } from 'svelte/elements'; import type { ButtonProps } from '../button'; import Root from './form.svelte'; import Actions from './form-actions.svelte'; import ErrorSummary from './form-error-summary.svelte'; import Status from './form-status.svelte'; import Submit from './form-submit.svelte'; export type FormProps = HTMLFormAttributes & { element?: HTMLFormElement | null; pending?: boolean | number; }; export type FormActionsProps = HTMLAttributes; export type FormStatusProps = HTMLAttributes & { tone?: 'neutral' | 'success' | 'error'; }; export type FormSubmitProps = Omit, 'type' | 'href'>; export type FormIssue = Readonly<{ message: string; controlId?: string; path?: readonly (string | number)[]; }>; export type FormErrorSummaryProps = Omit, 'children'> & { issues?: readonly FormIssue[]; focusOnError?: boolean; heading?: Snippet; children?: Snippet<[readonly FormIssue[]]>; element?: HTMLDivElement; }; export { Actions, ErrorSummary, Root, Status, Submit }; ~~~~ ## Examples ### Hero ~~~~svelte Profile details Display name {#snippet children(control)} {/snippet} The name shown to your teammates. Work email {#snippet children(control)} {/snippet} Save profile

{message}

~~~~ ### Remote Basic ~~~~svelte { const request = instance.submit().then((valid) => { if (!valid) { throw new Error('Review the highlighted fields.'); } const result = instance.result; return result; }); toast.promise(request, { loading: 'Checking your draft…', success: (result) => `${result?.username ?? 'Your username'} is available.`, error: 'Could not validate your draft', errorDescription: () => draft.fields.allIssues()?.length ? 'Review the highlighted fields.' : 'Your draft is still here. Try again.' }); await request.catch(() => undefined); })} > Profile draft This demo validates on the server. Nothing is stored. Try “admin” to see a server-side issue, or “system” for a form-level issue. Username {#snippet children(control)} {/snippet} Between 3 and 40 characters. Email {#snippet children(control)} {/snippet} Validate draft ~~~~ ### Remote ~~~~svelte { const request = instance.submit().then((valid) => { if (!valid) { throw new Error('Review the highlighted fields.'); } const result = instance.result; if (result?.intent === 'validate-reset') { instance.element.reset(); } return result; }); toast.promise(request, { loading: 'Checking your draft…', success: (result) => `${result?.username ?? 'Your username'} is available.`, error: 'Could not validate your draft', errorDescription: () => draft.fields.allIssues()?.length ? 'Review the highlighted fields.' : 'Your draft is still here. Try again.' }); await request.catch(() => undefined); })} > Profile draft This demo validates on the server. Nothing is stored. Try “admin” to see a server-side issue, or “system” for a form-level issue. Username {#snippet children(control)} {/snippet} Between 3 and 40 characters. Email {#snippet children(control)} {/snippet} Validate draft Validate and reset ~~~~ For the rendered reference, visit [/docs/components/form](/docs/components/form). --- Source: http://sveltekit-prerender/docs/components/group.md # Group Connected controls with separators, text, and horizontal or vertical layouts. - Package: `@mielui/svelte` - Component version: `1.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add group ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | orientation | "horizontal" \| "vertical" \| undefined | 'horizontal' | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Separator | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | orientation | "horizontal" \| "vertical" \| undefined | 'vertical' | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Text | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | as | keyof HTMLElementTagNameMap \| undefined | 'div' | No | No | | for | string \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts export { default as Root } from './group.svelte'; export { default as Separator } from './group-separator.svelte'; export { default as Text } from './group-text.svelte'; ~~~~ ## Examples ### Basic ~~~~svelte

{revisions[revision]}

~~~~ ### Input ~~~~svelte ~~~~ ### Menu ~~~~svelte
{ action = 'Save draft'; }}> Save draft { action = 'Publish'; }}>Publish

{message}

~~~~ ### Nested ~~~~svelte {#each [1, 2, 3, 4, 5] as number (number)} {#if number > 1} {/if} {/each} ~~~~ ### Popup ~~~~svelte

{message}

~~~~ ### Text ~~~~svelte https:// ~~~~ ### Vertical ~~~~svelte
{zoom} %
~~~~ For the rendered reference, visit [/docs/components/group](/docs/components/group). --- Source: http://sveltekit-prerender/docs/components/hover-card.md # Hover Card Hover-revealed rich content card with delay + close-delay. Thin popover wrapper with role="dialog" aria-modal="false". Composes popover; ships its own Content + Title + Description for rich-content layout. - Package: `@mielui/svelte` - Component version: `2.0.0` - Depends on Mielui components: _internal/utils, popover - Shared utilities: transition, components/_internal/surface, utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add hover-card ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Content | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | surface | "solid" \| "glass" \| undefined | — | No | No | | side | "left" \| "right" \| "top" \| "bottom" \| undefined | 'bottom' | No | No | | align | "center" \| "start" \| "end" \| undefined | 'center' | No | No | | children | Snippet<[]> \| undefined | — | No | No | | class | string \| undefined | — | No | No | ### Description | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> | — | Yes | No | | class | string \| undefined | — | No | No | ### Root | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | open | boolean \| undefined | false | No | Yes | | openDelay | number \| undefined | 200 | No | No | | closeDelay | number \| undefined | 150 | No | No | | children | Snippet<[]> \| undefined | — | No | No | ### Title | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> | — | Yes | No | | class | string \| undefined | — | No | No | ### Trigger | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | href | string \| undefined | — | No | No | | children | Snippet<[]> \| undefined | — | No | No | | class | string \| undefined | — | No | No | ### Public types ~~~~ts import type { DefaultProps } from '@mielui/svelte/utils'; import type { Snippet } from 'svelte'; import Root from './hover-card.svelte'; import Content from './hover-card-content.svelte'; import Description from './hover-card-description.svelte'; import Title from './hover-card-title.svelte'; import Trigger from './hover-card-trigger.svelte'; export type HoverCardProps = { open?: boolean; openDelay?: number; closeDelay?: number; children?: Snippet; }; export type HoverCardTriggerProps = { href?: string; children?: Snippet; } & DefaultProps; export type HoverCardContentProps = { surface?: 'solid' | 'glass'; side?: 'top' | 'bottom' | 'left' | 'right'; align?: 'start' | 'center' | 'end'; children?: Snippet; } & DefaultProps; export { Content, Description, Root, Title, Trigger }; ~~~~ ## Examples ### Definition ~~~~svelte polymorphic Able to render as different HTML elements while maintaining the same component API. ~~~~ ### Glass ~~~~svelte polymorphic Able to render as different HTML elements while maintaining the same component API. ~~~~ ### Link Preview ~~~~svelte mielui mielui An unstyled, accessible Svelte component library. ~~~~ ### User Preview ~~~~svelte
Reviewed by @mielsense
AN
mielsense

@mielsense

Maintains the shared components and reviews accessibility fixes.
Seattle, WA
Mielui Labs
1.2k followers · 89 following
3 days ago.
~~~~ For the rendered reference, visit [/docs/components/hover-card](/docs/components/hover-card). --- Source: http://sveltekit-prerender/docs/components/input.md # Input Text input wrapping a native . Supports labels, descriptions, adornments, 2 variants, and native input types. - Package: `@mielui/svelte` - Component version: `5.0.0` - Depends on Mielui components: _internal/utils - Shared utilities: components/_internal/field-metadata, utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add input ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Input | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | placeholder | string \| undefined | — | No | No | | label | string \| undefined | — | No | No | | description | string \| undefined | — | No | No | | variant | "secondary" \| "outline" \| undefined | 'outline' | No | No | | class | (string & (ClassValue \| null)) \| undefined | — | No | No | | leading | Snippet<[]> \| undefined | — | No | No | | trailing | Snippet<[]> \| undefined | — | No | No | | element | HTMLInputElement \| undefined | — | No | Yes | | type | "file" \| "checkbox" \| "radio" \| "number" \| "hidden" \| "color" \| "search" \| "button" \| "text" \| "tel" \| "url" \| "email" \| "date" \| "time" \| "submit" \| "reset" \| "image" \| "datetime-local" \| "month" \| "password" \| "range" \| "week" \| undefined | 'text' | No | No | | files | FileList \| undefined \| undefined | — | No | Yes | | value | undefined \| string \| number \| undefined | — | No | Yes | | checked | undefined \| boolean \| undefined | — | No | Yes | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { Snippet } from 'svelte'; import type { HTMLInputAttributes, HTMLInputTypeAttribute } from 'svelte/elements'; import Input from './input.svelte'; type KnownInputType = Type extends string ? (string extends Type ? never : Type) : never; export type InputProps = { placeholder?: string; label?: string; description?: string; variant?: 'outline' | 'secondary'; class?: string; leading?: Snippet; trailing?: Snippet; element?: HTMLInputElement | undefined; } & Omit & ( | { type: 'file'; files?: FileList; value?: never; checked?: never } | { type: 'checkbox' | 'radio'; value?: string | number; checked?: boolean; files?: never } | { type?: Exclude, 'file' | 'checkbox' | 'radio'>; value?: string | number; checked?: never; files?: never; } ); export { Input }; export default Input; ~~~~ ## Examples ### Adornments ~~~~svelte
{#snippet leading()} {/snippet} {#snippet trailing()} .git {/snippet}
~~~~ ### Hero ~~~~svelte

Project settings

{message}

~~~~ ### Validation ~~~~svelte
{ emailTouched = true; }} aria-invalid={emailError ? 'true' : undefined} aria-describedby={emailError ? 'email-error email-description' : 'email-description'} aria-errormessage={emailError ? 'email-error' : undefined} class={emailError ? errorInputClass : undefined} />

{emailError}

We'll use this to send workspace invites.

{ workspaceSlugTouched = true; }} aria-invalid={workspaceSlugError ? 'true' : undefined} aria-describedby={workspaceSlugError ? 'workspace-slug-error workspace-slug-description' : 'workspace-slug-description'} aria-errormessage={workspaceSlugError ? 'workspace-slug-error' : undefined} class={workspaceSlugError ? errorInputClass : undefined} />

{workspaceSlugError}

Lowercase letters, numbers, and hyphens only.

{#if isValid}

Both fields are valid.

{/if}
~~~~ ### Variant Outline ~~~~svelte
~~~~ ### Variant Secondary ~~~~svelte
~~~~ For the rendered reference, visit [/docs/components/input](/docs/components/input). --- Source: http://sveltekit-prerender/docs/components/kbd.md # Kbd Keyboard shortcut indicator. Activates its nearest interactive owner or an explicit ontrigger callback. - Package: `@mielui/svelte` - Component version: `1.1.0` - Depends on Mielui components: _internal/utils - Shared utilities: utils.cn ## Install ~~~~sh pnpm dlx @mielui/svelte add kbd ~~~~ ## API This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported. ### Kbd | Prop | Type | Default | Required | Bindable | | --- | --- | --- | --- | --- | | children | Snippet<[]> \| undefined | — | No | No | | shortcut | string | '' | Yes | No | | ontrigger | ((event: KeyboardEvent) => void) \| undefined | — | No | No | Also accepts the native HTML attributes and events listed in the rendered API reference. ### Public types ~~~~ts import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; import Kbd from './kbd.svelte'; export type KbdProps = Omit, 'children'> & { children?: Snippet; shortcut: string; ontrigger?: (event: KeyboardEvent) => void; }; export { Kbd }; export default Kbd; ~~~~ ## Examples ### Basic ~~~~svelte ~~~~ ### Context ~~~~svelte

{saved ? 'Draft saved in this preview.' : 'Click Save draft or press Alt+S.'}

~~~~ ### Hero ~~~~svelte

{message}

~~~~ ### Modifiers ~~~~svelte
~~~~ For the rendered reference, visit [/docs/components/kbd](/docs/components/kbd). --- Source: http://sveltekit-prerender/docs/components/label.md # Label Thin wrapper around native