@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
|
@@ -14,11 +14,11 @@ const [, blue] = resolveChartPalette({ scheme: "light" }).categorical;
|
|
|
14
14
|
const day = (offset: number) => addDays(startOfDay(new Date()), offset);
|
|
15
15
|
|
|
16
16
|
const tasks: GanttTask[] = [
|
|
17
|
-
{ id: "1", title: "Discovery & scoping", start: day(-9), end: day(-5) },
|
|
18
|
-
{ id: "2", title: "Design review", start: day(-4), end: day(-1), intent: "warning" },
|
|
19
|
-
{ id: "3", title: "Implementation", start: day(-2), end: day(6), intent: "accent" },
|
|
20
|
-
{ id: "4", title: "QA pass", start: day(4), end: day(9), color: blue },
|
|
21
|
-
{ id: "5", title: "Docs & handoff", start: day(7), end: day(11), intent: "success" },
|
|
17
|
+
{ id: "1", title: "Discovery & scoping", start: day(-9), end: day(-5), progress: 100 },
|
|
18
|
+
{ id: "2", title: "Design review", start: day(-4), end: day(-1), intent: "warning", progress: 100 },
|
|
19
|
+
{ id: "3", title: "Implementation", start: day(-2), end: day(6), intent: "accent", progress: 55 },
|
|
20
|
+
{ id: "4", title: "QA pass", start: day(4), end: day(9), color: blue, progress: 20 },
|
|
21
|
+
{ id: "5", title: "Docs & handoff", start: day(7), end: day(11), intent: "success", progress: 0 },
|
|
22
22
|
{ id: "6", title: "Launch", start: day(12), end: day(12), intent: "error" },
|
|
23
23
|
];
|
|
24
24
|
|
|
@@ -162,6 +162,7 @@ const manyTasks: GanttTask[] = Array.from({ length: 16 }, (_, i) => ({
|
|
|
162
162
|
start: day(i - 8),
|
|
163
163
|
end: day(i - 8 + 2 + (i % 4)),
|
|
164
164
|
intent: (["accent", "success", "warning", "error"] as const)[i % 4],
|
|
165
|
+
progress: (i * 17) % 100,
|
|
165
166
|
}));
|
|
166
167
|
|
|
167
168
|
export const StickyHeader = {
|
package/src/views/Gantt.tsx
CHANGED
|
@@ -4,17 +4,31 @@ import { Skeleton } from "../Skeleton";
|
|
|
4
4
|
import { ViewSwitcher } from "../layouts/ViewSwitcher";
|
|
5
5
|
import { useDirection } from "../hooks/useDirection";
|
|
6
6
|
import { withInterp } from "../shared/t";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
Intent,
|
|
9
|
+
MIN_PRESS_TARGET,
|
|
10
|
+
ensureKeyboardModalityTracking,
|
|
11
|
+
formatDayOfMonth,
|
|
12
|
+
formatMonthYear,
|
|
13
|
+
hairline,
|
|
14
|
+
hairlineWidth,
|
|
15
|
+
keyboardFocusRingProps,
|
|
16
|
+
useReadableTextOn,
|
|
17
|
+
useResolvedKnobs,
|
|
18
|
+
wasKeyboardFocus,
|
|
19
|
+
} from "@multiplatform.one/theme";
|
|
8
20
|
import { Button } from "@multiplatform.one/forms";
|
|
9
21
|
import React, { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from "react";
|
|
10
|
-
import { useTranslation } from "
|
|
22
|
+
import { useTranslation } from "../shared/i18n";
|
|
11
23
|
import { ScrollView as RNScrollView } from "react-native";
|
|
12
24
|
import { ScrollView, Text, XStack, YStack, isWeb, type YStackProps } from "tamagui";
|
|
13
25
|
import {
|
|
26
|
+
addDays,
|
|
14
27
|
barGeometry,
|
|
15
28
|
clampResizeDayDelta,
|
|
16
29
|
computeGanttRange,
|
|
17
30
|
dateToX,
|
|
31
|
+
dayDiff,
|
|
18
32
|
dxToDayDelta,
|
|
19
33
|
formatRangeLabel,
|
|
20
34
|
formatSpanLabel,
|
|
@@ -24,7 +38,9 @@ import {
|
|
|
24
38
|
resizeSpanByDays,
|
|
25
39
|
shiftSpanByDays,
|
|
26
40
|
spanInclusiveDays,
|
|
41
|
+
startOfDay,
|
|
27
42
|
todayLineX,
|
|
43
|
+
type GanttRange,
|
|
28
44
|
type GanttResizeEdge,
|
|
29
45
|
type GanttSpan,
|
|
30
46
|
type GanttZoom,
|
|
@@ -54,6 +70,11 @@ export interface GanttTask {
|
|
|
54
70
|
color?: string;
|
|
55
71
|
/** Semantic bar intent rendered via the theme ramps (LC-05 / LC-27). */
|
|
56
72
|
intent?: "accent" | "error" | "warning" | "success";
|
|
73
|
+
/**
|
|
74
|
+
* Optional completion 0–100. Paints a darker overlay on the bar (Frappe
|
|
75
|
+
* Gantt / MS Project progress). Omitted or 0 shows an empty bar.
|
|
76
|
+
*/
|
|
77
|
+
progress?: number;
|
|
57
78
|
/** Any additional data */
|
|
58
79
|
[key: string]: unknown;
|
|
59
80
|
}
|
|
@@ -143,6 +164,57 @@ const hairlineEnd = isWeb
|
|
|
143
164
|
}
|
|
144
165
|
: { borderEndWidth: hairlineWidth };
|
|
145
166
|
|
|
167
|
+
function isWeekend(date: Date): boolean {
|
|
168
|
+
const day = date.getDay();
|
|
169
|
+
return day === 0 || day === 6;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
function clampProgress(value: unknown): number | null {
|
|
173
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return null;
|
|
174
|
+
return Math.min(100, Math.max(0, value));
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/** Month bands for the dual-level axis (Frappe Gantt upper header). */
|
|
178
|
+
function monthBands(
|
|
179
|
+
range: GanttRange,
|
|
180
|
+
pxPerDay: number,
|
|
181
|
+
): { x: number; width: number; label: string; key: string }[] {
|
|
182
|
+
const total = rangeDays(range);
|
|
183
|
+
const bands: { x: number; width: number; label: string; key: string }[] = [];
|
|
184
|
+
let i = 0;
|
|
185
|
+
while (i < total) {
|
|
186
|
+
const date = addDays(startOfDay(range.start), i);
|
|
187
|
+
const nextMonth = new Date(date.getFullYear(), date.getMonth() + 1, 1);
|
|
188
|
+
const endIdx = Math.min(total, Math.max(i + 1, dayDiff(range.start, nextMonth)));
|
|
189
|
+
bands.push({
|
|
190
|
+
x: i * pxPerDay,
|
|
191
|
+
width: (endIdx - i) * pxPerDay,
|
|
192
|
+
label: formatMonthYear(date),
|
|
193
|
+
key: `${date.getFullYear()}-${date.getMonth()}`,
|
|
194
|
+
});
|
|
195
|
+
i = endIdx;
|
|
196
|
+
}
|
|
197
|
+
return bands;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
function weekendColumns(
|
|
201
|
+
range: GanttRange,
|
|
202
|
+
pxPerDay: number,
|
|
203
|
+
): { x: number; width: number; key: string }[] {
|
|
204
|
+
const total = rangeDays(range);
|
|
205
|
+
const cols: { x: number; width: number; key: string }[] = [];
|
|
206
|
+
for (let i = 0; i < total; i++) {
|
|
207
|
+
const date = addDays(startOfDay(range.start), i);
|
|
208
|
+
if (!isWeekend(date)) continue;
|
|
209
|
+
cols.push({
|
|
210
|
+
x: i * pxPerDay,
|
|
211
|
+
width: pxPerDay,
|
|
212
|
+
key: date.toISOString(),
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
return cols;
|
|
216
|
+
}
|
|
217
|
+
|
|
146
218
|
// ── Loading skeleton (LC-20: mirrors the real anatomy) ────────
|
|
147
219
|
|
|
148
220
|
/** Deterministic per-index bar offsets/widths (LC-20: never Math.random). */
|
|
@@ -174,7 +246,7 @@ function GanttSkeleton({ labelWidth, rowHeight }: { labelWidth: number; rowHeigh
|
|
|
174
246
|
key={i}
|
|
175
247
|
height={rowHeight}
|
|
176
248
|
alignItems="center"
|
|
177
|
-
{...hairline.bottom}
|
|
249
|
+
{...(i < SKELETON_BARS.length - 1 ? hairline.bottom : null)}
|
|
178
250
|
borderColor={componentColors.divider}
|
|
179
251
|
>
|
|
180
252
|
<XStack width={labelWidth} paddingHorizontal="$3">
|
|
@@ -208,6 +280,43 @@ function BarIntentWrap({
|
|
|
208
280
|
return <Intent name={intent}>{children}</Intent>;
|
|
209
281
|
}
|
|
210
282
|
|
|
283
|
+
/** Title ink on a filled bar — paper or ink, whichever clears AA on the fill. */
|
|
284
|
+
function GanttBarLabel({ title, fill }: { title: string; fill: string }) {
|
|
285
|
+
const ink = useReadableTextOn(fill);
|
|
286
|
+
return (
|
|
287
|
+
<Text
|
|
288
|
+
color={ink ?? "$color1"}
|
|
289
|
+
fontSize="$1"
|
|
290
|
+
fontWeight="600"
|
|
291
|
+
numberOfLines={1}
|
|
292
|
+
paddingHorizontal="$2"
|
|
293
|
+
pointerEvents="none"
|
|
294
|
+
zIndex={1}
|
|
295
|
+
aria-hidden
|
|
296
|
+
>
|
|
297
|
+
{`${title}\u200b`}
|
|
298
|
+
</Text>
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/** Row-identity label: selected fill gets readable on-accent ink (LC-71). */
|
|
303
|
+
function GanttTaskName({
|
|
304
|
+
title,
|
|
305
|
+
selected,
|
|
306
|
+
body,
|
|
307
|
+
}: {
|
|
308
|
+
title: string;
|
|
309
|
+
selected: boolean;
|
|
310
|
+
body: object;
|
|
311
|
+
}) {
|
|
312
|
+
const ink = useReadableTextOn(selected ? "$accentBackground" : undefined);
|
|
313
|
+
return (
|
|
314
|
+
<Text {...body} fontSize="$2" numberOfLines={1} color={selected && ink ? ink : "$color"}>
|
|
315
|
+
{title}
|
|
316
|
+
</Text>
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
|
|
211
320
|
// ── GanttView ─────────────────────────────────────────────────
|
|
212
321
|
|
|
213
322
|
/**
|
|
@@ -268,6 +377,7 @@ export function GanttView({
|
|
|
268
377
|
const { t } = useTranslation();
|
|
269
378
|
const { knobProps } = useResolvedKnobs();
|
|
270
379
|
const [zoom, setZoom] = useState<GanttZoom>(initialZoom);
|
|
380
|
+
if (typeof document !== "undefined") ensureKeyboardModalityTracking();
|
|
271
381
|
|
|
272
382
|
// ── Direction (RTL mirrors the canvas; deltas invert) ────────────────────
|
|
273
383
|
const rtl = useDirection() === "rtl";
|
|
@@ -280,12 +390,17 @@ export function GanttView({
|
|
|
280
390
|
|
|
281
391
|
// Keyboard-reschedule announcements (Kanban/TreeView announcer pattern).
|
|
282
392
|
const [announcement, setAnnouncement] = useState("");
|
|
393
|
+
const [hoveredId, setHoveredId] = useState<string | null>(null);
|
|
394
|
+
const [focusedBarId, setFocusedBarId] = useState<string | null>(null);
|
|
395
|
+
const [barKeyboardRing, setBarKeyboardRing] = useState(false);
|
|
283
396
|
|
|
284
397
|
// ── Knob-derived geometry (LC-18: size/space step the density) ──────────
|
|
285
398
|
const sz = knobProps.sizeToken as string;
|
|
286
399
|
const height = heightProp ?? (sz === "$3" ? 400 : sz === "$5" ? 560 : 480);
|
|
287
|
-
|
|
288
|
-
const
|
|
400
|
+
// Row paint is the press target (LC-54): never below 44px, even at compact.
|
|
401
|
+
const rowHeight = Math.max(MIN_PRESS_TARGET, sz === "$3" ? 44 : sz === "$5" ? 56 : 48);
|
|
402
|
+
// Dual-level axis (month band + day numbers) — Frappe Gantt upper/lower header.
|
|
403
|
+
const axisHeight = sz === "$3" ? 40 : sz === "$5" ? 52 : 46;
|
|
289
404
|
const pxPerDay =
|
|
290
405
|
zoom === "day"
|
|
291
406
|
? sz === "$3"
|
|
@@ -328,6 +443,11 @@ export function GanttView({
|
|
|
328
443
|
);
|
|
329
444
|
const todayX = showToday ? todayLineX(range, pxPerDay) : null;
|
|
330
445
|
const rangeLabel = useMemo(() => formatRangeLabel(range), [range]);
|
|
446
|
+
const months = useMemo(() => monthBands(range, pxPerDay), [range, pxPerDay]);
|
|
447
|
+
const weekends = useMemo(() => weekendColumns(range, pxPerDay), [range, pxPerDay]);
|
|
448
|
+
const todayColX = showToday
|
|
449
|
+
? dateToX(startOfDay(new Date()), range.start, pxPerDay)
|
|
450
|
+
: null;
|
|
331
451
|
|
|
332
452
|
const changeZoom = useCallback(
|
|
333
453
|
(next: GanttZoom) => {
|
|
@@ -792,6 +912,10 @@ export function GanttView({
|
|
|
792
912
|
: 0;
|
|
793
913
|
const fill =
|
|
794
914
|
task.color ?? (task.intent && task.intent !== "accent" ? "$color9" : "$accentBackground");
|
|
915
|
+
const progress = clampProgress(task.progress);
|
|
916
|
+
const showLabel = liveWidth >= 44;
|
|
917
|
+
const isBarFocused = focusedBarId === task.id;
|
|
918
|
+
const showHandles = hoveredId === task.id || sessionLive;
|
|
795
919
|
// Edge handles map physical sides to logical edges (mirrored under RTL).
|
|
796
920
|
const handleWidth = geom.width >= 24 ? 8 : geom.width >= 12 ? 4 : 0;
|
|
797
921
|
const physicalLeftEdge: GanttResizeEdge = rtl ? "end" : "start";
|
|
@@ -830,6 +954,7 @@ export function GanttView({
|
|
|
830
954
|
hoverStyle={{ opacity: sessionLive ? 0.85 : 0.9 }}
|
|
831
955
|
pressStyle={{ opacity: 0.8 }}
|
|
832
956
|
cursor={webDragEnabled ? "grab" : onItemPress ? "pointer" : undefined}
|
|
957
|
+
justifyContent="center"
|
|
833
958
|
// LC-25: committed/reverted geometry jumps tween on web; the live
|
|
834
959
|
// drag/resize tracking stays 1:1 (no transition while the session
|
|
835
960
|
// is live).
|
|
@@ -837,13 +962,24 @@ export function GanttView({
|
|
|
837
962
|
role="button"
|
|
838
963
|
tabIndex={0}
|
|
839
964
|
aria-label={ganttTaskAccessibleLabel(task)}
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
965
|
+
// LC-71: one ring on the bar (the perceived control), keyboard-only.
|
|
966
|
+
{...(isBarFocused && barKeyboardRing
|
|
967
|
+
? keyboardFocusRingProps
|
|
968
|
+
: { outlineWidth: 0 })}
|
|
969
|
+
onFocus={() => {
|
|
970
|
+
setFocusedBarId(task.id);
|
|
971
|
+
setBarKeyboardRing(wasKeyboardFocus());
|
|
972
|
+
}}
|
|
973
|
+
onBlur={() => {
|
|
974
|
+
setFocusedBarId((id) => (id === task.id ? null : id));
|
|
975
|
+
setBarKeyboardRing(false);
|
|
846
976
|
}}
|
|
977
|
+
// Tamagui forwards onHoverIn/onHoverOut at runtime; the RN-flavored
|
|
978
|
+
// View prop type omits them (house Record cast).
|
|
979
|
+
{...({
|
|
980
|
+
onHoverIn: () => setHoveredId(task.id),
|
|
981
|
+
onHoverOut: () => setHoveredId((id) => (id === task.id ? null : id)),
|
|
982
|
+
} as Record<string, unknown>)}
|
|
847
983
|
onKeyDown={
|
|
848
984
|
((ke: any) => {
|
|
849
985
|
if (ke.key === "Enter" || ke.key === " ") {
|
|
@@ -872,6 +1008,21 @@ export function GanttView({
|
|
|
872
1008
|
}
|
|
873
1009
|
}
|
|
874
1010
|
>
|
|
1011
|
+
{progress != null && progress > 0 && (
|
|
1012
|
+
<YStack
|
|
1013
|
+
position="absolute"
|
|
1014
|
+
top={0}
|
|
1015
|
+
bottom={0}
|
|
1016
|
+
{...(rtl ? { right: 0 } : { left: 0 })}
|
|
1017
|
+
width={`${progress}%`}
|
|
1018
|
+
backgroundColor="$color12"
|
|
1019
|
+
opacity={0.22}
|
|
1020
|
+
pointerEvents="none"
|
|
1021
|
+
{...{ "data-gantt-progress": String(progress) }}
|
|
1022
|
+
/>
|
|
1023
|
+
)}
|
|
1024
|
+
{showLabel && <GanttBarLabel title={task.title} fill={fill} />}
|
|
1025
|
+
|
|
875
1026
|
{/* Live date label while dragging (honest preview of the commit). */}
|
|
876
1027
|
{previewSpan && (
|
|
877
1028
|
<XStack
|
|
@@ -903,6 +1054,8 @@ export function GanttView({
|
|
|
903
1054
|
bottom={0}
|
|
904
1055
|
width={handleWidth}
|
|
905
1056
|
cursor="ew-resize"
|
|
1057
|
+
backgroundColor={showHandles ? "$color12" : "transparent"}
|
|
1058
|
+
opacity={showHandles ? 0.28 : 0}
|
|
906
1059
|
onPointerDown={(e: any) => handleResizePointerDown(task, physicalLeftEdge, e)}
|
|
907
1060
|
{...{ "data-gantt-resize-handle": physicalLeftEdge }}
|
|
908
1061
|
/>
|
|
@@ -913,6 +1066,8 @@ export function GanttView({
|
|
|
913
1066
|
bottom={0}
|
|
914
1067
|
width={handleWidth}
|
|
915
1068
|
cursor="ew-resize"
|
|
1069
|
+
backgroundColor={showHandles ? "$color12" : "transparent"}
|
|
1070
|
+
opacity={showHandles ? 0.28 : 0}
|
|
916
1071
|
onPointerDown={(e: any) => handleResizePointerDown(task, physicalRightEdge, e)}
|
|
917
1072
|
{...{ "data-gantt-resize-handle": physicalRightEdge }}
|
|
918
1073
|
/>
|
|
@@ -967,6 +1122,8 @@ export function GanttView({
|
|
|
967
1122
|
// Panel-tier lift follows the elevation knob (LC-18: the gantt frame
|
|
968
1123
|
// is a themed surface, same as Calendar / Kanban columns).
|
|
969
1124
|
elevation={knobProps.elevation}
|
|
1125
|
+
// LC-72 CONTAINER-CLIP: the frame rounds and clips; rows stay square.
|
|
1126
|
+
{...knobProps.containerRadius}
|
|
970
1127
|
{...{ "data-gantt-view": zoom }}
|
|
971
1128
|
>
|
|
972
1129
|
{/* Header */}
|
|
@@ -1025,9 +1182,7 @@ export function GanttView({
|
|
|
1025
1182
|
{...{ backgroundColor: componentColors.surface.background }}
|
|
1026
1183
|
>
|
|
1027
1184
|
<Text
|
|
1028
|
-
{...knobProps.
|
|
1029
|
-
fontSize="$2"
|
|
1030
|
-
fontWeight="500"
|
|
1185
|
+
{...knobProps.label}
|
|
1031
1186
|
color={componentColors.text.muted}
|
|
1032
1187
|
numberOfLines={1}
|
|
1033
1188
|
>
|
|
@@ -1051,21 +1206,72 @@ export function GanttView({
|
|
|
1051
1206
|
"data-gantt-axis": zoom,
|
|
1052
1207
|
}}
|
|
1053
1208
|
>
|
|
1054
|
-
{
|
|
1055
|
-
|
|
1056
|
-
|
|
1209
|
+
{weekends.map((col) => (
|
|
1210
|
+
<YStack
|
|
1211
|
+
key={`axis-we-${col.key}`}
|
|
1212
|
+
position="absolute"
|
|
1213
|
+
{...canvasPos(col.x)}
|
|
1214
|
+
top={0}
|
|
1215
|
+
bottom={0}
|
|
1216
|
+
width={col.width}
|
|
1217
|
+
backgroundColor={componentColors.interactive.background}
|
|
1218
|
+
opacity={0.7}
|
|
1219
|
+
pointerEvents="none"
|
|
1220
|
+
/>
|
|
1221
|
+
))}
|
|
1222
|
+
{todayColX !== null && (
|
|
1223
|
+
<YStack
|
|
1224
|
+
position="absolute"
|
|
1225
|
+
{...canvasPos(todayColX)}
|
|
1226
|
+
top={0}
|
|
1227
|
+
bottom={0}
|
|
1228
|
+
width={pxPerDay}
|
|
1229
|
+
backgroundColor="$accentBackground"
|
|
1230
|
+
opacity={0.16}
|
|
1231
|
+
pointerEvents="none"
|
|
1232
|
+
/>
|
|
1233
|
+
)}
|
|
1234
|
+
{months.map((band) =>
|
|
1235
|
+
band.width < 36 ? null : (
|
|
1057
1236
|
<Text
|
|
1058
|
-
key={
|
|
1237
|
+
key={band.key}
|
|
1059
1238
|
position="absolute"
|
|
1060
|
-
{...(rtl ? { right:
|
|
1061
|
-
top={
|
|
1062
|
-
|
|
1063
|
-
|
|
1239
|
+
{...(rtl ? { right: band.x + 4 } : { left: band.x + 4 })}
|
|
1240
|
+
top={2}
|
|
1241
|
+
width={Math.max(0, band.width - 8)}
|
|
1242
|
+
{...knobProps.label}
|
|
1243
|
+
fontWeight="600"
|
|
1244
|
+
color={componentColors.text.secondary}
|
|
1064
1245
|
numberOfLines={1}
|
|
1065
1246
|
>
|
|
1066
|
-
{
|
|
1247
|
+
{band.label}
|
|
1067
1248
|
</Text>
|
|
1068
|
-
)
|
|
1249
|
+
),
|
|
1250
|
+
)}
|
|
1251
|
+
{ticks.map((tick) => (
|
|
1252
|
+
<Text
|
|
1253
|
+
key={tick.date.toISOString()}
|
|
1254
|
+
position="absolute"
|
|
1255
|
+
{...(rtl ? { right: tick.x + 4 } : { left: tick.x + 4 })}
|
|
1256
|
+
top={axisHeight / 2}
|
|
1257
|
+
{...knobProps.label}
|
|
1258
|
+
color={
|
|
1259
|
+
tick.major ? componentColors.text.secondary : componentColors.text.muted
|
|
1260
|
+
}
|
|
1261
|
+
numberOfLines={1}
|
|
1262
|
+
>
|
|
1263
|
+
{formatDayOfMonth(tick.date)}
|
|
1264
|
+
</Text>
|
|
1265
|
+
))}
|
|
1266
|
+
<YStack
|
|
1267
|
+
position="absolute"
|
|
1268
|
+
left={0}
|
|
1269
|
+
right={0}
|
|
1270
|
+
top={axisHeight / 2}
|
|
1271
|
+
height={hairlineWidth}
|
|
1272
|
+
backgroundColor={componentColors.divider}
|
|
1273
|
+
pointerEvents="none"
|
|
1274
|
+
/>
|
|
1069
1275
|
</XStack>
|
|
1070
1276
|
</ScrollView>
|
|
1071
1277
|
</XStack>
|
|
@@ -1077,31 +1283,51 @@ export function GanttView({
|
|
|
1077
1283
|
<XStack {...{ "data-gantt-scroll-body": "true" }}>
|
|
1078
1284
|
{/* Task label column */}
|
|
1079
1285
|
<YStack width={labelWidth} flexShrink={0} {...hairlineEnd} borderColor="$borderColor">
|
|
1080
|
-
{tasks.map((task) =>
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1286
|
+
{tasks.map((task, index) => {
|
|
1287
|
+
const selected = focusedBarId === task.id;
|
|
1288
|
+
const hovered = hoveredId === task.id;
|
|
1289
|
+
const last = index === tasks.length - 1;
|
|
1290
|
+
return (
|
|
1291
|
+
<XStack
|
|
1292
|
+
key={task.id}
|
|
1293
|
+
height={rowHeight}
|
|
1294
|
+
alignItems="center"
|
|
1295
|
+
paddingHorizontal="$3"
|
|
1296
|
+
{...(last ? null : hairline.bottom)}
|
|
1297
|
+
borderColor={minorGridColor}
|
|
1298
|
+
backgroundColor={
|
|
1299
|
+
selected
|
|
1300
|
+
? "$accentBackground"
|
|
1301
|
+
: hovered
|
|
1302
|
+
? componentColors.interactive.background
|
|
1303
|
+
: "transparent"
|
|
1304
|
+
}
|
|
1305
|
+
cursor={onItemPress ? "pointer" : undefined}
|
|
1306
|
+
// Tamagui forwards onHoverIn/onHoverOut at runtime; the
|
|
1307
|
+
// RN-flavored View prop type omits them (house Record cast).
|
|
1308
|
+
{...({
|
|
1309
|
+
onHoverIn: () => setHoveredId(task.id),
|
|
1310
|
+
onHoverOut: () => setHoveredId((id) => (id === task.id ? null : id)),
|
|
1311
|
+
} as Record<string, unknown>)}
|
|
1312
|
+
onPress={
|
|
1313
|
+
onItemPress
|
|
1314
|
+
? () => {
|
|
1315
|
+
if (suppressClickRef.current) return;
|
|
1316
|
+
setFocusedBarId(task.id);
|
|
1317
|
+
setBarKeyboardRing(false);
|
|
1318
|
+
onItemPress(task);
|
|
1319
|
+
}
|
|
1320
|
+
: () => {
|
|
1321
|
+
setFocusedBarId(task.id);
|
|
1322
|
+
setBarKeyboardRing(false);
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
{...{ "data-gantt-row-label": task.id }}
|
|
1326
|
+
>
|
|
1327
|
+
<GanttTaskName title={task.title} selected={selected} body={knobProps.body} />
|
|
1328
|
+
</XStack>
|
|
1329
|
+
);
|
|
1330
|
+
})}
|
|
1105
1331
|
</YStack>
|
|
1106
1332
|
|
|
1107
1333
|
{/* Timeline chart. On native the scroller is the raw RN ScrollView:
|
|
@@ -1121,6 +1347,33 @@ export function GanttView({
|
|
|
1121
1347
|
<YStack width={chartWidth} position="relative" {...{ "data-gantt-chart": "true" }}>
|
|
1122
1348
|
{/* Rows + grid + today line */}
|
|
1123
1349
|
<YStack position="relative" {...{ "data-gantt-body": "true" }}>
|
|
1350
|
+
{weekends.map((col) => (
|
|
1351
|
+
<YStack
|
|
1352
|
+
key={`body-we-${col.key}`}
|
|
1353
|
+
position="absolute"
|
|
1354
|
+
{...canvasPos(col.x)}
|
|
1355
|
+
top={0}
|
|
1356
|
+
bottom={0}
|
|
1357
|
+
width={col.width}
|
|
1358
|
+
backgroundColor={componentColors.interactive.background}
|
|
1359
|
+
opacity={0.55}
|
|
1360
|
+
pointerEvents="none"
|
|
1361
|
+
{...{ "data-gantt-weekend": col.key }}
|
|
1362
|
+
/>
|
|
1363
|
+
))}
|
|
1364
|
+
{todayColX !== null && (
|
|
1365
|
+
<YStack
|
|
1366
|
+
position="absolute"
|
|
1367
|
+
{...canvasPos(todayColX)}
|
|
1368
|
+
top={0}
|
|
1369
|
+
bottom={0}
|
|
1370
|
+
width={pxPerDay}
|
|
1371
|
+
backgroundColor="$accentBackground"
|
|
1372
|
+
opacity={0.12}
|
|
1373
|
+
pointerEvents="none"
|
|
1374
|
+
{...{ "data-gantt-today-col": "true" }}
|
|
1375
|
+
/>
|
|
1376
|
+
)}
|
|
1124
1377
|
{/* Vertical grid lines (under the rows) */}
|
|
1125
1378
|
{ticks.map((tick) => (
|
|
1126
1379
|
<YStack
|
|
@@ -1136,18 +1389,34 @@ export function GanttView({
|
|
|
1136
1389
|
))}
|
|
1137
1390
|
|
|
1138
1391
|
{/* Task rows */}
|
|
1139
|
-
{tasks.map((task) =>
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1392
|
+
{tasks.map((task, index) => {
|
|
1393
|
+
const selected = focusedBarId === task.id;
|
|
1394
|
+
const hovered = hoveredId === task.id;
|
|
1395
|
+
const last = index === tasks.length - 1;
|
|
1396
|
+
return (
|
|
1397
|
+
<XStack
|
|
1398
|
+
key={task.id}
|
|
1399
|
+
height={rowHeight}
|
|
1400
|
+
position="relative"
|
|
1401
|
+
{...(last ? null : hairline.bottom)}
|
|
1402
|
+
borderColor={minorGridColor}
|
|
1403
|
+
backgroundColor={
|
|
1404
|
+
selected || hovered
|
|
1405
|
+
? componentColors.interactive.background
|
|
1406
|
+
: "transparent"
|
|
1407
|
+
}
|
|
1408
|
+
// Tamagui forwards onHoverIn/onHoverOut at runtime; the
|
|
1409
|
+
// RN-flavored View prop type omits them (house Record cast).
|
|
1410
|
+
{...({
|
|
1411
|
+
onHoverIn: () => setHoveredId(task.id),
|
|
1412
|
+
onHoverOut: () => setHoveredId((id) => (id === task.id ? null : id)),
|
|
1413
|
+
} as Record<string, unknown>)}
|
|
1414
|
+
{...{ "data-gantt-row": task.id }}
|
|
1415
|
+
>
|
|
1416
|
+
{renderBar(task)}
|
|
1417
|
+
</XStack>
|
|
1418
|
+
);
|
|
1419
|
+
})}
|
|
1151
1420
|
|
|
1152
1421
|
{/* Today line (above bars, non-interactive) */}
|
|
1153
1422
|
{todayX !== null && (
|