@adminide-stack/yantra-mobile 12.0.142-alpha.0 → 12.0.144

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 (118) hide show
  1. package/lib/features/attachments/displayUserMessageText.js +2 -2
  2. package/lib/features/attachments/displayUserMessageText.js.map +1 -1
  3. package/lib/features/devices/bodyComposition.js +116 -0
  4. package/lib/features/devices/bodyComposition.js.map +1 -0
  5. package/lib/features/devices/readings.js.map +1 -1
  6. package/lib/features/devices/session.js +22 -2
  7. package/lib/features/devices/session.js.map +1 -1
  8. package/lib/features/notion/NotionAgentPanel.js +987 -0
  9. package/lib/features/notion/NotionAgentPanel.js.map +1 -0
  10. package/lib/features/notion/NotionAskAiSheet.js +362 -0
  11. package/lib/features/notion/NotionAskAiSheet.js.map +1 -0
  12. package/lib/features/notion/NotionBlockView.js +4 -3
  13. package/lib/features/notion/NotionBlockView.js.map +1 -1
  14. package/lib/features/notion/NotionConnectionsSheet.js +47 -13
  15. package/lib/features/notion/NotionConnectionsSheet.js.map +1 -1
  16. package/lib/features/notion/NotionPageView.js +68 -8
  17. package/lib/features/notion/NotionPageView.js.map +1 -1
  18. package/lib/features/notion/NotionSidebarSections.js +1 -1
  19. package/lib/features/notion/NotionSidebarSections.js.map +1 -1
  20. package/lib/features/notion/NotionWorkspaceView.js +14 -9
  21. package/lib/features/notion/NotionWorkspaceView.js.map +1 -1
  22. package/lib/features/notion/database/DatabaseCells.js +3 -1
  23. package/lib/features/notion/database/DatabaseCells.js.map +1 -1
  24. package/lib/features/notion/database/DatabaseDateLayouts.js +1 -1
  25. package/lib/features/notion/database/DatabaseDateLayouts.js.map +1 -1
  26. package/lib/features/notion/database/NotionDatabaseView.js +1 -1
  27. package/lib/features/notion/database/NotionDatabaseView.js.map +1 -1
  28. package/lib/features/notion/notionAgentRunStatus.js +2 -2
  29. package/lib/features/notion/notionAgentRunStatus.js.map +1 -1
  30. package/lib/features/notion/notionAgentRuns.js +57 -0
  31. package/lib/features/notion/notionAgentRuns.js.map +1 -0
  32. package/lib/features/notion/notionAiContext.js +91 -0
  33. package/lib/features/notion/notionAiContext.js.map +1 -0
  34. package/lib/features/notion/notionConnections.js +42 -4
  35. package/lib/features/notion/notionConnections.js.map +1 -1
  36. package/lib/features/notion/notionDocuments.js +61 -1
  37. package/lib/features/notion/notionDocuments.js.map +1 -1
  38. package/lib/features/notion/notionNotesAgent.js +173 -3
  39. package/lib/features/notion/notionNotesAgent.js.map +1 -1
  40. package/lib/features/notion/notionPageKinds.js +1 -1
  41. package/lib/features/webbuilder/WebBuilderExperience.js +229 -97
  42. package/lib/features/webbuilder/WebBuilderExperience.js.map +1 -1
  43. package/lib/features/webbuilder/buildFragments.js +33 -7
  44. package/lib/features/webbuilder/buildFragments.js.map +1 -1
  45. package/lib/features/webbuilder/buildJob.js +2 -2
  46. package/lib/features/webbuilder/buildJob.js.map +1 -1
  47. package/lib/features/webbuilder/codeFiles.js +18 -1
  48. package/lib/features/webbuilder/codeFiles.js.map +1 -1
  49. package/lib/features/webbuilder/components/BottomTabs.js.map +1 -1
  50. package/lib/features/webbuilder/components/CodeView.js +134 -56
  51. package/lib/features/webbuilder/components/CodeView.js.map +1 -1
  52. package/lib/features/webbuilder/components/Composer.js +2 -2
  53. package/lib/features/webbuilder/components/Composer.js.map +1 -1
  54. package/lib/features/webbuilder/components/PreviewFrame.js +19 -3
  55. package/lib/features/webbuilder/components/PreviewFrame.js.map +1 -1
  56. package/lib/features/webbuilder/components/PreviewScreen.js +310 -46
  57. package/lib/features/webbuilder/components/PreviewScreen.js.map +1 -1
  58. package/lib/features/webbuilder/components/ProjectChat.js +141 -12
  59. package/lib/features/webbuilder/components/ProjectChat.js.map +1 -1
  60. package/lib/features/webbuilder/components/ProjectSheets.js +792 -0
  61. package/lib/features/webbuilder/components/ProjectSheets.js.map +1 -0
  62. package/lib/features/webbuilder/components/ProjectsScreen.js +14 -2
  63. package/lib/features/webbuilder/components/ProjectsScreen.js.map +1 -1
  64. package/lib/features/webbuilder/components/PublishSheet.js +914 -58
  65. package/lib/features/webbuilder/components/PublishSheet.js.map +1 -1
  66. package/lib/features/webbuilder/components/TemplateCard.js +9 -6
  67. package/lib/features/webbuilder/components/TemplateCard.js.map +1 -1
  68. package/lib/features/webbuilder/components/TemplatesSheet.js +5 -17
  69. package/lib/features/webbuilder/components/TemplatesSheet.js.map +1 -1
  70. package/lib/features/webbuilder/connectorTemplates.js +171 -0
  71. package/lib/features/webbuilder/connectorTemplates.js.map +1 -0
  72. package/lib/features/webbuilder/fileTree.js +163 -0
  73. package/lib/features/webbuilder/fileTree.js.map +1 -0
  74. package/lib/features/webbuilder/followUps.js +67 -0
  75. package/lib/features/webbuilder/followUps.js.map +1 -0
  76. package/lib/features/webbuilder/previewProbe.js +49 -0
  77. package/lib/features/webbuilder/previewProbe.js.map +1 -0
  78. package/lib/features/webbuilder/previewRoutes.js +156 -0
  79. package/lib/features/webbuilder/previewRoutes.js.map +1 -0
  80. package/lib/features/webbuilder/projectTools.js +341 -0
  81. package/lib/features/webbuilder/projectTools.js.map +1 -0
  82. package/lib/features/webbuilder/publishTools.js +475 -0
  83. package/lib/features/webbuilder/publishTools.js.map +1 -0
  84. package/lib/features/webbuilder/sleepNotice.js +13 -0
  85. package/lib/features/webbuilder/sleepNotice.js.map +1 -0
  86. package/lib/features/webbuilder/stepLabels.js +37 -7
  87. package/lib/features/webbuilder/stepLabels.js.map +1 -1
  88. package/lib/features/webbuilder/studioCatalog.js +5 -1
  89. package/lib/features/webbuilder/studioCatalog.js.map +1 -1
  90. package/lib/features/webbuilder/templateCatalog.js +140 -0
  91. package/lib/features/webbuilder/templateCatalog.js.map +1 -0
  92. package/lib/features/webbuilder/webbuilderPrompts.js +31 -5
  93. package/lib/features/webbuilder/webbuilderPrompts.js.map +1 -1
  94. package/lib/features/webbuilder/workflow.js +8 -4
  95. package/lib/features/webbuilder/workflow.js.map +1 -1
  96. package/lib/screens/Devices/index.js +205 -3
  97. package/lib/screens/Devices/index.js.map +1 -1
  98. package/lib/screens/WebBuilderNative/codeWorkspaceApi.js +9 -6
  99. package/lib/screens/WebBuilderNative/codeWorkspaceApi.js.map +1 -1
  100. package/lib/screens/WebBuilderNative/index.js +1 -1
  101. package/lib/screens/WebBuilderNative/index.js.map +1 -1
  102. package/lib/screens/WebBuilderNative/keepAlive.js +53 -3
  103. package/lib/screens/WebBuilderNative/keepAlive.js.map +1 -1
  104. package/lib/screens/WebBuilderNative/unreachableRetry.js +23 -0
  105. package/lib/screens/WebBuilderNative/unreachableRetry.js.map +1 -0
  106. package/lib/screens/WebBuilderNative/useConnectorTemplates.js +37 -0
  107. package/lib/screens/WebBuilderNative/useConnectorTemplates.js.map +1 -0
  108. package/lib/screens/WebBuilderNative/useSandboxKeepAlive.js +6 -0
  109. package/lib/screens/WebBuilderNative/useSandboxKeepAlive.js.map +1 -1
  110. package/lib/screens/WebBuilderNative/useWebBuilderHost.js +302 -40
  111. package/lib/screens/WebBuilderNative/useWebBuilderHost.js.map +1 -1
  112. package/lib/screens/WebBuilderNative/useWebBuilderJobs.js +2 -2
  113. package/lib/screens/WebBuilderNative/useWebBuilderJobs.js.map +1 -1
  114. package/lib/screens/WebBuilderNative/versionUndo.js +1 -1
  115. package/lib/screens/WebBuilderNative/versionUndo.js.map +1 -1
  116. package/lib/screens/WebBuilderNative/webbuilderTransport.js +147 -77
  117. package/lib/screens/WebBuilderNative/webbuilderTransport.js.map +1 -1
  118. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseDateLayouts.js","sources":["../../../../src/features/notion/database/DatabaseDateLayouts.tsx"],"sourcesContent":["/**\n * Calendar, timeline and chart layouts - the web Database{Calendar,Timeline,Chart}View on a phone.\n *\n * - Calendar: a month grid (or one week, view setting `calendarMode`) of the view's date property;\n * days show their rows as dots, the chosen day lists them below with \"+ New\" on that day; rows\n * with no date are listed after. Week start and weekends follow the view settings.\n * - Timeline: bars on a day axis (Day / Week / Month zoom), scrolled to today; ranges\n * (`{ start, end }`) span their days; rows without a date are listed below.\n * - Chart: vertical / horizontal bars or a donut of rows per group (count or sum of a number\n * property), with the chart settings (`settings.chart`) editable in place.\n */\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Pressable, ScrollView, StyleSheet, Text, useWindowDimensions, View } from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\nimport Svg, { Circle } from 'react-native-svg';\nimport type { NotionPalette } from '../notionTheme';\nimport { textColorOf } from '../notionRichText';\nimport { ui } from '../notionUi';\nimport { CellValue, rowTitle } from './DatabaseCells';\nimport { ChoiceSheet } from './DatabaseSheets';\nimport {\n bucketRowsByDay,\n calendarDateProperty,\n dayLabel,\n dayNumber,\n isSameMonth,\n isWeekend,\n monthGrid,\n monthLabel,\n monthOf,\n readCalendarSettings,\n shiftMonth,\n weekdayLabels,\n weekLabel,\n weekOf,\n type MonthRef,\n} from './databaseCalendar';\nimport { localDayKey, shiftDayKey } from './databaseFilter';\nimport {\n DAY_WIDTH,\n TIMELINE_ZOOMS,\n axisTicks,\n barGeometry,\n dayOffset,\n splitRowsBySpan,\n timelineRange,\n type TimelineZoom,\n} from './databaseTimeline';\nimport {\n CHART_VIEW_KINDS,\n CHART_VIEW_SORTS,\n chartGroupColumns,\n chartValueColumns,\n chartViewItems,\n readChartViewSettings,\n type ChartViewSettings,\n} from './chartView';\nimport { defaultChartColor, formatChartValue } from './chartData';\nimport type { ViewSettings } from './databaseViews';\nimport type { LayoutProps } from './DatabaseLayouts';\nimport type { DatabaseRow } from './useNotionDatabase';\n\ntype Palette = NotionPalette;\n\nexport interface DateLayoutProps extends LayoutProps {\n /** New row with these property values (a calendar day). */\n onAddRowWith: (values: Record<string, unknown>) => void;\n onChangeSettings: (patch: Partial<ViewSettings>) => void;\n rowProps: LayoutProps['columns'];\n}\n\nfunction Segmented<T extends string>({\n palette,\n items,\n value,\n onChange,\n}: {\n palette: Palette;\n items: Array<{ id: T; label: string }>;\n value: T;\n onChange: (id: T) => void;\n}) {\n return (\n <View style={[styles.segmented, { backgroundColor: palette.fill }]}>\n {items.map((it) => {\n const on = it.id === value;\n return (\n <Pressable\n key={it.id}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: on }}\n onPress={() => onChange(it.id)}\n style={[styles.segment, on && { backgroundColor: palette.card }]}\n >\n <Text style={[styles.segmentText, { color: on ? palette.text : palette.textMuted }]}>\n {it.label}\n </Text>\n </Pressable>\n );\n })}\n </View>\n );\n}\n\nfunction RowLine({ p, row }: { p: DateLayoutProps; row: DatabaseRow }) {\n const { palette } = p;\n return (\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel={`Open ${rowTitle(row) || 'Untitled'}`}\n onPress={() => p.onOpenRow(row)}\n onLongPress={() => p.onRowMenu(row)}\n style={({ pressed }) => [\n styles.rowLine,\n { backgroundColor: pressed ? palette.pressed : palette.card, borderColor: palette.hairline },\n ]}\n >\n <Ionicons name=\"document-text-outline\" size={17} color={palette.textMuted} />\n <View style={ui.flex}>\n <Text\n numberOfLines={1}\n style={[styles.rowTitle, { color: rowTitle(row) ? palette.text : palette.textFaint }]}\n >\n {rowTitle(row) || 'Untitled'}\n </Text>\n {p.rowProps.length ? (\n <View style={styles.rowProps}>\n {p.rowProps.map((c) => (\n <CellValue\n key={c.name}\n row={row}\n column={c}\n getValue={p.getValue}\n isDark={p.isDark}\n palette={palette}\n />\n ))}\n </View>\n ) : null}\n </View>\n </Pressable>\n );\n}\n\nfunction NoDateProperty({ palette, what }: { palette: Palette; what: string }) {\n return (\n <View style={styles.emptyLayout}>\n <Ionicons name=\"calendar-outline\" size={34} color={palette.textFaint} />\n <Text style={[styles.emptyTitle, { color: palette.text }]}>{`A ${what} needs a Date property`}</Text>\n <Text style={[styles.emptyText, { color: palette.textMuted }]}>\n Add a Date property under Properties, then pick it in View options.\n </Text>\n </View>\n );\n}\n\n// ---- Calendar ------------------------------------------------------------------------------\n\nexport function CalendarLayout(p: DateLayoutProps) {\n const { palette } = p;\n const column = useMemo(() => calendarDateProperty(p.allColumns, p.groupBy), [p.allColumns, p.groupBy]);\n const cal = readCalendarSettings(p.settings);\n const today = localDayKey(new Date());\n const [month, setMonth] = useState<MonthRef>(() => monthOf(new Date()));\n const [day, setDay] = useState(today);\n const buckets = useMemo(\n () => (column ? bucketRowsByDay(p.rows, column, p.getValue) : null),\n [column, p.getValue, p.rows],\n );\n if (!column || !buckets) return <NoDateProperty palette={palette} what=\"calendar\" />;\n\n const weekdays = weekdayLabels(cal.weekStartsOn, 'narrow');\n const weeks = cal.mode === 'week' ? [weekOf(day, cal.weekStartsOn)] : monthGrid(month, cal.weekStartsOn);\n const keep = (d: string) => cal.showWeekends || !isWeekend(d);\n const dayRows = buckets.byDay.get(day) ?? [];\n const editable = column.type === 'date';\n\n const go = (delta: number) => {\n if (cal.mode === 'week') {\n const next = shiftDayKey(day, delta * 7);\n setDay(next);\n setMonth(monthOf(new Date(`${next}T12:00:00`)));\n } else setMonth((m) => shiftMonth(m, delta));\n };\n\n return (\n <ScrollView contentContainerStyle={styles.calendar}>\n <View style={styles.calHead}>\n <Text style={[styles.calTitle, { color: palette.text }]}>\n {cal.mode === 'week' ? weekLabel(weeks[0]) : monthLabel(month)}\n </Text>\n <View style={ui.flex} />\n <Pressable accessibilityLabel=\"Previous\" onPress={() => go(-1)} hitSlop={8} style={styles.navBtn}>\n <Ionicons name=\"chevron-back\" size={20} color={palette.text} />\n </Pressable>\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => {\n setMonth(monthOf(new Date()));\n setDay(today);\n }}\n style={[styles.todayBtn, { backgroundColor: palette.fill }]}\n >\n <Text style={[styles.todayText, { color: palette.text }]}>Today</Text>\n </Pressable>\n <Pressable accessibilityLabel=\"Next\" onPress={() => go(1)} hitSlop={8} style={styles.navBtn}>\n <Ionicons name=\"chevron-forward\" size={20} color={palette.text} />\n </Pressable>\n </View>\n <View style={styles.modeRow}>\n <Segmented\n palette={palette}\n items={[\n { id: 'month', label: 'Month' },\n { id: 'week', label: 'Week' },\n ]}\n value={cal.mode}\n onChange={(mode) => p.onChangeSettings({ calendarMode: mode === 'week' ? 'week' : undefined })}\n />\n </View>\n <View style={styles.weekRow}>\n {weeks[0]\n .map((d, i) => ({ d, i }))\n .filter(({ d }) => keep(d))\n .map(({ i }) => (\n <Text key={i} style={[styles.weekday, { color: palette.textMuted }]}>\n {weekdays[i]}\n </Text>\n ))}\n </View>\n {weeks.map((week) => (\n <View key={week[0]} style={styles.weekRow}>\n {week\n .filter((d) => keep(d))\n .map((d) => {\n const rows = buckets.byDay.get(d) ?? [];\n const on = d === day;\n const isToday = d === today;\n const dim = cal.mode === 'month' && !isSameMonth(d, month);\n return (\n <Pressable\n key={d}\n accessibilityRole=\"button\"\n accessibilityLabel={`${dayLabel(d)}, ${rows.length} ${rows.length === 1 ? 'row' : 'rows'}`}\n accessibilityState={{ selected: on }}\n onPress={() => setDay(d)}\n style={[styles.dayCell, on && { backgroundColor: palette.primarySoft }]}\n >\n <View style={[styles.dayNum, isToday && { backgroundColor: palette.primary }]}>\n <Text\n style={[\n styles.dayNumText,\n {\n color: isToday\n ? palette.onPrimary\n : dim\n ? palette.textFaint\n : palette.text,\n },\n ]}\n >\n {dayNumber(d)}\n </Text>\n </View>\n <View style={styles.dots}>\n {rows.slice(0, 3).map((r) => (\n <View\n key={r.id}\n style={[styles.dot, { backgroundColor: palette.primary }]}\n />\n ))}\n </View>\n {rows.length > 3 ? (\n <Text\n style={[styles.more, { color: palette.textMuted }]}\n >{`+${rows.length - 3}`}</Text>\n ) : null}\n </Pressable>\n );\n })}\n </View>\n ))}\n\n <View style={styles.dayHead}>\n <Text style={[styles.dayTitle, { color: palette.text }]}>{dayLabel(day)}</Text>\n {editable ? (\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => p.onAddRowWith({ [column.name]: day })}\n style={[styles.addSmall, { backgroundColor: palette.primarySoft }]}\n >\n <Ionicons name=\"add\" size={16} color={palette.primary} />\n <Text style={[styles.addSmallText, { color: palette.primary }]}>New</Text>\n </Pressable>\n ) : null}\n </View>\n {dayRows.length ? (\n dayRows.map((r) => <RowLine key={r.id} p={p} row={r} />)\n ) : (\n <Text style={[styles.none, { color: palette.textMuted }]}>Nothing on this day.</Text>\n )}\n {buckets.undated.length ? (\n <>\n <Text\n style={[styles.section, { color: palette.textMuted }]}\n >{`No ${column.name} · ${buckets.undated.length}`}</Text>\n {buckets.undated.map((r) => (\n <RowLine key={r.id} p={p} row={r} />\n ))}\n </>\n ) : null}\n </ScrollView>\n );\n}\n\n// ---- Timeline -------------------------------------------------------------------------------\n\nconst BAR_HEIGHT = 30;\nconst LANE = 42;\n\nexport function TimelineLayout(p: DateLayoutProps) {\n const { palette } = p;\n const { width } = useWindowDimensions();\n const column = useMemo(() => calendarDateProperty(p.allColumns, p.groupBy), [p.allColumns, p.groupBy]);\n const [zoom, setZoom] = useState<TimelineZoom>('week');\n const today = localDayKey(new Date());\n const split = useMemo(\n () => (column ? splitRowsBySpan(p.rows, column, p.getValue) : null),\n [column, p.getValue, p.rows],\n );\n const range = useMemo(\n () => timelineRange(split?.dated.map((d) => d.span) ?? [], today, zoom),\n [split, today, zoom],\n );\n const dw = DAY_WIDTH[zoom];\n const ticks = useMemo(() => axisTicks(range, zoom), [range, zoom]);\n const scroller = useRef<ScrollView>(null);\n useEffect(() => {\n const x = Math.max(0, dayOffset(range, today) * dw - width / 3);\n const t = setTimeout(() => scroller.current?.scrollTo({ x, animated: false }), 0);\n return () => clearTimeout(t);\n }, [dw, range, today, width]);\n\n if (!column || !split) return <NoDateProperty palette={palette} what=\"timeline\" />;\n const contentWidth = range.days * dw;\n const todayX = dayOffset(range, today) * dw;\n\n return (\n <ScrollView contentContainerStyle={styles.timelineWrap}>\n <View style={styles.modeRow}>\n <Segmented palette={palette} items={TIMELINE_ZOOMS} value={zoom} onChange={setZoom} />\n <View style={ui.flex} />\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => scroller.current?.scrollTo({ x: Math.max(0, todayX - width / 3), animated: true })}\n style={[styles.todayBtn, { backgroundColor: palette.fill }]}\n >\n <Text style={[styles.todayText, { color: palette.text }]}>Today</Text>\n </Pressable>\n </View>\n <ScrollView ref={scroller} horizontal showsHorizontalScrollIndicator={false}>\n <View style={{ width: contentWidth }}>\n <View style={[styles.axis, { borderBottomColor: palette.hairline }]}>\n {ticks.map((t) => (\n <View key={t.day} style={[styles.tick, { left: t.offset * dw }]}>\n {t.major ? (\n <Text numberOfLines={1} style={[styles.tickMajor, { color: palette.text }]}>\n {t.major}\n </Text>\n ) : (\n <View style={styles.tickSpacer} />\n )}\n <Text style={[styles.tickLabel, { color: palette.textMuted }]}>{t.label}</Text>\n </View>\n ))}\n </View>\n <View style={{ height: Math.max(split.dated.length * LANE + 16, 120) }}>\n <View style={[styles.todayLine, { left: todayX, backgroundColor: palette.primary }]} />\n {split.dated.map(({ row, span }, i) => {\n const g = barGeometry(range, span, dw);\n const title = rowTitle(row) || 'Untitled';\n const inside = g.width > 90;\n return (\n <Pressable\n key={row.id}\n accessibilityRole=\"button\"\n accessibilityLabel={`Open ${title}`}\n onPress={() => p.onOpenRow(row)}\n onLongPress={() => p.onRowMenu(row)}\n style={[styles.barLane, { top: 8 + i * LANE, left: g.left }]}\n >\n <View\n style={[\n styles.bar,\n {\n width: Math.max(g.width, 8),\n backgroundColor: palette.primarySoft,\n borderColor: palette.primary,\n },\n ]}\n >\n {inside ? (\n <Text numberOfLines={1} style={[styles.barText, { color: palette.text }]}>\n {title}\n </Text>\n ) : null}\n </View>\n {!inside ? (\n <Text numberOfLines={1} style={[styles.barOutside, { color: palette.text }]}>\n {title}\n </Text>\n ) : null}\n </Pressable>\n );\n })}\n </View>\n </View>\n </ScrollView>\n {split.undated.length ? (\n <View style={styles.undated}>\n <Text\n style={[styles.section, { color: palette.textMuted }]}\n >{`No ${column.name} · ${split.undated.length}`}</Text>\n {split.undated.map((r) => (\n <RowLine key={r.id} p={p} row={r} />\n ))}\n </View>\n ) : null}\n </ScrollView>\n );\n}\n\n// ---- Chart ----------------------------------------------------------------------------------\n\nfunction chartColor(color: string | undefined, index: number, isDark: boolean): string {\n if (color && color.startsWith('#')) return color;\n return (color && textColorOf(color, isDark)) || defaultChartColor(index);\n}\n\nexport function ChartLayout(p: DateLayoutProps) {\n const { palette } = p;\n const { width } = useWindowDimensions();\n const s = readChartViewSettings(p.settings, p.allColumns);\n const items = useMemo(\n () => chartViewItems(p.rows, p.allColumns, p.getValue, s),\n [p.allColumns, p.getValue, p.rows, s],\n );\n const groups = chartGroupColumns(p.allColumns);\n const values = chartValueColumns(p.allColumns);\n const [picker, setPicker] = useState<'kind' | 'group' | 'measure' | 'sort' | null>(null);\n const set = (patch: Partial<ChartViewSettings>) =>\n p.onChangeSettings({ chart: { ...((p.settings.chart as object) ?? {}), ...s, ...patch } });\n const max = Math.max(1, ...items.map((i) => i.value));\n const total = items.reduce((n, i) => n + i.value, 0);\n\n const control = (label: string, value: string, which: typeof picker) => (\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => setPicker(which)}\n style={[styles.control, { backgroundColor: palette.fill }]}\n >\n <Text style={[styles.controlLabel, { color: palette.textMuted }]}>{label}</Text>\n <Text numberOfLines={1} style={[styles.controlValue, { color: palette.text }]}>\n {value}\n </Text>\n <Ionicons name=\"chevron-down\" size={13} color={palette.textMuted} />\n </Pressable>\n );\n\n if (!groups.length) {\n return (\n <View style={styles.emptyLayout}>\n <Ionicons name=\"bar-chart-outline\" size={34} color={palette.textFaint} />\n <Text style={[styles.emptyTitle, { color: palette.text }]}>Nothing to chart yet</Text>\n <Text style={[styles.emptyText, { color: palette.textMuted }]}>\n A chart groups rows by a Select, Status, Person, Date or Checkbox property.\n </Text>\n </View>\n );\n }\n\n const plotWidth = width - 32;\n const donut = 180;\n const r = 70;\n const circ = 2 * Math.PI * r;\n let acc = 0;\n\n return (\n <ScrollView contentContainerStyle={styles.chart}>\n <ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={styles.controls}>\n {control('Chart', CHART_VIEW_KINDS.find((k) => k.kind === s.kind)?.label ?? s.kind, 'kind')}\n {control('Group by', s.groupBy || 'None', 'group')}\n {control(\n 'Value',\n s.aggregate === 'sum' && s.valueProperty ? `Sum of ${s.valueProperty}` : 'Count',\n 'measure',\n )}\n {control('Sort', CHART_VIEW_SORTS.find((x) => x.sort === s.sort)?.label ?? '', 'sort')}\n </ScrollView>\n {!items.length ? (\n <Text style={[styles.none, { color: palette.textMuted }]}>No rows to chart.</Text>\n ) : s.kind === 'donut' ? (\n <View style={styles.donutWrap}>\n <View>\n <Svg width={donut} height={donut}>\n <Circle\n cx={donut / 2}\n cy={donut / 2}\n r={r}\n stroke={palette.fill}\n strokeWidth={26}\n fill=\"none\"\n />\n {items.map((it, i) => {\n const len = total ? (it.value / total) * circ : 0;\n const el = (\n <Circle\n key={it.label}\n cx={donut / 2}\n cy={donut / 2}\n r={r}\n stroke={chartColor(it.color, i, p.isDark)}\n strokeWidth={26}\n fill=\"none\"\n strokeDasharray={`${len} ${circ - len}`}\n strokeDashoffset={-acc}\n rotation={-90}\n origin={`${donut / 2}, ${donut / 2}`}\n />\n );\n acc += len;\n return el;\n })}\n </Svg>\n <View style={styles.donutCenter} pointerEvents=\"none\">\n <Text style={[styles.donutTotal, { color: palette.text }]}>{formatChartValue(total)}</Text>\n <Text style={[styles.donutLabel, { color: palette.textMuted }]}>\n {s.aggregate === 'sum' ? 'Total' : 'Rows'}\n </Text>\n </View>\n </View>\n <View style={styles.legend}>\n {items.map((it, i) => (\n <View key={it.label} style={styles.legendRow}>\n <View style={[styles.swatch, { backgroundColor: chartColor(it.color, i, p.isDark) }]} />\n <Text numberOfLines={1} style={[styles.legendLabel, { color: palette.text }]}>\n {it.label}\n </Text>\n <Text style={[styles.legendValue, { color: palette.textMuted }]}>\n {formatChartValue(it.value)}\n </Text>\n </View>\n ))}\n </View>\n </View>\n ) : s.kind === 'bar' ? (\n <View style={styles.bars}>\n {items.map((it, i) => (\n <View key={it.label} style={styles.hBarRow}>\n <Text numberOfLines={1} style={[styles.hBarLabel, { color: palette.text }]}>\n {it.label}\n </Text>\n <View style={[styles.hBarTrack, { backgroundColor: palette.fill }]}>\n <View\n style={[\n styles.hBarFill,\n {\n width: `${(it.value / max) * 100}%`,\n backgroundColor: chartColor(it.color, i, p.isDark),\n },\n ]}\n />\n </View>\n <Text style={[styles.hBarValue, { color: palette.textMuted }]}>\n {formatChartValue(it.value)}\n </Text>\n </View>\n ))}\n </View>\n ) : (\n <ScrollView horizontal showsHorizontalScrollIndicator={false}>\n <View style={[styles.columns, { minWidth: plotWidth }]}>\n {items.map((it, i) => (\n <View key={it.label} style={styles.column}>\n <Text style={[styles.colValue, { color: palette.textMuted }]}>\n {formatChartValue(it.value)}\n </Text>\n <View\n style={[\n styles.colBar,\n {\n height: Math.max(4, (it.value / max) * 200),\n backgroundColor: chartColor(it.color, i, p.isDark),\n },\n ]}\n />\n <Text numberOfLines={2} style={[styles.colLabel, { color: palette.text }]}>\n {it.label}\n </Text>\n </View>\n ))}\n </View>\n </ScrollView>\n )}\n <ChoiceSheet\n visible={picker === 'kind'}\n title=\"Chart\"\n palette={palette}\n value={s.kind}\n choices={CHART_VIEW_KINDS.map((k) => ({ value: k.kind, label: k.label }))}\n onClose={() => setPicker(null)}\n onPick={(kind) => {\n setPicker(null);\n set({ kind });\n }}\n />\n <ChoiceSheet\n visible={picker === 'group'}\n title=\"Group by\"\n palette={palette}\n value={s.groupBy}\n choices={groups.map((c) => ({ value: c.name, label: c.name }))}\n onClose={() => setPicker(null)}\n onPick={(groupBy) => {\n setPicker(null);\n set({ groupBy });\n }}\n />\n <ChoiceSheet\n visible={picker === 'measure'}\n title=\"Value\"\n palette={palette}\n value={s.aggregate === 'sum' && s.valueProperty ? `sum:${s.valueProperty}` : 'count'}\n choices={[\n { value: 'count', label: 'Count rows' },\n ...values.map((c) => ({ value: `sum:${c.name}`, label: `Sum of ${c.name}` })),\n ]}\n onClose={() => setPicker(null)}\n onPick={(v) => {\n setPicker(null);\n if (v === 'count') set({ aggregate: 'count' });\n else set({ aggregate: 'sum', valueProperty: v.slice(4) });\n }}\n />\n <ChoiceSheet\n visible={picker === 'sort'}\n title=\"Sort\"\n palette={palette}\n value={s.sort}\n choices={CHART_VIEW_SORTS.map((x) => ({ value: x.sort, label: x.label }))}\n onClose={() => setPicker(null)}\n onPick={(sort) => {\n setPicker(null);\n set({ sort });\n }}\n />\n </ScrollView>\n );\n}\n\nconst styles = StyleSheet.create({\n segmented: { flexDirection: 'row', borderRadius: 10, padding: 2 },\n segment: { paddingHorizontal: 12, height: 30, borderRadius: 8, alignItems: 'center', justifyContent: 'center' },\n segmentText: { fontSize: 13, fontWeight: '600' },\n calendar: { padding: 12, paddingBottom: 48 },\n calHead: { flexDirection: 'row', alignItems: 'center', gap: 6, marginBottom: 8 },\n calTitle: { fontSize: 19, fontWeight: '800' },\n navBtn: { padding: 6 },\n todayBtn: { paddingHorizontal: 12, height: 32, borderRadius: 10, justifyContent: 'center' },\n todayText: { fontSize: 14, fontWeight: '600' },\n modeRow: { flexDirection: 'row', alignItems: 'center', marginBottom: 10 },\n weekRow: { flexDirection: 'row' },\n weekday: { flex: 1, textAlign: 'center', fontSize: 12, fontWeight: '600', paddingVertical: 4 },\n dayCell: { flex: 1, alignItems: 'center', paddingVertical: 6, minHeight: 56, borderRadius: 10 },\n dayNum: { width: 28, height: 28, borderRadius: 14, alignItems: 'center', justifyContent: 'center' },\n dayNumText: { fontSize: 15, fontWeight: '600' },\n dots: { flexDirection: 'row', gap: 3, marginTop: 4, height: 6 },\n dot: { width: 6, height: 6, borderRadius: 3 },\n more: { fontSize: 10, marginTop: 1 },\n dayHead: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginTop: 16,\n marginBottom: 8,\n },\n dayTitle: { fontSize: 16, fontWeight: '700' },\n addSmall: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n paddingHorizontal: 10,\n height: 30,\n borderRadius: 9,\n },\n addSmallText: { fontSize: 14, fontWeight: '700' },\n none: { fontSize: 14, paddingVertical: 12, textAlign: 'center' },\n section: {\n fontSize: 13,\n fontWeight: '700',\n marginTop: 18,\n marginBottom: 8,\n textTransform: 'uppercase',\n letterSpacing: 0.4,\n },\n rowLine: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 10,\n padding: 12,\n borderRadius: 12,\n borderWidth: StyleSheet.hairlineWidth,\n marginBottom: 8,\n },\n rowTitle: { fontSize: 15, fontWeight: '600' },\n rowProps: { flexDirection: 'row', flexWrap: 'wrap', gap: 6, marginTop: 4 },\n emptyLayout: { flex: 1, alignItems: 'center', justifyContent: 'center', padding: 32, gap: 8 },\n emptyTitle: { fontSize: 17, fontWeight: '700', textAlign: 'center' },\n emptyText: { fontSize: 14, textAlign: 'center', lineHeight: 20 },\n timelineWrap: { paddingVertical: 12, paddingBottom: 48 },\n axis: { height: 44, borderBottomWidth: StyleSheet.hairlineWidth },\n tick: { position: 'absolute', top: 2 },\n tickMajor: { fontSize: 12, fontWeight: '700', width: 120 },\n tickSpacer: { height: 16 },\n tickLabel: { fontSize: 11, marginTop: 2 },\n todayLine: { position: 'absolute', top: 0, bottom: 0, width: 2, opacity: 0.6 },\n barLane: { position: 'absolute', flexDirection: 'row', alignItems: 'center', height: BAR_HEIGHT },\n bar: { height: BAR_HEIGHT, borderRadius: 8, borderWidth: 1, justifyContent: 'center', paddingHorizontal: 8 },\n barText: { fontSize: 13, fontWeight: '600' },\n barOutside: { fontSize: 13, fontWeight: '600', marginLeft: 6, maxWidth: 220 },\n undated: { paddingHorizontal: 12 },\n chart: { padding: 16, paddingBottom: 48, gap: 16 },\n controls: { gap: 8 },\n control: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingHorizontal: 10,\n height: 34,\n borderRadius: 10,\n },\n controlLabel: { fontSize: 12, fontWeight: '600' },\n controlValue: { fontSize: 14, fontWeight: '600', maxWidth: 160 },\n donutWrap: { alignItems: 'center', gap: 16 },\n donutCenter: { ...StyleSheet.absoluteFillObject, alignItems: 'center', justifyContent: 'center' },\n donutTotal: { fontSize: 24, fontWeight: '800' },\n donutLabel: { fontSize: 12 },\n legend: { alignSelf: 'stretch', gap: 8 },\n legendRow: { flexDirection: 'row', alignItems: 'center', gap: 10 },\n swatch: { width: 12, height: 12, borderRadius: 3 },\n legendLabel: { flex: 1, fontSize: 15 },\n legendValue: { fontSize: 14, fontVariant: ['tabular-nums'] },\n bars: { gap: 12 },\n hBarRow: { flexDirection: 'row', alignItems: 'center', gap: 10 },\n hBarLabel: { width: 96, fontSize: 14 },\n hBarTrack: { flex: 1, height: 22, borderRadius: 6, overflow: 'hidden' },\n hBarFill: { height: '100%', borderRadius: 6 },\n hBarValue: { width: 48, textAlign: 'right', fontSize: 13, fontVariant: ['tabular-nums'] },\n columns: { flexDirection: 'row', alignItems: 'flex-end', gap: 14, height: 260, paddingTop: 12 },\n column: { width: 56, alignItems: 'center', justifyContent: 'flex-end' },\n colValue: { fontSize: 12, marginBottom: 4, fontVariant: ['tabular-nums'] },\n colBar: { width: 36, borderTopLeftRadius: 8, borderTopRightRadius: 8 },\n colLabel: { fontSize: 12, marginTop: 6, textAlign: 'center' },\n});\n"],"names":["_a","formatChartValue"],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseDateLayouts.js","sources":["../../../../src/features/notion/database/DatabaseDateLayouts.tsx"],"sourcesContent":["/**\n * Calendar, timeline and chart layouts - the web Database{Calendar,Timeline,Chart}View on a phone.\n *\n * - Calendar: a month grid (or one week, view setting `calendarMode`) of the view's date property;\n * days show their rows as dots, the chosen day lists them below with \"+ New\" on that day; rows\n * with no date are listed after. Week start and weekends follow the view settings.\n * - Timeline: bars on a day axis (Day / Week / Month zoom), scrolled to today; ranges\n * (`{ start, end }`) span their days; rows without a date are listed below.\n * - Chart: vertical / horizontal bars or a donut of rows per group (count or sum of a number\n * property), with the chart settings (`settings.chart`) editable in place.\n */\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Pressable, ScrollView, StyleSheet, Text, useWindowDimensions, View } from 'react-native';\nimport { Ionicons } from '@expo/vector-icons';\nimport Svg, { Circle } from 'react-native-svg';\nimport type { NotionPalette } from '../notionTheme';\nimport { textColorOf } from '../notionRichText';\nimport { ui } from '../notionUi';\nimport { CellValue, rowTitle } from './DatabaseCells';\nimport { ChoiceSheet } from './DatabaseSheets';\nimport {\n bucketRowsByDay,\n calendarDateProperty,\n dayLabel,\n dayNumber,\n isSameMonth,\n isWeekend,\n monthGrid,\n monthLabel,\n monthOf,\n readCalendarSettings,\n shiftMonth,\n weekdayLabels,\n weekLabel,\n weekOf,\n type MonthRef,\n} from './databaseCalendar';\nimport { localDayKey, shiftDayKey } from './databaseFilter';\nimport {\n DAY_WIDTH,\n TIMELINE_ZOOMS,\n axisTicks,\n barGeometry,\n dayOffset,\n splitRowsBySpan,\n timelineRange,\n type TimelineZoom,\n} from './databaseTimeline';\nimport {\n CHART_VIEW_KINDS,\n CHART_VIEW_SORTS,\n chartGroupColumns,\n chartValueColumns,\n chartViewItems,\n readChartViewSettings,\n type ChartViewSettings,\n} from './chartView';\nimport { defaultChartColor, formatChartValue } from './chartData';\nimport type { ViewSettings } from './databaseViews';\nimport type { LayoutProps } from './DatabaseLayouts';\nimport type { DatabaseRow } from './useNotionDatabase';\n\ntype Palette = NotionPalette;\n\nexport interface DateLayoutProps extends LayoutProps {\n /** New row with these property values (a calendar day). */\n onAddRowWith: (values: Record<string, unknown>) => void;\n onChangeSettings: (patch: Partial<ViewSettings>) => void;\n rowProps: LayoutProps['columns'];\n}\n\nfunction Segmented<T extends string>({\n palette,\n items,\n value,\n onChange,\n}: {\n palette: Palette;\n items: Array<{ id: T; label: string }>;\n value: T;\n onChange: (id: T) => void;\n}) {\n return (\n <View style={[styles.segmented, { backgroundColor: palette.fill }]}>\n {items.map((it) => {\n const on = it.id === value;\n return (\n <Pressable\n key={it.id}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: on }}\n onPress={() => onChange(it.id)}\n style={[styles.segment, on && { backgroundColor: palette.card }]}\n >\n <Text style={[styles.segmentText, { color: on ? palette.text : palette.textMuted }]}>\n {it.label}\n </Text>\n </Pressable>\n );\n })}\n </View>\n );\n}\n\nfunction RowLine({ p, row }: { p: DateLayoutProps; row: DatabaseRow }) {\n const { palette } = p;\n return (\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel={`Open ${rowTitle(row) || 'Untitled'}`}\n onPress={() => p.onOpenRow(row)}\n onLongPress={() => p.onRowMenu(row)}\n style={({ pressed }) => [\n styles.rowLine,\n { backgroundColor: pressed ? palette.pressed : palette.card, borderColor: palette.hairline },\n ]}\n >\n <Ionicons name=\"document-text-outline\" size={17} color={palette.textMuted} />\n <View style={ui.flex}>\n <Text\n numberOfLines={1}\n style={[styles.rowTitle, { color: rowTitle(row) ? palette.text : palette.textFaint }]}\n >\n {rowTitle(row) || 'Untitled'}\n </Text>\n {p.rowProps.length ? (\n <View style={styles.rowProps}>\n {p.rowProps.map((c) => (\n <CellValue\n key={c.name}\n row={row}\n column={c}\n getValue={p.getValue}\n isDark={p.isDark}\n palette={palette}\n />\n ))}\n </View>\n ) : null}\n </View>\n </Pressable>\n );\n}\n\nfunction NoDateProperty({ palette, what }: { palette: Palette; what: string }) {\n return (\n <View style={styles.emptyLayout}>\n <Ionicons name=\"calendar-outline\" size={34} color={palette.textFaint} />\n <Text style={[styles.emptyTitle, { color: palette.text }]}>{`A ${what} needs a Date property`}</Text>\n <Text style={[styles.emptyText, { color: palette.textMuted }]}>\n Add a Date property under Properties, then pick it in View options.\n </Text>\n </View>\n );\n}\n\n// ---- Calendar ------------------------------------------------------------------------------\n\nexport function CalendarLayout(p: DateLayoutProps) {\n const { palette } = p;\n const column = useMemo(() => calendarDateProperty(p.allColumns, p.groupBy), [p.allColumns, p.groupBy]);\n const cal = readCalendarSettings(p.settings);\n const today = localDayKey(new Date());\n const [month, setMonth] = useState<MonthRef>(() => monthOf(new Date()));\n const [day, setDay] = useState(today);\n const buckets = useMemo(\n () => (column ? bucketRowsByDay(p.rows, column, p.getValue) : null),\n [column, p.getValue, p.rows],\n );\n if (!column || !buckets) return <NoDateProperty palette={palette} what=\"calendar\" />;\n\n const weekdays = weekdayLabels(cal.weekStartsOn, 'narrow');\n const weeks = cal.mode === 'week' ? [weekOf(day, cal.weekStartsOn)] : monthGrid(month, cal.weekStartsOn);\n const keep = (d: string) => cal.showWeekends || !isWeekend(d);\n const dayRows = buckets.byDay.get(day) ?? [];\n const editable = column.type === 'date';\n\n const go = (delta: number) => {\n if (cal.mode === 'week') {\n const next = shiftDayKey(day, delta * 7);\n setDay(next);\n setMonth(monthOf(new Date(`${next}T12:00:00`)));\n } else setMonth((m) => shiftMonth(m, delta));\n };\n\n return (\n <ScrollView contentContainerStyle={styles.calendar}>\n <View style={styles.calHead}>\n <Text style={[styles.calTitle, { color: palette.text }]}>\n {cal.mode === 'week' ? weekLabel(weeks[0]) : monthLabel(month)}\n </Text>\n <View style={ui.flex} />\n <Pressable accessibilityLabel=\"Previous\" onPress={() => go(-1)} hitSlop={8} style={styles.navBtn}>\n <Ionicons name=\"chevron-back\" size={20} color={palette.text} />\n </Pressable>\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => {\n setMonth(monthOf(new Date()));\n setDay(today);\n }}\n style={[styles.todayBtn, { backgroundColor: palette.fill }]}\n >\n <Text style={[styles.todayText, { color: palette.text }]}>Today</Text>\n </Pressable>\n <Pressable accessibilityLabel=\"Next\" onPress={() => go(1)} hitSlop={8} style={styles.navBtn}>\n <Ionicons name=\"chevron-forward\" size={20} color={palette.text} />\n </Pressable>\n </View>\n <View style={styles.modeRow}>\n <Segmented\n palette={palette}\n items={[\n { id: 'month', label: 'Month' },\n { id: 'week', label: 'Week' },\n ]}\n value={cal.mode}\n onChange={(mode) => p.onChangeSettings({ calendarMode: mode === 'week' ? 'week' : undefined })}\n />\n </View>\n <View style={styles.weekRow}>\n {weeks[0]\n .map((d, i) => ({ d, i }))\n .filter(({ d }) => keep(d))\n .map(({ i }) => (\n <Text key={i} style={[styles.weekday, { color: palette.textMuted }]}>\n {weekdays[i]}\n </Text>\n ))}\n </View>\n {weeks.map((week) => (\n <View key={week[0]} style={styles.weekRow}>\n {week\n .filter((d) => keep(d))\n .map((d) => {\n const rows = buckets.byDay.get(d) ?? [];\n const on = d === day;\n const isToday = d === today;\n const dim = cal.mode === 'month' && !isSameMonth(d, month);\n return (\n <Pressable\n key={d}\n accessibilityRole=\"button\"\n accessibilityLabel={`${dayLabel(d)}, ${rows.length} ${rows.length === 1 ? 'row' : 'rows'}`}\n accessibilityState={{ selected: on }}\n onPress={() => setDay(d)}\n style={[styles.dayCell, on && { backgroundColor: palette.primarySoft }]}\n >\n <View style={[styles.dayNum, isToday && { backgroundColor: palette.primary }]}>\n <Text\n style={[\n styles.dayNumText,\n {\n color: isToday\n ? palette.onPrimary\n : dim\n ? palette.textFaint\n : palette.text,\n },\n ]}\n >\n {dayNumber(d)}\n </Text>\n </View>\n <View style={styles.dots}>\n {rows.slice(0, 3).map((r) => (\n <View\n key={r.id}\n style={[styles.dot, { backgroundColor: palette.primary }]}\n />\n ))}\n </View>\n {rows.length > 3 ? (\n <Text\n style={[styles.more, { color: palette.textMuted }]}\n >{`+${rows.length - 3}`}</Text>\n ) : null}\n </Pressable>\n );\n })}\n </View>\n ))}\n\n <View style={styles.dayHead}>\n <Text style={[styles.dayTitle, { color: palette.text }]}>{dayLabel(day)}</Text>\n {editable ? (\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => p.onAddRowWith({ [column.name]: day })}\n style={[styles.addSmall, { backgroundColor: palette.primarySoft }]}\n >\n <Ionicons name=\"add\" size={16} color={palette.primary} />\n <Text style={[styles.addSmallText, { color: palette.primary }]}>New</Text>\n </Pressable>\n ) : null}\n </View>\n {dayRows.length ? (\n dayRows.map((r) => <RowLine key={r.id} p={p} row={r} />)\n ) : (\n <Text style={[styles.none, { color: palette.textMuted }]}>Nothing on this day.</Text>\n )}\n {buckets.undated.length ? (\n <>\n <Text\n style={[styles.section, { color: palette.textMuted }]}\n >{`No ${column.name} · ${buckets.undated.length}`}</Text>\n {buckets.undated.map((r) => (\n <RowLine key={r.id} p={p} row={r} />\n ))}\n </>\n ) : null}\n </ScrollView>\n );\n}\n\n// ---- Timeline -------------------------------------------------------------------------------\n\nconst BAR_HEIGHT = 30;\nconst LANE = 42;\n\nexport function TimelineLayout(p: DateLayoutProps) {\n const { palette } = p;\n const { width } = useWindowDimensions();\n const column = useMemo(() => calendarDateProperty(p.allColumns, p.groupBy), [p.allColumns, p.groupBy]);\n const [zoom, setZoom] = useState<TimelineZoom>('week');\n const today = localDayKey(new Date());\n const split = useMemo(\n () => (column ? splitRowsBySpan(p.rows, column, p.getValue) : null),\n [column, p.getValue, p.rows],\n );\n const range = useMemo(\n () => timelineRange(split?.dated.map((d) => d.span) ?? [], today, zoom),\n [split, today, zoom],\n );\n const dw = DAY_WIDTH[zoom];\n const ticks = useMemo(() => axisTicks(range, zoom), [range, zoom]);\n const scroller = useRef<ScrollView>(null);\n useEffect(() => {\n const x = Math.max(0, dayOffset(range, today) * dw - width / 3);\n const t = setTimeout(() => scroller.current?.scrollTo({ x, animated: false }), 0);\n return () => clearTimeout(t);\n }, [dw, range, today, width]);\n\n if (!column || !split) return <NoDateProperty palette={palette} what=\"timeline\" />;\n const contentWidth = range.days * dw;\n const todayX = dayOffset(range, today) * dw;\n\n return (\n <ScrollView contentContainerStyle={styles.timelineWrap}>\n <View style={styles.modeRow}>\n <Segmented\n palette={palette}\n items={TIMELINE_ZOOMS}\n value={zoom}\n onChange={(z) => setZoom(z as TimelineZoom)}\n />\n <View style={ui.flex} />\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => scroller.current?.scrollTo({ x: Math.max(0, todayX - width / 3), animated: true })}\n style={[styles.todayBtn, { backgroundColor: palette.fill }]}\n >\n <Text style={[styles.todayText, { color: palette.text }]}>Today</Text>\n </Pressable>\n </View>\n <ScrollView ref={scroller} horizontal showsHorizontalScrollIndicator={false}>\n <View style={{ width: contentWidth }}>\n <View style={[styles.axis, { borderBottomColor: palette.hairline }]}>\n {ticks.map((t) => (\n <View key={t.day} style={[styles.tick, { left: t.offset * dw }]}>\n {t.major ? (\n <Text numberOfLines={1} style={[styles.tickMajor, { color: palette.text }]}>\n {t.major}\n </Text>\n ) : (\n <View style={styles.tickSpacer} />\n )}\n <Text style={[styles.tickLabel, { color: palette.textMuted }]}>{t.label}</Text>\n </View>\n ))}\n </View>\n <View style={{ height: Math.max(split.dated.length * LANE + 16, 120) }}>\n <View style={[styles.todayLine, { left: todayX, backgroundColor: palette.primary }]} />\n {split.dated.map(({ row, span }, i) => {\n const g = barGeometry(range, span, dw);\n const title = rowTitle(row) || 'Untitled';\n const inside = g.width > 90;\n return (\n <Pressable\n key={row.id}\n accessibilityRole=\"button\"\n accessibilityLabel={`Open ${title}`}\n onPress={() => p.onOpenRow(row)}\n onLongPress={() => p.onRowMenu(row)}\n style={[styles.barLane, { top: 8 + i * LANE, left: g.left }]}\n >\n <View\n style={[\n styles.bar,\n {\n width: Math.max(g.width, 8),\n backgroundColor: palette.primarySoft,\n borderColor: palette.primary,\n },\n ]}\n >\n {inside ? (\n <Text numberOfLines={1} style={[styles.barText, { color: palette.text }]}>\n {title}\n </Text>\n ) : null}\n </View>\n {!inside ? (\n <Text numberOfLines={1} style={[styles.barOutside, { color: palette.text }]}>\n {title}\n </Text>\n ) : null}\n </Pressable>\n );\n })}\n </View>\n </View>\n </ScrollView>\n {split.undated.length ? (\n <View style={styles.undated}>\n <Text\n style={[styles.section, { color: palette.textMuted }]}\n >{`No ${column.name} · ${split.undated.length}`}</Text>\n {split.undated.map((r) => (\n <RowLine key={r.id} p={p} row={r} />\n ))}\n </View>\n ) : null}\n </ScrollView>\n );\n}\n\n// ---- Chart ----------------------------------------------------------------------------------\n\nfunction chartColor(color: string | undefined, index: number, isDark: boolean): string {\n if (color && color.startsWith('#')) return color;\n return (color && textColorOf(color, isDark)) || defaultChartColor(index);\n}\n\nexport function ChartLayout(p: DateLayoutProps) {\n const { palette } = p;\n const { width } = useWindowDimensions();\n const s = readChartViewSettings(p.settings, p.allColumns);\n const items = useMemo(\n () => chartViewItems(p.rows, p.allColumns, p.getValue, s),\n [p.allColumns, p.getValue, p.rows, s],\n );\n const groups = chartGroupColumns(p.allColumns);\n const values = chartValueColumns(p.allColumns);\n const [picker, setPicker] = useState<'kind' | 'group' | 'measure' | 'sort' | null>(null);\n const set = (patch: Partial<ChartViewSettings>) =>\n p.onChangeSettings({ chart: { ...((p.settings.chart as object) ?? {}), ...s, ...patch } });\n const max = Math.max(1, ...items.map((i) => i.value));\n const total = items.reduce((n, i) => n + i.value, 0);\n\n const control = (label: string, value: string, which: typeof picker) => (\n <Pressable\n accessibilityRole=\"button\"\n onPress={() => setPicker(which)}\n style={[styles.control, { backgroundColor: palette.fill }]}\n >\n <Text style={[styles.controlLabel, { color: palette.textMuted }]}>{label}</Text>\n <Text numberOfLines={1} style={[styles.controlValue, { color: palette.text }]}>\n {value}\n </Text>\n <Ionicons name=\"chevron-down\" size={13} color={palette.textMuted} />\n </Pressable>\n );\n\n if (!groups.length) {\n return (\n <View style={styles.emptyLayout}>\n <Ionicons name=\"bar-chart-outline\" size={34} color={palette.textFaint} />\n <Text style={[styles.emptyTitle, { color: palette.text }]}>Nothing to chart yet</Text>\n <Text style={[styles.emptyText, { color: palette.textMuted }]}>\n A chart groups rows by a Select, Status, Person, Date or Checkbox property.\n </Text>\n </View>\n );\n }\n\n const plotWidth = width - 32;\n const donut = 180;\n const r = 70;\n const circ = 2 * Math.PI * r;\n let acc = 0;\n\n return (\n <ScrollView contentContainerStyle={styles.chart}>\n <ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={styles.controls}>\n {control('Chart', CHART_VIEW_KINDS.find((k) => k.kind === s.kind)?.label ?? s.kind, 'kind')}\n {control('Group by', s.groupBy || 'None', 'group')}\n {control(\n 'Value',\n s.aggregate === 'sum' && s.valueProperty ? `Sum of ${s.valueProperty}` : 'Count',\n 'measure',\n )}\n {control('Sort', CHART_VIEW_SORTS.find((x) => x.sort === s.sort)?.label ?? '', 'sort')}\n </ScrollView>\n {!items.length ? (\n <Text style={[styles.none, { color: palette.textMuted }]}>No rows to chart.</Text>\n ) : s.kind === 'donut' ? (\n <View style={styles.donutWrap}>\n <View>\n <Svg width={donut} height={donut}>\n <Circle\n cx={donut / 2}\n cy={donut / 2}\n r={r}\n stroke={palette.fill}\n strokeWidth={26}\n fill=\"none\"\n />\n {items.map((it, i) => {\n const len = total ? (it.value / total) * circ : 0;\n const el = (\n <Circle\n key={it.label}\n cx={donut / 2}\n cy={donut / 2}\n r={r}\n stroke={chartColor(it.color, i, p.isDark)}\n strokeWidth={26}\n fill=\"none\"\n strokeDasharray={`${len} ${circ - len}`}\n strokeDashoffset={-acc}\n rotation={-90}\n origin={`${donut / 2}, ${donut / 2}`}\n />\n );\n acc += len;\n return el;\n })}\n </Svg>\n <View style={styles.donutCenter} pointerEvents=\"none\">\n <Text style={[styles.donutTotal, { color: palette.text }]}>{formatChartValue(total)}</Text>\n <Text style={[styles.donutLabel, { color: palette.textMuted }]}>\n {s.aggregate === 'sum' ? 'Total' : 'Rows'}\n </Text>\n </View>\n </View>\n <View style={styles.legend}>\n {items.map((it, i) => (\n <View key={it.label} style={styles.legendRow}>\n <View style={[styles.swatch, { backgroundColor: chartColor(it.color, i, p.isDark) }]} />\n <Text numberOfLines={1} style={[styles.legendLabel, { color: palette.text }]}>\n {it.label}\n </Text>\n <Text style={[styles.legendValue, { color: palette.textMuted }]}>\n {formatChartValue(it.value)}\n </Text>\n </View>\n ))}\n </View>\n </View>\n ) : s.kind === 'bar' ? (\n <View style={styles.bars}>\n {items.map((it, i) => (\n <View key={it.label} style={styles.hBarRow}>\n <Text numberOfLines={1} style={[styles.hBarLabel, { color: palette.text }]}>\n {it.label}\n </Text>\n <View style={[styles.hBarTrack, { backgroundColor: palette.fill }]}>\n <View\n style={[\n styles.hBarFill,\n {\n width: `${(it.value / max) * 100}%`,\n backgroundColor: chartColor(it.color, i, p.isDark),\n },\n ]}\n />\n </View>\n <Text style={[styles.hBarValue, { color: palette.textMuted }]}>\n {formatChartValue(it.value)}\n </Text>\n </View>\n ))}\n </View>\n ) : (\n <ScrollView horizontal showsHorizontalScrollIndicator={false}>\n <View style={[styles.columns, { minWidth: plotWidth }]}>\n {items.map((it, i) => (\n <View key={it.label} style={styles.column}>\n <Text style={[styles.colValue, { color: palette.textMuted }]}>\n {formatChartValue(it.value)}\n </Text>\n <View\n style={[\n styles.colBar,\n {\n height: Math.max(4, (it.value / max) * 200),\n backgroundColor: chartColor(it.color, i, p.isDark),\n },\n ]}\n />\n <Text numberOfLines={2} style={[styles.colLabel, { color: palette.text }]}>\n {it.label}\n </Text>\n </View>\n ))}\n </View>\n </ScrollView>\n )}\n <ChoiceSheet\n visible={picker === 'kind'}\n title=\"Chart\"\n palette={palette}\n value={s.kind}\n choices={CHART_VIEW_KINDS.map((k) => ({ value: k.kind, label: k.label }))}\n onClose={() => setPicker(null)}\n onPick={(kind) => {\n setPicker(null);\n set({ kind });\n }}\n />\n <ChoiceSheet\n visible={picker === 'group'}\n title=\"Group by\"\n palette={palette}\n value={s.groupBy}\n choices={groups.map((c) => ({ value: c.name, label: c.name }))}\n onClose={() => setPicker(null)}\n onPick={(groupBy) => {\n setPicker(null);\n set({ groupBy });\n }}\n />\n <ChoiceSheet\n visible={picker === 'measure'}\n title=\"Value\"\n palette={palette}\n value={s.aggregate === 'sum' && s.valueProperty ? `sum:${s.valueProperty}` : 'count'}\n choices={[\n { value: 'count', label: 'Count rows' },\n ...values.map((c) => ({ value: `sum:${c.name}`, label: `Sum of ${c.name}` })),\n ]}\n onClose={() => setPicker(null)}\n onPick={(v) => {\n setPicker(null);\n if (v === 'count') set({ aggregate: 'count' });\n else set({ aggregate: 'sum', valueProperty: v.slice(4) });\n }}\n />\n <ChoiceSheet\n visible={picker === 'sort'}\n title=\"Sort\"\n palette={palette}\n value={s.sort}\n choices={CHART_VIEW_SORTS.map((x) => ({ value: x.sort, label: x.label }))}\n onClose={() => setPicker(null)}\n onPick={(sort) => {\n setPicker(null);\n set({ sort });\n }}\n />\n </ScrollView>\n );\n}\n\nconst styles = StyleSheet.create({\n segmented: { flexDirection: 'row', borderRadius: 10, padding: 2 },\n segment: { paddingHorizontal: 12, height: 30, borderRadius: 8, alignItems: 'center', justifyContent: 'center' },\n segmentText: { fontSize: 13, fontWeight: '600' },\n calendar: { padding: 12, paddingBottom: 48 },\n calHead: { flexDirection: 'row', alignItems: 'center', gap: 6, marginBottom: 8 },\n calTitle: { fontSize: 19, fontWeight: '800' },\n navBtn: { padding: 6 },\n todayBtn: { paddingHorizontal: 12, height: 32, borderRadius: 10, justifyContent: 'center' },\n todayText: { fontSize: 14, fontWeight: '600' },\n modeRow: { flexDirection: 'row', alignItems: 'center', marginBottom: 10 },\n weekRow: { flexDirection: 'row' },\n weekday: { flex: 1, textAlign: 'center', fontSize: 12, fontWeight: '600', paddingVertical: 4 },\n dayCell: { flex: 1, alignItems: 'center', paddingVertical: 6, minHeight: 56, borderRadius: 10 },\n dayNum: { width: 28, height: 28, borderRadius: 14, alignItems: 'center', justifyContent: 'center' },\n dayNumText: { fontSize: 15, fontWeight: '600' },\n dots: { flexDirection: 'row', gap: 3, marginTop: 4, height: 6 },\n dot: { width: 6, height: 6, borderRadius: 3 },\n more: { fontSize: 10, marginTop: 1 },\n dayHead: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginTop: 16,\n marginBottom: 8,\n },\n dayTitle: { fontSize: 16, fontWeight: '700' },\n addSmall: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n paddingHorizontal: 10,\n height: 30,\n borderRadius: 9,\n },\n addSmallText: { fontSize: 14, fontWeight: '700' },\n none: { fontSize: 14, paddingVertical: 12, textAlign: 'center' },\n section: {\n fontSize: 13,\n fontWeight: '700',\n marginTop: 18,\n marginBottom: 8,\n textTransform: 'uppercase',\n letterSpacing: 0.4,\n },\n rowLine: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 10,\n padding: 12,\n borderRadius: 12,\n borderWidth: StyleSheet.hairlineWidth,\n marginBottom: 8,\n },\n rowTitle: { fontSize: 15, fontWeight: '600' },\n rowProps: { flexDirection: 'row', flexWrap: 'wrap', gap: 6, marginTop: 4 },\n emptyLayout: { flex: 1, alignItems: 'center', justifyContent: 'center', padding: 32, gap: 8 },\n emptyTitle: { fontSize: 17, fontWeight: '700', textAlign: 'center' },\n emptyText: { fontSize: 14, textAlign: 'center', lineHeight: 20 },\n timelineWrap: { paddingVertical: 12, paddingBottom: 48 },\n axis: { height: 44, borderBottomWidth: StyleSheet.hairlineWidth },\n tick: { position: 'absolute', top: 2 },\n tickMajor: { fontSize: 12, fontWeight: '700', width: 120 },\n tickSpacer: { height: 16 },\n tickLabel: { fontSize: 11, marginTop: 2 },\n todayLine: { position: 'absolute', top: 0, bottom: 0, width: 2, opacity: 0.6 },\n barLane: { position: 'absolute', flexDirection: 'row', alignItems: 'center', height: BAR_HEIGHT },\n bar: { height: BAR_HEIGHT, borderRadius: 8, borderWidth: 1, justifyContent: 'center', paddingHorizontal: 8 },\n barText: { fontSize: 13, fontWeight: '600' },\n barOutside: { fontSize: 13, fontWeight: '600', marginLeft: 6, maxWidth: 220 },\n undated: { paddingHorizontal: 12 },\n chart: { padding: 16, paddingBottom: 48, gap: 16 },\n controls: { gap: 8 },\n control: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingHorizontal: 10,\n height: 34,\n borderRadius: 10,\n },\n controlLabel: { fontSize: 12, fontWeight: '600' },\n controlValue: { fontSize: 14, fontWeight: '600', maxWidth: 160 },\n donutWrap: { alignItems: 'center', gap: 16 },\n donutCenter: { ...StyleSheet.absoluteFillObject, alignItems: 'center', justifyContent: 'center' },\n donutTotal: { fontSize: 24, fontWeight: '800' },\n donutLabel: { fontSize: 12 },\n legend: { alignSelf: 'stretch', gap: 8 },\n legendRow: { flexDirection: 'row', alignItems: 'center', gap: 10 },\n swatch: { width: 12, height: 12, borderRadius: 3 },\n legendLabel: { flex: 1, fontSize: 15 },\n legendValue: { fontSize: 14, fontVariant: ['tabular-nums'] },\n bars: { gap: 12 },\n hBarRow: { flexDirection: 'row', alignItems: 'center', gap: 10 },\n hBarLabel: { width: 96, fontSize: 14 },\n hBarTrack: { flex: 1, height: 22, borderRadius: 6, overflow: 'hidden' },\n hBarFill: { height: '100%', borderRadius: 6 },\n hBarValue: { width: 48, textAlign: 'right', fontSize: 13, fontVariant: ['tabular-nums'] },\n columns: { flexDirection: 'row', alignItems: 'flex-end', gap: 14, height: 260, paddingTop: 12 },\n column: { width: 56, alignItems: 'center', justifyContent: 'flex-end' },\n colValue: { fontSize: 12, marginBottom: 4, fontVariant: ['tabular-nums'] },\n colBar: { width: 36, borderTopLeftRadius: 8, borderTopRightRadius: 8 },\n colLabel: { fontSize: 12, marginTop: 6, textAlign: 'center' },\n});\n"],"names":["_a","formatChartValue"],"mappings":"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"}
@@ -282,7 +282,7 @@ function NotionDatabaseView({
282
282
  }, [columns, db, getValue, search, tableColumns, view.conditions, view.sorts]);
283
283
  const importCsv = useCallback(async (text) => {
284
284
  const plan = planDatabaseCsvImport(text, db.schema);
285
- if (!plan.ok) {
285
+ if ("error" in plan) {
286
286
  showToast({
287
287
  message: plan.error
288
288
  });