@lmvz-ds/components 0.24.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/cjs/{ds.constants-DSnxZ3ia.js → ds.constants-8fh6ItAF.js} +1 -1
- package/cjs/{index-lW-SEvL7.js → index-BCFBLj0e.js} +1 -1
- package/cjs/index.cjs.js +196 -2
- package/cjs/lmvz-action.cjs.entry.js +1 -1
- package/cjs/lmvz-button-group.cjs.entry.js +183 -0
- package/cjs/lmvz-button_2.cjs.entry.js +198 -0
- package/cjs/lmvz-card.cjs.entry.js +2 -2
- package/cjs/lmvz-checkbox.cjs.entry.js +5 -5
- package/cjs/lmvz-chip.cjs.entry.js +4 -4
- package/cjs/lmvz-components.cjs.js +3 -3
- package/cjs/lmvz-header_2.cjs.entry.js +2 -2
- package/cjs/lmvz-input.cjs.entry.js +3 -3
- package/cjs/lmvz-menuitem.cjs.entry.js +3 -3
- package/cjs/lmvz-modal.cjs.entry.js +5 -5
- package/cjs/lmvz-radio.cjs.entry.js +334 -0
- package/cjs/lmvz-select.cjs.entry.js +4 -4
- package/cjs/lmvz-snackbar.cjs.entry.js +83 -0
- package/cjs/lmvz-toggle.cjs.entry.js +7 -5
- package/cjs/loader.cjs.js +2 -2
- package/cjs/{reactive-controller-host-BOFg4vL-.js → reactive-controller-host-DrtMkMd7.js} +1 -1
- package/collection/api/ds.constants.js +4 -1
- package/collection/collection-manifest.json +3 -1
- package/collection/components/lmvz-button/lmvz-button.css +8 -8
- package/collection/components/lmvz-button-group/lmvz-button-group.css +1 -1
- package/collection/components/lmvz-card/lmvz-card.css +11 -11
- package/collection/components/lmvz-checkbox/lmvz-checkbox.css +8 -11
- package/collection/components/lmvz-checkbox/lmvz-checkbox.js +2 -2
- package/collection/components/lmvz-chip/lmvz-chip.css +3 -3
- package/collection/components/lmvz-icon/lmvz-icon.js +1 -1
- package/collection/components/lmvz-input/lmvz-input.css +5 -9
- package/collection/components/lmvz-menuitem/lmvz-menuitem.css +3 -3
- package/collection/components/lmvz-modal/lmvz-modal.css +21 -15
- package/collection/components/lmvz-modal/lmvz-modal.js +2 -2
- package/collection/components/lmvz-radio/lmvz-radio.css +182 -0
- package/collection/components/lmvz-radio/lmvz-radio.js +487 -0
- package/collection/components/lmvz-select/lmvz-select.css +3 -3
- package/collection/components/lmvz-select/lmvz-select.js +1 -1
- package/collection/components/lmvz-snackbar/lmvz-snackbar.css +101 -0
- package/collection/components/lmvz-snackbar/lmvz-snackbar.js +266 -0
- package/collection/components/lmvz-snackbar/public.js +1 -0
- package/collection/components/lmvz-snackbar/snackbar-controller.js +194 -0
- package/collection/components/lmvz-toggle/lmvz-toggle.css +4 -9
- package/collection/components/lmvz-toggle/lmvz-toggle.js +3 -3
- package/collection/index.js +1 -0
- package/collection/integration/header-integration/header-integration.js +1 -1
- package/collection/styles/fragments/_focus-within.css +13 -0
- package/collection/utils/radio/radio-group-controller.js +160 -0
- package/components/index.d.ts +4 -0
- package/components/index.d.ts.bak +4 -0
- package/components/index.js +1 -1
- package/components/lmvz-action.js +1 -1
- package/components/lmvz-button-group.js +1 -1
- package/components/lmvz-button.js +1 -1
- package/components/lmvz-card.js +1 -1
- package/components/lmvz-checkbox.js +1 -1
- package/components/lmvz-chip.js +1 -1
- package/components/lmvz-header.js +1 -1
- package/components/lmvz-icon.js +1 -1
- package/components/lmvz-input.js +1 -1
- package/components/lmvz-menuitem.js +1 -1
- package/components/lmvz-modal.js +1 -1
- package/components/lmvz-radio.d.ts +11 -0
- package/components/lmvz-radio.d.ts.bak +11 -0
- package/components/lmvz-radio.js +1 -0
- package/components/lmvz-select.js +1 -1
- package/components/lmvz-snackbar.d.ts +11 -0
- package/components/lmvz-snackbar.d.ts.bak +11 -0
- package/components/lmvz-snackbar.js +1 -0
- package/components/lmvz-toggle.js +1 -1
- package/components/{p-slgmfnHm.js → p-BOzeYzKk.js} +1 -1
- package/components/{p-Cg2XX_J-.js → p-DYa3zcGE.js} +1 -1
- package/components/{p-DOTK1OW3.js → p-JAKQdFhF.js} +1 -1
- package/components/{p-CcnyKhAw.js → p-WLZ7VWNX.js} +1 -1
- package/components/{p-CK8cAKcB.js → p-c7OzBK8f.js} +1 -1
- package/components/{p-DSvYtVoD.js → p-lsUdmjdw.js} +1 -1
- package/esm/{ds.constants-Bmi89ll1.js → ds.constants-BOOwq5dE.js} +1 -1
- package/esm/{index-Aa_425iY.js → index-CKYszC64.js} +1 -1
- package/esm/index.js +198 -1
- package/esm/lmvz-action.entry.js +1 -1
- package/esm/lmvz-button-group.entry.js +181 -0
- package/esm/lmvz-button_2.entry.js +195 -0
- package/esm/lmvz-card.entry.js +2 -2
- package/esm/lmvz-checkbox.entry.js +5 -5
- package/esm/lmvz-chip.entry.js +4 -4
- package/esm/lmvz-components.js +4 -4
- package/esm/lmvz-header_2.entry.js +2 -2
- package/esm/lmvz-input.entry.js +3 -3
- package/esm/lmvz-menuitem.entry.js +3 -3
- package/esm/lmvz-modal.entry.js +5 -5
- package/esm/lmvz-radio.entry.js +332 -0
- package/esm/lmvz-select.entry.js +4 -4
- package/esm/lmvz-snackbar.entry.js +81 -0
- package/esm/lmvz-toggle.entry.js +7 -5
- package/esm/loader.js +3 -3
- package/esm/{reactive-controller-host-CroMsXdS.js → reactive-controller-host-ZrGf1F2-.js} +1 -1
- package/hydrate/index.js +467 -19
- package/hydrate/index.mjs +467 -19
- package/lmvz-components/index.esm.js +1 -1
- package/lmvz-components/lmvz-components.esm.js +1 -1
- package/lmvz-components/{p-d1dacf7e.entry.js → p-01aeca60.entry.js} +1 -1
- package/lmvz-components/p-0a37e0f2.entry.js +1 -0
- package/lmvz-components/p-14c3d837.entry.js +1 -0
- package/lmvz-components/{p-4263c9b2.entry.js → p-24e63b0a.entry.js} +1 -1
- package/lmvz-components/p-25f045b2.entry.js +1 -0
- package/lmvz-components/{p-f6d1d9df.entry.js → p-3da301a6.entry.js} +1 -1
- package/lmvz-components/p-40228d48.entry.js +1 -0
- package/lmvz-components/p-4da9073a.entry.js +1 -0
- package/lmvz-components/p-6de9981f.entry.js +1 -0
- package/lmvz-components/{p-6f8cbc4f.entry.js → p-758078db.entry.js} +1 -1
- package/lmvz-components/{p-88adb9fa.entry.js → p-8dae99f1.entry.js} +1 -1
- package/lmvz-components/p-BOOwq5dE.js +1 -0
- package/lmvz-components/{p-BRl6zKXT.js → p-CwX1wKkM.js} +1 -1
- package/lmvz-components/{p-a7c3074a.entry.js → p-e1eaa7a2.entry.js} +1 -1
- package/lmvz-components/p-f5cece32.entry.js +1 -0
- package/lmvz-components/p-fe607f10.entry.js +1 -0
- package/manifest.json +892 -205
- package/package.json +9 -1
- package/types/api/ds.constants.d.ts +9 -1
- package/types/components/lmvz-radio/lmvz-radio.d.ts +42 -0
- package/types/components/lmvz-snackbar/lmvz-snackbar.d.ts +21 -0
- package/types/components/lmvz-snackbar/public.d.ts +2 -0
- package/types/components/lmvz-snackbar/snackbar-controller.d.ts +32 -0
- package/types/components.d.ts +237 -1
- package/types/index.d.ts +1 -0
- package/types/stencil-public-runtime.d.ts +1 -0
- package/types/utils/radio/radio-group-controller.d.ts +26 -0
- package/assets/icons/checkmark.svg +0 -4
- package/assets/icons/close-sm.svg +0 -3
- package/cjs/lmvz-button_3.cjs.entry.js +0 -375
- package/collection/assets/icons/checkmark.svg +0 -4
- package/collection/assets/icons/close-sm.svg +0 -3
- package/esm/lmvz-button_3.entry.js +0 -371
- package/lmvz-components/p-2824a56b.entry.js +0 -1
- package/lmvz-components/p-3846ba08.entry.js +0 -1
- package/lmvz-components/p-4f5c3c4a.entry.js +0 -1
- package/lmvz-components/p-Bmi89ll1.js +0 -1
- package/lmvz-components/p-b3b04d46.entry.js +0 -1
- package/lmvz-components/p-fefefc54.entry.js +0 -1
- /package/lmvz-components/{p-Aa_425iY.js → p-CKYszC64.js} +0 -0
package/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-06-
|
|
2
|
+
"timestamp": "2026-06-09T08:16:24",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
|
-
"version": "4.43.
|
|
5
|
+
"version": "4.43.5",
|
|
6
6
|
"typescriptVersion": "5.8.3"
|
|
7
7
|
},
|
|
8
8
|
"components": [
|
|
@@ -452,12 +452,16 @@
|
|
|
452
452
|
],
|
|
453
453
|
"states": [],
|
|
454
454
|
"dependents": [
|
|
455
|
-
"lmvz-modal"
|
|
455
|
+
"lmvz-modal",
|
|
456
|
+
"lmvz-snackbar"
|
|
456
457
|
],
|
|
457
458
|
"dependencies": [],
|
|
458
459
|
"dependencyGraph": {
|
|
459
460
|
"lmvz-modal": [
|
|
460
461
|
"lmvz-button"
|
|
462
|
+
],
|
|
463
|
+
"lmvz-snackbar": [
|
|
464
|
+
"lmvz-button"
|
|
461
465
|
]
|
|
462
466
|
}
|
|
463
467
|
},
|
|
@@ -1512,10 +1516,10 @@
|
|
|
1512
1516
|
},
|
|
1513
1517
|
{
|
|
1514
1518
|
"name": "weight",
|
|
1515
|
-
"type": "\"bold\" | \"
|
|
1519
|
+
"type": "\"bold\" | \"medium\" | \"thin\" | undefined",
|
|
1516
1520
|
"complexType": {
|
|
1517
1521
|
"original": "Icon.IconWeight",
|
|
1518
|
-
"resolved": "\"bold\" | \"
|
|
1522
|
+
"resolved": "\"bold\" | \"medium\" | \"thin\" | undefined",
|
|
1519
1523
|
"references": {
|
|
1520
1524
|
"Icon": {
|
|
1521
1525
|
"location": "import",
|
|
@@ -1541,10 +1545,6 @@
|
|
|
1541
1545
|
"value": "bold",
|
|
1542
1546
|
"type": "string"
|
|
1543
1547
|
},
|
|
1544
|
-
{
|
|
1545
|
-
"value": "filled",
|
|
1546
|
-
"type": "string"
|
|
1547
|
-
},
|
|
1548
1548
|
{
|
|
1549
1549
|
"value": "medium",
|
|
1550
1550
|
"type": "string"
|
|
@@ -1582,12 +1582,16 @@
|
|
|
1582
1582
|
"parts": [],
|
|
1583
1583
|
"states": [],
|
|
1584
1584
|
"dependents": [
|
|
1585
|
-
"lmvz-modal"
|
|
1585
|
+
"lmvz-modal",
|
|
1586
|
+
"lmvz-snackbar"
|
|
1586
1587
|
],
|
|
1587
1588
|
"dependencies": [],
|
|
1588
1589
|
"dependencyGraph": {
|
|
1589
1590
|
"lmvz-modal": [
|
|
1590
1591
|
"lmvz-icon"
|
|
1592
|
+
],
|
|
1593
|
+
"lmvz-snackbar": [
|
|
1594
|
+
"lmvz-icon"
|
|
1591
1595
|
]
|
|
1592
1596
|
}
|
|
1593
1597
|
},
|
|
@@ -5879,29 +5883,21 @@
|
|
|
5879
5883
|
}
|
|
5880
5884
|
},
|
|
5881
5885
|
{
|
|
5882
|
-
"filePath": "src/components/lmvz-
|
|
5886
|
+
"filePath": "src/components/lmvz-radio/lmvz-radio.tsx",
|
|
5883
5887
|
"encapsulation": "scoped",
|
|
5884
|
-
"tag": "lmvz-
|
|
5885
|
-
"readme": "# lmvz-
|
|
5886
|
-
"docs": "
|
|
5888
|
+
"tag": "lmvz-radio",
|
|
5889
|
+
"readme": "# lmvz-radio\n\nAccessible, form-associated radio button built as a Stencil scoped web component. Supports form association, native radio group mutual exclusion via `name` forwarding, roving tabindex, and ARIA APG-compliant keyboard navigation.\n\n## Usage\n\n### Basic\n\n```html\n<lmvz-radio name=\"choice\" value=\"a\" label=\"Option A\"></lmvz-radio>\n<lmvz-radio name=\"choice\" value=\"b\" label=\"Option B\"></lmvz-radio>\n```\n\n## Form Integration\n\n`lmvz-radio` is a FACE (Form-Associated Custom Element). It participates in native HTML forms via `ElementInternals`: the `name` and `value` attributes are submitted to the form when the radio is `checked`.\n\nSetting `required` triggers native form validation — the form will not submit unless a radio with the given `name` is checked.\n\n### Form Reset Behavior\n\nWhen a form is reset, `lmvz-radio` restores its `checked` state to the value it held when the component first mounted (the `initialChecked` value), without emitting `lmvzChange`. This matches native `<input type=\"radio\">` behavior. Internal form state (via `ElementInternals.setFormValue`) is always updated regardless. Browser autofill and session-restore operations (via `formStateRestoreCallback`) also do not emit `lmvzChange`.\n\n> **Note:** `aria-required` is intentionally absent from `lmvz-radio`. When a radio group is required, expose `aria-required` on the `role=\"radiogroup\"` wrapper element via your application code. This is the consumer's responsibility.\n\n## Radio Group Behavior\n\nWhen multiple `lmvz-radio` elements share the same `name` attribute and are within the same form (or document scope if outside any form), they form a native radio group. The `name` is forwarded directly to the native `<input type=\"radio\">`, enabling the browser's built-in mutual-exclusion logic: selecting one radio automatically deselects all others with the same name in the same scope. Radios with the same `name` in different forms are treated as independent groups.\n\n**Roving tabindex:** The component automatically manages keyboard focus navigation via the `RadioGroupController`. When a group of radios shares the same `name`:\n- The checked radio has `tabindex=\"0\"` and is reachable via Tab.\n- All other enabled radios have `tabindex=\"-1\"` and are not directly tabbable.\n- If no radio is checked, the first enabled radio in DOM order receives `tabindex=\"0\"`, ensuring the group is always reachable.\n\n**Keyboard navigation (manual selection pattern):**\n\n| Key | Action |\n|-----|--------|\n| Arrow Down / Arrow Right | Moves focus to the next radio in the group (no selection) |\n| Arrow Up / Arrow Left | Moves focus to the previous radio in the group (no selection) |\n| Home | Moves focus to the first radio in the group (no selection) |\n| End | Moves focus to the last radio in the group (no selection) |\n| Space | Selects the focused radio; emits `lmvzActivation` and (if state changed) `lmvzChange` |\n| Tab | Moves focus out of the radio group |\n\nDisabled radios are skipped during navigation.\n\nThis component implements the WAI-ARIA [manual selection](https://www.w3.org/WAI/ARIA/apg/patterns/radio/) pattern: focus and selection are decoupled. Arrow keys move focus without selecting. The consumer is responsible for wrapping grouped radios in a `role=\"radiogroup\"` element.\n\n**Consumer responsibility — `role=\"radiogroup\"`:**\nWrap a group of related `lmvz-radio` elements in a container element with `role=\"radiogroup\"` and an accessible label via `aria-label` or `aria-labelledby`. The radio component does not add this role itself because a radio button cannot also be a radiogroup.\n\n## Accessibility\n\n- A native `<input type=\"radio\">` is rendered inside the component for full keyboard and screen reader support.\n- `role=\"radiogroup\"` must be added by the consumer on a wrapper element (see \"Radio Group Behavior\" above).\n- `aria-invalid` is set when `error=true`.\n- `aria-describedby` links the input to helper text when `helper-text` is provided.\n- Helper text uses `aria-live=\"polite\"` for dynamic updates.\n- The focus ring is visible and meets WCAG 2.1 AA contrast requirements.\n- Forced Colors (Windows High Contrast Mode) is supported.\n\n## CSS Custom Properties\n\nOverride these on the `:host` element to theme the component. All defaults reference LMVZ semantic or global design tokens.\n\n| Property | Default | Description |\n|---|---|---|\n| `--radio-circle-size` | `var(--lmvz-global-s18)` | Width and height of the radio circle |\n| `--radio-dot-size` | `0.5rem` | Size of the inner selected dot |\n| `--radio-bg` | `var(--lmvz-semantic-color-surface-input-primary)` | Circle background (unchecked) |\n| `--radio-border-color` | `var(--lmvz-semantic-color-border-default)` | Circle border (default) |\n| `--radio-border-color-hover` | `var(--lmvz-semantic-color-border-hover)` | Circle border on hover |\n| `--radio-border-color-checked` | `var(--lmvz-semantic-color-border-active)` | Circle border when checked |\n| `--radio-border-color-error` | `var(--lmvz-semantic-color-status-on-danger)` | Circle border in error state |\n| `--radio-dot-color` | `var(--lmvz-semantic-color-border-active)` | Color of the inner dot |\n| `--radio-wrapper-bg-hover` | `var(--lmvz-semantic-color-int-tertiary-hover)` | Pill background on hover |\n| `--radio-wrapper-bg-active` | `var(--lmvz-semantic-color-int-tertiary-active)` | Pill background when pressed |\n| `--radio-wrapper-bg-checked` | `var(--lmvz-semantic-color-status-active)` | Pill background when checked |\n| `--radio-label-color` | `var(--lmvz-semantic-color-on-surface-primary)` | Label text color (default) |\n| `--radio-label-color-checked` | `var(--lmvz-semantic-color-status-on-active)` | Label text color when checked |\n| `--radio-helper-color` | `var(--lmvz-semantic-color-on-surface-secondary)` | Helper text color |\n| `--radio-focus-color` | `var(--lmvz-semantic-color-status-on-active)` | Focus ring color |\n| `--radio-easing` | `var(--lmvz-global-easing-default, ease)` | Transition easing function |\n| `--radio-duration` | `0.2s` | Transition duration |\n\n## lmvzChange Emission Contract\n\nThe `lmvzChange` event emits only when the radio's checked state changes. The event detail contains the new `checked` boolean value.\n\n**Fires on:**\n- User activation: clicking the radio or pressing Space (only if state changes)\n- Programmatic checked state transitions: setting `checked = true` or `checked = false`\n\n**Does NOT fire on:**\n- Arrow key navigation (Arrow Down, Arrow Up, Home, End). These move focus only, without selection.\n- Browser form lifecycle callbacks (`formResetCallback`, `formStateRestoreCallback`). This matches native `<input type=\"radio\">` behavior, which does not fire `change` on form reset. Internal form state (`ElementInternals.setFormValue`) is always updated regardless.\n\n## Angular Integration\n\n### Automatic Form Integration\n\nUse the `LmvzCheckableValueChangeHelper` directive (included in `@lmvz-ds/angular`) to automatically wire `lmvz-radio` to Angular form controls. When this directive is present on the element, it automatically binds the `lmvzChange` event to the form control's `valueChange` output:\n\n```html\n<!-- With [(ngModel)] -->\n<lmvz-radio\n label=\"Option A\"\n name=\"choice\"\n value=\"a\"\n [(ngModel)]=\"selectedValue\">\n</lmvz-radio>\n\n<!-- With [formControl] -->\n<lmvz-radio\n label=\"Option B\"\n name=\"choice\"\n value=\"b\"\n [formControl]=\"controlRef\">\n</lmvz-radio>\n```\n\nNo additional setup is required — the directive is applied automatically via the selector `lmvz-checkbox, lmvz-radio`.\n\n### Manual Event Binding\n\nIf you need direct event handling, listen to the `lmvzChange` event:\n\n```html\n<lmvz-radio\n label=\"Option\"\n name=\"choice\"\n [checked]=\"isChecked\"\n (lmvzChange)=\"isChecked = $event.target.checked\">\n</lmvz-radio>\n```\n\n## Public Methods\n\n### focusInput()\n\nProgrammatically set focus on the native radio input. Use this method when you need to move keyboard focus to a radio after a user interaction or page state change:\n\n```typescript\nconst radioEl = document.querySelector('lmvz-radio');\nawait radioEl.focusInput();\n```\n\n## Event Reference\n\n### lmvzActivation\n\nThe `lmvzActivation` event fires on every explicit user activation: click or Space on the native input. This includes re-activation of an already-checked radio. Use this event to react directly to user intent, distinct from state transitions.\n\n### lmvzChange vs lmvzActivation\n\n- **`lmvzActivation`:** Fires on every explicit user activation (click or Space), regardless of whether the checked state actually changes.\n- **`lmvzChange`:** Fires only on state transitions (checked ↔ unchecked).\n\nWhen a user selects a different radio in a group, both events fire together. When a user re-activates an already-checked radio, only `lmvzActivation` fires.\n\n## Design Notes / Waivers\n\n### Checked + hover state (OQ-5)\n\nWhen a radio is both checked and hovered, the checked background (`--radio-wrapper-bg-checked`) is held — the hover background does not override it. No Figma spec exists for this combined state; this behavior is an intentional implementation decision.\n\n### Label wrapping (OQ-3)\n\nThe label uses `overflow-wrap: break-word` (normal wrapping). `white-space: nowrap` is intentionally not applied.\n",
|
|
5890
|
+
"docs": "Radio button component with form association, ARIA validation, accessible label support,\nand ARIA APG-compliant Arrow-key keyboard navigation.\n\n**Consumer responsibility — `role=\"radiogroup\"`:**\nWrap a group of `lmvz-radio` elements in a container element with `role=\"radiogroup\"` and\nan accessible label via `aria-label` or `aria-labelledby`. `lmvz-radio` must not carry\n`role=\"radiogroup\"` itself because a radio cannot also be a radiogroup.\n\n**Arrow-key navigation and roving tabindex:**\nWhen multiple `lmvz-radio` elements share the same `name` attribute, this component\nautomatically handles Arrow Down / Arrow Right (next), Arrow Up / Arrow Left (previous),\nHome (first), and End (last) navigation with wrapping. Disabled radios are skipped.\nThe checked radio has `tabindex=\"0\"`. When no radio is checked, the first enabled radio\nin DOM order receives `tabindex=\"0\"`, ensuring the group is always reachable by Tab.",
|
|
5887
5891
|
"docsTags": [
|
|
5888
5892
|
{
|
|
5889
5893
|
"name": "example",
|
|
5890
|
-
"text": "```html\n<
|
|
5891
|
-
},
|
|
5892
|
-
{
|
|
5893
|
-
"name": "example",
|
|
5894
|
-
"text": "```typescript\nconst select = document.querySelector('lmvz-select');\nselect.addEventListener('lmvzChange', (e) => console.log(e.detail));\n```"
|
|
5895
|
-
},
|
|
5896
|
-
{
|
|
5897
|
-
"name": "slot",
|
|
5898
|
-
"text": "default - Native `<option>` or `<optgroup>` elements."
|
|
5894
|
+
"text": "```html\n<div role=\"radiogroup\" aria-label=\"Choose an option\">\n <lmvz-radio label=\"Option A\" name=\"choice\" checked></lmvz-radio>\n <lmvz-radio label=\"Option B\" name=\"choice\"></lmvz-radio>\n</div>\n```"
|
|
5899
5895
|
}
|
|
5900
5896
|
],
|
|
5901
5897
|
"usage": {},
|
|
5902
5898
|
"props": [
|
|
5903
5899
|
{
|
|
5904
|
-
"name": "
|
|
5900
|
+
"name": "autofocus",
|
|
5905
5901
|
"type": "boolean",
|
|
5906
5902
|
"complexType": {
|
|
5907
5903
|
"original": "boolean",
|
|
@@ -5909,9 +5905,9 @@
|
|
|
5909
5905
|
"references": {}
|
|
5910
5906
|
},
|
|
5911
5907
|
"mutable": false,
|
|
5912
|
-
"attr": "
|
|
5913
|
-
"reflectToAttr":
|
|
5914
|
-
"docs": "Whether the
|
|
5908
|
+
"attr": "autofocus",
|
|
5909
|
+
"reflectToAttr": false,
|
|
5910
|
+
"docs": "Whether the radio should autofocus.",
|
|
5915
5911
|
"docsTags": [
|
|
5916
5912
|
{
|
|
5917
5913
|
"name": "default",
|
|
@@ -5930,82 +5926,36 @@
|
|
|
5930
5926
|
"setter": false
|
|
5931
5927
|
},
|
|
5932
5928
|
{
|
|
5933
|
-
"name": "
|
|
5934
|
-
"type": "
|
|
5929
|
+
"name": "checked",
|
|
5930
|
+
"type": "boolean",
|
|
5935
5931
|
"complexType": {
|
|
5936
|
-
"original": "
|
|
5937
|
-
"resolved": "
|
|
5932
|
+
"original": "boolean",
|
|
5933
|
+
"resolved": "boolean",
|
|
5938
5934
|
"references": {}
|
|
5939
5935
|
},
|
|
5940
|
-
"mutable":
|
|
5941
|
-
"attr": "
|
|
5942
|
-
"reflectToAttr":
|
|
5943
|
-
"docs": "
|
|
5944
|
-
"docsTags": [
|
|
5945
|
-
"values": [
|
|
5946
|
-
{
|
|
5947
|
-
"type": "string"
|
|
5948
|
-
},
|
|
5936
|
+
"mutable": true,
|
|
5937
|
+
"attr": "checked",
|
|
5938
|
+
"reflectToAttr": true,
|
|
5939
|
+
"docs": "Whether the radio is checked.\n\nSetting this prop programmatically (e.g. `element.checked = true`) fires `lmvzChange`\nwith the new value, unless the change occurs during native form lifecycle callbacks\n(`formResetCallback` or `formStateRestoreCallback`), in which case emission is suppressed\nto match native `<input type=\"radio\">` behavior. Internal form state is always updated\nregardless of emission suppression.",
|
|
5940
|
+
"docsTags": [
|
|
5949
5941
|
{
|
|
5950
|
-
"
|
|
5942
|
+
"name": "default",
|
|
5943
|
+
"text": "false"
|
|
5951
5944
|
}
|
|
5952
5945
|
],
|
|
5953
|
-
"
|
|
5954
|
-
"required": false,
|
|
5955
|
-
"getter": false,
|
|
5956
|
-
"setter": false
|
|
5957
|
-
},
|
|
5958
|
-
{
|
|
5959
|
-
"name": "label",
|
|
5960
|
-
"type": "string",
|
|
5961
|
-
"complexType": {
|
|
5962
|
-
"original": "string",
|
|
5963
|
-
"resolved": "string",
|
|
5964
|
-
"references": {}
|
|
5965
|
-
},
|
|
5966
|
-
"mutable": false,
|
|
5967
|
-
"attr": "label",
|
|
5968
|
-
"reflectToAttr": false,
|
|
5969
|
-
"docs": "Label text displayed as a placeholder when no value is selected,\nand floated above the trigger when a value is present.",
|
|
5970
|
-
"docsTags": [],
|
|
5946
|
+
"default": "false",
|
|
5971
5947
|
"values": [
|
|
5972
5948
|
{
|
|
5973
|
-
"type": "
|
|
5949
|
+
"type": "boolean"
|
|
5974
5950
|
}
|
|
5975
5951
|
],
|
|
5976
5952
|
"optional": false,
|
|
5977
|
-
"required": true,
|
|
5978
|
-
"getter": false,
|
|
5979
|
-
"setter": false
|
|
5980
|
-
},
|
|
5981
|
-
{
|
|
5982
|
-
"name": "name",
|
|
5983
|
-
"type": "string | undefined",
|
|
5984
|
-
"complexType": {
|
|
5985
|
-
"original": "string",
|
|
5986
|
-
"resolved": "string | undefined",
|
|
5987
|
-
"references": {}
|
|
5988
|
-
},
|
|
5989
|
-
"mutable": false,
|
|
5990
|
-
"attr": "name",
|
|
5991
|
-
"reflectToAttr": false,
|
|
5992
|
-
"docs": "Name attribute passed to the native select for form submission.",
|
|
5993
|
-
"docsTags": [],
|
|
5994
|
-
"values": [
|
|
5995
|
-
{
|
|
5996
|
-
"type": "string"
|
|
5997
|
-
},
|
|
5998
|
-
{
|
|
5999
|
-
"type": "undefined"
|
|
6000
|
-
}
|
|
6001
|
-
],
|
|
6002
|
-
"optional": true,
|
|
6003
5953
|
"required": false,
|
|
6004
5954
|
"getter": false,
|
|
6005
5955
|
"setter": false
|
|
6006
5956
|
},
|
|
6007
5957
|
{
|
|
6008
|
-
"name": "
|
|
5958
|
+
"name": "disabled",
|
|
6009
5959
|
"type": "boolean",
|
|
6010
5960
|
"complexType": {
|
|
6011
5961
|
"original": "boolean",
|
|
@@ -6013,9 +5963,9 @@
|
|
|
6013
5963
|
"references": {}
|
|
6014
5964
|
},
|
|
6015
5965
|
"mutable": false,
|
|
6016
|
-
"attr": "
|
|
5966
|
+
"attr": "disabled",
|
|
6017
5967
|
"reflectToAttr": true,
|
|
6018
|
-
"docs": "Whether
|
|
5968
|
+
"docs": "Whether the radio is disabled.",
|
|
6019
5969
|
"docsTags": [
|
|
6020
5970
|
{
|
|
6021
5971
|
"name": "default",
|
|
@@ -6034,89 +5984,17 @@
|
|
|
6034
5984
|
"setter": false
|
|
6035
5985
|
},
|
|
6036
5986
|
{
|
|
6037
|
-
"name": "
|
|
6038
|
-
"type": "string | undefined",
|
|
6039
|
-
"complexType": {
|
|
6040
|
-
"original": "string",
|
|
6041
|
-
"resolved": "string | undefined",
|
|
6042
|
-
"references": {}
|
|
6043
|
-
},
|
|
6044
|
-
"mutable": true,
|
|
6045
|
-
"attr": "value",
|
|
6046
|
-
"reflectToAttr": false,
|
|
6047
|
-
"docs": "Currently selected value.",
|
|
6048
|
-
"docsTags": [],
|
|
6049
|
-
"values": [
|
|
6050
|
-
{
|
|
6051
|
-
"type": "string"
|
|
6052
|
-
},
|
|
6053
|
-
{
|
|
6054
|
-
"type": "undefined"
|
|
6055
|
-
}
|
|
6056
|
-
],
|
|
6057
|
-
"optional": true,
|
|
6058
|
-
"required": false,
|
|
6059
|
-
"getter": false,
|
|
6060
|
-
"setter": false
|
|
6061
|
-
}
|
|
6062
|
-
],
|
|
6063
|
-
"methods": [],
|
|
6064
|
-
"events": [
|
|
6065
|
-
{
|
|
6066
|
-
"event": "lmvzChange",
|
|
6067
|
-
"detail": "string",
|
|
6068
|
-
"bubbles": true,
|
|
6069
|
-
"complexType": {
|
|
6070
|
-
"original": "string",
|
|
6071
|
-
"resolved": "string",
|
|
6072
|
-
"references": {}
|
|
6073
|
-
},
|
|
6074
|
-
"cancelable": true,
|
|
6075
|
-
"composed": true,
|
|
6076
|
-
"docs": "Emitted when the user selects a new option. Detail contains the new value.",
|
|
6077
|
-
"docsTags": []
|
|
6078
|
-
}
|
|
6079
|
-
],
|
|
6080
|
-
"listeners": [],
|
|
6081
|
-
"styles": [],
|
|
6082
|
-
"slots": [
|
|
6083
|
-
{
|
|
6084
|
-
"name": "default",
|
|
6085
|
-
"docs": "Native `<option>` or `<optgroup>` elements."
|
|
6086
|
-
}
|
|
6087
|
-
],
|
|
6088
|
-
"parts": [],
|
|
6089
|
-
"states": [],
|
|
6090
|
-
"dependents": [],
|
|
6091
|
-
"dependencies": [],
|
|
6092
|
-
"dependencyGraph": {}
|
|
6093
|
-
},
|
|
6094
|
-
{
|
|
6095
|
-
"filePath": "src/components/lmvz-toggle/lmvz-toggle.tsx",
|
|
6096
|
-
"encapsulation": "scoped",
|
|
6097
|
-
"tag": "lmvz-toggle",
|
|
6098
|
-
"readme": "# lmvz-toggle\n\n\n",
|
|
6099
|
-
"docs": "Toggle (switch) component. Wraps a native `<input type=\"checkbox\" role=\"switch\">` for full keyboard and form support.",
|
|
6100
|
-
"docsTags": [
|
|
6101
|
-
{
|
|
6102
|
-
"name": "example",
|
|
6103
|
-
"text": "```html\n<lmvz-toggle label=\"Enable notifications\" name=\"notifications\" required></lmvz-toggle>\n```"
|
|
6104
|
-
}
|
|
6105
|
-
],
|
|
6106
|
-
"usage": {},
|
|
6107
|
-
"props": [
|
|
6108
|
-
{
|
|
6109
|
-
"name": "checked",
|
|
5987
|
+
"name": "error",
|
|
6110
5988
|
"type": "boolean",
|
|
6111
5989
|
"complexType": {
|
|
6112
5990
|
"original": "boolean",
|
|
6113
5991
|
"resolved": "boolean",
|
|
6114
5992
|
"references": {}
|
|
6115
5993
|
},
|
|
6116
|
-
"mutable":
|
|
6117
|
-
"attr": "
|
|
5994
|
+
"mutable": false,
|
|
5995
|
+
"attr": "error",
|
|
6118
5996
|
"reflectToAttr": true,
|
|
6119
|
-
"docs": "Whether the
|
|
5997
|
+
"docs": "Whether the radio is in an error state.",
|
|
6120
5998
|
"docsTags": [
|
|
6121
5999
|
{
|
|
6122
6000
|
"name": "default",
|
|
@@ -6135,36 +6013,33 @@
|
|
|
6135
6013
|
"setter": false
|
|
6136
6014
|
},
|
|
6137
6015
|
{
|
|
6138
|
-
"name": "
|
|
6139
|
-
"type": "
|
|
6016
|
+
"name": "form",
|
|
6017
|
+
"type": "string | undefined",
|
|
6140
6018
|
"complexType": {
|
|
6141
|
-
"original": "
|
|
6142
|
-
"resolved": "
|
|
6019
|
+
"original": "string",
|
|
6020
|
+
"resolved": "string | undefined",
|
|
6143
6021
|
"references": {}
|
|
6144
6022
|
},
|
|
6145
6023
|
"mutable": false,
|
|
6146
|
-
"attr": "
|
|
6024
|
+
"attr": "form",
|
|
6147
6025
|
"reflectToAttr": true,
|
|
6148
|
-
"docs": "
|
|
6149
|
-
"docsTags": [
|
|
6150
|
-
{
|
|
6151
|
-
"name": "default",
|
|
6152
|
-
"text": "false"
|
|
6153
|
-
}
|
|
6154
|
-
],
|
|
6155
|
-
"default": "false",
|
|
6026
|
+
"docs": "Form id to associate with (for out-of-form usage).\nReflected to the host attribute so both HTML attribute and programmatic assignment work.",
|
|
6027
|
+
"docsTags": [],
|
|
6156
6028
|
"values": [
|
|
6157
6029
|
{
|
|
6158
|
-
"type": "
|
|
6030
|
+
"type": "string"
|
|
6031
|
+
},
|
|
6032
|
+
{
|
|
6033
|
+
"type": "undefined"
|
|
6159
6034
|
}
|
|
6160
6035
|
],
|
|
6161
|
-
"optional":
|
|
6036
|
+
"optional": true,
|
|
6162
6037
|
"required": false,
|
|
6163
6038
|
"getter": false,
|
|
6164
6039
|
"setter": false
|
|
6165
6040
|
},
|
|
6166
6041
|
{
|
|
6167
|
-
"name": "
|
|
6042
|
+
"name": "helperText",
|
|
6168
6043
|
"type": "string | undefined",
|
|
6169
6044
|
"complexType": {
|
|
6170
6045
|
"original": "string",
|
|
@@ -6172,9 +6047,9 @@
|
|
|
6172
6047
|
"references": {}
|
|
6173
6048
|
},
|
|
6174
6049
|
"mutable": false,
|
|
6175
|
-
"attr": "
|
|
6050
|
+
"attr": "helper-text",
|
|
6176
6051
|
"reflectToAttr": false,
|
|
6177
|
-
"docs": "
|
|
6052
|
+
"docs": "Helper / description text displayed below the label.",
|
|
6178
6053
|
"docsTags": [],
|
|
6179
6054
|
"values": [
|
|
6180
6055
|
{
|
|
@@ -6200,7 +6075,7 @@
|
|
|
6200
6075
|
"mutable": false,
|
|
6201
6076
|
"attr": "label",
|
|
6202
6077
|
"reflectToAttr": false,
|
|
6203
|
-
"docs": "Label text for the
|
|
6078
|
+
"docs": "Label text for the radio. Required for accessibility.",
|
|
6204
6079
|
"docsTags": [],
|
|
6205
6080
|
"values": [
|
|
6206
6081
|
{
|
|
@@ -6223,8 +6098,13 @@
|
|
|
6223
6098
|
"mutable": false,
|
|
6224
6099
|
"attr": "name",
|
|
6225
6100
|
"reflectToAttr": false,
|
|
6226
|
-
"docs": "Name attribute for form
|
|
6227
|
-
"docsTags": [
|
|
6101
|
+
"docs": "Name attribute for form submission via ElementInternals.\n\nWhen multiple `lmvz-radio` elements share the same `name` and form scope,\nthe `name` is forwarded directly to the native `<input type=\"radio\">`,\nenabling browser-native mutual exclusion: selecting one radio automatically\ndeselects all others with the same name in that form. If a radio is outside\nany form, its scope defaults to the document level — same-name radios\noutside forms form a document-scoped group. Radios with the same `name` in\ndifferent forms are independent groups.\n\nThe `RadioGroupController` automatically manages roving tabindex (only the\nchecked radio has `tabindex=\"0\"`) and keyboard navigation (Arrow keys, Home, End)\nwithin the form-scoped group.",
|
|
6102
|
+
"docsTags": [
|
|
6103
|
+
{
|
|
6104
|
+
"name": "remarks",
|
|
6105
|
+
"text": "A value of `\"\"` (empty string) is forwarded to the native `<input>`, but\n`RadioGroupController` treats it as unnamed — no group coordination occurs between\nradios with `name=\"\"`."
|
|
6106
|
+
}
|
|
6107
|
+
],
|
|
6228
6108
|
"values": [
|
|
6229
6109
|
{
|
|
6230
6110
|
"type": "string"
|
|
@@ -6249,7 +6129,7 @@
|
|
|
6249
6129
|
"mutable": false,
|
|
6250
6130
|
"attr": "required",
|
|
6251
6131
|
"reflectToAttr": true,
|
|
6252
|
-
"docs": "Whether the
|
|
6132
|
+
"docs": "Whether the radio is required.",
|
|
6253
6133
|
"docsTags": [
|
|
6254
6134
|
{
|
|
6255
6135
|
"name": "default",
|
|
@@ -6278,7 +6158,7 @@
|
|
|
6278
6158
|
"mutable": false,
|
|
6279
6159
|
"attr": "value",
|
|
6280
6160
|
"reflectToAttr": false,
|
|
6281
|
-
"docs": "
|
|
6161
|
+
"docs": "Form submission value when checked.",
|
|
6282
6162
|
"docsTags": [
|
|
6283
6163
|
{
|
|
6284
6164
|
"name": "default",
|
|
@@ -6299,13 +6179,13 @@
|
|
|
6299
6179
|
],
|
|
6300
6180
|
"methods": [
|
|
6301
6181
|
{
|
|
6302
|
-
"name": "
|
|
6182
|
+
"name": "checkValidity",
|
|
6303
6183
|
"returns": {
|
|
6304
|
-
"type": "Promise<
|
|
6184
|
+
"type": "Promise<boolean>",
|
|
6305
6185
|
"docs": ""
|
|
6306
6186
|
},
|
|
6307
6187
|
"complexType": {
|
|
6308
|
-
"signature": "() => Promise<
|
|
6188
|
+
"signature": "() => Promise<boolean>",
|
|
6309
6189
|
"parameters": [],
|
|
6310
6190
|
"references": {
|
|
6311
6191
|
"Promise": {
|
|
@@ -6313,21 +6193,21 @@
|
|
|
6313
6193
|
"id": "global::Promise"
|
|
6314
6194
|
}
|
|
6315
6195
|
},
|
|
6316
|
-
"return": "Promise<
|
|
6196
|
+
"return": "Promise<boolean>"
|
|
6317
6197
|
},
|
|
6318
|
-
"signature": "
|
|
6198
|
+
"signature": "checkValidity() => Promise<boolean>",
|
|
6319
6199
|
"parameters": [],
|
|
6320
|
-
"docs": "
|
|
6200
|
+
"docs": "Returns whether the radio satisfies its validation constraints.",
|
|
6321
6201
|
"docsTags": []
|
|
6322
6202
|
},
|
|
6323
6203
|
{
|
|
6324
|
-
"name": "
|
|
6204
|
+
"name": "focusInput",
|
|
6325
6205
|
"returns": {
|
|
6326
|
-
"type": "Promise<
|
|
6206
|
+
"type": "Promise<void>",
|
|
6327
6207
|
"docs": ""
|
|
6328
6208
|
},
|
|
6329
6209
|
"complexType": {
|
|
6330
|
-
"signature": "() => Promise<
|
|
6210
|
+
"signature": "() => Promise<void>",
|
|
6331
6211
|
"parameters": [],
|
|
6332
6212
|
"references": {
|
|
6333
6213
|
"Promise": {
|
|
@@ -6335,21 +6215,21 @@
|
|
|
6335
6215
|
"id": "global::Promise"
|
|
6336
6216
|
}
|
|
6337
6217
|
},
|
|
6338
|
-
"return": "Promise<
|
|
6218
|
+
"return": "Promise<void>"
|
|
6339
6219
|
},
|
|
6340
|
-
"signature": "
|
|
6220
|
+
"signature": "focusInput() => Promise<void>",
|
|
6341
6221
|
"parameters": [],
|
|
6342
|
-
"docs": "
|
|
6222
|
+
"docs": "Sets focus on the native radio input.",
|
|
6343
6223
|
"docsTags": []
|
|
6344
6224
|
},
|
|
6345
6225
|
{
|
|
6346
|
-
"name": "
|
|
6226
|
+
"name": "reportValidity",
|
|
6347
6227
|
"returns": {
|
|
6348
|
-
"type": "Promise<
|
|
6228
|
+
"type": "Promise<boolean>",
|
|
6349
6229
|
"docs": ""
|
|
6350
6230
|
},
|
|
6351
6231
|
"complexType": {
|
|
6352
|
-
"signature": "() => Promise<
|
|
6232
|
+
"signature": "() => Promise<boolean>",
|
|
6353
6233
|
"parameters": [],
|
|
6354
6234
|
"references": {
|
|
6355
6235
|
"Promise": {
|
|
@@ -6357,9 +6237,811 @@
|
|
|
6357
6237
|
"id": "global::Promise"
|
|
6358
6238
|
}
|
|
6359
6239
|
},
|
|
6360
|
-
"return": "Promise<
|
|
6240
|
+
"return": "Promise<boolean>"
|
|
6361
6241
|
},
|
|
6362
|
-
"signature": "
|
|
6242
|
+
"signature": "reportValidity() => Promise<boolean>",
|
|
6243
|
+
"parameters": [],
|
|
6244
|
+
"docs": "Reports validation errors to the user.",
|
|
6245
|
+
"docsTags": []
|
|
6246
|
+
}
|
|
6247
|
+
],
|
|
6248
|
+
"events": [
|
|
6249
|
+
{
|
|
6250
|
+
"event": "lmvzActivation",
|
|
6251
|
+
"detail": "void",
|
|
6252
|
+
"bubbles": true,
|
|
6253
|
+
"complexType": {
|
|
6254
|
+
"original": "void",
|
|
6255
|
+
"resolved": "void",
|
|
6256
|
+
"references": {}
|
|
6257
|
+
},
|
|
6258
|
+
"cancelable": true,
|
|
6259
|
+
"composed": true,
|
|
6260
|
+
"docs": "Fired on every explicit user activation of this radio — via click or Space key on the\nnative input. Fires even when the radio is already checked (re-activation). Use this\nevent to react to user intent; use `lmvzChange` to react to state transitions.",
|
|
6261
|
+
"docsTags": []
|
|
6262
|
+
},
|
|
6263
|
+
{
|
|
6264
|
+
"event": "lmvzChange",
|
|
6265
|
+
"detail": "boolean",
|
|
6266
|
+
"bubbles": true,
|
|
6267
|
+
"complexType": {
|
|
6268
|
+
"original": "boolean",
|
|
6269
|
+
"resolved": "boolean",
|
|
6270
|
+
"references": {}
|
|
6271
|
+
},
|
|
6272
|
+
"cancelable": true,
|
|
6273
|
+
"composed": true,
|
|
6274
|
+
"docs": "Emitted whenever the radio checked state changes.\nEvent detail contains the new checked boolean value.\n\nEmission contract:\n- Fires `true` on user selection (native `change` event).\n- Fires on programmatic external prop transitions: `true → false` (emits `false`) and\n `false → true` (emits `true`), e.g. `element.checked = false` or `element.checked = true`.\n- Does NOT fire during browser-driven form lifecycle callbacks: `formResetCallback` and\n `formStateRestoreCallback` (autofill / session restore). This matches native `<input type=\"radio\">`\n behaviour, which does not fire `change` on form reset. Note that internal form state\n (`ElementInternals.setFormValue`) is always updated regardless of suppression — only the\n event channel is silenced.\n- Does NOT re-fire from the `@Watch('checked')` watcher during the same tick as the native\n `change` handler, preventing a double-emission when the user clicks the radio.",
|
|
6275
|
+
"docsTags": []
|
|
6276
|
+
}
|
|
6277
|
+
],
|
|
6278
|
+
"listeners": [
|
|
6279
|
+
{
|
|
6280
|
+
"event": "keydown",
|
|
6281
|
+
"capture": false,
|
|
6282
|
+
"passive": false
|
|
6283
|
+
}
|
|
6284
|
+
],
|
|
6285
|
+
"styles": [],
|
|
6286
|
+
"slots": [],
|
|
6287
|
+
"parts": [],
|
|
6288
|
+
"states": [],
|
|
6289
|
+
"dependents": [],
|
|
6290
|
+
"dependencies": [],
|
|
6291
|
+
"dependencyGraph": {}
|
|
6292
|
+
},
|
|
6293
|
+
{
|
|
6294
|
+
"filePath": "src/components/lmvz-select/lmvz-select.tsx",
|
|
6295
|
+
"encapsulation": "scoped",
|
|
6296
|
+
"tag": "lmvz-select",
|
|
6297
|
+
"readme": "# lmvz-select\n\n\n",
|
|
6298
|
+
"docs": "Select component with floating label and pill-shaped trigger.\nWraps a native `<select>` element for full keyboard and form support.",
|
|
6299
|
+
"docsTags": [
|
|
6300
|
+
{
|
|
6301
|
+
"name": "example",
|
|
6302
|
+
"text": "```html\n<lmvz-select label=\"Country\" name=\"country\">\n <option value=\"ch\">Switzerland</option>\n <option value=\"de\">Germany</option>\n <option value=\"at\">Austria</option>\n</lmvz-select>\n```"
|
|
6303
|
+
},
|
|
6304
|
+
{
|
|
6305
|
+
"name": "example",
|
|
6306
|
+
"text": "```typescript\nconst select = document.querySelector('lmvz-select');\nselect.addEventListener('lmvzChange', (e) => console.log(e.detail));\n```"
|
|
6307
|
+
},
|
|
6308
|
+
{
|
|
6309
|
+
"name": "slot",
|
|
6310
|
+
"text": "default - Native `<option>` or `<optgroup>` elements."
|
|
6311
|
+
}
|
|
6312
|
+
],
|
|
6313
|
+
"usage": {},
|
|
6314
|
+
"props": [
|
|
6315
|
+
{
|
|
6316
|
+
"name": "disabled",
|
|
6317
|
+
"type": "boolean",
|
|
6318
|
+
"complexType": {
|
|
6319
|
+
"original": "boolean",
|
|
6320
|
+
"resolved": "boolean",
|
|
6321
|
+
"references": {}
|
|
6322
|
+
},
|
|
6323
|
+
"mutable": false,
|
|
6324
|
+
"attr": "disabled",
|
|
6325
|
+
"reflectToAttr": true,
|
|
6326
|
+
"docs": "Whether the select is disabled.",
|
|
6327
|
+
"docsTags": [
|
|
6328
|
+
{
|
|
6329
|
+
"name": "default",
|
|
6330
|
+
"text": "false"
|
|
6331
|
+
}
|
|
6332
|
+
],
|
|
6333
|
+
"default": "false",
|
|
6334
|
+
"values": [
|
|
6335
|
+
{
|
|
6336
|
+
"type": "boolean"
|
|
6337
|
+
}
|
|
6338
|
+
],
|
|
6339
|
+
"optional": false,
|
|
6340
|
+
"required": false,
|
|
6341
|
+
"getter": false,
|
|
6342
|
+
"setter": false
|
|
6343
|
+
},
|
|
6344
|
+
{
|
|
6345
|
+
"name": "helperText",
|
|
6346
|
+
"type": "string | undefined",
|
|
6347
|
+
"complexType": {
|
|
6348
|
+
"original": "string",
|
|
6349
|
+
"resolved": "string | undefined",
|
|
6350
|
+
"references": {}
|
|
6351
|
+
},
|
|
6352
|
+
"mutable": false,
|
|
6353
|
+
"attr": "helper-text",
|
|
6354
|
+
"reflectToAttr": false,
|
|
6355
|
+
"docs": "Helper text displayed below the select field.",
|
|
6356
|
+
"docsTags": [],
|
|
6357
|
+
"values": [
|
|
6358
|
+
{
|
|
6359
|
+
"type": "string"
|
|
6360
|
+
},
|
|
6361
|
+
{
|
|
6362
|
+
"type": "undefined"
|
|
6363
|
+
}
|
|
6364
|
+
],
|
|
6365
|
+
"optional": true,
|
|
6366
|
+
"required": false,
|
|
6367
|
+
"getter": false,
|
|
6368
|
+
"setter": false
|
|
6369
|
+
},
|
|
6370
|
+
{
|
|
6371
|
+
"name": "label",
|
|
6372
|
+
"type": "string",
|
|
6373
|
+
"complexType": {
|
|
6374
|
+
"original": "string",
|
|
6375
|
+
"resolved": "string",
|
|
6376
|
+
"references": {}
|
|
6377
|
+
},
|
|
6378
|
+
"mutable": false,
|
|
6379
|
+
"attr": "label",
|
|
6380
|
+
"reflectToAttr": false,
|
|
6381
|
+
"docs": "Label text displayed as a placeholder when no value is selected,\nand floated above the trigger when a value is present.",
|
|
6382
|
+
"docsTags": [],
|
|
6383
|
+
"values": [
|
|
6384
|
+
{
|
|
6385
|
+
"type": "string"
|
|
6386
|
+
}
|
|
6387
|
+
],
|
|
6388
|
+
"optional": false,
|
|
6389
|
+
"required": true,
|
|
6390
|
+
"getter": false,
|
|
6391
|
+
"setter": false
|
|
6392
|
+
},
|
|
6393
|
+
{
|
|
6394
|
+
"name": "name",
|
|
6395
|
+
"type": "string | undefined",
|
|
6396
|
+
"complexType": {
|
|
6397
|
+
"original": "string",
|
|
6398
|
+
"resolved": "string | undefined",
|
|
6399
|
+
"references": {}
|
|
6400
|
+
},
|
|
6401
|
+
"mutable": false,
|
|
6402
|
+
"attr": "name",
|
|
6403
|
+
"reflectToAttr": false,
|
|
6404
|
+
"docs": "Name attribute passed to the native select for form submission.",
|
|
6405
|
+
"docsTags": [],
|
|
6406
|
+
"values": [
|
|
6407
|
+
{
|
|
6408
|
+
"type": "string"
|
|
6409
|
+
},
|
|
6410
|
+
{
|
|
6411
|
+
"type": "undefined"
|
|
6412
|
+
}
|
|
6413
|
+
],
|
|
6414
|
+
"optional": true,
|
|
6415
|
+
"required": false,
|
|
6416
|
+
"getter": false,
|
|
6417
|
+
"setter": false
|
|
6418
|
+
},
|
|
6419
|
+
{
|
|
6420
|
+
"name": "required",
|
|
6421
|
+
"type": "boolean",
|
|
6422
|
+
"complexType": {
|
|
6423
|
+
"original": "boolean",
|
|
6424
|
+
"resolved": "boolean",
|
|
6425
|
+
"references": {}
|
|
6426
|
+
},
|
|
6427
|
+
"mutable": false,
|
|
6428
|
+
"attr": "required",
|
|
6429
|
+
"reflectToAttr": true,
|
|
6430
|
+
"docs": "Whether a value is required.",
|
|
6431
|
+
"docsTags": [
|
|
6432
|
+
{
|
|
6433
|
+
"name": "default",
|
|
6434
|
+
"text": "false"
|
|
6435
|
+
}
|
|
6436
|
+
],
|
|
6437
|
+
"default": "false",
|
|
6438
|
+
"values": [
|
|
6439
|
+
{
|
|
6440
|
+
"type": "boolean"
|
|
6441
|
+
}
|
|
6442
|
+
],
|
|
6443
|
+
"optional": false,
|
|
6444
|
+
"required": false,
|
|
6445
|
+
"getter": false,
|
|
6446
|
+
"setter": false
|
|
6447
|
+
},
|
|
6448
|
+
{
|
|
6449
|
+
"name": "value",
|
|
6450
|
+
"type": "string | undefined",
|
|
6451
|
+
"complexType": {
|
|
6452
|
+
"original": "string",
|
|
6453
|
+
"resolved": "string | undefined",
|
|
6454
|
+
"references": {}
|
|
6455
|
+
},
|
|
6456
|
+
"mutable": true,
|
|
6457
|
+
"attr": "value",
|
|
6458
|
+
"reflectToAttr": false,
|
|
6459
|
+
"docs": "Currently selected value.",
|
|
6460
|
+
"docsTags": [],
|
|
6461
|
+
"values": [
|
|
6462
|
+
{
|
|
6463
|
+
"type": "string"
|
|
6464
|
+
},
|
|
6465
|
+
{
|
|
6466
|
+
"type": "undefined"
|
|
6467
|
+
}
|
|
6468
|
+
],
|
|
6469
|
+
"optional": true,
|
|
6470
|
+
"required": false,
|
|
6471
|
+
"getter": false,
|
|
6472
|
+
"setter": false
|
|
6473
|
+
}
|
|
6474
|
+
],
|
|
6475
|
+
"methods": [],
|
|
6476
|
+
"events": [
|
|
6477
|
+
{
|
|
6478
|
+
"event": "lmvzChange",
|
|
6479
|
+
"detail": "string",
|
|
6480
|
+
"bubbles": true,
|
|
6481
|
+
"complexType": {
|
|
6482
|
+
"original": "string",
|
|
6483
|
+
"resolved": "string",
|
|
6484
|
+
"references": {}
|
|
6485
|
+
},
|
|
6486
|
+
"cancelable": true,
|
|
6487
|
+
"composed": true,
|
|
6488
|
+
"docs": "Emitted when the user selects a new option. Detail contains the new value.",
|
|
6489
|
+
"docsTags": []
|
|
6490
|
+
}
|
|
6491
|
+
],
|
|
6492
|
+
"listeners": [],
|
|
6493
|
+
"styles": [],
|
|
6494
|
+
"slots": [
|
|
6495
|
+
{
|
|
6496
|
+
"name": "default",
|
|
6497
|
+
"docs": "Native `<option>` or `<optgroup>` elements."
|
|
6498
|
+
}
|
|
6499
|
+
],
|
|
6500
|
+
"parts": [],
|
|
6501
|
+
"states": [],
|
|
6502
|
+
"dependents": [],
|
|
6503
|
+
"dependencies": [],
|
|
6504
|
+
"dependencyGraph": {}
|
|
6505
|
+
},
|
|
6506
|
+
{
|
|
6507
|
+
"filePath": "src/components/lmvz-snackbar/lmvz-snackbar.tsx",
|
|
6508
|
+
"encapsulation": "shadow",
|
|
6509
|
+
"tag": "lmvz-snackbar",
|
|
6510
|
+
"readme": "# lmvz-snackbar\n\nBrief notification displayed at the bottom center of the screen with optional auto-dismiss. Use snackbars to communicate non-blocking confirmations, warnings, or errors to the user.\n\n## Status Semantics\n\nThe snackbar's `status` prop controls both the visual appearance and accessibility semantics:\n\n| Status | ARIA Role | aria-live | Semantic Meaning |\n|--------|-----------|-----------|------------------|\n| `success` | `status` | `polite` | Non-critical confirmation or successful action. Announced when convenient. |\n| `warning` | `status` | `polite` | Non-blocking warning that the user should be aware of. Announced when convenient. |\n| `error` | `alert` | `assertive` | Critical error requiring immediate attention. Announced with interruption. |\n\n## Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `status` | `'success' \\| 'warning' \\| 'error'` | `'success'` | Status variant controlling color, icon, and ARIA role/aria-live. |\n| `message` | `string` | `''` | Message text displayed in the snackbar. |\n| `duration` | `number \\| undefined` | `undefined` | Auto-dismiss timeout in milliseconds. `undefined` uses the per-status default (5000 ms for success/warning, 8000 ms for error). Set to `0` to disable auto-dismiss and require manual dismissal. |\n| `priority` | `'low' \\| 'normal' \\| 'high'` | `'normal'` | Priority level. When a snackbar is already visible, an incoming higher-priority call overrides it; lower-priority calls are silently swallowed with no queue. |\n| `showLeadingIcon` | `boolean` | `true` | Show the status-specific leading icon (info for success, warning triangle for warning, exclamation for error). |\n| `actionLabel` | `string \\| undefined` | `undefined` | Optional action button label. When set, an action button is rendered. |\n\n## Methods\n\n### `show() => Promise<void>`\n\nTriggers the entry animation. Used internally by the controller; may be called directly when using the snackbar as a declarative component.\n\n### `hide() => Promise<void>`\n\nTriggers the exit animation and waits for completion before resolving. The animation duration is 300 ms.\n\n## Events\n\n### `lmvzClose`\n\nFired when the snackbar is dismissed. The event detail includes the dismiss reason:\n\n```typescript\ntype lmvzClose = CustomEvent<{ reason: 'timeout' | 'manual' | 'action' | 'overridden' | 'swallowed' }>;\n```\n\n**Reason meanings:**\n- `'timeout'` — Auto-dismiss timer elapsed.\n- `'manual'` — Dismissed by calling the controller's `dismiss()` or the component's `hide()` method.\n- `'action'` — User clicked the action button.\n- `'overridden'` — A higher-priority snackbar call displaced this one.\n- `'swallowed'` — A lower-priority call was ignored because a higher-priority snackbar was already visible (controller only).\n\n## ARIA & Accessibility\n\n- The snackbar host element has a dynamic `role` that changes with the `status` prop: `role=\"status\"` for success/warning, `role=\"alert\"` for error.\n- `aria-live` is set to `\"polite\"` for success/warning (non-interrupting announcements) and `\"assertive\"` for error (interrupting announcements).\n- The leading status icon is marked `aria-hidden=\"true\"` because its information is redundant with the status prop and role semantics.\n- The optional action button uses its `actionLabel` text as its accessible name (via native button semantics).\n- The snackbar does not receive focus on appearance. Keyboard users can tab to the action button if present.\n\n## Motion & Reduced Motion\n\nThe snackbar slides up from the bottom with a fade-in on entry, and slides down with a fade-out on exit. Both animations use a duration of 200 ms.\n\nWhen `prefers-reduced-motion: reduce` is active, spatial motion (slide) is removed and replaced with a brief opacity-only fade (80 ms), providing a perceptual cue without distracting motion.\n\n## Color Contrast\n\nThe error variant (`status=\"error\"`) achieves a color contrast ratio of 4.5:1 (WCAG AA) between the error surface color and text. The success and warning variants also meet WCAG AA contrast requirements.\n\n## Examples\n\n### Imperative Usage with Controller\n\nMost applications use the snackbar via the imperative `SnackbarController` API. The controller manages a singleton host element and handles priority-based override logic automatically:\n\n```typescript\nimport { SnackbarController } from '@lmvz-ds/components';\n\n// Show a success notification\nSnackbarController.open({\n message: 'Your changes have been saved.',\n status: 'success',\n duration: 5000, // auto-dismiss after 5 seconds\n});\n\n// Show an error with an action\nconst handle = SnackbarController.open({\n message: 'Upload failed.',\n status: 'error',\n duration: 8000,\n actionLabel: 'Retry',\n onAction: () => {\n console.log('User clicked Retry');\n retryUpload();\n },\n});\n\n// Wait for dismissal (for any reason)\nhandle.closed.then(({ reason }) => {\n console.log(`Closed due to: ${reason}`);\n});\n\n// Manually dismiss\nhandle.dismiss();\n```\n\n### Priority Override\n\nThe controller enforces a single visible snackbar. Higher-priority calls override lower-priority ones:\n\n```typescript\n// High-priority error appears\nSnackbarController.open({\n message: 'Critical error',\n status: 'error',\n priority: 'high',\n});\n\n// Low-priority confirmation is silently swallowed\nconst handle = SnackbarController.open({\n message: 'Saved.',\n status: 'success',\n priority: 'low',\n});\n\nhandle.closed.then(({ reason }) => {\n console.log(reason); // 'swallowed'\n});\n```\n\n### Declarative Usage\n\nFor in-place rendering (e.g., in tests or special layouts), the snackbar can be declared in HTML and controlled via `show()`/`hide()` methods:\n\n```html\n<lmvz-snackbar\n message=\"Operation complete\"\n status=\"success\"\n show-leading-icon=\"true\"\n></lmvz-snackbar>\n```\n\n```typescript\nconst snackbar = document.querySelector('lmvz-snackbar');\nawait snackbar.show();\n// ... later\nawait snackbar.hide();\n```\n",
|
|
6511
|
+
"docs": "Brief notification displayed at the bottom center of the screen with optional auto-dismiss. Use snackbars to communicate non-blocking confirmations, warnings, or errors to the user.",
|
|
6512
|
+
"docsTags": [],
|
|
6513
|
+
"usage": {},
|
|
6514
|
+
"props": [
|
|
6515
|
+
{
|
|
6516
|
+
"name": "actionLabel",
|
|
6517
|
+
"type": "string | undefined",
|
|
6518
|
+
"complexType": {
|
|
6519
|
+
"original": "string",
|
|
6520
|
+
"resolved": "string | undefined",
|
|
6521
|
+
"references": {}
|
|
6522
|
+
},
|
|
6523
|
+
"mutable": true,
|
|
6524
|
+
"attr": "action-label",
|
|
6525
|
+
"reflectToAttr": false,
|
|
6526
|
+
"docs": "",
|
|
6527
|
+
"docsTags": [],
|
|
6528
|
+
"values": [
|
|
6529
|
+
{
|
|
6530
|
+
"type": "string"
|
|
6531
|
+
},
|
|
6532
|
+
{
|
|
6533
|
+
"type": "undefined"
|
|
6534
|
+
}
|
|
6535
|
+
],
|
|
6536
|
+
"optional": true,
|
|
6537
|
+
"required": false,
|
|
6538
|
+
"getter": false,
|
|
6539
|
+
"setter": false
|
|
6540
|
+
},
|
|
6541
|
+
{
|
|
6542
|
+
"name": "duration",
|
|
6543
|
+
"type": "number | undefined",
|
|
6544
|
+
"complexType": {
|
|
6545
|
+
"original": "number",
|
|
6546
|
+
"resolved": "number | undefined",
|
|
6547
|
+
"references": {}
|
|
6548
|
+
},
|
|
6549
|
+
"mutable": true,
|
|
6550
|
+
"attr": "duration",
|
|
6551
|
+
"reflectToAttr": false,
|
|
6552
|
+
"docs": "",
|
|
6553
|
+
"docsTags": [],
|
|
6554
|
+
"values": [
|
|
6555
|
+
{
|
|
6556
|
+
"type": "number"
|
|
6557
|
+
},
|
|
6558
|
+
{
|
|
6559
|
+
"type": "undefined"
|
|
6560
|
+
}
|
|
6561
|
+
],
|
|
6562
|
+
"optional": true,
|
|
6563
|
+
"required": false,
|
|
6564
|
+
"getter": false,
|
|
6565
|
+
"setter": false
|
|
6566
|
+
},
|
|
6567
|
+
{
|
|
6568
|
+
"name": "message",
|
|
6569
|
+
"type": "string",
|
|
6570
|
+
"complexType": {
|
|
6571
|
+
"original": "string",
|
|
6572
|
+
"resolved": "string",
|
|
6573
|
+
"references": {}
|
|
6574
|
+
},
|
|
6575
|
+
"mutable": true,
|
|
6576
|
+
"attr": "message",
|
|
6577
|
+
"reflectToAttr": false,
|
|
6578
|
+
"docs": "",
|
|
6579
|
+
"docsTags": [
|
|
6580
|
+
{
|
|
6581
|
+
"name": "default",
|
|
6582
|
+
"text": "''"
|
|
6583
|
+
}
|
|
6584
|
+
],
|
|
6585
|
+
"default": "''",
|
|
6586
|
+
"values": [
|
|
6587
|
+
{
|
|
6588
|
+
"type": "string"
|
|
6589
|
+
}
|
|
6590
|
+
],
|
|
6591
|
+
"optional": false,
|
|
6592
|
+
"required": false,
|
|
6593
|
+
"getter": false,
|
|
6594
|
+
"setter": false
|
|
6595
|
+
},
|
|
6596
|
+
{
|
|
6597
|
+
"name": "priority",
|
|
6598
|
+
"type": "\"high\" | \"low\" | \"normal\" | undefined",
|
|
6599
|
+
"complexType": {
|
|
6600
|
+
"original": "Snackbar.Priority",
|
|
6601
|
+
"resolved": "\"high\" | \"low\" | \"normal\" | undefined",
|
|
6602
|
+
"references": {
|
|
6603
|
+
"Snackbar": {
|
|
6604
|
+
"location": "import",
|
|
6605
|
+
"path": "../../api",
|
|
6606
|
+
"id": "src/api/index.d.ts::Snackbar",
|
|
6607
|
+
"referenceLocation": "Snackbar"
|
|
6608
|
+
}
|
|
6609
|
+
}
|
|
6610
|
+
},
|
|
6611
|
+
"mutable": true,
|
|
6612
|
+
"attr": "priority",
|
|
6613
|
+
"reflectToAttr": false,
|
|
6614
|
+
"docs": "",
|
|
6615
|
+
"docsTags": [
|
|
6616
|
+
{
|
|
6617
|
+
"name": "default",
|
|
6618
|
+
"text": "'normal'"
|
|
6619
|
+
}
|
|
6620
|
+
],
|
|
6621
|
+
"default": "'normal'",
|
|
6622
|
+
"values": [
|
|
6623
|
+
{
|
|
6624
|
+
"value": "high",
|
|
6625
|
+
"type": "string"
|
|
6626
|
+
},
|
|
6627
|
+
{
|
|
6628
|
+
"value": "low",
|
|
6629
|
+
"type": "string"
|
|
6630
|
+
},
|
|
6631
|
+
{
|
|
6632
|
+
"value": "normal",
|
|
6633
|
+
"type": "string"
|
|
6634
|
+
},
|
|
6635
|
+
{
|
|
6636
|
+
"type": "undefined"
|
|
6637
|
+
}
|
|
6638
|
+
],
|
|
6639
|
+
"optional": true,
|
|
6640
|
+
"required": false,
|
|
6641
|
+
"getter": false,
|
|
6642
|
+
"setter": false
|
|
6643
|
+
},
|
|
6644
|
+
{
|
|
6645
|
+
"name": "status",
|
|
6646
|
+
"type": "\"error\" | \"success\" | \"warning\"",
|
|
6647
|
+
"complexType": {
|
|
6648
|
+
"original": "Snackbar.Status",
|
|
6649
|
+
"resolved": "\"error\" | \"success\" | \"warning\"",
|
|
6650
|
+
"references": {
|
|
6651
|
+
"Snackbar": {
|
|
6652
|
+
"location": "import",
|
|
6653
|
+
"path": "../../api",
|
|
6654
|
+
"id": "src/api/index.d.ts::Snackbar",
|
|
6655
|
+
"referenceLocation": "Snackbar"
|
|
6656
|
+
}
|
|
6657
|
+
}
|
|
6658
|
+
},
|
|
6659
|
+
"mutable": true,
|
|
6660
|
+
"attr": "status",
|
|
6661
|
+
"reflectToAttr": true,
|
|
6662
|
+
"docs": "",
|
|
6663
|
+
"docsTags": [
|
|
6664
|
+
{
|
|
6665
|
+
"name": "default",
|
|
6666
|
+
"text": "'success'"
|
|
6667
|
+
}
|
|
6668
|
+
],
|
|
6669
|
+
"default": "'success'",
|
|
6670
|
+
"values": [
|
|
6671
|
+
{
|
|
6672
|
+
"value": "error",
|
|
6673
|
+
"type": "string"
|
|
6674
|
+
},
|
|
6675
|
+
{
|
|
6676
|
+
"value": "success",
|
|
6677
|
+
"type": "string"
|
|
6678
|
+
},
|
|
6679
|
+
{
|
|
6680
|
+
"value": "warning",
|
|
6681
|
+
"type": "string"
|
|
6682
|
+
}
|
|
6683
|
+
],
|
|
6684
|
+
"optional": false,
|
|
6685
|
+
"required": false,
|
|
6686
|
+
"getter": false,
|
|
6687
|
+
"setter": false
|
|
6688
|
+
}
|
|
6689
|
+
],
|
|
6690
|
+
"methods": [
|
|
6691
|
+
{
|
|
6692
|
+
"name": "hide",
|
|
6693
|
+
"returns": {
|
|
6694
|
+
"type": "Promise<void>",
|
|
6695
|
+
"docs": ""
|
|
6696
|
+
},
|
|
6697
|
+
"complexType": {
|
|
6698
|
+
"signature": "() => Promise<void>",
|
|
6699
|
+
"parameters": [],
|
|
6700
|
+
"references": {
|
|
6701
|
+
"Promise": {
|
|
6702
|
+
"location": "global",
|
|
6703
|
+
"id": "global::Promise"
|
|
6704
|
+
}
|
|
6705
|
+
},
|
|
6706
|
+
"return": "Promise<void>"
|
|
6707
|
+
},
|
|
6708
|
+
"signature": "hide() => Promise<void>",
|
|
6709
|
+
"parameters": [],
|
|
6710
|
+
"docs": "",
|
|
6711
|
+
"docsTags": []
|
|
6712
|
+
},
|
|
6713
|
+
{
|
|
6714
|
+
"name": "show",
|
|
6715
|
+
"returns": {
|
|
6716
|
+
"type": "Promise<void>",
|
|
6717
|
+
"docs": ""
|
|
6718
|
+
},
|
|
6719
|
+
"complexType": {
|
|
6720
|
+
"signature": "() => Promise<void>",
|
|
6721
|
+
"parameters": [],
|
|
6722
|
+
"references": {
|
|
6723
|
+
"Promise": {
|
|
6724
|
+
"location": "global",
|
|
6725
|
+
"id": "global::Promise"
|
|
6726
|
+
}
|
|
6727
|
+
},
|
|
6728
|
+
"return": "Promise<void>"
|
|
6729
|
+
},
|
|
6730
|
+
"signature": "show() => Promise<void>",
|
|
6731
|
+
"parameters": [],
|
|
6732
|
+
"docs": "",
|
|
6733
|
+
"docsTags": []
|
|
6734
|
+
}
|
|
6735
|
+
],
|
|
6736
|
+
"events": [
|
|
6737
|
+
{
|
|
6738
|
+
"event": "lmvzClose",
|
|
6739
|
+
"detail": "{ reason: \"timeout\" | \"manual\" | \"action\" | \"overridden\" | \"swallowed\"; }",
|
|
6740
|
+
"bubbles": true,
|
|
6741
|
+
"complexType": {
|
|
6742
|
+
"original": "{ reason: Snackbar.DismissReason }",
|
|
6743
|
+
"resolved": "{ reason: \"timeout\" | \"manual\" | \"action\" | \"overridden\" | \"swallowed\"; }",
|
|
6744
|
+
"references": {
|
|
6745
|
+
"Snackbar": {
|
|
6746
|
+
"location": "import",
|
|
6747
|
+
"path": "../../api",
|
|
6748
|
+
"id": "src/api/index.d.ts::Snackbar",
|
|
6749
|
+
"referenceLocation": "Snackbar"
|
|
6750
|
+
}
|
|
6751
|
+
}
|
|
6752
|
+
},
|
|
6753
|
+
"cancelable": false,
|
|
6754
|
+
"composed": true,
|
|
6755
|
+
"docs": "",
|
|
6756
|
+
"docsTags": []
|
|
6757
|
+
}
|
|
6758
|
+
],
|
|
6759
|
+
"listeners": [],
|
|
6760
|
+
"styles": [],
|
|
6761
|
+
"slots": [],
|
|
6762
|
+
"parts": [],
|
|
6763
|
+
"states": [],
|
|
6764
|
+
"dependents": [],
|
|
6765
|
+
"dependencies": [
|
|
6766
|
+
"lmvz-icon",
|
|
6767
|
+
"lmvz-button"
|
|
6768
|
+
],
|
|
6769
|
+
"dependencyGraph": {
|
|
6770
|
+
"lmvz-snackbar": [
|
|
6771
|
+
"lmvz-icon",
|
|
6772
|
+
"lmvz-button"
|
|
6773
|
+
]
|
|
6774
|
+
}
|
|
6775
|
+
},
|
|
6776
|
+
{
|
|
6777
|
+
"filePath": "src/components/lmvz-toggle/lmvz-toggle.tsx",
|
|
6778
|
+
"encapsulation": "scoped",
|
|
6779
|
+
"tag": "lmvz-toggle",
|
|
6780
|
+
"readme": "# lmvz-toggle\n\n\n",
|
|
6781
|
+
"docs": "Toggle (switch) component. Wraps a native `<input type=\"checkbox\" role=\"switch\">` for full keyboard and form support.",
|
|
6782
|
+
"docsTags": [
|
|
6783
|
+
{
|
|
6784
|
+
"name": "example",
|
|
6785
|
+
"text": "```html\n<lmvz-toggle label=\"Enable notifications\" name=\"notifications\" required></lmvz-toggle>\n```"
|
|
6786
|
+
}
|
|
6787
|
+
],
|
|
6788
|
+
"usage": {},
|
|
6789
|
+
"props": [
|
|
6790
|
+
{
|
|
6791
|
+
"name": "checked",
|
|
6792
|
+
"type": "boolean",
|
|
6793
|
+
"complexType": {
|
|
6794
|
+
"original": "boolean",
|
|
6795
|
+
"resolved": "boolean",
|
|
6796
|
+
"references": {}
|
|
6797
|
+
},
|
|
6798
|
+
"mutable": true,
|
|
6799
|
+
"attr": "checked",
|
|
6800
|
+
"reflectToAttr": true,
|
|
6801
|
+
"docs": "Whether the toggle is checked",
|
|
6802
|
+
"docsTags": [
|
|
6803
|
+
{
|
|
6804
|
+
"name": "default",
|
|
6805
|
+
"text": "false"
|
|
6806
|
+
}
|
|
6807
|
+
],
|
|
6808
|
+
"default": "false",
|
|
6809
|
+
"values": [
|
|
6810
|
+
{
|
|
6811
|
+
"type": "boolean"
|
|
6812
|
+
}
|
|
6813
|
+
],
|
|
6814
|
+
"optional": false,
|
|
6815
|
+
"required": false,
|
|
6816
|
+
"getter": false,
|
|
6817
|
+
"setter": false
|
|
6818
|
+
},
|
|
6819
|
+
{
|
|
6820
|
+
"name": "disabled",
|
|
6821
|
+
"type": "boolean",
|
|
6822
|
+
"complexType": {
|
|
6823
|
+
"original": "boolean",
|
|
6824
|
+
"resolved": "boolean",
|
|
6825
|
+
"references": {}
|
|
6826
|
+
},
|
|
6827
|
+
"mutable": false,
|
|
6828
|
+
"attr": "disabled",
|
|
6829
|
+
"reflectToAttr": true,
|
|
6830
|
+
"docs": "Whether the toggle is disabled",
|
|
6831
|
+
"docsTags": [
|
|
6832
|
+
{
|
|
6833
|
+
"name": "default",
|
|
6834
|
+
"text": "false"
|
|
6835
|
+
}
|
|
6836
|
+
],
|
|
6837
|
+
"default": "false",
|
|
6838
|
+
"values": [
|
|
6839
|
+
{
|
|
6840
|
+
"type": "boolean"
|
|
6841
|
+
}
|
|
6842
|
+
],
|
|
6843
|
+
"optional": false,
|
|
6844
|
+
"required": false,
|
|
6845
|
+
"getter": false,
|
|
6846
|
+
"setter": false
|
|
6847
|
+
},
|
|
6848
|
+
{
|
|
6849
|
+
"name": "form",
|
|
6850
|
+
"type": "string | undefined",
|
|
6851
|
+
"complexType": {
|
|
6852
|
+
"original": "string",
|
|
6853
|
+
"resolved": "string | undefined",
|
|
6854
|
+
"references": {}
|
|
6855
|
+
},
|
|
6856
|
+
"mutable": false,
|
|
6857
|
+
"attr": "form",
|
|
6858
|
+
"reflectToAttr": false,
|
|
6859
|
+
"docs": "Form id to associate with",
|
|
6860
|
+
"docsTags": [],
|
|
6861
|
+
"values": [
|
|
6862
|
+
{
|
|
6863
|
+
"type": "string"
|
|
6864
|
+
},
|
|
6865
|
+
{
|
|
6866
|
+
"type": "undefined"
|
|
6867
|
+
}
|
|
6868
|
+
],
|
|
6869
|
+
"optional": true,
|
|
6870
|
+
"required": false,
|
|
6871
|
+
"getter": false,
|
|
6872
|
+
"setter": false
|
|
6873
|
+
},
|
|
6874
|
+
{
|
|
6875
|
+
"name": "label",
|
|
6876
|
+
"type": "string",
|
|
6877
|
+
"complexType": {
|
|
6878
|
+
"original": "string",
|
|
6879
|
+
"resolved": "string",
|
|
6880
|
+
"references": {}
|
|
6881
|
+
},
|
|
6882
|
+
"mutable": false,
|
|
6883
|
+
"attr": "label",
|
|
6884
|
+
"reflectToAttr": false,
|
|
6885
|
+
"docs": "Label text for the toggle",
|
|
6886
|
+
"docsTags": [],
|
|
6887
|
+
"values": [
|
|
6888
|
+
{
|
|
6889
|
+
"type": "string"
|
|
6890
|
+
}
|
|
6891
|
+
],
|
|
6892
|
+
"optional": false,
|
|
6893
|
+
"required": true,
|
|
6894
|
+
"getter": false,
|
|
6895
|
+
"setter": false
|
|
6896
|
+
},
|
|
6897
|
+
{
|
|
6898
|
+
"name": "name",
|
|
6899
|
+
"type": "string | undefined",
|
|
6900
|
+
"complexType": {
|
|
6901
|
+
"original": "string",
|
|
6902
|
+
"resolved": "string | undefined",
|
|
6903
|
+
"references": {}
|
|
6904
|
+
},
|
|
6905
|
+
"mutable": false,
|
|
6906
|
+
"attr": "name",
|
|
6907
|
+
"reflectToAttr": false,
|
|
6908
|
+
"docs": "Name attribute for form integration",
|
|
6909
|
+
"docsTags": [],
|
|
6910
|
+
"values": [
|
|
6911
|
+
{
|
|
6912
|
+
"type": "string"
|
|
6913
|
+
},
|
|
6914
|
+
{
|
|
6915
|
+
"type": "undefined"
|
|
6916
|
+
}
|
|
6917
|
+
],
|
|
6918
|
+
"optional": true,
|
|
6919
|
+
"required": false,
|
|
6920
|
+
"getter": false,
|
|
6921
|
+
"setter": false
|
|
6922
|
+
},
|
|
6923
|
+
{
|
|
6924
|
+
"name": "required",
|
|
6925
|
+
"type": "boolean",
|
|
6926
|
+
"complexType": {
|
|
6927
|
+
"original": "boolean",
|
|
6928
|
+
"resolved": "boolean",
|
|
6929
|
+
"references": {}
|
|
6930
|
+
},
|
|
6931
|
+
"mutable": false,
|
|
6932
|
+
"attr": "required",
|
|
6933
|
+
"reflectToAttr": true,
|
|
6934
|
+
"docs": "Whether the toggle is required",
|
|
6935
|
+
"docsTags": [
|
|
6936
|
+
{
|
|
6937
|
+
"name": "default",
|
|
6938
|
+
"text": "false"
|
|
6939
|
+
}
|
|
6940
|
+
],
|
|
6941
|
+
"default": "false",
|
|
6942
|
+
"values": [
|
|
6943
|
+
{
|
|
6944
|
+
"type": "boolean"
|
|
6945
|
+
}
|
|
6946
|
+
],
|
|
6947
|
+
"optional": false,
|
|
6948
|
+
"required": false,
|
|
6949
|
+
"getter": false,
|
|
6950
|
+
"setter": false
|
|
6951
|
+
},
|
|
6952
|
+
{
|
|
6953
|
+
"name": "value",
|
|
6954
|
+
"type": "string",
|
|
6955
|
+
"complexType": {
|
|
6956
|
+
"original": "string",
|
|
6957
|
+
"resolved": "string",
|
|
6958
|
+
"references": {}
|
|
6959
|
+
},
|
|
6960
|
+
"mutable": false,
|
|
6961
|
+
"attr": "value",
|
|
6962
|
+
"reflectToAttr": false,
|
|
6963
|
+
"docs": "Value submitted with the form when checked",
|
|
6964
|
+
"docsTags": [
|
|
6965
|
+
{
|
|
6966
|
+
"name": "default",
|
|
6967
|
+
"text": "'on'"
|
|
6968
|
+
}
|
|
6969
|
+
],
|
|
6970
|
+
"default": "'on'",
|
|
6971
|
+
"values": [
|
|
6972
|
+
{
|
|
6973
|
+
"type": "string"
|
|
6974
|
+
}
|
|
6975
|
+
],
|
|
6976
|
+
"optional": false,
|
|
6977
|
+
"required": false,
|
|
6978
|
+
"getter": false,
|
|
6979
|
+
"setter": false
|
|
6980
|
+
}
|
|
6981
|
+
],
|
|
6982
|
+
"methods": [
|
|
6983
|
+
{
|
|
6984
|
+
"name": "blurToggle",
|
|
6985
|
+
"returns": {
|
|
6986
|
+
"type": "Promise<void>",
|
|
6987
|
+
"docs": ""
|
|
6988
|
+
},
|
|
6989
|
+
"complexType": {
|
|
6990
|
+
"signature": "() => Promise<void>",
|
|
6991
|
+
"parameters": [],
|
|
6992
|
+
"references": {
|
|
6993
|
+
"Promise": {
|
|
6994
|
+
"location": "global",
|
|
6995
|
+
"id": "global::Promise"
|
|
6996
|
+
}
|
|
6997
|
+
},
|
|
6998
|
+
"return": "Promise<void>"
|
|
6999
|
+
},
|
|
7000
|
+
"signature": "blurToggle() => Promise<void>",
|
|
7001
|
+
"parameters": [],
|
|
7002
|
+
"docs": "Removes focus from the toggle",
|
|
7003
|
+
"docsTags": []
|
|
7004
|
+
},
|
|
7005
|
+
{
|
|
7006
|
+
"name": "checkValidity",
|
|
7007
|
+
"returns": {
|
|
7008
|
+
"type": "Promise<boolean>",
|
|
7009
|
+
"docs": ""
|
|
7010
|
+
},
|
|
7011
|
+
"complexType": {
|
|
7012
|
+
"signature": "() => Promise<boolean>",
|
|
7013
|
+
"parameters": [],
|
|
7014
|
+
"references": {
|
|
7015
|
+
"Promise": {
|
|
7016
|
+
"location": "global",
|
|
7017
|
+
"id": "global::Promise"
|
|
7018
|
+
}
|
|
7019
|
+
},
|
|
7020
|
+
"return": "Promise<boolean>"
|
|
7021
|
+
},
|
|
7022
|
+
"signature": "checkValidity() => Promise<boolean>",
|
|
7023
|
+
"parameters": [],
|
|
7024
|
+
"docs": "Returns whether the toggle satisfies its validation constraints",
|
|
7025
|
+
"docsTags": []
|
|
7026
|
+
},
|
|
7027
|
+
{
|
|
7028
|
+
"name": "focusToggle",
|
|
7029
|
+
"returns": {
|
|
7030
|
+
"type": "Promise<void>",
|
|
7031
|
+
"docs": ""
|
|
7032
|
+
},
|
|
7033
|
+
"complexType": {
|
|
7034
|
+
"signature": "() => Promise<void>",
|
|
7035
|
+
"parameters": [],
|
|
7036
|
+
"references": {
|
|
7037
|
+
"Promise": {
|
|
7038
|
+
"location": "global",
|
|
7039
|
+
"id": "global::Promise"
|
|
7040
|
+
}
|
|
7041
|
+
},
|
|
7042
|
+
"return": "Promise<void>"
|
|
7043
|
+
},
|
|
7044
|
+
"signature": "focusToggle() => Promise<void>",
|
|
6363
7045
|
"parameters": [],
|
|
6364
7046
|
"docs": "Sets focus on the toggle",
|
|
6365
7047
|
"docsTags": []
|
|
@@ -6469,6 +7151,11 @@
|
|
|
6469
7151
|
"declaration": "any",
|
|
6470
7152
|
"docstring": "",
|
|
6471
7153
|
"path": "src/api/index.d.ts"
|
|
7154
|
+
},
|
|
7155
|
+
"src/api/index.d.ts::Snackbar": {
|
|
7156
|
+
"declaration": "any",
|
|
7157
|
+
"docstring": "",
|
|
7158
|
+
"path": "src/api/index.d.ts"
|
|
6472
7159
|
}
|
|
6473
7160
|
}
|
|
6474
7161
|
}
|