@multiplatform.one/components 6.7.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Accordion/index.cjs +213 -70
- package/dist/cjs/Accordion/index.native.js +254 -75
- package/dist/cjs/Accordion/index.native.js.map +1 -1
- package/dist/cjs/Alert/index.cjs +204 -56
- package/dist/cjs/Alert/index.native.js +211 -60
- package/dist/cjs/Alert/index.native.js.map +1 -1
- package/dist/cjs/AnimateHeight/index.cjs +166 -0
- package/dist/cjs/AnimateHeight/index.native.js +176 -0
- package/dist/cjs/AnimateHeight/index.native.js.map +1 -0
- package/dist/cjs/Avatar/getInitials.cjs +34 -0
- package/dist/cjs/Avatar/getInitials.native.js +34 -0
- package/dist/cjs/Avatar/getInitials.native.js.map +1 -1
- package/dist/cjs/Avatar/index.cjs +246 -62
- package/dist/cjs/Avatar/index.native.js +252 -68
- package/dist/cjs/Avatar/index.native.js.map +1 -1
- package/dist/cjs/Badge/index.cjs +109 -75
- package/dist/cjs/Badge/index.native.js +110 -76
- package/dist/cjs/Badge/index.native.js.map +1 -1
- package/dist/cjs/Button.cjs +41 -0
- package/dist/cjs/Button.native.js +45 -0
- package/dist/cjs/Button.native.js.map +1 -0
- package/dist/cjs/Carousel/index.cjs +184 -105
- package/dist/cjs/Carousel/index.native.js +212 -107
- package/dist/cjs/Carousel/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +360 -5
- package/dist/cjs/Chip/index.native.js +374 -5
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/DotIndicator/index.cjs +129 -13
- package/dist/cjs/DotIndicator/index.native.js +133 -13
- package/dist/cjs/DotIndicator/index.native.js.map +1 -1
- package/dist/cjs/DropdownMenu/index.cjs +110 -44
- package/dist/cjs/DropdownMenu/index.native.js +113 -46
- package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
- package/dist/cjs/ErrorBoundary/index.cjs +2 -2
- package/dist/cjs/ErrorBoundary/index.native.js +2 -2
- package/dist/cjs/ErrorBoundary/index.native.js.map +1 -1
- package/dist/cjs/Pagination.cjs +40 -11
- package/dist/cjs/Pagination.native.js +44 -11
- package/dist/cjs/Pagination.native.js.map +1 -1
- package/dist/cjs/ProgressSteps/index.cjs +163 -107
- package/dist/cjs/ProgressSteps/index.native.js +171 -115
- package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
- package/dist/cjs/Quote/index.cjs +58 -39
- package/dist/cjs/Quote/index.native.js +69 -45
- package/dist/cjs/Quote/index.native.js.map +1 -1
- package/dist/cjs/SheetModal/index.cjs +141 -4
- package/dist/cjs/SheetModal/index.native.js +42 -29
- package/dist/cjs/SheetModal/index.native.js.map +1 -1
- package/dist/cjs/Skeleton/index.cjs +216 -4
- package/dist/cjs/Skeleton/index.native.js +223 -4
- package/dist/cjs/Skeleton/index.native.js.map +1 -1
- package/dist/cjs/SkipLink/index.cjs +91 -57
- package/dist/cjs/SkipLink/index.native.js +92 -66
- package/dist/cjs/SkipLink/index.native.js.map +1 -1
- package/dist/cjs/Tabs/index.cjs +136 -95
- package/dist/cjs/Tabs/index.native.js +161 -108
- package/dist/cjs/Tabs/index.native.js.map +1 -1
- package/dist/cjs/Toast/index.cjs +229 -67
- package/dist/cjs/Toast/index.native.js +232 -67
- package/dist/cjs/Toast/index.native.js.map +1 -1
- package/dist/cjs/Toast/store.cjs +83 -10
- package/dist/cjs/Toast/store.native.js +108 -10
- package/dist/cjs/Toast/store.native.js.map +1 -1
- package/dist/cjs/Tooltip/index.cjs +159 -42
- package/dist/cjs/Tooltip/index.native.js +195 -43
- package/dist/cjs/Tooltip/index.native.js.map +1 -1
- package/dist/cjs/Video/PlayerChrome.cjs +403 -0
- package/dist/cjs/Video/PlayerChrome.native.js +436 -0
- package/dist/cjs/Video/PlayerChrome.native.js.map +1 -0
- package/dist/cjs/Video/VideoFrame.cjs +14 -5
- package/dist/cjs/Video/VideoFrame.native.js +16 -5
- package/dist/cjs/Video/VideoFrame.native.js.map +1 -1
- package/dist/cjs/Video/index.cjs +227 -11
- package/dist/cjs/Video/index.native.js +28 -13
- package/dist/cjs/Video/index.native.js.map +1 -1
- package/dist/cjs/Wheel/index.cjs +144 -93
- package/dist/cjs/Wheel/index.native.js +149 -96
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/actions/DestructiveAction.cjs +2 -2
- package/dist/cjs/actions/DestructiveAction.native.js +2 -2
- package/dist/cjs/actions/DestructiveAction.native.js.map +1 -1
- package/dist/cjs/charts/BarChart.cjs +9 -5
- package/dist/cjs/charts/BarChart.native.js +9 -5
- package/dist/cjs/charts/BarChart.native.js.map +1 -1
- package/dist/cjs/charts/LineChart.cjs +2 -2
- package/dist/cjs/charts/LineChart.native.js +2 -2
- package/dist/cjs/charts/LineChart.native.js.map +1 -1
- package/dist/cjs/charts/PieChart.cjs +2 -2
- package/dist/cjs/charts/PieChart.native.js +2 -2
- package/dist/cjs/charts/PieChart.native.js.map +1 -1
- package/dist/cjs/charts/Sparkline.cjs +2 -2
- package/dist/cjs/charts/Sparkline.native.js +2 -2
- package/dist/cjs/charts/Sparkline.native.js.map +1 -1
- package/dist/cjs/charts/index.cjs +4 -0
- package/dist/cjs/charts/index.native.js +4 -0
- package/dist/cjs/charts/index.native.js.map +1 -1
- package/dist/cjs/code/CodeBlock/index.cjs +34 -7
- package/dist/cjs/code/CodeBlock/index.native.js +36 -9
- package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
- package/dist/cjs/feedback/ConfirmDialog.cjs +92 -5
- package/dist/cjs/feedback/ConfirmDialog.native.js +123 -5
- package/dist/cjs/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/cjs/feedback/NotifyHost.cjs +2 -2
- package/dist/cjs/feedback/NotifyHost.native.js +2 -2
- package/dist/cjs/feedback/NotifyHost.native.js.map +1 -1
- package/dist/cjs/icons/themed.cjs +4 -1
- package/dist/cjs/icons/themed.native.js +4 -1
- package/dist/cjs/icons/themed.native.js.map +1 -1
- package/dist/cjs/images/Image/ImageFrame.cjs +242 -0
- package/dist/cjs/images/Image/ImageFrame.native.js +248 -0
- package/dist/cjs/images/Image/ImageFrame.native.js.map +1 -0
- package/dist/cjs/images/Image/index.cjs +93 -40
- package/dist/cjs/images/Image/index.native.js +146 -108
- package/dist/cjs/images/Image/index.native.js.map +1 -1
- package/dist/cjs/images/Image/shared.cjs +106 -0
- package/dist/cjs/images/Image/shared.native.js +109 -0
- package/dist/cjs/images/Image/shared.native.js.map +1 -0
- package/dist/cjs/index.cjs +7 -0
- package/dist/cjs/index.native.js +7 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/knobImmuneExports.cjs +95 -0
- package/dist/cjs/knobImmuneExports.native.js +98 -0
- package/dist/cjs/knobImmuneExports.native.js.map +1 -0
- package/dist/cjs/layouts/AsyncBoundary.cjs +163 -36
- package/dist/cjs/layouts/AsyncBoundary.native.js +166 -37
- package/dist/cjs/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/cjs/layouts/EmptyState.cjs +157 -0
- package/dist/cjs/layouts/EmptyState.native.js +165 -0
- package/dist/cjs/layouts/EmptyState.native.js.map +1 -0
- package/dist/cjs/layouts/PageTemplates.cjs +13 -5
- package/dist/cjs/layouts/PageTemplates.native.js +13 -5
- package/dist/cjs/layouts/PageTemplates.native.js.map +1 -1
- package/dist/cjs/layouts/PaneScaffold.cjs +273 -13
- package/dist/cjs/layouts/PaneScaffold.native.js +294 -13
- package/dist/cjs/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/cjs/layouts/ViewSwitcher.cjs +65 -23
- package/dist/cjs/layouts/ViewSwitcher.native.js +78 -30
- package/dist/cjs/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/cjs/layouts/attachments.cjs +350 -185
- package/dist/cjs/layouts/attachments.native.js +370 -186
- package/dist/cjs/layouts/attachments.native.js.map +1 -1
- package/dist/cjs/layouts/breadcrumbs.cjs +161 -62
- package/dist/cjs/layouts/breadcrumbs.native.js +184 -65
- package/dist/cjs/layouts/breadcrumbs.native.js.map +1 -1
- package/dist/cjs/layouts/page.cjs +71 -111
- package/dist/cjs/layouts/page.native.js +82 -130
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/layouts/pageHeadingScope.cjs +8 -2
- package/dist/cjs/layouts/pageHeadingScope.native.js +10 -2
- package/dist/cjs/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/cjs/layouts/sidebar.cjs +150 -66
- package/dist/cjs/layouts/sidebar.native.js +118 -47
- package/dist/cjs/layouts/sidebar.native.js.map +1 -1
- package/dist/cjs/layouts/tags.cjs +321 -138
- package/dist/cjs/layouts/tags.native.js +355 -158
- package/dist/cjs/layouts/tags.native.js.map +1 -1
- package/dist/cjs/layouts/timeline.cjs +129 -56
- package/dist/cjs/layouts/timeline.native.js +179 -55
- package/dist/cjs/layouts/timeline.native.js.map +1 -1
- package/dist/cjs/layouts/toolbar.cjs +56 -20
- package/dist/cjs/layouts/toolbar.native.js +62 -25
- package/dist/cjs/layouts/toolbar.native.js.map +1 -1
- package/dist/cjs/shared/i18n.cjs +46 -0
- package/dist/cjs/shared/i18n.native.js +52 -0
- package/dist/cjs/shared/i18n.native.js.map +1 -0
- package/dist/cjs/shared/textRidesText.cjs +57 -0
- package/dist/cjs/shared/textRidesText.native.js +81 -0
- package/dist/cjs/shared/textRidesText.native.js.map +1 -0
- package/dist/cjs/shared/useReturnFocusOnClose.cjs +7 -1
- package/dist/cjs/shared/useReturnFocusOnClose.native.js +7 -1
- package/dist/cjs/shared/useReturnFocusOnClose.native.js.map +1 -1
- package/dist/cjs/surfaces.cjs +93 -16
- package/dist/cjs/surfaces.native.js +95 -16
- package/dist/cjs/surfaces.native.js.map +1 -1
- package/dist/cjs/tamagui.cjs +38 -39
- package/dist/cjs/tamagui.native.js +37 -38
- package/dist/cjs/tamagui.native.js.map +1 -1
- package/dist/cjs/views/Calendar.cjs +101 -64
- package/dist/cjs/views/Calendar.native.js +105 -70
- package/dist/cjs/views/Calendar.native.js.map +1 -1
- package/dist/cjs/views/Dashboard.cjs +399 -107
- package/dist/cjs/views/Dashboard.native.js +408 -110
- package/dist/cjs/views/Dashboard.native.js.map +1 -1
- package/dist/cjs/views/Gantt.cjs +256 -59
- package/dist/cjs/views/Gantt.native.js +264 -39
- package/dist/cjs/views/Gantt.native.js.map +1 -1
- package/dist/cjs/views/ImageGrid.cjs +138 -73
- package/dist/cjs/views/ImageGrid.native.js +155 -71
- package/dist/cjs/views/ImageGrid.native.js.map +1 -1
- package/dist/cjs/views/Kanban.cjs +53 -31
- package/dist/cjs/views/Kanban.native.js +55 -41
- package/dist/cjs/views/Kanban.native.js.map +1 -1
- package/dist/cjs/views/List.cjs +280 -93
- package/dist/cjs/views/List.native.js +280 -101
- package/dist/cjs/views/List.native.js.map +1 -1
- package/dist/cjs/views/ReportBuilder.cjs +539 -172
- package/dist/cjs/views/ReportBuilder.native.js +592 -169
- package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
- package/dist/cjs/views/TreeView.cjs +142 -52
- package/dist/cjs/views/TreeView.native.js +170 -55
- package/dist/cjs/views/TreeView.native.js.map +1 -1
- package/dist/esm/Accordion/index.mjs +216 -73
- package/dist/esm/Accordion/index.mjs.map +1 -1
- package/dist/esm/Accordion/index.native.js +257 -78
- package/dist/esm/Accordion/index.native.js.map +1 -1
- package/dist/esm/Alert/index.mjs +206 -58
- package/dist/esm/Alert/index.mjs.map +1 -1
- package/dist/esm/Alert/index.native.js +213 -62
- package/dist/esm/Alert/index.native.js.map +1 -1
- package/dist/esm/AnimateHeight/index.mjs +140 -0
- package/dist/esm/AnimateHeight/index.mjs.map +1 -0
- package/dist/esm/AnimateHeight/index.native.js +147 -0
- package/dist/esm/AnimateHeight/index.native.js.map +1 -0
- package/dist/esm/Avatar/getInitials.mjs +32 -1
- package/dist/esm/Avatar/getInitials.mjs.map +1 -1
- package/dist/esm/Avatar/getInitials.native.js +32 -1
- package/dist/esm/Avatar/getInitials.native.js.map +1 -1
- package/dist/esm/Avatar/index.mjs +249 -68
- package/dist/esm/Avatar/index.mjs.map +1 -1
- package/dist/esm/Avatar/index.native.js +255 -74
- package/dist/esm/Avatar/index.native.js.map +1 -1
- package/dist/esm/Badge/index.mjs +110 -76
- package/dist/esm/Badge/index.mjs.map +1 -1
- package/dist/esm/Badge/index.native.js +111 -77
- package/dist/esm/Badge/index.native.js.map +1 -1
- package/dist/esm/Button.mjs +16 -0
- package/dist/esm/Button.mjs.map +1 -0
- package/dist/esm/Button.native.js +17 -0
- package/dist/esm/Button.native.js.map +1 -0
- package/dist/esm/Carousel/index.mjs +185 -106
- package/dist/esm/Carousel/index.mjs.map +1 -1
- package/dist/esm/Carousel/index.native.js +213 -108
- package/dist/esm/Carousel/index.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +356 -2
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +370 -2
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/DotIndicator/index.mjs +130 -14
- package/dist/esm/DotIndicator/index.mjs.map +1 -1
- package/dist/esm/DotIndicator/index.native.js +134 -14
- package/dist/esm/DotIndicator/index.native.js.map +1 -1
- package/dist/esm/DropdownMenu/index.mjs +112 -46
- package/dist/esm/DropdownMenu/index.mjs.map +1 -1
- package/dist/esm/DropdownMenu/index.native.js +115 -48
- package/dist/esm/DropdownMenu/index.native.js.map +1 -1
- package/dist/esm/ErrorBoundary/index.mjs +1 -1
- package/dist/esm/ErrorBoundary/index.native.js +1 -1
- package/dist/esm/Pagination.mjs +41 -12
- package/dist/esm/Pagination.mjs.map +1 -1
- package/dist/esm/Pagination.native.js +45 -12
- package/dist/esm/Pagination.native.js.map +1 -1
- package/dist/esm/ProgressSteps/index.mjs +165 -109
- package/dist/esm/ProgressSteps/index.mjs.map +1 -1
- package/dist/esm/ProgressSteps/index.native.js +173 -117
- package/dist/esm/ProgressSteps/index.native.js.map +1 -1
- package/dist/esm/Quote/index.mjs +59 -40
- package/dist/esm/Quote/index.mjs.map +1 -1
- package/dist/esm/Quote/index.native.js +70 -46
- package/dist/esm/Quote/index.native.js.map +1 -1
- package/dist/esm/SheetModal/index.mjs +144 -7
- package/dist/esm/SheetModal/index.mjs.map +1 -1
- package/dist/esm/SheetModal/index.native.js +41 -28
- package/dist/esm/SheetModal/index.native.js.map +1 -1
- package/dist/esm/Skeleton/index.mjs +213 -2
- package/dist/esm/Skeleton/index.mjs.map +1 -1
- package/dist/esm/Skeleton/index.native.js +220 -2
- package/dist/esm/Skeleton/index.native.js.map +1 -1
- package/dist/esm/SkipLink/index.mjs +93 -59
- package/dist/esm/SkipLink/index.mjs.map +1 -1
- package/dist/esm/SkipLink/index.native.js +94 -68
- package/dist/esm/SkipLink/index.native.js.map +1 -1
- package/dist/esm/Tabs/index.mjs +137 -96
- package/dist/esm/Tabs/index.mjs.map +1 -1
- package/dist/esm/Tabs/index.native.js +162 -109
- package/dist/esm/Tabs/index.native.js.map +1 -1
- package/dist/esm/Toast/index.mjs +227 -68
- package/dist/esm/Toast/index.mjs.map +1 -1
- package/dist/esm/Toast/index.native.js +230 -68
- package/dist/esm/Toast/index.native.js.map +1 -1
- package/dist/esm/Toast/store.mjs +75 -11
- package/dist/esm/Toast/store.mjs.map +1 -1
- package/dist/esm/Toast/store.native.js +100 -11
- package/dist/esm/Toast/store.native.js.map +1 -1
- package/dist/esm/Tooltip/index.mjs +147 -42
- package/dist/esm/Tooltip/index.mjs.map +1 -1
- package/dist/esm/Tooltip/index.native.js +184 -44
- package/dist/esm/Tooltip/index.native.js.map +1 -1
- package/dist/esm/Video/PlayerChrome.mjs +377 -0
- package/dist/esm/Video/PlayerChrome.mjs.map +1 -0
- package/dist/esm/Video/PlayerChrome.native.js +407 -0
- package/dist/esm/Video/PlayerChrome.native.js.map +1 -0
- package/dist/esm/Video/VideoFrame.mjs +14 -5
- package/dist/esm/Video/VideoFrame.mjs.map +1 -1
- package/dist/esm/Video/VideoFrame.native.js +16 -5
- package/dist/esm/Video/VideoFrame.native.js.map +1 -1
- package/dist/esm/Video/index.mjs +227 -11
- package/dist/esm/Video/index.mjs.map +1 -1
- package/dist/esm/Video/index.native.js +28 -13
- package/dist/esm/Video/index.native.js.map +1 -1
- package/dist/esm/Wheel/index.mjs +143 -92
- package/dist/esm/Wheel/index.mjs.map +1 -1
- package/dist/esm/Wheel/index.native.js +148 -95
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/actions/DestructiveAction.mjs +1 -1
- package/dist/esm/actions/DestructiveAction.native.js +1 -1
- package/dist/esm/actions/DestructiveAction.native.js.map +1 -1
- package/dist/esm/charts/BarChart.mjs +8 -4
- package/dist/esm/charts/BarChart.mjs.map +1 -1
- package/dist/esm/charts/BarChart.native.js +8 -4
- package/dist/esm/charts/BarChart.native.js.map +1 -1
- package/dist/esm/charts/LineChart.mjs +1 -1
- package/dist/esm/charts/LineChart.native.js +1 -1
- package/dist/esm/charts/PieChart.mjs +1 -1
- package/dist/esm/charts/PieChart.native.js +1 -1
- package/dist/esm/charts/PieChart.native.js.map +1 -1
- package/dist/esm/charts/Sparkline.mjs +1 -1
- package/dist/esm/charts/Sparkline.native.js +1 -1
- package/dist/esm/charts/index.mjs +2 -1
- package/dist/esm/charts/index.mjs.map +1 -1
- package/dist/esm/charts/index.native.js +2 -1
- package/dist/esm/charts/index.native.js.map +1 -1
- package/dist/esm/code/CodeBlock/index.mjs +34 -7
- package/dist/esm/code/CodeBlock/index.mjs.map +1 -1
- package/dist/esm/code/CodeBlock/index.native.js +36 -9
- package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
- package/dist/esm/feedback/ConfirmDialog.mjs +93 -6
- package/dist/esm/feedback/ConfirmDialog.mjs.map +1 -1
- package/dist/esm/feedback/ConfirmDialog.native.js +124 -6
- package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/esm/feedback/NotifyHost.mjs +1 -1
- package/dist/esm/feedback/NotifyHost.native.js +1 -1
- package/dist/esm/icons/themed.mjs +5 -2
- package/dist/esm/icons/themed.mjs.map +1 -1
- package/dist/esm/icons/themed.native.js +5 -2
- package/dist/esm/icons/themed.native.js.map +1 -1
- package/dist/esm/images/Image/ImageFrame.mjs +216 -0
- package/dist/esm/images/Image/ImageFrame.mjs.map +1 -0
- package/dist/esm/images/Image/ImageFrame.native.js +219 -0
- package/dist/esm/images/Image/ImageFrame.native.js.map +1 -0
- package/dist/esm/images/Image/index.mjs +94 -41
- package/dist/esm/images/Image/index.mjs.map +1 -1
- package/dist/esm/images/Image/index.native.js +148 -110
- package/dist/esm/images/Image/index.native.js.map +1 -1
- package/dist/esm/images/Image/shared.mjs +76 -0
- package/dist/esm/images/Image/shared.mjs.map +1 -0
- package/dist/esm/images/Image/shared.native.js +76 -0
- package/dist/esm/images/Image/shared.native.js.map +1 -0
- package/dist/esm/index.mjs +4 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +4 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/knobImmuneExports.mjs +70 -0
- package/dist/esm/knobImmuneExports.mjs.map +1 -0
- package/dist/esm/knobImmuneExports.native.js +70 -0
- package/dist/esm/knobImmuneExports.native.js.map +1 -0
- package/dist/esm/layouts/AsyncBoundary.mjs +165 -38
- package/dist/esm/layouts/AsyncBoundary.mjs.map +1 -1
- package/dist/esm/layouts/AsyncBoundary.native.js +168 -39
- package/dist/esm/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/esm/layouts/EmptyState.mjs +132 -0
- package/dist/esm/layouts/EmptyState.mjs.map +1 -0
- package/dist/esm/layouts/EmptyState.native.js +137 -0
- package/dist/esm/layouts/EmptyState.native.js.map +1 -0
- package/dist/esm/layouts/PageTemplates.mjs +13 -5
- package/dist/esm/layouts/PageTemplates.mjs.map +1 -1
- package/dist/esm/layouts/PageTemplates.native.js +13 -5
- package/dist/esm/layouts/PageTemplates.native.js.map +1 -1
- package/dist/esm/layouts/PaneScaffold.mjs +277 -17
- package/dist/esm/layouts/PaneScaffold.mjs.map +1 -1
- package/dist/esm/layouts/PaneScaffold.native.js +298 -17
- package/dist/esm/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/esm/layouts/ViewSwitcher.mjs +66 -24
- package/dist/esm/layouts/ViewSwitcher.mjs.map +1 -1
- package/dist/esm/layouts/ViewSwitcher.native.js +79 -31
- package/dist/esm/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/esm/layouts/attachments.mjs +351 -175
- package/dist/esm/layouts/attachments.mjs.map +1 -1
- package/dist/esm/layouts/attachments.native.js +371 -187
- package/dist/esm/layouts/attachments.native.js.map +1 -1
- package/dist/esm/layouts/breadcrumbs.mjs +163 -53
- package/dist/esm/layouts/breadcrumbs.mjs.map +1 -1
- package/dist/esm/layouts/breadcrumbs.native.js +187 -68
- package/dist/esm/layouts/breadcrumbs.native.js.map +1 -1
- package/dist/esm/layouts/page.mjs +72 -112
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +83 -131
- package/dist/esm/layouts/page.native.js.map +1 -1
- package/dist/esm/layouts/pageHeadingScope.mjs +8 -3
- package/dist/esm/layouts/pageHeadingScope.mjs.map +1 -1
- package/dist/esm/layouts/pageHeadingScope.native.js +10 -3
- package/dist/esm/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/esm/layouts/sidebar.mjs +152 -68
- package/dist/esm/layouts/sidebar.mjs.map +1 -1
- package/dist/esm/layouts/sidebar.native.js +120 -49
- package/dist/esm/layouts/sidebar.native.js.map +1 -1
- package/dist/esm/layouts/tags.mjs +323 -140
- package/dist/esm/layouts/tags.mjs.map +1 -1
- package/dist/esm/layouts/tags.native.js +357 -160
- package/dist/esm/layouts/tags.native.js.map +1 -1
- package/dist/esm/layouts/timeline.mjs +129 -45
- package/dist/esm/layouts/timeline.mjs.map +1 -1
- package/dist/esm/layouts/timeline.native.js +179 -55
- package/dist/esm/layouts/timeline.native.js.map +1 -1
- package/dist/esm/layouts/toolbar.mjs +57 -21
- package/dist/esm/layouts/toolbar.mjs.map +1 -1
- package/dist/esm/layouts/toolbar.native.js +63 -26
- package/dist/esm/layouts/toolbar.native.js.map +1 -1
- package/dist/esm/shared/i18n.mjs +10 -0
- package/dist/esm/shared/i18n.mjs.map +1 -0
- package/dist/esm/shared/i18n.native.js +13 -0
- package/dist/esm/shared/i18n.native.js.map +1 -0
- package/dist/esm/shared/textRidesText.mjs +31 -0
- package/dist/esm/shared/textRidesText.mjs.map +1 -0
- package/dist/esm/shared/textRidesText.native.js +52 -0
- package/dist/esm/shared/textRidesText.native.js.map +1 -0
- package/dist/esm/shared/useReturnFocusOnClose.mjs +7 -1
- package/dist/esm/shared/useReturnFocusOnClose.mjs.map +1 -1
- package/dist/esm/shared/useReturnFocusOnClose.native.js +7 -1
- package/dist/esm/shared/useReturnFocusOnClose.native.js.map +1 -1
- package/dist/esm/surfaces.mjs +94 -17
- package/dist/esm/surfaces.mjs.map +1 -1
- package/dist/esm/surfaces.native.js +96 -17
- package/dist/esm/surfaces.native.js.map +1 -1
- package/dist/esm/tamagui.mjs +2 -3
- package/dist/esm/tamagui.mjs.map +1 -1
- package/dist/esm/tamagui.native.js +2 -3
- package/dist/esm/tamagui.native.js.map +1 -1
- package/dist/esm/views/Calendar.mjs +101 -64
- package/dist/esm/views/Calendar.mjs.map +1 -1
- package/dist/esm/views/Calendar.native.js +105 -70
- package/dist/esm/views/Calendar.native.js.map +1 -1
- package/dist/esm/views/Dashboard.mjs +396 -107
- package/dist/esm/views/Dashboard.mjs.map +1 -1
- package/dist/esm/views/Dashboard.native.js +405 -110
- package/dist/esm/views/Dashboard.native.js.map +1 -1
- package/dist/esm/views/Gantt.mjs +256 -59
- package/dist/esm/views/Gantt.mjs.map +1 -1
- package/dist/esm/views/Gantt.native.js +264 -39
- package/dist/esm/views/Gantt.native.js.map +1 -1
- package/dist/esm/views/ImageGrid.mjs +138 -73
- package/dist/esm/views/ImageGrid.mjs.map +1 -1
- package/dist/esm/views/ImageGrid.native.js +155 -71
- package/dist/esm/views/ImageGrid.native.js.map +1 -1
- package/dist/esm/views/Kanban.mjs +52 -30
- package/dist/esm/views/Kanban.mjs.map +1 -1
- package/dist/esm/views/Kanban.native.js +54 -40
- package/dist/esm/views/Kanban.native.js.map +1 -1
- package/dist/esm/views/List.mjs +268 -95
- package/dist/esm/views/List.mjs.map +1 -1
- package/dist/esm/views/List.native.js +280 -104
- package/dist/esm/views/List.native.js.map +1 -1
- package/dist/esm/views/ReportBuilder.mjs +533 -166
- package/dist/esm/views/ReportBuilder.mjs.map +1 -1
- package/dist/esm/views/ReportBuilder.native.js +585 -162
- package/dist/esm/views/ReportBuilder.native.js.map +1 -1
- package/dist/esm/views/TreeView.mjs +142 -52
- package/dist/esm/views/TreeView.mjs.map +1 -1
- package/dist/esm/views/TreeView.native.js +170 -55
- package/dist/esm/views/TreeView.native.js.map +1 -1
- package/dist/jsx/Accordion/index.mjs +216 -73
- package/dist/jsx/Accordion/index.mjs.map +1 -1
- package/dist/jsx/Accordion/index.native.js +254 -75
- package/dist/jsx/Accordion/index.native.js.map +1 -1
- package/dist/jsx/Alert/index.mjs +206 -58
- package/dist/jsx/Alert/index.mjs.map +1 -1
- package/dist/jsx/Alert/index.native.js +211 -60
- package/dist/jsx/Alert/index.native.js.map +1 -1
- package/dist/jsx/AnimateHeight/index.mjs +140 -0
- package/dist/jsx/AnimateHeight/index.mjs.map +1 -0
- package/dist/jsx/AnimateHeight/index.native.js +176 -0
- package/dist/jsx/AnimateHeight/index.native.js.map +1 -0
- package/dist/jsx/Avatar/getInitials.mjs +32 -1
- package/dist/jsx/Avatar/getInitials.mjs.map +1 -1
- package/dist/jsx/Avatar/getInitials.native.js +34 -0
- package/dist/jsx/Avatar/getInitials.native.js.map +1 -1
- package/dist/jsx/Avatar/index.mjs +249 -68
- package/dist/jsx/Avatar/index.mjs.map +1 -1
- package/dist/jsx/Avatar/index.native.js +252 -68
- package/dist/jsx/Avatar/index.native.js.map +1 -1
- package/dist/jsx/Badge/index.mjs +110 -76
- package/dist/jsx/Badge/index.mjs.map +1 -1
- package/dist/jsx/Badge/index.native.js +110 -76
- package/dist/jsx/Badge/index.native.js.map +1 -1
- package/dist/jsx/Button.mjs +16 -0
- package/dist/jsx/Button.mjs.map +1 -0
- package/dist/jsx/Button.native.js +45 -0
- package/dist/jsx/Button.native.js.map +1 -0
- package/dist/jsx/Carousel/index.mjs +185 -106
- package/dist/jsx/Carousel/index.mjs.map +1 -1
- package/dist/jsx/Carousel/index.native.js +212 -107
- package/dist/jsx/Carousel/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +356 -2
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +374 -5
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/DotIndicator/index.mjs +130 -14
- package/dist/jsx/DotIndicator/index.mjs.map +1 -1
- package/dist/jsx/DotIndicator/index.native.js +133 -13
- package/dist/jsx/DotIndicator/index.native.js.map +1 -1
- package/dist/jsx/DropdownMenu/index.mjs +112 -46
- package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
- package/dist/jsx/DropdownMenu/index.native.js +113 -46
- package/dist/jsx/DropdownMenu/index.native.js.map +1 -1
- package/dist/jsx/ErrorBoundary/index.mjs +1 -1
- package/dist/jsx/ErrorBoundary/index.native.js +2 -2
- package/dist/jsx/ErrorBoundary/index.native.js.map +1 -1
- package/dist/jsx/Pagination.mjs +41 -12
- package/dist/jsx/Pagination.mjs.map +1 -1
- package/dist/jsx/Pagination.native.js +44 -11
- package/dist/jsx/Pagination.native.js.map +1 -1
- package/dist/jsx/ProgressSteps/index.mjs +165 -109
- package/dist/jsx/ProgressSteps/index.mjs.map +1 -1
- package/dist/jsx/ProgressSteps/index.native.js +171 -115
- package/dist/jsx/ProgressSteps/index.native.js.map +1 -1
- package/dist/jsx/Quote/index.mjs +59 -40
- package/dist/jsx/Quote/index.mjs.map +1 -1
- package/dist/jsx/Quote/index.native.js +69 -45
- package/dist/jsx/Quote/index.native.js.map +1 -1
- package/dist/jsx/SheetModal/index.mjs +144 -7
- package/dist/jsx/SheetModal/index.mjs.map +1 -1
- package/dist/jsx/SheetModal/index.native.js +42 -29
- package/dist/jsx/SheetModal/index.native.js.map +1 -1
- package/dist/jsx/Skeleton/index.mjs +213 -2
- package/dist/jsx/Skeleton/index.mjs.map +1 -1
- package/dist/jsx/Skeleton/index.native.js +223 -4
- package/dist/jsx/Skeleton/index.native.js.map +1 -1
- package/dist/jsx/SkipLink/index.mjs +93 -59
- package/dist/jsx/SkipLink/index.mjs.map +1 -1
- package/dist/jsx/SkipLink/index.native.js +92 -66
- package/dist/jsx/SkipLink/index.native.js.map +1 -1
- package/dist/jsx/Tabs/index.mjs +137 -96
- package/dist/jsx/Tabs/index.mjs.map +1 -1
- package/dist/jsx/Tabs/index.native.js +161 -108
- package/dist/jsx/Tabs/index.native.js.map +1 -1
- package/dist/jsx/Toast/index.mjs +227 -68
- package/dist/jsx/Toast/index.mjs.map +1 -1
- package/dist/jsx/Toast/index.native.js +232 -67
- package/dist/jsx/Toast/index.native.js.map +1 -1
- package/dist/jsx/Toast/store.mjs +75 -11
- package/dist/jsx/Toast/store.mjs.map +1 -1
- package/dist/jsx/Toast/store.native.js +108 -10
- package/dist/jsx/Toast/store.native.js.map +1 -1
- package/dist/jsx/Tooltip/index.mjs +147 -42
- package/dist/jsx/Tooltip/index.mjs.map +1 -1
- package/dist/jsx/Tooltip/index.native.js +195 -43
- package/dist/jsx/Tooltip/index.native.js.map +1 -1
- package/dist/jsx/Video/PlayerChrome.mjs +377 -0
- package/dist/jsx/Video/PlayerChrome.mjs.map +1 -0
- package/dist/jsx/Video/PlayerChrome.native.js +436 -0
- package/dist/jsx/Video/PlayerChrome.native.js.map +1 -0
- package/dist/jsx/Video/VideoFrame.mjs +14 -5
- package/dist/jsx/Video/VideoFrame.mjs.map +1 -1
- package/dist/jsx/Video/VideoFrame.native.js +16 -5
- package/dist/jsx/Video/VideoFrame.native.js.map +1 -1
- package/dist/jsx/Video/index.mjs +227 -11
- package/dist/jsx/Video/index.mjs.map +1 -1
- package/dist/jsx/Video/index.native.js +28 -13
- package/dist/jsx/Video/index.native.js.map +1 -1
- package/dist/jsx/Wheel/index.mjs +143 -92
- package/dist/jsx/Wheel/index.mjs.map +1 -1
- package/dist/jsx/Wheel/index.native.js +149 -96
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/actions/DestructiveAction.mjs +1 -1
- package/dist/jsx/actions/DestructiveAction.native.js +2 -2
- package/dist/jsx/actions/DestructiveAction.native.js.map +1 -1
- package/dist/jsx/charts/BarChart.mjs +8 -4
- package/dist/jsx/charts/BarChart.mjs.map +1 -1
- package/dist/jsx/charts/BarChart.native.js +9 -5
- package/dist/jsx/charts/BarChart.native.js.map +1 -1
- package/dist/jsx/charts/LineChart.mjs +1 -1
- package/dist/jsx/charts/LineChart.native.js +2 -2
- package/dist/jsx/charts/LineChart.native.js.map +1 -1
- package/dist/jsx/charts/PieChart.mjs +1 -1
- package/dist/jsx/charts/PieChart.native.js +2 -2
- package/dist/jsx/charts/PieChart.native.js.map +1 -1
- package/dist/jsx/charts/Sparkline.mjs +1 -1
- package/dist/jsx/charts/Sparkline.native.js +2 -2
- package/dist/jsx/charts/Sparkline.native.js.map +1 -1
- package/dist/jsx/charts/index.mjs +2 -1
- package/dist/jsx/charts/index.mjs.map +1 -1
- package/dist/jsx/charts/index.native.js +4 -0
- package/dist/jsx/charts/index.native.js.map +1 -1
- package/dist/jsx/code/CodeBlock/index.mjs +34 -7
- package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
- package/dist/jsx/code/CodeBlock/index.native.js +36 -9
- package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.mjs +93 -6
- package/dist/jsx/feedback/ConfirmDialog.mjs.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.native.js +123 -5
- package/dist/jsx/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/jsx/feedback/NotifyHost.mjs +1 -1
- package/dist/jsx/feedback/NotifyHost.native.js +2 -2
- package/dist/jsx/feedback/NotifyHost.native.js.map +1 -1
- package/dist/jsx/icons/themed.mjs +5 -2
- package/dist/jsx/icons/themed.mjs.map +1 -1
- package/dist/jsx/icons/themed.native.js +4 -1
- package/dist/jsx/icons/themed.native.js.map +1 -1
- package/dist/jsx/images/Image/ImageFrame.mjs +216 -0
- package/dist/jsx/images/Image/ImageFrame.mjs.map +1 -0
- package/dist/jsx/images/Image/ImageFrame.native.js +248 -0
- package/dist/jsx/images/Image/ImageFrame.native.js.map +1 -0
- package/dist/jsx/images/Image/index.mjs +94 -41
- package/dist/jsx/images/Image/index.mjs.map +1 -1
- package/dist/jsx/images/Image/index.native.js +146 -108
- package/dist/jsx/images/Image/index.native.js.map +1 -1
- package/dist/jsx/images/Image/shared.mjs +76 -0
- package/dist/jsx/images/Image/shared.mjs.map +1 -0
- package/dist/jsx/images/Image/shared.native.js +109 -0
- package/dist/jsx/images/Image/shared.native.js.map +1 -0
- package/dist/jsx/index.js +4 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +4 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +7 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/knobImmuneExports.mjs +70 -0
- package/dist/jsx/knobImmuneExports.mjs.map +1 -0
- package/dist/jsx/knobImmuneExports.native.js +98 -0
- package/dist/jsx/knobImmuneExports.native.js.map +1 -0
- package/dist/jsx/layouts/AsyncBoundary.mjs +165 -38
- package/dist/jsx/layouts/AsyncBoundary.mjs.map +1 -1
- package/dist/jsx/layouts/AsyncBoundary.native.js +166 -37
- package/dist/jsx/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/jsx/layouts/EmptyState.mjs +132 -0
- package/dist/jsx/layouts/EmptyState.mjs.map +1 -0
- package/dist/jsx/layouts/EmptyState.native.js +165 -0
- package/dist/jsx/layouts/EmptyState.native.js.map +1 -0
- package/dist/jsx/layouts/PageTemplates.mjs +13 -5
- package/dist/jsx/layouts/PageTemplates.mjs.map +1 -1
- package/dist/jsx/layouts/PageTemplates.native.js +13 -5
- package/dist/jsx/layouts/PageTemplates.native.js.map +1 -1
- package/dist/jsx/layouts/PaneScaffold.mjs +277 -17
- package/dist/jsx/layouts/PaneScaffold.mjs.map +1 -1
- package/dist/jsx/layouts/PaneScaffold.native.js +294 -13
- package/dist/jsx/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/jsx/layouts/ViewSwitcher.mjs +66 -24
- package/dist/jsx/layouts/ViewSwitcher.mjs.map +1 -1
- package/dist/jsx/layouts/ViewSwitcher.native.js +78 -30
- package/dist/jsx/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/jsx/layouts/attachments.mjs +351 -175
- package/dist/jsx/layouts/attachments.mjs.map +1 -1
- package/dist/jsx/layouts/attachments.native.js +370 -186
- package/dist/jsx/layouts/attachments.native.js.map +1 -1
- package/dist/jsx/layouts/breadcrumbs.mjs +163 -53
- package/dist/jsx/layouts/breadcrumbs.mjs.map +1 -1
- package/dist/jsx/layouts/breadcrumbs.native.js +184 -65
- package/dist/jsx/layouts/breadcrumbs.native.js.map +1 -1
- package/dist/jsx/layouts/page.mjs +72 -112
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +82 -130
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/dist/jsx/layouts/pageHeadingScope.mjs +8 -3
- package/dist/jsx/layouts/pageHeadingScope.mjs.map +1 -1
- package/dist/jsx/layouts/pageHeadingScope.native.js +10 -2
- package/dist/jsx/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/jsx/layouts/sidebar.mjs +152 -68
- package/dist/jsx/layouts/sidebar.mjs.map +1 -1
- package/dist/jsx/layouts/sidebar.native.js +118 -47
- package/dist/jsx/layouts/sidebar.native.js.map +1 -1
- package/dist/jsx/layouts/tags.mjs +323 -140
- package/dist/jsx/layouts/tags.mjs.map +1 -1
- package/dist/jsx/layouts/tags.native.js +355 -158
- package/dist/jsx/layouts/tags.native.js.map +1 -1
- package/dist/jsx/layouts/timeline.mjs +129 -45
- package/dist/jsx/layouts/timeline.mjs.map +1 -1
- package/dist/jsx/layouts/timeline.native.js +179 -55
- package/dist/jsx/layouts/timeline.native.js.map +1 -1
- package/dist/jsx/layouts/toolbar.mjs +57 -21
- package/dist/jsx/layouts/toolbar.mjs.map +1 -1
- package/dist/jsx/layouts/toolbar.native.js +62 -25
- package/dist/jsx/layouts/toolbar.native.js.map +1 -1
- package/dist/jsx/shared/i18n.mjs +10 -0
- package/dist/jsx/shared/i18n.mjs.map +1 -0
- package/dist/jsx/shared/i18n.native.js +52 -0
- package/dist/jsx/shared/i18n.native.js.map +1 -0
- package/dist/jsx/shared/textRidesText.mjs +31 -0
- package/dist/jsx/shared/textRidesText.mjs.map +1 -0
- package/dist/jsx/shared/textRidesText.native.js +81 -0
- package/dist/jsx/shared/textRidesText.native.js.map +1 -0
- package/dist/jsx/shared/useReturnFocusOnClose.mjs +7 -1
- package/dist/jsx/shared/useReturnFocusOnClose.mjs.map +1 -1
- package/dist/jsx/shared/useReturnFocusOnClose.native.js +7 -1
- package/dist/jsx/shared/useReturnFocusOnClose.native.js.map +1 -1
- package/dist/jsx/surfaces.mjs +94 -17
- package/dist/jsx/surfaces.mjs.map +1 -1
- package/dist/jsx/surfaces.native.js +95 -16
- package/dist/jsx/surfaces.native.js.map +1 -1
- package/dist/jsx/tamagui.mjs +2 -3
- package/dist/jsx/tamagui.mjs.map +1 -1
- package/dist/jsx/tamagui.native.js +37 -38
- package/dist/jsx/tamagui.native.js.map +1 -1
- package/dist/jsx/views/Calendar.mjs +101 -64
- package/dist/jsx/views/Calendar.mjs.map +1 -1
- package/dist/jsx/views/Calendar.native.js +105 -70
- package/dist/jsx/views/Calendar.native.js.map +1 -1
- package/dist/jsx/views/Dashboard.mjs +396 -107
- package/dist/jsx/views/Dashboard.mjs.map +1 -1
- package/dist/jsx/views/Dashboard.native.js +408 -110
- package/dist/jsx/views/Dashboard.native.js.map +1 -1
- package/dist/jsx/views/Gantt.mjs +256 -59
- package/dist/jsx/views/Gantt.mjs.map +1 -1
- package/dist/jsx/views/Gantt.native.js +264 -39
- package/dist/jsx/views/Gantt.native.js.map +1 -1
- package/dist/jsx/views/ImageGrid.mjs +138 -73
- package/dist/jsx/views/ImageGrid.mjs.map +1 -1
- package/dist/jsx/views/ImageGrid.native.js +155 -71
- package/dist/jsx/views/ImageGrid.native.js.map +1 -1
- package/dist/jsx/views/Kanban.mjs +52 -30
- package/dist/jsx/views/Kanban.mjs.map +1 -1
- package/dist/jsx/views/Kanban.native.js +55 -41
- package/dist/jsx/views/Kanban.native.js.map +1 -1
- package/dist/jsx/views/List.mjs +268 -95
- package/dist/jsx/views/List.mjs.map +1 -1
- package/dist/jsx/views/List.native.js +280 -101
- package/dist/jsx/views/List.native.js.map +1 -1
- package/dist/jsx/views/ReportBuilder.mjs +533 -166
- package/dist/jsx/views/ReportBuilder.mjs.map +1 -1
- package/dist/jsx/views/ReportBuilder.native.js +592 -169
- package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
- package/dist/jsx/views/TreeView.mjs +142 -52
- package/dist/jsx/views/TreeView.mjs.map +1 -1
- package/dist/jsx/views/TreeView.native.js +170 -55
- package/dist/jsx/views/TreeView.native.js.map +1 -1
- package/package.json +18 -18
- package/src/Accordion/Accordion.lc50.spec.tsx +69 -0
- package/src/Accordion/Accordion.spec.tsx +36 -0
- package/src/Accordion/Accordion.stories.tsx +82 -36
- package/src/Accordion/index.tsx +296 -75
- package/src/Alert/Alert.spec.tsx +137 -1
- package/src/Alert/Alert.stories.tsx +10 -11
- package/src/Alert/index.tsx +244 -62
- package/src/AnimateHeight/AnimateHeight.spec.tsx +152 -0
- package/src/AnimateHeight/index.tsx +237 -0
- package/src/Avatar/Avatar.spec.tsx +73 -2
- package/src/Avatar/Avatar.stories.tsx +106 -4
- package/src/Avatar/getInitials.ts +29 -0
- package/src/Avatar/index.tsx +323 -105
- package/src/Badge/Badge.spec.tsx +83 -0
- package/src/Badge/Badge.stories.tsx +15 -1
- package/src/Badge/index.tsx +138 -84
- package/src/Button.spec.tsx +181 -0
- package/src/Button.stories.tsx +92 -0
- package/src/Button.tsx +43 -0
- package/src/Carousel/Carousel.spec.tsx +152 -0
- package/src/Carousel/index.tsx +239 -102
- package/src/Chip/Chip.spec.tsx +141 -0
- package/src/Chip/Chip.stories.tsx +163 -10
- package/src/Chip/index.tsx +452 -11
- package/src/DialogContent.stories.tsx +8 -6
- package/src/DotIndicator/DotIndicator.stories.tsx +18 -0
- package/src/DotIndicator/dotIndicator.spec.tsx +57 -2
- package/src/DotIndicator/index.tsx +159 -24
- package/src/DropdownMenu/DropdownMenu.spec.tsx +172 -0
- package/src/DropdownMenu/DropdownMenu.stories.tsx +35 -0
- package/src/DropdownMenu/index.tsx +172 -46
- package/src/ErrorBoundary/index.tsx +1 -1
- package/src/Pagination.api.spec.tsx +41 -0
- package/src/Pagination.tsx +49 -8
- package/src/PopoverContent.stories.tsx +4 -2
- package/src/ProgressSteps/ProgressSteps.spec.tsx +48 -1
- package/src/ProgressSteps/ProgressSteps.stories.tsx +48 -0
- package/src/ProgressSteps/index.tsx +224 -133
- package/src/Quote/Quote.lc50.spec.tsx +53 -0
- package/src/Quote/Quote.spec.tsx +9 -2
- package/src/Quote/Quote.stories.tsx +1 -1
- package/src/Quote/index.tsx +77 -60
- package/src/SheetModal/index.native.tsx +41 -39
- package/src/SheetModal/index.tsx +149 -18
- package/src/Skeleton/Skeleton.stories.tsx +109 -93
- package/src/Skeleton/SkeletonText.stories.tsx +11 -0
- package/src/Skeleton/index.tsx +257 -8
- package/src/SkipLink/SkipLink.spec.tsx +35 -0
- package/src/SkipLink/SkipLink.stories.tsx +1 -1
- package/src/SkipLink/index.tsx +120 -71
- package/src/Tabs/Tabs.spec.tsx +65 -0
- package/src/Tabs/Tabs.stories.tsx +32 -0
- package/src/Tabs/index.tsx +188 -133
- package/src/Toast/Toast.spec.tsx +208 -8
- package/src/Toast/Toast.stories.tsx +97 -16
- package/src/Toast/index.tsx +322 -78
- package/src/Toast/store.ts +150 -16
- package/src/Tooltip/Tooltip.lc50.spec.tsx +52 -0
- package/src/Tooltip/Tooltip.spec.tsx +99 -0
- package/src/Tooltip/Tooltip.stories.tsx +23 -0
- package/src/Tooltip/index.tsx +200 -44
- package/src/Video/PlayerChrome.tsx +412 -0
- package/src/Video/Video.spec.tsx +47 -4
- package/src/Video/Video.stories.tsx +2 -1
- package/src/Video/VideoFrame.tsx +15 -3
- package/src/Video/index.native.tsx +20 -12
- package/src/Video/index.tsx +285 -21
- package/src/Video/types.ts +7 -1
- package/src/Wheel/Wheel.spec.tsx +217 -2
- package/src/Wheel/Wheel.stories.tsx +39 -13
- package/src/Wheel/index.tsx +205 -134
- package/src/actions/DestructiveAction.tsx +1 -1
- package/src/charts/BarChart.tsx +14 -3
- package/src/charts/LineChart.tsx +1 -1
- package/src/charts/PieChart.tsx +1 -1
- package/src/charts/Sparkline.tsx +1 -1
- package/src/charts/charts.spec.tsx +25 -0
- package/src/charts/index.ts +9 -0
- package/src/code/CodeBlock/index.tsx +43 -7
- package/src/export-surface.spec.tsx +137 -0
- package/src/feedback/ConfirmDialog.spec.tsx +36 -0
- package/src/feedback/ConfirmDialog.stories.tsx +20 -1
- package/src/feedback/ConfirmDialog.tsx +121 -9
- package/src/feedback/NotifyHost.tsx +1 -1
- package/src/icons/themed.tsx +7 -2
- package/src/images/Image/Image.spec.tsx +136 -73
- package/src/images/Image/Image.stories.tsx +113 -9
- package/src/images/Image/ImageFrame.tsx +288 -0
- package/src/images/Image/index.native.tsx +177 -144
- package/src/images/Image/index.tsx +103 -51
- package/src/images/Image/shared.ts +88 -0
- package/src/images/Image/types.ts +32 -1
- package/src/index.ts +18 -0
- package/src/knobImmuneExports.ts +97 -0
- package/src/layouts/AsyncBoundary.spec.tsx +77 -0
- package/src/layouts/AsyncBoundary.stories.tsx +33 -1
- package/src/layouts/AsyncBoundary.tsx +183 -46
- package/src/layouts/Attachments.stories.tsx +28 -14
- package/src/layouts/Breadcrumbs.stories.tsx +22 -1
- package/src/layouts/EmptyState.stories.tsx +94 -26
- package/src/layouts/EmptyState.tsx +169 -0
- package/src/layouts/PageHeader.stories.tsx +68 -15
- package/src/layouts/PageTemplates.tsx +11 -6
- package/src/layouts/PaneScaffold.stories.tsx +132 -37
- package/src/layouts/PaneScaffold.tsx +354 -18
- package/src/layouts/ScreenToolbar.stories.tsx +36 -11
- package/src/layouts/Sidebar.stories.tsx +30 -7
- package/src/layouts/Tags.stories.tsx +31 -32
- package/src/layouts/Timeline.stories.tsx +2 -2
- package/src/layouts/Toolbar.stories.tsx +19 -0
- package/src/layouts/ViewSwitcher.stories.tsx +11 -3
- package/src/layouts/ViewSwitcher.tsx +101 -48
- package/src/layouts/attachments.tsx +394 -186
- package/src/layouts/breadcrumbs.tsx +213 -75
- package/src/layouts/layouts.spec.tsx +32 -0
- package/src/layouts/page.tsx +103 -164
- package/src/layouts/pageHeadingScope.tsx +28 -2
- package/src/layouts/sidebar.tsx +184 -91
- package/src/layouts/tags-trigger.spec.tsx +8 -8
- package/src/layouts/tags.tsx +356 -159
- package/src/layouts/timeline-comments.spec.tsx +17 -0
- package/src/layouts/timeline.tsx +179 -65
- package/src/layouts/toolbar.tsx +78 -27
- package/src/shared/i18n.ts +26 -0
- package/src/shared/textRidesText.ts +57 -0
- package/src/shared/useReturnFocusOnClose.ts +7 -1
- package/src/surfaces.tsx +83 -22
- package/src/tamagui.spec.ts +19 -4
- package/src/tamagui.ts +14 -6
- package/src/views/Calendar.stories.tsx +2 -1
- package/src/views/Calendar.tsx +129 -81
- package/src/views/Dashboard.stories.tsx +132 -1
- package/src/views/Dashboard.tsx +440 -127
- package/src/views/Gantt.stories.tsx +6 -5
- package/src/views/Gantt.tsx +330 -61
- package/src/views/ImageGrid.stories.tsx +81 -17
- package/src/views/ImageGrid.tsx +176 -96
- package/src/views/Kanban.native.tsx +73 -42
- package/src/views/Kanban.stories.tsx +42 -26
- package/src/views/Kanban.tsx +68 -40
- package/src/views/List.stories.tsx +107 -29
- package/src/views/List.tsx +335 -109
- package/src/views/ReportBuilder.stories.tsx +28 -1
- package/src/views/ReportBuilder.tsx +647 -275
- package/src/views/TreeView.stories.tsx +19 -0
- package/src/views/TreeView.tsx +194 -59
- package/types/Accordion/index.d.ts +10 -2
- package/types/Accordion/index.d.ts.map +1 -1
- package/types/Alert/index.d.ts +8 -2
- package/types/Alert/index.d.ts.map +1 -1
- package/types/AnimateHeight/index.d.ts +48 -0
- package/types/AnimateHeight/index.d.ts.map +1 -0
- package/types/Avatar/getInitials.d.ts +26 -0
- package/types/Avatar/getInitials.d.ts.map +1 -1
- package/types/Avatar/index.d.ts +34 -11
- package/types/Avatar/index.d.ts.map +1 -1
- package/types/Badge/index.d.ts +17 -12
- package/types/Badge/index.d.ts.map +1 -1
- package/types/Button.d.ts +42 -0
- package/types/Button.d.ts.map +1 -0
- package/types/Carousel/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts +41 -1
- package/types/Chip/index.d.ts.map +1 -1
- package/types/DotIndicator/index.d.ts +4 -3
- package/types/DotIndicator/index.d.ts.map +1 -1
- package/types/DropdownMenu/index.d.ts +39 -5
- package/types/DropdownMenu/index.d.ts.map +1 -1
- package/types/ErrorBoundary/index.d.ts +1 -1
- package/types/Pagination.d.ts.map +1 -1
- package/types/ProgressSteps/index.d.ts +20 -5
- package/types/ProgressSteps/index.d.ts.map +1 -1
- package/types/Quote/index.d.ts +4 -3
- package/types/Quote/index.d.ts.map +1 -1
- package/types/SheetModal/index.d.ts +7 -10
- package/types/SheetModal/index.d.ts.map +1 -1
- package/types/SheetModal/index.native.d.ts +6 -13
- package/types/SheetModal/index.native.d.ts.map +1 -1
- package/types/Skeleton/index.d.ts +40 -1
- package/types/Skeleton/index.d.ts.map +1 -1
- package/types/SkipLink/index.d.ts +5 -6
- package/types/SkipLink/index.d.ts.map +1 -1
- package/types/Tabs/index.d.ts +12 -10
- package/types/Tabs/index.d.ts.map +1 -1
- package/types/Toast/index.d.ts +32 -9
- package/types/Toast/index.d.ts.map +1 -1
- package/types/Toast/store.d.ts +59 -4
- package/types/Toast/store.d.ts.map +1 -1
- package/types/Tooltip/index.d.ts +50 -5
- package/types/Tooltip/index.d.ts.map +1 -1
- package/types/Video/PlayerChrome.d.ts +24 -0
- package/types/Video/PlayerChrome.d.ts.map +1 -0
- package/types/Video/VideoFrame.d.ts.map +1 -1
- package/types/Video/index.d.ts +3 -2
- package/types/Video/index.d.ts.map +1 -1
- package/types/Video/index.native.d.ts +3 -2
- package/types/Video/index.native.d.ts.map +1 -1
- package/types/Video/types.d.ts +7 -1
- package/types/Video/types.d.ts.map +1 -1
- package/types/Wheel/index.d.ts +10 -1
- package/types/Wheel/index.d.ts.map +1 -1
- package/types/charts/BarChart.d.ts +7 -1
- package/types/charts/BarChart.d.ts.map +1 -1
- package/types/charts/index.d.ts +1 -0
- package/types/charts/index.d.ts.map +1 -1
- package/types/code/CodeBlock/index.d.ts.map +1 -1
- package/types/feedback/ConfirmDialog.d.ts +6 -0
- package/types/feedback/ConfirmDialog.d.ts.map +1 -1
- package/types/icons/themed.d.ts.map +1 -1
- package/types/images/Image/ImageFrame.d.ts +40 -0
- package/types/images/Image/ImageFrame.d.ts.map +1 -0
- package/types/images/Image/index.d.ts +1 -1
- package/types/images/Image/index.d.ts.map +1 -1
- package/types/images/Image/index.native.d.ts +1 -1
- package/types/images/Image/index.native.d.ts.map +1 -1
- package/types/images/Image/shared.d.ts +13 -0
- package/types/images/Image/shared.d.ts.map +1 -0
- package/types/images/Image/types.d.ts +27 -1
- package/types/images/Image/types.d.ts.map +1 -1
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -1
- package/types/knobImmuneExports.d.ts +21 -0
- package/types/knobImmuneExports.d.ts.map +1 -0
- package/types/layouts/AsyncBoundary.d.ts +20 -2
- package/types/layouts/AsyncBoundary.d.ts.map +1 -1
- package/types/layouts/EmptyState.d.ts +26 -0
- package/types/layouts/EmptyState.d.ts.map +1 -0
- package/types/layouts/PageTemplates.d.ts +5 -3
- package/types/layouts/PageTemplates.d.ts.map +1 -1
- package/types/layouts/PaneScaffold.d.ts +27 -5
- package/types/layouts/PaneScaffold.d.ts.map +1 -1
- package/types/layouts/ViewSwitcher.d.ts +7 -4
- package/types/layouts/ViewSwitcher.d.ts.map +1 -1
- package/types/layouts/attachments.d.ts +4 -2
- package/types/layouts/attachments.d.ts.map +1 -1
- package/types/layouts/breadcrumbs.d.ts +13 -5
- package/types/layouts/breadcrumbs.d.ts.map +1 -1
- package/types/layouts/page.d.ts +16 -27
- package/types/layouts/page.d.ts.map +1 -1
- package/types/layouts/pageHeadingScope.d.ts +14 -1
- package/types/layouts/pageHeadingScope.d.ts.map +1 -1
- package/types/layouts/sidebar.d.ts +3 -1
- package/types/layouts/sidebar.d.ts.map +1 -1
- package/types/layouts/tags.d.ts +4 -1
- package/types/layouts/tags.d.ts.map +1 -1
- package/types/layouts/timeline.d.ts +7 -5
- package/types/layouts/timeline.d.ts.map +1 -1
- package/types/layouts/toolbar.d.ts +1 -1
- package/types/layouts/toolbar.d.ts.map +1 -1
- package/types/shared/i18n.d.ts +14 -0
- package/types/shared/i18n.d.ts.map +1 -0
- package/types/shared/textRidesText.d.ts +20 -0
- package/types/shared/textRidesText.d.ts.map +1 -0
- package/types/shared/useReturnFocusOnClose.d.ts.map +1 -1
- package/types/surfaces.d.ts +0 -14
- package/types/surfaces.d.ts.map +1 -1
- package/types/tamagui.d.ts +2 -3
- package/types/tamagui.d.ts.map +1 -1
- package/types/views/Calendar.d.ts.map +1 -1
- package/types/views/Dashboard.d.ts +68 -6
- package/types/views/Dashboard.d.ts.map +1 -1
- package/types/views/Gantt.d.ts +5 -0
- package/types/views/Gantt.d.ts.map +1 -1
- package/types/views/ImageGrid.d.ts +4 -0
- package/types/views/ImageGrid.d.ts.map +1 -1
- package/types/views/Kanban.d.ts.map +1 -1
- package/types/views/Kanban.native.d.ts +12 -1
- package/types/views/Kanban.native.d.ts.map +1 -1
- package/types/views/List.d.ts +45 -6
- package/types/views/List.d.ts.map +1 -1
- package/types/views/ReportBuilder.d.ts +8 -54
- package/types/views/ReportBuilder.d.ts.map +1 -1
- package/types/views/TreeView.d.ts +13 -11
- package/types/views/TreeView.d.ts.map +1 -1
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { ImageURISource } from "react-native";
|
|
1
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
2
|
import { Image as TamaguiImage } from "tamagui";
|
|
4
|
-
import {
|
|
3
|
+
import { ImageFrame, mediaFillProps, type ImageStatus } from "./ImageFrame";
|
|
4
|
+
import { isThumbnailSize, useResolvedImageSource } from "./shared";
|
|
5
5
|
import type { ImageProps } from "./types";
|
|
6
6
|
|
|
7
7
|
export type { ImageProps } from "./types";
|
|
8
8
|
|
|
9
9
|
export function Image({
|
|
10
|
-
alt,
|
|
10
|
+
alt = "",
|
|
11
11
|
blurRadius: _blurRadius,
|
|
12
12
|
capInsets: _capInsets,
|
|
13
13
|
crossOrigin,
|
|
14
14
|
defaultSource: _defaultSource,
|
|
15
15
|
fadeDuration: _fadeDuration,
|
|
16
16
|
loadingIndicatorSource: _loadingIndicatorSource,
|
|
17
|
-
objectFit,
|
|
17
|
+
objectFit: objectFitProp,
|
|
18
|
+
objectPosition,
|
|
18
19
|
onError,
|
|
19
20
|
onLoad,
|
|
20
21
|
onLoadEnd,
|
|
@@ -29,60 +30,111 @@ export function Image({
|
|
|
29
30
|
srcSet,
|
|
30
31
|
svg: _svg,
|
|
31
32
|
tintColor: _tintColor,
|
|
33
|
+
fill = false,
|
|
34
|
+
sizes,
|
|
35
|
+
loading: loadingProp,
|
|
36
|
+
priority,
|
|
37
|
+
placeholder = "empty",
|
|
38
|
+
placeholderSrc,
|
|
39
|
+
fallback,
|
|
40
|
+
framed,
|
|
41
|
+
size,
|
|
42
|
+
compact = false,
|
|
43
|
+
groupPosition,
|
|
44
|
+
groupOrientation,
|
|
45
|
+
decoding = "async",
|
|
46
|
+
onPress,
|
|
47
|
+
disabled,
|
|
48
|
+
width,
|
|
49
|
+
height,
|
|
50
|
+
aspectRatio,
|
|
51
|
+
borderRadius,
|
|
32
52
|
...props
|
|
33
53
|
}: ImageProps) {
|
|
34
|
-
const source = sourceProp
|
|
35
|
-
const
|
|
54
|
+
const { source, resolvedSrc } = useResolvedImageSource(sourceProp, src);
|
|
55
|
+
const hasSource = Boolean(resolvedSrc) || typeof source === "number";
|
|
56
|
+
const thumbnail = size != null && (isThumbnailSize(size) || typeof size === "number");
|
|
57
|
+
const isFramed = framed ?? thumbnail;
|
|
58
|
+
const objectFit = objectFitProp ?? (fill || thumbnail ? "cover" : undefined);
|
|
59
|
+
const loading = priority ? "eager" : (loadingProp ?? "lazy");
|
|
36
60
|
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (typeof source === "number") return asset;
|
|
42
|
-
return (
|
|
43
|
-
(source as { default?: ImageURISource | ImageURISource[] })?.default ||
|
|
44
|
-
(source as ImageURISource | ImageURISource[])
|
|
45
|
-
);
|
|
46
|
-
}, [asset, source]);
|
|
61
|
+
const [status, setStatus] = useState<ImageStatus>(() => (hasSource ? "loading" : "error"));
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
setStatus(hasSource ? "loading" : "error");
|
|
64
|
+
}, [hasSource, resolvedSrc]);
|
|
47
65
|
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
66
|
+
const handleLoad = useCallback(
|
|
67
|
+
(event?: Parameters<NonNullable<ImageProps["onLoad"]>>[0]) => {
|
|
68
|
+
setStatus("loaded");
|
|
69
|
+
onLoad?.(event);
|
|
70
|
+
},
|
|
71
|
+
[onLoad],
|
|
72
|
+
);
|
|
73
|
+
const handleError = useCallback(
|
|
74
|
+
(error: Parameters<NonNullable<ImageProps["onError"]>>[0]) => {
|
|
75
|
+
setStatus("error");
|
|
76
|
+
onError?.(error);
|
|
77
|
+
},
|
|
78
|
+
[onError],
|
|
79
|
+
);
|
|
55
80
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
// mirrors how the width-only path keeps its ratio.
|
|
60
|
-
const { width, height, aspectRatio } = props as {
|
|
61
|
-
width?: unknown;
|
|
62
|
-
height?: unknown;
|
|
63
|
-
aspectRatio?: unknown;
|
|
64
|
-
};
|
|
65
|
-
const heightOnly =
|
|
66
|
-
typeof height !== "undefined" &&
|
|
67
|
-
typeof width === "undefined" &&
|
|
68
|
-
typeof aspectRatio === "undefined";
|
|
81
|
+
if (!hasSource && !isFramed && fallback == null && !fill && size == null) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
69
84
|
|
|
70
85
|
return (
|
|
71
|
-
<
|
|
72
|
-
{...(props as any)}
|
|
73
|
-
{...(heightOnly && { width: "auto", alignSelf: "flex-start" })}
|
|
86
|
+
<ImageFrame
|
|
74
87
|
alt={alt}
|
|
75
|
-
|
|
88
|
+
fill={fill}
|
|
89
|
+
framed={isFramed}
|
|
90
|
+
compact={compact}
|
|
91
|
+
groupPosition={groupPosition}
|
|
92
|
+
groupOrientation={groupOrientation}
|
|
93
|
+
size={size}
|
|
94
|
+
width={width}
|
|
95
|
+
height={height}
|
|
96
|
+
aspectRatio={aspectRatio}
|
|
97
|
+
borderRadius={borderRadius}
|
|
76
98
|
objectFit={objectFit}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
99
|
+
objectPosition={objectPosition}
|
|
100
|
+
onPress={onPress}
|
|
101
|
+
disabled={disabled}
|
|
102
|
+
hasSource={hasSource}
|
|
103
|
+
status={status}
|
|
104
|
+
placeholder={placeholder}
|
|
105
|
+
placeholderSrc={placeholderSrc}
|
|
106
|
+
fallback={fallback}
|
|
107
|
+
{...props}
|
|
108
|
+
>
|
|
109
|
+
{hasSource && status !== "error" ? (
|
|
110
|
+
<TamaguiImage
|
|
111
|
+
alt={alt}
|
|
112
|
+
crossOrigin={crossOrigin}
|
|
113
|
+
decoding={decoding}
|
|
114
|
+
fetchPriority={priority ? "high" : undefined}
|
|
115
|
+
loading={loading}
|
|
116
|
+
objectFit={objectFit}
|
|
117
|
+
objectPosition={objectPosition}
|
|
118
|
+
onError={handleError as never}
|
|
119
|
+
onLoad={handleLoad as never}
|
|
120
|
+
onLoadEnd={onLoadEnd}
|
|
121
|
+
onLoadStart={onLoadStart}
|
|
122
|
+
onProgress={onProgress}
|
|
123
|
+
referrerPolicy={referrerPolicy}
|
|
124
|
+
sizes={sizes}
|
|
125
|
+
src={resolvedSrc}
|
|
126
|
+
srcSet={srcSet}
|
|
127
|
+
{...mediaFillProps({
|
|
128
|
+
fill,
|
|
129
|
+
thumbnail,
|
|
130
|
+
width,
|
|
131
|
+
height,
|
|
132
|
+
aspectRatio,
|
|
133
|
+
objectFit,
|
|
134
|
+
objectPosition,
|
|
135
|
+
})}
|
|
136
|
+
/>
|
|
137
|
+
) : null}
|
|
138
|
+
</ImageFrame>
|
|
87
139
|
);
|
|
88
140
|
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import type { ImageURISource } from "react-native";
|
|
3
|
+
import { useAssets } from "../../hooks/useAssets";
|
|
4
|
+
import type { ImageThumbnailSize } from "./types";
|
|
5
|
+
|
|
6
|
+
export function isThumbnailSize(size: unknown): size is ImageThumbnailSize {
|
|
7
|
+
return size === "extraSmall" || size === "small" || size === "medium" || size === "large";
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function thumbnailPx(
|
|
11
|
+
size: ImageThumbnailSize | number,
|
|
12
|
+
nestedPx: number,
|
|
13
|
+
compact: boolean,
|
|
14
|
+
): number {
|
|
15
|
+
if (typeof size === "number") return Math.max(0, size);
|
|
16
|
+
if (size === "extraSmall") return nestedPx;
|
|
17
|
+
if (compact) {
|
|
18
|
+
if (size === "small") return nestedPx;
|
|
19
|
+
if (size === "medium") return 40;
|
|
20
|
+
return 60;
|
|
21
|
+
}
|
|
22
|
+
if (size === "small") return 40;
|
|
23
|
+
if (size === "medium") return 60;
|
|
24
|
+
return 80;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function isSvgUri(uri: string | undefined, svgFlag?: boolean): boolean {
|
|
28
|
+
if (svgFlag) return true;
|
|
29
|
+
if (!uri) return false;
|
|
30
|
+
return /\.svg([?#]|$)/.test(uri) || uri.startsWith("data:image/svg+xml");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function useResolvedImageSource(sourceProp: unknown, src: unknown) {
|
|
34
|
+
const source = sourceProp || src;
|
|
35
|
+
const [asset] = useAssets(typeof source === "number" ? [source] : []);
|
|
36
|
+
|
|
37
|
+
const imageUriSource = useMemo(() => {
|
|
38
|
+
if (typeof source === "string") {
|
|
39
|
+
return { uri: source } satisfies ImageURISource;
|
|
40
|
+
}
|
|
41
|
+
if (typeof source === "number") return asset;
|
|
42
|
+
return (
|
|
43
|
+
(source as { default?: ImageURISource | ImageURISource[] })?.default ||
|
|
44
|
+
(source as ImageURISource | ImageURISource[])
|
|
45
|
+
);
|
|
46
|
+
}, [asset, source]);
|
|
47
|
+
|
|
48
|
+
const resolvedSrc = useMemo(() => {
|
|
49
|
+
if (typeof source === "string") return source;
|
|
50
|
+
if (!imageUriSource || Array.isArray(imageUriSource)) return undefined;
|
|
51
|
+
return imageUriSource.uri;
|
|
52
|
+
}, [source, imageUriSource]);
|
|
53
|
+
|
|
54
|
+
return { source, imageUriSource, resolvedSrc };
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function objectFitToResizeMode(
|
|
58
|
+
objectFit: string | undefined,
|
|
59
|
+
): "cover" | "contain" | "stretch" | "center" | undefined {
|
|
60
|
+
switch (objectFit) {
|
|
61
|
+
case "cover":
|
|
62
|
+
return "cover";
|
|
63
|
+
case "contain":
|
|
64
|
+
case "scale-down":
|
|
65
|
+
return "contain";
|
|
66
|
+
case "fill":
|
|
67
|
+
return "stretch";
|
|
68
|
+
case "none":
|
|
69
|
+
return "center";
|
|
70
|
+
default:
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export function svgPreserveAspectRatio(objectFit: string | undefined): string | undefined {
|
|
76
|
+
switch (objectFit) {
|
|
77
|
+
case "contain":
|
|
78
|
+
case "scale-down":
|
|
79
|
+
return "xMidYMid meet";
|
|
80
|
+
case "cover":
|
|
81
|
+
return "xMidYMid slice";
|
|
82
|
+
case "fill":
|
|
83
|
+
case "none":
|
|
84
|
+
return "none";
|
|
85
|
+
default:
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -1,8 +1,39 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
1
2
|
import type { ImageErrorEventData, ImageLoadEventData, NativeSyntheticEvent } from "react-native";
|
|
3
|
+
import type { GroupOrientation, GroupPosition } from "@multiplatform.one/theme";
|
|
2
4
|
import type { ImageProps as TamaguiImageProps } from "tamagui";
|
|
3
5
|
|
|
4
|
-
|
|
6
|
+
/** Polaris Thumbnail sizes. `extraSmall` is the LC-73 nested control box. */
|
|
7
|
+
export type ImageThumbnailSize = "extraSmall" | "small" | "medium" | "large";
|
|
8
|
+
|
|
9
|
+
export type ImagePlaceholder = "empty" | "blur" | "skeleton" | ReactNode;
|
|
10
|
+
|
|
11
|
+
export type ImageProps = Omit<
|
|
12
|
+
TamaguiImageProps,
|
|
13
|
+
"resizeMode" | "onLoad" | "onError" | "size" | "fill"
|
|
14
|
+
> & {
|
|
5
15
|
onLoad?: (event?: NativeSyntheticEvent<ImageLoadEventData>) => void;
|
|
6
16
|
onError?: (error: NativeSyntheticEvent<ImageErrorEventData> | Error) => void;
|
|
7
17
|
svg?: boolean;
|
|
18
|
+
/** Next.js `fill` — paint the positioned parent (absolute inset 0). */
|
|
19
|
+
fill?: boolean;
|
|
20
|
+
/** Responsive hint for `srcset` (Next.js `sizes`). */
|
|
21
|
+
sizes?: string;
|
|
22
|
+
loading?: "lazy" | "eager";
|
|
23
|
+
/** Above-the-fold: `loading=eager` + `fetchPriority=high`. */
|
|
24
|
+
priority?: boolean;
|
|
25
|
+
placeholder?: ImagePlaceholder;
|
|
26
|
+
/** Blur-up source (Next.js `blurDataURL` / Expo placeholder URI). */
|
|
27
|
+
placeholderSrc?: string;
|
|
28
|
+
/** LC-08: shown when the asset is missing or fails. */
|
|
29
|
+
fallback?: ReactNode;
|
|
30
|
+
objectPosition?: string;
|
|
31
|
+
/** Polaris Thumbnail chrome: surface + radius recipes, cover fit. */
|
|
32
|
+
framed?: boolean;
|
|
33
|
+
/** Square thumbnail. Number is px. `extraSmall` uses nestedControl (LC-73). */
|
|
34
|
+
size?: ImageThumbnailSize | number;
|
|
35
|
+
compact?: boolean;
|
|
36
|
+
groupPosition?: GroupPosition;
|
|
37
|
+
groupOrientation?: GroupOrientation;
|
|
38
|
+
decoding?: "async" | "auto" | "sync";
|
|
8
39
|
};
|
package/src/index.ts
CHANGED
|
@@ -38,6 +38,8 @@ export type {
|
|
|
38
38
|
AccordionTriggerProps,
|
|
39
39
|
AccordionContentProps,
|
|
40
40
|
} from "./Accordion";
|
|
41
|
+
export { AnimateHeight, settleMs } from "./AnimateHeight";
|
|
42
|
+
export type { AnimateHeightProps } from "./AnimateHeight";
|
|
41
43
|
// Explicit named export wins over the `export * from "tamagui"` star export
|
|
42
44
|
// (same pattern as Tooltip) so MP1 Tabs shadows the tamagui primitive.
|
|
43
45
|
export { Tabs } from "./Tabs";
|
|
@@ -90,6 +92,22 @@ export type { AvatarProps, AvatarSize } from "./Avatar";
|
|
|
90
92
|
export { Fieldset } from "@multiplatform.one/forms";
|
|
91
93
|
export type { FieldsetProps } from "@multiplatform.one/forms";
|
|
92
94
|
|
|
95
|
+
// Shadow tamagui Spinner with the knob-consuming forms Spinner (LC-70 census
|
|
96
|
+
// 2026-08-13): raw Spinner keeps spinning at animation "none" /
|
|
97
|
+
// prefers-reduced-motion and ignores the size knob; the forms house version
|
|
98
|
+
// gates its motion on knobProps.transition, maps the size knob's top step to
|
|
99
|
+
// "large", and carries role="status" a11y. The curated ./tamagui surface no
|
|
100
|
+
// longer exports the bare name; raw stays reachable as TamaguiSpinner.
|
|
101
|
+
export { Spinner } from "@multiplatform.one/forms";
|
|
102
|
+
export type { SpinnerProps } from "@multiplatform.one/forms";
|
|
103
|
+
|
|
104
|
+
// Shadow tamagui Button with the house wrapper over the forms Button
|
|
105
|
+
// (knob fragments + LC-54 press floor + LC-53 icon slot, plus the raw
|
|
106
|
+
// `variant="outlined"` prop-compat). The curated ./tamagui surface no
|
|
107
|
+
// longer exports the bare name; raw stays reachable as TamaguiButton.
|
|
108
|
+
export { Button } from "./Button";
|
|
109
|
+
export type { ButtonProps } from "./Button";
|
|
110
|
+
|
|
93
111
|
export type { ImageProps } from "./images/Image";
|
|
94
112
|
export { Image } from "./images/Image";
|
|
95
113
|
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-70 CURATED-REEXPORT-IS-CATALOG registry — every bare-name export of the
|
|
3
|
+
* @multiplatform.one/components barrel that IS a raw framework re-export
|
|
4
|
+
* (value-identical to the tamagui / @tamagui/toast export of the same name)
|
|
5
|
+
* must have a row here declaring WHY it is knob-immune, or the export-surface
|
|
6
|
+
* spec (./export-surface.spec.tsx) fails the suite.
|
|
7
|
+
*
|
|
8
|
+
* A row is a declaration that the knob channel legitimately does not apply to
|
|
9
|
+
* this export — NOT an amnesty for knob-dead painted UI. If a raw primitive
|
|
10
|
+
* paints opinionated chrome (radius, padding, press states) it belongs behind
|
|
11
|
+
* a `Tamagui*` escape hatch or a house shadow (Button/Spinner precedent), not
|
|
12
|
+
* in this file. Rows marked ADJUDICATION-CANDIDATE are flagged for the
|
|
13
|
+
* rulebook owner; see the census report.
|
|
14
|
+
*
|
|
15
|
+
* Locked both directions by export-surface.spec.tsx:
|
|
16
|
+
* - every raw bare export must be registered (or Tamagui*-prefixed);
|
|
17
|
+
* - every row must correspond to a live raw bare export (no stale rows, no
|
|
18
|
+
* laundering house implementations through the registry).
|
|
19
|
+
*/
|
|
20
|
+
export const knobImmuneExports: Readonly<Record<string, string>> = {
|
|
21
|
+
// ── Structural layout lego ────────────────────────────────────────────
|
|
22
|
+
// The knobs system is designed around these: house surfaces SPREAD
|
|
23
|
+
// knobProps.* fragments ONTO View/Stack/etc (knobs-system.md). The lego
|
|
24
|
+
// itself carries no opinionated chrome; a self-knobbing primitive would
|
|
25
|
+
// double-apply fragments under every house surface.
|
|
26
|
+
View: "unopinionated layout lego; knob fragments are spread onto it by composing surfaces",
|
|
27
|
+
XStack: "unopinionated layout lego; knob fragments are spread onto it by composing surfaces",
|
|
28
|
+
YStack: "unopinionated layout lego; knob fragments are spread onto it by composing surfaces",
|
|
29
|
+
XGroup: "layout grouping lego; knob fragments are spread onto it by composing surfaces",
|
|
30
|
+
YGroup: "layout grouping lego; knob fragments are spread onto it by composing surfaces",
|
|
31
|
+
Group: "layout grouping lego; knob fragments are spread onto it by composing surfaces",
|
|
32
|
+
Spacer: "pure whitespace; no paintable chrome for knobs to reach",
|
|
33
|
+
Square: "geometric lego (fixed aspect); consumers spread knob fragments onto it",
|
|
34
|
+
Circle: "geometric lego (identity circle by definition); radius knob story is N/A",
|
|
35
|
+
ScrollView: "scroll container lego; no opinionated chrome, fragments ride the content",
|
|
36
|
+
Separator:
|
|
37
|
+
"token-driven hairline ($borderColor / hairline width); no knob channel maps to it today. ADJUDICATION-CANDIDATE: should borderWidth knob drive separator weight?",
|
|
38
|
+
ListItem:
|
|
39
|
+
"raw list-row primitive consumed as lego by house list surfaces (List, sidebar, tags) which own the knob story. ADJUDICATION-CANDIDATE + BACKLOG: painted row with own padding/press states — deserves a house shadow or Tamagui* demotion once consumers migrate",
|
|
40
|
+
|
|
41
|
+
// ── Typography lego ───────────────────────────────────────────────────
|
|
42
|
+
// Text knobs (bodyFont, headingFont, fontWeight, textAccent) ride the
|
|
43
|
+
// knobProps.body / knobProps.heading fragments that composing surfaces
|
|
44
|
+
// spread; the primitives are the substrate those fragments land on.
|
|
45
|
+
Text: "typography substrate; font knobs ride knobProps.body/heading fragments spread by surfaces",
|
|
46
|
+
SizableText: "typography substrate; font knobs ride spread fragments",
|
|
47
|
+
Paragraph: "typography substrate; font knobs ride spread fragments",
|
|
48
|
+
Heading: "typography substrate; font knobs ride knobProps.heading fragments",
|
|
49
|
+
H1: "typography substrate; heading knobs ride knobProps.heading/pageTitle fragments",
|
|
50
|
+
H2: "typography substrate; heading knobs ride knobProps.heading fragments",
|
|
51
|
+
H3: "typography substrate; heading knobs ride knobProps.heading fragments",
|
|
52
|
+
H4: "typography substrate; heading knobs ride knobProps.heading fragments",
|
|
53
|
+
H5: "typography substrate; heading knobs ride knobProps.heading fragments",
|
|
54
|
+
H6: "typography substrate; heading knobs ride knobProps.heading fragments",
|
|
55
|
+
Anchor:
|
|
56
|
+
"text link substrate; typography knobs ride spread fragments. ADJUDICATION-CANDIDATE: link color/underline currently tamagui-default, no LC rule owns link chrome",
|
|
57
|
+
|
|
58
|
+
// ── Overlay composition roots ─────────────────────────────────────────
|
|
59
|
+
// Logic shells with no painted frame of their own; the knob channel lands
|
|
60
|
+
// on the house content surfaces designed to fill them (DialogContent,
|
|
61
|
+
// PopoverContent, SheetFrame, ConfirmDialog).
|
|
62
|
+
Dialog: "composition root (logic/portal shell); knobs land on house DialogContent",
|
|
63
|
+
AlertDialog:
|
|
64
|
+
"composition root; knobs land on house ConfirmDialog / DialogContent surfaces composed inside",
|
|
65
|
+
Popover: "composition root; knobs land on house PopoverContent",
|
|
66
|
+
Sheet: "composition root; knobs land on house SheetFrame",
|
|
67
|
+
Adapt: "platform adaptation control-flow component; renders nothing itself",
|
|
68
|
+
Portal: "reparenting utility; renders children elsewhere, paints nothing",
|
|
69
|
+
PortalProvider: "provider; paints nothing",
|
|
70
|
+
|
|
71
|
+
// ── Providers / theme / animation drivers ────────────────────────────
|
|
72
|
+
TamaguiProvider: "root provider (tamagui's own name, not an escape hatch); paints nothing",
|
|
73
|
+
Theme: "theme scoping provider; hue selection is the theme system, not a knob",
|
|
74
|
+
AnimatePresence:
|
|
75
|
+
"mount/unmount choreography wrapper; motion values come from knob-gated children",
|
|
76
|
+
|
|
77
|
+
// ── Hooks (non-visual) ────────────────────────────────────────────────
|
|
78
|
+
useControllableState: "state hook; no rendered output",
|
|
79
|
+
useDidFinishSSR: "SSR lifecycle hook; no rendered output",
|
|
80
|
+
useEvent: "callback identity hook; no rendered output",
|
|
81
|
+
useMedia: "media query hook; no rendered output",
|
|
82
|
+
usePropsAndStyle: "style resolution hook; no rendered output",
|
|
83
|
+
useTheme: "theme access hook; no rendered output",
|
|
84
|
+
useThemeName: "theme access hook; no rendered output",
|
|
85
|
+
useToastController: "imperative toast controller hook (@tamagui/toast); no rendered output",
|
|
86
|
+
useToastState: "toast state hook (@tamagui/toast); no rendered output",
|
|
87
|
+
|
|
88
|
+
// ── Styling / token utilities (non-visual) ────────────────────────────
|
|
89
|
+
styled: "component factory; output components consume knobs where house code applies them",
|
|
90
|
+
createStyledContext: "context factory utility; no rendered output",
|
|
91
|
+
withStaticProperties: "object composition utility; no rendered output",
|
|
92
|
+
getToken: "token lookup utility; no rendered output",
|
|
93
|
+
getTokens: "token lookup utility; no rendered output",
|
|
94
|
+
getTokenValue: "token lookup utility; no rendered output",
|
|
95
|
+
isClient: "environment boolean; not a component",
|
|
96
|
+
isWeb: "environment boolean; not a component",
|
|
97
|
+
};
|
|
@@ -55,6 +55,83 @@ describe("AsyncBoundary", () => {
|
|
|
55
55
|
expect(screen.queryByText("No items found")).toBeNull();
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
+
it("keeps previous data on refetch instead of replacing it with a skeleton", () => {
|
|
59
|
+
const { rerender } = renderWithProviders(
|
|
60
|
+
<AsyncBoundary layout="list">
|
|
61
|
+
<Text>Ready rows</Text>
|
|
62
|
+
</AsyncBoundary>,
|
|
63
|
+
);
|
|
64
|
+
expect(screen.getByText("Ready rows")).toBeInTheDocument();
|
|
65
|
+
|
|
66
|
+
rerender(
|
|
67
|
+
<AsyncBoundary loading layout="list">
|
|
68
|
+
<Text>Ready rows</Text>
|
|
69
|
+
</AsyncBoundary>,
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
expect(screen.getByText("Ready rows")).toBeInTheDocument();
|
|
73
|
+
expect(document.querySelector("[data-async-skeleton]")).toBeNull();
|
|
74
|
+
expect(document.querySelector("[data-async-pending]")).toBeTruthy();
|
|
75
|
+
expect(document.querySelector('[data-async-status="data"]')).toBeTruthy();
|
|
76
|
+
expect(document.querySelector("[data-async-status]")).toHaveAttribute("aria-busy", "true");
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("keeps previous data when children unmount during a refetch", () => {
|
|
80
|
+
const { rerender } = renderWithProviders(
|
|
81
|
+
<AsyncBoundary layout="list">
|
|
82
|
+
<Text>Ready rows</Text>
|
|
83
|
+
</AsyncBoundary>,
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
rerender(<AsyncBoundary loading layout="list" />);
|
|
87
|
+
|
|
88
|
+
expect(screen.getByText("Ready rows")).toBeInTheDocument();
|
|
89
|
+
expect(document.querySelector("[data-async-skeleton]")).toBeNull();
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it("still blanks on refetch when keepPrevious is false", () => {
|
|
93
|
+
const { rerender } = renderWithProviders(
|
|
94
|
+
<AsyncBoundary layout="list">
|
|
95
|
+
<Text>Ready rows</Text>
|
|
96
|
+
</AsyncBoundary>,
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
rerender(
|
|
100
|
+
<AsyncBoundary loading keepPrevious={false} layout="list">
|
|
101
|
+
<Text>Ready rows</Text>
|
|
102
|
+
</AsyncBoundary>,
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
expect(screen.queryByText("Ready rows")).toBeNull();
|
|
106
|
+
expect(document.querySelector("[data-async-skeleton]")).toBeTruthy();
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
it("keeps previous data on a refetch error and still offers retry", () => {
|
|
110
|
+
const onRetry = vi.fn();
|
|
111
|
+
const { rerender } = renderWithProviders(
|
|
112
|
+
<AsyncBoundary layout="list" onRetry={onRetry}>
|
|
113
|
+
<Text>Ready rows</Text>
|
|
114
|
+
</AsyncBoundary>,
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
rerender(
|
|
118
|
+
<AsyncBoundary
|
|
119
|
+
error="Network unreachable"
|
|
120
|
+
errorTitle="Couldn't load data"
|
|
121
|
+
layout="list"
|
|
122
|
+
onRetry={onRetry}
|
|
123
|
+
>
|
|
124
|
+
<Text>Ready rows</Text>
|
|
125
|
+
</AsyncBoundary>,
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
expect(screen.getByText("Ready rows")).toBeInTheDocument();
|
|
129
|
+
expect(screen.getByText("Couldn't load data")).toBeInTheDocument();
|
|
130
|
+
expect(document.querySelector("[data-async-stale]")).toBeTruthy();
|
|
131
|
+
fireEvent.click(screen.getByText("Retry"));
|
|
132
|
+
expect(onRetry).toHaveBeenCalledTimes(1);
|
|
133
|
+
});
|
|
134
|
+
|
|
58
135
|
it("shows empty chrome only when empty and not error (DG-ST-01)", () => {
|
|
59
136
|
renderWithProviders(<AsyncBoundary empty emptyTitle="Nothing here" compact />);
|
|
60
137
|
expect(screen.getByText("Nothing here")).toBeInTheDocument();
|
|
@@ -14,7 +14,7 @@ const meta: Meta<typeof AsyncBoundary> = {
|
|
|
14
14
|
docs: {
|
|
15
15
|
description: {
|
|
16
16
|
component:
|
|
17
|
-
"Async-state wrapper for data views (W9 / DG-ST-01,02,04 / DG-TBL-06). Priority: error → loading → empty → data. Empty chrome is forbidden when `error` is set;
|
|
17
|
+
"Async-state wrapper for data views (W9 / DG-ST-01,02,04 / DG-TBL-06). Priority: error → loading → empty → data. First load uses a layout-matched skeleton; later loads keep previous data (pending bar / inline error). Empty chrome is forbidden when `error` is set; count badges hide on a blocking failure.",
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
20
|
},
|
|
@@ -23,6 +23,7 @@ const meta: Meta<typeof AsyncBoundary> = {
|
|
|
23
23
|
control: "select",
|
|
24
24
|
options: ["list", "table", "kanban", "dashboard", "generic"] satisfies AsyncBoundaryLayout[],
|
|
25
25
|
},
|
|
26
|
+
keepPrevious: { control: "boolean" },
|
|
26
27
|
},
|
|
27
28
|
};
|
|
28
29
|
export default meta;
|
|
@@ -145,3 +146,34 @@ export const InteractiveCycle: Story = {
|
|
|
145
146
|
);
|
|
146
147
|
},
|
|
147
148
|
};
|
|
149
|
+
|
|
150
|
+
/** Settled rows stay painted while a later load is in flight (default keepPrevious). */
|
|
151
|
+
export const KeepPreviousOnRefetch: Story = {
|
|
152
|
+
render: () => {
|
|
153
|
+
const [phase, setPhase] = useState<"data" | "loading" | "error">("data");
|
|
154
|
+
return (
|
|
155
|
+
<YStack gap="$3" padding="$3" minHeight={320}>
|
|
156
|
+
<XStack gap="$2" flexWrap="wrap">
|
|
157
|
+
{(["data", "loading", "error"] as const).map((s) => (
|
|
158
|
+
<Button key={s} size="$3" onPress={() => setPhase(s)}>
|
|
159
|
+
{s}
|
|
160
|
+
</Button>
|
|
161
|
+
))}
|
|
162
|
+
</XStack>
|
|
163
|
+
<AsyncBoundary
|
|
164
|
+
loading={phase === "loading"}
|
|
165
|
+
error={phase === "error" ? "Refresh did not complete." : null}
|
|
166
|
+
errorTitle="Couldn't refresh"
|
|
167
|
+
layout="list"
|
|
168
|
+
onRetry={() => setPhase("loading")}
|
|
169
|
+
>
|
|
170
|
+
<YStack gap="$2" padding="$3">
|
|
171
|
+
<Text>Loaded item 1</Text>
|
|
172
|
+
<Text>Loaded item 2</Text>
|
|
173
|
+
<Text>Loaded item 3</Text>
|
|
174
|
+
</YStack>
|
|
175
|
+
</AsyncBoundary>
|
|
176
|
+
</YStack>
|
|
177
|
+
);
|
|
178
|
+
},
|
|
179
|
+
};
|