@ctrliq/quantic-components 1.82.0 → 1.84.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 (88) hide show
  1. package/dist/action-group/action-group.component.d.ts +13 -0
  2. package/dist/action-group/action-group.component.js +63 -0
  3. package/dist/action-group/index.d.ts +1 -0
  4. package/dist/action-group/index.js +1 -0
  5. package/dist/action-group/index.stories.d.ts +25 -0
  6. package/dist/action-group/index.stories.js +59 -0
  7. package/dist/astro.d.ts +6 -1
  8. package/dist/astro.js +6 -1
  9. package/dist/astro.js.map +1 -1
  10. package/dist/badge/badge-group.component.d.ts +13 -0
  11. package/dist/badge/badge-group.component.js +62 -0
  12. package/dist/badge/badge-group.stories.d.ts +41 -0
  13. package/dist/badge/badge-group.stories.js +62 -0
  14. package/dist/badge/index.d.ts +1 -0
  15. package/dist/badge/index.js +1 -0
  16. package/dist/button/index.js +1 -1
  17. package/dist/button-bar/button-bar-item.d.ts +14 -0
  18. package/dist/button-bar/button-bar-item.js +202 -0
  19. package/dist/button-bar/button-bar.d.ts +20 -0
  20. package/dist/button-bar/button-bar.js +127 -0
  21. package/dist/button-bar/index.constants.d.ts +6 -0
  22. package/dist/button-bar/index.constants.js +5 -0
  23. package/dist/button-bar/index.context.d.ts +4 -0
  24. package/dist/button-bar/index.context.js +2 -0
  25. package/dist/button-bar/index.d.ts +3 -0
  26. package/dist/button-bar/index.js +3 -0
  27. package/dist/{types/button-group → button-bar}/index.stories.d.ts +2 -2
  28. package/dist/button-bar/index.stories.js +107 -0
  29. package/dist/button-bar/index.utils.d.ts +6 -0
  30. package/dist/button-bar/index.utils.js +31 -0
  31. package/dist/button-bar/index.utils.test.d.ts +1 -0
  32. package/dist/button-bar/index.utils.test.js +53 -0
  33. package/dist/button-group/button-group-item.d.ts +6 -8
  34. package/dist/button-group/button-group-item.js +11 -167
  35. package/dist/button-group/button-group.d.ts +9 -7
  36. package/dist/button-group/button-group.js +16 -58
  37. package/dist/button-group/index.constants.d.ts +4 -1
  38. package/dist/button-group/index.constants.js +3 -5
  39. package/dist/dialog/dialog-actions.js +11 -10
  40. package/dist/index.d.ts +2 -0
  41. package/dist/index.js +2 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/meta/index.js +10 -0
  44. package/dist/meta/index.js.map +1 -1
  45. package/dist/meta/serialize.js +1 -0
  46. package/dist/meta.json +199 -24
  47. package/dist/pagination/pagination.component.js +15 -15
  48. package/dist/quantic-components.js +395 -86
  49. package/dist/quantic-components.js.map +1 -1
  50. package/dist/quantic-components.min.js +215 -155
  51. package/dist/quantic-components.min.js.map +1 -1
  52. package/dist/register.js.map +1 -1
  53. package/dist/shared/meta.types.d.ts +4 -0
  54. package/dist/tabs/index.stories.js +1 -1
  55. package/dist/tag/index.d.ts +1 -0
  56. package/dist/tag/index.js +1 -0
  57. package/dist/tag/tag-group.component.d.ts +13 -0
  58. package/dist/tag/tag-group.component.js +62 -0
  59. package/dist/tag/tag-group.stories.d.ts +34 -0
  60. package/dist/tag/tag-group.stories.js +65 -0
  61. package/dist/types/action-group/action-group.component.d.ts +13 -0
  62. package/dist/types/action-group/index.d.ts +1 -0
  63. package/dist/types/action-group/index.stories.d.ts +25 -0
  64. package/dist/types/astro.d.ts +6 -1
  65. package/dist/types/badge/badge-group.component.d.ts +13 -0
  66. package/dist/types/badge/badge-group.stories.d.ts +41 -0
  67. package/dist/types/badge/index.d.ts +1 -0
  68. package/dist/types/button-bar/button-bar-item.d.ts +14 -0
  69. package/dist/types/button-bar/button-bar.d.ts +20 -0
  70. package/dist/types/button-bar/index.constants.d.ts +6 -0
  71. package/dist/types/button-bar/index.context.d.ts +4 -0
  72. package/dist/types/button-bar/index.d.ts +3 -0
  73. package/dist/{button-group → types/button-bar}/index.stories.d.ts +2 -2
  74. package/dist/types/button-bar/index.utils.d.ts +6 -0
  75. package/dist/types/button-bar/index.utils.test.d.ts +1 -0
  76. package/dist/types/button-group/button-group-item.d.ts +6 -8
  77. package/dist/types/button-group/button-group.d.ts +9 -7
  78. package/dist/types/button-group/index.constants.d.ts +4 -1
  79. package/dist/types/index.d.ts +2 -0
  80. package/dist/types/shared/meta.types.d.ts +4 -0
  81. package/dist/types/tag/index.d.ts +1 -0
  82. package/dist/types/tag/tag-group.component.d.ts +13 -0
  83. package/dist/types/tag/tag-group.stories.d.ts +34 -0
  84. package/package.json +4 -3
  85. package/dist/button-group/index.context.d.ts +0 -4
  86. package/dist/button-group/index.context.js +0 -2
  87. package/dist/button-group/index.stories.js +0 -107
  88. package/dist/types/button-group/index.context.d.ts +0 -4
@@ -12,6 +12,7 @@ export function serializeComponent(component) {
12
12
  description: component.description,
13
13
  category: component.category,
14
14
  ...(component.ascii ? { ascii: component.ascii } : {}),
15
+ ...(component.deprecated ? { deprecated: component.deprecated } : {}),
15
16
  ...(props ? { props } : {}),
16
17
  ...(events ? { events } : {}),
17
18
  ...(slots ? { slots } : {}),
package/dist/meta.json CHANGED
@@ -1,7 +1,42 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "generated": "2026-08-27T18:52:16.874Z",
3
+ "generated": "2026-08-27T20:51:41.571Z",
4
4
  "components": [
5
+ {
6
+ "tag": "quantic-action-group",
7
+ "description": "A row of related actions sharing one accessible name and a consistent gap. Takes quantic-button, and quantic-dropdown-menu or quantic-popover when the trigger is a button. Wraps when the row runs out of width. Gap: --quantic-component-action-group-gap. Use quantic-button-bar when the buttons should read as one joined control.",
8
+ "category": "action",
9
+ "props": [
10
+ {
11
+ "name": "ariaLabel",
12
+ "description": "Accessible name for the group.",
13
+ "type": "string"
14
+ }
15
+ ],
16
+ "slots": [
17
+ {
18
+ "name": "",
19
+ "description": "quantic-button elements, or a quantic-dropdown-menu or quantic-popover triggered by one."
20
+ }
21
+ ],
22
+ "examples": [
23
+ "<quantic-action-group ><quantic-button variant=\"outline\">Cancel</quantic-button><quantic-button variant=\"primary\">Save</quantic-button></quantic-action-group>",
24
+ "<quantic-action-group aria-label=\"Asset actions\">\n <quantic-button variant=\"ghost\" size=\"sm\">\n <quantic-icon-lucide-copy size=\"xs\"></quantic-icon-lucide-copy>\n </quantic-button>\n <quantic-button variant=\"ghost\" size=\"sm\">\n <quantic-icon-lucide-download size=\"xs\"></quantic-icon-lucide-download>\n </quantic-button>\n </quantic-action-group>",
25
+ "<quantic-dialog open>\n <quantic-dialog-title slot=\"header\">Confirm action</quantic-dialog-title>\n <p>Are you sure you want to perform this action? This cannot be undone.</p>\n <quantic-dialog-actions slot=\"footer\">\n <quantic-button variant=\"outline\">Cancel</quantic-button>\n <quantic-button variant=\"primary\">Confirm</quantic-button>\n </quantic-dialog-actions>\n </quantic-dialog>",
26
+ "<quantic-action-group ><quantic-button variant=\"outline\">Delete</quantic-button><quantic-button variant=\"outline\">Duplicate</quantic-button><quantic-button variant=\"primary\">Publish</quantic-button></quantic-action-group>",
27
+ "<quantic-action-group aria-label=\"Record actions\"><quantic-button variant=\"outline\">Cancel</quantic-button><quantic-button variant=\"primary\">Save</quantic-button></quantic-action-group>"
28
+ ],
29
+ "relatedTo": [
30
+ "quantic-button",
31
+ "quantic-button-bar",
32
+ "quantic-dialog-actions"
33
+ ],
34
+ "subComponents": [
35
+ "quantic-button",
36
+ "quantic-dropdown-menu",
37
+ "quantic-popover"
38
+ ]
39
+ },
5
40
  {
6
41
  "tag": "quantic-alert",
7
42
  "description": "Inline alert banner with severity styles and optional dismiss action. Visibility is owned by the consumer.",
@@ -146,6 +181,38 @@
146
181
  "quantic-status-badge"
147
182
  ]
148
183
  },
184
+ {
185
+ "tag": "quantic-badge-group",
186
+ "description": "A run of quantic-badge or quantic-status-badge sharing one accessible name and a consistent gap. Wraps across lines, and each badge keeps its own size. Gap: --quantic-component-badge-group-gap. Use quantic-tag-group for tags.",
187
+ "category": "display",
188
+ "props": [
189
+ {
190
+ "name": "ariaLabel",
191
+ "description": "Accessible name for the group.",
192
+ "type": "string"
193
+ }
194
+ ],
195
+ "slots": [
196
+ {
197
+ "name": "",
198
+ "description": "quantic-badge or quantic-status-badge elements."
199
+ }
200
+ ],
201
+ "examples": [
202
+ "<quantic-badge-group ><quantic-badge color=\"gray\" size=\"sm\">Backgrounds</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Email signatures</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Headers</quantic-badge></quantic-badge-group>",
203
+ "<quantic-badge-group aria-label=\"Service status\">\n <quantic-status-badge color=\"success\" size=\"sm\">Running</quantic-status-badge>\n <quantic-status-badge color=\"warning\" size=\"sm\">Degraded</quantic-status-badge>\n <quantic-status-badge color=\"error\" size=\"sm\">Offline</quantic-status-badge>\n </quantic-badge-group>",
204
+ "<quantic-badge-group aria-label=\"Asset types\"><quantic-badge color=\"gray\" size=\"sm\">Backgrounds</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Email signatures</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Headers</quantic-badge></quantic-badge-group>",
205
+ "<quantic-badge-group ><quantic-badge color=\"gray\" size=\"sm\">Backgrounds</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Email signatures</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Headers</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Social graphics</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Slide templates</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Press kits</quantic-badge><quantic-badge color=\"gray\" size=\"sm\">Advisory cards</quantic-badge></quantic-badge-group>"
206
+ ],
207
+ "relatedTo": [
208
+ "quantic-badge",
209
+ "quantic-tag-group"
210
+ ],
211
+ "subComponents": [
212
+ "quantic-badge",
213
+ "quantic-status-badge"
214
+ ]
215
+ },
149
216
  {
150
217
  "tag": "quantic-button",
151
218
  "description": "Clickable action trigger for form submission, primary CTAs, and secondary actions. Supports icon-only mode and polymorphic rendering as an <a> or <span>. Prefer over quantic-icon-label when the element needs to be interactive.",
@@ -279,19 +346,19 @@
279
346
  "<quantic-button variant=\"primary\"><quantic-icon-lucide-rocket size=\"xxs\"></quantic-icon-lucide-rocket> Launch</quantic-button>"
280
347
  ],
281
348
  "relatedTo": [
282
- "quantic-button-group",
349
+ "quantic-button-bar",
283
350
  "quantic-icon-label"
284
351
  ]
285
352
  },
286
353
  {
287
- "tag": "quantic-button-group",
288
- "description": "Toolbar container that groups multiple action buttons with joined borders and shared sizing. Use when two or more related actions should appear as a single cohesive control.",
354
+ "tag": "quantic-button-bar",
355
+ "description": "Toolbar of related buttons joined into one cohesive control, with shared sizing. Use for switching between views or modes, and for a compact run of icon actions. Items carry aria-pressed via active, so a set can behave as exclusive options or as independent toggles. Focus follows the toolbar pattern: one tab stop, arrow keys move between items, Home and End jump to the ends. Prefer quantic-button for a standalone action, and quantic-tabs when each segment reveals a panel.",
289
356
  "category": "action",
290
357
  "props": [
291
358
  {
292
359
  "name": "size",
293
360
  "description": "Size applied to all child items via context.",
294
- "type": "ButtonGroupSize",
361
+ "type": "ButtonBarSize",
295
362
  "options": [
296
363
  "sm",
297
364
  "md",
@@ -301,28 +368,96 @@
301
368
  },
302
369
  {
303
370
  "name": "ariaLabel",
304
- "description": "Accessible label for the toolbar role.",
371
+ "description": "Accessible label for the group.",
305
372
  "type": "string"
306
373
  }
307
374
  ],
308
375
  "slots": [
309
376
  {
310
377
  "name": "",
311
- "description": "One or more quantic-button-group-item elements."
378
+ "description": "One or more quantic-button-bar-item elements."
312
379
  }
313
380
  ],
314
381
  "examples": [
315
- "<quantic-button-group ><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item></quantic-button-group>",
316
- "<quantic-button-group>\n <quantic-button-group-item>Text</quantic-button-group-item>\n <quantic-button-group-item disabled>Disabled item</quantic-button-group-item>\n <quantic-button-group-item>Text</quantic-button-group-item>\n </quantic-button-group>",
317
- "<quantic-button-group size=\"lg\"><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item></quantic-button-group>",
318
- "<quantic-button-group ><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item></quantic-button-group>",
319
- "<quantic-button-group size=\"md\"><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item></quantic-button-group>",
320
- "<quantic-button-group size=\"sm\"><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item></quantic-button-group>",
321
- "<quantic-button-group ><quantic-button-group-item >Text</quantic-button-group-item><quantic-button-group-item active>Text</quantic-button-group-item><quantic-button-group-item >Text</quantic-button-group-item></quantic-button-group>",
322
- "<div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <quantic-button-group size=\"md\">\n <quantic-button-group-item onclick=\"handleClick('Option 1')\">Option 1</quantic-button-group-item>\n <quantic-button-group-item onclick=\"handleClick('Option 2')\">Option 2</quantic-button-group-item>\n <quantic-button-group-item onclick=\"handleClick('Option 3')\">Option 3</quantic-button-group-item>\n </quantic-button-group>\n <quantic-card variant=\"solid\" size=\"sm\" id=\"output\">\n Click a button to see the event\n </quantic-card>\n </div>\n <script>\n function handleClick(option) {\n document.getElementById('output').textContent = option + ' clicked at ' + new Date().toLocaleTimeString();\n }\n </script>",
323
- "<quantic-button-group>\n <quantic-button-group-item>\n <quantic-icon-lucide-align-left size=\"xs\"></quantic-icon-lucide-align-left>\n </quantic-button-group-item>\n <quantic-button-group-item active>\n <quantic-icon-lucide-align-center size=\"xs\"></quantic-icon-lucide-align-center>\n </quantic-button-group-item>\n <quantic-button-group-item>\n <quantic-icon-lucide-align-right size=\"xs\"></quantic-icon-lucide-align-right>\n </quantic-button-group-item>\n </quantic-button-group>",
324
- "<quantic-button-group>\n <quantic-button-group-item>\n <quantic-icon-lucide-chevron-left size=\"xs\"></quantic-icon-lucide-chevron-left>\n </quantic-button-group-item>\n <quantic-button-group-item>\n Text\n </quantic-button-group-item>\n <quantic-button-group-item active>\n <quantic-icon-lucide-plus size=\"xs\"></quantic-icon-lucide-plus>\n </quantic-button-group-item>\n <quantic-button-group-item>\n <quantic-icon-lucide-chevron-right size=\"xs\"></quantic-icon-lucide-chevron-right>\n </quantic-button-group-item>\n </quantic-button-group>",
325
- "<quantic-button-group>\n <quantic-button-group-item>Short</quantic-button-group-item>\n <quantic-button-group-item>Text</quantic-button-group-item>\n <quantic-button-group-item>This is a very long button text that should be clamped with ellipsis</quantic-button-group-item>\n <quantic-button-group-item>Medium</quantic-button-group-item>\n <quantic-button-group-item>Text</quantic-button-group-item>\n </quantic-button-group>"
382
+ "<quantic-button-bar ><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item></quantic-button-bar>",
383
+ "<quantic-button-bar>\n <quantic-button-bar-item>Text</quantic-button-bar-item>\n <quantic-button-bar-item disabled>Disabled item</quantic-button-bar-item>\n <quantic-button-bar-item>Text</quantic-button-bar-item>\n </quantic-button-bar>",
384
+ "<quantic-button-bar size=\"lg\"><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item></quantic-button-bar>",
385
+ "<quantic-button-bar ><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item></quantic-button-bar>",
386
+ "<quantic-button-bar size=\"md\"><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item></quantic-button-bar>",
387
+ "<quantic-button-bar size=\"sm\"><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item></quantic-button-bar>",
388
+ "<quantic-button-bar ><quantic-button-bar-item >Text</quantic-button-bar-item><quantic-button-bar-item active>Text</quantic-button-bar-item><quantic-button-bar-item >Text</quantic-button-bar-item></quantic-button-bar>",
389
+ "<div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <quantic-button-bar size=\"md\">\n <quantic-button-bar-item onclick=\"handleClick('Option 1')\">Option 1</quantic-button-bar-item>\n <quantic-button-bar-item onclick=\"handleClick('Option 2')\">Option 2</quantic-button-bar-item>\n <quantic-button-bar-item onclick=\"handleClick('Option 3')\">Option 3</quantic-button-bar-item>\n </quantic-button-bar>\n <quantic-card variant=\"solid\" size=\"sm\" id=\"output\">\n Click a button to see the event\n </quantic-card>\n </div>\n <script>\n function handleClick(option) {\n document.getElementById('output').textContent = option + ' clicked at ' + new Date().toLocaleTimeString();\n }\n </script>",
390
+ "<quantic-button-bar>\n <quantic-button-bar-item>\n <quantic-icon-lucide-align-left size=\"xs\"></quantic-icon-lucide-align-left>\n </quantic-button-bar-item>\n <quantic-button-bar-item active>\n <quantic-icon-lucide-align-center size=\"xs\"></quantic-icon-lucide-align-center>\n </quantic-button-bar-item>\n <quantic-button-bar-item>\n <quantic-icon-lucide-align-right size=\"xs\"></quantic-icon-lucide-align-right>\n </quantic-button-bar-item>\n </quantic-button-bar>",
391
+ "<quantic-button-bar>\n <quantic-button-bar-item>\n <quantic-icon-lucide-chevron-left size=\"xs\"></quantic-icon-lucide-chevron-left>\n </quantic-button-bar-item>\n <quantic-button-bar-item>\n Text\n </quantic-button-bar-item>\n <quantic-button-bar-item active>\n <quantic-icon-lucide-plus size=\"xs\"></quantic-icon-lucide-plus>\n </quantic-button-bar-item>\n <quantic-button-bar-item>\n <quantic-icon-lucide-chevron-right size=\"xs\"></quantic-icon-lucide-chevron-right>\n </quantic-button-bar-item>\n </quantic-button-bar>",
392
+ "<quantic-button-bar>\n <quantic-button-bar-item>Short</quantic-button-bar-item>\n <quantic-button-bar-item>Text</quantic-button-bar-item>\n <quantic-button-bar-item>This is a very long button text that should be clamped with ellipsis</quantic-button-bar-item>\n <quantic-button-bar-item>Medium</quantic-button-bar-item>\n <quantic-button-bar-item>Text</quantic-button-bar-item>\n </quantic-button-bar>"
393
+ ],
394
+ "relatedTo": [
395
+ "quantic-button"
396
+ ],
397
+ "subComponents": [
398
+ "quantic-button-bar-item"
399
+ ]
400
+ },
401
+ {
402
+ "tag": "quantic-button-bar-item",
403
+ "description": "Single segment within a quantic-button-bar. Renders as a native button with shared sizing from the parent context and a pressed state via active.",
404
+ "category": "action",
405
+ "props": [
406
+ {
407
+ "name": "disabled",
408
+ "description": "Prevents interaction and reduces opacity.",
409
+ "type": "boolean",
410
+ "default": "false"
411
+ },
412
+ {
413
+ "name": "active",
414
+ "description": "Marks this item as the currently selected/active option.",
415
+ "type": "boolean",
416
+ "default": "false"
417
+ }
418
+ ],
419
+ "slots": [
420
+ {
421
+ "name": "",
422
+ "description": "Button label or icon content."
423
+ }
424
+ ],
425
+ "relatedTo": [
426
+ "quantic-button-bar",
427
+ "quantic-button"
428
+ ]
429
+ },
430
+ {
431
+ "tag": "quantic-button-group",
432
+ "description": "Deprecated alias of quantic-button-bar. Use quantic-button-bar.",
433
+ "category": "action",
434
+ "deprecated": {
435
+ "use": "quantic-button-bar",
436
+ "reason": "The name describes a row of buttons, which this is not. Use quantic-action-group for that."
437
+ },
438
+ "props": [
439
+ {
440
+ "name": "size",
441
+ "description": "Size applied to all child items via context.",
442
+ "type": "ButtonBarSize",
443
+ "options": [
444
+ "sm",
445
+ "md",
446
+ "lg"
447
+ ],
448
+ "default": "md"
449
+ },
450
+ {
451
+ "name": "ariaLabel",
452
+ "description": "Accessible label for the group.",
453
+ "type": "string"
454
+ }
455
+ ],
456
+ "slots": [
457
+ {
458
+ "name": "",
459
+ "description": "One or more quantic-button-group-item elements."
460
+ }
326
461
  ],
327
462
  "relatedTo": [
328
463
  "quantic-button"
@@ -333,8 +468,11 @@
333
468
  },
334
469
  {
335
470
  "tag": "quantic-button-group-item",
336
- "description": "Individual button within a quantic-button-group. Renders as a native button with shared sizing from the parent group context and a toggle-style active state.",
471
+ "description": "Deprecated alias of quantic-button-bar-item. Use quantic-button-bar-item.",
337
472
  "category": "action",
473
+ "deprecated": {
474
+ "use": "quantic-button-bar-item"
475
+ },
338
476
  "props": [
339
477
  {
340
478
  "name": "disabled",
@@ -356,8 +494,7 @@
356
494
  }
357
495
  ],
358
496
  "relatedTo": [
359
- "quantic-button-group",
360
- "quantic-button"
497
+ "quantic-button-group"
361
498
  ]
362
499
  },
363
500
  {
@@ -1585,7 +1722,7 @@
1585
1722
  },
1586
1723
  {
1587
1724
  "tag": "quantic-dialog-actions",
1588
- "description": "Footer actions bar sub-component for quantic-dialog. Lays out action buttons (confirm/cancel) flush to the right.",
1725
+ "description": "Footer actions bar for quantic-dialog. Lays action buttons out as a quantic-action-group, flush to the right.",
1589
1726
  "category": "feedback",
1590
1727
  "slots": [
1591
1728
  {
@@ -1595,7 +1732,11 @@
1595
1732
  ],
1596
1733
  "relatedTo": [
1597
1734
  "quantic-dialog",
1598
- "quantic-button"
1735
+ "quantic-button",
1736
+ "quantic-action-group"
1737
+ ],
1738
+ "subComponents": [
1739
+ "quantic-action-group"
1599
1740
  ]
1600
1741
  },
1601
1742
  {
@@ -2844,7 +2985,7 @@
2844
2985
  "<div style=\"display: flex; flex-direction: column; gap: 16px;\">\n <quantic-pagination\n size=\"md\"\n current-page=\"5\"\n total-pages=\"10\"\n max-displayed-pages=\"3\"\n id=\"pagination\"\n ></quantic-pagination>\n <quantic-card variant=\"solid\" size=\"sm\" id=\"output\">\n Click a page to see the event\n </quantic-card>\n </div>\n <script>\n (() => {\n const pagination = document.getElementById('pagination');\n const output = document.getElementById('output');\n\n pagination.addEventListener('page-change', (event) => {\n const page = event.detail.page;\n output.textContent = 'Page changed to: ' + page + ' at ' + new Date().toLocaleTimeString();\n pagination.setAttribute('current-page', page);\n });\n })();\n </script>"
2845
2986
  ],
2846
2987
  "relatedTo": [
2847
- "quantic-button-group"
2988
+ "quantic-button-bar"
2848
2989
  ]
2849
2990
  },
2850
2991
  {
@@ -4631,6 +4772,40 @@
4631
4772
  "quantic-badge"
4632
4773
  ]
4633
4774
  },
4775
+ {
4776
+ "tag": "quantic-tag-group",
4777
+ "description": "A run of quantic-tag, quantic-status-tag or quantic-count-tag sharing one accessible name and a consistent gap. Wraps across lines, and each tag keeps its own size. Gap: --quantic-component-tag-group-gap. Use quantic-badge-group for badges.",
4778
+ "category": "display",
4779
+ "props": [
4780
+ {
4781
+ "name": "ariaLabel",
4782
+ "description": "Accessible name for the group.",
4783
+ "type": "string"
4784
+ }
4785
+ ],
4786
+ "slots": [
4787
+ {
4788
+ "name": "",
4789
+ "description": "quantic-tag, quantic-status-tag or quantic-count-tag elements."
4790
+ }
4791
+ ],
4792
+ "examples": [
4793
+ "<quantic-tag-group ><quantic-tag size=\"md\">Compute</quantic-tag><quantic-tag size=\"md\">Storage</quantic-tag><quantic-tag size=\"md\">Networking</quantic-tag></quantic-tag-group>",
4794
+ "<quantic-tag-group aria-label=\"Applied filters\">\n <quantic-tag dismissible>Compute</quantic-tag>\n <quantic-tag dismissible>Storage</quantic-tag>\n <quantic-tag dismissible>Networking</quantic-tag>\n </quantic-tag-group>",
4795
+ "<quantic-tag-group aria-label=\"Cluster state\">\n <quantic-tag>Compute</quantic-tag>\n <quantic-status-tag color=\"success\">Healthy</quantic-status-tag>\n <quantic-count-tag count=\"12\">Nodes</quantic-count-tag>\n </quantic-tag-group>",
4796
+ "<quantic-tag-group aria-label=\"Cluster capabilities\"><quantic-tag size=\"md\">Compute</quantic-tag><quantic-tag size=\"md\">Storage</quantic-tag><quantic-tag size=\"md\">Networking</quantic-tag></quantic-tag-group>",
4797
+ "<quantic-tag-group ><quantic-tag size=\"md\">Compute</quantic-tag><quantic-tag size=\"md\">Storage</quantic-tag><quantic-tag size=\"md\">Networking</quantic-tag><quantic-tag size=\"md\">Scheduling</quantic-tag><quantic-tag size=\"md\">Monitoring</quantic-tag><quantic-tag size=\"md\">Provisioning</quantic-tag><quantic-tag size=\"md\">Authentication</quantic-tag><quantic-tag size=\"md\">Observability</quantic-tag></quantic-tag-group>"
4798
+ ],
4799
+ "relatedTo": [
4800
+ "quantic-tag",
4801
+ "quantic-badge-group"
4802
+ ],
4803
+ "subComponents": [
4804
+ "quantic-tag",
4805
+ "quantic-status-tag",
4806
+ "quantic-count-tag"
4807
+ ]
4808
+ },
4634
4809
  {
4635
4810
  "tag": "quantic-text",
4636
4811
  "description": "Typography component for rendering text with consistent sizing, weight, and color tokens. Renders any HTML element via the `as` prop for semantic correctness.",
@@ -8,16 +8,16 @@ import { css, html } from 'lit';
8
8
  import { QuanticElement, quanticElement } from '../shared/quantic-element';
9
9
  import { provide } from '@lit/context';
10
10
  import { PaginationSize } from './index.constants';
11
- import { sizeContext } from '../button-group/index.context';
11
+ import { sizeContext } from '../button-bar/index.context';
12
12
  import { getPageNumbers } from './pagination.utils';
13
- import { ButtonGroup, ButtonGroupItem } from '../button-group';
13
+ import { ButtonBar, ButtonBarItem } from '../button-bar';
14
14
  import { LucideIconArrowLeft } from '../icon/__generated__/lucide/arrow-left';
15
15
  import { LucideIconArrowRight } from '../icon/__generated__/lucide/arrow-right';
16
16
  import { event, prop } from '../shared/component-meta.decorators';
17
17
  LucideIconArrowLeft.ensureDefined();
18
18
  LucideIconArrowRight.ensureDefined();
19
- ButtonGroup.ensureDefined();
20
- ButtonGroupItem.ensureDefined();
19
+ ButtonBar.ensureDefined();
20
+ ButtonBarItem.ensureDefined();
21
21
  let Pagination = class Pagination extends QuanticElement {
22
22
  constructor() {
23
23
  super(...arguments);
@@ -48,8 +48,8 @@ let Pagination = class Pagination extends QuanticElement {
48
48
  const pageNumbers = getPageNumbers(this.currentPage, this.totalPages, this.maxDisplayedPages);
49
49
  return html `
50
50
  <nav role="navigation" aria-label="Pagination">
51
- <quantic-button-group size=${this.size}>
52
- <quantic-button-group-item
51
+ <quantic-button-bar size=${this.size}>
52
+ <quantic-button-bar-item
53
53
  ?disabled=${isPrevDisabled}
54
54
  @click=${this._handlePrevious}
55
55
  aria-label="Go to previous page"
@@ -58,26 +58,26 @@ let Pagination = class Pagination extends QuanticElement {
58
58
  size="xs"
59
59
  class="icon"
60
60
  ></quantic-icon-lucide-arrow-left>
61
- </quantic-button-group-item>
61
+ </quantic-button-bar-item>
62
62
 
63
63
  ${pageNumbers.map((page) => page === 'ellipsis'
64
64
  ? html `
65
- <quantic-button-group-item disabled>
65
+ <quantic-button-bar-item disabled>
66
66
  ...
67
- </quantic-button-group-item>
67
+ </quantic-button-bar-item>
68
68
  `
69
69
  : html `
70
- <quantic-button-group-item
70
+ <quantic-button-bar-item
71
71
  ?active=${page === this.currentPage}
72
72
  @click=${() => this._handlePageChange(page)}
73
73
  aria-label="Go to page ${page}"
74
74
  aria-current=${page === this.currentPage ? 'page' : 'false'}
75
75
  >
76
76
  ${page}
77
- </quantic-button-group-item>
77
+ </quantic-button-bar-item>
78
78
  `)}
79
79
 
80
- <quantic-button-group-item
80
+ <quantic-button-bar-item
81
81
  ?disabled=${isNextDisabled}
82
82
  @click=${this._handleNext}
83
83
  aria-label="Go to next page"
@@ -86,8 +86,8 @@ let Pagination = class Pagination extends QuanticElement {
86
86
  size="xs"
87
87
  class="icon"
88
88
  ></quantic-icon-lucide-arrow-right>
89
- </quantic-button-group-item>
90
- </quantic-button-group>
89
+ </quantic-button-bar-item>
90
+ </quantic-button-bar>
91
91
  </nav>
92
92
  `;
93
93
  }
@@ -97,7 +97,7 @@ Pagination.meta = {
97
97
  description: 'Page navigation control with previous/next and numbered page buttons. ' +
98
98
  'Emits page-change events; the host is responsible for updating currentPage.',
99
99
  category: 'navigation',
100
- relatedTo: ['quantic-button-group'],
100
+ relatedTo: ['quantic-button-bar'],
101
101
  };
102
102
  Pagination.styles = css `
103
103
  .icon {