@bacon-pos/ui 0.5.1 → 0.6.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 (140) 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 +421 -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/index.js +27 -0
  24. package/lib/commonjs/components/Menu/index.js.map +1 -0
  25. package/lib/commonjs/components/Select/Select.js +246 -0
  26. package/lib/commonjs/components/Select/Select.js.map +1 -0
  27. package/lib/commonjs/components/Select/Select.stories.js +221 -0
  28. package/lib/commonjs/components/Select/Select.stories.js.map +1 -0
  29. package/lib/commonjs/components/Select/Select.test.js +165 -0
  30. package/lib/commonjs/components/Select/Select.test.js.map +1 -0
  31. package/lib/commonjs/components/Select/index.js +13 -0
  32. package/lib/commonjs/components/Select/index.js.map +1 -0
  33. package/lib/commonjs/components/UserChip/UserChip.js +121 -0
  34. package/lib/commonjs/components/UserChip/UserChip.js.map +1 -0
  35. package/lib/commonjs/components/UserChip/UserChip.stories.js +153 -0
  36. package/lib/commonjs/components/UserChip/UserChip.stories.js.map +1 -0
  37. package/lib/commonjs/components/UserChip/UserChip.test.js +59 -0
  38. package/lib/commonjs/components/UserChip/UserChip.test.js.map +1 -0
  39. package/lib/commonjs/components/UserChip/index.js +13 -0
  40. package/lib/commonjs/components/UserChip/index.js.map +1 -0
  41. package/lib/commonjs/components/index.js +57 -13
  42. package/lib/commonjs/components/index.js.map +1 -1
  43. package/lib/module/components/Dropdown/Dropdown.js +277 -0
  44. package/lib/module/components/Dropdown/Dropdown.js.map +1 -0
  45. package/lib/module/components/Dropdown/Dropdown.stories.js +417 -0
  46. package/lib/module/components/Dropdown/Dropdown.stories.js.map +1 -0
  47. package/lib/module/components/Dropdown/Dropdown.test.js +113 -0
  48. package/lib/module/components/Dropdown/Dropdown.test.js.map +1 -0
  49. package/lib/module/components/Dropdown/index.js +4 -0
  50. package/lib/module/components/Dropdown/index.js.map +1 -0
  51. package/lib/module/components/Menu/Menu.js +210 -0
  52. package/lib/module/components/Menu/Menu.js.map +1 -0
  53. package/lib/module/components/Menu/Menu.test.js +71 -0
  54. package/lib/module/components/Menu/Menu.test.js.map +1 -0
  55. package/lib/module/components/Menu/MenuButton.js +69 -0
  56. package/lib/module/components/Menu/MenuButton.js.map +1 -0
  57. package/lib/module/components/Menu/MenuButton.stories.js +162 -0
  58. package/lib/module/components/Menu/MenuButton.stories.js.map +1 -0
  59. package/lib/module/components/Menu/SelectButton.js +139 -0
  60. package/lib/module/components/Menu/SelectButton.js.map +1 -0
  61. package/lib/module/components/Menu/SelectButton.stories.js +112 -0
  62. package/lib/module/components/Menu/SelectButton.stories.js.map +1 -0
  63. package/lib/module/components/Menu/SelectButton.test.js +80 -0
  64. package/lib/module/components/Menu/SelectButton.test.js.map +1 -0
  65. package/lib/module/components/Menu/index.js +6 -0
  66. package/lib/module/components/Menu/index.js.map +1 -0
  67. package/lib/module/components/Select/Select.js +244 -0
  68. package/lib/module/components/Select/Select.js.map +1 -0
  69. package/lib/module/components/Select/Select.stories.js +217 -0
  70. package/lib/module/components/Select/Select.stories.js.map +1 -0
  71. package/lib/module/components/Select/Select.test.js +165 -0
  72. package/lib/module/components/Select/Select.test.js.map +1 -0
  73. package/lib/module/components/Select/index.js +4 -0
  74. package/lib/module/components/Select/index.js.map +1 -0
  75. package/lib/module/components/UserChip/UserChip.js +117 -0
  76. package/lib/module/components/UserChip/UserChip.js.map +1 -0
  77. package/lib/module/components/UserChip/UserChip.stories.js +149 -0
  78. package/lib/module/components/UserChip/UserChip.stories.js.map +1 -0
  79. package/lib/module/components/UserChip/UserChip.test.js +59 -0
  80. package/lib/module/components/UserChip/UserChip.test.js.map +1 -0
  81. package/lib/module/components/UserChip/index.js +4 -0
  82. package/lib/module/components/UserChip/index.js.map +1 -0
  83. package/lib/module/components/index.js +4 -0
  84. package/lib/module/components/index.js.map +1 -1
  85. package/lib/typescript/commonjs/components/Dropdown/Dropdown.d.ts +105 -0
  86. package/lib/typescript/commonjs/components/Dropdown/Dropdown.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/components/Dropdown/index.d.ts +3 -0
  88. package/lib/typescript/commonjs/components/Dropdown/index.d.ts.map +1 -0
  89. package/lib/typescript/commonjs/components/Menu/Menu.d.ts +66 -0
  90. package/lib/typescript/commonjs/components/Menu/Menu.d.ts.map +1 -0
  91. package/lib/typescript/commonjs/components/Menu/MenuButton.d.ts +46 -0
  92. package/lib/typescript/commonjs/components/Menu/MenuButton.d.ts.map +1 -0
  93. package/lib/typescript/commonjs/components/Menu/SelectButton.d.ts +60 -0
  94. package/lib/typescript/commonjs/components/Menu/SelectButton.d.ts.map +1 -0
  95. package/lib/typescript/commonjs/components/Menu/index.d.ts +7 -0
  96. package/lib/typescript/commonjs/components/Menu/index.d.ts.map +1 -0
  97. package/lib/typescript/commonjs/components/Select/Select.d.ts +73 -0
  98. package/lib/typescript/commonjs/components/Select/Select.d.ts.map +1 -0
  99. package/lib/typescript/commonjs/components/Select/index.d.ts +3 -0
  100. package/lib/typescript/commonjs/components/Select/index.d.ts.map +1 -0
  101. package/lib/typescript/commonjs/components/UserChip/UserChip.d.ts +33 -0
  102. package/lib/typescript/commonjs/components/UserChip/UserChip.d.ts.map +1 -0
  103. package/lib/typescript/commonjs/components/UserChip/index.d.ts +3 -0
  104. package/lib/typescript/commonjs/components/UserChip/index.d.ts.map +1 -0
  105. package/lib/typescript/commonjs/components/index.d.ts +4 -0
  106. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  107. package/lib/typescript/module/components/Dropdown/Dropdown.d.ts +105 -0
  108. package/lib/typescript/module/components/Dropdown/Dropdown.d.ts.map +1 -0
  109. package/lib/typescript/module/components/Dropdown/index.d.ts +3 -0
  110. package/lib/typescript/module/components/Dropdown/index.d.ts.map +1 -0
  111. package/lib/typescript/module/components/Menu/Menu.d.ts +66 -0
  112. package/lib/typescript/module/components/Menu/Menu.d.ts.map +1 -0
  113. package/lib/typescript/module/components/Menu/MenuButton.d.ts +46 -0
  114. package/lib/typescript/module/components/Menu/MenuButton.d.ts.map +1 -0
  115. package/lib/typescript/module/components/Menu/SelectButton.d.ts +60 -0
  116. package/lib/typescript/module/components/Menu/SelectButton.d.ts.map +1 -0
  117. package/lib/typescript/module/components/Menu/index.d.ts +7 -0
  118. package/lib/typescript/module/components/Menu/index.d.ts.map +1 -0
  119. package/lib/typescript/module/components/Select/Select.d.ts +73 -0
  120. package/lib/typescript/module/components/Select/Select.d.ts.map +1 -0
  121. package/lib/typescript/module/components/Select/index.d.ts +3 -0
  122. package/lib/typescript/module/components/Select/index.d.ts.map +1 -0
  123. package/lib/typescript/module/components/UserChip/UserChip.d.ts +33 -0
  124. package/lib/typescript/module/components/UserChip/UserChip.d.ts.map +1 -0
  125. package/lib/typescript/module/components/UserChip/index.d.ts +3 -0
  126. package/lib/typescript/module/components/UserChip/index.d.ts.map +1 -0
  127. package/lib/typescript/module/components/index.d.ts +4 -0
  128. package/lib/typescript/module/components/index.d.ts.map +1 -1
  129. package/package.json +1 -1
  130. package/src/components/Dropdown/Dropdown.tsx +319 -0
  131. package/src/components/Dropdown/index.ts +2 -0
  132. package/src/components/Menu/Menu.tsx +249 -0
  133. package/src/components/Menu/MenuButton.tsx +98 -0
  134. package/src/components/Menu/SelectButton.tsx +171 -0
  135. package/src/components/Menu/index.ts +12 -0
  136. package/src/components/Select/Select.tsx +323 -0
  137. package/src/components/Select/index.ts +2 -0
  138. package/src/components/UserChip/UserChip.tsx +138 -0
  139. package/src/components/UserChip/index.ts +2 -0
  140. 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":[]}
@@ -0,0 +1,417 @@
1
+ "use strict";
2
+
3
+ import { useState } from 'react';
4
+ import { View } from 'react-native';
5
+ import { Dropdown } from "./Dropdown.js";
6
+ import { useTheme } from "../../theme/index.js";
7
+ import { Text } from "../Text/Text.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const meta = {
10
+ title: 'Components/Dropdown',
11
+ component: Dropdown
12
+ };
13
+ export default meta;
14
+ /** Faithful Figma replica: star leading, label, green check trailing (default 350 width). */
15
+ export const Default = {
16
+ render: () => {
17
+ const theme = useTheme();
18
+ const options = Array.from({
19
+ length: 6
20
+ }).map((_, i) => ({
21
+ key: String(i),
22
+ label: 'Option',
23
+ leading: {
24
+ kind: 'icon',
25
+ name: 'star'
26
+ },
27
+ trailing: {
28
+ kind: 'icon',
29
+ name: 'check',
30
+ color: theme.colors.feedback.success
31
+ }
32
+ }));
33
+ return /*#__PURE__*/_jsx(View, {
34
+ style: {
35
+ padding: 24
36
+ },
37
+ children: /*#__PURE__*/_jsx(Dropdown, {
38
+ options: options
39
+ })
40
+ });
41
+ }
42
+ };
43
+
44
+ /** Select menu (e.g. opened from an Input select): tapping sets the checked row. */
45
+ export const Select = {
46
+ render: () => {
47
+ const theme = useTheme();
48
+ const items = ['Small', 'Medium', 'Large', 'Extra large'];
49
+ const [sel, setSel] = useState('Medium');
50
+ const options = items.map(label => ({
51
+ key: label,
52
+ label,
53
+ selected: label === sel,
54
+ trailing: label === sel ? {
55
+ kind: 'icon',
56
+ name: 'check',
57
+ color: theme.colors.feedback.success
58
+ } : undefined
59
+ }));
60
+ return /*#__PURE__*/_jsxs(View, {
61
+ style: {
62
+ padding: 24
63
+ },
64
+ children: [/*#__PURE__*/_jsx(Dropdown, {
65
+ options: options,
66
+ onSelect: setSel
67
+ }), /*#__PURE__*/_jsxs(Text, {
68
+ variant: "caption",
69
+ color: "secondary",
70
+ style: {
71
+ marginTop: 8
72
+ },
73
+ children: ["selected: ", sel]
74
+ })]
75
+ });
76
+ }
77
+ };
78
+
79
+ /** Multi-select: trailing checkbox; tapping anywhere on the row toggles it. */
80
+ export const MultiSelect = {
81
+ render: () => {
82
+ const items = ['Cheese', 'Bacon', 'Egg', 'Avocado'];
83
+ const [checked, setChecked] = useState({
84
+ Bacon: true
85
+ });
86
+ const options = items.map(label => ({
87
+ key: label,
88
+ label,
89
+ trailing: {
90
+ kind: 'checkbox',
91
+ checked: Boolean(checked[label]),
92
+ onChange: v => setChecked(c => ({
93
+ ...c,
94
+ [label]: v
95
+ }))
96
+ }
97
+ }));
98
+ return /*#__PURE__*/_jsx(View, {
99
+ style: {
100
+ padding: 24
101
+ },
102
+ children: /*#__PURE__*/_jsx(Dropdown, {
103
+ options: options
104
+ })
105
+ });
106
+ }
107
+ };
108
+
109
+ /** Settings menu: trailing switch per row. */
110
+ export const Toggles = {
111
+ render: () => {
112
+ const items = ['Notifications', 'Sound', 'Auto-print receipt'];
113
+ const [on, setOn] = useState({
114
+ Notifications: true
115
+ });
116
+ const options = items.map(label => ({
117
+ key: label,
118
+ label,
119
+ trailing: {
120
+ kind: 'switch',
121
+ value: Boolean(on[label]),
122
+ onChange: v => setOn(s => ({
123
+ ...s,
124
+ [label]: v
125
+ }))
126
+ }
127
+ }));
128
+ return /*#__PURE__*/_jsx(View, {
129
+ style: {
130
+ padding: 24
131
+ },
132
+ children: /*#__PURE__*/_jsx(Dropdown, {
133
+ options: options
134
+ })
135
+ });
136
+ }
137
+ };
138
+
139
+ /** Custom width via param. */
140
+ export const CustomWidth = {
141
+ render: () => {
142
+ const options = ['Profile', 'Billing', 'Log out'].map(label => ({
143
+ key: label,
144
+ label
145
+ }));
146
+ return /*#__PURE__*/_jsx(View, {
147
+ style: {
148
+ padding: 24
149
+ },
150
+ children: /*#__PURE__*/_jsx(Dropdown, {
151
+ options: options,
152
+ width: 240,
153
+ onSelect: () => {}
154
+ })
155
+ });
156
+ }
157
+ };
158
+
159
+ /** Long labels truncate with an ellipsis (single line). */
160
+ export const Ellipsis = {
161
+ render: () => {
162
+ const theme = useTheme();
163
+ const options = [{
164
+ key: '1',
165
+ label: 'This is a really long option label that will not fit',
166
+ leading: {
167
+ kind: 'icon',
168
+ name: 'star'
169
+ },
170
+ trailing: {
171
+ kind: 'icon',
172
+ name: 'check',
173
+ color: theme.colors.feedback.success
174
+ }
175
+ }, {
176
+ key: '2',
177
+ label: 'Another very very very long option that overflows the row',
178
+ trailing: {
179
+ kind: 'checkbox',
180
+ checked: false,
181
+ onChange: () => {}
182
+ }
183
+ }];
184
+ return /*#__PURE__*/_jsx(View, {
185
+ style: {
186
+ padding: 24
187
+ },
188
+ children: /*#__PURE__*/_jsx(Dropdown, {
189
+ options: options,
190
+ width: 260
191
+ })
192
+ });
193
+ }
194
+ };
195
+
196
+ /** Action menu (e.g. from an IconButton): leading icons + a destructive row. */
197
+ export const ActionMenu = {
198
+ render: () => {
199
+ const options = [{
200
+ key: 'edit',
201
+ label: 'Edit',
202
+ leading: {
203
+ kind: 'icon',
204
+ name: 'edit'
205
+ }
206
+ }, {
207
+ key: 'duplicate',
208
+ label: 'Duplicate',
209
+ leading: {
210
+ kind: 'icon',
211
+ name: 'copy-01'
212
+ }
213
+ }, {
214
+ key: 'settings',
215
+ label: 'Settings',
216
+ leading: {
217
+ kind: 'icon',
218
+ name: 'settings'
219
+ }
220
+ }, {
221
+ key: 'div',
222
+ type: 'divider'
223
+ }, {
224
+ key: 'delete',
225
+ label: 'Delete',
226
+ leading: {
227
+ kind: 'icon',
228
+ name: 'trash'
229
+ },
230
+ destructive: true
231
+ }];
232
+ return /*#__PURE__*/_jsx(View, {
233
+ style: {
234
+ padding: 24
235
+ },
236
+ children: /*#__PURE__*/_jsx(Dropdown, {
237
+ options: options,
238
+ width: 260,
239
+ onSelect: () => {}
240
+ })
241
+ });
242
+ }
243
+ };
244
+
245
+ /** Text only — no slots. */
246
+ export const TextOnly = {
247
+ render: () => {
248
+ const options = ['Profile', 'Billing', 'Log out'].map(label => ({
249
+ key: label,
250
+ label
251
+ }));
252
+ return /*#__PURE__*/_jsx(View, {
253
+ style: {
254
+ padding: 24
255
+ },
256
+ children: /*#__PURE__*/_jsx(Dropdown, {
257
+ options: options,
258
+ width: 240,
259
+ onSelect: () => {}
260
+ })
261
+ });
262
+ }
263
+ };
264
+
265
+ /** Grouped with section headers and a divider. */
266
+ export const Grouped = {
267
+ render: () => {
268
+ const options = [{
269
+ key: 'h1',
270
+ type: 'header',
271
+ label: 'ACCOUNT'
272
+ }, {
273
+ key: 'profile',
274
+ label: 'Profile',
275
+ leading: {
276
+ kind: 'icon',
277
+ name: 'user'
278
+ }
279
+ }, {
280
+ key: 'settings',
281
+ label: 'Settings',
282
+ leading: {
283
+ kind: 'icon',
284
+ name: 'settings'
285
+ }
286
+ }, {
287
+ key: 'div',
288
+ type: 'divider'
289
+ }, {
290
+ key: 'h2',
291
+ type: 'header',
292
+ label: 'SESSION'
293
+ }, {
294
+ key: 'logout',
295
+ label: 'Log out',
296
+ destructive: true
297
+ }];
298
+ return /*#__PURE__*/_jsx(View, {
299
+ style: {
300
+ padding: 24
301
+ },
302
+ children: /*#__PURE__*/_jsx(Dropdown, {
303
+ options: options,
304
+ width: 280,
305
+ showDividers: false,
306
+ onSelect: () => {}
307
+ })
308
+ });
309
+ }
310
+ };
311
+
312
+ /** Two-line rows (label + description). */
313
+ export const TwoLine = {
314
+ render: () => {
315
+ const options = [{
316
+ key: 'card',
317
+ label: 'Credit card',
318
+ description: 'Visa ending in 4242',
319
+ leading: {
320
+ kind: 'icon',
321
+ name: 'star'
322
+ }
323
+ }, {
324
+ key: 'cash',
325
+ label: 'Cash',
326
+ description: 'Pay at the counter',
327
+ leading: {
328
+ kind: 'icon',
329
+ name: 'star'
330
+ }
331
+ }];
332
+ return /*#__PURE__*/_jsx(View, {
333
+ style: {
334
+ padding: 24
335
+ },
336
+ children: /*#__PURE__*/_jsx(Dropdown, {
337
+ options: options,
338
+ onSelect: () => {}
339
+ })
340
+ });
341
+ }
342
+ };
343
+
344
+ /** Long list — scrolls beyond maxHeight. */
345
+ export const Scrollable = {
346
+ render: () => {
347
+ const options = Array.from({
348
+ length: 20
349
+ }).map((_, i) => ({
350
+ key: String(i),
351
+ label: `Option ${i + 1}`
352
+ }));
353
+ return /*#__PURE__*/_jsx(View, {
354
+ style: {
355
+ padding: 24
356
+ },
357
+ children: /*#__PURE__*/_jsx(Dropdown, {
358
+ options: options,
359
+ width: 300,
360
+ maxHeight: 280,
361
+ onSelect: () => {}
362
+ })
363
+ });
364
+ }
365
+ };
366
+
367
+ /** Icon + actionable on both sides, and a custom leading node. */
368
+ export const CustomAndBothSides = {
369
+ render: () => {
370
+ const [fav, setFav] = useState({});
371
+ const options = [{
372
+ key: 'a',
373
+ label: 'Table 1',
374
+ leading: {
375
+ kind: 'custom',
376
+ node: /*#__PURE__*/_jsx(View, {
377
+ style: {
378
+ width: 12,
379
+ height: 12,
380
+ borderRadius: 6,
381
+ backgroundColor: '#008C57'
382
+ }
383
+ })
384
+ },
385
+ trailing: {
386
+ kind: 'checkbox',
387
+ checked: Boolean(fav.a),
388
+ onChange: v => setFav(f => ({
389
+ ...f,
390
+ a: v
391
+ }))
392
+ }
393
+ }, {
394
+ key: 'b',
395
+ label: 'Table 2',
396
+ leading: {
397
+ kind: 'icon',
398
+ name: 'star'
399
+ },
400
+ trailing: {
401
+ kind: 'iconButton',
402
+ name: 'edit',
403
+ onPress: () => {},
404
+ accessibilityLabel: 'Edit table 2'
405
+ }
406
+ }];
407
+ return /*#__PURE__*/_jsx(View, {
408
+ style: {
409
+ padding: 24
410
+ },
411
+ children: /*#__PURE__*/_jsx(Dropdown, {
412
+ options: options
413
+ })
414
+ });
415
+ }
416
+ };
417
+ //# sourceMappingURL=Dropdown.stories.js.map