@multiplatform.one/components 6.6.0 → 7.0.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 +19 -19
- 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
|
@@ -150,3 +150,22 @@ export const Empty = {
|
|
|
150
150
|
</YStack>
|
|
151
151
|
),
|
|
152
152
|
};
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Carbon: a collapsed ancestor of the selected node keeps a muted fill so
|
|
156
|
+
* the selection is not lost when its parent is closed.
|
|
157
|
+
*/
|
|
158
|
+
export const ContainsSelection = {
|
|
159
|
+
name: "Contains Selection",
|
|
160
|
+
render: () => (
|
|
161
|
+
<YStack height={280}>
|
|
162
|
+
<TreeView
|
|
163
|
+
nodes={nodes}
|
|
164
|
+
ariaLabel="Collapsed ancestor still shows selection"
|
|
165
|
+
selectedId="button"
|
|
166
|
+
defaultExpandedIds={["src"]}
|
|
167
|
+
height={260}
|
|
168
|
+
/>
|
|
169
|
+
</YStack>
|
|
170
|
+
),
|
|
171
|
+
};
|
package/src/views/TreeView.tsx
CHANGED
|
@@ -4,7 +4,10 @@ import { FlashList, type FlashListRef } from "@shopify/flash-list";
|
|
|
4
4
|
import {
|
|
5
5
|
MIN_PRESS_TARGET,
|
|
6
6
|
ensureKeyboardModalityTracking,
|
|
7
|
+
getGroupPosition,
|
|
8
|
+
keyboardFocusRingProps,
|
|
7
9
|
pressTargetHitSlop,
|
|
10
|
+
stackRadiusProps,
|
|
8
11
|
useReadableTextOn,
|
|
9
12
|
useResolvedKnobs,
|
|
10
13
|
wasKeyboardFocus,
|
|
@@ -30,7 +33,7 @@ import React, {
|
|
|
30
33
|
useState,
|
|
31
34
|
type ReactNode,
|
|
32
35
|
} from "react";
|
|
33
|
-
import { useTranslation } from "
|
|
36
|
+
import { useTranslation } from "../shared/i18n";
|
|
34
37
|
import { Text, View, XStack, YStack, type YStackProps } from "tamagui";
|
|
35
38
|
import { autoScrollVelocity } from "./kanbanDnd";
|
|
36
39
|
import {
|
|
@@ -150,6 +153,7 @@ interface FlatNode<T> {
|
|
|
150
153
|
hasChildren: boolean;
|
|
151
154
|
isExpanded: boolean;
|
|
152
155
|
index: number;
|
|
156
|
+
parentId: string | null;
|
|
153
157
|
}
|
|
154
158
|
|
|
155
159
|
/**
|
|
@@ -230,6 +234,21 @@ function collectBranchIds<T>(items: TreeNode<T>[], into: Set<string> = new Set()
|
|
|
230
234
|
return into;
|
|
231
235
|
}
|
|
232
236
|
|
|
237
|
+
/** Ancestor ids of `id` (root → parent), or null when the node is absent. */
|
|
238
|
+
function findNodePath<T>(items: TreeNode<T>[], id: string, trail: string[] = []): string[] | null {
|
|
239
|
+
for (const node of items) {
|
|
240
|
+
if (node.id === id) return trail;
|
|
241
|
+
if (node.children?.length) {
|
|
242
|
+
const found = findNodePath(node.children, id, [...trail, node.id]);
|
|
243
|
+
if (found) return found;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/** Typeahead window matching menu rows (DropdownMenu) and Finder/VS Code jump-to. */
|
|
250
|
+
const TYPEAHEAD_MS = 600;
|
|
251
|
+
|
|
233
252
|
function defaultNodeIcon(hasChildren: boolean, isExpanded: boolean, iconSize: number): ReactNode {
|
|
234
253
|
if (hasChildren) {
|
|
235
254
|
return isExpanded ? (
|
|
@@ -242,20 +261,22 @@ function defaultNodeIcon(hasChildren: boolean, isExpanded: boolean, iconSize: nu
|
|
|
242
261
|
}
|
|
243
262
|
|
|
244
263
|
/**
|
|
245
|
-
* Generic virtualized tree view
|
|
264
|
+
* Generic virtualized tree view.
|
|
246
265
|
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
266
|
+
* Visual language is the VS Code / Primer / Carbon / Finder consensus:
|
|
267
|
+
* flush rows (SP-EDGE), twistie + icon + label, indent guides at each
|
|
268
|
+
* depth, selected = accent fill, keyboard focus = one inset ring on the
|
|
269
|
+
* active row (LC-71), stacked-group radius on the first/last row (LC-72).
|
|
250
270
|
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
* `animation: none` / reduced motion renders every toggle instantly.
|
|
271
|
+
* Keyboard follows the WAI-ARIA tree pattern those systems share: one tab
|
|
272
|
+
* stop, arrows move, Right expands then enters, Left collapses then climbs
|
|
273
|
+
* to the parent, Home/End, typeahead. Pressing a branch row toggles it
|
|
274
|
+
* (EUI/VS Code), so the caret is an indicator, not a sub-44px control.
|
|
256
275
|
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
276
|
+
* Motion (Axiom 4): expanding/collapsing a branch FLIPs surviving rows
|
|
277
|
+
* and fades revealed children; the caret rotates. Tweened with
|
|
278
|
+
* `knobProps.transition`, transform/opacity only. `animation: none` /
|
|
279
|
+
* reduced motion jumps.
|
|
259
280
|
*
|
|
260
281
|
* @typeParam T - Additional data type stored on the nodes
|
|
261
282
|
*/
|
|
@@ -280,30 +301,31 @@ export function TreeView<T = unknown>({
|
|
|
280
301
|
}: TreeViewProps<T>) {
|
|
281
302
|
const { t } = useTranslation();
|
|
282
303
|
const emptyMessage = emptyMessageProp ?? t("No items found");
|
|
283
|
-
const
|
|
304
|
+
const compressed = display === "compressed";
|
|
305
|
+
// Compressed display forces compact density stepping; default display
|
|
306
|
+
// leaves the density knob in charge.
|
|
307
|
+
const { knobProps, control } = useResolvedKnobs(compressed ? { compact: true } : undefined);
|
|
284
308
|
// UX-P02 / Axiom 15: the selected row paints `$accentBackground`; its label
|
|
285
309
|
// must sit on the accent fill with a luminance-computed foreground (the
|
|
286
310
|
// scheme `$color` ink measured 2.59:1 on the accent).
|
|
287
311
|
const onAccentLabel = useReadableTextOn("$accentBackground");
|
|
288
312
|
const transition = knobProps.transition;
|
|
289
|
-
const
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
const
|
|
296
|
-
const
|
|
297
|
-
const
|
|
298
|
-
const caretSize = compressed ? 12 : 14;
|
|
313
|
+
const nestedPx = knobProps.nestedControl.px;
|
|
314
|
+
|
|
315
|
+
// Row height rides nestedControl (Carbon 32/24, VS Code ~22, house
|
|
316
|
+
// nested px is 32 at medium / 28 compact) — not a private pixel table.
|
|
317
|
+
const estimateSize = estimateSizeProp ?? nestedPx;
|
|
318
|
+
const height = heightProp ?? (nestedPx <= 28 ? 320 : nestedPx >= 36 ? 480 : 400);
|
|
319
|
+
const expandIconSize = nestedPx <= 28 ? 14 : nestedPx >= 36 ? 18 : 16;
|
|
320
|
+
const nodeIconSize = nestedPx <= 28 ? 14 : 18;
|
|
321
|
+
const caretSize = nestedPx <= 28 ? 12 : 14;
|
|
299
322
|
// Collapsed caret encodes the expansion direction (inline-end), so it
|
|
300
323
|
// mirrors in RTL via glyph swap (useDirection, Axiom 15); the rotation
|
|
301
324
|
// sign flips with it so the expanded state still points down.
|
|
302
325
|
const isRTL = useDirection() === "rtl";
|
|
303
326
|
const CollapsedCaretIcon = isRTL ? CaretLeftIcon : CaretRightIcon;
|
|
304
327
|
const expandedCaretRotation = isRTL ? "-90deg" : "90deg";
|
|
305
|
-
const indentStep =
|
|
306
|
-
const labelFontSize = compressed ? 12 : 14;
|
|
328
|
+
const indentStep = knobProps.space === "small" ? 12 : knobProps.space === "large" ? 20 : 16;
|
|
307
329
|
// SP-EDGE row density (spec TreeView rows): the space knob steps the row
|
|
308
330
|
// padding — never an outer tree inset (LC-02). House space-map pattern
|
|
309
331
|
// (getTableCellPadding precedent); medium keeps the previous 6/8
|
|
@@ -321,14 +343,22 @@ export function TreeView<T = unknown>({
|
|
|
321
343
|
const containerRef = useRef<HTMLDivElement>(null);
|
|
322
344
|
const flashListRef = useRef<FlashListRef<FlatNode<T>>>(null);
|
|
323
345
|
const [focusedIndex, setFocusedIndex] = useState(-1);
|
|
346
|
+
// LC-71: ring is a React flag, not a render-time wasKeyboardFocus() read —
|
|
347
|
+
// Tab-away/Tab-back with the same activedescendant must still re-paint.
|
|
348
|
+
const [keyboardRing, setKeyboardRing] = useState(false);
|
|
349
|
+
const typeaheadRef = useRef({ buffer: "", at: 0 });
|
|
324
350
|
// Axiom 12: the tree is one tab stop (aria-activedescendant pattern) — but
|
|
325
351
|
// Tab-in with no active row painted NOTHING (ring suppressed on the
|
|
326
352
|
// container, no row highlighted until an arrow was pressed). On
|
|
327
353
|
// keyboard-origin focus, light up the first row so position is visible.
|
|
328
354
|
if (typeof document !== "undefined") ensureKeyboardModalityTracking();
|
|
329
355
|
const handleContainerFocus = useCallback(() => {
|
|
330
|
-
|
|
331
|
-
|
|
356
|
+
const kb = wasKeyboardFocus();
|
|
357
|
+
setKeyboardRing(kb);
|
|
358
|
+
if (kb) setFocusedIndex((prev) => (prev < 0 ? 0 : prev));
|
|
359
|
+
}, []);
|
|
360
|
+
const handleContainerBlur = useCallback(() => {
|
|
361
|
+
setKeyboardRing(false);
|
|
332
362
|
}, []);
|
|
333
363
|
const [expandedIds, setExpandedIds] = useState<Set<string>>(() => {
|
|
334
364
|
if (defaultExpandedIds) return new Set(defaultExpandedIds);
|
|
@@ -383,18 +413,25 @@ export function TreeView<T = unknown>({
|
|
|
383
413
|
const flatNodes = useMemo(() => {
|
|
384
414
|
const result: FlatNode<T>[] = [];
|
|
385
415
|
|
|
386
|
-
const walk = (items: TreeNode<T>[], depth: number) => {
|
|
416
|
+
const walk = (items: TreeNode<T>[], depth: number, parentId: string | null) => {
|
|
387
417
|
for (const node of items) {
|
|
388
418
|
const hasChildren = (node.children?.length ?? 0) > 0;
|
|
389
419
|
const isExpanded = expandedIds.has(node.id);
|
|
390
|
-
result.push({
|
|
420
|
+
result.push({
|
|
421
|
+
node,
|
|
422
|
+
depth,
|
|
423
|
+
hasChildren,
|
|
424
|
+
isExpanded,
|
|
425
|
+
index: result.length,
|
|
426
|
+
parentId,
|
|
427
|
+
});
|
|
391
428
|
if (isExpanded && node.children) {
|
|
392
|
-
walk(node.children, depth + 1);
|
|
429
|
+
walk(node.children, depth + 1, node.id);
|
|
393
430
|
}
|
|
394
431
|
}
|
|
395
432
|
};
|
|
396
433
|
|
|
397
|
-
walk(nodes, 0);
|
|
434
|
+
walk(nodes, 0, null);
|
|
398
435
|
return result;
|
|
399
436
|
}, [nodes, expandedIds]);
|
|
400
437
|
|
|
@@ -407,6 +444,24 @@ export function TreeView<T = unknown>({
|
|
|
407
444
|
[flatNodes.length],
|
|
408
445
|
);
|
|
409
446
|
|
|
447
|
+
const focusRow = useCallback(
|
|
448
|
+
(index: number) => {
|
|
449
|
+
setKeyboardRing(true);
|
|
450
|
+
setFocusedIndex(index);
|
|
451
|
+
scrollToIndex(index);
|
|
452
|
+
},
|
|
453
|
+
[scrollToIndex],
|
|
454
|
+
);
|
|
455
|
+
|
|
456
|
+
// Carbon: a collapsed ancestor of the selected node inherits a muted
|
|
457
|
+
// "contains selection" fill so the selection is not lost off-screen.
|
|
458
|
+
const collapsedSelectedAncestors = useMemo(() => {
|
|
459
|
+
if (!selectedId) return new Set<string>();
|
|
460
|
+
const path = findNodePath(nodes, selectedId);
|
|
461
|
+
if (!path) return new Set<string>();
|
|
462
|
+
return new Set(path.filter((id) => !expandedIds.has(id)));
|
|
463
|
+
}, [nodes, selectedId, expandedIds]);
|
|
464
|
+
|
|
410
465
|
// ── Drag-reorder (LC-42 DRAG-ANATOMY / LC-43 DND-A11Y) ─────────────────
|
|
411
466
|
// Opt-in via `onNodeMove`. The ghost is an overlay clone outside the
|
|
412
467
|
// FlashList (virtualization-safe); hit-testing is pure math over the
|
|
@@ -900,8 +955,9 @@ export function TreeView<T = unknown>({
|
|
|
900
955
|
hotkeyOverrides?.next ?? "ArrowDown",
|
|
901
956
|
() => {
|
|
902
957
|
if (moveKeyboardDrag("down")) return;
|
|
958
|
+
setKeyboardRing(true);
|
|
903
959
|
setFocusedIndex((prev) => {
|
|
904
|
-
const next = prev < 0 ? 0 : Math.min(prev + 1, flatNodes.length - 1);
|
|
960
|
+
const next = prev < 0 ? 0 : Math.min(prev + 1, Math.max(0, flatNodes.length - 1));
|
|
905
961
|
scrollToIndex(next);
|
|
906
962
|
return next;
|
|
907
963
|
});
|
|
@@ -913,9 +969,10 @@ export function TreeView<T = unknown>({
|
|
|
913
969
|
hotkeyOverrides?.prev ?? "ArrowUp",
|
|
914
970
|
() => {
|
|
915
971
|
if (moveKeyboardDrag("up")) return;
|
|
972
|
+
setKeyboardRing(true);
|
|
916
973
|
setFocusedIndex((prev) => {
|
|
917
974
|
const next = prev < 0 ? flatNodes.length - 1 : Math.max(prev - 1, 0);
|
|
918
|
-
scrollToIndex(next);
|
|
975
|
+
if (next >= 0) scrollToIndex(next);
|
|
919
976
|
return next;
|
|
920
977
|
});
|
|
921
978
|
},
|
|
@@ -927,10 +984,17 @@ export function TreeView<T = unknown>({
|
|
|
927
984
|
() => {
|
|
928
985
|
// While lifted: nest into the previous sibling (kanban grammar).
|
|
929
986
|
if (moveKeyboardDrag("right")) return;
|
|
987
|
+
// APG / Primer / Carbon / VS Code: collapsed → expand; expanded → first child.
|
|
930
988
|
if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {
|
|
931
|
-
const
|
|
932
|
-
if (hasChildren && !isExpanded) {
|
|
933
|
-
|
|
989
|
+
const flat = flatNodes[focusedIndex];
|
|
990
|
+
if (flat.hasChildren && !flat.isExpanded) {
|
|
991
|
+
setKeyboardRing(true);
|
|
992
|
+
toggleNode(flat.node);
|
|
993
|
+
} else if (flat.hasChildren && flat.isExpanded) {
|
|
994
|
+
const child = focusedIndex + 1;
|
|
995
|
+
if (child < flatNodes.length && flatNodes[child].parentId === flat.node.id) {
|
|
996
|
+
focusRow(child);
|
|
997
|
+
}
|
|
934
998
|
}
|
|
935
999
|
}
|
|
936
1000
|
},
|
|
@@ -942,10 +1006,15 @@ export function TreeView<T = unknown>({
|
|
|
942
1006
|
() => {
|
|
943
1007
|
// While lifted: un-nest to after the current parent.
|
|
944
1008
|
if (moveKeyboardDrag("left")) return;
|
|
1009
|
+
// APG / Primer / Carbon / Finder: expanded → collapse; else climb to parent.
|
|
945
1010
|
if (focusedIndex >= 0 && focusedIndex < flatNodes.length) {
|
|
946
|
-
const
|
|
947
|
-
if (hasChildren && isExpanded) {
|
|
948
|
-
|
|
1011
|
+
const flat = flatNodes[focusedIndex];
|
|
1012
|
+
if (flat.hasChildren && flat.isExpanded) {
|
|
1013
|
+
setKeyboardRing(true);
|
|
1014
|
+
toggleNode(flat.node);
|
|
1015
|
+
} else if (flat.parentId) {
|
|
1016
|
+
const parentIndex = flatNodes.findIndex((f) => f.node.id === flat.parentId);
|
|
1017
|
+
if (parentIndex >= 0) focusRow(parentIndex);
|
|
949
1018
|
}
|
|
950
1019
|
}
|
|
951
1020
|
},
|
|
@@ -1000,10 +1069,7 @@ export function TreeView<T = unknown>({
|
|
|
1000
1069
|
useHotkey(
|
|
1001
1070
|
hotkeyOverrides?.first ?? "Home",
|
|
1002
1071
|
() => {
|
|
1003
|
-
if (flatNodes.length > 0)
|
|
1004
|
-
setFocusedIndex(0);
|
|
1005
|
-
scrollToIndex(0);
|
|
1006
|
-
}
|
|
1072
|
+
if (flatNodes.length > 0) focusRow(0);
|
|
1007
1073
|
},
|
|
1008
1074
|
hotkeyOpts,
|
|
1009
1075
|
);
|
|
@@ -1011,15 +1077,38 @@ export function TreeView<T = unknown>({
|
|
|
1011
1077
|
useHotkey(
|
|
1012
1078
|
hotkeyOverrides?.last ?? "End",
|
|
1013
1079
|
() => {
|
|
1014
|
-
if (flatNodes.length > 0)
|
|
1015
|
-
const last = flatNodes.length - 1;
|
|
1016
|
-
setFocusedIndex(last);
|
|
1017
|
-
scrollToIndex(last);
|
|
1018
|
-
}
|
|
1080
|
+
if (flatNodes.length > 0) focusRow(flatNodes.length - 1);
|
|
1019
1081
|
},
|
|
1020
1082
|
hotkeyOpts,
|
|
1021
1083
|
);
|
|
1022
1084
|
|
|
1085
|
+
const handleTreeKeyDown = useCallback(
|
|
1086
|
+
(e: any) => {
|
|
1087
|
+
const key = e?.key as string | undefined;
|
|
1088
|
+
if (!key || key.length !== 1) return;
|
|
1089
|
+
if (e.ctrlKey || e.metaKey || e.altKey) return;
|
|
1090
|
+
if (key === " ") return;
|
|
1091
|
+
if (dragUiRef.current) return;
|
|
1092
|
+
if (flatNodes.length === 0) return;
|
|
1093
|
+
e.preventDefault?.();
|
|
1094
|
+
const now = Date.now();
|
|
1095
|
+
const state = typeaheadRef.current;
|
|
1096
|
+
state.buffer = now - state.at > TYPEAHEAD_MS ? key : state.buffer + key;
|
|
1097
|
+
state.at = now;
|
|
1098
|
+
const query = state.buffer.toLowerCase();
|
|
1099
|
+
const start = focusedIndex >= 0 ? focusedIndex : -1;
|
|
1100
|
+
const n = flatNodes.length;
|
|
1101
|
+
for (let i = 1; i <= n; i++) {
|
|
1102
|
+
const idx = (start + i) % n;
|
|
1103
|
+
if (flatNodes[idx].node.label.toLowerCase().startsWith(query)) {
|
|
1104
|
+
focusRow(idx);
|
|
1105
|
+
return;
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
},
|
|
1109
|
+
[flatNodes, focusedIndex, focusRow],
|
|
1110
|
+
);
|
|
1111
|
+
|
|
1023
1112
|
if (nodes.length === 0) {
|
|
1024
1113
|
return <EmptyState compact title={emptyMessage} {...stackProps} />;
|
|
1025
1114
|
}
|
|
@@ -1053,7 +1142,10 @@ export function TreeView<T = unknown>({
|
|
|
1053
1142
|
}
|
|
1054
1143
|
tabIndex={0}
|
|
1055
1144
|
outlineWidth={0}
|
|
1145
|
+
outlineStyle={"none" as any}
|
|
1056
1146
|
onFocus={handleContainerFocus}
|
|
1147
|
+
onBlur={handleContainerBlur}
|
|
1148
|
+
onKeyDown={handleTreeKeyDown}
|
|
1057
1149
|
position="relative"
|
|
1058
1150
|
style={{
|
|
1059
1151
|
height,
|
|
@@ -1064,7 +1156,16 @@ export function TreeView<T = unknown>({
|
|
|
1064
1156
|
data={flatNodes}
|
|
1065
1157
|
drawDistance={overscan * estimateSize}
|
|
1066
1158
|
keyExtractor={(item) => item.node.id}
|
|
1067
|
-
extraData={{
|
|
1159
|
+
extraData={{
|
|
1160
|
+
focused: effectiveFocused,
|
|
1161
|
+
selectedId,
|
|
1162
|
+
expandedIds,
|
|
1163
|
+
motion,
|
|
1164
|
+
dragUi,
|
|
1165
|
+
settle,
|
|
1166
|
+
keyboardRing,
|
|
1167
|
+
collapsedSelectedAncestors,
|
|
1168
|
+
}}
|
|
1068
1169
|
{...(canReorder && {
|
|
1069
1170
|
onScroll: (e: any) => {
|
|
1070
1171
|
const y = e?.nativeEvent?.contentOffset?.y;
|
|
@@ -1086,11 +1187,15 @@ export function TreeView<T = unknown>({
|
|
|
1086
1187
|
? node.icon
|
|
1087
1188
|
: defaultNodeIcon(hasChildren, isExpanded, nodeIconSize);
|
|
1088
1189
|
|
|
1190
|
+
const containsSelected = collapsedSelectedAncestors.has(node.id);
|
|
1191
|
+
const groupPosition = getGroupPosition(index, flatNodes.length);
|
|
1192
|
+
|
|
1089
1193
|
const labelContent = renderNode ? (
|
|
1090
1194
|
renderNode(node, depth)
|
|
1091
1195
|
) : (
|
|
1092
1196
|
<Text
|
|
1093
|
-
|
|
1197
|
+
{...knobProps.body}
|
|
1198
|
+
{...knobProps.label}
|
|
1094
1199
|
color={isSelected && onAccentLabel ? onAccentLabel : "$color"}
|
|
1095
1200
|
numberOfLines={1}
|
|
1096
1201
|
flexShrink={1}
|
|
@@ -1130,10 +1235,14 @@ export function TreeView<T = unknown>({
|
|
|
1130
1235
|
id={`${treeId}-node-${index}`}
|
|
1131
1236
|
{...{ "data-treeview-row": node.id }}
|
|
1132
1237
|
{...(isDropParent && { "data-treeview-drop-parent": "true" })}
|
|
1238
|
+
{...(isFocused && { "data-focused": true })}
|
|
1239
|
+
{...{ "data-group-position": groupPosition }}
|
|
1133
1240
|
role="treeitem"
|
|
1134
1241
|
aria-expanded={hasChildren ? isExpanded : undefined}
|
|
1135
1242
|
aria-selected={isSelected}
|
|
1136
1243
|
aria-level={depth + 1}
|
|
1244
|
+
aria-setsize={flatNodes.length}
|
|
1245
|
+
aria-posinset={index + 1}
|
|
1137
1246
|
alignItems="center"
|
|
1138
1247
|
minHeight={estimateSize}
|
|
1139
1248
|
paddingVertical={rowPadY}
|
|
@@ -1141,9 +1250,11 @@ export function TreeView<T = unknown>({
|
|
|
1141
1250
|
paddingInlineStart={rowPadX + depth * indentStep}
|
|
1142
1251
|
gap="$2"
|
|
1143
1252
|
cursor="pointer"
|
|
1253
|
+
position="relative"
|
|
1144
1254
|
y={rowY}
|
|
1145
1255
|
opacity={rowOpacity}
|
|
1146
1256
|
transition={rowTransition as any}
|
|
1257
|
+
{...stackRadiusProps(groupPosition, knobProps.borderRadius.borderRadius)}
|
|
1147
1258
|
onLayout={(e: any) => {
|
|
1148
1259
|
const h = e?.nativeEvent?.layout?.height;
|
|
1149
1260
|
if (typeof h === "number" && h > 0) rowHeights.current.set(node.id, h);
|
|
@@ -1155,12 +1266,13 @@ export function TreeView<T = unknown>({
|
|
|
1155
1266
|
? componentColors.interactive.background
|
|
1156
1267
|
: isSelected
|
|
1157
1268
|
? "$accentBackground"
|
|
1158
|
-
:
|
|
1269
|
+
: containsSelected
|
|
1159
1270
|
? componentColors.interactive.background
|
|
1160
1271
|
: "transparent"
|
|
1161
1272
|
}
|
|
1162
1273
|
// Row hover/press come from the knob state recipes (A-STATE);
|
|
1163
|
-
// selection tint stays sticky underneath them.
|
|
1274
|
+
// selection tint stays sticky underneath them. Focus is the
|
|
1275
|
+
// ring channel (LC-71) — never a second fill.
|
|
1164
1276
|
hoverStyle={{
|
|
1165
1277
|
...(control.hoverKnobProps as any),
|
|
1166
1278
|
...(isSelected && { backgroundColor: "$accentBackground" }),
|
|
@@ -1169,15 +1281,13 @@ export function TreeView<T = unknown>({
|
|
|
1169
1281
|
...(control.pressKnobProps as any),
|
|
1170
1282
|
...(isSelected && { backgroundColor: "$accentBackground" }),
|
|
1171
1283
|
}}
|
|
1172
|
-
//
|
|
1173
|
-
//
|
|
1174
|
-
|
|
1175
|
-
outlineStyle="solid"
|
|
1176
|
-
outlineColor="$outlineColor"
|
|
1177
|
-
outlineOffset={-2}
|
|
1284
|
+
// LC-71: keyboard ring on the focused row only (activedescendant).
|
|
1285
|
+
// Selected is fill above; selected + keyboard-focused = both.
|
|
1286
|
+
{...(isFocused && keyboardRing ? keyboardFocusRingProps : { outlineWidth: 0 })}
|
|
1178
1287
|
onPress={() => {
|
|
1179
1288
|
// A completed drag's terminating click is not a selection.
|
|
1180
1289
|
if (suppressClickRef.current) return;
|
|
1290
|
+
setKeyboardRing(false);
|
|
1181
1291
|
setFocusedIndex(index);
|
|
1182
1292
|
// Branch rows toggle on press (EUI/VS Code semantics): the
|
|
1183
1293
|
// whole row is the expand target, not a sub-44px caret.
|
|
@@ -1185,6 +1295,25 @@ export function TreeView<T = unknown>({
|
|
|
1185
1295
|
onNodeSelect?.(node);
|
|
1186
1296
|
}}
|
|
1187
1297
|
>
|
|
1298
|
+
{depth > 0
|
|
1299
|
+
? Array.from({ length: depth }, (_, guide) => {
|
|
1300
|
+
const inset = rowPadX + guide * indentStep + expandIconSize / 2;
|
|
1301
|
+
return (
|
|
1302
|
+
<View
|
|
1303
|
+
key={`guide-${guide}`}
|
|
1304
|
+
position="absolute"
|
|
1305
|
+
top={0}
|
|
1306
|
+
bottom={0}
|
|
1307
|
+
width={1}
|
|
1308
|
+
pointerEvents="none"
|
|
1309
|
+
backgroundColor={isSelected ? "$color1" : "$borderColor"}
|
|
1310
|
+
opacity={isSelected ? 0.35 : 0.5}
|
|
1311
|
+
{...(isRTL ? { right: inset } : { left: inset })}
|
|
1312
|
+
/>
|
|
1313
|
+
);
|
|
1314
|
+
})
|
|
1315
|
+
: null}
|
|
1316
|
+
|
|
1188
1317
|
{showExpansionArrows ? (
|
|
1189
1318
|
hasChildren ? (
|
|
1190
1319
|
<View
|
|
@@ -1315,7 +1444,13 @@ export function TreeView<T = unknown>({
|
|
|
1315
1444
|
>
|
|
1316
1445
|
{overlayNode.icon ?? defaultNodeIcon(overlayHasChildren, false, nodeIconSize)}
|
|
1317
1446
|
</View>
|
|
1318
|
-
<Text
|
|
1447
|
+
<Text
|
|
1448
|
+
{...knobProps.body}
|
|
1449
|
+
{...knobProps.label}
|
|
1450
|
+
color="$color"
|
|
1451
|
+
numberOfLines={1}
|
|
1452
|
+
flexShrink={1}
|
|
1453
|
+
>
|
|
1319
1454
|
{overlayNode.label}
|
|
1320
1455
|
</Text>
|
|
1321
1456
|
</XStack>
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
-
import type { YStackProps as StackProps, TamaguiElement } from "tamagui";
|
|
2
|
+
import type { SizeTokens, YStackProps as StackProps, TamaguiElement } from "tamagui";
|
|
3
3
|
export type AccordionVariant = "plain" | "card";
|
|
4
4
|
export type AccordionType = "single" | "multiple";
|
|
5
|
-
interface AccordionCommonProps extends Omit<StackProps, "onChange"> {
|
|
5
|
+
interface AccordionCommonProps extends Omit<StackProps, "onChange" | "size"> {
|
|
6
6
|
/** Visual variant: "plain" = edge-to-edge divider rows, "card" = each item on its own surface */
|
|
7
7
|
variant?: AccordionVariant;
|
|
8
8
|
/** Disable every item */
|
|
9
9
|
disabled?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Compact density. Steps space (and the paired size step the density
|
|
12
|
+
* recipe owns) down one level. Distinct from `size` — density is tightness,
|
|
13
|
+
* size is the control scale. Nested accordions always compact.
|
|
14
|
+
*/
|
|
15
|
+
compact?: boolean;
|
|
16
|
+
/** Size-knob override (control height + label type). Not a density switch. */
|
|
17
|
+
size?: SizeTokens;
|
|
10
18
|
children?: ReactNode;
|
|
11
19
|
}
|
|
12
20
|
export interface AccordionSingleModeProps extends AccordionCommonProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Accordion/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Accordion/index.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAavC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,IAAI,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAkBrF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElD,UAAU,oBAAqB,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1E,iGAAiG;IACjG,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE,6CAA6C;IAC7C,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACtE,uCAAuC;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,MAAM,cAAc,GAAG,wBAAwB,GAAG,0BAA0B,CAAC;AAenF,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IACzE,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qCAAqC;IACrC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oCAAoC;IACpC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6fD,eAAO,MAAM,SAAS;;;;CAIpB,CAAC"}
|
package/types/Alert/index.d.ts
CHANGED
|
@@ -12,10 +12,16 @@ export interface AlertProps extends Omit<GetProps<typeof AlertFrame>, "role" | "
|
|
|
12
12
|
icon?: ReactNode | null;
|
|
13
13
|
/** Custom trailing action slot (any node; Buttons inherit the intent and render solid). */
|
|
14
14
|
action?: ReactNode;
|
|
15
|
-
/** Convenience action button label (
|
|
15
|
+
/** Convenience action button label (nested-scale ghost control, 44px press floor). */
|
|
16
16
|
actionLabel?: string;
|
|
17
17
|
/** Press handler for the convenience action button. */
|
|
18
18
|
onAction?: () => void;
|
|
19
|
+
/** Custom secondary action slot (Primer/Polaris: at most two actions). */
|
|
20
|
+
secondaryAction?: ReactNode;
|
|
21
|
+
/** Convenience secondary action label. */
|
|
22
|
+
secondaryActionLabel?: string;
|
|
23
|
+
/** Press handler for the convenience secondary action. */
|
|
24
|
+
onSecondaryAction?: () => void;
|
|
19
25
|
/** Show a dismiss (X) button. */
|
|
20
26
|
dismissible?: boolean;
|
|
21
27
|
/** Called when the dismiss button is pressed. */
|
|
@@ -24,7 +30,7 @@ export interface AlertProps extends Omit<GetProps<typeof AlertFrame>, "role" | "
|
|
|
24
30
|
visible?: boolean;
|
|
25
31
|
/** Uncontrolled initial visibility (default true). */
|
|
26
32
|
defaultVisible?: boolean;
|
|
27
|
-
/** Tighter padding/type for dense layouts. */
|
|
33
|
+
/** Tighter padding/type for dense layouts (density compact + nested-scale). */
|
|
28
34
|
compact?: boolean;
|
|
29
35
|
}
|
|
30
36
|
declare const AlertFrame: import("tamagui").TamaguiComponent<import("@tamagui/web").TamaDefer, import("tamagui").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Alert/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Alert/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAaxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACxF,kFAAkF;IAClF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uBAAuB;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,sDAAsD;IACtD,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,0CAA0C;IAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,iCAAiC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAsBD,QAAA,MAAM,UAAU;;;6CAQd,CAAC;AA6WH;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,2CAOtC;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { TamaguiElement, TransitionProp, YStackProps as StackProps } from "tamagui";
|
|
3
|
+
/**
|
|
4
|
+
* AnimateHeight — the house auto-height primitive.
|
|
5
|
+
*
|
|
6
|
+
* CSS cannot transition to `height: auto` — intrinsic (content-driven) height
|
|
7
|
+
* changes snap no matter what `transition` is set, because height never
|
|
8
|
+
* appears as an interpolable value. This container measures its content
|
|
9
|
+
* (ResizeObserver on web, onLayout on native) and drives a NUMERIC `height`
|
|
10
|
+
* through the house `transition` token. The web css driver tweens it; the RN
|
|
11
|
+
* driver applies layout props directly (Axiom 4 native constraint), so native
|
|
12
|
+
* lands correct heights without a decorative tween — no worse than before,
|
|
13
|
+
* while mount/unmount sequencing still works on both platforms.
|
|
14
|
+
*
|
|
15
|
+
* Two modes:
|
|
16
|
+
* - follower (no `open` prop): always mounted; height tracks the content's
|
|
17
|
+
* intrinsic height, so content that grows or shrinks while visible tweens
|
|
18
|
+
* instead of snapping.
|
|
19
|
+
* - collapsible (`open: boolean`): `false` tweens to 0 and unmounts children
|
|
20
|
+
* once the collapse settles (immediately when nothing can tween, e.g.
|
|
21
|
+
* reduced motion or no measurement yet); `true` remounts children and
|
|
22
|
+
* tweens 0 → measured height, then keeps following content changes.
|
|
23
|
+
*
|
|
24
|
+
* Reduced motion is respected CONDITIONALLY: the transition resolves through
|
|
25
|
+
* the knob system (`useResolvedKnobs`), which is `undefined` under OS
|
|
26
|
+
* `prefers-reduced-motion` or `animation="none"` — heights then apply
|
|
27
|
+
* instantly, with no decorative tween, but state changes still land.
|
|
28
|
+
*
|
|
29
|
+
* Padding belongs INSIDE children (or on a wrapper around this component):
|
|
30
|
+
* the measured box is the children's wrapper, so padding on AnimateHeight
|
|
31
|
+
* itself would be excluded from the animated height.
|
|
32
|
+
*/
|
|
33
|
+
export interface AnimateHeightProps extends Omit<StackProps, "height" | "children"> {
|
|
34
|
+
/**
|
|
35
|
+
* Collapsible mode. Omit entirely for follower mode (height always tracks
|
|
36
|
+
* content). `false` collapses to 0 and unmounts children at rest.
|
|
37
|
+
*/
|
|
38
|
+
open?: boolean;
|
|
39
|
+
children?: ReactNode;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Settle time before finalizing (unmounting / releasing a clamp) — token
|
|
43
|
+
* settle + buffer. Exported for siblings that sequence work after a height
|
|
44
|
+
* tween (e.g. CodeBlock's reveal releases its maxHeight clamp on settle).
|
|
45
|
+
*/
|
|
46
|
+
export declare function settleMs(transition: TransitionProp | undefined): number;
|
|
47
|
+
export declare const AnimateHeight: import("react").ForwardRefExoticComponent<AnimateHeightProps & import("react").RefAttributes<TamaguiElement>>;
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AnimateHeight/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAGzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjF;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAqBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CAMvE;AAED,eAAO,MAAM,aAAa,+GA4JzB,CAAC"}
|
|
@@ -3,4 +3,30 @@
|
|
|
3
3
|
* "Ada Lovelace" → "AL", "john.doe@x" → "JD", "Ada" → "AD".
|
|
4
4
|
*/
|
|
5
5
|
export declare function getInitials(name: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Polaris-style deterministic initials fill. Tokens only — the same seed
|
|
8
|
+
* always lands on the same ramp pair so two "AB" avatars match.
|
|
9
|
+
*/
|
|
10
|
+
export declare const FALLBACK_TONES: readonly [{
|
|
11
|
+
readonly bg: "$blue4";
|
|
12
|
+
readonly fg: "$blue12";
|
|
13
|
+
}, {
|
|
14
|
+
readonly bg: "$green4";
|
|
15
|
+
readonly fg: "$green12";
|
|
16
|
+
}, {
|
|
17
|
+
readonly bg: "$orange4";
|
|
18
|
+
readonly fg: "$orange12";
|
|
19
|
+
}, {
|
|
20
|
+
readonly bg: "$purple4";
|
|
21
|
+
readonly fg: "$purple12";
|
|
22
|
+
}, {
|
|
23
|
+
readonly bg: "$yellow4";
|
|
24
|
+
readonly fg: "$yellow12";
|
|
25
|
+
}, {
|
|
26
|
+
readonly bg: "$red4";
|
|
27
|
+
readonly fg: "$red12";
|
|
28
|
+
}];
|
|
29
|
+
export type FallbackTone = (typeof FALLBACK_TONES)[number];
|
|
30
|
+
export declare function fallbackToneIndex(seed: string): number;
|
|
31
|
+
export declare function fallbackTone(seed: string | undefined): FallbackTone | undefined;
|
|
6
32
|
//# sourceMappingURL=getInitials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInitials.d.ts","sourceRoot":"","sources":["../../src/Avatar/getInitials.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUhD"}
|
|
1
|
+
{"version":3,"file":"getInitials.d.ts","sourceRoot":"","sources":["../../src/Avatar/getInitials.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAOjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAI/E"}
|