@adminide-stack/yantra-mobile 12.0.141-alpha.1 → 12.0.141

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 (220) hide show
  1. package/lib/features/agent-chat/NativeAgentChat.js +21 -4
  2. package/lib/features/agent-chat/NativeAgentChat.js.map +1 -1
  3. package/lib/features/chat/ApprovalCard.js +353 -0
  4. package/lib/features/chat/ApprovalCard.js.map +1 -0
  5. package/lib/features/chat/AskUserCard.js +9 -2
  6. package/lib/features/chat/AskUserCard.js.map +1 -1
  7. package/lib/features/chat/askUser.js +25 -3
  8. package/lib/features/chat/askUser.js.map +1 -1
  9. package/lib/features/chat/queuedFollowUpRows.js +13 -0
  10. package/lib/features/chat/queuedFollowUpRows.js.map +1 -0
  11. package/lib/features/devices/bodyComposition.js +116 -0
  12. package/lib/features/devices/bodyComposition.js.map +1 -0
  13. package/lib/features/devices/readings.js.map +1 -1
  14. package/lib/features/devices/session.js +22 -2
  15. package/lib/features/devices/session.js.map +1 -1
  16. package/lib/features/discover/DiscoverArticle.js +105 -92
  17. package/lib/features/discover/DiscoverArticle.js.map +1 -1
  18. package/lib/features/discover/DiscoverFeed.js +97 -48
  19. package/lib/features/discover/DiscoverFeed.js.map +1 -1
  20. package/lib/features/discover/DiscoverFollowUp.js +135 -0
  21. package/lib/features/discover/DiscoverFollowUp.js.map +1 -0
  22. package/lib/features/discover/DiscoverSidebar.js +555 -0
  23. package/lib/features/discover/DiscoverSidebar.js.map +1 -0
  24. package/lib/features/discover/DiscoverSkeletons.js +123 -0
  25. package/lib/features/discover/DiscoverSkeletons.js.map +1 -0
  26. package/lib/features/discover/DiscoverStoryCards.js +193 -87
  27. package/lib/features/discover/DiscoverStoryCards.js.map +1 -1
  28. package/lib/features/discover/followUpQuery.js +42 -0
  29. package/lib/features/discover/followUpQuery.js.map +1 -0
  30. package/lib/features/discover/markets.js +37 -0
  31. package/lib/features/discover/markets.js.map +1 -0
  32. package/lib/features/discover/useDiscoverSidebar.js +148 -0
  33. package/lib/features/discover/useDiscoverSidebar.js.map +1 -0
  34. package/lib/features/discover/weather.js +42 -0
  35. package/lib/features/discover/weather.js.map +1 -0
  36. package/lib/features/expenses/ExpensesAgentChatPane.js +1 -1
  37. package/lib/features/expenses/ExpensesAgentChatPane.js.map +1 -1
  38. package/lib/features/inbox/InboxAgentChatPane.js +1 -1
  39. package/lib/features/inbox/InboxAgentChatPane.js.map +1 -1
  40. package/lib/features/job-search/JobSearchAgentChatPane.js +1 -0
  41. package/lib/features/job-search/JobSearchAgentChatPane.js.map +1 -1
  42. package/lib/features/local-services/LocalServicesAgentChatPane.js +1 -1
  43. package/lib/features/local-services/LocalServicesAgentChatPane.js.map +1 -1
  44. package/lib/features/movies/MoviesAgentChatPane.js +1 -1
  45. package/lib/features/movies/MoviesAgentChatPane.js.map +1 -1
  46. package/lib/features/notion/NotionBlockSheets.js +206 -0
  47. package/lib/features/notion/NotionBlockSheets.js.map +1 -0
  48. package/lib/features/notion/NotionBlockView.js +36 -0
  49. package/lib/features/notion/NotionBlockView.js.map +1 -0
  50. package/lib/features/notion/NotionCommentsSheet.js +461 -0
  51. package/lib/features/notion/NotionCommentsSheet.js.map +1 -0
  52. package/lib/features/notion/NotionConnectionsSheet.js +244 -0
  53. package/lib/features/notion/NotionConnectionsSheet.js.map +1 -0
  54. package/lib/features/notion/NotionHistorySheet.js +439 -0
  55. package/lib/features/notion/NotionHistorySheet.js.map +1 -0
  56. package/lib/features/notion/NotionMediaBlocks.js +803 -0
  57. package/lib/features/notion/NotionMediaBlocks.js.map +1 -0
  58. package/lib/features/notion/NotionMentionSheet.js +279 -0
  59. package/lib/features/notion/NotionMentionSheet.js.map +1 -0
  60. package/lib/features/notion/NotionPageMenu.js +585 -0
  61. package/lib/features/notion/NotionPageMenu.js.map +1 -0
  62. package/lib/features/notion/NotionPageTree.js +220 -0
  63. package/lib/features/notion/NotionPageTree.js.map +1 -0
  64. package/lib/features/notion/NotionPageView.js +1253 -152
  65. package/lib/features/notion/NotionPageView.js.map +1 -1
  66. package/lib/features/notion/NotionShareSheet.js +606 -0
  67. package/lib/features/notion/NotionShareSheet.js.map +1 -0
  68. package/lib/features/notion/NotionSheets.js +87 -15
  69. package/lib/features/notion/NotionSheets.js.map +1 -1
  70. package/lib/features/notion/NotionSidebarSections.js +492 -0
  71. package/lib/features/notion/NotionSidebarSections.js.map +1 -0
  72. package/lib/features/notion/NotionWorkspaceAdmin.js +659 -0
  73. package/lib/features/notion/NotionWorkspaceAdmin.js.map +1 -0
  74. package/lib/features/notion/NotionWorkspaceView.js +257 -45
  75. package/lib/features/notion/NotionWorkspaceView.js.map +1 -1
  76. package/lib/features/notion/database/DatabaseCells.js +554 -0
  77. package/lib/features/notion/database/DatabaseCells.js.map +1 -0
  78. package/lib/features/notion/database/DatabaseDateLayouts.js +792 -0
  79. package/lib/features/notion/database/DatabaseDateLayouts.js.map +1 -0
  80. package/lib/features/notion/database/DatabaseLayouts.js +461 -0
  81. package/lib/features/notion/database/DatabaseLayouts.js.map +1 -0
  82. package/lib/features/notion/database/DatabaseSheets.js +791 -0
  83. package/lib/features/notion/database/DatabaseSheets.js.map +1 -0
  84. package/lib/features/notion/database/NotionDatabaseView.js +817 -0
  85. package/lib/features/notion/database/NotionDatabaseView.js.map +1 -0
  86. package/lib/features/notion/database/RowPropertiesPanel.js +162 -0
  87. package/lib/features/notion/database/RowPropertiesPanel.js.map +1 -0
  88. package/lib/features/notion/database/chartData.js +89 -0
  89. package/lib/features/notion/database/chartData.js.map +1 -0
  90. package/lib/features/notion/database/chartView.js +112 -0
  91. package/lib/features/notion/database/chartView.js.map +1 -0
  92. package/lib/features/notion/database/connectorButton.js +33 -0
  93. package/lib/features/notion/database/connectorButton.js.map +1 -0
  94. package/lib/features/notion/database/databaseCalc.js +208 -0
  95. package/lib/features/notion/database/databaseCalc.js.map +1 -0
  96. package/lib/features/notion/database/databaseCalendar.js +157 -0
  97. package/lib/features/notion/database/databaseCalendar.js.map +1 -0
  98. package/lib/features/notion/database/databaseCsv.js +98 -0
  99. package/lib/features/notion/database/databaseCsv.js.map +1 -0
  100. package/lib/features/notion/database/databaseCsvActions.js +58 -0
  101. package/lib/features/notion/database/databaseCsvActions.js.map +1 -0
  102. package/lib/features/notion/database/databaseFilter.js +473 -0
  103. package/lib/features/notion/database/databaseFilter.js.map +1 -0
  104. package/lib/features/notion/database/databaseFormula.js +1072 -0
  105. package/lib/features/notion/database/databaseFormula.js.map +1 -0
  106. package/lib/features/notion/database/databaseGroup.js +151 -0
  107. package/lib/features/notion/database/databaseGroup.js.map +1 -0
  108. package/lib/features/notion/database/databaseRollup.js +58 -0
  109. package/lib/features/notion/database/databaseRollup.js.map +1 -0
  110. package/lib/features/notion/database/databaseTimeline.js +156 -0
  111. package/lib/features/notion/database/databaseTimeline.js.map +1 -0
  112. package/lib/features/notion/database/databaseView.js +1188 -0
  113. package/lib/features/notion/database/databaseView.js.map +1 -0
  114. package/lib/features/notion/database/databaseViews.js +310 -0
  115. package/lib/features/notion/database/databaseViews.js.map +1 -0
  116. package/lib/features/notion/database/relationSource.js +92 -0
  117. package/lib/features/notion/database/relationSource.js.map +1 -0
  118. package/lib/features/notion/database/uniqueId.js +17 -0
  119. package/lib/features/notion/database/uniqueId.js.map +1 -0
  120. package/lib/features/notion/database/useNotionDatabase.js +617 -0
  121. package/lib/features/notion/database/useNotionDatabase.js.map +1 -0
  122. package/lib/features/notion/notionAgentRunStatus.js +39 -0
  123. package/lib/features/notion/notionAgentRunStatus.js.map +1 -0
  124. package/lib/features/notion/notionCodeLanguages.js +112 -0
  125. package/lib/features/notion/notionCodeLanguages.js.map +1 -0
  126. package/lib/features/notion/notionComments.js +86 -0
  127. package/lib/features/notion/notionComments.js.map +1 -0
  128. package/lib/features/notion/notionConnections.js +74 -0
  129. package/lib/features/notion/notionConnections.js.map +1 -0
  130. package/lib/features/notion/notionDocuments.js +453 -1
  131. package/lib/features/notion/notionDocuments.js.map +1 -1
  132. package/lib/features/notion/notionEditorModel.js +142 -7
  133. package/lib/features/notion/notionEditorModel.js.map +1 -1
  134. package/lib/features/notion/notionMarkdownShortcuts.js +51 -0
  135. package/lib/features/notion/notionMarkdownShortcuts.js.map +1 -0
  136. package/lib/features/notion/notionMedia.js +119 -0
  137. package/lib/features/notion/notionMedia.js.map +1 -0
  138. package/lib/features/notion/notionMentionDate.js +32 -0
  139. package/lib/features/notion/notionMentionDate.js.map +1 -0
  140. package/lib/features/notion/notionMentionOptions.js +162 -0
  141. package/lib/features/notion/notionMentionOptions.js.map +1 -0
  142. package/lib/features/notion/notionNotesAgent.js +445 -0
  143. package/lib/features/notion/notionNotesAgent.js.map +1 -0
  144. package/lib/features/notion/notionPageAccess.js +168 -0
  145. package/lib/features/notion/notionPageAccess.js.map +1 -0
  146. package/lib/features/notion/notionPageActions.js +138 -0
  147. package/lib/features/notion/notionPageActions.js.map +1 -0
  148. package/lib/features/notion/notionPageHistory.js +154 -0
  149. package/lib/features/notion/notionPageHistory.js.map +1 -0
  150. package/lib/features/notion/notionPageKinds.js +200 -0
  151. package/lib/features/notion/notionPageKinds.js.map +1 -0
  152. package/lib/features/notion/notionRecents.js +48 -0
  153. package/lib/features/notion/notionRecents.js.map +1 -0
  154. package/lib/features/notion/notionRichText.js +177 -0
  155. package/lib/features/notion/notionRichText.js.map +1 -0
  156. package/lib/features/notion/notionRichTitle.js +336 -0
  157. package/lib/features/notion/notionRichTitle.js.map +1 -0
  158. package/lib/features/notion/useNotionWorkspace.js +272 -13
  159. package/lib/features/notion/useNotionWorkspace.js.map +1 -1
  160. package/lib/features/notion/usePageActions.js +155 -0
  161. package/lib/features/notion/usePageActions.js.map +1 -0
  162. package/lib/features/resume/ResumeAgentChatPane.js +1 -1
  163. package/lib/features/resume/ResumeAgentChatPane.js.map +1 -1
  164. package/lib/features/shopping/ShoppingAgentChatPane.js +1 -1
  165. package/lib/features/shopping/ShoppingAgentChatPane.js.map +1 -1
  166. package/lib/features/study/StudyAgentChatPane.js +1 -1
  167. package/lib/features/study/StudyAgentChatPane.js.map +1 -1
  168. package/lib/features/travel/TravelAgentChatPane.js +1 -1
  169. package/lib/features/travel/TravelAgentChatPane.js.map +1 -1
  170. package/lib/features/webbuilder/WebBuilderExperience.js +40 -8
  171. package/lib/features/webbuilder/WebBuilderExperience.js.map +1 -1
  172. package/lib/features/webbuilder/buildFragments.js +1 -1
  173. package/lib/features/webbuilder/buildFragments.js.map +1 -1
  174. package/lib/features/webbuilder/codeFiles.js +302 -0
  175. package/lib/features/webbuilder/codeFiles.js.map +1 -0
  176. package/lib/features/webbuilder/codeHighlight.js +209 -0
  177. package/lib/features/webbuilder/codeHighlight.js.map +1 -0
  178. package/lib/features/webbuilder/components/CodeView.js +682 -52
  179. package/lib/features/webbuilder/components/CodeView.js.map +1 -1
  180. package/lib/features/webbuilder/components/PreviewScreen.js +59 -38
  181. package/lib/features/webbuilder/components/PreviewScreen.js.map +1 -1
  182. package/lib/features/webbuilder/components/ProjectChat.js +3 -3
  183. package/lib/features/webbuilder/components/ProjectChat.js.map +1 -1
  184. package/lib/features/webbuilder/stepLabels.js +68 -0
  185. package/lib/features/webbuilder/stepLabels.js.map +1 -0
  186. package/lib/hooks/useHostChatSteering.js +45 -0
  187. package/lib/hooks/useHostChatSteering.js.map +1 -0
  188. package/lib/screens/Chat/index.js +2 -12
  189. package/lib/screens/Chat/index.js.map +1 -1
  190. package/lib/screens/Devices/index.js +205 -3
  191. package/lib/screens/Devices/index.js.map +1 -1
  192. package/lib/screens/ExpensesNative/useExpensesHostChat.js +25 -5
  193. package/lib/screens/ExpensesNative/useExpensesHostChat.js.map +1 -1
  194. package/lib/screens/InboxNative/useInboxHostChat.js +25 -5
  195. package/lib/screens/InboxNative/useInboxHostChat.js.map +1 -1
  196. package/lib/screens/JobSearchNative/useJobSearchHostChat.js +25 -5
  197. package/lib/screens/JobSearchNative/useJobSearchHostChat.js.map +1 -1
  198. package/lib/screens/LocalServicesNative/useLocalServicesHostChat.js +25 -5
  199. package/lib/screens/LocalServicesNative/useLocalServicesHostChat.js.map +1 -1
  200. package/lib/screens/MoviesNative/useMoviesHostChat.js +25 -5
  201. package/lib/screens/MoviesNative/useMoviesHostChat.js.map +1 -1
  202. package/lib/screens/NotionPage/index.js +2 -2
  203. package/lib/screens/NotionPage/index.js.map +1 -1
  204. package/lib/screens/ResumeNative/useResumeHostChat.js +25 -5
  205. package/lib/screens/ResumeNative/useResumeHostChat.js.map +1 -1
  206. package/lib/screens/ShoppingNative/useShoppingHostChat.js +25 -5
  207. package/lib/screens/ShoppingNative/useShoppingHostChat.js.map +1 -1
  208. package/lib/screens/StudyNative/useStudyHostChat.js +25 -5
  209. package/lib/screens/StudyNative/useStudyHostChat.js.map +1 -1
  210. package/lib/screens/TravelNative/useTravelHostChat.js +25 -5
  211. package/lib/screens/TravelNative/useTravelHostChat.js.map +1 -1
  212. package/lib/screens/WebBuilderNative/codeWorkspaceApi.js +222 -0
  213. package/lib/screens/WebBuilderNative/codeWorkspaceApi.js.map +1 -0
  214. package/lib/screens/WebBuilderNative/index.js +1 -1
  215. package/lib/screens/WebBuilderNative/index.js.map +1 -1
  216. package/lib/screens/WebBuilderNative/sandboxProxyApi.js +126 -4
  217. package/lib/screens/WebBuilderNative/sandboxProxyApi.js.map +1 -1
  218. package/lib/screens/WebBuilderNative/useWebBuilderHost.js +120 -11
  219. package/lib/screens/WebBuilderNative/useWebBuilderHost.js.map +1 -1
  220. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseSheets.js","sources":["../../../../src/features/notion/database/DatabaseSheets.tsx"],"sourcesContent":["/**\n * Database toolbar sheets - the web DatabaseFilterBar / view \"⋯\" menu / property header menu on a\n * phone:\n * - FilterSheet: the view's conditions (property, operator, value per operator), And / Or.\n * - SortSheet: ordered sorts with direction.\n * - PropertiesSheet: show / hide and order the view's properties, open one to edit it, add one.\n * - PropertyEditorSheet: rename, change type, footer calculation, delete.\n * - ViewOptionsSheet: layout, group by, hide empty groups, wrap, card size / preview.\n * - NewViewSheet: name, layout and its layout property (web \"+ New view\").\n */\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { Modal, Pressable, ScrollView, StyleSheet, Switch, Text, TextInput, View } from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\nimport type { NotionPalette } from '../notionTheme';\nimport { SheetHeader, ui } from '../notionUi';\nimport {\n RELATIVE_DATES,\n describeCondition,\n isOrMode,\n newCondition,\n operatorInfo,\n operatorsFor,\n setFilterMode,\n type FilterCondition,\n} from './databaseFilter';\nimport { CALC_LABELS, kindsFor, type CalcKind } from './databaseCalc';\nimport { isTableGroupable } from './databaseGroup';\nimport { PROPERTY_TYPES, normalizeStatusOptions, propertyTypeLabel, type SortSpec } from './databaseView';\nimport {\n CARD_SIZES,\n VIEW_TYPES,\n buildNewView,\n layoutPropertyCandidates,\n readCardLayout,\n type ViewSettings,\n type ViewType,\n} from './databaseViews';\nimport type { DatabaseColumn } from './useNotionDatabase';\n\ntype Palette = NotionPalette;\n\nexport const PROPERTY_ICONS: Record<string, React.ComponentProps<typeof Ionicons>['name']> = {\n title: 'text-outline',\n text: 'reorder-three-outline',\n number: 'calculator-outline',\n select: 'chevron-down-circle-outline',\n status: 'ellipse-outline',\n multi_select: 'list-outline',\n date: 'calendar-outline',\n checkbox: 'checkbox-outline',\n url: 'link-outline',\n email: 'at-outline',\n phone: 'call-outline',\n person: 'person-outline',\n files: 'attach-outline',\n relation: 'git-network-outline',\n formula: 'flask-outline',\n rollup: 'search-outline',\n created_time: 'time-outline',\n last_edited_time: 'time-outline',\n created_by: 'person-circle-outline',\n last_edited_by: 'person-circle-outline',\n unique_id: 'key-outline',\n button: 'radio-button-on-outline',\n connector: 'flash-outline',\n};\n\nexport function propertyIcon(type: string) {\n return PROPERTY_ICONS[type] ?? 'reorder-three-outline';\n}\n\nfunction Sheet({\n visible,\n title,\n palette,\n onClose,\n left,\n children,\n}: {\n visible: boolean;\n title: string;\n palette: Palette;\n onClose: () => void;\n left?: { label: string; onPress: () => void; disabled?: boolean };\n children: React.ReactNode;\n}) {\n return (\n <Modal visible={visible} animationType=\"slide\" presentationStyle=\"pageSheet\" onRequestClose={onClose}>\n <View style={[ui.flex, { backgroundColor: palette.bg }]}>\n <SheetHeader title={title} onDone={onClose} palette={palette} left={left} />\n <ScrollView contentContainerStyle={styles.content} keyboardShouldPersistTaps=\"handled\">\n {children}\n </ScrollView>\n </View>\n </Modal>\n );\n}\n\nfunction Row({\n palette,\n icon,\n label,\n detail,\n onPress,\n right,\n danger,\n first,\n last,\n}: {\n palette: Palette;\n icon?: React.ComponentProps<typeof Ionicons>['name'];\n label: string;\n detail?: string;\n onPress?: () => void;\n right?: React.ReactNode;\n danger?: boolean;\n first?: boolean;\n last?: boolean;\n}) {\n return (\n <Pressable\n accessibilityRole={onPress ? 'button' : undefined}\n onPress={onPress}\n disabled={!onPress}\n style={({ pressed }) => [\n styles.row,\n { backgroundColor: pressed ? palette.pressed : palette.card },\n first && styles.first,\n last && styles.last,\n ]}\n >\n {icon ? <Ionicons name={icon} size={18} color={danger ? palette.danger : palette.textMuted} /> : null}\n <View style={[styles.rowBody, !last && { borderBottomColor: palette.hairline }, !last && ui.hairline]}>\n <Text numberOfLines={1} style={[styles.rowLabel, { color: danger ? palette.danger : palette.text }]}>\n {label}\n </Text>\n {detail ? (\n <Text numberOfLines={1} style={[styles.rowDetail, { color: palette.textMuted }]}>\n {detail}\n </Text>\n ) : null}\n {right}\n {onPress && !right ? <Ionicons name=\"chevron-forward\" size={16} color={palette.textFaint} /> : null}\n </View>\n </Pressable>\n );\n}\n\nfunction Label({ palette, children }: { palette: Palette; children: React.ReactNode }) {\n return <Text style={[styles.label, { color: palette.textMuted }]}>{children}</Text>;\n}\n\nfunction Chips<T extends string>({\n palette,\n options,\n value,\n onChange,\n}: {\n palette: Palette;\n options: Array<{ value: T; label: string }>;\n value: T | null;\n onChange: (v: T) => void;\n}) {\n return (\n <View style={styles.chips}>\n {options.map((o) => {\n const on = o.value === value;\n return (\n <Pressable\n key={o.value}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: on }}\n onPress={() => onChange(o.value)}\n style={[styles.chip, { backgroundColor: on ? palette.primary : palette.fill }]}\n >\n <Text style={[styles.chipText, { color: on ? palette.onPrimary : palette.text }]}>\n {o.label}\n </Text>\n </Pressable>\n );\n })}\n </View>\n );\n}\n\n/** A list of choices in its own sheet (property / operator / type pickers). */\nexport function ChoiceSheet<T extends string>({\n visible,\n title,\n palette,\n choices,\n value,\n onPick,\n onClose,\n}: {\n visible: boolean;\n title: string;\n palette: Palette;\n choices: Array<{ value: T; label: string; icon?: React.ComponentProps<typeof Ionicons>['name']; detail?: string }>;\n value?: T | null;\n onPick: (v: T) => void;\n onClose: () => void;\n}) {\n return (\n <Sheet visible={visible} title={title} palette={palette} onClose={onClose}>\n <View>\n {choices.map((c, i) => (\n <Row\n key={c.value}\n palette={palette}\n icon={c.icon}\n label={c.label}\n detail={c.detail}\n first={i === 0}\n last={i === choices.length - 1}\n onPress={() => onPick(c.value)}\n right={\n c.value === value ? (\n <Ionicons name=\"checkmark\" size={20} color={palette.primary} />\n ) : (\n <View />\n )\n }\n />\n ))}\n </View>\n </Sheet>\n );\n}\n\n// ---- Filter ----------------------------------------------------------------------------\n\nfunction ConditionEditor({\n cond,\n column,\n columns,\n palette,\n onChange,\n onRemove,\n}: {\n cond: FilterCondition;\n column: DatabaseColumn | undefined;\n columns: DatabaseColumn[];\n palette: Palette;\n onChange: (c: FilterCondition) => void;\n onRemove: () => void;\n}) {\n const [picker, setPicker] = useState<'property' | 'operator' | null>(null);\n const type = column?.type ?? 'text';\n const info = operatorInfo(type, cond.operator);\n const options = column\n ? column.type === 'status'\n ? normalizeStatusOptions(column.options)\n : (column.options ?? [])\n : [];\n const values = Array.isArray(cond.value) ? cond.value : cond.value != null ? [String(cond.value)] : [];\n\n return (\n <View style={[styles.condition, { backgroundColor: palette.card }]}>\n <View style={styles.conditionHead}>\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => setPicker('property')}\n style={[styles.select, { backgroundColor: palette.fill }]}\n >\n <Ionicons name={propertyIcon(type)} size={15} color={palette.textMuted} />\n <Text numberOfLines={1} style={[styles.selectText, { color: palette.text }]}>\n {column?.name ?? cond.property}\n </Text>\n </Pressable>\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => setPicker('operator')}\n style={[styles.select, { backgroundColor: palette.fill }]}\n >\n <Text numberOfLines={1} style={[styles.selectText, { color: palette.text }]}>\n {info?.label ?? cond.operator}\n </Text>\n <Ionicons name=\"chevron-down\" size={14} color={palette.textMuted} />\n </Pressable>\n <Pressable accessibilityRole=\"button\" accessibilityLabel=\"Remove filter\" onPress={onRemove} hitSlop={8}>\n <Ionicons name=\"trash-outline\" size={18} color={palette.danger} />\n </Pressable>\n </View>\n {info?.input === 'text' || info?.input === 'number' || info?.input === 'days' || info?.input === 'date' ? (\n <TextInput\n value={cond.value == null ? '' : String(cond.value)}\n onChangeText={(v) =>\n onChange({\n ...cond,\n value: info.input === 'number' || info.input === 'days' ? (v.trim() === '' ? null : v) : v,\n })\n }\n placeholder={info.input === 'date' ? 'YYYY-MM-DD' : info.input === 'days' ? 'Days' : 'Value'}\n placeholderTextColor={palette.textFaint}\n keyboardType={info.input === 'text' ? 'default' : 'numbers-and-punctuation'}\n autoCapitalize=\"none\"\n style={[styles.input, { color: palette.text, backgroundColor: palette.fill }]}\n />\n ) : null}\n {info?.input === 'relative' ? (\n <Chips\n palette={palette}\n options={RELATIVE_DATES.map((d) => ({ value: d.value as string, label: d.label }))}\n value={typeof cond.value === 'string' ? cond.value : null}\n onChange={(v) => onChange({ ...cond, value: v })}\n />\n ) : null}\n {info?.input === 'option' || info?.input === 'options' ? (\n <Chips\n palette={palette}\n options={options.map((o) => ({ value: o.name, label: o.name }))}\n value={info.input === 'option' ? (values[0] ?? null) : null}\n onChange={(name) => {\n if (info.input === 'option') onChange({ ...cond, value: name });\n else {\n const next = values.includes(name) ? values.filter((v) => v !== name) : [...values, name];\n onChange({ ...cond, value: next });\n }\n }}\n />\n ) : null}\n {info?.input === 'options' && values.length ? (\n <Text style={[styles.hint, { color: palette.textMuted }]}>{values.join(', ')}</Text>\n ) : null}\n <ChoiceSheet\n visible={picker === 'property'}\n title=\"Property\"\n palette={palette}\n value={cond.property}\n choices={columns.map((c) => ({ value: c.name, label: c.name, icon: propertyIcon(c.type) }))}\n onClose={() => setPicker(null)}\n onPick={(name) => {\n setPicker(null);\n const next = columns.find((c) => c.name === name);\n if (next) onChange({ ...newCondition(next), id: cond.id, conj: cond.conj });\n }}\n />\n <ChoiceSheet\n visible={picker === 'operator'}\n title=\"Condition\"\n palette={palette}\n value={cond.operator}\n choices={operatorsFor(type).map((o) => ({ value: o.op, label: o.label }))}\n onClose={() => setPicker(null)}\n onPick={(op) => {\n setPicker(null);\n const nextInfo = operatorInfo(type, op);\n const keep = nextInfo?.input === info?.input;\n onChange({ ...cond, operator: op, value: keep ? cond.value : null });\n }}\n />\n </View>\n );\n}\n\nexport function FilterSheet({\n visible,\n palette,\n columns,\n conditions,\n onChange,\n onClose,\n}: {\n visible: boolean;\n palette: Palette;\n columns: DatabaseColumn[];\n conditions: FilterCondition[];\n onChange: (next: FilterCondition[]) => void;\n onClose: () => void;\n}) {\n const [adding, setAdding] = useState(false);\n const orMode = isOrMode(conditions);\n const filterable = columns.filter((c) => c.type !== 'button');\n return (\n <Sheet\n visible={visible}\n title=\"Filter\"\n palette={palette}\n onClose={onClose}\n left={conditions.length ? { label: 'Clear', onPress: () => onChange([]) } : undefined}\n >\n {conditions.length > 1 ? (\n <View style={styles.block}>\n <Label palette={palette}>Rows must match</Label>\n <Chips\n palette={palette}\n options={[\n { value: 'and', label: 'All filters' },\n { value: 'or', label: 'Any filter' },\n ]}\n value={orMode ? 'or' : 'and'}\n onChange={(m) => onChange(setFilterMode(conditions, m as 'and' | 'or'))}\n />\n </View>\n ) : null}\n {conditions.map((cond) => (\n <ConditionEditor\n key={cond.id}\n cond={cond}\n column={columns.find((c) => c.name === cond.property)}\n columns={filterable}\n palette={palette}\n onChange={(next) => onChange(conditions.map((c) => (c.id === cond.id ? next : c)))}\n onRemove={() => onChange(conditions.filter((c) => c.id !== cond.id))}\n />\n ))}\n {!conditions.length ? (\n <Text style={[styles.empty, { color: palette.textMuted }]}>\n No filters. Add one to show only the rows that match.\n </Text>\n ) : null}\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => setAdding(true)}\n style={[styles.add, { backgroundColor: palette.primarySoft }]}\n >\n <Ionicons name=\"add\" size={18} color={palette.primary} />\n <Text style={[styles.addText, { color: palette.primary }]}>Add a filter</Text>\n </Pressable>\n <ChoiceSheet\n visible={adding}\n title=\"Filter by\"\n palette={palette}\n choices={filterable.map((c) => ({ value: c.name, label: c.name, icon: propertyIcon(c.type) }))}\n onClose={() => setAdding(false)}\n onPick={(name) => {\n setAdding(false);\n const column = filterable.find((c) => c.name === name);\n if (!column) return;\n const cond = newCondition(column);\n onChange([...conditions, orMode ? { ...cond, conj: 'or' } : cond]);\n }}\n />\n </Sheet>\n );\n}\n\n/** One-line summaries of the active conditions (toolbar chip / header). */\nexport function filterSummary(conditions: FilterCondition[], columns: DatabaseColumn[]): string[] {\n return conditions.map((c) =>\n describeCondition(\n c,\n columns.find((col) => col.name === c.property),\n ),\n );\n}\n\n// ---- Sort -----------------------------------------------------------------------------\n\nexport function SortSheet({\n visible,\n palette,\n columns,\n sorts,\n onChange,\n onClose,\n}: {\n visible: boolean;\n palette: Palette;\n columns: DatabaseColumn[];\n sorts: SortSpec[];\n onChange: (next: SortSpec[]) => void;\n onClose: () => void;\n}) {\n const [adding, setAdding] = useState(false);\n const free = columns.filter((c) => !sorts.some((s) => s.property === c.name) && c.type !== 'button');\n const move = (i: number, d: -1 | 1) => {\n const j = i + d;\n if (j < 0 || j >= sorts.length) return;\n const next = [...sorts];\n [next[i], next[j]] = [next[j], next[i]];\n onChange(next);\n };\n return (\n <Sheet\n visible={visible}\n title=\"Sort\"\n palette={palette}\n onClose={onClose}\n left={sorts.length ? { label: 'Clear', onPress: () => onChange([]) } : undefined}\n >\n {sorts.map((s, i) => {\n const column = columns.find((c) => c.name === s.property);\n return (\n <View key={s.property} style={[styles.condition, { backgroundColor: palette.card }]}>\n <View style={styles.conditionHead}>\n <Ionicons name={propertyIcon(column?.type ?? 'text')} size={16} color={palette.textMuted} />\n <Text numberOfLines={1} style={[styles.rowLabel, ui.flex, { color: palette.text }]}>\n {s.property}\n </Text>\n <Pressable accessibilityLabel=\"Move up\" onPress={() => move(i, -1)} hitSlop={6}>\n <Ionicons name=\"arrow-up\" size={18} color={i ? palette.textMuted : palette.textFaint} />\n </Pressable>\n <Pressable accessibilityLabel=\"Move down\" onPress={() => move(i, 1)} hitSlop={6}>\n <Ionicons\n name=\"arrow-down\"\n size={18}\n color={i < sorts.length - 1 ? palette.textMuted : palette.textFaint}\n />\n </Pressable>\n <Pressable\n accessibilityLabel=\"Remove sort\"\n onPress={() => onChange(sorts.filter((x) => x.property !== s.property))}\n hitSlop={6}\n >\n <Ionicons name=\"trash-outline\" size={18} color={palette.danger} />\n </Pressable>\n </View>\n <Chips\n palette={palette}\n options={[\n { value: 'ascending', label: 'Ascending' },\n { value: 'descending', label: 'Descending' },\n ]}\n value={s.direction}\n onChange={(direction) =>\n onChange(sorts.map((x) => (x.property === s.property ? { ...x, direction } : x)))\n }\n />\n </View>\n );\n })}\n {!sorts.length ? (\n <Text style={[styles.empty, { color: palette.textMuted }]}>\n Rows show in the order they were added.\n </Text>\n ) : null}\n {free.length ? (\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => setAdding(true)}\n style={[styles.add, { backgroundColor: palette.primarySoft }]}\n >\n <Ionicons name=\"add\" size={18} color={palette.primary} />\n <Text style={[styles.addText, { color: palette.primary }]}>Add a sort</Text>\n </Pressable>\n ) : null}\n <ChoiceSheet\n visible={adding}\n title=\"Sort by\"\n palette={palette}\n choices={free.map((c) => ({ value: c.name, label: c.name, icon: propertyIcon(c.type) }))}\n onClose={() => setAdding(false)}\n onPick={(name) => {\n setAdding(false);\n onChange([...sorts, { property: name, direction: 'ascending' }]);\n }}\n />\n </Sheet>\n );\n}\n\n// ---- Properties ----------------------------------------------------------------------\n\nexport function PropertiesSheet({\n visible,\n palette,\n columns,\n visibleNames,\n onChangeVisible,\n onEdit,\n onAdd,\n onClose,\n children,\n}: {\n visible: boolean;\n palette: Palette;\n columns: DatabaseColumn[];\n /** Nested sheets (the property editor opens on top of this one). */\n children?: React.ReactNode;\n /** Shown non-title properties, in order. */\n visibleNames: string[];\n onChangeVisible: (names: string[]) => void;\n onEdit: (column: DatabaseColumn) => void;\n onAdd: () => void;\n onClose: () => void;\n}) {\n const title = columns.find((c) => c.type === 'title');\n const shown = visibleNames.map((n) => columns.find((c) => c.name === n)).filter((c): c is DatabaseColumn => !!c);\n const hidden = columns.filter((c) => c.type !== 'title' && !visibleNames.includes(c.name));\n const move = (name: string, d: -1 | 1) => {\n const i = visibleNames.indexOf(name);\n const j = i + d;\n if (i < 0 || j < 0 || j >= visibleNames.length) return;\n const next = [...visibleNames];\n [next[i], next[j]] = [next[j], next[i]];\n onChangeVisible(next);\n };\n return (\n <Sheet visible={visible} title=\"Properties\" palette={palette} onClose={onClose}>\n {title ? (\n <View style={styles.block}>\n <Row\n palette={palette}\n icon={propertyIcon('title')}\n label={title.name}\n detail=\"Title\"\n first\n last\n onPress={() => onEdit(title)}\n />\n </View>\n ) : null}\n <Label palette={palette}>Shown in this view</Label>\n <View style={styles.block}>\n {shown.map((c, i) => (\n <Row\n key={c.name}\n palette={palette}\n icon={propertyIcon(c.type)}\n label={c.name}\n first={i === 0}\n last={i === shown.length - 1}\n onPress={() => onEdit(c)}\n right={\n <View style={styles.rowActions}>\n <Pressable\n accessibilityLabel={`Move ${c.name} up`}\n onPress={() => move(c.name, -1)}\n hitSlop={6}\n >\n <Ionicons name=\"arrow-up\" size={17} color={palette.textMuted} />\n </Pressable>\n <Pressable\n accessibilityLabel={`Move ${c.name} down`}\n onPress={() => move(c.name, 1)}\n hitSlop={6}\n >\n <Ionicons name=\"arrow-down\" size={17} color={palette.textMuted} />\n </Pressable>\n <Pressable\n accessibilityLabel={`Hide ${c.name}`}\n onPress={() => onChangeVisible(visibleNames.filter((n) => n !== c.name))}\n hitSlop={6}\n >\n <Ionicons name=\"eye\" size={19} color={palette.primary} />\n </Pressable>\n </View>\n }\n />\n ))}\n {!shown.length ? (\n <Text style={[styles.empty, { color: palette.textMuted }]}>Only the title is shown.</Text>\n ) : null}\n </View>\n {hidden.length ? (\n <>\n <Label palette={palette}>Hidden</Label>\n <View style={styles.block}>\n {hidden.map((c, i) => (\n <Row\n key={c.name}\n palette={palette}\n icon={propertyIcon(c.type)}\n label={c.name}\n first={i === 0}\n last={i === hidden.length - 1}\n onPress={() => onEdit(c)}\n right={\n <Pressable\n accessibilityLabel={`Show ${c.name}`}\n onPress={() => onChangeVisible([...visibleNames, c.name])}\n hitSlop={6}\n >\n <Ionicons name=\"eye-off-outline\" size={19} color={palette.textFaint} />\n </Pressable>\n }\n />\n ))}\n </View>\n </>\n ) : null}\n <Pressable\n accessibilityRole=\"button\"\n onPress={onAdd}\n style={[styles.add, { backgroundColor: palette.primarySoft }]}\n >\n <Ionicons name=\"add\" size={18} color={palette.primary} />\n <Text style={[styles.addText, { color: palette.primary }]}>New property</Text>\n </Pressable>\n {children}\n </Sheet>\n );\n}\n\n/** Types offered for a new / changed property (connector and button need the web builder). */\nconst EDITABLE_TYPES = PROPERTY_TYPES.filter((t) => t.type !== 'connector' && t.type !== 'button');\n\nexport function PropertyEditorSheet({\n visible,\n palette,\n column,\n isNew,\n calculation,\n onClose,\n onRename,\n onChangeType,\n onDelete,\n onCalculation,\n onCreate,\n}: {\n visible: boolean;\n palette: Palette;\n /** null with `isNew`: a new property. */\n column: DatabaseColumn | null;\n isNew?: boolean;\n calculation?: string;\n onClose: () => void;\n onRename: (to: string) => Promise<string | null>;\n onChangeType: (type: string) => Promise<string | null>;\n onDelete: () => void;\n onCalculation: (kind: CalcKind) => void;\n onCreate: (name: string, type: string) => Promise<string | null>;\n}) {\n const [name, setName] = useState('');\n const [type, setType] = useState('text');\n const [picker, setPicker] = useState<'type' | 'calc' | null>(null);\n const [error, setError] = useState<string | null>(null);\n const [busy, setBusy] = useState(false);\n useEffect(() => {\n if (!visible) return;\n setName(column?.name ?? '');\n setType(column?.type ?? 'text');\n setError(null);\n }, [visible, column]);\n const isTitle = column?.type === 'title';\n const run = async (fn: () => Promise<string | null>, close = false) => {\n setBusy(true);\n setError(null);\n const err = await fn();\n setBusy(false);\n if (err) setError(err);\n else if (close) onClose();\n };\n const kinds = column ? kindsFor(column.type) : [];\n return (\n <Sheet\n visible={visible}\n title={isNew ? 'New property' : 'Edit property'}\n palette={palette}\n onClose={onClose}\n left={\n isNew\n ? {\n label: 'Add',\n disabled: busy || !name.trim(),\n onPress: () => run(() => onCreate(name.trim(), type), true),\n }\n : undefined\n }\n >\n <Label palette={palette}>Name</Label>\n <TextInput\n value={name}\n onChangeText={setName}\n autoFocus={isNew}\n placeholder=\"Property name\"\n placeholderTextColor={palette.textFaint}\n returnKeyType=\"done\"\n onEndEditing={() => {\n if (!isNew && column && name.trim() && name.trim() !== column.name) {\n run(() => onRename(name.trim()));\n }\n }}\n style={[styles.input, { color: palette.text, backgroundColor: palette.fill }]}\n />\n {error ? <Text style={[styles.error, { color: palette.danger }]}>{error}</Text> : null}\n <View style={styles.block}>\n <Row\n palette={palette}\n icon={propertyIcon(type)}\n label=\"Type\"\n detail={propertyTypeLabel(type)}\n first\n last={isNew || !kinds.length}\n onPress={isTitle ? undefined : () => setPicker('type')}\n />\n {!isNew && kinds.length ? (\n <Row\n palette={palette}\n icon=\"stats-chart-outline\"\n label=\"Calculate\"\n detail={calculation ? (CALC_LABELS[calculation as CalcKind]?.menu ?? 'None') : 'None'}\n last\n onPress={() => setPicker('calc')}\n />\n ) : null}\n </View>\n {!isNew && !isTitle ? (\n <View style={styles.block}>\n <Row\n palette={palette}\n icon=\"trash-outline\"\n label=\"Delete property\"\n danger\n first\n last\n onPress={onDelete}\n />\n </View>\n ) : null}\n <ChoiceSheet\n visible={picker === 'type'}\n title=\"Type\"\n palette={palette}\n value={type}\n choices={EDITABLE_TYPES.map((t) => ({\n value: t.type as string,\n label: t.label,\n icon: propertyIcon(t.type),\n }))}\n onClose={() => setPicker(null)}\n onPick={(t) => {\n setPicker(null);\n setType(t);\n if (!isNew && column && t !== column.type) run(() => onChangeType(t));\n }}\n />\n <ChoiceSheet\n visible={picker === 'calc'}\n title=\"Calculate\"\n palette={palette}\n value={(calculation as CalcKind) ?? 'none'}\n choices={(['none', ...kinds.filter((k) => k !== 'none')] as CalcKind[]).map((k) => ({\n value: k,\n label: CALC_LABELS[k]?.menu ?? k,\n }))}\n onClose={() => setPicker(null)}\n onPick={(k) => {\n setPicker(null);\n onCalculation(k);\n }}\n />\n </Sheet>\n );\n}\n\n// ---- View options -----------------------------------------------------------------------\n\nexport function ViewOptionsSheet({\n visible,\n palette,\n type,\n groupBy,\n settings,\n columns,\n onChangeType,\n onChangeGroupBy,\n onChangeSettings,\n onClose,\n}: {\n visible: boolean;\n palette: Palette;\n type: ViewType;\n groupBy: string | null;\n settings: ViewSettings;\n columns: DatabaseColumn[];\n onChangeType: (type: ViewType) => void;\n onChangeGroupBy: (name: string | null) => void;\n onChangeSettings: (patch: Partial<ViewSettings>) => void;\n onClose: () => void;\n}) {\n const [picker, setPicker] = useState<'layout' | 'group' | 'cover' | null>(null);\n const groupCandidates = useMemo(() => {\n if (type === 'board' || type === 'calendar' || type === 'timeline') {\n return layoutPropertyCandidates(type, columns);\n }\n if (type === 'table' || type === 'list')\n return columns.filter((c) => c.type !== 'title' && isTableGroupable(c));\n return [];\n }, [columns, type]);\n const card = readCardLayout(settings, { cover: true });\n const fileColumns = columns.filter((c) => c.type === 'files');\n const groupLabel =\n type === 'calendar' || type === 'timeline' ? 'Date property' : type === 'board' ? 'Group by' : 'Group';\n return (\n <Sheet visible={visible} title=\"View options\" palette={palette} onClose={onClose}>\n <View style={styles.block}>\n <Row\n palette={palette}\n icon=\"grid-outline\"\n label=\"Layout\"\n detail={VIEW_TYPES.find((v) => v.type === type)?.label}\n first\n last={!groupCandidates.length && type !== 'board'}\n onPress={() => setPicker('layout')}\n />\n {groupCandidates.length || type === 'board' ? (\n <Row\n palette={palette}\n icon=\"albums-outline\"\n label={groupLabel}\n detail={groupBy ?? 'None'}\n last\n onPress={() => setPicker('group')}\n />\n ) : null}\n </View>\n {type === 'board' || ((type === 'table' || type === 'list') && groupBy) ? (\n <View style={styles.block}>\n <Row\n palette={palette}\n icon=\"eye-off-outline\"\n label=\"Hide empty groups\"\n first\n last\n right={\n <Switch\n value={Boolean(settings.hideEmptyGroups)}\n onValueChange={(v) => onChangeSettings({ hideEmptyGroups: v || undefined })}\n />\n }\n />\n </View>\n ) : null}\n {type === 'table' ? (\n <View style={styles.block}>\n <Row\n palette={palette}\n icon=\"return-down-forward-outline\"\n label=\"Wrap all columns\"\n first\n last\n right={\n <Switch\n value={Boolean(settings.wrap)}\n onValueChange={(v) => onChangeSettings({ wrap: v || undefined })}\n />\n }\n />\n </View>\n ) : null}\n {type === 'gallery' ? (\n <>\n <Label palette={palette}>Card size</Label>\n <Chips\n palette={palette}\n options={CARD_SIZES.map((c) => ({ value: c.size as string, label: c.label }))}\n value={card.size}\n onChange={(size) => onChangeSettings({ cardSize: size })}\n />\n <View style={[styles.block, styles.spaced]}>\n <Row\n palette={palette}\n icon=\"image-outline\"\n label=\"Card preview\"\n detail={\n card.coverSource === 'auto'\n ? 'Page cover or first image'\n : card.coverSource === 'cover'\n ? 'Page cover'\n : card.coverSource === 'none'\n ? 'None'\n : card.coverSource\n }\n first\n last\n onPress={() => setPicker('cover')}\n />\n </View>\n </>\n ) : null}\n <ChoiceSheet\n visible={picker === 'layout'}\n title=\"Layout\"\n palette={palette}\n value={type}\n choices={VIEW_TYPES.map((v) => ({ value: v.type, label: v.label, detail: v.hint }))}\n onClose={() => setPicker(null)}\n onPick={(t) => {\n setPicker(null);\n onChangeType(t);\n }}\n />\n <ChoiceSheet\n visible={picker === 'group'}\n title={groupLabel}\n palette={palette}\n value={groupBy ?? '__none'}\n choices={[\n ...(type === 'calendar' || type === 'timeline' ? [] : [{ value: '__none', label: 'None' }]),\n ...groupCandidates.map((c) => ({ value: c.name, label: c.name, icon: propertyIcon(c.type) })),\n ]}\n onClose={() => setPicker(null)}\n onPick={(name) => {\n setPicker(null);\n onChangeGroupBy(name === '__none' ? null : name);\n }}\n />\n <ChoiceSheet\n visible={picker === 'cover'}\n title=\"Card preview\"\n palette={palette}\n value={card.coverSource ?? 'auto'}\n choices={[\n { value: 'auto', label: 'Page cover or first image' },\n { value: 'cover', label: 'Page cover' },\n ...fileColumns.map((c) => ({ value: c.name, label: c.name, icon: propertyIcon('files') })),\n { value: 'none', label: 'None' },\n ]}\n onClose={() => setPicker(null)}\n onPick={(source) => {\n setPicker(null);\n onChangeSettings({ cardCoverSource: source, cardCover: source !== 'none' });\n }}\n />\n </Sheet>\n );\n}\n\n// ---- New view -------------------------------------------------------------------------\n\nexport function NewViewSheet({\n visible,\n palette,\n columns,\n onCreate,\n onClose,\n}: {\n visible: boolean;\n palette: Palette;\n columns: DatabaseColumn[];\n onCreate: (input: { type: ViewType; name: string; groupBy?: string }) => Promise<string | null>;\n onClose: () => void;\n}) {\n const [type, setType] = useState<ViewType>('table');\n const [name, setName] = useState('');\n const [layoutProperty, setLayoutProperty] = useState<string | null>(null);\n const [error, setError] = useState<string | null>(null);\n const [busy, setBusy] = useState(false);\n useEffect(() => {\n if (!visible) return;\n setType('table');\n setName('');\n setLayoutProperty(null);\n setError(null);\n }, [visible]);\n const candidates = layoutPropertyCandidates(type, columns);\n const label = VIEW_TYPES.find((v) => v.type === type)?.label ?? 'Table';\n const submit = async () => {\n const result = buildNewView({ type, name: name.trim() || label, layoutProperty }, columns);\n if (!result.ok) {\n setError(result.error);\n return;\n }\n setBusy(true);\n const err = await onCreate(result.input);\n setBusy(false);\n if (err) setError(err);\n else onClose();\n };\n return (\n <Sheet\n visible={visible}\n title=\"New view\"\n palette={palette}\n onClose={onClose}\n left={{ label: 'Create', onPress: submit, disabled: busy }}\n >\n <Label palette={palette}>Name</Label>\n <TextInput\n value={name}\n onChangeText={setName}\n placeholder={label}\n placeholderTextColor={palette.textFaint}\n style={[styles.input, { color: palette.text, backgroundColor: palette.fill }]}\n />\n <Label palette={palette}>Layout</Label>\n <View style={styles.grid}>\n {VIEW_TYPES.map((v) => {\n const on = v.type === type;\n return (\n <Pressable\n key={v.type}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: on }}\n onPress={() => {\n setType(v.type);\n setLayoutProperty(null);\n setError(null);\n }}\n style={[\n styles.tile,\n {\n backgroundColor: on ? palette.primarySoft : palette.card,\n borderColor: on ? palette.primary : palette.hairline,\n },\n ]}\n >\n <Text style={[styles.glyph, { color: on ? palette.primary : palette.textMuted }]}>\n {v.glyph}\n </Text>\n <Text style={[styles.tileLabel, { color: palette.text }]}>{v.label}</Text>\n <Text numberOfLines={2} style={[styles.tileHint, { color: palette.textMuted }]}>\n {v.hint}\n </Text>\n </Pressable>\n );\n })}\n </View>\n {candidates.length ? (\n <>\n <Label palette={palette}>{type === 'board' ? 'Group by' : 'Date property'}</Label>\n <Chips\n palette={palette}\n options={candidates.map((c) => ({ value: c.name, label: c.name }))}\n value={layoutProperty ?? candidates[0]?.name ?? null}\n onChange={setLayoutProperty}\n />\n </>\n ) : null}\n {error ? <Text style={[styles.error, { color: palette.danger }]}>{error}</Text> : null}\n </Sheet>\n );\n}\n\nconst styles = StyleSheet.create({\n content: { padding: 16, paddingBottom: 48, gap: 10 },\n block: { marginBottom: 8 },\n spaced: { marginTop: 8 },\n label: { fontSize: 13, fontWeight: '600', marginTop: 6, textTransform: 'uppercase', letterSpacing: 0.4 },\n row: { flexDirection: 'row', alignItems: 'center', paddingLeft: 14, gap: 12 },\n first: { borderTopLeftRadius: 14, borderTopRightRadius: 14 },\n last: { borderBottomLeftRadius: 14, borderBottomRightRadius: 14 },\n rowBody: { flex: 1, flexDirection: 'row', alignItems: 'center', gap: 8, minHeight: 50, paddingRight: 14 },\n rowLabel: { flex: 1, fontSize: 16 },\n rowDetail: { fontSize: 15, maxWidth: '50%' },\n rowActions: { flexDirection: 'row', alignItems: 'center', gap: 14 },\n chips: { flexDirection: 'row', flexWrap: 'wrap', gap: 8 },\n chip: { paddingHorizontal: 12, paddingVertical: 7, borderRadius: 999 },\n chipText: { fontSize: 14, fontWeight: '600' },\n condition: { borderRadius: 14, padding: 12, gap: 10 },\n conditionHead: { flexDirection: 'row', alignItems: 'center', gap: 8 },\n select: {\n flexShrink: 1,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingHorizontal: 10,\n height: 36,\n borderRadius: 10,\n },\n selectText: { fontSize: 15, flexShrink: 1 },\n input: { minHeight: 44, borderRadius: 12, paddingHorizontal: 12, fontSize: 16 },\n hint: { fontSize: 13 },\n empty: { fontSize: 14, paddingVertical: 8 },\n add: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n height: 46,\n borderRadius: 12,\n marginTop: 4,\n },\n addText: { fontSize: 15, fontWeight: '700' },\n error: { fontSize: 13 },\n grid: { flexDirection: 'row', flexWrap: 'wrap', gap: 10 },\n tile: { width: '31%', flexGrow: 1, padding: 12, borderRadius: 14, borderWidth: 1, gap: 4 },\n glyph: { fontSize: 22 },\n tileLabel: { fontSize: 15, fontWeight: '700' },\n tileHint: { fontSize: 12, lineHeight: 16 },\n});\n"],"names":["_a","_b"],"mappings":"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"}