@lmvz-ds/components 0.27.0 → 0.28.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.
Files changed (150) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/{aria-validation-controller-BMV2tv9-.js → aria-validation-controller-Z4TtOp2l.js} +1 -1
  3. package/cjs/close-sm-CATLoxxd.js +5 -0
  4. package/cjs/{ds.constants-8fh6ItAF.js → ds.constants-CN0zFjB7.js} +4 -0
  5. package/cjs/{index-BCFBLj0e.js → index-TGsVZNDP.js} +26 -2
  6. package/cjs/index.cjs.js +3 -1
  7. package/cjs/lmvz-action.cjs.entry.js +1 -1
  8. package/cjs/lmvz-button-group.cjs.entry.js +1 -1
  9. package/cjs/lmvz-button_2.cjs.entry.js +2 -2
  10. package/cjs/lmvz-card.cjs.entry.js +1 -1
  11. package/cjs/lmvz-checkbox.cjs.entry.js +2 -2
  12. package/cjs/lmvz-chip.cjs.entry.js +3 -3
  13. package/cjs/lmvz-components.cjs.js +2 -2
  14. package/cjs/lmvz-header_2.cjs.entry.js +2 -2
  15. package/cjs/lmvz-input.cjs.entry.js +6 -5
  16. package/cjs/lmvz-menuitem.cjs.entry.js +2 -2
  17. package/cjs/lmvz-message.cjs.entry.js +78 -0
  18. package/cjs/lmvz-modal.cjs.entry.js +5 -6
  19. package/cjs/lmvz-radio.cjs.entry.js +3 -3
  20. package/cjs/lmvz-select.cjs.entry.js +4 -4
  21. package/cjs/lmvz-snackbar.cjs.entry.js +5 -8
  22. package/cjs/lmvz-spinner.cjs.entry.js +20 -0
  23. package/cjs/lmvz-tab.cjs.entry.js +2 -2
  24. package/cjs/lmvz-tabs.cjs.entry.js +2 -2
  25. package/cjs/lmvz-toggle.cjs.entry.js +3 -3
  26. package/cjs/loader.cjs.js +2 -2
  27. package/cjs/warning-WEX_ABWL.js +8 -0
  28. package/collection/api/ds.constants.js +2 -0
  29. package/collection/collection-manifest.json +2 -0
  30. package/collection/components/lmvz-input/lmvz-input.css +40 -25
  31. package/collection/components/lmvz-input/lmvz-input.js +33 -2
  32. package/collection/components/lmvz-message/lmvz-message.css +50 -0
  33. package/collection/components/lmvz-message/lmvz-message.js +240 -0
  34. package/collection/components/lmvz-message/public.js +1 -0
  35. package/collection/components/lmvz-modal/lmvz-modal.js +1 -1
  36. package/collection/components/lmvz-radio/lmvz-radio.js +1 -1
  37. package/collection/components/lmvz-select/lmvz-select.css +2 -4
  38. package/collection/components/lmvz-select/lmvz-select.js +1 -1
  39. package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
  40. package/collection/components/lmvz-spinner/lmvz-spinner.css +40 -0
  41. package/collection/components/lmvz-spinner/lmvz-spinner.js +64 -0
  42. package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
  43. package/collection/components/lmvz-tabs/lmvz-tabs.js +1 -1
  44. package/collection/components/lmvz-toggle/lmvz-toggle.js +1 -1
  45. package/collection/index.js +3 -2
  46. package/collection/integration/header-integration/header-integration.js +1 -1
  47. package/components/index.d.ts +4 -0
  48. package/components/index.d.ts.bak +4 -0
  49. package/components/index.js +1 -1
  50. package/components/lmvz-action.js +1 -1
  51. package/components/lmvz-button-group.js +1 -1
  52. package/components/lmvz-button.js +1 -1
  53. package/components/lmvz-card.js +1 -1
  54. package/components/lmvz-checkbox.js +1 -1
  55. package/components/lmvz-chip.js +1 -1
  56. package/components/lmvz-header.js +1 -1
  57. package/components/lmvz-icon.js +1 -1
  58. package/components/lmvz-input.js +1 -1
  59. package/components/lmvz-menuitem.js +1 -1
  60. package/components/lmvz-message.d.ts +11 -0
  61. package/components/lmvz-message.d.ts.bak +11 -0
  62. package/components/lmvz-message.js +1 -0
  63. package/components/lmvz-modal.js +1 -1
  64. package/components/lmvz-radio.js +1 -1
  65. package/components/lmvz-select.js +1 -1
  66. package/components/lmvz-snackbar.js +1 -1
  67. package/components/lmvz-spinner.d.ts +11 -0
  68. package/components/lmvz-spinner.d.ts.bak +11 -0
  69. package/components/lmvz-spinner.js +1 -0
  70. package/components/lmvz-tab.js +1 -1
  71. package/components/lmvz-tabs.js +1 -1
  72. package/components/lmvz-toggle.js +1 -1
  73. package/components/p-BSV3KDWl.js +1 -0
  74. package/components/{p-2VdcUIrr.js → p-C0f2nNPZ.js} +1 -1
  75. package/components/{p-BJEQw1Sz.js → p-C8znmF2h.js} +1 -1
  76. package/components/{p-DjvbwRyl.js → p-CXakymyP.js} +1 -1
  77. package/components/{p-0P2Wb3pE.js → p-DAMVH-31.js} +1 -1
  78. package/components/p-DGg7OzDl.js +1 -0
  79. package/components/{p-Cs7RCOHZ.js → p-DGlgVBPj.js} +1 -1
  80. package/components/p-DsT_K3_I.js +1 -0
  81. package/esm/{aria-validation-controller-D-KO0Asb.js → aria-validation-controller-BnyUKeJ6.js} +1 -1
  82. package/esm/close-sm-BSV3KDWl.js +3 -0
  83. package/esm/{ds.constants-BOOwq5dE.js → ds.constants-BTa7u4To.js} +3 -1
  84. package/esm/{index-CKYszC64.js → index-BPeerEwm.js} +26 -2
  85. package/esm/index.js +1 -1
  86. package/esm/lmvz-action.entry.js +1 -1
  87. package/esm/lmvz-button-group.entry.js +1 -1
  88. package/esm/lmvz-button_2.entry.js +2 -2
  89. package/esm/lmvz-card.entry.js +1 -1
  90. package/esm/lmvz-checkbox.entry.js +2 -2
  91. package/esm/lmvz-chip.entry.js +3 -3
  92. package/esm/lmvz-components.js +3 -3
  93. package/esm/lmvz-header_2.entry.js +2 -2
  94. package/esm/lmvz-input.entry.js +6 -5
  95. package/esm/lmvz-menuitem.entry.js +2 -2
  96. package/esm/lmvz-message.entry.js +76 -0
  97. package/esm/lmvz-modal.entry.js +4 -5
  98. package/esm/lmvz-radio.entry.js +3 -3
  99. package/esm/lmvz-select.entry.js +4 -4
  100. package/esm/lmvz-snackbar.entry.js +3 -6
  101. package/esm/lmvz-spinner.entry.js +18 -0
  102. package/esm/lmvz-tab.entry.js +2 -2
  103. package/esm/lmvz-tabs.entry.js +2 -2
  104. package/esm/lmvz-toggle.entry.js +3 -3
  105. package/esm/loader.js +3 -3
  106. package/esm/warning-DsT_K3_I.js +5 -0
  107. package/hydrate/index.js +155 -18
  108. package/hydrate/index.mjs +155 -18
  109. package/lmvz-components/index.esm.js +1 -1
  110. package/lmvz-components/lmvz-components.esm.js +1 -1
  111. package/lmvz-components/{p-bd23eab3.entry.js → p-02e8e45a.entry.js} +1 -1
  112. package/lmvz-components/{p-c6228cee.entry.js → p-3b3e532f.entry.js} +1 -1
  113. package/lmvz-components/p-44fea470.entry.js +1 -0
  114. package/lmvz-components/p-45c3ccb6.entry.js +1 -0
  115. package/lmvz-components/{p-758dbb82.entry.js → p-4dc44520.entry.js} +1 -1
  116. package/lmvz-components/p-5c951888.entry.js +1 -0
  117. package/lmvz-components/{p-7b15cdce.entry.js → p-6a1c3088.entry.js} +1 -1
  118. package/lmvz-components/{p-bb46a884.entry.js → p-80c6ec27.entry.js} +1 -1
  119. package/lmvz-components/p-84edbe53.entry.js +1 -0
  120. package/lmvz-components/p-85b0b718.entry.js +1 -0
  121. package/lmvz-components/{p-43b463bf.entry.js → p-877d0f3e.entry.js} +1 -1
  122. package/lmvz-components/p-8fc25ee2.entry.js +1 -0
  123. package/lmvz-components/{p-8874ff19.entry.js → p-98e3e85a.entry.js} +1 -1
  124. package/lmvz-components/p-BPeerEwm.js +2 -0
  125. package/lmvz-components/p-BSV3KDWl.js +1 -0
  126. package/lmvz-components/p-BTa7u4To.js +1 -0
  127. package/lmvz-components/{p-hRb38wX6.js → p-CPOia2kT.js} +1 -1
  128. package/lmvz-components/p-DsT_K3_I.js +1 -0
  129. package/lmvz-components/{p-25f045b2.entry.js → p-a4077c9f.entry.js} +1 -1
  130. package/lmvz-components/{p-a5c921dc.entry.js → p-d53f8afe.entry.js} +1 -1
  131. package/lmvz-components/{p-6de9981f.entry.js → p-e3ce44a3.entry.js} +1 -1
  132. package/lmvz-components/{p-6484fbc6.entry.js → p-e672c0fa.entry.js} +1 -1
  133. package/lmvz-components/p-fdb8de66.entry.js +1 -0
  134. package/manifest.json +396 -2
  135. package/package.json +9 -1
  136. package/types/api/ds.constants.d.ts +6 -0
  137. package/types/components/lmvz-input/lmvz-input.d.ts +1 -0
  138. package/types/components/lmvz-message/lmvz-message.d.ts +20 -0
  139. package/types/components/lmvz-message/public.d.ts +1 -0
  140. package/types/components/lmvz-spinner/lmvz-spinner.d.ts +5 -0
  141. package/types/components.d.ts +119 -0
  142. package/types/index.d.ts +3 -2
  143. package/components/p-c7OzBK8f.js +0 -1
  144. package/lmvz-components/p-0a37e0f2.entry.js +0 -1
  145. package/lmvz-components/p-4bd71a3c.entry.js +0 -1
  146. package/lmvz-components/p-6988c3ea.entry.js +0 -1
  147. package/lmvz-components/p-BOOwq5dE.js +0 -1
  148. package/lmvz-components/p-CKYszC64.js +0 -2
  149. package/lmvz-components/p-da16ff58.entry.js +0 -1
  150. package/lmvz-components/p-fe607f10.entry.js +0 -1
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-06-11T12:19:37",
2
+ "timestamp": "2026-06-15T08:54:54",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.43.5",
@@ -452,11 +452,15 @@
452
452
  ],
453
453
  "states": [],
454
454
  "dependents": [
455
+ "lmvz-message",
455
456
  "lmvz-modal",
456
457
  "lmvz-snackbar"
457
458
  ],
458
459
  "dependencies": [],
459
460
  "dependencyGraph": {
461
+ "lmvz-message": [
462
+ "lmvz-button"
463
+ ],
460
464
  "lmvz-modal": [
461
465
  "lmvz-button"
462
466
  ],
@@ -1582,11 +1586,15 @@
1582
1586
  "parts": [],
1583
1587
  "states": [],
1584
1588
  "dependents": [
1589
+ "lmvz-message",
1585
1590
  "lmvz-modal",
1586
1591
  "lmvz-snackbar"
1587
1592
  ],
1588
1593
  "dependencies": [],
1589
1594
  "dependencyGraph": {
1595
+ "lmvz-message": [
1596
+ "lmvz-icon"
1597
+ ],
1590
1598
  "lmvz-modal": [
1591
1599
  "lmvz-icon"
1592
1600
  ],
@@ -1599,7 +1607,7 @@
1599
1607
  "filePath": "src/components/lmvz-input/lmvz-input.tsx",
1600
1608
  "encapsulation": "scoped",
1601
1609
  "tag": "lmvz-input",
1602
- "readme": "# lmvz-input\n\n\n",
1610
+ "readme": "# lmvz-input\n\n## Size Variants\n\nThe `size` prop controls the input's height, padding, and associated typography. Set `size` to one of `'sm'`, `'md'`, or `'lg'`. The default is `'md'`.\n\n| Size | Height | Notes |\n|------|--------|-------|\n| `sm` | ~36px | Compact variant with reduced padding |\n| `md` | ~44px | Default; balanced spacing and readability |\n| `lg` | ~48px | Expanded variant with generous padding |\n\nHeights are fluid and derive from design tokens; exact pixel values depend on user font size settings.\n",
1603
1611
  "docs": "Input component with floating label, (form) validation, and slotted content support.",
1604
1612
  "docsTags": [
1605
1613
  {
@@ -5276,6 +5284,51 @@
5276
5284
  "getter": false,
5277
5285
  "setter": false
5278
5286
  },
5287
+ {
5288
+ "name": "size",
5289
+ "type": "\"lg\" | \"md\" | \"sm\"",
5290
+ "complexType": {
5291
+ "original": "Input.Size",
5292
+ "resolved": "\"lg\" | \"md\" | \"sm\"",
5293
+ "references": {
5294
+ "Input": {
5295
+ "location": "import",
5296
+ "path": "../../api",
5297
+ "id": "src/api/index.d.ts::Input",
5298
+ "referenceLocation": "Input"
5299
+ }
5300
+ }
5301
+ },
5302
+ "mutable": false,
5303
+ "attr": "size",
5304
+ "reflectToAttr": true,
5305
+ "docs": "Size variant of the input",
5306
+ "docsTags": [
5307
+ {
5308
+ "name": "default",
5309
+ "text": "'md'"
5310
+ }
5311
+ ],
5312
+ "default": "'md'",
5313
+ "values": [
5314
+ {
5315
+ "value": "lg",
5316
+ "type": "string"
5317
+ },
5318
+ {
5319
+ "value": "md",
5320
+ "type": "string"
5321
+ },
5322
+ {
5323
+ "value": "sm",
5324
+ "type": "string"
5325
+ }
5326
+ ],
5327
+ "optional": false,
5328
+ "required": false,
5329
+ "getter": false,
5330
+ "setter": false
5331
+ },
5279
5332
  {
5280
5333
  "name": "spellcheck",
5281
5334
  "type": "boolean | undefined",
@@ -5732,6 +5785,256 @@
5732
5785
  "dependencies": [],
5733
5786
  "dependencyGraph": {}
5734
5787
  },
5788
+ {
5789
+ "filePath": "src/components/lmvz-message/lmvz-message.tsx",
5790
+ "encapsulation": "shadow",
5791
+ "tag": "lmvz-message",
5792
+ "readme": "# lmvz-message\n\nA static inline message block that displays contextual information to the user. Use messages to present non-blocking feedback, warnings, or informational content within the page flow (distinct from dismissable notifications like snackbars or toast messages).\n\n**Design source:** [Figma component node 11010:2344](https://www.figma.com/design/...)\n\n## Variant Scope\n\nThe message component currently supports `neutral` and `warning` type variants. The following variants are deferred to O1:\n\n- `success` — requires additional design specification for success-specific color and icon semantics\n- `error` — requires accessibility review of assertive live-region behavior in inline context\n- `neutral-grey` — requires token alignment and visual distinction guidelines relative to `neutral`\n\n## Type Semantics and Accessibility\n\nThe message's `type` prop controls visual appearance and can influence accessibility semantics:\n\n| Type | Default Icon | Color Token | Notes |\n|------|--------------|-------------|-------|\n| `neutral` | Info icon | `color-status-active` | Informational message. Note: The token name does not semantically align with \"neutral\"; this dissonance reflects current design token constraints and may be reconsidered in future iterations. |\n| `warning` | Warning icon | `color-status-warning` | Warning message requiring user attention. |\n\n## ARIA and Accessibility\n\n- The message host element has a dynamic `role` that changes with the `live` prop: `role=\"note\"` by default (non-live), `role=\"status\"` when `live=\"polite\"`, and `role=\"alert\"` when `live=\"assertive\"`.\n- The `live` prop is opt-in. When set, it controls live-region semantics through implicit role semantics: `live=\"polite\"` provides non-blocking announcements via `role=\"status\"`, `live=\"assertive\"` provides interrupting announcements via `role=\"alert\"`. The default `live=\"off\"` sets `role=\"note\"`, rendering the message as static content without live-region semantics.\n- The leading icon is marked `aria-hidden=\"true\"` because its information is redundant with the visual type indicator and color coding.\n- When `dismissible=\"true\"`, the dismiss button's accessible name is set via the `closeLabel` prop (default: `'Schliessen'`). Provide an appropriate, localized close label to ensure keyboard and screen-reader users can identify the button's purpose.\n- The optional action button uses its `actionLabel` text as its accessible name via native button semantics.\n\n## Content and Slots\n\nThe message component uses a **default slot** to accept inline content. Only inline-level HTML elements are permitted as direct slot children (e.g. `<strong>`, `<em>`, `<a>`, `<span>`, `<code>`). Block-level elements (`<div>`, `<p>`, `<h1>`–`<h6>`, etc.) are not allowed.\n\nWhen `@lmvz-ds/aria-validation` is enabled (development only), the component emits a `console.warn` for each block-level element tag encountered in the slot. This validation runs per render pass and does not fire in production builds.\n\n## Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `type` | `'neutral' \\| 'warning'` | `'neutral'` | Message type controlling icon, color, and semantics. |\n| `live` | `'off' \\| 'polite' \\| 'assertive'` | `'off'` | Controls live-region semantics via implicit roles: `'off'` sets `role=\"note\"` (static content), `'polite'` sets `role=\"status\"` (polite live region), `'assertive'` sets `role=\"alert\"` (assertive live region). |\n| `leadingIcon` | `boolean` | `true` | Show the type-specific leading icon (info for neutral, warning triangle for warning). |\n| `dismissible` | `boolean` | `false` | Show the dismiss button. When `dismissible=\"true\"`, the `closeLabel` prop must be set to a meaningful, localized label. |\n| `closeLabel` | `string` | `'Schliessen'` | Accessible label for the dismiss button. Required and meaningful when `dismissible=\"true\"`. |\n| `actionLabel` | `string \\| undefined` | `undefined` | Optional action button label. When set, an action button is rendered. |\n\n## Events\n\n| Event | Type | Fired When |\n|-------|------|-----------|\n| `lmvzDismiss` | `CustomEvent<void>` | The user clicks the dismiss button (only emitted when `dismissible=\"true\"`). |\n| `lmvzAction` | `CustomEvent<void>` | The user clicks the action button (only emitted when `actionLabel` is set). |\n\n## Examples\n\n### Basic Neutral Message\n\n```html\n<lmvz-message type=\"neutral\" leadingIcon=\"true\">\n This is an informational message.\n</lmvz-message>\n```\n\n### Dismissible Warning\n\n```html\n<lmvz-message type=\"warning\" dismissible=\"true\" closeLabel=\"Dismiss\">\n Please review the following before proceeding.\n</lmvz-message>\n```\n\n```typescript\nconst message = document.querySelector('lmvz-message');\nmessage.addEventListener('lmvzDismiss', () => {\n console.log('Message dismissed');\n});\n```\n\n### Message with Action\n\n```html\n<lmvz-message type=\"neutral\" actionLabel=\"Extend\">\n Your session is about to expire.\n</lmvz-message>\n```\n\n```typescript\nconst message = document.querySelector('lmvz-message');\nmessage.addEventListener('lmvzAction', () => {\n console.log('User requested action');\n});\n```\n\n### Message with Inline Content\n\n```html\n<lmvz-message type=\"neutral\">\n Please visit <a href=\"/help\">our help page</a> for more information.\n</lmvz-message>\n```\n\nOnly inline elements like `<a>`, `<strong>`, and `<em>` are permitted in the slot. Block-level elements are not allowed.\n\n### Live Region (Screen Reader Announcement)\n\n```html\n<lmvz-message type=\"warning\" live=\"polite\">\n A warning has been detected.\n</lmvz-message>\n```\n\nWhen `live` is set to `polite` or `assertive`, the message is announced to screen readers at the appropriate politeness level.\n",
5793
+ "docs": "A static inline message block that displays contextual information to the user. Use messages to present non-blocking feedback, warnings, or informational content within the page flow (distinct from dismissable notifications like snackbars or toast messages).\n\n**Design source:** [Figma component node 11010:2344](https://www.figma.com/design/...)",
5794
+ "docsTags": [],
5795
+ "usage": {},
5796
+ "props": [
5797
+ {
5798
+ "name": "actionLabel",
5799
+ "type": "string | undefined",
5800
+ "complexType": {
5801
+ "original": "string",
5802
+ "resolved": "string | undefined",
5803
+ "references": {}
5804
+ },
5805
+ "mutable": false,
5806
+ "attr": "action-label",
5807
+ "reflectToAttr": false,
5808
+ "docs": "",
5809
+ "docsTags": [],
5810
+ "values": [
5811
+ {
5812
+ "type": "string"
5813
+ },
5814
+ {
5815
+ "type": "undefined"
5816
+ }
5817
+ ],
5818
+ "optional": true,
5819
+ "required": false,
5820
+ "getter": false,
5821
+ "setter": false
5822
+ },
5823
+ {
5824
+ "name": "closeLabel",
5825
+ "type": "string",
5826
+ "complexType": {
5827
+ "original": "string",
5828
+ "resolved": "string",
5829
+ "references": {}
5830
+ },
5831
+ "mutable": false,
5832
+ "attr": "close-label",
5833
+ "reflectToAttr": false,
5834
+ "docs": "",
5835
+ "docsTags": [
5836
+ {
5837
+ "name": "default",
5838
+ "text": "'Schliessen'"
5839
+ }
5840
+ ],
5841
+ "default": "'Schliessen'",
5842
+ "values": [
5843
+ {
5844
+ "type": "string"
5845
+ }
5846
+ ],
5847
+ "optional": false,
5848
+ "required": false,
5849
+ "getter": false,
5850
+ "setter": false
5851
+ },
5852
+ {
5853
+ "name": "dismissible",
5854
+ "type": "boolean",
5855
+ "complexType": {
5856
+ "original": "boolean",
5857
+ "resolved": "boolean",
5858
+ "references": {}
5859
+ },
5860
+ "mutable": false,
5861
+ "attr": "dismissible",
5862
+ "reflectToAttr": false,
5863
+ "docs": "",
5864
+ "docsTags": [
5865
+ {
5866
+ "name": "default",
5867
+ "text": "false"
5868
+ }
5869
+ ],
5870
+ "default": "false",
5871
+ "values": [
5872
+ {
5873
+ "type": "boolean"
5874
+ }
5875
+ ],
5876
+ "optional": false,
5877
+ "required": false,
5878
+ "getter": false,
5879
+ "setter": false
5880
+ },
5881
+ {
5882
+ "name": "leadingIcon",
5883
+ "type": "boolean",
5884
+ "complexType": {
5885
+ "original": "boolean",
5886
+ "resolved": "boolean",
5887
+ "references": {}
5888
+ },
5889
+ "mutable": false,
5890
+ "attr": "leading-icon",
5891
+ "reflectToAttr": false,
5892
+ "docs": "",
5893
+ "docsTags": [
5894
+ {
5895
+ "name": "default",
5896
+ "text": "true"
5897
+ }
5898
+ ],
5899
+ "default": "true",
5900
+ "values": [
5901
+ {
5902
+ "type": "boolean"
5903
+ }
5904
+ ],
5905
+ "optional": false,
5906
+ "required": false,
5907
+ "getter": false,
5908
+ "setter": false
5909
+ },
5910
+ {
5911
+ "name": "live",
5912
+ "type": "\"assertive\" | \"off\" | \"polite\"",
5913
+ "complexType": {
5914
+ "original": "'off' | 'polite' | 'assertive'",
5915
+ "resolved": "\"assertive\" | \"off\" | \"polite\"",
5916
+ "references": {}
5917
+ },
5918
+ "mutable": false,
5919
+ "attr": "live",
5920
+ "reflectToAttr": false,
5921
+ "docs": "",
5922
+ "docsTags": [
5923
+ {
5924
+ "name": "default",
5925
+ "text": "'off'"
5926
+ }
5927
+ ],
5928
+ "default": "'off'",
5929
+ "values": [
5930
+ {
5931
+ "value": "assertive",
5932
+ "type": "string"
5933
+ },
5934
+ {
5935
+ "value": "off",
5936
+ "type": "string"
5937
+ },
5938
+ {
5939
+ "value": "polite",
5940
+ "type": "string"
5941
+ }
5942
+ ],
5943
+ "optional": false,
5944
+ "required": false,
5945
+ "getter": false,
5946
+ "setter": false
5947
+ },
5948
+ {
5949
+ "name": "type",
5950
+ "type": "\"neutral\" | \"warning\"",
5951
+ "complexType": {
5952
+ "original": "Message.Type",
5953
+ "resolved": "\"neutral\" | \"warning\"",
5954
+ "references": {
5955
+ "Message": {
5956
+ "location": "import",
5957
+ "path": "../../api",
5958
+ "id": "src/api/index.d.ts::Message",
5959
+ "referenceLocation": "Message"
5960
+ }
5961
+ }
5962
+ },
5963
+ "mutable": false,
5964
+ "attr": "type",
5965
+ "reflectToAttr": true,
5966
+ "docs": "",
5967
+ "docsTags": [
5968
+ {
5969
+ "name": "default",
5970
+ "text": "'neutral'"
5971
+ }
5972
+ ],
5973
+ "default": "'neutral'",
5974
+ "values": [
5975
+ {
5976
+ "value": "neutral",
5977
+ "type": "string"
5978
+ },
5979
+ {
5980
+ "value": "warning",
5981
+ "type": "string"
5982
+ }
5983
+ ],
5984
+ "optional": false,
5985
+ "required": false,
5986
+ "getter": false,
5987
+ "setter": false
5988
+ }
5989
+ ],
5990
+ "methods": [],
5991
+ "events": [
5992
+ {
5993
+ "event": "lmvzAction",
5994
+ "detail": "void",
5995
+ "bubbles": true,
5996
+ "complexType": {
5997
+ "original": "void",
5998
+ "resolved": "void",
5999
+ "references": {}
6000
+ },
6001
+ "cancelable": false,
6002
+ "composed": true,
6003
+ "docs": "",
6004
+ "docsTags": []
6005
+ },
6006
+ {
6007
+ "event": "lmvzDismiss",
6008
+ "detail": "void",
6009
+ "bubbles": true,
6010
+ "complexType": {
6011
+ "original": "void",
6012
+ "resolved": "void",
6013
+ "references": {}
6014
+ },
6015
+ "cancelable": false,
6016
+ "composed": true,
6017
+ "docs": "",
6018
+ "docsTags": []
6019
+ }
6020
+ ],
6021
+ "listeners": [],
6022
+ "styles": [],
6023
+ "slots": [],
6024
+ "parts": [],
6025
+ "states": [],
6026
+ "dependents": [],
6027
+ "dependencies": [
6028
+ "lmvz-button",
6029
+ "lmvz-icon"
6030
+ ],
6031
+ "dependencyGraph": {
6032
+ "lmvz-message": [
6033
+ "lmvz-button",
6034
+ "lmvz-icon"
6035
+ ]
6036
+ }
6037
+ },
5735
6038
  {
5736
6039
  "filePath": "src/components/lmvz-modal/lmvz-modal.tsx",
5737
6040
  "encapsulation": "shadow",
@@ -6773,6 +7076,92 @@
6773
7076
  ]
6774
7077
  }
6775
7078
  },
7079
+ {
7080
+ "filePath": "src/components/lmvz-spinner/lmvz-spinner.tsx",
7081
+ "encapsulation": "shadow",
7082
+ "tag": "lmvz-spinner",
7083
+ "readme": "# lmvz-spinner\n\n\n",
7084
+ "docs": "`lmvz-spinner` is an indeterminate progress indicator that signals an ongoing background operation.\n\nSet `aria-label` when the spinner is the primary loading indicator in its context.\nOmit it when decorative (e.g., inside a button that already announces its loading state).",
7085
+ "docsTags": [],
7086
+ "usage": {},
7087
+ "props": [
7088
+ {
7089
+ "name": "ariaLabel",
7090
+ "type": "string | undefined",
7091
+ "complexType": {
7092
+ "original": "string",
7093
+ "resolved": "string | undefined",
7094
+ "references": {}
7095
+ },
7096
+ "mutable": false,
7097
+ "attr": "aria-label",
7098
+ "reflectToAttr": true,
7099
+ "docs": "Accessible name for assistive technology.\nLeave unset for decorative spinners so the element stays hidden from the accessibility tree.",
7100
+ "docsTags": [],
7101
+ "values": [
7102
+ {
7103
+ "type": "string"
7104
+ },
7105
+ {
7106
+ "type": "undefined"
7107
+ }
7108
+ ],
7109
+ "optional": true,
7110
+ "required": false,
7111
+ "getter": false,
7112
+ "setter": false
7113
+ },
7114
+ {
7115
+ "name": "size",
7116
+ "type": "\"large\" | \"small\"",
7117
+ "complexType": {
7118
+ "original": "'small' | 'large'",
7119
+ "resolved": "\"large\" | \"small\"",
7120
+ "references": {}
7121
+ },
7122
+ "mutable": false,
7123
+ "attr": "size",
7124
+ "reflectToAttr": true,
7125
+ "docs": "Size of the spinner.",
7126
+ "docsTags": [
7127
+ {
7128
+ "name": "default",
7129
+ "text": "'small'"
7130
+ }
7131
+ ],
7132
+ "default": "'small'",
7133
+ "values": [
7134
+ {
7135
+ "value": "large",
7136
+ "type": "string"
7137
+ },
7138
+ {
7139
+ "value": "small",
7140
+ "type": "string"
7141
+ }
7142
+ ],
7143
+ "optional": false,
7144
+ "required": false,
7145
+ "getter": false,
7146
+ "setter": false
7147
+ }
7148
+ ],
7149
+ "methods": [],
7150
+ "events": [],
7151
+ "listeners": [],
7152
+ "styles": [],
7153
+ "slots": [],
7154
+ "parts": [
7155
+ {
7156
+ "name": "indicator",
7157
+ "docs": ""
7158
+ }
7159
+ ],
7160
+ "states": [],
7161
+ "dependents": [],
7162
+ "dependencies": [],
7163
+ "dependencyGraph": {}
7164
+ },
6776
7165
  {
6777
7166
  "filePath": "src/components/lmvz-tab/lmvz-tab.tsx",
6778
7167
  "encapsulation": "shadow",
@@ -7545,6 +7934,11 @@
7545
7934
  "docstring": "",
7546
7935
  "path": "src/api/index.d.ts"
7547
7936
  },
7937
+ "src/api/index.d.ts::Message": {
7938
+ "declaration": "any",
7939
+ "docstring": "",
7940
+ "path": "src/api/index.d.ts"
7941
+ },
7548
7942
  "src/api/index.d.ts::Snackbar": {
7549
7943
  "declaration": "any",
7550
7944
  "docstring": "",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmvz-ds/components",
3
3
  "private": false,
4
- "version": "0.27.0",
4
+ "version": "0.28.0",
5
5
  "type": "module",
6
6
  "description": "The components of the design system",
7
7
  "author": "Patrick Nemenz <patrick.nemenz@adesso.at>",
@@ -99,6 +99,14 @@
99
99
  "./lmvz-radio": {
100
100
  "import": "./components/lmvz-radio.js",
101
101
  "types": "./components/lmvz-radio.d.ts"
102
+ },
103
+ "./lmvz-message": {
104
+ "import": "./components/lmvz-message.js",
105
+ "types": "./components/lmvz-message.d.ts"
106
+ },
107
+ "./lmvz-spinner": {
108
+ "import": "./components/lmvz-spinner.js",
109
+ "types": "./components/lmvz-spinner.d.ts"
102
110
  }
103
111
  },
104
112
  "main": "./index.cjs.js",
@@ -3,6 +3,7 @@ export declare const scaleValues: readonly ["small", "default", "large"];
3
3
  export declare const sizes: readonly ["xs", "sm", "md", "lg"];
4
4
  export declare const textSizes: readonly ["xs", "sm", "md", "lg", "xl"];
5
5
  export declare const inputTypes: readonly ["text", "email", "password", "tel", "url", "search", "number"];
6
+ export declare const inputSizes: readonly ["sm", "md", "lg"];
6
7
  export declare const iconSizes: readonly ["xs", "sm", "md", "lg", "inherit"];
7
8
  export declare const iconWeights: readonly ["thin", "medium", "bold"];
8
9
  export declare const chipTypes: readonly ["active", "warning", "success", "error", "neutral"];
@@ -28,10 +29,15 @@ export declare namespace Icon {
28
29
  }
29
30
  export declare namespace Input {
30
31
  type Type = (typeof inputTypes)[number];
32
+ type Size = (typeof inputSizes)[number];
31
33
  type Autocomplete = HTMLInputElement['autocomplete'];
32
34
  type Inputmode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';
33
35
  type Autocapitalize = 'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters';
34
36
  }
37
+ export declare const messageTypes: readonly ["neutral", "warning"];
38
+ export declare namespace Message {
39
+ type Type = (typeof messageTypes)[number];
40
+ }
35
41
  export declare const snackbarStatuses: readonly ["success", "warning", "error"];
36
42
  export declare const snackbarPriorities: readonly ["low", "normal", "high"];
37
43
  export declare const snackbarDismissReasons: readonly ["timeout", "manual", "action", "overridden", "swallowed"];
@@ -39,6 +39,7 @@ export declare class LmvzInput extends ReactiveControllerHost implements AriaVal
39
39
  max?: number | string;
40
40
  step?: number | string;
41
41
  form?: string;
42
+ size: Input.Size;
42
43
  get error(): boolean;
43
44
  set error(value: boolean);
44
45
  setValue(newValue: string | undefined): Promise<void>;
@@ -0,0 +1,20 @@
1
+ import { type EventEmitter } from '../../stencil-public-runtime';
2
+ import type { Message } from '../../api';
3
+ export declare class LmvzMessage {
4
+ private messageSlot?;
5
+ private readonly warnedTags;
6
+ type: Message.Type;
7
+ live: 'off' | 'polite' | 'assertive';
8
+ leadingIcon: boolean;
9
+ dismissible: boolean;
10
+ closeLabel: string;
11
+ actionLabel?: string;
12
+ lmvzDismiss: EventEmitter<void>;
13
+ lmvzAction: EventEmitter<void>;
14
+ componentDidLoad(): void;
15
+ private readonly handleDismissClick;
16
+ private readonly handleActionClick;
17
+ private readonly handleSlotChange;
18
+ private checkSlotContent;
19
+ render(): any;
20
+ }
@@ -0,0 +1 @@
1
+ export type { Message } from '../../api';
@@ -0,0 +1,5 @@
1
+ export declare class LmvzSpinner {
2
+ size: 'small' | 'large';
3
+ ariaLabel?: string;
4
+ render(): any;
5
+ }