@agimon-ai/po-native-components 0.0.0-alpha.98 → 0.0.0-alpha.99

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.
@@ -0,0 +1,33 @@
1
+ import { StyleProp, ViewStyle } from "react-native";
2
+ //#region src/components/Select.d.ts
3
+ export interface SelectOption {
4
+ value: string;
5
+ label: string;
6
+ /** Options sharing a group sit under one heading, in the order the groups first appear. */
7
+ group?: string;
8
+ /** A quieter line under the label. */
9
+ detail?: string;
10
+ }
11
+ export interface SelectProps {
12
+ options: readonly SelectOption[];
13
+ /** The chosen value; unset or unknown shows the placeholder. */
14
+ value?: string;
15
+ onValueChange: (value: string) => void;
16
+ /** The sheet's heading and the trigger's accessible name, such as "Narration engine". */
17
+ title: string;
18
+ placeholder?: string;
19
+ /** Offer a way back to no value, such as "Use the default". Shown only with onClear. */
20
+ clearLabel?: string;
21
+ onClear?: () => void;
22
+ disabled?: boolean;
23
+ /** Start with the sheet up, as a story shows it. */
24
+ defaultOpen?: boolean;
25
+ style?: StyleProp<ViewStyle>;
26
+ }
27
+ /**
28
+ * The web Select as a phone picker: the current value and a chevron, which open a bottom sheet of
29
+ * the options, grouped, with a tick on the chosen one. Choosing ticks once and closes the sheet.
30
+ */
31
+ export declare function Select({ options, value, onValueChange, title, placeholder, clearLabel, onClear, disabled, defaultOpen, style }: SelectProps): import("react").JSX.Element;
32
+ //#endregion
33
+ //# sourceMappingURL=Select.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.mts","names":[],"sources":["../../src/components/Select.tsx"],"mappings":";;iBAeiB;EACf;EACA;;EAEA;;EAEA;;iBAGe;EACf,kBAAkB;;EAElB;EACA,gBAAgB;;EAEhB;EACA;;EAEA;EACA;EACA;;EAEA;EACA,QAAQ,UAAU;;;;;;wBAOJ,SACd,SACA,OACA,eACA,OACA,aACA,YACA,SACA,UACA,aACA,SACC,8BAAW,IAAA"}
@@ -0,0 +1,222 @@
1
+ import { fontOf } from "../lib/fonts.mjs";
2
+ import { selectionTick } from "../lib/haptics.mjs";
3
+ import { Button } from "./Button.mjs";
4
+ import { CheckIcon, ChevronDownIcon } from "../icons/icons.mjs";
5
+ import { SheetFrame } from "./SheetFrame.mjs";
6
+ import { View } from "react-native-unistyles/components/native/View";
7
+ import { Text } from "react-native-unistyles/components/native/Text";
8
+ import { StyleSheet } from "react-native-unistyles";
9
+ import { useState } from "react";
10
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
+ import { Pressable } from "react-native-unistyles/components/native/Pressable";
12
+
13
+ //#region src/components/Select.tsx
14
+ const MIN_ROW_HEIGHT = 44;
15
+ const DISABLED_OPACITY = .4;
16
+ /** A long value gives way to the row's title rather than pushing it off screen. */
17
+ const MAX_VALUE_WIDTH = 180;
18
+ /**
19
+ * The web Select as a phone picker: the current value and a chevron, which open a bottom sheet of
20
+ * the options, grouped, with a tick on the chosen one. Choosing ticks once and closes the sheet.
21
+ */
22
+ function Select({ options, value, onValueChange, title, placeholder = "Choose", clearLabel, onClear, disabled = false, defaultOpen = false, style }) {
23
+ const [open, setOpen] = useState(defaultOpen);
24
+ const chosen = options.find((option) => option.value === value);
25
+ const groups = [...new Set(options.map((option) => option.group))];
26
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(Pressable, {
27
+ accessibilityRole: "button",
28
+ accessibilityLabel: title,
29
+ accessibilityValue: { text: chosen?.label ?? placeholder },
30
+ accessibilityState: {
31
+ disabled,
32
+ expanded: open
33
+ },
34
+ disabled,
35
+ hitSlop: 8,
36
+ onPress: () => setOpen(true),
37
+ style: ({ pressed }) => [
38
+ styles.trigger,
39
+ pressed && styles.pressed,
40
+ disabled && styles.disabled,
41
+ style
42
+ ],
43
+ children: [/* @__PURE__ */ jsx(Text, {
44
+ numberOfLines: 1,
45
+ style: chosen ? styles.value : styles.placeholder,
46
+ children: chosen?.label ?? placeholder
47
+ }), /* @__PURE__ */ jsx(ChevronDownIcon, {
48
+ size: 14,
49
+ color: "faint"
50
+ })]
51
+ }), /* @__PURE__ */ jsx(SheetFrame, {
52
+ open,
53
+ onClose: () => setOpen(false),
54
+ children: /* @__PURE__ */ jsxs(View, {
55
+ style: styles.sheet,
56
+ children: [
57
+ /* @__PURE__ */ jsx(Text, {
58
+ accessibilityRole: "header",
59
+ style: styles.title,
60
+ children: title
61
+ }),
62
+ groups.map((group) => /* @__PURE__ */ jsxs(View, {
63
+ accessibilityRole: "radiogroup",
64
+ style: styles.group,
65
+ children: [group === void 0 ? null : /* @__PURE__ */ jsx(Text, {
66
+ style: styles.groupLabel,
67
+ children: group
68
+ }), /* @__PURE__ */ jsx(View, {
69
+ style: styles.card,
70
+ children: options.filter((option) => option.group === group).map((option, index, rows) => {
71
+ const selected = option.value === value;
72
+ return /* @__PURE__ */ jsxs(Pressable, {
73
+ accessibilityRole: "radio",
74
+ accessibilityState: { checked: selected },
75
+ onPress: () => {
76
+ selectionTick();
77
+ setOpen(false);
78
+ if (!selected) onValueChange(option.value);
79
+ },
80
+ style: ({ pressed }) => [
81
+ styles.option,
82
+ index < rows.length - 1 && styles.divider,
83
+ pressed && styles.pressed
84
+ ],
85
+ children: [/* @__PURE__ */ jsxs(View, {
86
+ style: styles.optionText,
87
+ children: [/* @__PURE__ */ jsx(Text, {
88
+ style: [styles.optionLabel, selected && styles.selected],
89
+ children: option.label
90
+ }), option.detail ? /* @__PURE__ */ jsx(Text, {
91
+ style: styles.detail,
92
+ children: option.detail
93
+ }) : null]
94
+ }), /* @__PURE__ */ jsx(View, {
95
+ style: styles.tick,
96
+ children: selected ? /* @__PURE__ */ jsx(CheckIcon, {
97
+ size: 18,
98
+ color: "green"
99
+ }) : null
100
+ })]
101
+ }, option.value);
102
+ })
103
+ })]
104
+ }, group ?? "")),
105
+ onClear === void 0 ? null : /* @__PURE__ */ jsx(Button, {
106
+ variant: "ghost",
107
+ size: "md",
108
+ onPress: () => {
109
+ setOpen(false);
110
+ onClear();
111
+ },
112
+ children: clearLabel ?? "Clear"
113
+ })
114
+ ]
115
+ })
116
+ })] });
117
+ }
118
+ const styles = StyleSheet.create((theme) => {
119
+ const text = (size) => ({
120
+ fontFamily: fontOf(theme.fontFamily.sans),
121
+ fontSize: theme.fontSize[size],
122
+ lineHeight: theme.lineHeight[size]
123
+ });
124
+ return {
125
+ trigger: {
126
+ flexDirection: "row",
127
+ alignItems: "center",
128
+ gap: theme.spacing(1.5),
129
+ minHeight: MIN_ROW_HEIGHT,
130
+ borderRadius: theme.borderRadius.md,
131
+ uni__dependencies: [0]
132
+ },
133
+ pressed: { opacity: .6 },
134
+ disabled: { opacity: DISABLED_OPACITY },
135
+ value: {
136
+ ...text("sm"),
137
+ color: theme.colors.text,
138
+ maxWidth: MAX_VALUE_WIDTH,
139
+ uni__dependencies: [0]
140
+ },
141
+ placeholder: {
142
+ ...text("sm"),
143
+ color: theme.colors.faint,
144
+ maxWidth: MAX_VALUE_WIDTH,
145
+ uni__dependencies: [0]
146
+ },
147
+ sheet: {
148
+ gap: theme.spacing(4),
149
+ paddingHorizontal: theme.spacing(5),
150
+ paddingTop: theme.spacing(1),
151
+ paddingBottom: theme.spacing(4),
152
+ uni__dependencies: [0]
153
+ },
154
+ title: {
155
+ ...text("lg"),
156
+ color: theme.colors.hi,
157
+ fontWeight: theme.fontWeight.semibold,
158
+ uni__dependencies: [0]
159
+ },
160
+ group: {
161
+ gap: theme.spacing(2),
162
+ uni__dependencies: [0]
163
+ },
164
+ groupLabel: {
165
+ ...text("sm"),
166
+ color: theme.colors.dim,
167
+ fontWeight: theme.fontWeight.semibold,
168
+ uni__dependencies: [0]
169
+ },
170
+ card: {
171
+ overflow: "hidden",
172
+ borderRadius: theme.borderRadius.lg,
173
+ borderWidth: StyleSheet.hairlineWidth,
174
+ borderColor: theme.colors.border,
175
+ backgroundColor: theme.colors.panel,
176
+ uni__dependencies: [0]
177
+ },
178
+ option: {
179
+ flexDirection: "row",
180
+ alignItems: "flex-start",
181
+ gap: theme.spacing(3),
182
+ minHeight: MIN_ROW_HEIGHT,
183
+ paddingHorizontal: theme.spacing(4),
184
+ paddingVertical: theme.spacing(3),
185
+ uni__dependencies: [0]
186
+ },
187
+ divider: {
188
+ borderBottomWidth: StyleSheet.hairlineWidth,
189
+ borderBottomColor: theme.colors["border-soft"],
190
+ uni__dependencies: [0]
191
+ },
192
+ optionText: {
193
+ flex: 1,
194
+ minWidth: 0,
195
+ gap: 2
196
+ },
197
+ optionLabel: {
198
+ ...text("base"),
199
+ color: theme.colors.hi,
200
+ fontWeight: theme.fontWeight.medium,
201
+ uni__dependencies: [0]
202
+ },
203
+ selected: {
204
+ color: theme.colors.green,
205
+ uni__dependencies: [0]
206
+ },
207
+ detail: {
208
+ ...text("sm"),
209
+ color: theme.colors.dim,
210
+ lineHeight: theme.lineHeightRelaxed.sm,
211
+ uni__dependencies: [0]
212
+ },
213
+ tick: {
214
+ width: 18,
215
+ paddingTop: 2
216
+ }
217
+ };
218
+ });
219
+
220
+ //#endregion
221
+ export { Select };
222
+ //# sourceMappingURL=Select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.mjs","names":["useState","StyleProp","ViewStyle","StyleSheet","CheckIcon","ChevronDownIcon","fontOf","selectionTick","Button","SheetFrame","MIN_ROW_HEIGHT","DISABLED_OPACITY","MAX_VALUE_WIDTH","SelectOption","value","label","group","detail","SelectProps","options","onValueChange","title","placeholder","clearLabel","onClear","disabled","defaultOpen","style","Select","open","setOpen","chosen","find","option","groups","Set","map","text","expanded","pressed","styles","trigger","sheet","undefined","groupLabel","card","filter","index","rows","selected","checked","length","divider","optionText","optionLabel","tick","create","theme","size","fontFamily","sans","fontSize","lineHeight","flexDirection","alignItems","gap","spacing","minHeight","borderRadius","md","uni__dependencies","opacity","color","colors","maxWidth","faint","paddingHorizontal","paddingTop","paddingBottom","hi","fontWeight","semibold","dim","overflow","lg","borderWidth","hairlineWidth","borderColor","border","backgroundColor","panel","paddingVertical","borderBottomWidth","borderBottomColor","flex","minWidth","medium","green","lineHeightRelaxed","sm","width"],"sources":["../../src/components/Select.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { Pressable, type StyleProp, Text, View, type ViewStyle } from 'react-native';\nimport { StyleSheet } from 'react-native-unistyles';\n\nimport { CheckIcon, ChevronDownIcon } from '../icons/icons';\nimport { fontOf } from '../lib/fonts';\nimport { selectionTick } from '../lib/haptics';\nimport { Button } from './Button';\nimport { SheetFrame } from './SheetFrame';\n\nconst MIN_ROW_HEIGHT = 44;\nconst DISABLED_OPACITY = 0.4;\n/** A long value gives way to the row's title rather than pushing it off screen. */\nconst MAX_VALUE_WIDTH = 180;\n\nexport interface SelectOption {\n value: string;\n label: string;\n /** Options sharing a group sit under one heading, in the order the groups first appear. */\n group?: string;\n /** A quieter line under the label. */\n detail?: string;\n}\n\nexport interface SelectProps {\n options: readonly SelectOption[];\n /** The chosen value; unset or unknown shows the placeholder. */\n value?: string;\n onValueChange: (value: string) => void;\n /** The sheet's heading and the trigger's accessible name, such as \"Narration engine\". */\n title: string;\n placeholder?: string;\n /** Offer a way back to no value, such as \"Use the default\". Shown only with onClear. */\n clearLabel?: string;\n onClear?: () => void;\n disabled?: boolean;\n /** Start with the sheet up, as a story shows it. */\n defaultOpen?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\n/**\n * The web Select as a phone picker: the current value and a chevron, which open a bottom sheet of\n * the options, grouped, with a tick on the chosen one. Choosing ticks once and closes the sheet.\n */\nexport function Select({\n options,\n value,\n onValueChange,\n title,\n placeholder = 'Choose',\n clearLabel,\n onClear,\n disabled = false,\n defaultOpen = false,\n style,\n}: SelectProps) {\n const [open, setOpen] = useState(defaultOpen);\n const chosen = options.find((option) => option.value === value);\n const groups = [...new Set(options.map((option) => option.group))];\n return (\n <>\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel={title}\n accessibilityValue={{ text: chosen?.label ?? placeholder }}\n accessibilityState={{ disabled, expanded: open }}\n disabled={disabled}\n hitSlop={8}\n onPress={() => setOpen(true)}\n style={({ pressed }) => [styles.trigger, pressed && styles.pressed, disabled && styles.disabled, style]}\n >\n <Text numberOfLines={1} style={chosen ? styles.value : styles.placeholder}>\n {chosen?.label ?? placeholder}\n </Text>\n <ChevronDownIcon size={14} color=\"faint\" />\n </Pressable>\n <SheetFrame open={open} onClose={() => setOpen(false)}>\n <View style={styles.sheet}>\n <Text accessibilityRole=\"header\" style={styles.title}>\n {title}\n </Text>\n {groups.map((group) => (\n <View key={group ?? ''} accessibilityRole=\"radiogroup\" style={styles.group}>\n {group === undefined ? null : <Text style={styles.groupLabel}>{group}</Text>}\n <View style={styles.card}>\n {options\n .filter((option) => option.group === group)\n .map((option, index, rows) => {\n const selected = option.value === value;\n return (\n <Pressable\n key={option.value}\n accessibilityRole=\"radio\"\n accessibilityState={{ checked: selected }}\n onPress={() => {\n selectionTick();\n setOpen(false);\n if (!selected) onValueChange(option.value);\n }}\n style={({ pressed }) => [\n styles.option,\n index < rows.length - 1 && styles.divider,\n pressed && styles.pressed,\n ]}\n >\n <View style={styles.optionText}>\n <Text style={[styles.optionLabel, selected && styles.selected]}>{option.label}</Text>\n {option.detail ? <Text style={styles.detail}>{option.detail}</Text> : null}\n </View>\n <View style={styles.tick}>{selected ? <CheckIcon size={18} color=\"green\" /> : null}</View>\n </Pressable>\n );\n })}\n </View>\n </View>\n ))}\n {onClear === undefined ? null : (\n <Button\n variant=\"ghost\"\n size=\"md\"\n onPress={() => {\n setOpen(false);\n onClear();\n }}\n >\n {clearLabel ?? 'Clear'}\n </Button>\n )}\n </View>\n </SheetFrame>\n </>\n );\n}\n\nconst styles = StyleSheet.create((theme) => {\n const text = (size: 'sm' | 'base' | 'lg') => ({\n fontFamily: fontOf(theme.fontFamily.sans),\n fontSize: theme.fontSize[size],\n lineHeight: theme.lineHeight[size],\n });\n return {\n trigger: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n minHeight: MIN_ROW_HEIGHT,\n borderRadius: theme.borderRadius.md,\n },\n pressed: { opacity: 0.6 },\n disabled: { opacity: DISABLED_OPACITY },\n value: { ...text('sm'), color: theme.colors.text, maxWidth: MAX_VALUE_WIDTH },\n placeholder: { ...text('sm'), color: theme.colors.faint, maxWidth: MAX_VALUE_WIDTH },\n sheet: {\n gap: theme.spacing(4),\n paddingHorizontal: theme.spacing(5),\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(4),\n },\n title: { ...text('lg'), color: theme.colors.hi, fontWeight: theme.fontWeight.semibold },\n group: { gap: theme.spacing(2) },\n groupLabel: { ...text('sm'), color: theme.colors.dim, fontWeight: theme.fontWeight.semibold },\n card: {\n overflow: 'hidden',\n borderRadius: theme.borderRadius.lg,\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: theme.colors.border,\n backgroundColor: theme.colors.panel,\n },\n option: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n gap: theme.spacing(3),\n minHeight: MIN_ROW_HEIGHT,\n paddingHorizontal: theme.spacing(4),\n paddingVertical: theme.spacing(3),\n },\n divider: { borderBottomWidth: StyleSheet.hairlineWidth, borderBottomColor: theme.colors['border-soft'] },\n optionText: { flex: 1, minWidth: 0, gap: 2 },\n optionLabel: { ...text('base'), color: theme.colors.hi, fontWeight: theme.fontWeight.medium },\n selected: { color: theme.colors.green },\n detail: { ...text('sm'), color: theme.colors.dim, lineHeight: theme.lineHeightRelaxed.sm },\n tick: { width: 18, paddingTop: 2 },\n };\n});\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { StyleProp, ViewStyle } from "react-native";
2
+ //#region src/components/Switch.d.ts
3
+ export interface SwitchProps {
4
+ value: boolean;
5
+ onValueChange: (value: boolean) => void;
6
+ disabled?: boolean;
7
+ /** What the switch turns on, such as "Resize large images". */
8
+ accessibilityLabel?: string;
9
+ style?: StyleProp<ViewStyle>;
10
+ }
11
+ /** The web Switch as the platform's own: jade track when on, a selection tick on each change. */
12
+ export declare function Switch({ value, onValueChange, disabled, accessibilityLabel, style }: SwitchProps): import("react").JSX.Element;
13
+ //#endregion
14
+ //# sourceMappingURL=Switch.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.d.mts","names":[],"sources":["../../src/components/Switch.tsx"],"mappings":";;iBAiBiB;EACf;EACA,gBAAgB;EAChB;;EAEA;EACA,QAAQ,UAAU;;;wBAIJ,SAAS,OAAO,eAAe,UAAkB,oBAAoB,SAAS,8BAAW,IAAA"}
@@ -0,0 +1,37 @@
1
+ import { selectionTick } from "../lib/haptics.mjs";
2
+ import { withUnistyles } from "react-native-unistyles";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { Switch } from "react-native-unistyles/components/native/Switch";
5
+
6
+ //#region src/components/Switch.tsx
7
+ /**
8
+ * Theme colours reach the platform switch through withUnistyles, so it follows theme changes. The thumb
9
+ * is `on-selected` (near white in both schemes, as the platform thumb is), never a surface colour that
10
+ * would go dark in dark mode. `activeThumbColor` only reaches react-native-web, whose own default is teal.
11
+ */
12
+ const ThemedSwitch = withUnistyles(Switch, (theme) => ({
13
+ trackColor: {
14
+ true: theme.colors.green,
15
+ false: theme.colors.border
16
+ },
17
+ ios_backgroundColor: theme.colors.border,
18
+ thumbColor: theme.colors["on-selected"],
19
+ activeThumbColor: theme.colors["on-selected"]
20
+ }));
21
+ /** The web Switch as the platform's own: jade track when on, a selection tick on each change. */
22
+ function Switch$1({ value, onValueChange, disabled = false, accessibilityLabel, style }) {
23
+ return /* @__PURE__ */ jsx(ThemedSwitch, {
24
+ value,
25
+ disabled,
26
+ accessibilityLabel,
27
+ onValueChange: (next) => {
28
+ selectionTick();
29
+ onValueChange(next);
30
+ },
31
+ style
32
+ });
33
+ }
34
+
35
+ //#endregion
36
+ export { Switch$1 as Switch };
37
+ //# sourceMappingURL=Switch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.mjs","names":["StyleProp","ViewStyle","withUnistyles","selectionTick","ThemedSwitch","RNSwitch","theme","trackColor","true","colors","green","false","border","ios_backgroundColor","thumbColor","activeThumbColor","SwitchProps","value","onValueChange","disabled","accessibilityLabel","style","Switch","next","RNSwitch","Switch"],"sources":["../../src/components/Switch.tsx"],"sourcesContent":["import { Switch as RNSwitch, type StyleProp, type ViewStyle } from 'react-native';\nimport { withUnistyles } from 'react-native-unistyles';\n\nimport { selectionTick } from '../lib/haptics';\n\n/**\n * Theme colours reach the platform switch through withUnistyles, so it follows theme changes. The thumb\n * is `on-selected` (near white in both schemes, as the platform thumb is), never a surface colour that\n * would go dark in dark mode. `activeThumbColor` only reaches react-native-web, whose own default is teal.\n */\nconst ThemedSwitch = withUnistyles(RNSwitch, (theme) => ({\n trackColor: { true: theme.colors.green, false: theme.colors.border },\n ios_backgroundColor: theme.colors.border,\n thumbColor: theme.colors['on-selected'],\n activeThumbColor: theme.colors['on-selected'],\n}));\n\nexport interface SwitchProps {\n value: boolean;\n onValueChange: (value: boolean) => void;\n disabled?: boolean;\n /** What the switch turns on, such as \"Resize large images\". */\n accessibilityLabel?: string;\n style?: StyleProp<ViewStyle>;\n}\n\n/** The web Switch as the platform's own: jade track when on, a selection tick on each change. */\nexport function Switch({ value, onValueChange, disabled = false, accessibilityLabel, style }: SwitchProps) {\n return (\n <ThemedSwitch\n value={value}\n disabled={disabled}\n accessibilityLabel={accessibilityLabel}\n onValueChange={(next) => {\n selectionTick();\n onValueChange(next);\n }}\n style={style}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;AAUA,MAAMI,eAAeF,cAAcG,SAAWC,WAAW;CACvDC,YAAY;EAAEC,MAAMF,MAAMG,OAAOC;EAAOC,OAAOL,MAAMG,OAAOG;CAAO;CACnEC,qBAAqBP,MAAMG,OAAOG;CAClCE,YAAYR,MAAMG,OAAO;CACzBM,kBAAkBT,MAAMG,OAAO;AACjC,EAAE;;AAYF,SAAgBa,SAAO,EAAEL,OAAOC,eAAeC,WAAW,OAAOC,oBAAoBC,SAAsB;CACzG,OACE,oBAAC,cAAD;EACSJ;EACGE;EACUC;EACpB,gBAAgBG,SAAS;GACvBpB,cAAc;GACde,cAAcK,IAAI;EACpB;EACOF;CAAM;AAGnB"}
package/dist/index.d.mts CHANGED
@@ -20,10 +20,12 @@ import { MessageItem, MessageItemBody, MessageItemGroup, MessageItemGroupProps,
20
20
  import { Panel, PanelBody, PanelHeader, PanelPartProps } from "./components/Panel.mjs";
21
21
  import { SectionLabel } from "./components/SectionLabel.mjs";
22
22
  import { SegmentedControl, SegmentedControlOption, SegmentedControlProps } from "./components/SegmentedControl.mjs";
23
+ import { Select, SelectOption, SelectProps } from "./components/Select.mjs";
23
24
  import { Sheet, SheetBody, SheetClose, SheetContent, SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetHeaderProps, SheetPartProps, SheetProps, SheetTitle, SheetTrigger } from "./components/Sheet.mjs";
24
25
  import { SheetList, SheetListProps } from "./components/SheetList.mjs";
25
26
  import { ShowMore, ShowMoreProps } from "./components/ShowMore.mjs";
26
27
  import { Spinner, SpinnerProps } from "./components/Spinner.mjs";
28
+ import { Switch, SwitchProps } from "./components/Switch.mjs";
27
29
  import { TabBadge, TabBadgeProps, Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsProps, TabsTrigger, TabsTriggerProps } from "./components/Tabs.mjs";
28
30
  import { SyntaxLine, SyntaxLineProps, useSyntaxLines } from "./components/SyntaxLine.mjs";
29
31
  import { Textarea, TextareaProps } from "./components/Textarea.mjs";
@@ -37,4 +39,4 @@ import { HostTag } from "./components/HostTag.mjs";
37
39
  import { InfoStrip } from "./components/InfoStrip.mjs";
38
40
  import { AnsiSpan, PresentedLine, ReviewComment, ansiSpans, buildReviewPrompt, collapseLines, hashlineBody, resultTextLines } from "@agimon-ai/po-web-components/text";
39
41
  import { IconColorContext, LiveDuration, LiveDurationProps, LiveDurationReading, PoNativeProvider, PoNativeProviderProps, sheetsYielded, yieldSheets } from "@agimon-ai/po-native-components/shell";
40
- export { ActivityIcon, AgentAvatar, type AgentState, AlertIcon, type AnnotationMark, AnnotationSurface, type AnnotationSurfaceProps, type AnsiSpan, ArrowRightIcon, AudioLinesIcon, Badge, type BadgeProps, type BadgeSize, type BadgeTone, BranchIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CheckIcon, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CodeBlock, type CodeBlockProps, CopyButton, type CopyButtonProps, CopyIcon, CountBadge, type CountBadgeProps, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, type DialogFooterProps, type DialogFooterVariant, DialogHeader, type DialogHeaderProps, type DialogPartProps, type DialogProps, DialogTitle, DialogTrigger, type DialogWidth, Dot, type DotProps, type DotSize, type DotTone, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, type DropdownMenuItemVariant, DropdownMenuLabel, type DropdownMenuPartProps, type DropdownMenuProps, DropdownMenuRadioGroup, type DropdownMenuRadioGroupProps, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, EditIcon, EmptyState, type EmptyStateProps, type FieldSize, type FieldVariant, FileIcon, type FileLinkHandler, FolderIcon, ForkIcon, GearIcon, GlobeIcon, HashlineLines, type HashlineLinesProps, HomeIcon, HostFilter, type HostFilterProps, HostTag, IconColorContext, type IconName, type IconProps, ImageIcon, InfoStrip, Input, type InputProps, KebabIcon, Label, type LabelProps, LightbulbIcon, List, type ListProps, ListRow, type ListRowProps, LiveDuration, type LiveDurationProps, type LiveDurationReading, LockIcon, Markdown, type MarkdownImageLoader, type MarkdownProps, MenuIcon, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, type MessageItemGroupProps, MessageItemHeader, type MessageItemHeaderProps, type MessageItemPartProps, type MessageItemProps, type MessageItemState, MessageItemStatus, type MessageItemStatusProps, MicIcon, MonitorIcon, PaletteIcon, Panel, PanelBody, PanelHeader, type PanelPartProps, PlayCircleIcon, PlusIcon, PoNativeProvider, type PoNativeProviderProps, type PresentedLine, type ReviewComment, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, SearchIcon, SectionLabel, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, SendIcon, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetHeaderProps, SheetList, type SheetListProps, type SheetPartProps, type SheetProps, SheetTitle, SheetTrigger, ShieldIcon, ShowMore, type ShowMoreProps, SlidersIcon, SparklesIcon, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusBadgeSize, type StatusTone, StopIcon, SyntaxLine, type SyntaxLineProps, TabBadge, type TabBadgeProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TaskIcon, Textarea, type TextareaProps, ToolPathLink, type ToolPathLinkProps, ToolResultImage, type ToolResultImageProps, TrashIcon, UserIcon, UsersIcon, WorkflowIcon, WrenchIcon, agentInitials, ansiSpans, buildReviewPrompt, collapseLines, fontOf, hashlineBody, impactLight, resultTextLines, selectionTick, sheetsYielded, toolTone, useMessageItem, useSyntaxLines, yieldSheets };
42
+ export { ActivityIcon, AgentAvatar, type AgentState, AlertIcon, type AnnotationMark, AnnotationSurface, type AnnotationSurfaceProps, type AnsiSpan, ArrowRightIcon, AudioLinesIcon, Badge, type BadgeProps, type BadgeSize, type BadgeTone, BranchIcon, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CheckIcon, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CodeBlock, type CodeBlockProps, CopyButton, type CopyButtonProps, CopyIcon, CountBadge, type CountBadgeProps, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, type DialogFooterProps, type DialogFooterVariant, DialogHeader, type DialogHeaderProps, type DialogPartProps, type DialogProps, DialogTitle, DialogTrigger, type DialogWidth, Dot, type DotProps, type DotSize, type DotTone, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, type DropdownMenuItemVariant, DropdownMenuLabel, type DropdownMenuPartProps, type DropdownMenuProps, DropdownMenuRadioGroup, type DropdownMenuRadioGroupProps, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, EditIcon, EmptyState, type EmptyStateProps, type FieldSize, type FieldVariant, FileIcon, type FileLinkHandler, FolderIcon, ForkIcon, GearIcon, GlobeIcon, HashlineLines, type HashlineLinesProps, HomeIcon, HostFilter, type HostFilterProps, HostTag, IconColorContext, type IconName, type IconProps, ImageIcon, InfoStrip, Input, type InputProps, KebabIcon, Label, type LabelProps, LightbulbIcon, List, type ListProps, ListRow, type ListRowProps, LiveDuration, type LiveDurationProps, type LiveDurationReading, LockIcon, Markdown, type MarkdownImageLoader, type MarkdownProps, MenuIcon, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, type MessageItemGroupProps, MessageItemHeader, type MessageItemHeaderProps, type MessageItemPartProps, type MessageItemProps, type MessageItemState, MessageItemStatus, type MessageItemStatusProps, MicIcon, MonitorIcon, PaletteIcon, Panel, PanelBody, PanelHeader, type PanelPartProps, PlayCircleIcon, PlusIcon, PoNativeProvider, type PoNativeProviderProps, type PresentedLine, type ReviewComment, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, SearchIcon, SectionLabel, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, type SelectOption, type SelectProps, SendIcon, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetHeaderProps, SheetList, type SheetListProps, type SheetPartProps, type SheetProps, SheetTitle, SheetTrigger, ShieldIcon, ShowMore, type ShowMoreProps, SlidersIcon, SparklesIcon, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusBadgeSize, type StatusTone, StopIcon, Switch, type SwitchProps, SyntaxLine, type SyntaxLineProps, TabBadge, type TabBadgeProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TaskIcon, Textarea, type TextareaProps, ToolPathLink, type ToolPathLinkProps, ToolResultImage, type ToolResultImageProps, TrashIcon, UserIcon, UsersIcon, WorkflowIcon, WrenchIcon, agentInitials, ansiSpans, buildReviewPrompt, collapseLines, fontOf, hashlineBody, impactLight, resultTextLines, selectionTick, sheetsYielded, toolTone, useMessageItem, useSyntaxLines, yieldSheets };
package/dist/index.mjs CHANGED
@@ -26,8 +26,10 @@ import { MessageItem, MessageItemBody, MessageItemGroup, MessageItemHeader, Mess
26
26
  import { Panel, PanelBody, PanelHeader } from "./components/Panel.mjs";
27
27
  import { SectionLabel } from "./components/SectionLabel.mjs";
28
28
  import { SegmentedControl } from "./components/SegmentedControl.mjs";
29
+ import { Select } from "./components/Select.mjs";
29
30
  import { Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "./components/Sheet.mjs";
30
31
  import { SheetList } from "./components/SheetList.mjs";
32
+ import { Switch } from "./components/Switch.mjs";
31
33
  import { TabBadge, Tabs, TabsContent, TabsList, TabsTrigger } from "./components/Tabs.mjs";
32
34
  import { Textarea } from "./components/Textarea.mjs";
33
35
  import { ToolPathLink } from "./components/ToolPathLink.mjs";
@@ -37,4 +39,4 @@ import { InfoStrip } from "./components/InfoStrip.mjs";
37
39
  import { ansiSpans, buildReviewPrompt, collapseLines, hashlineBody, resultTextLines } from "@agimon-ai/po-web-components/text";
38
40
  import { IconColorContext, LiveDuration, PoNativeProvider, sheetsYielded, yieldSheets } from "@agimon-ai/po-native-components/shell";
39
41
 
40
- export { ActivityIcon, AgentAvatar, AlertIcon, AnnotationSurface, ArrowRightIcon, AudioLinesIcon, Badge, BranchIcon, Button, CheckIcon, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CodeBlock, CopyButton, CopyIcon, CountBadge, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Dot, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, EditIcon, EmptyState, FileIcon, FolderIcon, ForkIcon, GearIcon, GlobeIcon, HashlineLines, HomeIcon, HostFilter, HostTag, IconColorContext, ImageIcon, InfoStrip, Input, KebabIcon, Label, LightbulbIcon, List, ListRow, LiveDuration, LockIcon, Markdown, MenuIcon, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, MessageItemHeader, MessageItemStatus, MicIcon, MonitorIcon, PaletteIcon, Panel, PanelBody, PanelHeader, PlayCircleIcon, PlusIcon, PoNativeProvider, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, SearchIcon, SectionLabel, SegmentedControl, SendIcon, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetList, SheetTitle, SheetTrigger, ShieldIcon, ShowMore, SlidersIcon, SparklesIcon, Spinner, StatusBadge, StopIcon, SyntaxLine, TabBadge, Tabs, TabsContent, TabsList, TabsTrigger, TaskIcon, Textarea, ToolPathLink, ToolResultImage, TrashIcon, UserIcon, UsersIcon, WorkflowIcon, WrenchIcon, agentInitials, ansiSpans, buildReviewPrompt, collapseLines, fontOf, hashlineBody, impactLight, resultTextLines, selectionTick, sheetsYielded, toolTone, useMessageItem, useSyntaxLines, yieldSheets };
42
+ export { ActivityIcon, AgentAvatar, AlertIcon, AnnotationSurface, ArrowRightIcon, AudioLinesIcon, Badge, BranchIcon, Button, CheckIcon, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CodeBlock, CopyButton, CopyIcon, CountBadge, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Dot, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, EditIcon, EmptyState, FileIcon, FolderIcon, ForkIcon, GearIcon, GlobeIcon, HashlineLines, HomeIcon, HostFilter, HostTag, IconColorContext, ImageIcon, InfoStrip, Input, KebabIcon, Label, LightbulbIcon, List, ListRow, LiveDuration, LockIcon, Markdown, MenuIcon, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, MessageItemHeader, MessageItemStatus, MicIcon, MonitorIcon, PaletteIcon, Panel, PanelBody, PanelHeader, PlayCircleIcon, PlusIcon, PoNativeProvider, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, SearchIcon, SectionLabel, SegmentedControl, Select, SendIcon, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetList, SheetTitle, SheetTrigger, ShieldIcon, ShowMore, SlidersIcon, SparklesIcon, Spinner, StatusBadge, StopIcon, Switch, SyntaxLine, TabBadge, Tabs, TabsContent, TabsList, TabsTrigger, TaskIcon, Textarea, ToolPathLink, ToolResultImage, TrashIcon, UserIcon, UsersIcon, WorkflowIcon, WrenchIcon, agentInitials, ansiSpans, buildReviewPrompt, collapseLines, fontOf, hashlineBody, impactLight, resultTextLines, selectionTick, sheetsYielded, toolTone, useMessageItem, useSyntaxLines, yieldSheets };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agimon-ai/po-native-components",
3
- "version": "0.0.0-alpha.98",
3
+ "version": "0.0.0-alpha.99",
4
4
  "description": "Shared React Native components for Po and its native plugins: the web component library's look and API on native parts, tuned to the Po palette.",
5
5
  "keywords": [
6
6
  "ai",
@@ -49,12 +49,12 @@
49
49
  "access": "public"
50
50
  },
51
51
  "dependencies": {
52
- "@agimon-ai/po-web-components": "0.0.0-alpha.98"
52
+ "@agimon-ai/po-web-components": "0.0.0-alpha.99"
53
53
  },
54
54
  "devDependencies": {
55
- "@agimon-ai/po-build": "0.0.0-alpha.98",
56
- "@agimon-ai/po-core": "0.0.0-alpha.98",
57
- "@agimon-ai/vibe-lint-plugin-po-web": "0.0.0-alpha.98",
55
+ "@agimon-ai/po-build": "0.0.0-alpha.99",
56
+ "@agimon-ai/po-core": "0.0.0-alpha.99",
57
+ "@agimon-ai/vibe-lint-plugin-po-web": "0.0.0-alpha.99",
58
58
  "@babel/core": "7.29.7",
59
59
  "@expo/vector-icons": "15.1.1",
60
60
  "@fontsource-variable/ibm-plex-sans": "5.3.0",