@bacon-pos/ui 0.5.1 → 0.7.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 (157) hide show
  1. package/lib/commonjs/components/Dropdown/Dropdown.js +282 -0
  2. package/lib/commonjs/components/Dropdown/Dropdown.js.map +1 -0
  3. package/lib/commonjs/components/Dropdown/Dropdown.stories.js +519 -0
  4. package/lib/commonjs/components/Dropdown/Dropdown.stories.js.map +1 -0
  5. package/lib/commonjs/components/Dropdown/Dropdown.test.js +113 -0
  6. package/lib/commonjs/components/Dropdown/Dropdown.test.js.map +1 -0
  7. package/lib/commonjs/components/Dropdown/index.js +19 -0
  8. package/lib/commonjs/components/Dropdown/index.js.map +1 -0
  9. package/lib/commonjs/components/Menu/Menu.js +214 -0
  10. package/lib/commonjs/components/Menu/Menu.js.map +1 -0
  11. package/lib/commonjs/components/Menu/Menu.test.js +71 -0
  12. package/lib/commonjs/components/Menu/Menu.test.js.map +1 -0
  13. package/lib/commonjs/components/Menu/MenuButton.js +73 -0
  14. package/lib/commonjs/components/Menu/MenuButton.js.map +1 -0
  15. package/lib/commonjs/components/Menu/MenuButton.stories.js +166 -0
  16. package/lib/commonjs/components/Menu/MenuButton.stories.js.map +1 -0
  17. package/lib/commonjs/components/Menu/SelectButton.js +143 -0
  18. package/lib/commonjs/components/Menu/SelectButton.js.map +1 -0
  19. package/lib/commonjs/components/Menu/SelectButton.stories.js +116 -0
  20. package/lib/commonjs/components/Menu/SelectButton.stories.js.map +1 -0
  21. package/lib/commonjs/components/Menu/SelectButton.test.js +80 -0
  22. package/lib/commonjs/components/Menu/SelectButton.test.js.map +1 -0
  23. package/lib/commonjs/components/Menu/UserMenu.js +73 -0
  24. package/lib/commonjs/components/Menu/UserMenu.js.map +1 -0
  25. package/lib/commonjs/components/Menu/UserMenu.stories.js +85 -0
  26. package/lib/commonjs/components/Menu/UserMenu.stories.js.map +1 -0
  27. package/lib/commonjs/components/Menu/UserMenu.test.js +52 -0
  28. package/lib/commonjs/components/Menu/UserMenu.test.js.map +1 -0
  29. package/lib/commonjs/components/Menu/index.js +34 -0
  30. package/lib/commonjs/components/Menu/index.js.map +1 -0
  31. package/lib/commonjs/components/Select/Select.js +246 -0
  32. package/lib/commonjs/components/Select/Select.js.map +1 -0
  33. package/lib/commonjs/components/Select/Select.stories.js +221 -0
  34. package/lib/commonjs/components/Select/Select.stories.js.map +1 -0
  35. package/lib/commonjs/components/Select/Select.test.js +165 -0
  36. package/lib/commonjs/components/Select/Select.test.js.map +1 -0
  37. package/lib/commonjs/components/Select/index.js +13 -0
  38. package/lib/commonjs/components/Select/index.js.map +1 -0
  39. package/lib/commonjs/components/UserChip/UserChip.js +121 -0
  40. package/lib/commonjs/components/UserChip/UserChip.js.map +1 -0
  41. package/lib/commonjs/components/UserChip/UserChip.stories.js +153 -0
  42. package/lib/commonjs/components/UserChip/UserChip.stories.js.map +1 -0
  43. package/lib/commonjs/components/UserChip/UserChip.test.js +59 -0
  44. package/lib/commonjs/components/UserChip/UserChip.test.js.map +1 -0
  45. package/lib/commonjs/components/UserChip/index.js +13 -0
  46. package/lib/commonjs/components/UserChip/index.js.map +1 -0
  47. package/lib/commonjs/components/index.js +57 -13
  48. package/lib/commonjs/components/index.js.map +1 -1
  49. package/lib/module/components/Dropdown/Dropdown.js +277 -0
  50. package/lib/module/components/Dropdown/Dropdown.js.map +1 -0
  51. package/lib/module/components/Dropdown/Dropdown.stories.js +515 -0
  52. package/lib/module/components/Dropdown/Dropdown.stories.js.map +1 -0
  53. package/lib/module/components/Dropdown/Dropdown.test.js +113 -0
  54. package/lib/module/components/Dropdown/Dropdown.test.js.map +1 -0
  55. package/lib/module/components/Dropdown/index.js +4 -0
  56. package/lib/module/components/Dropdown/index.js.map +1 -0
  57. package/lib/module/components/Menu/Menu.js +210 -0
  58. package/lib/module/components/Menu/Menu.js.map +1 -0
  59. package/lib/module/components/Menu/Menu.test.js +71 -0
  60. package/lib/module/components/Menu/Menu.test.js.map +1 -0
  61. package/lib/module/components/Menu/MenuButton.js +69 -0
  62. package/lib/module/components/Menu/MenuButton.js.map +1 -0
  63. package/lib/module/components/Menu/MenuButton.stories.js +162 -0
  64. package/lib/module/components/Menu/MenuButton.stories.js.map +1 -0
  65. package/lib/module/components/Menu/SelectButton.js +139 -0
  66. package/lib/module/components/Menu/SelectButton.js.map +1 -0
  67. package/lib/module/components/Menu/SelectButton.stories.js +112 -0
  68. package/lib/module/components/Menu/SelectButton.stories.js.map +1 -0
  69. package/lib/module/components/Menu/SelectButton.test.js +80 -0
  70. package/lib/module/components/Menu/SelectButton.test.js.map +1 -0
  71. package/lib/module/components/Menu/UserMenu.js +69 -0
  72. package/lib/module/components/Menu/UserMenu.js.map +1 -0
  73. package/lib/module/components/Menu/UserMenu.stories.js +81 -0
  74. package/lib/module/components/Menu/UserMenu.stories.js.map +1 -0
  75. package/lib/module/components/Menu/UserMenu.test.js +52 -0
  76. package/lib/module/components/Menu/UserMenu.test.js.map +1 -0
  77. package/lib/module/components/Menu/index.js +7 -0
  78. package/lib/module/components/Menu/index.js.map +1 -0
  79. package/lib/module/components/Select/Select.js +244 -0
  80. package/lib/module/components/Select/Select.js.map +1 -0
  81. package/lib/module/components/Select/Select.stories.js +217 -0
  82. package/lib/module/components/Select/Select.stories.js.map +1 -0
  83. package/lib/module/components/Select/Select.test.js +165 -0
  84. package/lib/module/components/Select/Select.test.js.map +1 -0
  85. package/lib/module/components/Select/index.js +4 -0
  86. package/lib/module/components/Select/index.js.map +1 -0
  87. package/lib/module/components/UserChip/UserChip.js +117 -0
  88. package/lib/module/components/UserChip/UserChip.js.map +1 -0
  89. package/lib/module/components/UserChip/UserChip.stories.js +149 -0
  90. package/lib/module/components/UserChip/UserChip.stories.js.map +1 -0
  91. package/lib/module/components/UserChip/UserChip.test.js +59 -0
  92. package/lib/module/components/UserChip/UserChip.test.js.map +1 -0
  93. package/lib/module/components/UserChip/index.js +4 -0
  94. package/lib/module/components/UserChip/index.js.map +1 -0
  95. package/lib/module/components/index.js +4 -0
  96. package/lib/module/components/index.js.map +1 -1
  97. package/lib/typescript/commonjs/components/Dropdown/Dropdown.d.ts +105 -0
  98. package/lib/typescript/commonjs/components/Dropdown/Dropdown.d.ts.map +1 -0
  99. package/lib/typescript/commonjs/components/Dropdown/index.d.ts +3 -0
  100. package/lib/typescript/commonjs/components/Dropdown/index.d.ts.map +1 -0
  101. package/lib/typescript/commonjs/components/Menu/Menu.d.ts +66 -0
  102. package/lib/typescript/commonjs/components/Menu/Menu.d.ts.map +1 -0
  103. package/lib/typescript/commonjs/components/Menu/MenuButton.d.ts +46 -0
  104. package/lib/typescript/commonjs/components/Menu/MenuButton.d.ts.map +1 -0
  105. package/lib/typescript/commonjs/components/Menu/SelectButton.d.ts +60 -0
  106. package/lib/typescript/commonjs/components/Menu/SelectButton.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/components/Menu/UserMenu.d.ts +46 -0
  108. package/lib/typescript/commonjs/components/Menu/UserMenu.d.ts.map +1 -0
  109. package/lib/typescript/commonjs/components/Menu/index.d.ts +9 -0
  110. package/lib/typescript/commonjs/components/Menu/index.d.ts.map +1 -0
  111. package/lib/typescript/commonjs/components/Select/Select.d.ts +73 -0
  112. package/lib/typescript/commonjs/components/Select/Select.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/components/Select/index.d.ts +3 -0
  114. package/lib/typescript/commonjs/components/Select/index.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/components/UserChip/UserChip.d.ts +33 -0
  116. package/lib/typescript/commonjs/components/UserChip/UserChip.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/components/UserChip/index.d.ts +3 -0
  118. package/lib/typescript/commonjs/components/UserChip/index.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/components/index.d.ts +4 -0
  120. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  121. package/lib/typescript/module/components/Dropdown/Dropdown.d.ts +105 -0
  122. package/lib/typescript/module/components/Dropdown/Dropdown.d.ts.map +1 -0
  123. package/lib/typescript/module/components/Dropdown/index.d.ts +3 -0
  124. package/lib/typescript/module/components/Dropdown/index.d.ts.map +1 -0
  125. package/lib/typescript/module/components/Menu/Menu.d.ts +66 -0
  126. package/lib/typescript/module/components/Menu/Menu.d.ts.map +1 -0
  127. package/lib/typescript/module/components/Menu/MenuButton.d.ts +46 -0
  128. package/lib/typescript/module/components/Menu/MenuButton.d.ts.map +1 -0
  129. package/lib/typescript/module/components/Menu/SelectButton.d.ts +60 -0
  130. package/lib/typescript/module/components/Menu/SelectButton.d.ts.map +1 -0
  131. package/lib/typescript/module/components/Menu/UserMenu.d.ts +46 -0
  132. package/lib/typescript/module/components/Menu/UserMenu.d.ts.map +1 -0
  133. package/lib/typescript/module/components/Menu/index.d.ts +9 -0
  134. package/lib/typescript/module/components/Menu/index.d.ts.map +1 -0
  135. package/lib/typescript/module/components/Select/Select.d.ts +73 -0
  136. package/lib/typescript/module/components/Select/Select.d.ts.map +1 -0
  137. package/lib/typescript/module/components/Select/index.d.ts +3 -0
  138. package/lib/typescript/module/components/Select/index.d.ts.map +1 -0
  139. package/lib/typescript/module/components/UserChip/UserChip.d.ts +33 -0
  140. package/lib/typescript/module/components/UserChip/UserChip.d.ts.map +1 -0
  141. package/lib/typescript/module/components/UserChip/index.d.ts +3 -0
  142. package/lib/typescript/module/components/UserChip/index.d.ts.map +1 -0
  143. package/lib/typescript/module/components/index.d.ts +4 -0
  144. package/lib/typescript/module/components/index.d.ts.map +1 -1
  145. package/package.json +1 -1
  146. package/src/components/Dropdown/Dropdown.tsx +319 -0
  147. package/src/components/Dropdown/index.ts +2 -0
  148. package/src/components/Menu/Menu.tsx +249 -0
  149. package/src/components/Menu/MenuButton.tsx +98 -0
  150. package/src/components/Menu/SelectButton.tsx +171 -0
  151. package/src/components/Menu/UserMenu.tsx +100 -0
  152. package/src/components/Menu/index.ts +14 -0
  153. package/src/components/Select/Select.tsx +323 -0
  154. package/src/components/Select/index.ts +2 -0
  155. package/src/components/UserChip/UserChip.tsx +138 -0
  156. package/src/components/UserChip/index.ts +2 -0
  157. package/src/components/index.ts +4 -0
@@ -0,0 +1,60 @@
1
+ import { type ButtonSize, type ButtonVariant } from '../Button/Button';
2
+ import type { IconName } from '../Icon/icons.generated';
3
+ import { type MenuOrigin } from './Menu';
4
+ /** A selectable option. Its `icon` shows both in the row and on the trigger when chosen. */
5
+ export interface SelectButtonOption {
6
+ key: string;
7
+ label: string;
8
+ icon?: IconName;
9
+ disabled?: boolean;
10
+ }
11
+ export interface SelectButtonProps {
12
+ /** The options to choose from. */
13
+ options: SelectButtonOption[];
14
+ /** Selected key (controlled). */
15
+ value?: string;
16
+ /** Selected key for the uncontrolled case. */
17
+ defaultValue?: string;
18
+ /** Called with the newly selected key. */
19
+ onChange?: (key: string) => void;
20
+ /** Trigger label when nothing is selected. */
21
+ placeholder?: string;
22
+ /** Trigger leading icon when nothing is selected. */
23
+ placeholderIcon?: IconName;
24
+ /** Show the selected option's icon on the trigger. Defaults to true. */
25
+ showSelectedIcon?: boolean;
26
+ /** Show a trailing chevron on the trigger. Defaults to false (matches the mockup). */
27
+ chevron?: boolean;
28
+ /** Trigger visual. Defaults to `secondary`. */
29
+ variant?: ButtonVariant;
30
+ /** Trigger size. Defaults to `sm`. */
31
+ size?: ButtonSize;
32
+ /** Stretch the trigger to the parent width. */
33
+ fullWidth?: boolean;
34
+ /** Disable the trigger. */
35
+ disabled?: boolean;
36
+ /** Point on the trigger the menu latches to. Defaults to `{ bottom, left }`. */
37
+ anchorOrigin?: MenuOrigin;
38
+ /** Point on the menu placed at the anchor. Defaults to `{ top, left }`. */
39
+ menuOrigin?: MenuOrigin;
40
+ /** Gap between trigger and menu. Defaults to 8. */
41
+ offset?: number;
42
+ /** Menu width. Defaults to the `Dropdown` default (350). */
43
+ menuWidth?: number;
44
+ /** Draw dividers between rows. Defaults to the `Dropdown` default (true). */
45
+ showDividers?: boolean;
46
+ /** Close the menu after selecting. Defaults to true. */
47
+ closeOnSelect?: boolean;
48
+ /** Controlled open state. */
49
+ open?: boolean;
50
+ /** Notified whenever the open state changes. */
51
+ onOpenChange?: (open: boolean) => void;
52
+ }
53
+ /**
54
+ * Select-style button — a `Button` (label + leading icon) that opens an anchored
55
+ * `Dropdown` to change its value; the current option is marked with a check.
56
+ * A composed component built from `Button` + `Menu` + `Dropdown`. Controlled via
57
+ * `value` / `onChange`, or uncontrolled via `defaultValue`.
58
+ */
59
+ export declare function SelectButton({ options, value: valueProp, defaultValue, onChange, placeholder, placeholderIcon, showSelectedIcon, chevron, variant, size, fullWidth, disabled, anchorOrigin, menuOrigin, offset, menuWidth, showDividers, closeOnSelect, open, onOpenChange, }: SelectButtonProps): import("react/jsx-runtime").JSX.Element;
60
+ //# sourceMappingURL=SelectButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/Menu/SelectButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE/C,4FAA4F;AAC5F,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,sCAAsC;IACtC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAqBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,QAAQ,EACR,WAAsB,EACtB,eAAe,EACf,gBAAuB,EACvB,OAAe,EACf,OAAqB,EACrB,IAAW,EACX,SAAiB,EACjB,QAAgB,EAChB,YAAyD,EACzD,UAAoD,EACpD,MAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAoB,EACpB,IAAI,EACJ,YAAY,GACb,EAAE,iBAAiB,2CAiEnB"}
@@ -0,0 +1,46 @@
1
+ import type { ImageSourcePropType } from 'react-native';
2
+ import { type DropdownEntry } from '../Dropdown/Dropdown';
3
+ import { type UserChipSize } from '../UserChip/UserChip';
4
+ import { type MenuOrigin } from './Menu';
5
+ export interface UserMenuProps {
6
+ /** The menu rows (see `Dropdown`). */
7
+ options: DropdownEntry[];
8
+ /** Called with the key of the selected row. */
9
+ onSelect?: (key: string) => void;
10
+ /** Avatar image for the trigger. */
11
+ source?: ImageSourcePropType;
12
+ /** Name for the trigger. With a name the trigger is the `UserChip` pill; without it, just the avatar. */
13
+ name?: string;
14
+ /** Explicit avatar initials. */
15
+ initials?: string;
16
+ /** Trigger size. Defaults to `md`. */
17
+ size?: UserChipSize;
18
+ /** Trigger pill background (when a name is shown). */
19
+ chipBackgroundColor?: string;
20
+ /** Trigger text color (when a name is shown). */
21
+ chipColor?: string;
22
+ /** Point on the trigger the menu latches to. Defaults to `{ bottom, left }`. */
23
+ anchorOrigin?: MenuOrigin;
24
+ /** Point on the menu placed at the anchor. Defaults to `{ top, left }`. */
25
+ menuOrigin?: MenuOrigin;
26
+ /** Gap between trigger and menu. Defaults to 8. */
27
+ offset?: number;
28
+ /** Menu width. Defaults to the `Dropdown` default (350). */
29
+ menuWidth?: number;
30
+ /** Draw dividers between rows. Defaults to the `Dropdown` default (true). */
31
+ showDividers?: boolean;
32
+ /** Close the menu after a row is selected. Defaults to true. */
33
+ closeOnSelect?: boolean;
34
+ /** Controlled open state. */
35
+ open?: boolean;
36
+ /** Notified whenever the open state changes. */
37
+ onOpenChange?: (open: boolean) => void;
38
+ }
39
+ /**
40
+ * User menu — an avatar / `UserChip` that opens an anchored `Dropdown` (e.g. an
41
+ * account menu). A composed component built from `UserChip` + `Menu` +
42
+ * `Dropdown`. Pass a `name` to use the labelled pill as the trigger, or omit it
43
+ * for just the avatar. Dismisses on outside press / back button.
44
+ */
45
+ export declare function UserMenu({ options, onSelect, source, name, initials, size, chipBackgroundColor, chipColor, anchorOrigin, menuOrigin, offset, menuWidth, showDividers, closeOnSelect, open, onOpenChange, }: UserMenuProps): import("react/jsx-runtime").JSX.Element;
46
+ //# sourceMappingURL=UserMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../../../src/components/Menu/UserMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,oCAAoC;IACpC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,yGAAyG;IACzG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,IAAW,EACX,mBAAmB,EACnB,SAAS,EACT,YAAyD,EACzD,UAAoD,EACpD,MAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAoB,EACpB,IAAI,EACJ,YAAY,GACb,EAAE,aAAa,2CAkCf"}
@@ -0,0 +1,9 @@
1
+ export { Menu } from './Menu';
2
+ export type { MenuProps, MenuOrigin, MenuTriggerState, OriginVertical, OriginHorizontal, } from './Menu';
3
+ export { MenuButton } from './MenuButton';
4
+ export type { MenuButtonProps } from './MenuButton';
5
+ export { SelectButton } from './SelectButton';
6
+ export type { SelectButtonProps, SelectButtonOption } from './SelectButton';
7
+ export { UserMenu } from './UserMenu';
8
+ export type { UserMenuProps } from './UserMenu';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { type StyleProp, type ViewStyle } from 'react-native';
2
+ import type { IconName } from '../Icon/icons.generated';
3
+ import { type EdgeInsets, type MenuOrigin } from '../Menu/Menu';
4
+ export type SelectSize = 'md' | 'lg';
5
+ /** An option in a `Select`. */
6
+ export interface SelectOption {
7
+ key: string;
8
+ label: string;
9
+ /** Leading icon shown in the option row. */
10
+ icon?: IconName;
11
+ disabled?: boolean;
12
+ }
13
+ export interface SelectProps {
14
+ /** The options to choose from. */
15
+ options: SelectOption[];
16
+ /** Allow choosing several options (checkbox rows; value is an array). */
17
+ multiple?: boolean;
18
+ /** Selected key(s) — a string (single) or string[] (multiple). Controlled. */
19
+ value?: string | string[];
20
+ /** Initial selection for the uncontrolled case. */
21
+ defaultValue?: string | string[];
22
+ /** Called with the new selection (string for single, string[] for multiple). */
23
+ onChange?: (value: string | string[]) => void;
24
+ /** Label above the field. */
25
+ label?: string;
26
+ /** Helper text below the field. Replaced by the error message when `error` is a string. */
27
+ helperText?: string;
28
+ /** Mark invalid. Pass a string to show it as the error message. */
29
+ error?: boolean | string;
30
+ /** Text shown when nothing is selected. Defaults to "Select option". */
31
+ placeholder?: string;
32
+ /** Fixed leading icon on the field. */
33
+ leftIcon?: IconName;
34
+ /** Field height: `md` = 48, `lg` = 58. Defaults to `lg`. */
35
+ size?: SelectSize;
36
+ /** Fixed field width. Omit to use `fullWidth` (the Figma default). */
37
+ width?: number;
38
+ /** Stretch to the full width of the parent. Defaults to true. Ignored when `width` is set. */
39
+ fullWidth?: boolean;
40
+ /** Disable the field. */
41
+ disabled?: boolean;
42
+ /** Custom display for the selected value(s). */
43
+ renderValue?: (selected: SelectOption[]) => string;
44
+ /** Match the menu width to the field width. Defaults to true. */
45
+ matchTriggerWidth?: boolean;
46
+ /** Menu width when `matchTriggerWidth` is false. */
47
+ menuWidth?: number;
48
+ /** Max menu height; scrolls beyond it. */
49
+ maxHeight?: number;
50
+ /** Point on the field the menu latches to. Defaults to `{ bottom, left }`. */
51
+ anchorOrigin?: MenuOrigin;
52
+ /** Point on the menu placed at the anchor. Defaults to `{ top, left }`. */
53
+ menuOrigin?: MenuOrigin;
54
+ /** Gap between field and menu. Defaults to 8. */
55
+ offset?: number;
56
+ /** Auto-fit the menu height and flip direction near screen edges. Defaults to true. */
57
+ autoFit?: boolean;
58
+ /** Safe-area insets to keep clear. */
59
+ insets?: EdgeInsets;
60
+ /** Close after selecting. Defaults to `!multiple`. */
61
+ closeOnSelect?: boolean;
62
+ /** Container style. */
63
+ style?: StyleProp<ViewStyle>;
64
+ }
65
+ /**
66
+ * Select — a form field that opens a `Dropdown` of options. The field mirrors
67
+ * `Input` (pill, label, helper/error, lime focus ring, red error ring); it is
68
+ * not editable — pressing it opens the menu, which matches the field width. The
69
+ * current option is marked with a check. With `multiple`, rows become checkboxes,
70
+ * the value is an array, and the menu stays open while picking.
71
+ */
72
+ export declare function Select({ options, multiple, value, defaultValue, onChange, label, helperText, error, placeholder, leftIcon, size, width, fullWidth, disabled, renderValue, matchTriggerWidth, menuWidth, maxHeight, anchorOrigin, menuOrigin, offset, autoFit, insets, closeOnSelect, style, }: SelectProps): import("react/jsx-runtime").JSX.Element;
73
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAQ,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAiBtE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAUrC,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAE9C,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8FAA8F;IAC9F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,MAAM,CAAC;IAEnD,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,QAAgB,EAChB,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,EACL,WAA6B,EAC7B,QAAQ,EACR,IAAW,EACX,KAAK,EACL,SAAgB,EAChB,QAAgB,EAChB,WAAW,EACX,iBAAwB,EACxB,SAAS,EACT,SAAS,EACT,YAAyD,EACzD,UAAoD,EACpD,MAAU,EACV,OAAc,EACd,MAAM,EACN,aAAa,EACb,KAAK,GACN,EAAE,WAAW,2CAyLb"}
@@ -0,0 +1,3 @@
1
+ export { Select } from './Select';
2
+ export type { SelectProps, SelectOption, SelectSize } from './Select';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { type ImageSourcePropType, type StyleProp, type ViewStyle } from 'react-native';
2
+ export type UserChipSize = 'sm' | 'md' | 'lg';
3
+ export interface UserChipProps {
4
+ /** Avatar image; when omitted or it fails to load, initials from `name` show. */
5
+ source?: ImageSourcePropType;
6
+ /**
7
+ * Name shown as the label and used for the avatar initials. When omitted, only
8
+ * the avatar renders (no pill) — the label's presence is driven by this prop.
9
+ */
10
+ name?: string;
11
+ /** Explicit initials for the avatar fallback (overrides `name`). */
12
+ initials?: string;
13
+ /** Size preset — scales the avatar, text and the fixed pill width. Defaults to `md`. */
14
+ size?: UserChipSize;
15
+ /** Pill background. Defaults to `action.primary` (lime). */
16
+ backgroundColor?: string;
17
+ /** Text color. Defaults to `action.secondaryForeground`. */
18
+ color?: string;
19
+ /** Make the chip pressable. */
20
+ onPress?: () => void;
21
+ /** Override the container style. */
22
+ style?: StyleProp<ViewStyle>;
23
+ /** Accessibility label. Defaults to `name`. */
24
+ accessibilityLabel?: string;
25
+ }
26
+ /**
27
+ * User chip — an `Avatar` with an optional name. With a `name` it renders the
28
+ * lime pill from Figma "User": the avatar flush on the left and the name in a
29
+ * fixed-width box that is centered when short and truncates with an ellipsis when
30
+ * long. Without a `name` it is just the avatar. The pill width is fixed per size.
31
+ */
32
+ export declare function UserChip({ source, name, initials, size, backgroundColor, color, onPress, style, accessibilityLabel, }: UserChipProps): import("react/jsx-runtime").JSX.Element;
33
+ //# sourceMappingURL=UserChip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserChip.d.ts","sourceRoot":"","sources":["../../../../../src/components/UserChip/UserChip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAMtB,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,iFAAiF;IACjF,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oCAAoC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAgBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,IAAW,EACX,eAAe,EACf,KAAK,EACL,OAAO,EACP,KAAK,EACL,kBAAkB,GACnB,EAAE,aAAa,2CAqEf"}
@@ -0,0 +1,3 @@
1
+ export { UserChip } from './UserChip';
2
+ export type { UserChipProps, UserChipSize } from './UserChip';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/UserChip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -7,18 +7,22 @@ export * from './Chip';
7
7
  export * from './CodeField';
8
8
  export * from './CodeInput';
9
9
  export * from './Dialog';
10
+ export * from './Dropdown';
10
11
  export * from './Icon';
11
12
  export * from './IconButton';
12
13
  export * from './Input';
13
14
  export * from './Keypad';
14
15
  export * from './LinkButton';
16
+ export * from './Menu';
15
17
  export * from './ProductCard';
16
18
  export * from './QuantityStepper';
17
19
  export * from './Radio';
20
+ export * from './Select';
18
21
  export * from './Spinner';
19
22
  export * from './Surface';
20
23
  export * from './Switch';
21
24
  export * from './Text';
22
25
  export * from './Toast';
26
+ export * from './UserChip';
23
27
  export type { LabelPosition } from './_internal/Labeled';
24
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAE3B,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { RadiusToken } from '../../theme/spacing';
4
+ import type { IconName } from '../Icon/icons.generated';
5
+ import { type SwitchSize } from '../Switch/Switch';
6
+ /**
7
+ * A leading/trailing slot on a row. Either a decorative/actionable control from
8
+ * the design system, or any custom node (avatar, flag, badge…).
9
+ */
10
+ export type DropdownSlot = {
11
+ kind: 'icon';
12
+ name: IconName;
13
+ color?: string;
14
+ } | {
15
+ kind: 'iconButton';
16
+ name: IconName;
17
+ onPress: () => void;
18
+ color?: string;
19
+ accessibilityLabel?: string;
20
+ } | {
21
+ kind: 'checkbox';
22
+ checked: boolean;
23
+ onChange: (checked: boolean) => void;
24
+ indeterminate?: boolean;
25
+ } | {
26
+ kind: 'switch';
27
+ value: boolean;
28
+ onChange: (value: boolean) => void;
29
+ size?: SwitchSize;
30
+ } | {
31
+ kind: 'radio';
32
+ selected: boolean;
33
+ onChange: () => void;
34
+ } | {
35
+ kind: 'custom';
36
+ node: ReactNode;
37
+ };
38
+ export interface DropdownItemProps {
39
+ /** Primary text. */
40
+ label: string;
41
+ /** Optional secondary line under the label. */
42
+ description?: string;
43
+ /** Slot before the text (icon / control / custom). */
44
+ leading?: DropdownSlot;
45
+ /** Slot after the text (icon / control / custom). */
46
+ trailing?: DropdownSlot;
47
+ /** Row press. If omitted, tapping the row toggles the trailing (then leading) control when it is a checkbox / switch / radio. */
48
+ onPress?: () => void;
49
+ /** Highlight the row as selected. */
50
+ selected?: boolean;
51
+ /** Dim and block the row. */
52
+ disabled?: boolean;
53
+ /** Render the label (and icon slots) in the error color — for "Delete" etc. */
54
+ destructive?: boolean;
55
+ /** Minimum row height. Defaults to 58 (Figma). */
56
+ height?: number;
57
+ /** Horizontal padding. Defaults to 16 (Figma). */
58
+ paddingHorizontal?: number;
59
+ style?: StyleProp<ViewStyle>;
60
+ }
61
+ /**
62
+ * A single dropdown / menu row: text with optional leading and trailing slots
63
+ * (icon, icon button, checkbox, switch, radio, or a custom node). Used on its
64
+ * own or, more commonly, inside `Dropdown`.
65
+ */
66
+ export declare function DropdownItem({ label, description, leading, trailing, onPress, selected, disabled, destructive, height, paddingHorizontal, style, }: DropdownItemProps): import("react/jsx-runtime").JSX.Element;
67
+ /** An entry in a `Dropdown`: an item, a section header, or a divider. */
68
+ export type DropdownEntry = (DropdownItemProps & {
69
+ key: string;
70
+ type?: 'item';
71
+ }) | {
72
+ key: string;
73
+ type: 'header';
74
+ label: string;
75
+ } | {
76
+ key: string;
77
+ type: 'divider';
78
+ };
79
+ export interface DropdownProps {
80
+ /** The rows to render (dynamic length). Mix items, headers and dividers. */
81
+ options: DropdownEntry[];
82
+ /** Called with the key of the pressed item (after its own `onPress`). */
83
+ onSelect?: (key: string) => void;
84
+ /** Panel width. Defaults to 350 (Figma). Pass a style with `width: '100%'` to fill a parent/trigger instead. */
85
+ width?: number;
86
+ /** Minimum panel width. */
87
+ minWidth?: number;
88
+ /** Max panel height; content scrolls beyond it. */
89
+ maxHeight?: number;
90
+ /** Draw hairline dividers between items. Defaults to true (Figma). */
91
+ showDividers?: boolean;
92
+ /** Vertical padding inside the panel. Defaults to 0 (rows meet the rounded edges, Figma). */
93
+ paddingVertical?: number;
94
+ /** Corner radius token. Defaults to `xl` (16). */
95
+ radius?: RadiusToken;
96
+ style?: StyleProp<ViewStyle>;
97
+ }
98
+ /**
99
+ * Dropdown / menu panel — an elevated surface listing a dynamic set of options.
100
+ * Meant to be shown from a trigger (an Input select, an IconButton, …). Each row
101
+ * is a `DropdownItem`, so options can carry icons, checkboxes, switches, radios
102
+ * or custom nodes on either side. Supports section headers, dividers and scroll.
103
+ */
104
+ export declare function Dropdown({ options, onSelect, width, minWidth, maxHeight, showDividers, paddingVertical, radius, style, }: DropdownProps): import("react/jsx-runtime").JSX.Element;
105
+ //# sourceMappingURL=Dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Dropdown, DropdownItem } from './Dropdown';
2
+ export type { DropdownProps, DropdownItemProps, DropdownEntry, DropdownSlot } from './Dropdown';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Dropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export type OriginVertical = 'top' | 'center' | 'bottom';
4
+ export type OriginHorizontal = 'left' | 'center' | 'right';
5
+ /** A point on a box: a vertical and a horizontal edge/center. */
6
+ export interface MenuOrigin {
7
+ vertical: OriginVertical;
8
+ horizontal: OriginHorizontal;
9
+ }
10
+ /** State handed to the trigger renderer and (optionally) the content renderer. */
11
+ export interface MenuTriggerState {
12
+ open: boolean;
13
+ toggle: () => void;
14
+ close: () => void;
15
+ }
16
+ export interface MenuProps {
17
+ /** Renders the trigger. Wire its press to `toggle`. */
18
+ renderTrigger: (state: MenuTriggerState) => ReactNode;
19
+ /**
20
+ * The overlay content (e.g. a `Dropdown`). May be a function receiving
21
+ * `{ close, triggerWidth, maxHeight }` — `maxHeight` is the auto-fit height
22
+ * (space available in the chosen direction) so the content can scroll.
23
+ */
24
+ children: ReactNode | ((state: {
25
+ close: () => void;
26
+ triggerWidth?: number;
27
+ maxHeight?: number;
28
+ }) => ReactNode);
29
+ /** Point on the trigger the menu latches to. Defaults to `{ bottom, left }`. */
30
+ anchorOrigin?: MenuOrigin;
31
+ /** Point on the menu placed at the anchor. Defaults to `{ top, left }`. */
32
+ menuOrigin?: MenuOrigin;
33
+ /** Gap between trigger and menu along the vertical axis. Defaults to 8. */
34
+ offset?: number;
35
+ /**
36
+ * Fit the menu to the space available and flip its direction when the
37
+ * preferred side doesn't have room. Provides a `maxHeight` to the content so it
38
+ * scrolls instead of overflowing the screen. Defaults to true.
39
+ */
40
+ autoFit?: boolean;
41
+ /** Safe-area insets to keep clear (pass from `react-native-safe-area-context` if you use it). */
42
+ insets?: EdgeInsets;
43
+ /** Controlled open state. Omit for uncontrolled. */
44
+ open?: boolean;
45
+ /** Notified whenever the open state changes. */
46
+ onOpenChange?: (open: boolean) => void;
47
+ /** Padding kept from the screen edges when clamping. Defaults to 8. */
48
+ screenPadding?: number;
49
+ /** Style for the (measuring) wrapper around the trigger. Defaults to hugging the trigger. */
50
+ triggerStyle?: StyleProp<ViewStyle>;
51
+ }
52
+ export interface EdgeInsets {
53
+ top: number;
54
+ right: number;
55
+ bottom: number;
56
+ left: number;
57
+ }
58
+ /**
59
+ * Anchored overlay menu. Renders a trigger inline and, when open, a floating
60
+ * panel positioned relative to the trigger via two origins — `anchorOrigin`
61
+ * (point on the trigger) and `menuOrigin` (matching point on the menu). Tapping
62
+ * outside (or the hardware back button) dismisses it. Used to compose menu
63
+ * buttons, select fields, popovers, etc.
64
+ */
65
+ export declare function Menu({ renderTrigger, children, anchorOrigin, menuOrigin, offset, autoFit, insets, open: openProp, onOpenChange, screenPadding, triggerStyle, }: MenuProps): import("react/jsx-runtime").JSX.Element;
66
+ //# sourceMappingURL=Menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../../src/components/Menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EASL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAKD,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,aAAa,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAC;IACtD;;;;OAIG;IACH,QAAQ,EACJ,SAAS,GACT,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC,CAAC;IAC7F,gFAAgF;IAChF,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iGAAiG;IACjG,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,oDAAoD;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAgBD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,EACnB,aAAa,EACb,QAAQ,EACR,YAAyD,EACzD,UAAoD,EACpD,MAAU,EACV,OAAc,EACd,MAAoB,EACpB,IAAI,EAAE,QAAQ,EACd,YAAY,EACZ,aAAiB,EACjB,YAAY,GACb,EAAE,SAAS,2CA4IX"}
@@ -0,0 +1,46 @@
1
+ import { type DropdownEntry } from '../Dropdown/Dropdown';
2
+ import { type IconButtonShape, type IconButtonSize, type IconButtonVariant } from '../IconButton/IconButton';
3
+ import type { IconName } from '../Icon/icons.generated';
4
+ import { type MenuOrigin } from './Menu';
5
+ export interface MenuButtonProps {
6
+ /** The menu rows (see `Dropdown`). */
7
+ options: DropdownEntry[];
8
+ /** Called with the key of the selected row. */
9
+ onSelect?: (key: string) => void;
10
+ /** Trigger icon. Defaults to `more` (the "More" button). */
11
+ icon?: IconName;
12
+ /** Accessibility label for the trigger. Defaults to "More options". */
13
+ accessibilityLabel?: string;
14
+ /** Trigger visual. Defaults to `secondary` (white + hairline border). */
15
+ variant?: IconButtonVariant;
16
+ /** Trigger size. Defaults to `md`. */
17
+ size?: IconButtonSize;
18
+ /** Trigger shape. Defaults to `round`. */
19
+ shape?: IconButtonShape;
20
+ /** Disable the trigger. */
21
+ disabled?: boolean;
22
+ /** Point on the trigger the menu latches to. Defaults to `{ bottom, right }`. */
23
+ anchorOrigin?: MenuOrigin;
24
+ /** Point on the menu placed at the anchor. Defaults to `{ top, right }`. */
25
+ menuOrigin?: MenuOrigin;
26
+ /** Gap between trigger and menu. Defaults to 8. */
27
+ offset?: number;
28
+ /** Menu width. Defaults to the `Dropdown` default (350). */
29
+ menuWidth?: number;
30
+ /** Draw dividers between rows. Defaults to the `Dropdown` default (true). */
31
+ showDividers?: boolean;
32
+ /** Close the menu after a row is selected. Defaults to true. */
33
+ closeOnSelect?: boolean;
34
+ /** Controlled open state. */
35
+ open?: boolean;
36
+ /** Notified whenever the open state changes. */
37
+ onOpenChange?: (open: boolean) => void;
38
+ }
39
+ /**
40
+ * A "More"-style menu button — an `IconButton` that opens an anchored `Dropdown`.
41
+ * The first composed component built from `IconButton` + `Icon` + `Dropdown` +
42
+ * `Menu`. Placement is controlled by the two-origin model (`anchorOrigin` on the
43
+ * trigger, `menuOrigin` on the menu). Dismisses on outside press / back button.
44
+ */
45
+ export declare function MenuButton({ options, onSelect, icon, accessibilityLabel, variant, size, shape, disabled, anchorOrigin, menuOrigin, offset, menuWidth, showDividers, closeOnSelect, open, onOpenChange, }: MenuButtonProps): import("react/jsx-runtime").JSX.Element;
46
+ //# sourceMappingURL=MenuButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/Menu/MenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,sCAAsC;IACtC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,QAAQ,EACR,IAAa,EACb,kBAAmC,EACnC,OAAqB,EACrB,IAAW,EACX,KAAe,EACf,QAAgB,EAChB,YAA0D,EAC1D,UAAqD,EACrD,MAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAoB,EACpB,IAAI,EACJ,YAAY,GACb,EAAE,eAAe,2CAkCjB"}
@@ -0,0 +1,60 @@
1
+ import { type ButtonSize, type ButtonVariant } from '../Button/Button';
2
+ import type { IconName } from '../Icon/icons.generated';
3
+ import { type MenuOrigin } from './Menu';
4
+ /** A selectable option. Its `icon` shows both in the row and on the trigger when chosen. */
5
+ export interface SelectButtonOption {
6
+ key: string;
7
+ label: string;
8
+ icon?: IconName;
9
+ disabled?: boolean;
10
+ }
11
+ export interface SelectButtonProps {
12
+ /** The options to choose from. */
13
+ options: SelectButtonOption[];
14
+ /** Selected key (controlled). */
15
+ value?: string;
16
+ /** Selected key for the uncontrolled case. */
17
+ defaultValue?: string;
18
+ /** Called with the newly selected key. */
19
+ onChange?: (key: string) => void;
20
+ /** Trigger label when nothing is selected. */
21
+ placeholder?: string;
22
+ /** Trigger leading icon when nothing is selected. */
23
+ placeholderIcon?: IconName;
24
+ /** Show the selected option's icon on the trigger. Defaults to true. */
25
+ showSelectedIcon?: boolean;
26
+ /** Show a trailing chevron on the trigger. Defaults to false (matches the mockup). */
27
+ chevron?: boolean;
28
+ /** Trigger visual. Defaults to `secondary`. */
29
+ variant?: ButtonVariant;
30
+ /** Trigger size. Defaults to `sm`. */
31
+ size?: ButtonSize;
32
+ /** Stretch the trigger to the parent width. */
33
+ fullWidth?: boolean;
34
+ /** Disable the trigger. */
35
+ disabled?: boolean;
36
+ /** Point on the trigger the menu latches to. Defaults to `{ bottom, left }`. */
37
+ anchorOrigin?: MenuOrigin;
38
+ /** Point on the menu placed at the anchor. Defaults to `{ top, left }`. */
39
+ menuOrigin?: MenuOrigin;
40
+ /** Gap between trigger and menu. Defaults to 8. */
41
+ offset?: number;
42
+ /** Menu width. Defaults to the `Dropdown` default (350). */
43
+ menuWidth?: number;
44
+ /** Draw dividers between rows. Defaults to the `Dropdown` default (true). */
45
+ showDividers?: boolean;
46
+ /** Close the menu after selecting. Defaults to true. */
47
+ closeOnSelect?: boolean;
48
+ /** Controlled open state. */
49
+ open?: boolean;
50
+ /** Notified whenever the open state changes. */
51
+ onOpenChange?: (open: boolean) => void;
52
+ }
53
+ /**
54
+ * Select-style button — a `Button` (label + leading icon) that opens an anchored
55
+ * `Dropdown` to change its value; the current option is marked with a check.
56
+ * A composed component built from `Button` + `Menu` + `Dropdown`. Controlled via
57
+ * `value` / `onChange`, or uncontrolled via `defaultValue`.
58
+ */
59
+ export declare function SelectButton({ options, value: valueProp, defaultValue, onChange, placeholder, placeholderIcon, showSelectedIcon, chevron, variant, size, fullWidth, disabled, anchorOrigin, menuOrigin, offset, menuWidth, showDividers, closeOnSelect, open, onOpenChange, }: SelectButtonProps): import("react/jsx-runtime").JSX.Element;
60
+ //# sourceMappingURL=SelectButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/Menu/SelectButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE/C,4FAA4F;AAC5F,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,sCAAsC;IACtC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAqBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,QAAQ,EACR,WAAsB,EACtB,eAAe,EACf,gBAAuB,EACvB,OAAe,EACf,OAAqB,EACrB,IAAW,EACX,SAAiB,EACjB,QAAgB,EAChB,YAAyD,EACzD,UAAoD,EACpD,MAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAoB,EACpB,IAAI,EACJ,YAAY,GACb,EAAE,iBAAiB,2CAiEnB"}