@camunda/design-system 0.46.2 → 0.48.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 (79) hide show
  1. package/dist/carbon-compat/filterable-multi-select.d.ts +1 -1
  2. package/dist/carbon-compat/filterable-multi-select.d.ts.map +1 -1
  3. package/dist/carbon-compat/filterable-multi-select.js +7 -2
  4. package/dist/carbon-compat/filterable-multi-select.js.map +1 -1
  5. package/dist/carbon-compat/multi-select.d.ts +1 -1
  6. package/dist/carbon-compat/multi-select.d.ts.map +1 -1
  7. package/dist/carbon-compat/multi-select.js +7 -2
  8. package/dist/carbon-compat/multi-select.js.map +1 -1
  9. package/dist/carbon-compat/text-area.d.ts.map +1 -1
  10. package/dist/carbon-compat/text-area.js +23 -5
  11. package/dist/carbon-compat/text-area.js.map +1 -1
  12. package/dist/carbon-compat/text-input.d.ts.map +1 -1
  13. package/dist/carbon-compat/text-input.js +18 -2
  14. package/dist/carbon-compat/text-input.js.map +1 -1
  15. package/dist/carbon-compat/time-picker.d.ts.map +1 -1
  16. package/dist/carbon-compat/time-picker.js +15 -2
  17. package/dist/carbon-compat/time-picker.js.map +1 -1
  18. package/dist/src/components/ui/alert-dialog.js +2 -2
  19. package/dist/src/components/ui/alert-dialog.js.map +1 -1
  20. package/dist/src/components/ui/app-header.d.ts.map +1 -1
  21. package/dist/src/components/ui/app-header.js +1 -1
  22. package/dist/src/components/ui/app-header.js.map +1 -1
  23. package/dist/src/components/ui/app-sidebar.js +1 -1
  24. package/dist/src/components/ui/app-sidebar.js.map +1 -1
  25. package/dist/src/components/ui/breadcrumb.d.ts.map +1 -1
  26. package/dist/src/components/ui/breadcrumb.js +2 -1
  27. package/dist/src/components/ui/breadcrumb.js.map +1 -1
  28. package/dist/src/components/ui/card.js +1 -1
  29. package/dist/src/components/ui/card.js.map +1 -1
  30. package/dist/src/components/ui/choice-card.d.ts.map +1 -1
  31. package/dist/src/components/ui/choice-card.js +2 -1
  32. package/dist/src/components/ui/choice-card.js.map +1 -1
  33. package/dist/src/components/ui/data-table.d.ts +25 -2
  34. package/dist/src/components/ui/data-table.d.ts.map +1 -1
  35. package/dist/src/components/ui/data-table.js +49 -6
  36. package/dist/src/components/ui/data-table.js.map +1 -1
  37. package/dist/src/components/ui/dialog.d.ts.map +1 -1
  38. package/dist/src/components/ui/dialog.js +2 -2
  39. package/dist/src/components/ui/dialog.js.map +1 -1
  40. package/dist/src/components/ui/empty-state.d.ts +1 -1
  41. package/dist/src/components/ui/empty-state.d.ts.map +1 -1
  42. package/dist/src/components/ui/empty-state.js +2 -1
  43. package/dist/src/components/ui/empty-state.js.map +1 -1
  44. package/dist/src/components/ui/label.d.ts.map +1 -1
  45. package/dist/src/components/ui/label.js +2 -1
  46. package/dist/src/components/ui/label.js.map +1 -1
  47. package/dist/src/components/ui/multi-select.d.ts.map +1 -1
  48. package/dist/src/components/ui/multi-select.js +38 -3
  49. package/dist/src/components/ui/multi-select.js.map +1 -1
  50. package/dist/src/components/ui/nav-breadcrumb.d.ts.map +1 -1
  51. package/dist/src/components/ui/nav-breadcrumb.js +12 -3
  52. package/dist/src/components/ui/nav-breadcrumb.js.map +1 -1
  53. package/dist/src/components/ui/notifications.d.ts.map +1 -1
  54. package/dist/src/components/ui/notifications.js +2 -1
  55. package/dist/src/components/ui/notifications.js.map +1 -1
  56. package/dist/src/components/ui/sheet.js +1 -1
  57. package/dist/src/components/ui/sheet.js.map +1 -1
  58. package/dist/src/components/ui/table.d.ts.map +1 -1
  59. package/dist/src/components/ui/table.js +2 -1
  60. package/dist/src/components/ui/table.js.map +1 -1
  61. package/dist/src/components/ui/toast.d.ts.map +1 -1
  62. package/dist/src/components/ui/toast.js +39 -3
  63. package/dist/src/components/ui/toast.js.map +1 -1
  64. package/dist/src/components/ui/tree-view.d.ts.map +1 -1
  65. package/dist/src/components/ui/tree-view.js +2 -2
  66. package/dist/src/components/ui/tree-view.js.map +1 -1
  67. package/dist/src/components/ui/typography.d.ts +1 -1
  68. package/dist/src/components/ui/typography.d.ts.map +1 -1
  69. package/dist/src/components/ui/typography.js +5 -3
  70. package/dist/src/components/ui/typography.js.map +1 -1
  71. package/dist/src/lib/focus-visible-on-close.d.ts.map +1 -1
  72. package/dist/src/lib/focus-visible-on-close.js +14 -7
  73. package/dist/src/lib/focus-visible-on-close.js.map +1 -1
  74. package/dist/src/lib/inert-aria-hidden.d.ts +20 -6
  75. package/dist/src/lib/inert-aria-hidden.d.ts.map +1 -1
  76. package/dist/src/lib/inert-aria-hidden.js +57 -9
  77. package/dist/src/lib/inert-aria-hidden.js.map +1 -1
  78. package/dist/styles.css +49 -0
  79. package/package.json +8 -8
@@ -9,12 +9,26 @@
9
9
  * (WCAG 4.1.2 / 2.4.3) on every consuming app. Radix's pinned version uses
10
10
  * `hideOthers()`, not `inertOthers()`, so we add `inert` ourselves.
11
11
  *
12
- * Scope: only direct children of `document.body` are inerted — those are the
13
- * real page-background roots (app root, portal-less content). This matches
14
- * Radix's default body-level portals: `hideOthers()` marks the portal's
15
- * body-level siblings (the background) plus the overlay's in-portal sibling
16
- * (the backdrop). The backdrop lives *inside* the portal (not a body child), so
17
- * it is left untouched — inerting it would block click-outside-to-close.
12
+ * Scope: only direct children of `document.body` are candidates — those are the
13
+ * real page-background roots (app root, portal-less content) and Radix's
14
+ * body-level overlay portals. `hideOthers()` marks the background plus any
15
+ * *lower* overlay portal, always leaving the active (topmost) layer's own
16
+ * portal unmarked. The overlay's backdrop lives *inside* its portal (not a body
17
+ * child), so it is left untouched — inerting it would block click-outside.
18
+ *
19
+ * Exception (#497): a marked body child that HOSTS a still-open modal layer
20
+ * (`[role="dialog"]` / `[role="alertdialog"]`) is NOT inerted while the active
21
+ * (unmarked) top layer is a non-modal popper (Select, DropdownMenu, Popover).
22
+ * Such a popper is a *child* layer of the modal, not a replacement for it:
23
+ * inerting the modal makes its content non-hit-testable, so the modal's own
24
+ * dismissable layer reads the popper-close `pointerdown` as "outside" and tears
25
+ * the modal down on the same event — leaking `document.body`'s
26
+ * `pointer-events: none` and killing the whole app. When the active top layer is
27
+ * instead another modal (Dialog over Dialog), the lower modal genuinely IS
28
+ * background and stays inerted, preserving #259 for stacked modals. Deeper
29
+ * background under a stack is protected for free: `hideOthers()` only re-writes
30
+ * attributes on a node's *first* hide, so an already-inerted deep-background
31
+ * element never re-runs `sync()` and keeps its `inert`.
18
32
  *
19
33
  * Known limitation: an app that both mounts into a non-body container AND
20
34
  * configures Radix to portal inside that same container would have its
@@ -1 +1 @@
1
- {"version":3,"file":"inert-aria-hidden.d.ts","sourceRoot":"","sources":["../../../src/lib/inert-aria-hidden.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAUH;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAqC7C"}
1
+ {"version":3,"file":"inert-aria-hidden.d.ts","sourceRoot":"","sources":["../../../src/lib/inert-aria-hidden.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AA2CH;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CA4C7C"}
@@ -9,12 +9,26 @@
9
9
  * (WCAG 4.1.2 / 2.4.3) on every consuming app. Radix's pinned version uses
10
10
  * `hideOthers()`, not `inertOthers()`, so we add `inert` ourselves.
11
11
  *
12
- * Scope: only direct children of `document.body` are inerted — those are the
13
- * real page-background roots (app root, portal-less content). This matches
14
- * Radix's default body-level portals: `hideOthers()` marks the portal's
15
- * body-level siblings (the background) plus the overlay's in-portal sibling
16
- * (the backdrop). The backdrop lives *inside* the portal (not a body child), so
17
- * it is left untouched — inerting it would block click-outside-to-close.
12
+ * Scope: only direct children of `document.body` are candidates — those are the
13
+ * real page-background roots (app root, portal-less content) and Radix's
14
+ * body-level overlay portals. `hideOthers()` marks the background plus any
15
+ * *lower* overlay portal, always leaving the active (topmost) layer's own
16
+ * portal unmarked. The overlay's backdrop lives *inside* its portal (not a body
17
+ * child), so it is left untouched — inerting it would block click-outside.
18
+ *
19
+ * Exception (#497): a marked body child that HOSTS a still-open modal layer
20
+ * (`[role="dialog"]` / `[role="alertdialog"]`) is NOT inerted while the active
21
+ * (unmarked) top layer is a non-modal popper (Select, DropdownMenu, Popover).
22
+ * Such a popper is a *child* layer of the modal, not a replacement for it:
23
+ * inerting the modal makes its content non-hit-testable, so the modal's own
24
+ * dismissable layer reads the popper-close `pointerdown` as "outside" and tears
25
+ * the modal down on the same event — leaking `document.body`'s
26
+ * `pointer-events: none` and killing the whole app. When the active top layer is
27
+ * instead another modal (Dialog over Dialog), the lower modal genuinely IS
28
+ * background and stays inerted, preserving #259 for stacked modals. Deeper
29
+ * background under a stack is protected for free: `hideOthers()` only re-writes
30
+ * attributes on a node's *first* hide, so an already-inerted deep-background
31
+ * element never re-runs `sync()` and keeps its `inert`.
18
32
  *
19
33
  * Known limitation: an app that both mounts into a non-body container AND
20
34
  * configures Radix to portal inside that same container would have its
@@ -26,10 +40,37 @@
26
40
  * a consumer's own `inert` is never clobbered.
27
41
  */
28
42
  const HIDDEN_SELECTOR = '[data-aria-hidden][aria-hidden="true"]';
43
+ // Modal layers that must stay hit-testable while a child popper is open (#497).
44
+ const MODAL_LAYER_SELECTOR = '[role="dialog"], [role="alertdialog"]';
45
+ // Non-modal overlay layers that portal to body as a *child* of an open modal:
46
+ // Radix popper-positioned content (Select, DropdownMenu, Popover) plus the
47
+ // item-aligned Select fallback, which has no popper wrapper but is a listbox.
48
+ const CHILD_POPPER_SELECTOR = '[data-radix-popper-content-wrapper], [role="listbox"], [role="menu"]';
29
49
  let installed = false;
30
50
  function isBackgroundRoot(el) {
31
51
  return el.parentElement === document.body && el instanceof HTMLElement;
32
52
  }
53
+ // True when a body-level portal currently hosts an *active* (unmarked by
54
+ // `hideOthers()`) non-modal popper — i.e. a Select/DropdownMenu/Popover is open
55
+ // as the top layer above a modal (#497).
56
+ function hasActivePopperLayer() {
57
+ for (const child of document.body.children) {
58
+ if (!child.matches(HIDDEN_SELECTOR) &&
59
+ child.querySelector(CHILD_POPPER_SELECTOR)) {
60
+ return true;
61
+ }
62
+ }
63
+ return false;
64
+ }
65
+ function shouldInert(el) {
66
+ if (!el.matches(HIDDEN_SELECTOR))
67
+ return false;
68
+ // #497 — leave a modal's portal hit-testable while its child popper is open.
69
+ if (el.querySelector(MODAL_LAYER_SELECTOR) && hasActivePopperLayer()) {
70
+ return false;
71
+ }
72
+ return true;
73
+ }
33
74
  /**
34
75
  * Installs a single document-wide observer that keeps `inert` in sync with the
35
76
  * `data-aria-hidden` marker Radix applies. Idempotent — safe to call from every
@@ -43,12 +84,15 @@ export function installAriaHiddenInert() {
43
84
  const sync = (el) => {
44
85
  if (!isBackgroundRoot(el))
45
86
  return;
46
- const shouldInert = el.matches(HIDDEN_SELECTOR);
47
- if (shouldInert && !el.inert) {
87
+ // Decide first, clean up second — an element that stops qualifying (e.g. a
88
+ // modal whose child popper just opened) must have any `inert` we own cleared
89
+ // rather than early-returning past the cleanup branch.
90
+ const wantInert = shouldInert(el);
91
+ if (wantInert && !el.inert) {
48
92
  el.inert = true;
49
93
  owned.add(el);
50
94
  }
51
- else if (!shouldInert && owned.has(el)) {
95
+ else if (!wantInert && owned.has(el)) {
52
96
  el.inert = false;
53
97
  owned.delete(el);
54
98
  }
@@ -67,6 +111,10 @@ export function installAriaHiddenInert() {
67
111
  // already marked at install time is handled by the scan above. Clearing the
68
112
  // marker on close removes `inert` here; the FocusRestoredOnClose regression
69
113
  // story guards that this lands before Radix restores focus to the trigger.
114
+ // The #497 skip needs no extra observer: a modal's portal is (un)marked on the
115
+ // same `aria-hidden` toggle when its child popper opens/closes, so `sync()`
116
+ // re-runs `shouldInert()` — which re-reads the live active-popper state — at
117
+ // exactly the moments the decision can change.
70
118
  observer.observe(document.body, {
71
119
  subtree: true,
72
120
  attributes: true,
@@ -1 +1 @@
1
- {"version":3,"file":"inert-aria-hidden.js","sourceRoot":"","sources":["../../../src/lib/inert-aria-hidden.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,eAAe,GAAG,wCAAwC,CAAC;AAEjE,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,SAAS,gBAAgB,CAAC,EAAW;IACnC,OAAO,EAAE,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI,IAAI,EAAE,YAAY,WAAW,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,SAAS;QAAE,OAAO;IACzD,SAAS,GAAG,IAAI,CAAC;IAEjB,MAAM,KAAK,GAAG,IAAI,OAAO,EAAe,CAAC;IAEzC,MAAM,IAAI,GAAG,CAAC,EAAW,EAAE,EAAE;QAC3B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAAE,OAAO;QAClC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAChD,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC7B,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;YAChB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;aAAM,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,8EAA8E;IAC9E,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE;QAChD,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,MAAiB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC9B,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;KACrD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"inert-aria-hidden.js","sourceRoot":"","sources":["../../../src/lib/inert-aria-hidden.ts"],"names":[],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -95,6 +95,7 @@
95
95
  --container-md: 28rem;
96
96
  --container-xl: 36rem;
97
97
  --container-2xl: 42rem;
98
+ --container-3xl: 48rem;
98
99
  --container-5xl: 64rem;
99
100
  --text-xs: 0.75rem;
100
101
  --text-xs--line-height: calc(1 / 0.75);
@@ -161,6 +162,9 @@
161
162
  container-type: inline-size;
162
163
  container-name: card-header;
163
164
  }
165
+ .pointer-events-auto {
166
+ pointer-events: auto;
167
+ }
164
168
  .pointer-events-none {
165
169
  pointer-events: none;
166
170
  }
@@ -505,6 +509,18 @@
505
509
  .ml-auto {
506
510
  margin-left: auto;
507
511
  }
512
+ .line-clamp-2 {
513
+ overflow: hidden;
514
+ display: -webkit-box;
515
+ -webkit-box-orient: vertical;
516
+ -webkit-line-clamp: 2;
517
+ }
518
+ .line-clamp-4 {
519
+ overflow: hidden;
520
+ display: -webkit-box;
521
+ -webkit-box-orient: vertical;
522
+ -webkit-line-clamp: 4;
523
+ }
508
524
  .block {
509
525
  display: block;
510
526
  }
@@ -708,6 +724,9 @@
708
724
  .h-auto {
709
725
  height: auto;
710
726
  }
727
+ .h-auto\! {
728
+ height: auto !important;
729
+ }
711
730
  .h-full {
712
731
  height: 100%;
713
732
  }
@@ -735,6 +754,9 @@
735
754
  .max-h-\[60vh\] {
736
755
  max-height: 60vh;
737
756
  }
757
+ .max-h-\[356px\] {
758
+ max-height: 356px;
759
+ }
738
760
  .max-h-\[calc\(100dvh-2rem\)\] {
739
761
  max-height: calc(100dvh - 2rem);
740
762
  }
@@ -921,9 +943,15 @@
921
943
  .w-full {
922
944
  width: 100%;
923
945
  }
946
+ .max-w-3xl {
947
+ max-width: var(--container-3xl);
948
+ }
924
949
  .max-w-5xl {
925
950
  max-width: var(--container-5xl);
926
951
  }
952
+ .max-w-48 {
953
+ max-width: calc(var(--spacing) * 48);
954
+ }
927
955
  .max-w-\[200px\] {
928
956
  max-width: 200px;
929
957
  }
@@ -2004,6 +2032,9 @@
2004
2032
  .text-right {
2005
2033
  text-align: right;
2006
2034
  }
2035
+ .align-bottom {
2036
+ vertical-align: bottom;
2037
+ }
2007
2038
  .align-middle {
2008
2039
  vertical-align: middle;
2009
2040
  }
@@ -3048,6 +3079,9 @@
3048
3079
  .aria-disabled\:cursor-default[aria-disabled="true"] {
3049
3080
  cursor: default;
3050
3081
  }
3082
+ .aria-disabled\:cursor-not-allowed[aria-disabled="true"] {
3083
+ cursor: not-allowed;
3084
+ }
3051
3085
  .aria-disabled\:bg-danger-action-disabled[aria-disabled="true"] {
3052
3086
  background-color: var(--danger-action-disabled);
3053
3087
  }
@@ -3111,6 +3145,9 @@
3111
3145
  .data-\[focus-visible-restore\]\:ring-ring[data-focus-visible-restore] {
3112
3146
  --tw-ring-color: var(--ring);
3113
3147
  }
3148
+ .data-\[expanded\=false\]\:data-\[front\=false\]\:h-auto\![data-expanded="false"][data-front="false"] {
3149
+ height: auto !important;
3150
+ }
3114
3151
  .data-\[inset\]\:pl-8[data-inset] {
3115
3152
  padding-left: calc(var(--spacing) * 8);
3116
3153
  }
@@ -3318,6 +3355,12 @@
3318
3355
  .md\:hidden {
3319
3356
  display: none;
3320
3357
  }
3358
+ .md\:inline-flex {
3359
+ display: inline-flex;
3360
+ }
3361
+ .md\:list-item {
3362
+ display: list-item;
3363
+ }
3321
3364
  .md\:grid-cols-4 {
3322
3365
  grid-template-columns: repeat(4, minmax(0, 1fr));
3323
3366
  }
@@ -3354,9 +3397,15 @@
3354
3397
  .lg\:col-span-8 {
3355
3398
  grid-column: span 8 / span 8;
3356
3399
  }
3400
+ .lg\:contents {
3401
+ display: contents;
3402
+ }
3357
3403
  .lg\:flex {
3358
3404
  display: flex;
3359
3405
  }
3406
+ .lg\:inline {
3407
+ display: inline;
3408
+ }
3360
3409
  .lg\:w-2\/3 {
3361
3410
  width: calc(2 / 3 * 100%);
3362
3411
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/design-system",
3
- "version": "0.46.2",
3
+ "version": "0.48.0",
4
4
  "description": "Camunda's AI-first design system. shadcn + Tailwind components, design tokens aligned to Camunda's identity, and AI tooling for component authoring + migration.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -99,7 +99,7 @@
99
99
  "clsx": "2.1.1",
100
100
  "cmdk": "1.1.1",
101
101
  "date-fns": "^4.4.0",
102
- "lucide-react": "1.25.0",
102
+ "lucide-react": "^1.25.0",
103
103
  "radix-ui": "1.4.3",
104
104
  "react-day-picker": "^10.0.1",
105
105
  "recharts": "^3.8.1",
@@ -116,11 +116,11 @@
116
116
  "@eslint/js": "9.39.5",
117
117
  "@fontsource/geist-sans": "5.3.0",
118
118
  "@playwright/test": "1.61.1",
119
- "@storybook/addon-a11y": "10.4.6",
120
- "@storybook/addon-docs": "10.4.6",
121
- "@storybook/addon-links": "10.4.6",
122
- "@storybook/react": "10.4.6",
123
- "@storybook/react-vite": "10.4.6",
119
+ "@storybook/addon-a11y": "10.5.10",
120
+ "@storybook/addon-docs": "10.5.10",
121
+ "@storybook/addon-links": "10.5.10",
122
+ "@storybook/react": "10.5.10",
123
+ "@storybook/react-vite": "10.5.10",
124
124
  "@storybook/test-runner": "^0.24.4",
125
125
  "@tailwindcss/cli": "^4.3.2",
126
126
  "@tailwindcss/vite": "4.3.3",
@@ -142,7 +142,7 @@
142
142
  "remark-gfm": "^4.0.1",
143
143
  "rimraf": "6.1.3",
144
144
  "shadcn": "4.13.1",
145
- "storybook": "10.4.6",
145
+ "storybook": "10.5.10",
146
146
  "tailwindcss": "4.3.3",
147
147
  "tailwindcss-scoped-preflight": "4.0.6",
148
148
  "tsc-alias": "1.9.1",