@octane-xplat/ui 0.7.0 → 0.7.2

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.
@@ -0,0 +1,39 @@
1
+ import { cx } from "./cx.js";
2
+ import { View } from "./View.tsrx.js";
3
+ import { defineUniversalComponent, universalComponent, universalPlan, universalProps, universalValue } from "@nativescript-community/octane";
4
+ //#region src/Hoverable.mobile.tsrx
5
+ var __octaneUniversalPlan0 = universalPlan("nativescript", {
6
+ "kind": "slot",
7
+ "slot": 0
8
+ });
9
+ var Hoverable = defineUniversalComponent("nativescript", function Hoverable(props) {
10
+ return universalValue(__octaneUniversalPlan0, [universalComponent("nativescript", View, universalProps([
11
+ [
12
+ "set",
13
+ "id",
14
+ props.id
15
+ ],
16
+ [
17
+ "set",
18
+ "className",
19
+ cx(props.className)
20
+ ],
21
+ [
22
+ "set",
23
+ "style",
24
+ props.style
25
+ ],
26
+ [
27
+ "set",
28
+ "ios",
29
+ props.ios
30
+ ],
31
+ [
32
+ "set",
33
+ "android",
34
+ props.android
35
+ ]
36
+ ], props.children))]);
37
+ }, { "module": "@nativescript-community/octane" });
38
+ //#endregion
39
+ export { Hoverable };
@@ -0,0 +1,39 @@
1
+ import { cx } from "./cx.js";
2
+ import { View } from "./View.tsrx.js";
3
+ import { defineUniversalComponent, universalComponent, universalPlan, universalProps, universalValue } from "@nativescript-community/octane";
4
+ //#region src/Tooltip.mobile.tsrx
5
+ var __octaneUniversalPlan0 = universalPlan("nativescript", {
6
+ "kind": "slot",
7
+ "slot": 0
8
+ });
9
+ var Tooltip = defineUniversalComponent("nativescript", function Tooltip(props) {
10
+ return universalValue(__octaneUniversalPlan0, [universalComponent("nativescript", View, universalProps([
11
+ [
12
+ "set",
13
+ "id",
14
+ props.id
15
+ ],
16
+ [
17
+ "set",
18
+ "className",
19
+ cx(props.className)
20
+ ],
21
+ [
22
+ "set",
23
+ "style",
24
+ props.style
25
+ ],
26
+ [
27
+ "set",
28
+ "ios",
29
+ props.ios
30
+ ],
31
+ [
32
+ "set",
33
+ "android",
34
+ props.android
35
+ ]
36
+ ], props.trigger))]);
37
+ }, { "module": "@nativescript-community/octane" });
38
+ //#endregion
39
+ export { Tooltip };
@@ -68,8 +68,8 @@ import { ScrollBox } from "./ScrollBox.tsrx.js";
68
68
  import { ScrollView } from "./ScrollView.tsrx.js";
69
69
  import { VirtualList } from "./VirtualList.tsrx.js";
70
70
  import { WebView } from "./WebView.tsrx.js";
71
- import { Hoverable } from "./Hoverable.tsrx.js";
72
- import { Tooltip } from "./Tooltip.tsrx.js";
71
+ import { Hoverable } from "./Hoverable.mobile.tsrx.js";
72
+ import { Tooltip } from "./Tooltip.mobile.tsrx.js";
73
73
  import { showToast } from "./toast-anchor.tsrx.js";
74
74
  import { useAnimation } from "./anim.tsrx.js";
75
75
  import { styled } from "./styled.tsrx.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "buildId": "b28db075-a347-4f50-bc15-416a0351d4e3",
3
+ "buildId": "397eabd3-87de-49d4-adf0-133ab9697510",
4
4
  "mode": "production",
5
5
  "capabilities": {
6
6
  "independentHydration": false
@@ -68,8 +68,8 @@ import { ScrollBox } from "./ScrollBox.tsrx.js";
68
68
  import { ScrollView } from "./ScrollView.tsrx.js";
69
69
  import { VirtualList } from "./VirtualList.tsrx.js";
70
70
  import { WebView } from "./WebView.tsrx.js";
71
- import { Hoverable } from "./Hoverable.tsrx.js";
72
- import { Tooltip } from "./Tooltip.tsrx.js";
71
+ import { Hoverable } from "./Hoverable.mobile.tsrx.js";
72
+ import { Tooltip } from "./Tooltip.mobile.tsrx.js";
73
73
  import { showToast } from "./toast-anchor.tsrx.js";
74
74
  import { useAnimation } from "./anim.tsrx.js";
75
75
  import { styled } from "./styled.tsrx.js";
package/dist/native/ui.js CHANGED
@@ -68,8 +68,8 @@ import { ScrollBox } from "./ScrollBox.tsrx.js";
68
68
  import { ScrollView } from "./ScrollView.tsrx.js";
69
69
  import { VirtualList } from "./VirtualList.tsrx.js";
70
70
  import { WebView } from "./WebView.tsrx.js";
71
- import { Hoverable } from "./Hoverable.tsrx.js";
72
- import { Tooltip } from "./Tooltip.tsrx.js";
71
+ import { Hoverable } from "./Hoverable.mobile.tsrx.js";
72
+ import { Tooltip } from "./Tooltip.mobile.tsrx.js";
73
73
  import { showToast } from "./toast-anchor.tsrx.js";
74
74
  import { useAnimation } from "./anim.tsrx.js";
75
75
  import { styled } from "./styled.tsrx.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "buildId": "78256e80-6068-49f2-aacb-e3e38333d9ee",
3
+ "buildId": "b6a64d5b-cfff-418e-921b-443efbc3bad2",
4
4
  "mode": "production",
5
5
  "capabilities": {
6
6
  "independentHydration": false
package/dist/web/ui.js CHANGED
@@ -89,5 +89,5 @@ import { createStore } from "./store.js";
89
89
  import { useStore } from "./use-store.web.tsrx.js";
90
90
  import { Sheet } from "./Sheet.web.tsrx.js";
91
91
  import { closeSheet, openSheet } from "./sheet-service.web.js";
92
- import "./index.shared.web.js";
92
+ import "./index.shared.js";
93
93
  export { Absolute, Accordion, ActivityIndicator, Alert, Avatar, AvatarGroup, Badge, Banner, Breadcrumb, Button, Card, Checkbox, CheckboxGroup, Chip, Collapsible, View as Column, Combobox, CommandPalette, ContextMenu, Drawer, DropdownMenu, Empty, FieldGroup, FormField, Grid, Heading, Hoverable, Icon, Image, InputMenu, InputNumber, InputRating, InputTags, Kbd, Link, ListItem, Meter, NavLink, NavigationMenu, Overlay, Pagination, PinInput, Popover, Pressable, ProgressGroup, RadioGroup, RichText, RichTextSpan, Row, SafeArea, Screen, ScrollBox, ScrollView, SearchInput, SegmentedControl, Select, SelectMenu, Separator, Sheet, Skeleton, Slider, Spacer, Stack, Stepper, Switch, Table, Tabs, Text, TextArea, TextInput, Timeline, Tooltip, Tree, User, View, VirtualList, WebView, addBackInterceptor, addRoutes, applyThemeClasses, canGoBack, closeSheet, createStore, currentModalRoute, currentRoute, defineRoutes, deriveRouteManifest, getColorScheme, getStack, getThemePreference, getThemeScheme, hrefFor, isNative, layoutsFor as layoutsForRoute, mergeRouteManifests, onThemeSchemeChange, openSheet, openWindow, popRoute, pushDeepLink, pushRoute, redirect, registerIcon, registerIcons, registerRoutes, registerScreens, registerStack, routeFor, routeStacks, screenFor, setThemePreference, setTranslate, showToast, stackEntries, styled, themeSchemeClasses, useAnimation, useBackInterceptor, useCanGoBack, useColorScheme, useMeasure, useModalRoute, useRoute, useSafeAreaInsets, useStore, useThemeScheme };
package/package.json CHANGED
@@ -1,6 +1,22 @@
1
1
  {
2
2
  "name": "@octane-xplat/ui",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
+ "description": "Cross-platform UI for Octane xplat — shared primitives, stacks, routes and theming across web (DOM), iOS and Android (NativeScript)",
5
+ "keywords": [
6
+ "octane",
7
+ "xplat",
8
+ "cross-platform",
9
+ "ui",
10
+ "ui-components",
11
+ "primitives",
12
+ "design-system",
13
+ "nativescript",
14
+ "ios",
15
+ "android",
16
+ "web"
17
+ ],
18
+ "license": "MIT",
19
+ "homepage": "https://github.com/octane-xplat/octane-xplat/tree/main/packages/ui",
4
20
  "files": [
5
21
  "dist",
6
22
  "types",
@@ -90,7 +106,7 @@
90
106
  "directory": "packages/ui"
91
107
  },
92
108
  "scripts": {
93
- "build": "node ../../scripts/sync-ui-barrels.mjs --check && vite build && vite build --mode native && tsrx-typegen --target ui && node ../../scripts/check-native-dist.mjs",
109
+ "build": "vite build && vite build --mode native && tsrx-typegen --target ui && node ../../scripts/check-native-dist.mjs",
94
110
  "test:packed": "node tests/packed-consumer.mjs",
95
111
  "test:native": "vitest run --config vitest.native.config.mts"
96
112
  }
@@ -77,6 +77,9 @@ export function VirtualList<T = any>(props: VirtualListProps<T>) @{
77
77
  const anchorRestoreTimerRef = useRef<any>(null)
78
78
  const anchorRestoreScheduledRef = useRef(false)
79
79
  const queuedAnchorRef = useRef<{ rowKey: string; within: number } | null>(null)
80
+ const estimateAnchorRef = useRef<{ rowKey: string; within: number } | null>(null)
81
+ const estimateTimerRef = useRef<any>(null)
82
+ const pendingRowMeasureRef = useRef(new Map<string, number>())
80
83
  const hasSeparator = Boolean(props.renderSeparator)
81
84
  const hasSeparatorRef = useRef(hasSeparator)
82
85
  hasSeparatorRef.current = hasSeparator
@@ -173,6 +176,22 @@ export function VirtualList<T = any>(props: VirtualListProps<T>) @{
173
176
  anchorRestoreTimerRef.current = timer
174
177
  }
175
178
 
179
+ function scheduleEstimateRebuild(anchor: { rowKey: string; within: number } | null) {
180
+ if (anchor) {estimateAnchorRef.current = anchor}
181
+ if (estimateTimerRef.current) {return}
182
+ // Debounce: each rebuild rescales every unmeasured prefix, so one
183
+ // rebuild per measurement burst — not per row — keeps the AppKit
184
+ // relayout/anchor cycle count bounded while samples accumulate.
185
+ estimateTimerRef.current = setTimeout(() => {
186
+ estimateTimerRef.current = null
187
+ const scheduledAnchor = estimateAnchorRef.current
188
+ estimateAnchorRef.current = null
189
+ rebuildLayout(entriesRef.current, viewportWidthRef.current)
190
+ restoreAnchor(scheduledAnchor)
191
+ refreshWindow()
192
+ }, 120)
193
+ }
194
+
176
195
  function recordRowSize(rowKey: string, width: number, height: number) {
177
196
  if (!Number.isFinite(height) || height < 0) {return}
178
197
  const index = indexByRowKeyRef.current.get(rowKey)
@@ -180,14 +199,16 @@ export function VirtualList<T = any>(props: VirtualListProps<T>) @{
180
199
  const entry = entriesRef.current[index]
181
200
  if (!entry) {return}
182
201
 
202
+ const hasRowSeparator = hasSeparatorRef.current && index < entriesRef.current.length - 1
203
+ const cacheKey = virtualListMeasurementKey(rowKey, hasRowSeparator)
204
+ const cached = sizeCacheRef.current.get(cacheKey)
205
+ // NSViewFrameDidChangeNotification fires on origin moves too, not just
206
+ // resizes — spacer shifts move every mounted row and would otherwise
207
+ // re-run this whole path (and reschedule estimate rebuilds) forever.
208
+ if (cached && sameSize(cached.height, height) && sameSize(cached.width, width)) {return}
209
+
183
210
  const anchor = queuedAnchorRef.current ?? captureAnchor()
184
- sizeCacheRef.current.set(
185
- virtualListMeasurementKey(
186
- rowKey,
187
- hasSeparatorRef.current && index < entriesRef.current.length - 1,
188
- ),
189
- { width, height },
190
- )
211
+ sizeCacheRef.current.set(cacheKey, { width, height })
191
212
 
192
213
  const delta = sizeIndexRef.current.set(index, height)
193
214
  if (Math.abs(delta) >= 0.5) {
@@ -195,6 +216,8 @@ export function VirtualList<T = any>(props: VirtualListProps<T>) @{
195
216
  if (anchor && anchorIndex !== undefined && index < anchorIndex) {restoreAnchor(anchor)}
196
217
  refreshWindow()
197
218
  }
219
+
220
+ scheduleEstimateRebuild(anchor)
198
221
  }
199
222
 
200
223
  function syncViewport() {
@@ -236,7 +259,21 @@ export function VirtualList<T = any>(props: VirtualListProps<T>) @{
236
259
  }
237
260
 
238
261
  function onRowLayout(entry: VirtualListEntry<T>, event: AppKitLayoutEvent) {
239
- recordRowSize(entry.rowKey, Number(event?.width ?? 0), Number(event?.height ?? 0))
262
+ const view = event?.object
263
+ if (!view) {return}
264
+ // Frame notifications arrive mid-layout: a row can report h=0 (or a
265
+ // stack-stretched transient) before its final size is known, and rows
266
+ // unmounted before the second pass would keep the bogus measurement.
267
+ // Read the frame on the next tick instead, once layout has settled.
268
+ const coalesced = (pendingRowMeasureRef.current.get(entry.rowKey) ?? 0) + 1
269
+ pendingRowMeasureRef.current.set(entry.rowKey, coalesced)
270
+ setTimeout(() => {
271
+ if (pendingRowMeasureRef.current.get(entry.rowKey) !== coalesced) {return}
272
+ pendingRowMeasureRef.current.delete(entry.rowKey)
273
+ if (!view.superview) {return}
274
+ const size = view.frame?.size ?? view.bounds?.size
275
+ recordRowSize(entry.rowKey, Number(size?.width ?? 0), Number(size?.height ?? 0))
276
+ }, 0)
240
277
  }
241
278
 
242
279
  const range = currentRange()
@@ -1,28 +1,28 @@
1
1
  // Foundations and common controls
2
- export { View } from './View.tsrx'
3
- export { View as Column } from './View.tsrx'
4
- export { Row } from './Row.tsrx'
5
- export { Grid } from './Grid.tsrx'
6
- export { Stack } from './Stack.tsrx'
7
- export { Absolute } from './Absolute.tsrx'
2
+ export { View } from './View'
3
+ export { View as Column } from './View'
4
+ export { Row } from './Row'
5
+ export { Grid } from './Grid'
6
+ export { Stack } from './Stack'
7
+ export { Absolute } from './Absolute'
8
8
  export type { PanEvent, SwipeEvent, SetTranslate } from './props'
9
9
  export { setTranslate } from './translate'
10
- export { Spacer } from './Spacer.tsrx'
11
- export { Text } from './Text.tsrx'
12
- export { RichText, RichTextSpan } from './RichText.tsrx'
13
- export { Pressable } from './Pressable.tsrx'
14
- export { Button } from './Button.tsrx'
15
- export { Collapsible } from './Collapsible.tsrx'
16
- export { Accordion } from './Accordion.tsrx'
17
- export { Checkbox } from './Checkbox.tsrx'
18
- export { RadioGroup } from './RadioGroup.tsrx'
19
- export { DropdownMenu } from './DropdownMenu.tsrx'
20
- export { ContextMenu } from './ContextMenu.tsrx'
21
- export { Badge } from './Badge.tsrx'
22
- export { Separator } from './Separator.tsrx'
23
- export { Skeleton } from './Skeleton.tsrx'
24
- export { Avatar } from './Avatar.tsrx'
25
- export { AvatarGroup } from './AvatarGroup.tsrx'
10
+ export { Spacer } from './Spacer'
11
+ export { Text } from './Text'
12
+ export { RichText, RichTextSpan } from './RichText'
13
+ export { Pressable } from './Pressable'
14
+ export { Button } from './Button'
15
+ export { Collapsible } from './Collapsible'
16
+ export { Accordion } from './Accordion'
17
+ export { Checkbox } from './Checkbox'
18
+ export { RadioGroup } from './RadioGroup'
19
+ export { DropdownMenu } from './DropdownMenu'
20
+ export { ContextMenu } from './ContextMenu'
21
+ export { Badge } from './Badge'
22
+ export { Separator } from './Separator'
23
+ export { Skeleton } from './Skeleton'
24
+ export { Avatar } from './Avatar'
25
+ export { AvatarGroup } from './AvatarGroup'
26
26
  export type {
27
27
  AccordionItemSpec,
28
28
  AccordionProps,
@@ -43,16 +43,16 @@ export type {
43
43
  } from './props'
44
44
 
45
45
  // Forms and data entry
46
- export { FormField } from './FormField.tsrx'
47
- export { FieldGroup } from './FieldGroup.tsrx'
48
- export { ListItem } from './ListItem.tsrx'
49
- export { InputNumber } from './InputNumber.tsrx'
50
- export { PinInput } from './PinInput.tsrx'
51
- export { Select } from './Select.tsrx'
52
- export { SelectMenu, Combobox, InputMenu } from './aliases.tsrx'
53
- export { InputTags } from './InputTags.tsrx'
54
- export { InputRating } from './InputRating.tsrx'
55
- export { CheckboxGroup } from './CheckboxGroup.tsrx'
46
+ export { FormField } from './FormField'
47
+ export { FieldGroup } from './FieldGroup'
48
+ export { ListItem } from './ListItem'
49
+ export { InputNumber } from './InputNumber'
50
+ export { PinInput } from './PinInput'
51
+ export { Select } from './Select'
52
+ export { SelectMenu, Combobox, InputMenu } from './aliases'
53
+ export { InputTags } from './InputTags'
54
+ export { InputRating } from './InputRating'
55
+ export { CheckboxGroup } from './CheckboxGroup'
56
56
  export type {
57
57
  CheckboxGroupProps,
58
58
  FieldGroupProps,
@@ -69,11 +69,11 @@ export type {
69
69
  } from './props'
70
70
 
71
71
  // Navigation and command surfaces
72
- export { Breadcrumb } from './Breadcrumb.tsrx'
73
- export { Pagination } from './Pagination.tsrx'
74
- export { Stepper } from './Stepper.tsrx'
75
- export { NavigationMenu } from './NavigationMenu.tsrx'
76
- export { CommandPalette } from './CommandPalette.tsrx'
72
+ export { Breadcrumb } from './Breadcrumb'
73
+ export { Pagination } from './Pagination'
74
+ export { Stepper } from './Stepper'
75
+ export { NavigationMenu } from './NavigationMenu'
76
+ export { CommandPalette } from './CommandPalette'
77
77
  export type {
78
78
  BreadcrumbItem,
79
79
  BreadcrumbProps,
@@ -86,17 +86,17 @@ export type {
86
86
  } from './props'
87
87
 
88
88
  // Content and display
89
- export { Table } from './Table.tsrx'
90
- export { Timeline } from './Timeline.tsrx'
91
- export { Tree } from './Tree.tsrx'
92
- export { Alert } from './Alert.tsrx'
93
- export { Card } from './Card.tsrx'
94
- export { Chip } from './Chip.tsrx'
95
- export { Kbd } from './Kbd.tsrx'
96
- export { Empty } from './Empty.tsrx'
97
- export { Banner } from './Banner.tsrx'
98
- export { User } from './User.tsrx'
99
- export { ProgressGroup } from './ProgressGroup.tsrx'
89
+ export { Table } from './Table'
90
+ export { Timeline } from './Timeline'
91
+ export { Tree } from './Tree'
92
+ export { Alert } from './Alert'
93
+ export { Card } from './Card'
94
+ export { Chip } from './Chip'
95
+ export { Kbd } from './Kbd'
96
+ export { Empty } from './Empty'
97
+ export { Banner } from './Banner'
98
+ export { User } from './User'
99
+ export { ProgressGroup } from './ProgressGroup'
100
100
  export type {
101
101
  AlertProps,
102
102
  BannerProps,
@@ -115,24 +115,24 @@ export type {
115
115
  } from './props'
116
116
 
117
117
  // Links, input, scrolling, media, and overlays
118
- export { Link } from './Link.tsrx'
119
- export { NavLink } from './NavLink.tsrx'
120
- export { TextInput } from './TextInput.tsrx'
121
- export { TextArea } from './TextArea.tsrx'
122
- export { SearchInput } from './SearchInput.tsrx'
123
- export { SegmentedControl } from './SegmentedControl.tsrx'
124
- export { ScrollBox } from './ScrollBox.tsrx'
125
- export { ScrollView } from './ScrollView.tsrx'
126
- export { VirtualList } from './VirtualList.tsrx'
118
+ export { Link } from './Link'
119
+ export { NavLink } from './NavLink'
120
+ export { TextInput } from './TextInput'
121
+ export { TextArea } from './TextArea'
122
+ export { SearchInput } from './SearchInput'
123
+ export { SegmentedControl } from './SegmentedControl'
124
+ export { ScrollBox } from './ScrollBox'
125
+ export { ScrollView } from './ScrollView'
126
+ export { VirtualList } from './VirtualList'
127
127
  export type { VirtualListProps } from './props'
128
- export { Image } from './Image.tsrx'
129
- export { WebView } from './WebView.tsrx'
128
+ export { Image } from './Image'
129
+ export { WebView } from './WebView'
130
130
  export type { WebViewContentSize, WebViewHandle, WebViewLoadEvent, WebViewProps } from './props'
131
- export { Overlay } from './Overlay.tsrx'
132
- export { Popover } from './Popover.tsrx'
133
- export { Hoverable } from './Hoverable.tsrx'
134
- export { Tooltip } from './Tooltip.tsrx'
135
- export { showToast } from './toast-anchor.tsrx'
131
+ export { Overlay } from './Overlay'
132
+ export { Popover } from './Popover'
133
+ export { Hoverable } from './Hoverable'
134
+ export { Tooltip } from './Tooltip'
135
+ export { showToast } from './toast-anchor'
136
136
  export type {
137
137
  HoverableProps,
138
138
  OverlayProps,
@@ -146,8 +146,8 @@ export type {
146
146
  } from './props'
147
147
 
148
148
  // Animation, theme, styling, and host services
149
- export { useAnimation } from './anim.tsrx'
150
- export type { AnimatedValue } from './anim.tsrx'
149
+ export { useAnimation } from './anim'
150
+ export type { AnimatedValue } from './anim'
151
151
  export {
152
152
  useThemeScheme,
153
153
  getThemeScheme,
@@ -160,25 +160,25 @@ export {
160
160
 
161
161
  export { useColorScheme, getColorScheme } from './theme/colorScheme'
162
162
  export type { ColorScheme } from './theme/colorScheme'
163
- export { styled } from './styled.tsrx'
163
+ export { styled } from './styled'
164
164
  export { openWindow } from './windows'
165
165
 
166
166
  // Screens, visual controls, and icons
167
- export { Screen } from './Screen.tsrx'
168
- export { Tabs } from './Tabs.tsrx'
169
- export type { TabSpec } from './Tabs.tsrx'
170
- export { Switch } from './Switch.tsrx'
171
- export { SafeArea } from './SafeArea.tsrx'
172
- export { Drawer } from './Drawer.tsrx'
173
- export { useSafeAreaInsets } from './safeAreaInsets.tsrx'
174
- export type { SafeAreaInsets } from './safeAreaInsets.tsrx'
175
- export { useMeasure } from './useMeasure.tsrx'
167
+ export { Screen } from './Screen'
168
+ export { Tabs } from './Tabs'
169
+ export type { TabSpec } from './Tabs'
170
+ export { Switch } from './Switch'
171
+ export { SafeArea } from './SafeArea'
172
+ export { Drawer } from './Drawer'
173
+ export { useSafeAreaInsets } from './safeAreaInsets'
174
+ export type { SafeAreaInsets } from './safeAreaInsets'
175
+ export { useMeasure } from './useMeasure'
176
176
  export type { MeasureBounds, MeasureResult, UseMeasureOptions } from './props'
177
- export { ActivityIndicator } from './ActivityIndicator.tsrx'
178
- export { Meter } from './Meter.tsrx'
179
- export { Slider } from './Slider.tsrx'
180
- export { Icon } from './Icon.tsrx'
181
- export { Heading } from './Heading.tsrx'
177
+ export { ActivityIndicator } from './ActivityIndicator'
178
+ export { Meter } from './Meter'
179
+ export { Slider } from './Slider'
180
+ export { Icon } from './Icon'
181
+ export { Heading } from './Heading'
182
182
  export { registerIcon, registerIcons } from './icons'
183
183
  export type { IconGlyph } from './icons'
184
184
  export type {
@@ -216,7 +216,7 @@ export {
216
216
  layoutsForRoute,
217
217
  } from './route'
218
218
 
219
- export { useBackInterceptor } from './use-back.tsrx'
219
+ export { useBackInterceptor } from './use-back'
220
220
 
221
221
  export { deriveRouteManifest, defineRoutes, mergeRouteManifests } from './route-table'
222
222
  export type {
@@ -240,8 +240,8 @@ export type {
240
240
  // Stores, sheets, and shared prop types
241
241
  export { createStore } from './store'
242
242
  export type { Store, ReadableStore } from './store'
243
- export { useStore } from './use-store.tsrx'
244
- export { Sheet } from './Sheet.tsrx'
243
+ export { useStore } from './use-store'
244
+ export { Sheet } from './Sheet'
245
245
  export { openSheet, closeSheet } from './sheet-service'
246
246
  export type { SheetProps, SheetOpenOptions, OpenSheet } from './props'
247
247
  export type {
package/src/index.web.ts CHANGED
@@ -1 +1 @@
1
- export * from './index.shared.web'
1
+ export * from './index.shared'
@@ -50,6 +50,7 @@
50
50
  "Heading.d.ts",
51
51
  "Heading.web.d.ts",
52
52
  "Hoverable.d.ts",
53
+ "Hoverable.mobile.d.ts",
53
54
  "Hoverable.web.d.ts",
54
55
  "Icon.d.ts",
55
56
  "Icon.web.d.ts",
@@ -136,6 +137,7 @@
136
137
  "Timeline.d.ts",
137
138
  "Timeline.web.d.ts",
138
139
  "Tooltip.d.ts",
140
+ "Tooltip.mobile.d.ts",
139
141
  "Tooltip.web.d.ts",
140
142
  "Tree.d.ts",
141
143
  "Tree.web.d.ts",
@@ -162,15 +164,16 @@
162
164
  "anim.d.ts",
163
165
  "anim.web.d.ts",
164
166
  "apply-native-modifiers.native.d.ts",
167
+ "camera-permission.web.d.ts",
165
168
  "child-array.d.ts",
166
169
  "cx.d.ts",
167
170
  "escape-props.d.ts",
171
+ "escape-props.web.d.ts",
168
172
  "icons.d.ts",
169
173
  "index.d.ts",
170
174
  "index.linux.d.ts",
171
175
  "index.mobile.d.ts",
172
176
  "index.shared.d.ts",
173
- "index.shared.web.d.ts",
174
177
  "index.web.d.ts",
175
178
  "ios/LiquidGlass.ios.d.ts",
176
179
  "ios/LiquidGlassContainer.ios.d.ts",
@@ -222,13 +225,15 @@
222
225
  "svg.mobile.d.ts",
223
226
  "tap-to-blur.mobile.d.ts",
224
227
  "text-write.d.ts",
228
+ "text-write.web.d.ts",
225
229
  "theme/colorScheme.d.ts",
226
230
  "theme/colorScheme.linux.d.ts",
227
- "theme/colorScheme.web.d.ts",
228
231
  "theme/status-bar-scheme.mobile.d.ts",
229
232
  "theme/theme-scheme.d.ts",
230
233
  "toast-anchor.d.ts",
231
234
  "toast-anchor.web.d.ts",
235
+ "toast.d.ts",
236
+ "toast.web.d.ts",
232
237
  "transform.web.d.ts",
233
238
  "translate.d.ts",
234
239
  "translate.web.d.ts",
@@ -0,0 +1,8 @@
1
+ /** @jsxImportSource @nativescript-community/octane */
2
+ import type { HoverableProps } from './props.js';
3
+ /** Touch-target leaf: renders the children unchanged and never mounts the
4
+ * hover card — pointer intent has no touch semantic. A long-press stand-in
5
+ * is deliberately not provided (the fake-parity trap from decision #44).
6
+ * Keep essential information out of `card`; the pointer platforms (web,
7
+ * macOS) carry the real hover surface. */
8
+ export declare function Hoverable(props: HoverableProps): unknown;
@@ -0,0 +1,7 @@
1
+ /** @jsxImportSource @nativescript-community/octane */
2
+ import type { TooltipProps } from './props.js';
3
+ /** Touch-target leaf: renders the trigger unchanged and never mounts the
4
+ * hint layer — hover/focus intent has no touch semantic (decision #47,
5
+ * revised). Keep essential information out of `content`; the pointer
6
+ * platforms (web, macOS) carry the real hover surface. */
7
+ export declare function Tooltip(props: TooltipProps): unknown;
@@ -0,0 +1,2 @@
1
+ export declare function cameraHardwarePresent(): boolean;
2
+ export declare function ensureCameraPermission(): Promise<boolean>;
@@ -0,0 +1,5 @@
1
+ /** Apply DOM escape props after the primitive's own props. Dash-named keys
2
+ * are attributes; other keys use the DOM property where available. */
3
+ export declare function applyEscapeProps(element: any, props: {
4
+ web?: any;
5
+ }): void;
@@ -1 +1 @@
1
- export * from './index.shared.web.js';
1
+ export * from './index.shared.js';
@@ -0,0 +1,4 @@
1
+ /** Web twin — controlled text writes are DOM value assignments; the browser
2
+ * keeps the selection on unchanged prefixes itself. Present for
3
+ * platform-suffix parity; the native leaves are the only callers. */
4
+ export declare function writeText(view: any, value: string | undefined | null): void;
@@ -0,0 +1,3 @@
1
+ import type { ToastContent, ToastOptions } from './props.js';
2
+ /** FIFO queue; each toast is shown after the prior toast closes. */
3
+ export declare function showToast(content: ToastContent, options?: ToastOptions): void;
@@ -0,0 +1,3 @@
1
+ import type { ToastContent, ToastOptions } from './props.js';
2
+ /** FIFO queue; each toast is shown after the prior toast closes. */
3
+ export declare function showToast(content: ToastContent, options?: ToastOptions): void;
@@ -1,139 +0,0 @@
1
- import { cx } from "./cx.js";
2
- import { View } from "./View.tsrx.js";
3
- import { defineUniversalComponent, hookSlots, universalComponent, universalPlan, universalProps, universalValue, useEffect, useRef } from "@nativescript-community/octane";
4
- //#region src/Hoverable.tsrx
5
- var _hs$ = /* @__PURE__ */ hookSlots(7);
6
- var _h$0 = /* @__PURE__ */ Symbol(_hs$);
7
- var _h$1 = /* @__PURE__ */ Symbol(_hs$ + 1);
8
- var _h$2 = /* @__PURE__ */ Symbol(_hs$ + 2);
9
- var _h$3 = /* @__PURE__ */ Symbol(_hs$ + 3);
10
- var _h$4 = /* @__PURE__ */ Symbol(_hs$ + 4);
11
- var _h$5 = /* @__PURE__ */ Symbol(_hs$ + 5);
12
- var _h$6 = /* @__PURE__ */ Symbol(_hs$ + 6);
13
- var __octaneUniversalPlan0 = universalPlan("nativescript", {
14
- "kind": "slot",
15
- "slot": 0
16
- });
17
- var __octaneUniversalPlan1 = universalPlan("nativescript", {
18
- "kind": "slot",
19
- "slot": 0
20
- });
21
- var host = () => globalThis.__xplatAppKit ?? {};
22
- var HoverablePanel = defineUniversalComponent("nativescript", function HoverablePanel(props) {
23
- return universalValue(__octaneUniversalPlan0, [universalComponent("nativescript", View, universalProps([[
24
- "set",
25
- "className",
26
- cx("vx-hoverable-card", props.className)
27
- ], [
28
- "set",
29
- "style",
30
- props.style
31
- ]], props.body))]);
32
- }, { "module": "@nativescript-community/octane" });
33
- var Hoverable = defineUniversalComponent("nativescript", function Hoverable(props) {
34
- const anchor = useRef(null, _h$0);
35
- const popup = useRef(null, _h$1);
36
- const detachHover = useRef(null, _h$2);
37
- const detachCardHover = useRef(null, _h$3);
38
- const openTimer = useRef(null, _h$4);
39
- const closeTimer = useRef(null, _h$5);
40
- const clearOpen = () => {
41
- if (openTimer.current !== null) clearTimeout(openTimer.current);
42
- openTimer.current = null;
43
- };
44
- const clearClose = () => {
45
- if (closeTimer.current !== null) clearTimeout(closeTimer.current);
46
- closeTimer.current = null;
47
- };
48
- const closeNow = () => {
49
- clearOpen();
50
- clearClose();
51
- detachCardHover.current?.();
52
- detachCardHover.current = null;
53
- popup.current?.close();
54
- popup.current = null;
55
- };
56
- const openNow = () => {
57
- if (popup.current) return;
58
- const view = anchor.current;
59
- const show = host().showAnchoredPopup;
60
- if (!view || typeof show !== "function") return;
61
- popup.current = show({
62
- anchor: view,
63
- placement: props.placement ?? "bottom",
64
- component: HoverablePanel,
65
- props: {
66
- body: props.card,
67
- className: props.cardClassName,
68
- style: props.cardStyle
69
- }
70
- });
71
- if (popup.current?.contentView && typeof host().observeHover === "function") detachCardHover.current = host().observeHover(popup.current.contentView, {
72
- enter: clearClose,
73
- exit: scheduleClose
74
- });
75
- };
76
- const startOpen = () => {
77
- clearClose();
78
- clearOpen();
79
- openTimer.current = setTimeout(() => {
80
- openTimer.current = null;
81
- openNow();
82
- }, Math.max(0, props.openDelay ?? 500));
83
- };
84
- const scheduleClose = () => {
85
- clearClose();
86
- closeTimer.current = setTimeout(() => {
87
- closeTimer.current = null;
88
- closeNow();
89
- }, Math.max(0, props.closeDelay ?? 120));
90
- };
91
- const bindAnchor = (view) => {
92
- if (view && view === anchor.current && detachHover.current) return;
93
- anchor.current = view;
94
- detachHover.current?.();
95
- detachHover.current = null;
96
- if (!view) return;
97
- const observe = host().observeHover;
98
- if (typeof observe !== "function") return;
99
- detachHover.current = observe(view, {
100
- enter: startOpen,
101
- exit: () => {
102
- clearOpen();
103
- scheduleClose();
104
- }
105
- });
106
- };
107
- useEffect(() => () => {
108
- clearOpen();
109
- clearClose();
110
- detachHover.current?.();
111
- detachCardHover.current?.();
112
- popup.current?.close();
113
- popup.current = null;
114
- }, [], _h$6);
115
- return universalValue(__octaneUniversalPlan1, [universalComponent("nativescript", View, universalProps([
116
- [
117
- "set",
118
- "id",
119
- props.id
120
- ],
121
- [
122
- "set",
123
- "className",
124
- props.className
125
- ],
126
- [
127
- "set",
128
- "style",
129
- props.style
130
- ],
131
- [
132
- "set",
133
- "bind",
134
- bindAnchor
135
- ]
136
- ], props.children))]);
137
- }, { "module": "@nativescript-community/octane" });
138
- //#endregion
139
- export { Hoverable };
@@ -1,131 +0,0 @@
1
- import { cx } from "./cx.js";
2
- import { View } from "./View.tsrx.js";
3
- import { defineUniversalComponent, hookSlots, universalComponent, universalPlan, universalProps, universalValue, useEffect, useRef } from "@nativescript-community/octane";
4
- //#region src/Tooltip.tsrx
5
- var _hs$ = /* @__PURE__ */ hookSlots(6);
6
- var _h$0 = /* @__PURE__ */ Symbol(_hs$);
7
- var _h$1 = /* @__PURE__ */ Symbol(_hs$ + 1);
8
- var _h$2 = /* @__PURE__ */ Symbol(_hs$ + 2);
9
- var _h$3 = /* @__PURE__ */ Symbol(_hs$ + 3);
10
- var _h$4 = /* @__PURE__ */ Symbol(_hs$ + 4);
11
- var _h$5 = /* @__PURE__ */ Symbol(_hs$ + 5);
12
- var __octaneUniversalPlan0 = universalPlan("nativescript", {
13
- "kind": "slot",
14
- "slot": 0
15
- });
16
- var __octaneUniversalPlan1 = universalPlan("nativescript", {
17
- "kind": "slot",
18
- "slot": 0
19
- });
20
- var host = () => globalThis.__xplatAppKit ?? {};
21
- var TooltipPanel = defineUniversalComponent("nativescript", function TooltipPanel(props) {
22
- return universalValue(__octaneUniversalPlan0, [universalComponent("nativescript", View, universalProps([[
23
- "set",
24
- "className",
25
- cx("vx-tooltip", props.className)
26
- ], [
27
- "set",
28
- "style",
29
- props.style
30
- ]], props.body))]);
31
- }, { "module": "@nativescript-community/octane" });
32
- var Tooltip = defineUniversalComponent("nativescript", function Tooltip(props) {
33
- const anchor = useRef(null, _h$0);
34
- const popup = useRef(null, _h$1);
35
- const detachHover = useRef(null, _h$2);
36
- const openTimer = useRef(null, _h$3);
37
- const closeTimer = useRef(null, _h$4);
38
- const clearOpen = () => {
39
- if (openTimer.current !== null) clearTimeout(openTimer.current);
40
- openTimer.current = null;
41
- };
42
- const clearClose = () => {
43
- if (closeTimer.current !== null) clearTimeout(closeTimer.current);
44
- closeTimer.current = null;
45
- };
46
- const closeNow = () => {
47
- clearOpen();
48
- clearClose();
49
- popup.current?.close();
50
- popup.current = null;
51
- };
52
- const openNow = () => {
53
- if (props.disabled || popup.current) return;
54
- const view = anchor.current;
55
- const show = host().showAnchoredPopup;
56
- if (!view || typeof show !== "function") return;
57
- popup.current = show({
58
- anchor: view,
59
- placement: props.placement ?? "top",
60
- component: TooltipPanel,
61
- props: {
62
- body: props.content,
63
- className: props.contentClassName,
64
- style: props.contentStyle
65
- }
66
- });
67
- };
68
- const startOpen = () => {
69
- if (props.disabled) return;
70
- clearClose();
71
- clearOpen();
72
- openTimer.current = setTimeout(() => {
73
- openTimer.current = null;
74
- openNow();
75
- }, Math.max(0, props.openDelay ?? 500));
76
- };
77
- const scheduleClose = () => {
78
- clearClose();
79
- closeTimer.current = setTimeout(() => {
80
- closeTimer.current = null;
81
- closeNow();
82
- }, Math.max(0, props.closeDelay ?? 100));
83
- };
84
- const bindAnchor = (view) => {
85
- if (view && view === anchor.current && detachHover.current) return;
86
- anchor.current = view;
87
- detachHover.current?.();
88
- detachHover.current = null;
89
- if (!view) return;
90
- const observe = host().observeHover;
91
- if (typeof observe !== "function") return;
92
- detachHover.current = observe(view, {
93
- enter: startOpen,
94
- exit: () => {
95
- clearOpen();
96
- scheduleClose();
97
- }
98
- });
99
- };
100
- useEffect(() => () => {
101
- clearOpen();
102
- clearClose();
103
- detachHover.current?.();
104
- popup.current?.close();
105
- popup.current = null;
106
- }, [], _h$5);
107
- return universalValue(__octaneUniversalPlan1, [universalComponent("nativescript", View, universalProps([
108
- [
109
- "set",
110
- "id",
111
- props.id
112
- ],
113
- [
114
- "set",
115
- "className",
116
- props.className
117
- ],
118
- [
119
- "set",
120
- "style",
121
- props.style
122
- ],
123
- [
124
- "set",
125
- "bind",
126
- bindAnchor
127
- ]
128
- ], props.trigger))]);
129
- }, { "module": "@nativescript-community/octane" });
130
- //#endregion
131
- export { Tooltip };
@@ -1,270 +0,0 @@
1
- // Generated by scripts/sync-ui-barrels.mjs from index.shared.ts. Do not edit.
2
- // Foundations and common controls
3
- export { View } from './View.web.tsrx'
4
- export { View as Column } from './View.web.tsrx'
5
- export { Row } from './Row.web.tsrx'
6
- export { Grid } from './Grid.web.tsrx'
7
- export { Stack } from './Stack.web.tsrx'
8
- export { Absolute } from './Absolute.web.tsrx'
9
- export type { PanEvent, SwipeEvent, SetTranslate } from './props'
10
- export { setTranslate } from './translate.web'
11
- export { Spacer } from './Spacer.web.tsrx'
12
- export { Text } from './Text.web.tsrx'
13
- export { RichText, RichTextSpan } from './RichText.web.tsrx'
14
- export { Pressable } from './Pressable.web.tsrx'
15
- export { Button } from './Button.web.tsrx'
16
- export { Collapsible } from './Collapsible.web.tsrx'
17
- export { Accordion } from './Accordion.web.tsrx'
18
- export { Checkbox } from './Checkbox.web.tsrx'
19
- export { RadioGroup } from './RadioGroup.web.tsrx'
20
- export { DropdownMenu } from './DropdownMenu.web.tsrx'
21
- export { ContextMenu } from './ContextMenu.web.tsrx'
22
- export { Badge } from './Badge.web.tsrx'
23
- export { Separator } from './Separator.web.tsrx'
24
- export { Skeleton } from './Skeleton.web.tsrx'
25
- export { Avatar } from './Avatar.web.tsrx'
26
- export { AvatarGroup } from './AvatarGroup.web.tsrx'
27
- export type {
28
- AccordionItemSpec,
29
- AccordionProps,
30
- AvatarGroupProps,
31
- AvatarProps,
32
- BadgeProps,
33
- ButtonProps,
34
- CheckboxProps,
35
- CollapsibleProps,
36
- ContextMenuProps,
37
- DropdownMenuProps,
38
- MenuItem,
39
- RadioGroupProps,
40
- RadioOption,
41
- SegmentedControlProps,
42
- SeparatorProps,
43
- SkeletonProps,
44
- } from './props'
45
-
46
- // Forms and data entry
47
- export { FormField } from './FormField.web.tsrx'
48
- export { FieldGroup } from './FieldGroup.web.tsrx'
49
- export { ListItem } from './ListItem.web.tsrx'
50
- export { InputNumber } from './InputNumber.web.tsrx'
51
- export { PinInput } from './PinInput.web.tsrx'
52
- export { Select } from './Select.web.tsrx'
53
- export { SelectMenu, Combobox, InputMenu } from './aliases.web.tsrx'
54
- export { InputTags } from './InputTags.web.tsrx'
55
- export { InputRating } from './InputRating.web.tsrx'
56
- export { CheckboxGroup } from './CheckboxGroup.web.tsrx'
57
- export type {
58
- CheckboxGroupProps,
59
- FieldGroupProps,
60
- ListItemComponent,
61
- ListItemProps,
62
- ListItemSlotProps,
63
- FormFieldProps,
64
- InputNumberProps,
65
- InputRatingProps,
66
- InputTagsProps,
67
- PinInputProps,
68
- SelectOption,
69
- SelectProps,
70
- } from './props'
71
-
72
- // Navigation and command surfaces
73
- export { Breadcrumb } from './Breadcrumb.web.tsrx'
74
- export { Pagination } from './Pagination.web.tsrx'
75
- export { Stepper } from './Stepper.web.tsrx'
76
- export { NavigationMenu } from './NavigationMenu.web.tsrx'
77
- export { CommandPalette } from './CommandPalette.web.tsrx'
78
- export type {
79
- BreadcrumbItem,
80
- BreadcrumbProps,
81
- CommandPaletteProps,
82
- NavigationMenuItem,
83
- NavigationMenuProps,
84
- PaginationProps,
85
- StepperProps,
86
- StepperStep,
87
- } from './props'
88
-
89
- // Content and display
90
- export { Table } from './Table.web.tsrx'
91
- export { Timeline } from './Timeline.web.tsrx'
92
- export { Tree } from './Tree.web.tsrx'
93
- export { Alert } from './Alert.web.tsrx'
94
- export { Card } from './Card.web.tsrx'
95
- export { Chip } from './Chip.web.tsrx'
96
- export { Kbd } from './Kbd.web.tsrx'
97
- export { Empty } from './Empty.web.tsrx'
98
- export { Banner } from './Banner.web.tsrx'
99
- export { User } from './User.web.tsrx'
100
- export { ProgressGroup } from './ProgressGroup.web.tsrx'
101
- export type {
102
- AlertProps,
103
- BannerProps,
104
- CardProps,
105
- ChipProps,
106
- EmptyProps,
107
- KbdProps,
108
- ProgressGroupProps,
109
- TableColumn,
110
- TableProps,
111
- TimelineItem,
112
- TimelineProps,
113
- TreeNode,
114
- TreeProps,
115
- UserProps,
116
- } from './props'
117
-
118
- // Links, input, scrolling, media, and overlays
119
- export { Link } from './Link.web.tsrx'
120
- export { NavLink } from './NavLink.web.tsrx'
121
- export { TextInput } from './TextInput.web.tsrx'
122
- export { TextArea } from './TextArea.web.tsrx'
123
- export { SearchInput } from './SearchInput.web.tsrx'
124
- export { SegmentedControl } from './SegmentedControl.web.tsrx'
125
- export { ScrollBox } from './ScrollBox.web.tsrx'
126
- export { ScrollView } from './ScrollView.web.tsrx'
127
- export { VirtualList } from './VirtualList.web.tsrx'
128
- export type { VirtualListProps } from './props'
129
- export { Image } from './Image.web.tsrx'
130
- export { WebView } from './WebView.web.tsrx'
131
- export type { WebViewContentSize, WebViewHandle, WebViewLoadEvent, WebViewProps } from './props'
132
- export { Overlay } from './Overlay.web.tsrx'
133
- export { Popover } from './Popover.web.tsrx'
134
- export { Hoverable } from './Hoverable.web.tsrx'
135
- export { Tooltip } from './Tooltip.web.tsrx'
136
- export { showToast } from './toast-anchor.web.tsrx'
137
- export type {
138
- HoverableProps,
139
- OverlayProps,
140
- PopoverAnchorRef,
141
- PopoverProps,
142
- PopoverPlacement,
143
- ToastContent,
144
- ToastOptions,
145
- ToastPosition,
146
- TooltipProps,
147
- } from './props'
148
-
149
- // Animation, theme, styling, and host services
150
- export { useAnimation } from './anim.web.tsrx'
151
- export type { AnimatedValue } from './anim.web.tsrx'
152
- export {
153
- useThemeScheme,
154
- getThemeScheme,
155
- setThemePreference,
156
- getThemePreference,
157
- themeSchemeClasses,
158
- onThemeSchemeChange,
159
- applyThemeClasses,
160
- } from './theme/theme-scheme'
161
-
162
- export { useColorScheme, getColorScheme } from './theme/colorScheme.web'
163
- export type { ColorScheme } from './theme/colorScheme.web'
164
- export { styled } from './styled.web.tsrx'
165
- export { openWindow } from './windows.web'
166
-
167
- // Screens, visual controls, and icons
168
- export { Screen } from './Screen.web.tsrx'
169
- export { Tabs } from './Tabs.web.tsrx'
170
- export type { TabSpec } from './Tabs.web.tsrx'
171
- export { Switch } from './Switch.web.tsrx'
172
- export { SafeArea } from './SafeArea.web.tsrx'
173
- export { Drawer } from './Drawer.web.tsrx'
174
- export { useSafeAreaInsets } from './safeAreaInsets.web.tsrx'
175
- export type { SafeAreaInsets } from './safeAreaInsets.web.tsrx'
176
- export { useMeasure } from './useMeasure.web.tsrx'
177
- export type { MeasureBounds, MeasureResult, UseMeasureOptions } from './props'
178
- export { ActivityIndicator } from './ActivityIndicator.web.tsrx'
179
- export { Meter } from './Meter.web.tsrx'
180
- export { Slider } from './Slider.web.tsrx'
181
- export { Icon } from './Icon.web.tsrx'
182
- export { Heading } from './Heading.web.tsrx'
183
- export { registerIcon, registerIcons } from './icons'
184
- export type { IconGlyph } from './icons'
185
- export type {
186
- ActivityIndicatorProps,
187
- HeadingProps,
188
- IconProps,
189
- MeterProps,
190
- RefreshProps,
191
- SearchInputProps,
192
- SliderProps,
193
- } from './props'
194
-
195
- // Platform state and routing
196
- export { isNative } from './platform.web'
197
- export { registerStack, getStack, stackEntries } from './stacks.web'
198
- export {
199
- pushRoute,
200
- popRoute,
201
- routeStacks,
202
- pushDeepLink,
203
- routeFor,
204
- currentRoute,
205
- currentModalRoute,
206
- canGoBack,
207
- useCanGoBack,
208
- useRoute,
209
- useModalRoute,
210
- redirect,
211
- addBackInterceptor,
212
- registerScreens,
213
- registerRoutes,
214
- addRoutes,
215
- screenFor,
216
- hrefFor,
217
- layoutsForRoute,
218
- } from './route.web'
219
-
220
- export { useBackInterceptor } from './use-back.web.tsrx'
221
-
222
- export { deriveRouteManifest, defineRoutes, mergeRouteManifests } from './route-table'
223
- export type {
224
- BeforeLoad,
225
- BeforeLoadArgs,
226
- LinkProps,
227
- NavLinkProps,
228
- Route,
229
- RouteContext,
230
- RouteHead,
231
- RouteHeadExport,
232
- RouteMeta,
233
- RouteManifest,
234
- RouteSpec,
235
- RouteSpecSet,
236
- ScreenTable,
237
- ModalOpenResult,
238
- OpenWindowOptions,
239
- } from './props'
240
-
241
- // Stores, sheets, and shared prop types
242
- export { createStore } from './store'
243
- export type { Store, ReadableStore } from './store'
244
- export { useStore } from './use-store.web.tsrx'
245
- export { Sheet } from './Sheet.web.tsrx'
246
- export { openSheet, closeSheet } from './sheet-service.web'
247
- export type { SheetProps, SheetOpenOptions, OpenSheet } from './props'
248
- export type {
249
- AbsoluteProps,
250
- DrawerProps,
251
- GridProps,
252
- ImageProps,
253
- LayoutChildProps,
254
- PressableProps,
255
- RichTextProps,
256
- RichTextSpanProps,
257
- RowProps,
258
- ScreenProps,
259
- SafeAreaProps,
260
- ScrollBoxProps,
261
- ScrollViewProps,
262
- SpacerProps,
263
- StackProps,
264
- SwitchProps,
265
- TabsProps,
266
- TextAreaProps,
267
- TextInputProps,
268
- TextProps,
269
- ViewProps,
270
- } from './props'
@@ -1,111 +0,0 @@
1
- export { View } from './View.web.js';
2
- export { View as Column } from './View.web.js';
3
- export { Row } from './Row.web.js';
4
- export { Grid } from './Grid.web.js';
5
- export { Stack } from './Stack.web.js';
6
- export { Absolute } from './Absolute.web.js';
7
- export type { PanEvent, SwipeEvent, SetTranslate } from './props.js';
8
- export { setTranslate } from './translate.web.js';
9
- export { Spacer } from './Spacer.web.js';
10
- export { Text } from './Text.web.js';
11
- export { RichText, RichTextSpan } from './RichText.web.js';
12
- export { Pressable } from './Pressable.web.js';
13
- export { Button } from './Button.web.js';
14
- export { Collapsible } from './Collapsible.web.js';
15
- export { Accordion } from './Accordion.web.js';
16
- export { Checkbox } from './Checkbox.web.js';
17
- export { RadioGroup } from './RadioGroup.web.js';
18
- export { DropdownMenu } from './DropdownMenu.web.js';
19
- export { ContextMenu } from './ContextMenu.web.js';
20
- export { Badge } from './Badge.web.js';
21
- export { Separator } from './Separator.web.js';
22
- export { Skeleton } from './Skeleton.web.js';
23
- export { Avatar } from './Avatar.web.js';
24
- export { AvatarGroup } from './AvatarGroup.web.js';
25
- export type { AccordionItemSpec, AccordionProps, AvatarGroupProps, AvatarProps, BadgeProps, ButtonProps, CheckboxProps, CollapsibleProps, ContextMenuProps, DropdownMenuProps, MenuItem, RadioGroupProps, RadioOption, SegmentedControlProps, SeparatorProps, SkeletonProps, } from './props.js';
26
- export { FormField } from './FormField.web.js';
27
- export { FieldGroup } from './FieldGroup.web.js';
28
- export { ListItem } from './ListItem.web.js';
29
- export { InputNumber } from './InputNumber.web.js';
30
- export { PinInput } from './PinInput.web.js';
31
- export { Select } from './Select.web.js';
32
- export { SelectMenu, Combobox, InputMenu } from './aliases.web.js';
33
- export { InputTags } from './InputTags.web.js';
34
- export { InputRating } from './InputRating.web.js';
35
- export { CheckboxGroup } from './CheckboxGroup.web.js';
36
- export type { CheckboxGroupProps, FieldGroupProps, ListItemComponent, ListItemProps, ListItemSlotProps, FormFieldProps, InputNumberProps, InputRatingProps, InputTagsProps, PinInputProps, SelectOption, SelectProps, } from './props.js';
37
- export { Breadcrumb } from './Breadcrumb.web.js';
38
- export { Pagination } from './Pagination.web.js';
39
- export { Stepper } from './Stepper.web.js';
40
- export { NavigationMenu } from './NavigationMenu.web.js';
41
- export { CommandPalette } from './CommandPalette.web.js';
42
- export type { BreadcrumbItem, BreadcrumbProps, CommandPaletteProps, NavigationMenuItem, NavigationMenuProps, PaginationProps, StepperProps, StepperStep, } from './props.js';
43
- export { Table } from './Table.web.js';
44
- export { Timeline } from './Timeline.web.js';
45
- export { Tree } from './Tree.web.js';
46
- export { Alert } from './Alert.web.js';
47
- export { Card } from './Card.web.js';
48
- export { Chip } from './Chip.web.js';
49
- export { Kbd } from './Kbd.web.js';
50
- export { Empty } from './Empty.web.js';
51
- export { Banner } from './Banner.web.js';
52
- export { User } from './User.web.js';
53
- export { ProgressGroup } from './ProgressGroup.web.js';
54
- export type { AlertProps, BannerProps, CardProps, ChipProps, EmptyProps, KbdProps, ProgressGroupProps, TableColumn, TableProps, TimelineItem, TimelineProps, TreeNode, TreeProps, UserProps, } from './props.js';
55
- export { Link } from './Link.web.js';
56
- export { NavLink } from './NavLink.web.js';
57
- export { TextInput } from './TextInput.web.js';
58
- export { TextArea } from './TextArea.web.js';
59
- export { SearchInput } from './SearchInput.web.js';
60
- export { SegmentedControl } from './SegmentedControl.web.js';
61
- export { ScrollBox } from './ScrollBox.web.js';
62
- export { ScrollView } from './ScrollView.web.js';
63
- export { VirtualList } from './VirtualList.web.js';
64
- export type { VirtualListProps } from './props.js';
65
- export { Image } from './Image.web.js';
66
- export { WebView } from './WebView.web.js';
67
- export type { WebViewContentSize, WebViewHandle, WebViewLoadEvent, WebViewProps } from './props.js';
68
- export { Overlay } from './Overlay.web.js';
69
- export { Popover } from './Popover.web.js';
70
- export { Hoverable } from './Hoverable.web.js';
71
- export { Tooltip } from './Tooltip.web.js';
72
- export { showToast } from './toast-anchor.web.js';
73
- export type { HoverableProps, OverlayProps, PopoverAnchorRef, PopoverProps, PopoverPlacement, ToastContent, ToastOptions, ToastPosition, TooltipProps, } from './props.js';
74
- export { useAnimation } from './anim.web.js';
75
- export type { AnimatedValue } from './anim.web.js';
76
- export { useThemeScheme, getThemeScheme, setThemePreference, getThemePreference, themeSchemeClasses, onThemeSchemeChange, applyThemeClasses, } from './theme/theme-scheme.js';
77
- export { useColorScheme, getColorScheme } from './theme/colorScheme.web.js';
78
- export type { ColorScheme } from './theme/colorScheme.web.js';
79
- export { styled } from './styled.web.js';
80
- export { openWindow } from './windows.web.js';
81
- export { Screen } from './Screen.web.js';
82
- export { Tabs } from './Tabs.web.js';
83
- export type { TabSpec } from './Tabs.web.js';
84
- export { Switch } from './Switch.web.js';
85
- export { SafeArea } from './SafeArea.web.js';
86
- export { Drawer } from './Drawer.web.js';
87
- export { useSafeAreaInsets } from './safeAreaInsets.web.js';
88
- export type { SafeAreaInsets } from './safeAreaInsets.web.js';
89
- export { useMeasure } from './useMeasure.web.js';
90
- export type { MeasureBounds, MeasureResult, UseMeasureOptions } from './props.js';
91
- export { ActivityIndicator } from './ActivityIndicator.web.js';
92
- export { Meter } from './Meter.web.js';
93
- export { Slider } from './Slider.web.js';
94
- export { Icon } from './Icon.web.js';
95
- export { Heading } from './Heading.web.js';
96
- export { registerIcon, registerIcons } from './icons.js';
97
- export type { IconGlyph } from './icons.js';
98
- export type { ActivityIndicatorProps, HeadingProps, IconProps, MeterProps, RefreshProps, SearchInputProps, SliderProps, } from './props.js';
99
- export { isNative } from './platform.web.js';
100
- export { registerStack, getStack, stackEntries } from './stacks.web.js';
101
- export { pushRoute, popRoute, routeStacks, pushDeepLink, routeFor, currentRoute, currentModalRoute, canGoBack, useCanGoBack, useRoute, useModalRoute, redirect, addBackInterceptor, registerScreens, registerRoutes, addRoutes, screenFor, hrefFor, layoutsForRoute, } from './route.web.js';
102
- export { useBackInterceptor } from './use-back.web.js';
103
- export { deriveRouteManifest, defineRoutes, mergeRouteManifests } from './route-table.js';
104
- export type { BeforeLoad, BeforeLoadArgs, LinkProps, NavLinkProps, Route, RouteContext, RouteHead, RouteHeadExport, RouteMeta, RouteManifest, RouteSpec, RouteSpecSet, ScreenTable, ModalOpenResult, OpenWindowOptions, } from './props.js';
105
- export { createStore } from './store.js';
106
- export type { Store, ReadableStore } from './store.js';
107
- export { useStore } from './use-store.web.js';
108
- export { Sheet } from './Sheet.web.js';
109
- export { openSheet, closeSheet } from './sheet-service.web.js';
110
- export type { SheetProps, SheetOpenOptions, OpenSheet } from './props.js';
111
- export type { AbsoluteProps, DrawerProps, GridProps, ImageProps, LayoutChildProps, PressableProps, RichTextProps, RichTextSpanProps, RowProps, ScreenProps, SafeAreaProps, ScrollBoxProps, ScrollViewProps, SpacerProps, StackProps, SwitchProps, TabsProps, TextAreaProps, TextInputProps, TextProps, ViewProps, } from './props.js';
@@ -1,5 +0,0 @@
1
- export type { ColorScheme } from '../props.js';
2
- import type { ColorScheme } from '../props.js';
3
- export declare function getColorScheme(): ColorScheme;
4
- export declare function subscribeSystemScheme(cb: () => void): () => void;
5
- export declare function useColorScheme(): ColorScheme;