@symbiote-native/svelte 1.0.0 → 3.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.
Files changed (117) hide show
  1. package/README.md +11 -13
  2. package/build/components/{activity-indicator/activity-indicator-props.d.ts → activity-indicator-props.d.ts} +1 -1
  3. package/build/components/flat-list/index.svelte +9 -5
  4. package/build/components/{image-background/image-background-props.d.ts → image-background-props.d.ts} +1 -1
  5. package/build/components/index.d.ts +6 -24
  6. package/build/components/index.js +0 -18
  7. package/build/components/keyboard-avoiding-view/index.svelte +16 -7
  8. package/build/components/modal/index.svelte +7 -7
  9. package/build/components/pressable/pressable-props.d.ts +3 -0
  10. package/build/components/refresh-control-props.d.ts +1 -0
  11. package/build/components/text-props.d.ts +1 -0
  12. package/build/components/touchable-highlight/touchable-highlight-props.d.ts +2 -0
  13. package/build/components/touchable-native-feedback/touchable-native-feedback-props.d.ts +1 -0
  14. package/build/components/touchable-without-feedback/touchable-without-feedback-props.d.ts +3 -1
  15. package/build/components/virtualized-list/index.svelte +79 -257
  16. package/build/components/virtualized-list/virtualized-list-props.d.ts +2 -2
  17. package/build/components/virtualized-list/virtualized-list-props.js +24 -4
  18. package/build/create-portal/index.js +2 -2
  19. package/build/dom-shim/canonical-prop-names.d.ts +2 -0
  20. package/build/dom-shim/canonical-prop-names.js +323 -0
  21. package/build/dom-shim/document.js +1 -1
  22. package/build/dom-shim/element.d.ts +10 -3
  23. package/build/dom-shim/element.js +233 -31
  24. package/build/dom-shim/patch-globals.js +31 -5
  25. package/build/dom-shim/shim-node.d.ts +6 -0
  26. package/build/dom-shim/shim-node.js +48 -1
  27. package/build/dom-shim/style-cache.d.ts +1 -0
  28. package/build/dom-shim/style-cache.js +27 -0
  29. package/build/dom-shim/text.js +5 -4
  30. package/build/host-instance.d.ts +2 -3
  31. package/build/host-instance.js +9 -3
  32. package/build/index.d.ts +7 -4
  33. package/build/index.js +17 -5
  34. package/build/intrinsic-elements.d.ts +63 -0
  35. package/build/modules/animated/index.d.ts +30 -46
  36. package/build/modules/animated/index.js +24 -34
  37. package/build/modules/image/index.d.ts +3 -0
  38. package/build/modules/image/index.js +15 -0
  39. package/build/preprocessor/scoped-styles.js +1 -1
  40. package/build/register.d.ts +1 -1
  41. package/build/register.js +13 -31
  42. package/build/root-element.js +1 -1
  43. package/metro-css-parser.cjs +2 -1
  44. package/metro-svelte-transformer.cjs +1 -17
  45. package/package.json +8 -16
  46. package/build/components/RefreshControl.svelte +0 -40
  47. package/build/components/RefreshControl.svelte.d.ts +0 -5
  48. package/build/components/SafeAreaView.svelte +0 -34
  49. package/build/components/SafeAreaView.svelte.d.ts +0 -5
  50. package/build/components/Text.svelte +0 -34
  51. package/build/components/Text.svelte.d.ts +0 -5
  52. package/build/components/View.svelte +0 -43
  53. package/build/components/View.svelte.d.ts +0 -5
  54. package/build/components/activity-indicator/activity-indicator-platform.android.d.ts +0 -3
  55. package/build/components/activity-indicator/activity-indicator-platform.android.js +0 -5
  56. package/build/components/activity-indicator/activity-indicator-platform.d.ts +0 -1
  57. package/build/components/activity-indicator/activity-indicator-platform.ios.d.ts +0 -3
  58. package/build/components/activity-indicator/activity-indicator-platform.ios.js +0 -6
  59. package/build/components/activity-indicator/activity-indicator-platform.js +0 -5
  60. package/build/components/activity-indicator/index.svelte +0 -63
  61. package/build/components/activity-indicator/index.svelte.d.ts +0 -5
  62. package/build/components/button.svelte +0 -76
  63. package/build/components/button.svelte.d.ts +0 -5
  64. package/build/components/image/image-logic.d.ts +0 -2
  65. package/build/components/image/image-logic.js +0 -135
  66. package/build/components/image/index.d.ts +0 -3
  67. package/build/components/image/index.js +0 -10
  68. package/build/components/image/index.svelte +0 -66
  69. package/build/components/image/index.svelte.d.ts +0 -5
  70. package/build/components/image-background/index.svelte +0 -87
  71. package/build/components/image-background/index.svelte.d.ts +0 -5
  72. package/build/components/input-accessory-view/index.svelte +0 -51
  73. package/build/components/input-accessory-view/index.svelte.d.ts +0 -5
  74. package/build/components/pressable/index.svelte +0 -185
  75. package/build/components/pressable/index.svelte.d.ts +0 -9
  76. package/build/components/scroll-view/index.svelte +0 -331
  77. package/build/components/scroll-view/index.svelte.d.ts +0 -18
  78. package/build/components/scroll-view/scroll-view-platform-types.d.ts +0 -3
  79. package/build/components/scroll-view/scroll-view-platform.android.d.ts +0 -3
  80. package/build/components/scroll-view/scroll-view-platform.android.js +0 -3
  81. package/build/components/scroll-view/scroll-view-platform.d.ts +0 -1
  82. package/build/components/scroll-view/scroll-view-platform.ios.d.ts +0 -3
  83. package/build/components/scroll-view/scroll-view-platform.ios.js +0 -3
  84. package/build/components/scroll-view/scroll-view-platform.js +0 -4
  85. package/build/components/scroll-view/scroll-view-sticky-context.d.ts +0 -7
  86. package/build/components/scroll-view/scroll-view-sticky-context.js +0 -1
  87. package/build/components/scroll-view/sticky-header-props.d.ts +0 -10
  88. package/build/components/scroll-view/sticky-header-props.js +0 -1
  89. package/build/components/scroll-view/sticky-header.svelte +0 -287
  90. package/build/components/scroll-view/sticky-header.svelte.d.ts +0 -5
  91. package/build/components/switch/index.svelte +0 -134
  92. package/build/components/switch/index.svelte.d.ts +0 -5
  93. package/build/components/text-input/index.svelte +0 -372
  94. package/build/components/text-input/index.svelte.d.ts +0 -17
  95. package/build/components/touchable-highlight/index.svelte +0 -139
  96. package/build/components/touchable-highlight/index.svelte.d.ts +0 -5
  97. package/build/components/touchable-native-feedback/index.d.ts +0 -9
  98. package/build/components/touchable-native-feedback/index.js +0 -14
  99. package/build/components/touchable-native-feedback/touchable-native-feedback.svelte +0 -49
  100. package/build/components/touchable-native-feedback/touchable-native-feedback.svelte.d.ts +0 -5
  101. package/build/components/touchable-opacity/index.svelte +0 -181
  102. package/build/components/touchable-opacity/index.svelte.d.ts +0 -5
  103. package/build/components/touchable-without-feedback/index.svelte +0 -75
  104. package/build/components/touchable-without-feedback/index.svelte.d.ts +0 -5
  105. package/build/dom-shim/fold-host-bag.d.ts +0 -1
  106. package/build/dom-shim/fold-host-bag.js +0 -7
  107. package/build/modules/animated/animated-component-props.d.ts +0 -7
  108. package/build/modules/animated/animated-component-props.js +0 -1
  109. package/build/modules/animated/create-animated-component.d.ts +0 -5
  110. package/build/modules/animated/create-animated-component.js +0 -131
  111. package/build/preprocessor/lower-host-primitives.d.ts +0 -10
  112. package/build/preprocessor/lower-host-primitives.js +0 -455
  113. package/build/state-style.d.ts +0 -1
  114. package/build/state-style.js +0 -8
  115. /package/build/components/{activity-indicator/activity-indicator-props.js → activity-indicator-props.js} +0 -0
  116. /package/build/components/{image-background/image-background-props.js → image-background-props.js} +0 -0
  117. /package/build/{components/scroll-view/scroll-view-platform-types.js → intrinsic-elements.js} +0 -0
@@ -0,0 +1,323 @@
1
+ // The prop names an app may write on a bare intrinsic tag, DERIVED — never hand-maintained.
2
+ //
3
+ // Why the shim needs a list of names at all. Svelte's compiler destroys two things a bare tag
4
+ // carries, and both are settled before any code of ours runs:
5
+ //
6
+ // `<view testID="x">` `fix_attribute_casing` lowercases every STATIC attribute name
7
+ // (transform-template/fix-attribute-casing.js) — `testid` reaches
8
+ // Fabric, which declares no such prop, and it is dropped on device.
9
+ // `<pressable testID={v}>` the same, for a DYNAMIC name, on any tag that is not an SVG
10
+ // element name (`get_attribute_name` -> `normalize_attribute`).
11
+ // `<text-input multiline={false}>`
12
+ // a hyphenated tag takes `set_custom_element_data`, which stringifies
13
+ // a scalar and drops an object unless `get_setters(node)` finds a real
14
+ // prototype setter for that exact name (attributes.js:245-265).
15
+ //
16
+ // One list answers all three: an accessor per name defeats the stringifier, and the same names
17
+ // keyed by their lowercased spelling recover the casing in `setAttribute`. See `element.ts`.
18
+ //
19
+ // GENERATED from this adapter's own barrel — every `I*Props` type it exports, unioned through the
20
+ // TypeScript checker. That is the authoritative per-tag prop surface (`IViewProps` and its
21
+ // siblings), and it grows on its own when a primitive gains a prop or the barrel gains a type.
22
+ // `canonical-prop-names.test.ts` re-derives it and fails on any drift; regenerate with the snippet
23
+ // in that file's header rather than editing this array by hand.
24
+ //
25
+ // Deriving it from `react-native`'s own ViewConfig `validAttributes` was measured and rejected:
26
+ // it covers the NATIVE surface only, missing 110 of the 255 camelCase names our shared layer
27
+ // reads — `readOnly`, `inputMode`, `enterKeyHint`, `activeOpacity`, `delayLongPress`,
28
+ // `pressRetentionOffset` and the rest of what our behaviors fold in JS.
29
+ export const CANONICAL_PROP_NAMES = [
30
+ 'accessibilityActions',
31
+ 'accessibilityElementsHidden',
32
+ 'accessibilityHint',
33
+ 'accessibilityIgnoresInvertColors',
34
+ 'accessibilityLabel',
35
+ 'accessibilityLabelledBy',
36
+ 'accessibilityLanguage',
37
+ 'accessibilityLargeContentTitle',
38
+ 'accessibilityLiveRegion',
39
+ 'accessibilityRespondsToUserInteraction',
40
+ 'accessibilityRole',
41
+ 'accessibilityShowsLargeContentViewer',
42
+ 'accessibilityState',
43
+ 'accessibilityValue',
44
+ 'accessibilityViewIsModal',
45
+ 'accessible',
46
+ 'activeOpacity',
47
+ 'adjustsFontSizeToFit',
48
+ 'allowFontScaling',
49
+ 'allowSwipeDismissal',
50
+ 'alt',
51
+ 'alwaysBounceHorizontal',
52
+ 'alwaysBounceVertical',
53
+ 'android_disableSound',
54
+ 'android_ripple',
55
+ 'animated',
56
+ 'animating',
57
+ 'animationType',
58
+ 'aria-busy',
59
+ 'aria-checked',
60
+ 'aria-disabled',
61
+ 'aria-expanded',
62
+ 'aria-hidden',
63
+ 'aria-label',
64
+ 'aria-labelledby',
65
+ 'aria-live',
66
+ 'aria-modal',
67
+ 'aria-selected',
68
+ 'aria-valuemax',
69
+ 'aria-valuemin',
70
+ 'aria-valuenow',
71
+ 'aria-valuetext',
72
+ 'autoCapitalize',
73
+ 'autoComplete',
74
+ 'autoCorrect',
75
+ 'autoFocus',
76
+ 'automaticallyAdjustKeyboardInsets',
77
+ 'backdropColor',
78
+ 'background',
79
+ 'backgroundColor',
80
+ 'barStyle',
81
+ 'behavior',
82
+ 'blockNativeResponder',
83
+ 'blurOnSubmit',
84
+ 'blurRadius',
85
+ 'bounces',
86
+ 'bouncesZoom',
87
+ 'cancelable',
88
+ 'capInsets',
89
+ 'centerContent',
90
+ 'children',
91
+ 'class',
92
+ 'collapsable',
93
+ 'color',
94
+ 'colors',
95
+ 'columnWrapperStyle',
96
+ 'contentContainerStyle',
97
+ 'contentInset',
98
+ 'contentInsetAdjustmentBehavior',
99
+ 'contentOffset',
100
+ 'crossOrigin',
101
+ 'cursorColor',
102
+ 'data',
103
+ 'decelerationRate',
104
+ 'defaultSource',
105
+ 'defaultValue',
106
+ 'delayHoverIn',
107
+ 'delayHoverOut',
108
+ 'delayLongPress',
109
+ 'delayPressIn',
110
+ 'delayPressOut',
111
+ 'directionalLockEnabled',
112
+ 'disableIntervalMomentum',
113
+ 'disabled',
114
+ 'editable',
115
+ 'ellipsizeMode',
116
+ 'empty',
117
+ 'enabled',
118
+ 'endFillColor',
119
+ 'enterKeyHint',
120
+ 'extraData',
121
+ 'fadeDuration',
122
+ 'fadingEdgeLength',
123
+ 'focusable',
124
+ 'footer',
125
+ 'getItem',
126
+ 'getItemCount',
127
+ 'getItemLayout',
128
+ 'hardwareAccelerated',
129
+ 'hasTVPreferredFocus',
130
+ 'header',
131
+ 'height',
132
+ 'hidden',
133
+ 'hidesWhenStopped',
134
+ 'highlighted',
135
+ 'hitSlop',
136
+ 'horizontal',
137
+ 'id',
138
+ 'imageStyle',
139
+ 'importantForAccessibility',
140
+ 'indicatorStyle',
141
+ 'initialNumToRender',
142
+ 'initialScrollIndex',
143
+ 'inputAccessoryViewID',
144
+ 'inputMode',
145
+ 'invertStickyHeaders',
146
+ 'inverted',
147
+ 'ios_backgroundColor',
148
+ 'item',
149
+ 'keyExtractor',
150
+ 'keyboardDismissMode',
151
+ 'keyboardShouldPersistTaps',
152
+ 'keyboardType',
153
+ 'keyboardVerticalOffset',
154
+ 'leadingItem',
155
+ 'loadingIndicatorSource',
156
+ 'maintainVisibleContentPosition',
157
+ 'maxFontSizeMultiplier',
158
+ 'maxLength',
159
+ 'maxToRenderPerBatch',
160
+ 'maximumZoomScale',
161
+ 'minPressDuration',
162
+ 'minimumFontScale',
163
+ 'minimumZoomScale',
164
+ 'mount',
165
+ 'multiline',
166
+ 'nativeID',
167
+ 'navigationBarTranslucent',
168
+ 'needsOffscreenAlphaCompositing',
169
+ 'nestedScrollEnabled',
170
+ 'networkActivityIndicatorVisible',
171
+ 'nextFocusDown',
172
+ 'nextFocusForward',
173
+ 'nextFocusLeft',
174
+ 'nextFocusRight',
175
+ 'nextFocusUp',
176
+ 'numColumns',
177
+ 'numberOfLines',
178
+ 'onAccessibilityAction',
179
+ 'onAccessibilityEscape',
180
+ 'onAccessibilityTap',
181
+ 'onBlur',
182
+ 'onChangeText',
183
+ 'onContentSizeChange',
184
+ 'onDismiss',
185
+ 'onEndEditing',
186
+ 'onEndReached',
187
+ 'onEndReachedThreshold',
188
+ 'onError',
189
+ 'onFocus',
190
+ 'onHideUnderlay',
191
+ 'onHoverIn',
192
+ 'onHoverOut',
193
+ 'onKeyPress',
194
+ 'onLayout',
195
+ 'onLoad',
196
+ 'onLoadEnd',
197
+ 'onLoadStart',
198
+ 'onLongPress',
199
+ 'onMagicTap',
200
+ 'onMomentumScrollBegin',
201
+ 'onMomentumScrollEnd',
202
+ 'onMoveShouldSetResponder',
203
+ 'onMoveShouldSetResponderCapture',
204
+ 'onOrientationChange',
205
+ 'onPartialLoad',
206
+ 'onPress',
207
+ 'onPressIn',
208
+ 'onPressMove',
209
+ 'onPressOut',
210
+ 'onProgress',
211
+ 'onRefresh',
212
+ 'onRequestClose',
213
+ 'onResponderEnd',
214
+ 'onResponderGrant',
215
+ 'onResponderMove',
216
+ 'onResponderReject',
217
+ 'onResponderRelease',
218
+ 'onResponderStart',
219
+ 'onResponderTerminate',
220
+ 'onResponderTerminationRequest',
221
+ 'onScroll',
222
+ 'onScrollBeginDrag',
223
+ 'onScrollEndDrag',
224
+ 'onScrollToIndexFailed',
225
+ 'onScrollToTop',
226
+ 'onSelectionChange',
227
+ 'onShow',
228
+ 'onShowUnderlay',
229
+ 'onStartReached',
230
+ 'onStartReachedThreshold',
231
+ 'onStartShouldSetResponder',
232
+ 'onStartShouldSetResponderCapture',
233
+ 'onSubmitEditing',
234
+ 'onTextLayout',
235
+ 'onValueChange',
236
+ 'onViewableItemsChanged',
237
+ 'overScrollMode',
238
+ 'pagingEnabled',
239
+ 'persistentScrollbar',
240
+ 'pinchGestureEnabled',
241
+ 'placeholder',
242
+ 'placeholderTextColor',
243
+ 'pointerEvents',
244
+ 'presentationStyle',
245
+ 'pressRetentionOffset',
246
+ 'progressBackgroundColor',
247
+ 'progressViewOffset',
248
+ 'progressiveRenderingEnabled',
249
+ 'readOnly',
250
+ 'referrerPolicy',
251
+ 'refreshControl',
252
+ 'refreshing',
253
+ 'removeClippedSubviews',
254
+ 'renderToHardwareTextureAndroid',
255
+ 'resizeMethod',
256
+ 'resizeMode',
257
+ 'returnKeyType',
258
+ 'role',
259
+ 'screenReaderFocusable',
260
+ 'scrollEnabled',
261
+ 'scrollEventThrottle',
262
+ 'scrollIndicatorInsets',
263
+ 'section',
264
+ 'sectionFooter',
265
+ 'sectionHeader',
266
+ 'sectionSeparator',
267
+ 'sections',
268
+ 'secureTextEntry',
269
+ 'selectTextOnFocus',
270
+ 'selectable',
271
+ 'selection',
272
+ 'selectionColor',
273
+ 'selectionHandleColor',
274
+ 'separator',
275
+ 'shouldRasterizeIOS',
276
+ 'showSoftInputOnFocus',
277
+ 'showsHorizontalScrollIndicator',
278
+ 'showsVerticalScrollIndicator',
279
+ 'size',
280
+ 'snapToAlignment',
281
+ 'snapToEnd',
282
+ 'snapToInterval',
283
+ 'snapToOffsets',
284
+ 'snapToStart',
285
+ 'source',
286
+ 'src',
287
+ 'srcSet',
288
+ 'statusBarTranslucent',
289
+ 'stickyHeaderIndices',
290
+ 'stickySectionHeadersEnabled',
291
+ 'style',
292
+ 'submitBehavior',
293
+ 'supportedOrientations',
294
+ 'testID',
295
+ 'testOnly_pressed',
296
+ 'textAlign',
297
+ 'textContentType',
298
+ 'thumbColor',
299
+ 'tintColor',
300
+ 'title',
301
+ 'titleColor',
302
+ 'touchSoundDisabled',
303
+ 'trackColor',
304
+ 'trailingItem',
305
+ 'translucent',
306
+ 'transparent',
307
+ 'underlayColor',
308
+ 'underlineColorAndroid',
309
+ 'unstable_pressDelay',
310
+ 'updateCellsBatchingPeriod',
311
+ 'useForeground',
312
+ 'value',
313
+ 'viewabilityConfig',
314
+ 'viewabilityConfigCallbackPairs',
315
+ 'visible',
316
+ 'width',
317
+ 'windowSize',
318
+ 'zoomScale',
319
+ ];
320
+ // Lowercased spelling -> the name the author wrote. Built once, at module load. No entry can
321
+ // collide: the derivation asserts it (`canonical-prop-names.test.ts`), because two props whose
322
+ // names differ only in case would make the repair a coin toss.
323
+ export const CANONICAL_BY_LOWER = new Map(CANONICAL_PROP_NAMES.map(name => [name.toLowerCase(), name]));
@@ -14,7 +14,7 @@ export class ShimDocument {
14
14
  // Our own event names never delegate (§5c: no camelCase name matches Svelte's 23-name
15
15
  // DELEGATED_EVENTS list), but a minimal, unattached node converts any stray read into a
16
16
  // no-op instead of a crash — one line, per §4's "provide a stub anyway" call.
17
- body = new ShimElement('symbiote-view');
17
+ body = new ShimElement('view');
18
18
  createElement(tag, options) {
19
19
  const element = new ShimElement(tag);
20
20
  if (options?.is !== undefined)
@@ -7,19 +7,26 @@ export declare class ShimElement extends ShimElementBase {
7
7
  readonly tagName: string;
8
8
  readonly namespaceURI: string | undefined;
9
9
  private attributes;
10
- private domListeners;
10
+ private doorBag;
11
+ private pBag;
11
12
  private lastBag;
13
+ private ownsDoorBag;
12
14
  constructor(tagName: string, namespaceURI?: string);
13
15
  get nodeName(): string;
14
16
  private styleSlot;
15
17
  get style(): {
16
18
  cssText: string;
17
19
  };
20
+ writeStyleValue(value: unknown): void;
21
+ get className(): unknown;
22
+ set className(value: unknown);
18
23
  get p(): IShimPropBag;
19
24
  set p(bag: IShimPropBag | undefined);
20
- setAttribute(name: string, value: string): void;
21
- getAttribute(name: string): string | null;
25
+ setAttribute(name: string, value: unknown): void;
26
+ getAttribute(name: string): unknown;
22
27
  removeAttribute(name: string): void;
28
+ writeBagKey(name: string, value: unknown): void;
29
+ private foldedBag;
23
30
  addEventListener(name: string, handler: (event: unknown) => void): void;
24
31
  removeEventListener(name: string): void;
25
32
  cloneNode(deep?: boolean): ShimElement;