@planningcenter/chat-react-native 4.5.0-rc.2 → 4.5.0-rc.4

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 (38) hide show
  1. package/build/components/display/filter_dropdown.d.ts +16 -0
  2. package/build/components/display/filter_dropdown.d.ts.map +1 -1
  3. package/build/components/display/filter_dropdown.js +105 -57
  4. package/build/components/display/filter_dropdown.js.map +1 -1
  5. package/build/components/display/index.d.ts +1 -0
  6. package/build/components/display/index.d.ts.map +1 -1
  7. package/build/components/display/index.js +1 -0
  8. package/build/components/display/index.js.map +1 -1
  9. package/build/components/display/popover_menu_view.d.ts +8 -0
  10. package/build/components/display/popover_menu_view.d.ts.map +1 -0
  11. package/build/components/display/popover_menu_view.js +482 -0
  12. package/build/components/display/popover_menu_view.js.map +1 -0
  13. package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts.map +1 -1
  14. package/build/screens/conversations/components/filter_dropdown_list_header_component.js +159 -124
  15. package/build/screens/conversations/components/filter_dropdown_list_header_component.js.map +1 -1
  16. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  17. package/build/screens/conversations/conversations_screen.js +1 -2
  18. package/build/screens/conversations/conversations_screen.js.map +1 -1
  19. package/build/screens/design_system_screen.d.ts.map +1 -1
  20. package/build/screens/design_system_screen.js +289 -201
  21. package/build/screens/design_system_screen.js.map +1 -1
  22. package/build/utils/native_adapters/menu.d.ts +1 -2
  23. package/build/utils/native_adapters/menu.d.ts.map +1 -1
  24. package/build/utils/native_adapters/menu.js +2 -41
  25. package/build/utils/native_adapters/menu.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/components/display/__tests__/filter_dropdown.test.tsx +18 -2
  28. package/src/components/display/__tests__/popover_menu_view.test.tsx +63 -0
  29. package/src/components/display/filter_dropdown.tsx +53 -19
  30. package/src/components/display/index.ts +1 -0
  31. package/src/components/display/popover_menu_view.tsx +239 -0
  32. package/src/screens/conversations/__tests__/conversations_screen.test.tsx +2 -12
  33. package/src/screens/conversations/components/__tests__/filter_dropdown_list_header_component.test.tsx +0 -54
  34. package/src/screens/conversations/components/filter_dropdown_list_header_component.tsx +41 -27
  35. package/src/screens/conversations/conversations_screen.tsx +1 -2
  36. package/src/screens/design_system_screen.tsx +34 -1
  37. package/src/utils/native_adapters/menu.tsx +4 -18
  38. package/src/utils/native_adapters/__tests__/menu.test.tsx +0 -46
@@ -1,3 +1,4 @@
1
+ import { LayoutChangeEvent } from 'react-native';
1
2
  export interface FilterDropdownOption {
2
3
  id: string;
3
4
  label: string;
@@ -16,4 +17,19 @@ export interface FilterDropdownProps {
16
17
  maxWidth?: number;
17
18
  }
18
19
  export declare function FilterDropdown({ options, selectedId, onSelect, onMoreFilters, triggerLabel, showMoreFilters, maxWidth, }: FilterDropdownProps): import("react/jsx-runtime").JSX.Element;
20
+ export interface FilterDropdownTriggerProps {
21
+ label: string;
22
+ maxWidth?: number;
23
+ accessible?: boolean;
24
+ accessibilityRole?: 'button';
25
+ accessibilityHint?: string;
26
+ accessibilityElementsHidden?: boolean;
27
+ importantForAccessibility?: 'no-hide-descendants';
28
+ onLayout?: (event: LayoutChangeEvent) => void;
29
+ }
30
+ /**
31
+ * The label and chevron the dropdown opens from. Exported so a screen can render a hidden copy
32
+ * to measure how wide a label is at the current font scale.
33
+ */
34
+ export declare function FilterDropdownTrigger({ label, maxWidth, ...viewProps }: FilterDropdownTriggerProps): import("react/jsx-runtime").JSX.Element;
19
35
  //# sourceMappingURL=filter_dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/filter_dropdown.tsx"],"names":[],"mappings":"AAyBA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,eAAsB,EACtB,QAAQ,GACT,EAAE,mBAAmB,2CAgDrB"}
1
+ {"version":3,"file":"filter_dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/filter_dropdown.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAA;AAyBlE,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,eAAsB,EACtB,QAAQ,GACT,EAAE,mBAAmB,2CAoCrB;AAMD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,QAAQ,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,yBAAyB,CAAC,EAAE,qBAAqB,CAAA;IACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;CAC9C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,GAAG,SAAS,EACb,EAAE,0BAA0B,2CAoB5B"}
@@ -5,6 +5,7 @@ import { useTheme } from '../../hooks';
5
5
  import { MAX_FONT_SIZE_MULTIPLIER_LANDMARK, Menu, platformFontWeightBold } from '../../utils';
6
6
  import { tokens } from '../../vendor/tapestry/tokens';
7
7
  import { Icon } from './icon';
8
+ import { PopoverMenuView } from './popover_menu_view';
8
9
  import { Text } from './text';
9
10
 
10
11
  // =================================
@@ -19,7 +20,7 @@ const MORE_FILTERS_LABEL = 'More filters';
19
20
  // =================================
20
21
 
21
22
  export function FilterDropdown(t0) {
22
- const $ = _c(29);
23
+ const $ = _c(18);
23
24
  const {
24
25
  options,
25
26
  selectedId,
@@ -31,6 +32,7 @@ export function FilterDropdown(t0) {
31
32
  } = t0;
32
33
  const showMoreFilters = t1 === undefined ? true : t1;
33
34
  const styles = useStyles();
35
+ const MenuView = Menu.View ?? PopoverMenuView;
34
36
  let t2;
35
37
  if ($[0] !== options || $[1] !== selectedId || $[2] !== showMoreFilters) {
36
38
  let t3;
@@ -91,84 +93,130 @@ export function FilterDropdown(t0) {
91
93
  }
92
94
  const handlePressAction = t3;
93
95
  let t4;
94
- if ($[10] !== maxWidth) {
95
- t4 = maxWidth !== undefined && {
96
- maxWidth
97
- };
96
+ if ($[10] !== maxWidth || $[11] !== triggerLabel) {
97
+ t4 = /*#__PURE__*/_jsx(FilterDropdownTrigger, {
98
+ label: triggerLabel,
99
+ maxWidth: maxWidth,
100
+ accessible: true,
101
+ accessibilityRole: "button",
102
+ accessibilityHint: "Opens filter options"
103
+ });
98
104
  $[10] = maxWidth;
99
- $[11] = t4;
105
+ $[11] = triggerLabel;
106
+ $[12] = t4;
100
107
  } else {
101
- t4 = $[11];
108
+ t4 = $[12];
102
109
  }
103
110
  let t5;
104
- if ($[12] !== styles.trigger || $[13] !== t4) {
105
- t5 = [styles.trigger, t4];
106
- $[12] = styles.trigger;
107
- $[13] = t4;
108
- $[14] = t5;
111
+ if ($[13] !== actions || $[14] !== handlePressAction || $[15] !== styles.container || $[16] !== t4) {
112
+ t5 = /*#__PURE__*/_jsx(MenuView, {
113
+ actions: actions,
114
+ onPressAction: handlePressAction,
115
+ style: styles.container,
116
+ children: t4
117
+ });
118
+ $[13] = actions;
119
+ $[14] = handlePressAction;
120
+ $[15] = styles.container;
121
+ $[16] = t4;
122
+ $[17] = t5;
109
123
  } else {
110
- t5 = $[14];
124
+ t5 = $[17];
111
125
  }
112
- let t6;
113
- if ($[15] !== styles.triggerLabel || $[16] !== triggerLabel) {
114
- t6 = /*#__PURE__*/_jsx(Text, {
126
+ return t5;
127
+ }
128
+
129
+ // =================================
130
+ // ====== Trigger ==================
131
+ // =================================
132
+
133
+ /**
134
+ * The label and chevron the dropdown opens from. Exported so a screen can render a hidden copy
135
+ * to measure how wide a label is at the current font scale.
136
+ */
137
+ export function FilterDropdownTrigger(t0) {
138
+ const $ = _c(19);
139
+ let label;
140
+ let maxWidth;
141
+ let viewProps;
142
+ if ($[0] !== t0) {
143
+ ({
144
+ label,
145
+ maxWidth,
146
+ ...viewProps
147
+ } = t0);
148
+ $[0] = t0;
149
+ $[1] = label;
150
+ $[2] = maxWidth;
151
+ $[3] = viewProps;
152
+ } else {
153
+ label = $[1];
154
+ maxWidth = $[2];
155
+ viewProps = $[3];
156
+ }
157
+ const styles = useStyles();
158
+ let t1;
159
+ if ($[4] !== maxWidth) {
160
+ t1 = maxWidth !== undefined && {
161
+ maxWidth
162
+ };
163
+ $[4] = maxWidth;
164
+ $[5] = t1;
165
+ } else {
166
+ t1 = $[5];
167
+ }
168
+ let t2;
169
+ if ($[6] !== styles.trigger || $[7] !== t1) {
170
+ t2 = [styles.trigger, t1];
171
+ $[6] = styles.trigger;
172
+ $[7] = t1;
173
+ $[8] = t2;
174
+ } else {
175
+ t2 = $[8];
176
+ }
177
+ let t3;
178
+ if ($[9] !== label || $[10] !== styles.triggerLabel) {
179
+ t3 = /*#__PURE__*/_jsx(Text, {
115
180
  style: styles.triggerLabel,
116
181
  numberOfLines: 1,
117
182
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
118
- children: triggerLabel
183
+ children: label
119
184
  });
120
- $[15] = styles.triggerLabel;
121
- $[16] = triggerLabel;
122
- $[17] = t6;
185
+ $[9] = label;
186
+ $[10] = styles.triggerLabel;
187
+ $[11] = t3;
123
188
  } else {
124
- t6 = $[17];
189
+ t3 = $[11];
125
190
  }
126
- let t7;
127
- if ($[18] !== styles.triggerIcon) {
128
- t7 = /*#__PURE__*/_jsx(Icon, {
191
+ let t4;
192
+ if ($[12] !== styles.triggerIcon) {
193
+ t4 = /*#__PURE__*/_jsx(Icon, {
129
194
  name: "general.downChevron",
130
195
  style: styles.triggerIcon,
131
196
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
132
197
  accessibilityElementsHidden: true
133
198
  });
134
- $[18] = styles.triggerIcon;
135
- $[19] = t7;
136
- } else {
137
- t7 = $[19];
138
- }
139
- let t8;
140
- if ($[20] !== t5 || $[21] !== t6 || $[22] !== t7) {
141
- t8 = /*#__PURE__*/_jsxs(View, {
142
- style: t5,
143
- accessible: true,
144
- accessibilityRole: "button",
145
- accessibilityHint: "Opens filter options",
146
- children: [t6, t7]
147
- });
148
- $[20] = t5;
149
- $[21] = t6;
150
- $[22] = t7;
151
- $[23] = t8;
199
+ $[12] = styles.triggerIcon;
200
+ $[13] = t4;
152
201
  } else {
153
- t8 = $[23];
202
+ t4 = $[13];
154
203
  }
155
- let t9;
156
- if ($[24] !== actions || $[25] !== handlePressAction || $[26] !== styles.container || $[27] !== t8) {
157
- t9 = /*#__PURE__*/_jsx(Menu.View, {
158
- actions: actions,
159
- onPressAction: handlePressAction,
160
- style: styles.container,
161
- children: t8
204
+ let t5;
205
+ if ($[14] !== t2 || $[15] !== t3 || $[16] !== t4 || $[17] !== viewProps) {
206
+ t5 = /*#__PURE__*/_jsxs(View, {
207
+ style: t2,
208
+ ...viewProps,
209
+ children: [t3, t4]
162
210
  });
163
- $[24] = actions;
164
- $[25] = handlePressAction;
165
- $[26] = styles.container;
166
- $[27] = t8;
167
- $[28] = t9;
211
+ $[14] = t2;
212
+ $[15] = t3;
213
+ $[16] = t4;
214
+ $[17] = viewProps;
215
+ $[18] = t5;
168
216
  } else {
169
- t9 = $[28];
217
+ t5 = $[18];
170
218
  }
171
- return t9;
219
+ return t5;
172
220
  }
173
221
 
174
222
  // =================================
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dropdown.js","names":["React","StyleSheet","View","useTheme","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Menu","platformFontWeightBold","tokens","Icon","Text","jsx","_jsx","jsxs","_jsxs","MORE_FILTERS_ID","MORE_FILTERS_LABEL","FilterDropdown","t0","$","_c","options","selectedId","onSelect","onMoreFilters","triggerLabel","showMoreFilters","t1","maxWidth","undefined","styles","useStyles","t2","t3","option","id","title","label","state","optionActions","map","t4","Symbol","for","displayInline","subactions","moreFiltersAction","actions","nativeEvent","event","handlePressAction","t5","trigger","t6","style","numberOfLines","children","t7","triggerIcon","name","accessibilityElementsHidden","t8","accessible","accessibilityRole","accessibilityHint","t9","container","colors","iconColorDefaultPrimary","textColorDefaultPrimary","create","alignSelf","flexDirection","alignItems","gap","paddingVertical","flexShrink","fontWeight","color","fontSize","fontSizeSm"],"sources":["../../../src/components/display/filter_dropdown.tsx"],"sourcesContent":["import React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n Menu,\n MenuAction,\n MenuActionEvent,\n platformFontWeightBold,\n} from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Icon } from './icon'\nimport { Text } from './text'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst MORE_FILTERS_ID = 'more_filters'\nconst MORE_FILTERS_LABEL = 'More filters'\n\n// =================================\n// ====== Component ================\n// =================================\n\nexport interface FilterDropdownOption {\n id: string\n label: string\n}\n\nexport interface FilterDropdownProps {\n options: FilterDropdownOption[]\n selectedId: string\n onSelect: (id: string) => void\n onMoreFilters: () => void\n triggerLabel: string\n showMoreFilters?: boolean\n /**\n * Widest the trigger may render, in points. Hosts that measure the trigger at its intrinsic\n * width need this for the label to truncate.\n */\n maxWidth?: number\n}\n\nexport function FilterDropdown({\n options,\n selectedId,\n onSelect,\n onMoreFilters,\n triggerLabel,\n showMoreFilters = true,\n maxWidth,\n}: FilterDropdownProps) {\n const styles = useStyles()\n\n const optionActions: MenuAction[] = options.map(option => ({\n id: option.id,\n title: option.label,\n state: option.id === selectedId ? ('on' as const) : ('off' as const),\n }))\n const moreFiltersAction: MenuAction = {\n id: MORE_FILTERS_ID,\n title: '',\n displayInline: true,\n subactions: [{ id: MORE_FILTERS_ID, title: MORE_FILTERS_LABEL }],\n }\n const actions = showMoreFilters ? [...optionActions, moreFiltersAction] : optionActions\n\n const handlePressAction = ({ nativeEvent }: MenuActionEvent) => {\n if (nativeEvent.event === MORE_FILTERS_ID) {\n onMoreFilters()\n } else {\n onSelect(nativeEvent.event)\n }\n }\n\n return (\n <Menu.View actions={actions} onPressAction={handlePressAction} style={styles.container}>\n <View\n style={[styles.trigger, maxWidth !== undefined && { maxWidth }]}\n accessible\n accessibilityRole=\"button\"\n accessibilityHint=\"Opens filter options\"\n >\n <Text\n style={styles.triggerLabel}\n numberOfLines={1}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {triggerLabel}\n </Text>\n <Icon\n name=\"general.downChevron\"\n style={styles.triggerIcon}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityElementsHidden\n />\n </View>\n </Menu.View>\n )\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n alignSelf: 'flex-start',\n },\n trigger: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingVertical: 4,\n },\n triggerLabel: {\n flexShrink: 1,\n fontWeight: platformFontWeightBold,\n color: colors.textColorDefaultPrimary,\n },\n triggerIcon: {\n fontSize: tokens.fontSizeSm,\n color: colors.iconColorDefaultPrimary,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"filter_dropdown.js","names":["React","StyleSheet","View","useTheme","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Menu","platformFontWeightBold","tokens","Icon","PopoverMenuView","Text","jsx","_jsx","jsxs","_jsxs","MORE_FILTERS_ID","MORE_FILTERS_LABEL","FilterDropdown","t0","$","_c","options","selectedId","onSelect","onMoreFilters","triggerLabel","showMoreFilters","t1","maxWidth","undefined","styles","useStyles","MenuView","t2","t3","option","id","title","label","state","optionActions","map","t4","Symbol","for","displayInline","subactions","moreFiltersAction","actions","nativeEvent","event","handlePressAction","FilterDropdownTrigger","accessible","accessibilityRole","accessibilityHint","t5","container","style","children","viewProps","trigger","numberOfLines","triggerIcon","name","accessibilityElementsHidden","colors","iconColorDefaultPrimary","textColorDefaultPrimary","create","alignSelf","flexDirection","alignItems","gap","paddingVertical","flexShrink","fontWeight","color","fontSize","fontSizeSm"],"sources":["../../../src/components/display/filter_dropdown.tsx"],"sourcesContent":["import React from 'react'\nimport { LayoutChangeEvent, StyleSheet, View } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n Menu,\n MenuAction,\n MenuActionEvent,\n platformFontWeightBold,\n} from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Icon } from './icon'\nimport { PopoverMenuView } from './popover_menu_view'\nimport { Text } from './text'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst MORE_FILTERS_ID = 'more_filters'\nconst MORE_FILTERS_LABEL = 'More filters'\n\n// =================================\n// ====== Component ================\n// =================================\n\nexport interface FilterDropdownOption {\n id: string\n label: string\n}\n\nexport interface FilterDropdownProps {\n options: FilterDropdownOption[]\n selectedId: string\n onSelect: (id: string) => void\n onMoreFilters: () => void\n triggerLabel: string\n showMoreFilters?: boolean\n /**\n * Widest the trigger may render, in points. Hosts that measure the trigger at its intrinsic\n * width need this for the label to truncate.\n */\n maxWidth?: number\n}\n\nexport function FilterDropdown({\n options,\n selectedId,\n onSelect,\n onMoreFilters,\n triggerLabel,\n showMoreFilters = true,\n maxWidth,\n}: FilterDropdownProps) {\n const styles = useStyles()\n const MenuView = Menu.View ?? PopoverMenuView\n\n const optionActions: MenuAction[] = options.map(option => ({\n id: option.id,\n title: option.label,\n state: option.id === selectedId ? ('on' as const) : ('off' as const),\n }))\n const moreFiltersAction: MenuAction = {\n id: MORE_FILTERS_ID,\n title: '',\n displayInline: true,\n subactions: [{ id: MORE_FILTERS_ID, title: MORE_FILTERS_LABEL }],\n }\n const actions = showMoreFilters ? [...optionActions, moreFiltersAction] : optionActions\n\n const handlePressAction = ({ nativeEvent }: MenuActionEvent) => {\n if (nativeEvent.event === MORE_FILTERS_ID) {\n onMoreFilters()\n } else {\n onSelect(nativeEvent.event)\n }\n }\n\n return (\n <MenuView actions={actions} onPressAction={handlePressAction} style={styles.container}>\n <FilterDropdownTrigger\n label={triggerLabel}\n maxWidth={maxWidth}\n accessible\n accessibilityRole=\"button\"\n accessibilityHint=\"Opens filter options\"\n />\n </MenuView>\n )\n}\n\n// =================================\n// ====== Trigger ==================\n// =================================\n\nexport interface FilterDropdownTriggerProps {\n label: string\n maxWidth?: number\n accessible?: boolean\n accessibilityRole?: 'button'\n accessibilityHint?: string\n accessibilityElementsHidden?: boolean\n importantForAccessibility?: 'no-hide-descendants'\n onLayout?: (event: LayoutChangeEvent) => void\n}\n\n/**\n * The label and chevron the dropdown opens from. Exported so a screen can render a hidden copy\n * to measure how wide a label is at the current font scale.\n */\nexport function FilterDropdownTrigger({\n label,\n maxWidth,\n ...viewProps\n}: FilterDropdownTriggerProps) {\n const styles = useStyles()\n\n return (\n <View style={[styles.trigger, maxWidth !== undefined && { maxWidth }]} {...viewProps}>\n <Text\n style={styles.triggerLabel}\n numberOfLines={1}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {label}\n </Text>\n <Icon\n name=\"general.downChevron\"\n style={styles.triggerIcon}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityElementsHidden\n />\n </View>\n )\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n alignSelf: 'flex-start',\n },\n trigger: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingVertical: 4,\n },\n triggerLabel: {\n flexShrink: 1,\n fontWeight: platformFontWeightBold,\n color: colors.textColorDefaultPrimary,\n },\n triggerIcon: {\n fontSize: tokens.fontSizeSm,\n color: colors.iconColorDefaultPrimary,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -25,6 +25,7 @@ export * from './text_inline_button';
25
25
  export * from './text';
26
26
  export * from './toggle_button';
27
27
  export * from './filter_dropdown';
28
+ export * from './popover_menu_view';
28
29
  export * from './keyboard_scroll_view';
29
30
  export * from './keyboard_view';
30
31
  export * from './platform_modal_header_buttons';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/display/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,QAAQ,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/display/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,QAAQ,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
@@ -25,6 +25,7 @@ export * from './text_inline_button';
25
25
  export * from './text';
26
26
  export * from './toggle_button';
27
27
  export * from './filter_dropdown';
28
+ export * from './popover_menu_view';
28
29
  export * from './keyboard_scroll_view';
29
30
  export * from './keyboard_view';
30
31
  export * from './platform_modal_header_buttons';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/display/index.ts"],"sourcesContent":["export * from './avatar_group'\nexport * from './avatar'\nexport * from './badge'\nexport * from './conversation_avatar'\nexport * from './emoji_avatar'\nexport * from './icon_avatar'\nexport * from './icon_tile'\nexport * from './banner_collapsible'\nexport * from './banner'\nexport * from './button'\nexport * from './adult_requirement_notice'\nexport * from './child_notice'\nexport * from './heading'\nexport * from './icon_button'\nexport * from './icon'\nexport * from './image'\nexport * from './file_attachment_preview'\nexport * from './image_attachment_preview'\nexport * from './video_attachment_preview'\nexport * from './person'\nexport * from './spinner'\nexport * from './switch'\nexport * from './text_button'\nexport * from './text_inline_button'\nexport * from './text'\nexport * from './toggle_button'\nexport * from './filter_dropdown'\nexport * from './keyboard_scroll_view'\nexport * from './keyboard_view'\nexport * from './platform_modal_header_buttons'\nexport * from './pressable_row'\nexport * from './version_footer'\n"],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,uBAAuB;AACrC,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,aAAa;AAC3B,cAAc,sBAAsB;AACpC,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,4BAA4B;AAC1C,cAAc,gBAAgB;AAC9B,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,2BAA2B;AACzC,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,sBAAsB;AACpC,cAAc,QAAQ;AACtB,cAAc,iBAAiB;AAC/B,cAAc,mBAAmB;AACjC,cAAc,wBAAwB;AACtC,cAAc,iBAAiB;AAC/B,cAAc,iCAAiC;AAC/C,cAAc,iBAAiB;AAC/B,cAAc,kBAAkB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/display/index.ts"],"sourcesContent":["export * from './avatar_group'\nexport * from './avatar'\nexport * from './badge'\nexport * from './conversation_avatar'\nexport * from './emoji_avatar'\nexport * from './icon_avatar'\nexport * from './icon_tile'\nexport * from './banner_collapsible'\nexport * from './banner'\nexport * from './button'\nexport * from './adult_requirement_notice'\nexport * from './child_notice'\nexport * from './heading'\nexport * from './icon_button'\nexport * from './icon'\nexport * from './image'\nexport * from './file_attachment_preview'\nexport * from './image_attachment_preview'\nexport * from './video_attachment_preview'\nexport * from './person'\nexport * from './spinner'\nexport * from './switch'\nexport * from './text_button'\nexport * from './text_inline_button'\nexport * from './text'\nexport * from './toggle_button'\nexport * from './filter_dropdown'\nexport * from './popover_menu_view'\nexport * from './keyboard_scroll_view'\nexport * from './keyboard_view'\nexport * from './platform_modal_header_buttons'\nexport * from './pressable_row'\nexport * from './version_footer'\n"],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,uBAAuB;AACrC,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,aAAa;AAC3B,cAAc,sBAAsB;AACpC,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,4BAA4B;AAC1C,cAAc,gBAAgB;AAC9B,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,2BAA2B;AACzC,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,sBAAsB;AACpC,cAAc,QAAQ;AACtB,cAAc,iBAAiB;AAC/B,cAAc,mBAAmB;AACjC,cAAc,qBAAqB;AACnC,cAAc,wBAAwB;AACtC,cAAc,iBAAiB;AAC/B,cAAc,iCAAiC;AAC/C,cAAc,iBAAiB;AAC/B,cAAc,kBAAkB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import { MenuViewProps } from '../../utils';
2
+ /**
3
+ * A JS-only `MenuView` for hosts that cannot supply a native menu. Wraps the
4
+ * trigger in a pressable and opens a popover of the actions under it, or above
5
+ * it when the trigger sits in the lower half of the window.
6
+ */
7
+ export declare function PopoverMenuView({ actions, onPressAction, onOpenMenu, onCloseMenu, style, testID, children, }: MenuViewProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=popover_menu_view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover_menu_view.d.ts","sourceRoot":"","sources":["../../../src/components/display/popover_menu_view.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAc,aAAa,EAA+B,MAAM,aAAa,CAAA;AAuDpF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,aAAa,EACb,UAAU,EACV,WAAW,EACX,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE,aAAa,2CAqFf"}