@retray-dev/ui-kit 10.0.0 → 10.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 (128) hide show
  1. package/COMPONENTS.md +150 -17
  2. package/CONSUMER.md +1 -1
  3. package/README.md +4 -4
  4. package/dist/Accordion.d.mts +1 -1
  5. package/dist/Accordion.d.ts +1 -1
  6. package/dist/Accordion.js +3 -3
  7. package/dist/Accordion.mjs +2 -2
  8. package/dist/AlertBanner.js +1 -1
  9. package/dist/AlertBanner.mjs +2 -2
  10. package/dist/AppHeader.js +1 -1
  11. package/dist/AppHeader.mjs +3 -3
  12. package/dist/Badge.js +1 -1
  13. package/dist/Badge.mjs +2 -2
  14. package/dist/Button.js +1 -1
  15. package/dist/Button.mjs +2 -2
  16. package/dist/CategoryStrip.js +1 -1
  17. package/dist/CategoryStrip.mjs +2 -2
  18. package/dist/Chip.js +1 -1
  19. package/dist/Chip.mjs +2 -2
  20. package/dist/ConfirmDialog.d.mts +6 -1
  21. package/dist/ConfirmDialog.d.ts +6 -1
  22. package/dist/ConfirmDialog.js +45 -15
  23. package/dist/ConfirmDialog.mjs +3 -3
  24. package/dist/CurrencyInput.js +1 -1
  25. package/dist/CurrencyInput.mjs +3 -3
  26. package/dist/DetailRow.d.mts +1 -1
  27. package/dist/DetailRow.d.ts +1 -1
  28. package/dist/DetailRow.js +1 -1
  29. package/dist/DetailRow.mjs +2 -2
  30. package/dist/EmptyState.js +1 -1
  31. package/dist/EmptyState.mjs +3 -3
  32. package/dist/ErrorBoundary.js +1 -1
  33. package/dist/ErrorBoundary.mjs +2 -2
  34. package/dist/IconButton.js +1 -1
  35. package/dist/IconButton.mjs +2 -2
  36. package/dist/IconPicker.d.mts +17 -0
  37. package/dist/IconPicker.d.ts +17 -0
  38. package/dist/IconPicker.js +997 -0
  39. package/dist/IconPicker.mjs +7 -0
  40. package/dist/ImageUpload.d.mts +3 -1
  41. package/dist/ImageUpload.d.ts +3 -1
  42. package/dist/ImageUpload.js +28 -10
  43. package/dist/ImageUpload.mjs +1 -1
  44. package/dist/ImageViewer.js +282 -141
  45. package/dist/ImageViewer.mjs +5 -3
  46. package/dist/Input.js +1 -1
  47. package/dist/Input.mjs +2 -2
  48. package/dist/LabelValue.js +1 -1
  49. package/dist/LabelValue.mjs +2 -2
  50. package/dist/ListItem.js +1 -1
  51. package/dist/ListItem.mjs +2 -2
  52. package/dist/MediaCard.js +1 -1
  53. package/dist/MediaCard.mjs +2 -2
  54. package/dist/MenuItem.js +1 -1
  55. package/dist/MenuItem.mjs +2 -2
  56. package/dist/NumberStepper.d.mts +19 -0
  57. package/dist/NumberStepper.d.ts +19 -0
  58. package/dist/NumberStepper.js +410 -0
  59. package/dist/NumberStepper.mjs +9 -0
  60. package/dist/PagerDots.js +1 -1
  61. package/dist/PagerDots.mjs +2 -2
  62. package/dist/PricingCard.js +1 -1
  63. package/dist/PricingCard.mjs +4 -4
  64. package/dist/SelectableGrid.js +1 -1
  65. package/dist/SelectableGrid.mjs +2 -2
  66. package/dist/Sheet.js +16 -13
  67. package/dist/Sheet.mjs +1 -1
  68. package/dist/SheetSelect.js +1 -1
  69. package/dist/SheetSelect.mjs +2 -2
  70. package/dist/Switch.js +40 -17
  71. package/dist/Switch.mjs +1 -1
  72. package/dist/TabBar.js +1 -1
  73. package/dist/TabBar.mjs +2 -2
  74. package/dist/Textarea.js +1 -1
  75. package/dist/Textarea.mjs +2 -2
  76. package/dist/Toggle.js +1 -1
  77. package/dist/Toggle.mjs +2 -2
  78. package/dist/chunk-53Z3NYGE.mjs +742 -0
  79. package/dist/{chunk-VQ57HWPL.mjs → chunk-6L4G6PBT.mjs} +1 -1
  80. package/dist/{chunk-6OAZJ577.mjs → chunk-6SECQ2ZF.mjs} +2 -2
  81. package/dist/{chunk-KIHCWCWL.mjs → chunk-7LWRKMF5.mjs} +1 -1
  82. package/dist/{chunk-4I7D47FH.mjs → chunk-AJRVDP2H.mjs} +3 -3
  83. package/dist/{chunk-6MKGPAR2.mjs → chunk-BEMIQXXU.mjs} +1 -1
  84. package/dist/chunk-BUMAMSTZ.mjs +126 -0
  85. package/dist/{chunk-UREA2GYY.mjs → chunk-DYT7BG5I.mjs} +1 -1
  86. package/dist/{chunk-Z4BVUWW6.mjs → chunk-ELXBDILQ.mjs} +20 -32
  87. package/dist/{chunk-A4MDAP7G.mjs → chunk-FCSSQK3L.mjs} +1 -1
  88. package/dist/{chunk-2TFTAWVJ.mjs → chunk-HTHGSXFG.mjs} +1 -1
  89. package/dist/{chunk-VGTDN7SW.mjs → chunk-IX3NYLYQ.mjs} +1 -1
  90. package/dist/{chunk-T7XZ7H7Y.mjs → chunk-KA7LTET3.mjs} +17 -3
  91. package/dist/{chunk-URI2WBIV.mjs → chunk-KOO4WITD.mjs} +1 -1
  92. package/dist/{chunk-JUXSWN54.mjs → chunk-NMU5FMQJ.mjs} +1 -1
  93. package/dist/{chunk-LXJIIOYQ.mjs → chunk-RYZC432S.mjs} +1 -1
  94. package/dist/{chunk-JB67UOB5.mjs → chunk-S2R7UVOE.mjs} +1 -1
  95. package/dist/{chunk-ZUR7AU5R.mjs → chunk-SXLKNTA4.mjs} +1 -1
  96. package/dist/{chunk-3U4SSNWP.mjs → chunk-T2KCAHOS.mjs} +1 -1
  97. package/dist/{chunk-ZJKGQMYH.mjs → chunk-TB6SD2FT.mjs} +1 -1
  98. package/dist/{chunk-AZJF2BLK.mjs → chunk-TBNZHU6C.mjs} +1 -1
  99. package/dist/{chunk-Y4GL2MHX.mjs → chunk-TZDGAP5N.mjs} +28 -10
  100. package/dist/{chunk-CZCQZHG6.mjs → chunk-U2XJFYED.mjs} +1 -1
  101. package/dist/{chunk-TERDKCLE.mjs → chunk-VF2ATYN3.mjs} +1 -1
  102. package/dist/{chunk-OHBNABL5.mjs → chunk-VKID2D2I.mjs} +1 -1
  103. package/dist/{chunk-QKH5ZOD5.mjs → chunk-WF2XDFRK.mjs} +40 -17
  104. package/dist/{chunk-FZZLPJ6B.mjs → chunk-WYEUNUTP.mjs} +44 -15
  105. package/dist/{chunk-PFZTM6D5.mjs → chunk-Y2NS74WS.mjs} +9 -7
  106. package/dist/{chunk-O3HA6TYM.mjs → chunk-YJ7I257J.mjs} +3 -3
  107. package/dist/{chunk-NA7PARID.mjs → chunk-Z4VHZ7B5.mjs} +1 -1
  108. package/dist/{chunk-MLF3EZFW.mjs → chunk-Z6SFHN6T.mjs} +1 -1
  109. package/dist/{chunk-4K625MVM.mjs → chunk-ZZ2R6KZ3.mjs} +1 -1
  110. package/dist/index.d.mts +4 -1
  111. package/dist/index.d.ts +4 -1
  112. package/dist/index.js +1011 -88
  113. package/dist/index.mjs +34 -32
  114. package/package.json +1 -1
  115. package/src/components/Accordion/Accordion.tsx +7 -3
  116. package/src/components/ConfirmDialog/ConfirmDialog.tsx +61 -23
  117. package/src/components/DetailRow/DetailRow.tsx +1 -1
  118. package/src/components/IconPicker/IconPicker.tsx +383 -0
  119. package/src/components/IconPicker/index.ts +1 -0
  120. package/src/components/ImageUpload/ImageUpload.tsx +34 -12
  121. package/src/components/ImageViewer/ImageViewer.tsx +25 -30
  122. package/src/components/NumberStepper/NumberStepper.tsx +147 -0
  123. package/src/components/NumberStepper/index.ts +1 -0
  124. package/src/components/Sheet/Sheet.tsx +10 -9
  125. package/src/components/Switch/Switch.tsx +30 -17
  126. package/src/index.ts +3 -1
  127. package/src/utils/curatedIcons.ts +286 -0
  128. package/src/utils/icons.ts +20 -2
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React3 = require('react');
4
4
  var reactNative = require('react-native');
5
- var bottomSheet = require('@gorhom/bottom-sheet');
5
+ var BottomSheet = require('@gorhom/bottom-sheet');
6
6
  var vectorIcons = require('@expo/vector-icons');
7
7
  var reactNativeSizeMatters = require('react-native-size-matters');
8
8
  var AntDesign = require('@expo/vector-icons/AntDesign');
@@ -17,6 +17,7 @@ var reactNativeReanimated = require('react-native-reanimated');
17
17
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
18
 
19
19
  var React3__default = /*#__PURE__*/_interopDefault(React3);
20
+ var BottomSheet__default = /*#__PURE__*/_interopDefault(BottomSheet);
20
21
  var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
21
22
  var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
22
23
  var Feather__default = /*#__PURE__*/_interopDefault(Feather);
@@ -239,7 +240,7 @@ var ALL_FAMILIES = [
239
240
  ];
240
241
  var activeFamilies = ALL_FAMILIES;
241
242
  var resolvedCache = null;
242
- function buildCache() {
243
+ function buildCache(families) {
243
244
  const cache = /* @__PURE__ */ new Map();
244
245
  for (const family of activeFamilies) {
245
246
  const glyphMap = family.getGlyphMap();
@@ -455,26 +456,29 @@ var styles = reactNative.StyleSheet.create({
455
456
  function ConfirmDialog({
456
457
  visible,
457
458
  title,
459
+ subtitle,
458
460
  description,
459
461
  confirmLabel = "Confirm",
460
462
  cancelLabel = "Cancel",
461
463
  confirmVariant = "primary",
462
464
  loading = false,
465
+ showCloseButton = false,
463
466
  onConfirm,
464
467
  onCancel
465
468
  }) {
466
469
  const { colors } = useTheme();
467
470
  const ref = React3.useRef(null);
471
+ const effectiveSubtitle = subtitle ?? description;
468
472
  React3.useEffect(() => {
469
473
  if (visible) {
470
474
  impactMedium();
471
- ref.current?.present();
475
+ ref.current?.snapToIndex(0);
472
476
  } else {
473
- ref.current?.dismiss();
477
+ ref.current?.close();
474
478
  }
475
479
  }, [visible]);
476
480
  const renderBackdrop = (props) => /* @__PURE__ */ React3__default.default.createElement(
477
- bottomSheet.BottomSheetBackdrop,
481
+ BottomSheet.BottomSheetBackdrop,
478
482
  {
479
483
  ...props,
480
484
  disappearsOnIndex: -1,
@@ -483,17 +487,30 @@ function ConfirmDialog({
483
487
  }
484
488
  );
485
489
  return /* @__PURE__ */ React3__default.default.createElement(
486
- bottomSheet.BottomSheetModal,
490
+ BottomSheet__default.default,
487
491
  {
488
492
  ref,
493
+ index: -1,
494
+ onClose: onCancel,
489
495
  enableDynamicSizing: true,
490
- onDismiss: onCancel,
491
496
  backdropComponent: renderBackdrop,
492
497
  backgroundStyle: [styles2.background, { backgroundColor: colors.card }],
493
498
  handleIndicatorStyle: [styles2.handle, { backgroundColor: colors.border }],
494
499
  enablePanDownToClose: true
495
500
  },
496
- /* @__PURE__ */ React3__default.default.createElement(bottomSheet.BottomSheetView, { style: styles2.content }, /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles2.title, { color: colors.foreground }], allowFontScaling: true }, title), description ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles2.description, { color: colors.foregroundMuted }], allowFontScaling: true }, description) : null, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.actions }, /* @__PURE__ */ React3__default.default.createElement(
501
+ /* @__PURE__ */ React3__default.default.createElement(BottomSheet.BottomSheetView, { style: styles2.content }, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.header, accessibilityRole: "header" }, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.headerRow }, /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles2.title, { color: colors.foreground }], allowFontScaling: true }, title), showCloseButton ? /* @__PURE__ */ React3__default.default.createElement(
502
+ reactNative.TouchableOpacity,
503
+ {
504
+ onPress: onCancel,
505
+ style: styles2.closeButton,
506
+ activeOpacity: 0.6,
507
+ touchSoundDisabled: true,
508
+ accessibilityRole: "button",
509
+ accessibilityLabel: "Close",
510
+ hitSlop: { top: 12, bottom: 12, left: 12, right: 12 }
511
+ },
512
+ /* @__PURE__ */ React3__default.default.createElement(vectorIcons.Feather, { name: "x", size: ms(18), color: colors.foregroundMuted })
513
+ ) : null), effectiveSubtitle ? /* @__PURE__ */ React3__default.default.createElement(reactNative.Text, { style: [styles2.subtitle, { color: colors.foregroundMuted }], allowFontScaling: true }, effectiveSubtitle) : null), /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.actions }, /* @__PURE__ */ React3__default.default.createElement(
497
514
  Button,
498
515
  {
499
516
  label: confirmLabel,
@@ -540,19 +557,32 @@ var styles2 = reactNative.StyleSheet.create({
540
557
  borderRadius: ms(2)
541
558
  },
542
559
  content: {
543
- paddingHorizontal: s(24),
544
- paddingBottom: vs(32),
545
- gap: vs(12)
560
+ paddingHorizontal: s(16),
561
+ paddingBottom: vs(32)
562
+ },
563
+ header: {
564
+ paddingTop: vs(4),
565
+ paddingBottom: vs(12),
566
+ gap: vs(4)
567
+ },
568
+ headerRow: {
569
+ flexDirection: "row",
570
+ alignItems: "center",
571
+ justifyContent: "space-between"
546
572
  },
547
573
  title: {
548
574
  fontFamily: "Sohne-SemiBold",
549
575
  fontSize: ms(18),
550
- lineHeight: mvs(26)
576
+ flex: 1
577
+ },
578
+ closeButton: {
579
+ padding: s(4),
580
+ marginLeft: s(8)
551
581
  },
552
- description: {
582
+ subtitle: {
553
583
  fontFamily: "Sohne-Regular",
554
- fontSize: ms(15),
555
- lineHeight: mvs(22)
584
+ fontSize: ms(14),
585
+ lineHeight: mvs(20)
556
586
  },
557
587
  actions: {
558
588
  gap: vs(10),
@@ -1,10 +1,10 @@
1
- export { ConfirmDialog } from './chunk-FZZLPJ6B.mjs';
2
- import './chunk-2TFTAWVJ.mjs';
1
+ export { ConfirmDialog } from './chunk-WYEUNUTP.mjs';
2
+ import './chunk-HTHGSXFG.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
- import './chunk-T7XZ7H7Y.mjs';
7
+ import './chunk-KA7LTET3.mjs';
8
8
  import './chunk-SOYNZDVY.mjs';
9
9
  import './chunk-2CE3TQVY.mjs';
10
10
  import './chunk-Y6FXYEAI.mjs';
@@ -159,7 +159,7 @@ var ALL_FAMILIES = [
159
159
  ];
160
160
  var activeFamilies = ALL_FAMILIES;
161
161
  var resolvedCache = null;
162
- function buildCache() {
162
+ function buildCache(families) {
163
163
  const cache = /* @__PURE__ */ new Map();
164
164
  for (const family of activeFamilies) {
165
165
  const glyphMap = family.getGlyphMap();
@@ -1,7 +1,7 @@
1
- export { CurrencyInput } from './chunk-JUXSWN54.mjs';
2
- import './chunk-ZUR7AU5R.mjs';
1
+ export { CurrencyInput } from './chunk-NMU5FMQJ.mjs';
2
+ import './chunk-SXLKNTA4.mjs';
3
3
  import './chunk-DVK4G2GT.mjs';
4
- import './chunk-T7XZ7H7Y.mjs';
4
+ import './chunk-KA7LTET3.mjs';
5
5
  import './chunk-SOYNZDVY.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
7
  import './chunk-Y6FXYEAI.mjs';
@@ -5,7 +5,7 @@ type DetailRowSeparator = 'dotted' | 'solid' | 'dashed' | 'none';
5
5
  type DetailRowLabelWeight = 'normal' | 'medium' | 'semibold' | 'bold';
6
6
  interface DetailRowProps {
7
7
  label: React.ReactNode;
8
- value: string | React.ReactNode;
8
+ value: string | number | React.ReactNode;
9
9
  /** Dotted/dashed/solid line between label and value. Defaults to 'dotted'. */
10
10
  separator?: DetailRowSeparator;
11
11
  labelWeight?: DetailRowLabelWeight;
@@ -5,7 +5,7 @@ type DetailRowSeparator = 'dotted' | 'solid' | 'dashed' | 'none';
5
5
  type DetailRowLabelWeight = 'normal' | 'medium' | 'semibold' | 'bold';
6
6
  interface DetailRowProps {
7
7
  label: React.ReactNode;
8
- value: string | React.ReactNode;
8
+ value: string | number | React.ReactNode;
9
9
  /** Dotted/dashed/solid line between label and value. Defaults to 'dotted'. */
10
10
  separator?: DetailRowSeparator;
11
11
  labelWeight?: DetailRowLabelWeight;
package/dist/DetailRow.js CHANGED
@@ -155,7 +155,7 @@ var ALL_FAMILIES = [
155
155
  ];
156
156
  var activeFamilies = ALL_FAMILIES;
157
157
  var resolvedCache = null;
158
- function buildCache() {
158
+ function buildCache(families) {
159
159
  const cache = /* @__PURE__ */ new Map();
160
160
  for (const family of activeFamilies) {
161
161
  const glyphMap = family.getGlyphMap();
@@ -1,5 +1,5 @@
1
- export { DetailRow } from './chunk-JB67UOB5.mjs';
2
- import './chunk-T7XZ7H7Y.mjs';
1
+ export { DetailRow } from './chunk-S2R7UVOE.mjs';
2
+ import './chunk-KA7LTET3.mjs';
3
3
  import './chunk-SOYNZDVY.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
5
  import './chunk-Y6FXYEAI.mjs';
@@ -163,7 +163,7 @@ var ALL_FAMILIES = [
163
163
  ];
164
164
  var activeFamilies = ALL_FAMILIES;
165
165
  var resolvedCache = null;
166
- function buildCache() {
166
+ function buildCache(families) {
167
167
  const cache = /* @__PURE__ */ new Map();
168
168
  for (const family of activeFamilies) {
169
169
  const glyphMap = family.getGlyphMap();
@@ -1,10 +1,10 @@
1
- export { EmptyState } from './chunk-6OAZJ577.mjs';
2
- import './chunk-2TFTAWVJ.mjs';
1
+ export { EmptyState } from './chunk-6SECQ2ZF.mjs';
2
+ import './chunk-HTHGSXFG.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
- import './chunk-T7XZ7H7Y.mjs';
7
+ import './chunk-KA7LTET3.mjs';
8
8
  import './chunk-SOYNZDVY.mjs';
9
9
  import './chunk-2CE3TQVY.mjs';
10
10
  import './chunk-Y6FXYEAI.mjs';
@@ -156,7 +156,7 @@ var ALL_FAMILIES = [
156
156
  ];
157
157
  var activeFamilies = ALL_FAMILIES;
158
158
  var resolvedCache = null;
159
- function buildCache() {
159
+ function buildCache(families) {
160
160
  const cache = /* @__PURE__ */ new Map();
161
161
  for (const family of activeFamilies) {
162
162
  const glyphMap = family.getGlyphMap();
@@ -1,7 +1,7 @@
1
- export { ErrorBoundary } from './chunk-LXJIIOYQ.mjs';
1
+ export { ErrorBoundary } from './chunk-RYZC432S.mjs';
2
2
  import './chunk-EJ7ZPXOH.mjs';
3
3
  import './chunk-QY3X2UYR.mjs';
4
- import './chunk-T7XZ7H7Y.mjs';
4
+ import './chunk-KA7LTET3.mjs';
5
5
  import './chunk-SOYNZDVY.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
7
  import './chunk-Y6FXYEAI.mjs';
@@ -215,7 +215,7 @@ var ALL_FAMILIES = [
215
215
  ];
216
216
  var activeFamilies = ALL_FAMILIES;
217
217
  var resolvedCache = null;
218
- function buildCache() {
218
+ function buildCache(families) {
219
219
  const cache = /* @__PURE__ */ new Map();
220
220
  for (const family of activeFamilies) {
221
221
  const glyphMap = family.getGlyphMap();
@@ -1,8 +1,8 @@
1
- export { IconButton } from './chunk-3U4SSNWP.mjs';
1
+ export { IconButton } from './chunk-T2KCAHOS.mjs';
2
2
  import './chunk-3DKJ2GIC.mjs';
3
3
  import './chunk-EJ7ZPXOH.mjs';
4
4
  import './chunk-DVK4G2GT.mjs';
5
- import './chunk-T7XZ7H7Y.mjs';
5
+ import './chunk-KA7LTET3.mjs';
6
6
  import './chunk-SOYNZDVY.mjs';
7
7
  import './chunk-2CE3TQVY.mjs';
8
8
  import './chunk-Y6FXYEAI.mjs';
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ interface IconPickerProps {
5
+ value: string | null;
6
+ onChange: (iconName: string) => void;
7
+ label?: string;
8
+ error?: string;
9
+ hint?: string;
10
+ disabled?: boolean;
11
+ numColumns?: number;
12
+ gap?: number;
13
+ style?: ViewStyle;
14
+ }
15
+ declare function IconPicker({ value, onChange, label, error, hint, disabled, numColumns, gap, style, }: IconPickerProps): React.JSX.Element;
16
+
17
+ export { IconPicker, type IconPickerProps };
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ interface IconPickerProps {
5
+ value: string | null;
6
+ onChange: (iconName: string) => void;
7
+ label?: string;
8
+ error?: string;
9
+ hint?: string;
10
+ disabled?: boolean;
11
+ numColumns?: number;
12
+ gap?: number;
13
+ style?: ViewStyle;
14
+ }
15
+ declare function IconPicker({ value, onChange, label, error, hint, disabled, numColumns, gap, style, }: IconPickerProps): React.JSX.Element;
16
+
17
+ export { IconPicker, type IconPickerProps };