@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,277 @@
1
+ "use strict";
2
+
3
+ import { Fragment } from 'react';
4
+ import { Pressable, View } from 'react-native';
5
+ import { useTheme } from "../../theme/index.js";
6
+ import { Checkbox } from "../Checkbox/Checkbox.js";
7
+ import { Icon } from "../Icon/Icon.js";
8
+ import { Radio } from "../Radio/Radio.js";
9
+ import { Switch } from "../Switch/Switch.js";
10
+ import { Text } from "../Text/Text.js";
11
+ import { ScrollArea } from "../_internal/ScrollArea.js";
12
+
13
+ /**
14
+ * A leading/trailing slot on a row. Either a decorative/actionable control from
15
+ * the design system, or any custom node (avatar, flag, badge…).
16
+ */
17
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
18
+ /**
19
+ * Checkbox/Switch/Radio wrap their control in `Labeled`, which defaults to
20
+ * `alignSelf: 'flex-start'`. Inside a row we want them vertically centered, so we
21
+ * override that (their `style` prop wins over the Labeled default).
22
+ */
23
+ const CONTROL_ALIGN = {
24
+ alignSelf: 'center'
25
+ };
26
+
27
+ /** Returns the toggle a control slot performs when the row itself is pressed. */
28
+ function slotToggle(slot) {
29
+ if (!slot) return undefined;
30
+ switch (slot.kind) {
31
+ case 'checkbox':
32
+ return () => slot.onChange(!slot.checked);
33
+ case 'switch':
34
+ return () => slot.onChange(!slot.value);
35
+ case 'radio':
36
+ return () => slot.onChange();
37
+ default:
38
+ return undefined;
39
+ }
40
+ }
41
+ function Slot({
42
+ slot,
43
+ disabled,
44
+ destructive
45
+ }) {
46
+ const theme = useTheme();
47
+ if (!slot) return null;
48
+ const iconColor = destructive ? theme.colors.feedback.error : 'secondary';
49
+ switch (slot.kind) {
50
+ case 'icon':
51
+ return /*#__PURE__*/_jsx(Icon, {
52
+ name: slot.name,
53
+ size: 24,
54
+ color: slot.color ?? iconColor
55
+ });
56
+ case 'iconButton':
57
+ return /*#__PURE__*/_jsx(Pressable, {
58
+ onPress: slot.onPress,
59
+ disabled: disabled,
60
+ hitSlop: 8,
61
+ accessibilityRole: "button",
62
+ accessibilityLabel: slot.accessibilityLabel,
63
+ style: {
64
+ opacity: disabled ? 0.5 : 1
65
+ },
66
+ children: /*#__PURE__*/_jsx(Icon, {
67
+ name: slot.name,
68
+ size: 24,
69
+ color: slot.color ?? iconColor
70
+ })
71
+ });
72
+ case 'checkbox':
73
+ return /*#__PURE__*/_jsx(Checkbox, {
74
+ checked: slot.checked,
75
+ onChange: slot.onChange,
76
+ indeterminate: slot.indeterminate,
77
+ disabled: disabled,
78
+ style: CONTROL_ALIGN
79
+ });
80
+ case 'switch':
81
+ return /*#__PURE__*/_jsx(Switch, {
82
+ value: slot.value,
83
+ onValueChange: slot.onChange,
84
+ size: slot.size ?? 'sm',
85
+ disabled: disabled,
86
+ style: CONTROL_ALIGN
87
+ });
88
+ case 'radio':
89
+ return /*#__PURE__*/_jsx(Radio, {
90
+ selected: slot.selected,
91
+ onChange: slot.onChange,
92
+ disabled: disabled,
93
+ style: CONTROL_ALIGN
94
+ });
95
+ case 'custom':
96
+ return /*#__PURE__*/_jsx(_Fragment, {
97
+ children: slot.node
98
+ });
99
+ }
100
+ }
101
+
102
+ /**
103
+ * A single dropdown / menu row: text with optional leading and trailing slots
104
+ * (icon, icon button, checkbox, switch, radio, or a custom node). Used on its
105
+ * own or, more commonly, inside `Dropdown`.
106
+ */
107
+ export function DropdownItem({
108
+ label,
109
+ description,
110
+ leading,
111
+ trailing,
112
+ onPress,
113
+ selected = false,
114
+ disabled = false,
115
+ destructive = false,
116
+ height = 58,
117
+ paddingHorizontal = 16,
118
+ style
119
+ }) {
120
+ const theme = useTheme();
121
+ const rowPress = onPress ?? slotToggle(trailing) ?? slotToggle(leading);
122
+ const labelColor = disabled ? 'tertiary' : destructive ? theme.colors.feedback.error : 'primary';
123
+ return /*#__PURE__*/_jsxs(Pressable, {
124
+ onPress: rowPress,
125
+ disabled: disabled || !rowPress,
126
+ accessibilityRole: "menuitem",
127
+ accessibilityState: {
128
+ selected,
129
+ disabled
130
+ },
131
+ style: ({
132
+ pressed
133
+ }) => [{
134
+ flexDirection: 'row',
135
+ alignItems: 'center',
136
+ gap: 10,
137
+ minHeight: height,
138
+ paddingHorizontal,
139
+ paddingVertical: description ? 8 : 0,
140
+ backgroundColor: selected ? theme.colors.background.subtle : pressed && rowPress ? theme.colors.background.muted : 'transparent',
141
+ opacity: disabled ? 0.6 : 1
142
+ }, style],
143
+ children: [/*#__PURE__*/_jsx(Slot, {
144
+ slot: leading,
145
+ disabled: disabled,
146
+ destructive: destructive
147
+ }), /*#__PURE__*/_jsxs(View, {
148
+ style: {
149
+ flex: 1,
150
+ minWidth: 0,
151
+ gap: 2
152
+ },
153
+ children: [/*#__PURE__*/_jsx(Text, {
154
+ variant: "bodyLarge",
155
+ color: labelColor,
156
+ numberOfLines: 1,
157
+ children: label
158
+ }), description ? /*#__PURE__*/_jsx(Text, {
159
+ variant: "bodySmall",
160
+ color: "tertiary",
161
+ numberOfLines: 2,
162
+ children: description
163
+ }) : null]
164
+ }), /*#__PURE__*/_jsx(Slot, {
165
+ slot: trailing,
166
+ disabled: disabled,
167
+ destructive: destructive
168
+ })]
169
+ });
170
+ }
171
+
172
+ /** An entry in a `Dropdown`: an item, a section header, or a divider. */
173
+
174
+ /**
175
+ * Dropdown / menu panel — an elevated surface listing a dynamic set of options.
176
+ * Meant to be shown from a trigger (an Input select, an IconButton, …). Each row
177
+ * is a `DropdownItem`, so options can carry icons, checkboxes, switches, radios
178
+ * or custom nodes on either side. Supports section headers, dividers and scroll.
179
+ */
180
+ export function Dropdown({
181
+ options,
182
+ onSelect,
183
+ width = 350,
184
+ minWidth,
185
+ maxHeight,
186
+ showDividers = true,
187
+ paddingVertical = 0,
188
+ radius = 'xl',
189
+ style
190
+ }) {
191
+ const theme = useTheme();
192
+ const itemEntries = options.filter(o => o.type !== 'header' && o.type !== 'divider');
193
+ const lastItemKey = itemEntries[itemEntries.length - 1]?.key;
194
+ const rows = options.map(entry => {
195
+ if (entry.type === 'divider') {
196
+ return /*#__PURE__*/_jsx(View, {
197
+ style: {
198
+ height: 1,
199
+ backgroundColor: theme.colors.border.subtle,
200
+ marginVertical: 4
201
+ }
202
+ }, entry.key);
203
+ }
204
+ if (entry.type === 'header') {
205
+ return /*#__PURE__*/_jsx(Text, {
206
+ variant: "caption",
207
+ weight: "medium",
208
+ color: "tertiary",
209
+ style: {
210
+ paddingHorizontal: 16,
211
+ paddingTop: 8,
212
+ paddingBottom: 4
213
+ },
214
+ children: entry.label
215
+ }, entry.key);
216
+ }
217
+ const {
218
+ key,
219
+ type: _type,
220
+ onPress,
221
+ ...itemProps
222
+ } = entry;
223
+ return /*#__PURE__*/_jsxs(Fragment, {
224
+ children: [/*#__PURE__*/_jsx(DropdownItem, {
225
+ ...itemProps,
226
+ onPress: onPress || onSelect ? () => {
227
+ onPress?.();
228
+ onSelect?.(key);
229
+ } : undefined
230
+ }), showDividers && key !== lastItemKey ? /*#__PURE__*/_jsx(View, {
231
+ style: {
232
+ height: 1,
233
+ backgroundColor: theme.colors.border.subtle
234
+ }
235
+ }) : null]
236
+ }, key);
237
+ });
238
+ const body = /*#__PURE__*/_jsx(View, {
239
+ style: {
240
+ paddingVertical
241
+ },
242
+ children: rows
243
+ });
244
+ return /*#__PURE__*/_jsx(View, {
245
+ style: [{
246
+ width,
247
+ minWidth,
248
+ borderRadius: theme.radii[radius],
249
+ borderWidth: 1,
250
+ borderColor: theme.colors.border.default,
251
+ backgroundColor: theme.colors.background.default,
252
+ overflow: 'hidden',
253
+ // Figma "shadow-5".
254
+ boxShadow: [{
255
+ offsetX: 0,
256
+ offsetY: 8,
257
+ blurRadius: 10,
258
+ spreadDistance: -6,
259
+ color: 'rgba(0, 0, 0, 0.04)'
260
+ }, {
261
+ offsetX: 0,
262
+ offsetY: 20,
263
+ blurRadius: 25,
264
+ spreadDistance: -5,
265
+ color: 'rgba(0, 0, 0, 0.04)'
266
+ }]
267
+ }, style],
268
+ children: maxHeight ? /*#__PURE__*/_jsx(ScrollArea, {
269
+ style: {
270
+ maxHeight
271
+ },
272
+ indicatorColor: theme.colors.border.strong,
273
+ children: body
274
+ }) : body
275
+ });
276
+ }
277
+ //# sourceMappingURL=Dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Fragment","Pressable","View","useTheme","Checkbox","Icon","Radio","Switch","Text","ScrollArea","jsx","_jsx","_Fragment","jsxs","_jsxs","CONTROL_ALIGN","alignSelf","slotToggle","slot","undefined","kind","onChange","checked","value","Slot","disabled","destructive","theme","iconColor","colors","feedback","error","name","size","color","onPress","hitSlop","accessibilityRole","accessibilityLabel","style","opacity","children","indeterminate","onValueChange","selected","node","DropdownItem","label","description","leading","trailing","height","paddingHorizontal","rowPress","labelColor","accessibilityState","pressed","flexDirection","alignItems","gap","minHeight","paddingVertical","backgroundColor","background","subtle","muted","flex","minWidth","variant","numberOfLines","Dropdown","options","onSelect","width","maxHeight","showDividers","radius","itemEntries","filter","o","type","lastItemKey","length","key","rows","map","entry","border","marginVertical","weight","paddingTop","paddingBottom","_type","itemProps","body","borderRadius","radii","borderWidth","borderColor","default","overflow","boxShadow","offsetX","offsetY","blurRadius","spreadDistance","indicatorColor","strong"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Dropdown/Dropdown.tsx"],"mappings":"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","ignoreList":[]}