@retray-dev/ui-kit 10.2.0 → 12.2.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 (220) hide show
  1. package/COMPONENTS.md +384 -40
  2. package/README.md +14 -5
  3. package/dist/Accordion.d.mts +6 -0
  4. package/dist/Accordion.d.ts +6 -0
  5. package/dist/Accordion.js +16 -0
  6. package/dist/Accordion.mjs +2 -2
  7. package/dist/AlertBanner.js +2 -0
  8. package/dist/AlertBanner.mjs +2 -2
  9. package/dist/AppHeader.js +2 -0
  10. package/dist/AppHeader.mjs +3 -3
  11. package/dist/Avatar.js +2 -0
  12. package/dist/Avatar.mjs +2 -2
  13. package/dist/Badge.js +2 -0
  14. package/dist/Badge.mjs +2 -2
  15. package/dist/Button.js +17 -17
  16. package/dist/Button.mjs +2 -2
  17. package/dist/Card.js +2 -0
  18. package/dist/Card.mjs +2 -2
  19. package/dist/CategoryStrip.js +2 -0
  20. package/dist/CategoryStrip.mjs +2 -2
  21. package/dist/Checkbox.js +2 -0
  22. package/dist/Checkbox.mjs +2 -2
  23. package/dist/Chip.js +2 -0
  24. package/dist/Chip.mjs +2 -2
  25. package/dist/ConfirmDialog.d.mts +1 -6
  26. package/dist/ConfirmDialog.d.ts +1 -6
  27. package/dist/ConfirmDialog.js +53 -41
  28. package/dist/ConfirmDialog.mjs +3 -3
  29. package/dist/CurrencyDisplay.js +2 -0
  30. package/dist/CurrencyDisplay.mjs +2 -2
  31. package/dist/CurrencyInput.d.mts +3 -8
  32. package/dist/CurrencyInput.d.ts +3 -8
  33. package/dist/CurrencyInput.js +5 -1
  34. package/dist/CurrencyInput.mjs +3 -3
  35. package/dist/DetailRow.js +2 -0
  36. package/dist/DetailRow.mjs +2 -2
  37. package/dist/EmptyState.js +17 -17
  38. package/dist/EmptyState.mjs +3 -3
  39. package/dist/ErrorBoundary.js +2 -0
  40. package/dist/ErrorBoundary.mjs +2 -2
  41. package/dist/Form.js +2 -0
  42. package/dist/Form.mjs +2 -2
  43. package/dist/IconButton.js +2 -0
  44. package/dist/IconButton.mjs +2 -2
  45. package/dist/IconPicker.js +677 -248
  46. package/dist/IconPicker.mjs +3 -2
  47. package/dist/ImageUpload.d.mts +3 -1
  48. package/dist/ImageUpload.d.ts +3 -1
  49. package/dist/ImageUpload.js +10 -3
  50. package/dist/ImageUpload.mjs +3 -3
  51. package/dist/ImageViewer.js +2 -0
  52. package/dist/ImageViewer.mjs +4 -4
  53. package/dist/Input.js +2 -0
  54. package/dist/Input.mjs +2 -2
  55. package/dist/LabelValue.js +2 -0
  56. package/dist/LabelValue.mjs +2 -2
  57. package/dist/ListGroup.js +2 -0
  58. package/dist/ListGroup.mjs +2 -2
  59. package/dist/ListItem.d.mts +7 -7
  60. package/dist/ListItem.d.ts +7 -7
  61. package/dist/ListItem.js +14 -7
  62. package/dist/ListItem.mjs +2 -2
  63. package/dist/MediaCard.js +2 -0
  64. package/dist/MediaCard.mjs +2 -2
  65. package/dist/MenuGroup.js +2 -0
  66. package/dist/MenuGroup.mjs +2 -2
  67. package/dist/MenuItem.js +2 -0
  68. package/dist/MenuItem.mjs +2 -2
  69. package/dist/MonthPicker.js +2 -0
  70. package/dist/MonthPicker.mjs +2 -2
  71. package/dist/NumberStepper.js +2 -0
  72. package/dist/NumberStepper.mjs +2 -2
  73. package/dist/PagerDots.js +2 -0
  74. package/dist/PagerDots.mjs +2 -2
  75. package/dist/Pressable.d.mts +15 -7
  76. package/dist/Pressable.d.ts +15 -7
  77. package/dist/Pressable.js +7 -3
  78. package/dist/Pressable.mjs +1 -1
  79. package/dist/PricingCard.js +17 -17
  80. package/dist/PricingCard.mjs +4 -4
  81. package/dist/Progress.js +2 -0
  82. package/dist/Progress.mjs +2 -2
  83. package/dist/RadioGroup.js +2 -0
  84. package/dist/RadioGroup.mjs +2 -2
  85. package/dist/RetrayProvider.d.mts +1 -1
  86. package/dist/RetrayProvider.d.ts +1 -1
  87. package/dist/RetrayProvider.js +2 -0
  88. package/dist/RetrayProvider.mjs +3 -3
  89. package/dist/Select.js +2 -0
  90. package/dist/Select.mjs +2 -2
  91. package/dist/SelectableCard.d.mts +27 -0
  92. package/dist/SelectableCard.d.ts +27 -0
  93. package/dist/SelectableCard.js +511 -0
  94. package/dist/SelectableCard.mjs +8 -0
  95. package/dist/SelectableGrid.js +2 -0
  96. package/dist/SelectableGrid.mjs +2 -2
  97. package/dist/Separator.js +2 -0
  98. package/dist/Separator.mjs +2 -2
  99. package/dist/Sheet.d.mts +4 -46
  100. package/dist/Sheet.d.ts +4 -46
  101. package/dist/Sheet.js +55 -115
  102. package/dist/Sheet.mjs +2 -3
  103. package/dist/SheetSelect.js +2 -0
  104. package/dist/SheetSelect.mjs +2 -2
  105. package/dist/Skeleton.d.mts +3 -1
  106. package/dist/Skeleton.d.ts +3 -1
  107. package/dist/Skeleton.js +5 -2
  108. package/dist/Skeleton.mjs +2 -2
  109. package/dist/Slider.js +2 -0
  110. package/dist/Slider.mjs +2 -2
  111. package/dist/Spinner.js +2 -0
  112. package/dist/Spinner.mjs +2 -2
  113. package/dist/Stats.d.mts +33 -0
  114. package/dist/Stats.d.ts +33 -0
  115. package/dist/Stats.js +453 -0
  116. package/dist/Stats.mjs +9 -0
  117. package/dist/Switch.js +2 -0
  118. package/dist/Switch.mjs +2 -2
  119. package/dist/TabBar.js +2 -0
  120. package/dist/TabBar.mjs +2 -2
  121. package/dist/Tabs.js +2 -0
  122. package/dist/Tabs.mjs +2 -2
  123. package/dist/Text.d.mts +3 -1
  124. package/dist/Text.d.ts +3 -1
  125. package/dist/Text.js +5 -3
  126. package/dist/Text.mjs +2 -2
  127. package/dist/Textarea.js +2 -0
  128. package/dist/Textarea.mjs +2 -2
  129. package/dist/Toast.js +2 -0
  130. package/dist/Toast.mjs +2 -2
  131. package/dist/Toggle.js +2 -0
  132. package/dist/Toggle.mjs +2 -2
  133. package/dist/{chunk-U2XJFYED.mjs → chunk-2BA3JMKK.mjs} +1 -1
  134. package/dist/{chunk-NMU5FMQJ.mjs → chunk-2HFD4IHU.mjs} +4 -2
  135. package/dist/{chunk-S2R7UVOE.mjs → chunk-2LG326TT.mjs} +1 -1
  136. package/dist/chunk-2P2CB235.mjs +236 -0
  137. package/dist/{chunk-6L4G6PBT.mjs → chunk-3XCFYSX4.mjs} +1 -1
  138. package/dist/{chunk-HTHGSXFG.mjs → chunk-4J2PXL36.mjs} +16 -18
  139. package/dist/{chunk-BEMIQXXU.mjs → chunk-4OORJ2DY.mjs} +1 -1
  140. package/dist/chunk-4XOB5TTD.mjs +166 -0
  141. package/dist/{chunk-FCSSQK3L.mjs → chunk-57V2LXCK.mjs} +1 -1
  142. package/dist/{chunk-6Q64UFIA.mjs → chunk-7AFZWSCI.mjs} +1 -1
  143. package/dist/{chunk-IX3NYLYQ.mjs → chunk-7ELGZ66G.mjs} +1 -1
  144. package/dist/{chunk-GD6KXMG5.mjs → chunk-AENAVIKT.mjs} +1 -1
  145. package/dist/{chunk-ID72TK46.mjs → chunk-BXF4AMHY.mjs} +1 -1
  146. package/dist/{chunk-SOA2Z4RB.mjs → chunk-C43HRKXH.mjs} +1 -1
  147. package/dist/{chunk-TZDGAP5N.mjs → chunk-CF27NBXO.mjs} +11 -6
  148. package/dist/{chunk-SXLKNTA4.mjs → chunk-DF7JA72E.mjs} +1 -1
  149. package/dist/{chunk-AJRVDP2H.mjs → chunk-E5UKLSJZ.mjs} +3 -3
  150. package/dist/{chunk-MBMXYJJV.mjs → chunk-E7NEHHXV.mjs} +7 -3
  151. package/dist/{chunk-VKID2D2I.mjs → chunk-EDLCGYIO.mjs} +13 -8
  152. package/dist/{chunk-BUMAMSTZ.mjs → chunk-ELGEOM7I.mjs} +1 -1
  153. package/dist/{chunk-DYT7BG5I.mjs → chunk-F3YTWO3T.mjs} +1 -1
  154. package/dist/{chunk-VF2ATYN3.mjs → chunk-GH67YXG6.mjs} +1 -1
  155. package/dist/{chunk-WJLKJMKR.mjs → chunk-GUTDFUNF.mjs} +4 -4
  156. package/dist/{chunk-6SECQ2ZF.mjs → chunk-HC4VVCWY.mjs} +2 -2
  157. package/dist/{chunk-A3A6KNQN.mjs → chunk-HEDQPK4I.mjs} +1 -1
  158. package/dist/{chunk-GQYFLP3D.mjs → chunk-IVSRW4HS.mjs} +1 -1
  159. package/dist/{chunk-KOO4WITD.mjs → chunk-KSUWPU2F.mjs} +1 -1
  160. package/dist/{chunk-WBOOUHSS.mjs → chunk-LIS6I5UP.mjs} +1 -1
  161. package/dist/{chunk-X4G6APW6.mjs → chunk-LNPKGWBG.mjs} +1 -1
  162. package/dist/{chunk-T2KCAHOS.mjs → chunk-LOBLCFMN.mjs} +1 -1
  163. package/dist/{chunk-ELXBDILQ.mjs → chunk-LPV4NJJK.mjs} +2 -2
  164. package/dist/{chunk-Y2NS74WS.mjs → chunk-M3C7XM2M.mjs} +53 -99
  165. package/dist/{chunk-BRKYVJVV.mjs → chunk-MEPSKGBO.mjs} +1 -1
  166. package/dist/{chunk-TBNZHU6C.mjs → chunk-MVMGPZN6.mjs} +2 -2
  167. package/dist/{chunk-YJ7I257J.mjs → chunk-NHDI3VQB.mjs} +15 -1
  168. package/dist/{chunk-Z6SFHN6T.mjs → chunk-NJG7DHVF.mjs} +1 -1
  169. package/dist/{chunk-RYZC432S.mjs → chunk-NLZY4TXU.mjs} +1 -1
  170. package/dist/{chunk-ZZ2R6KZ3.mjs → chunk-OLVJFKXS.mjs} +1 -1
  171. package/dist/{chunk-AJ7ZDNBT.mjs → chunk-QDAZGZUF.mjs} +4 -3
  172. package/dist/{chunk-JT7HKXRB.mjs → chunk-QOLWA2PW.mjs} +1 -1
  173. package/dist/{chunk-WYEUNUTP.mjs → chunk-QXDGGOLC.mjs} +38 -25
  174. package/dist/{chunk-JMOZEC77.mjs → chunk-RJNLAH76.mjs} +1 -1
  175. package/dist/{chunk-WF2XDFRK.mjs → chunk-RMRS44MQ.mjs} +1 -1
  176. package/dist/chunk-SAWUXP3A.mjs +1114 -0
  177. package/dist/{chunk-OB4JUQ3O.mjs → chunk-TS7DGUIR.mjs} +1 -1
  178. package/dist/{chunk-AV4EMIRH.mjs → chunk-UBUXUMER.mjs} +1 -1
  179. package/dist/{chunk-IRRY3CRZ.mjs → chunk-ULGNQPNE.mjs} +1 -1
  180. package/dist/{chunk-7LWRKMF5.mjs → chunk-UNNRUJTM.mjs} +1 -1
  181. package/dist/{chunk-TB6SD2FT.mjs → chunk-UQ4742ET.mjs} +1 -1
  182. package/dist/{chunk-MX6HRKMI.mjs → chunk-VJBUCITV.mjs} +1 -1
  183. package/dist/{chunk-2UYENBLV.mjs → chunk-YMYIEVZP.mjs} +1 -1
  184. package/dist/{chunk-SOYNZDVY.mjs → chunk-YTXRIXNZ.mjs} +8 -1
  185. package/dist/{chunk-YFZ3ELX5.mjs → chunk-ZIMY2QUM.mjs} +2 -2
  186. package/dist/{chunk-Z4VHZ7B5.mjs → chunk-ZR6HSEAB.mjs} +1 -1
  187. package/dist/fonts.d.mts +1 -7
  188. package/dist/fonts.d.ts +1 -7
  189. package/dist/fonts.js +0 -2
  190. package/dist/fonts.mjs +1 -2
  191. package/dist/{index-wt-orHUi.d.ts → index-CY34hxPN.d.mts} +1 -0
  192. package/dist/{index-wt-orHUi.d.mts → index-CY34hxPN.d.ts} +1 -0
  193. package/dist/index.d.mts +7 -3
  194. package/dist/index.d.ts +7 -3
  195. package/dist/index.js +1517 -761
  196. package/dist/index.mjs +54 -52
  197. package/package.json +3 -3
  198. package/src/components/Accordion/Accordion.tsx +20 -0
  199. package/src/components/Button/Button.tsx +29 -26
  200. package/src/components/ConfirmDialog/ConfirmDialog.tsx +47 -31
  201. package/src/components/CurrencyInput/CurrencyInput.tsx +4 -7
  202. package/src/components/IconPicker/IconPicker.tsx +124 -112
  203. package/src/components/ImageUpload/ImageUpload.tsx +10 -3
  204. package/src/components/ListItem/ListItem.tsx +43 -28
  205. package/src/components/Pressable/Pressable.tsx +20 -8
  206. package/src/components/SelectableCard/SelectableCard.tsx +304 -0
  207. package/src/components/SelectableCard/index.ts +1 -0
  208. package/src/components/Sheet/Sheet.tsx +72 -173
  209. package/src/components/Skeleton/Skeleton.tsx +5 -2
  210. package/src/components/Stats/Stats.tsx +254 -0
  211. package/src/components/Stats/index.ts +2 -0
  212. package/src/components/Text/Text.tsx +4 -2
  213. package/src/fonts.ts +0 -7
  214. package/src/index.ts +5 -0
  215. package/src/theme/colorUtils.ts +9 -0
  216. package/src/theme/colors.ts +7 -0
  217. package/src/theme/types.ts +4 -1
  218. package/src/utils/curatedIcons.ts +698 -135
  219. package/src/utils/fontGuard.ts +2 -1
  220. package/dist/chunk-53Z3NYGE.mjs +0 -742
package/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  A personal React Native / Expo UI component library with a built-in design system, dark mode support, haptic feedback, and smooth animations.
4
4
 
5
- - 53 components across 9 categories (plus the deep-import `HolographicCard`)
6
- - Light/dark theme with 12 public tokens (25 resolved) and full customization
5
+ - 55 components across 9 categories (plus the deep-import `HolographicCard`)
6
+ - Light/dark theme with 12 public tokens (26 resolved) and full customization
7
7
  - Apple HIG–compliant touch targets and haptic feedback
8
8
  - Animated interactions: spring press, sliding tabs, accordion easing, animated progress
9
9
  - Built with TypeScript — full type declarations included
@@ -156,7 +156,7 @@ const { colors, colorScheme } = useTheme()
156
156
 
157
157
  **Public tokens (12 — override these):** `background`, `foreground`, `card`, `primary`, `primaryForeground`, `border`, `destructive`, `destructiveForeground`, `success`, `successForeground`, `warning`, `warningForeground`. Optional: `overlay`, `accent`, `accentForeground`.
158
158
 
159
- **Derived tokens (read-only via `useTheme()`):** `foregroundSubtle`, `foregroundMuted`, `surface`, `surfaceStrong`, `destructiveTint`, `destructiveBorder`, `successTint`, `successBorder`, `warningTint`, `warningBorder`, `ring`, `input`, `separator`, `overlay`, `accentResolved`, `accentForegroundResolved`
159
+ **Derived tokens (read-only via `useTheme()`):** `foregroundSubtle`, `foregroundMuted`, `surface`, `surfaceStrong`, `skeleton`, `destructiveTint`, `destructiveBorder`, `successTint`, `successBorder`, `warningTint`, `warningBorder`, `ring`, `input`, `separator`, `overlay`, `accentResolved`, `accentForegroundResolved`
160
160
 
161
161
  ## Design Tokens
162
162
 
@@ -177,13 +177,17 @@ import { SPACING, ICON_SIZES, RADIUS, SHADOWS, BREAKPOINTS, TYPOGRAPHY } from '@
177
177
  | `BREAKPOINTS` | `wide` (700) |
178
178
  | `TYPOGRAPHY` | 16 variants: `display-hero`, `display-xl`, `display-lg`, `display-md`, `display-sm`, `title-md`, `title-sm`, `body-md`, `body-sm`, `caption`, `caption-sm`, `badge-text`, `micro-label`, `uppercase-tag`, `button-lg`, `button-sm` |
179
179
 
180
+ ### Color Utilities
181
+
182
+ - **`withAlpha(color: string, alpha: number)`** — takes a hex color string (e.g., `"#6366f1"`) and an opacity value (0–1), returns an `rgba()` string. Useful for semi-transparent overlays without adding a separate token.
183
+
180
184
  ## Components
181
185
 
182
186
  | Category | Components |
183
187
  | ----------- | ----------------------------------------------------------------------------------------------- |
184
- | Display | `Text`, `Badge`, `Avatar`, `Separator`, `Spinner`, `Skeleton`, `Progress`, `CurrencyDisplay` |
188
+ | Display | `Text`, `Badge`, `Avatar`, `Separator`, `Spinner`, `Skeleton`, `Progress`, `CurrencyDisplay`, `Stats` |
185
189
  | Surfaces | `Card`, `AlertBanner`, `EmptyState`, `MediaCard`, `PricingCard` |
186
- | Form | `Form` (+ `Form.Field` / `Form.Section` / `Form.Footer`), `Button`, `ButtonGroup`, `IconButton`, `Input`, `CurrencyInput`, `Textarea`, `Checkbox`, `Switch`, `Toggle`, `RadioGroup`, `Select`, `Slider`, `SelectableGrid`, `SheetSelect`, `ImageUpload`, `IconPicker`, `NumberStepper` |
190
+ | Form | `Form` (+ `Form.Field` / `Form.Section` / `Form.Footer`), `Button`, `ButtonGroup`, `IconButton`, `Input`, `CurrencyInput`, `Textarea`, `Checkbox`, `Switch`, `Toggle`, `RadioGroup`, `Select`, `Slider`, `SelectableGrid`, `SelectableCard` (+ `SelectableCardGroup`), `SheetSelect`, `ImageUpload`, `IconPicker`, `NumberStepper` |
187
191
  | Composition | `Tabs`, `Accordion` |
188
192
  | Navigation | `AppHeader`, `TabBar`, `PagerDots` |
189
193
  | Overlays | `Sheet`, `ConfirmDialog`, `ImageViewer` |
@@ -220,6 +224,11 @@ toast({ title: 'Saved', variant: 'success' })
220
224
  options={[{ label: 'Option A', value: 'a' }, { label: 'Option B', value: 'b' }]}
221
225
  placeholder="Pick one"
222
226
  />
227
+
228
+ // Color utilities
229
+ import { useTheme, withAlpha } from '@retray-dev/ui-kit'
230
+ const { colors } = useTheme()
231
+ ;<View style={{ backgroundColor: withAlpha(colors.primary, 0.15) }} />
223
232
  ```
224
233
 
225
234
  Full props reference and more examples are available in [COMPONENTS.md](./COMPONENTS.md), which is also shipped inside the npm package for use with AI tools:
@@ -11,6 +11,12 @@ interface AccordionItem {
11
11
  icon?: React.ReactNode;
12
12
  /** Override icon color. Defaults to foregroundMuted. */
13
13
  iconColor?: string;
14
+ /**
15
+ * Action buttons rendered after the trigger content but before the chevron.
16
+ * Automatically touch-isolated — taps on actions won't toggle the accordion.
17
+ * Use this instead of embedding interactive elements inside `trigger`.
18
+ */
19
+ triggerActions?: React.ReactNode;
14
20
  }
15
21
  interface AccordionProps {
16
22
  items: AccordionItem[];
@@ -11,6 +11,12 @@ interface AccordionItem {
11
11
  icon?: React.ReactNode;
12
12
  /** Override icon color. Defaults to foregroundMuted. */
13
13
  iconColor?: string;
14
+ /**
15
+ * Action buttons rendered after the trigger content but before the chevron.
16
+ * Automatically touch-isolated — taps on actions won't toggle the accordion.
17
+ * Use this instead of embedding interactive elements inside `trigger`.
18
+ */
19
+ triggerActions?: React.ReactNode;
14
20
  }
15
21
  interface AccordionProps {
16
22
  items: AccordionItem[];
package/dist/Accordion.js CHANGED
@@ -163,6 +163,7 @@ function deriveColors(t, scheme) {
163
163
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
164
164
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
165
165
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
166
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
166
167
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
167
168
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
168
169
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -175,6 +176,7 @@ function deriveColors(t, scheme) {
175
176
  foregroundMuted,
176
177
  surface,
177
178
  surfaceStrong,
179
+ skeleton,
178
180
  destructiveTint,
179
181
  destructiveBorder,
180
182
  successTint,
@@ -305,6 +307,14 @@ function AccordionItemComponent({
305
307
  accessibilityLabel: typeof item.trigger === "string" ? item.trigger : void 0
306
308
  },
307
309
  /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.triggerContent }, resolvedIcon ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles.icon }, resolvedIcon) : null, typeof item.trigger === "string" ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles.triggerText, { color: colors.foreground }], allowFontScaling: true }, item.trigger) : item.trigger),
310
+ item.triggerActions ? /* @__PURE__ */ React3__default.default.createElement(
311
+ reactNative.View,
312
+ {
313
+ style: styles.triggerActions,
314
+ onTouchEnd: (e) => e.stopPropagation()
315
+ },
316
+ item.triggerActions
317
+ ) : null,
308
318
  /* @__PURE__ */ React3__default.default.createElement(Animated__default.default.View, { style: [styles.chevron, rotationStyle] }, /* @__PURE__ */ React3__default.default.createElement(vectorIcons.Entypo, { name: "chevron-down", size: 18, color: colors.foregroundMuted }))
309
319
  ), /* @__PURE__ */ React3__default.default.createElement(Animated__default.default.View, { style: bodyStyle }, /* @__PURE__ */ React3__default.default.createElement(
310
320
  reactNative.View,
@@ -374,6 +384,12 @@ var styles = reactNative.StyleSheet.create({
374
384
  chevron: {
375
385
  marginLeft: s(8)
376
386
  },
387
+ triggerActions: {
388
+ flexDirection: "row",
389
+ alignItems: "center",
390
+ gap: s(4),
391
+ marginLeft: s(8)
392
+ },
377
393
  // position:'absolute' is the key — the inner View escapes the animated wrapper's
378
394
  // clipped height so onLayout always reports the true content height.
379
395
  content: {
@@ -1,7 +1,7 @@
1
- export { Accordion } from './chunk-YJ7I257J.mjs';
1
+ export { Accordion } from './chunk-NHDI3VQB.mjs';
2
2
  import './chunk-EJ7ZPXOH.mjs';
3
3
  import './chunk-DVK4G2GT.mjs';
4
4
  import './chunk-KA7LTET3.mjs';
5
- import './chunk-SOYNZDVY.mjs';
5
+ import './chunk-YTXRIXNZ.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
7
  import './chunk-Y6FXYEAI.mjs';
@@ -102,6 +102,7 @@ function deriveColors(t, scheme) {
102
102
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
103
103
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
104
104
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
105
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
105
106
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
106
107
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
107
108
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -114,6 +115,7 @@ function deriveColors(t, scheme) {
114
115
  foregroundMuted,
115
116
  surface,
116
117
  surfaceStrong,
118
+ skeleton,
117
119
  destructiveTint,
118
120
  destructiveBorder,
119
121
  successTint,
@@ -1,6 +1,6 @@
1
- export { AlertBanner } from './chunk-BEMIQXXU.mjs';
1
+ export { AlertBanner } from './chunk-4OORJ2DY.mjs';
2
2
  import './chunk-QY3X2UYR.mjs';
3
3
  import './chunk-KA7LTET3.mjs';
4
- import './chunk-SOYNZDVY.mjs';
4
+ import './chunk-YTXRIXNZ.mjs';
5
5
  import './chunk-2CE3TQVY.mjs';
6
6
  import './chunk-Y6FXYEAI.mjs';
package/dist/AppHeader.js CHANGED
@@ -109,6 +109,7 @@ function deriveColors(t, scheme) {
109
109
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
110
110
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
111
111
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
112
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
112
113
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
113
114
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
114
115
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -121,6 +122,7 @@ function deriveColors(t, scheme) {
121
122
  foregroundMuted,
122
123
  surface,
123
124
  surfaceStrong,
125
+ skeleton,
124
126
  destructiveTint,
125
127
  destructiveBorder,
126
128
  successTint,
@@ -1,10 +1,10 @@
1
- export { AppHeader } from './chunk-TBNZHU6C.mjs';
2
- import './chunk-T2KCAHOS.mjs';
1
+ export { AppHeader } from './chunk-MVMGPZN6.mjs';
2
+ import './chunk-LOBLCFMN.mjs';
3
3
  import './chunk-3DKJ2GIC.mjs';
4
4
  import './chunk-EJ7ZPXOH.mjs';
5
5
  import './chunk-DVK4G2GT.mjs';
6
6
  import './chunk-QY3X2UYR.mjs';
7
7
  import './chunk-KA7LTET3.mjs';
8
- import './chunk-SOYNZDVY.mjs';
8
+ import './chunk-YTXRIXNZ.mjs';
9
9
  import './chunk-2CE3TQVY.mjs';
10
10
  import './chunk-Y6FXYEAI.mjs';
package/dist/Avatar.js CHANGED
@@ -89,6 +89,7 @@ function deriveColors(t, scheme) {
89
89
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
90
90
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
91
91
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
92
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
92
93
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
93
94
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
94
95
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -101,6 +102,7 @@ function deriveColors(t, scheme) {
101
102
  foregroundMuted,
102
103
  surface,
103
104
  surfaceStrong,
105
+ skeleton,
104
106
  destructiveTint,
105
107
  destructiveBorder,
106
108
  successTint,
package/dist/Avatar.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { Avatar } from './chunk-JT7HKXRB.mjs';
2
- import './chunk-SOYNZDVY.mjs';
1
+ export { Avatar } from './chunk-QOLWA2PW.mjs';
2
+ import './chunk-YTXRIXNZ.mjs';
3
3
  import './chunk-2CE3TQVY.mjs';
4
4
  import './chunk-Y6FXYEAI.mjs';
package/dist/Badge.js CHANGED
@@ -101,6 +101,7 @@ function deriveColors(t, scheme) {
101
101
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
102
102
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
103
103
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
104
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
104
105
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
105
106
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
106
107
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -113,6 +114,7 @@ function deriveColors(t, scheme) {
113
114
  foregroundMuted,
114
115
  surface,
115
116
  surfaceStrong,
117
+ skeleton,
116
118
  destructiveTint,
117
119
  destructiveBorder,
118
120
  successTint,
package/dist/Badge.mjs CHANGED
@@ -1,5 +1,5 @@
1
- export { Badge } from './chunk-VF2ATYN3.mjs';
1
+ export { Badge } from './chunk-GH67YXG6.mjs';
2
2
  import './chunk-KA7LTET3.mjs';
3
- import './chunk-SOYNZDVY.mjs';
3
+ import './chunk-YTXRIXNZ.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
5
  import './chunk-Y6FXYEAI.mjs';
package/dist/Button.js CHANGED
@@ -162,6 +162,7 @@ function deriveColors(t, scheme) {
162
162
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
163
163
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
164
164
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
165
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
165
166
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
166
167
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
167
168
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -174,6 +175,7 @@ function deriveColors(t, scheme) {
174
175
  foregroundMuted,
175
176
  surface,
176
177
  surfaceStrong,
178
+ skeleton,
177
179
  destructiveTint,
178
180
  destructiveBorder,
179
181
  successTint,
@@ -342,24 +344,26 @@ function ButtonBase({
342
344
  impactMedium();
343
345
  onPress?.();
344
346
  };
345
- const containerVariantStyle = {
347
+ const containerVariantStyle = isDisabled ? {
348
+ primary: { backgroundColor: colors.surface },
349
+ secondary: { backgroundColor: "transparent", borderWidth: 1.5, borderColor: colors.border },
350
+ text: { backgroundColor: "transparent" },
351
+ destructive: { backgroundColor: colors.surface }
352
+ }[variant] : {
346
353
  primary: { backgroundColor: colors.primary },
347
354
  secondary: { backgroundColor: "transparent", borderWidth: 1.5, borderColor: colors.primary },
348
355
  text: { backgroundColor: "transparent" },
349
356
  destructive: { backgroundColor: colors.destructive }
350
357
  }[variant];
351
- const labelVariantStyle = {
352
- primary: { color: colors.primaryForeground },
353
- secondary: { color: colors.primary },
354
- // AUDIT FIX: was colors.foreground — visually indistinguishable from plain text,
355
- // no affordance that it's a CTA. Now uses accentResolved so text-only buttons
356
- // carry the brand voltage. Falls back to primary when no accent is defined.
357
- text: { color: colors.accentResolved },
358
- destructive: { color: colors.destructiveForeground }
358
+ const labelColor = isDisabled ? colors.foregroundMuted : {
359
+ primary: colors.primaryForeground,
360
+ secondary: colors.primary,
361
+ text: colors.accentResolved,
362
+ destructive: colors.destructiveForeground
359
363
  }[variant];
360
- const textColor = iconColor ?? labelVariantStyle.color;
364
+ const textColor = iconColor ?? labelColor;
361
365
  const effectiveIcon = iconName ? renderIcon(iconName, iconSizeMap[size], textColor) : typeof icon === "function" ? icon({ label, size, variant, color: textColor }) : icon;
362
- const spinnerColor = variant === "destructive" ? colors.destructiveForeground : variant === "primary" ? colors.primaryForeground : colors.accentResolved;
366
+ const spinnerColor = isDisabled ? colors.foregroundMuted : variant === "destructive" ? colors.destructiveForeground : variant === "primary" ? colors.primaryForeground : colors.accentResolved;
363
367
  const styleArray = Array.isArray(style) ? style : style ? [style] : [];
364
368
  const flatStyle = reactNative.StyleSheet.flatten(styleArray);
365
369
  const { flex, ...restStyle } = flatStyle || {};
@@ -371,7 +375,6 @@ function ButtonBase({
371
375
  containerVariantStyle,
372
376
  containerSizeStyles[size],
373
377
  fullWidth && styles.fullWidth,
374
- isDisabled && styles.disabled,
375
378
  restStyle
376
379
  ],
377
380
  enabled: !isDisabled,
@@ -387,7 +390,7 @@ function ButtonBase({
387
390
  loading ? /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement(reactNative.ActivityIndicator, { size: "small", color: spinnerColor, style: { marginRight: s(6) } }), /* @__PURE__ */ React3__default.default.createElement(
388
391
  reactNative.Text,
389
392
  {
390
- style: [styles.label, labelVariantStyle, labelSizeStyles[size], styles.labelLoading],
393
+ style: [styles.label, { color: labelColor }, labelSizeStyles[size], styles.labelLoading],
391
394
  allowFontScaling: true,
392
395
  numberOfLines: 1
393
396
  },
@@ -395,7 +398,7 @@ function ButtonBase({
395
398
  )) : /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, effectiveIcon && iconPosition === "left" && /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, effectiveIcon), /* @__PURE__ */ React3__default.default.createElement(
396
399
  reactNative.Text,
397
400
  {
398
- style: [styles.label, labelVariantStyle, labelSizeStyles[size], effectiveIcon ? styles.labelWithIcon : void 0],
401
+ style: [styles.label, { color: labelColor }, labelSizeStyles[size], effectiveIcon ? styles.labelWithIcon : void 0],
399
402
  allowFontScaling: true,
400
403
  numberOfLines: 1
401
404
  },
@@ -414,9 +417,6 @@ var styles = reactNative.StyleSheet.create({
414
417
  fullWidth: {
415
418
  width: "100%"
416
419
  },
417
- disabled: {
418
- opacity: 0.45
419
- },
420
420
  label: {
421
421
  fontFamily: "Sohne-Medium",
422
422
  flexShrink: 1
package/dist/Button.mjs CHANGED
@@ -1,9 +1,9 @@
1
- export { Button } from './chunk-HTHGSXFG.mjs';
1
+ export { Button } from './chunk-4J2PXL36.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
5
  import './chunk-QY3X2UYR.mjs';
6
6
  import './chunk-KA7LTET3.mjs';
7
- import './chunk-SOYNZDVY.mjs';
7
+ import './chunk-YTXRIXNZ.mjs';
8
8
  import './chunk-2CE3TQVY.mjs';
9
9
  import './chunk-Y6FXYEAI.mjs';
package/dist/Card.js CHANGED
@@ -150,6 +150,7 @@ function deriveColors(t, scheme) {
150
150
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
151
151
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
152
152
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
153
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
153
154
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
154
155
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
155
156
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -162,6 +163,7 @@ function deriveColors(t, scheme) {
162
163
  foregroundMuted,
163
164
  surface,
164
165
  surfaceStrong,
166
+ skeleton,
165
167
  destructiveTint,
166
168
  destructiveBorder,
167
169
  successTint,
package/dist/Card.mjs CHANGED
@@ -1,8 +1,8 @@
1
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-ID72TK46.mjs';
1
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-BXF4AMHY.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
5
  import './chunk-QY3X2UYR.mjs';
6
- import './chunk-SOYNZDVY.mjs';
6
+ import './chunk-YTXRIXNZ.mjs';
7
7
  import './chunk-2CE3TQVY.mjs';
8
8
  import './chunk-Y6FXYEAI.mjs';
@@ -163,6 +163,7 @@ function deriveColors(t, scheme) {
163
163
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
164
164
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
165
165
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
166
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
166
167
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
167
168
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
168
169
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -175,6 +176,7 @@ function deriveColors(t, scheme) {
175
176
  foregroundMuted,
176
177
  surface,
177
178
  surfaceStrong,
179
+ skeleton,
178
180
  destructiveTint,
179
181
  destructiveBorder,
180
182
  successTint,
@@ -1,9 +1,9 @@
1
- export { CategoryStrip } from './chunk-6L4G6PBT.mjs';
1
+ export { CategoryStrip } from './chunk-3XCFYSX4.mjs';
2
2
  import './chunk-YNROWHQJ.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
5
  import './chunk-QY3X2UYR.mjs';
6
6
  import './chunk-KA7LTET3.mjs';
7
- import './chunk-SOYNZDVY.mjs';
7
+ import './chunk-YTXRIXNZ.mjs';
8
8
  import './chunk-2CE3TQVY.mjs';
9
9
  import './chunk-Y6FXYEAI.mjs';
package/dist/Checkbox.js CHANGED
@@ -151,6 +151,7 @@ function deriveColors(t, scheme) {
151
151
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
152
152
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
153
153
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
154
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
154
155
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
155
156
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
156
157
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -163,6 +164,7 @@ function deriveColors(t, scheme) {
163
164
  foregroundMuted,
164
165
  surface,
165
166
  surfaceStrong,
167
+ skeleton,
166
168
  destructiveTint,
167
169
  destructiveBorder,
168
170
  successTint,
package/dist/Checkbox.mjs CHANGED
@@ -1,7 +1,7 @@
1
- export { Checkbox } from './chunk-AV4EMIRH.mjs';
1
+ export { Checkbox } from './chunk-UBUXUMER.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
- import './chunk-SOYNZDVY.mjs';
5
+ import './chunk-YTXRIXNZ.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
7
  import './chunk-Y6FXYEAI.mjs';
package/dist/Chip.js CHANGED
@@ -163,6 +163,7 @@ function deriveColors(t, scheme) {
163
163
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
164
164
  const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
165
165
  const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
166
+ const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
166
167
  const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
167
168
  const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
168
169
  const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
@@ -175,6 +176,7 @@ function deriveColors(t, scheme) {
175
176
  foregroundMuted,
176
177
  surface,
177
178
  surfaceStrong,
179
+ skeleton,
178
180
  destructiveTint,
179
181
  destructiveBorder,
180
182
  successTint,
package/dist/Chip.mjs CHANGED
@@ -1,8 +1,8 @@
1
- export { Chip, ChipGroup } from './chunk-DYT7BG5I.mjs';
1
+ export { Chip, ChipGroup } from './chunk-F3YTWO3T.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
5
  import './chunk-KA7LTET3.mjs';
6
- import './chunk-SOYNZDVY.mjs';
6
+ import './chunk-YTXRIXNZ.mjs';
7
7
  import './chunk-2CE3TQVY.mjs';
8
8
  import './chunk-Y6FXYEAI.mjs';
@@ -3,20 +3,15 @@ import React from 'react';
3
3
  interface ConfirmDialogProps {
4
4
  visible: boolean;
5
5
  title: string;
6
- /** Secondary text below title. */
7
6
  subtitle?: string;
8
- /** @deprecated Use `subtitle` instead. */
9
- description?: string;
10
7
  confirmLabel?: string;
11
8
  cancelLabel?: string;
12
9
  confirmVariant?: 'primary' | 'destructive';
13
- /** Show a loading spinner in the confirm button (e.g. while async action completes). */
14
10
  loading?: boolean;
15
- /** Show an X close button in the top-right corner. */
16
11
  showCloseButton?: boolean;
17
12
  onConfirm: () => void;
18
13
  onCancel: () => void;
19
14
  }
20
- declare function ConfirmDialog({ visible, title, subtitle, description, confirmLabel, cancelLabel, confirmVariant, loading, showCloseButton, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
15
+ declare function ConfirmDialog({ visible, title, subtitle, confirmLabel, cancelLabel, confirmVariant, loading, showCloseButton, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
21
16
 
22
17
  export { ConfirmDialog, type ConfirmDialogProps };
@@ -3,20 +3,15 @@ import React from 'react';
3
3
  interface ConfirmDialogProps {
4
4
  visible: boolean;
5
5
  title: string;
6
- /** Secondary text below title. */
7
6
  subtitle?: string;
8
- /** @deprecated Use `subtitle` instead. */
9
- description?: string;
10
7
  confirmLabel?: string;
11
8
  cancelLabel?: string;
12
9
  confirmVariant?: 'primary' | 'destructive';
13
- /** Show a loading spinner in the confirm button (e.g. while async action completes). */
14
10
  loading?: boolean;
15
- /** Show an X close button in the top-right corner. */
16
11
  showCloseButton?: boolean;
17
12
  onConfirm: () => void;
18
13
  onCancel: () => void;
19
14
  }
20
- declare function ConfirmDialog({ visible, title, subtitle, description, confirmLabel, cancelLabel, confirmVariant, loading, showCloseButton, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
15
+ declare function ConfirmDialog({ visible, title, subtitle, confirmLabel, cancelLabel, confirmVariant, loading, showCloseButton, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
21
16
 
22
17
  export { ConfirmDialog, type ConfirmDialogProps };