@roku-sdk/components 0.0.0-stage → 2.19.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/BREAKING_CHANGES.md +84 -0
- package/LICENSE +21 -0
- package/README.md +19 -2
- package/core-jsx.d.ts +53 -0
- package/eslint.config.mjs +3 -0
- package/jsx.d.ts +273 -0
- package/package.json +85 -3
- package/src/__tests__/container.test.tsx +150 -0
- package/src/__tests__/effect-gradient-validation.test.tsx +133 -0
- package/src/__tests__/glyphs.test.ts +202 -0
- package/src/__tests__/modal-boundary-export.test.ts +12 -0
- package/src/__tests__/native-modal.test.tsx +224 -0
- package/src/__tests__/tween-release.test.tsx +125 -0
- package/src/__tests__/tween-stops-shape.test.tsx +165 -0
- package/src/__tests__/tween-without-compat.test.tsx +64 -0
- package/src/__tests__/tween.test.tsx +195 -0
- package/src/blended-busy-spinner.props.ts +37 -0
- package/src/blended-busy-spinner.tsx +13 -0
- package/src/bounding-tracker.props.ts +18 -0
- package/src/bounding-tracker.tsx +13 -0
- package/src/button-row.tsx +126 -0
- package/src/channel-store.props.ts +425 -0
- package/src/channel-store.tsx +76 -0
- package/src/container.tsx +130 -0
- package/src/core/jsx-runtime.ts +39 -0
- package/src/focusable-group.props.ts +8 -0
- package/src/focusable-group.tsx +17 -0
- package/src/focusable.props.ts +14 -0
- package/src/focusable.tsx +17 -0
- package/src/glyphs.ts +116 -0
- package/src/helpers/index.tsx +4 -0
- package/src/helpers/resolution-context.tsx +68 -0
- package/src/helpers/scale-for-device-resolution.ts +31 -0
- package/src/index.tsx +70 -0
- package/src/jsx-props.ts +87 -0
- package/src/kdfs.d.ts +14 -0
- package/src/kdfs.ts +15 -0
- package/src/key-handler.props.ts +33 -0
- package/src/key-handler.tsx +24 -0
- package/src/modal-dialog.props.ts +38 -0
- package/src/modal-dialog.tsx +41 -0
- package/src/retain-asset.ts +24 -0
- package/src/sg-intrinsics.json +1153 -0
- package/src/sg-nodes/__tests__/__snapshots__/font.test.tsx.snap +13 -0
- package/src/sg-nodes/__tests__/__snapshots__/prop-forwarding.test.tsx.snap +4409 -0
- package/src/sg-nodes/__tests__/core-props.test.ts +301 -0
- package/src/sg-nodes/__tests__/font.test.tsx +141 -0
- package/src/sg-nodes/__tests__/imperative-methods.test.ts +276 -0
- package/src/sg-nodes/__tests__/prop-forwarding.test.tsx +1049 -0
- package/src/sg-nodes/__tests__/solid-integration.test.tsx +719 -0
- package/src/sg-nodes/animated-image.props.ts +64 -0
- package/src/sg-nodes/animated-image.tsx +23 -0
- package/src/sg-nodes/animation.props.ts +292 -0
- package/src/sg-nodes/animation.tsx +190 -0
- package/src/sg-nodes/array-grid.ts +602 -0
- package/src/sg-nodes/audio.props.ts +302 -0
- package/src/sg-nodes/audio.tsx +57 -0
- package/src/sg-nodes/busy-spinner.props.ts +59 -0
- package/src/sg-nodes/busy-spinner.tsx +84 -0
- package/src/sg-nodes/button-group.props.ts +141 -0
- package/src/sg-nodes/button-group.tsx +30 -0
- package/src/sg-nodes/button.props.ts +119 -0
- package/src/sg-nodes/button.tsx +31 -0
- package/src/sg-nodes/check-list.props.ts +71 -0
- package/src/sg-nodes/check-list.tsx +55 -0
- package/src/sg-nodes/content-node.props.ts +1316 -0
- package/src/sg-nodes/content-node.tsx +153 -0
- package/src/sg-nodes/core-props.ts +197 -0
- package/src/sg-nodes/custom-keyboard.props.ts +108 -0
- package/src/sg-nodes/custom-keyboard.tsx +48 -0
- package/src/sg-nodes/dialog.props.ts +159 -0
- package/src/sg-nodes/dialog.tsx +36 -0
- package/src/sg-nodes/dynamic-key-grid.props.ts +22 -0
- package/src/sg-nodes/dynamic-key-grid.tsx +16 -0
- package/src/sg-nodes/dynamic-keyboard.props.ts +30 -0
- package/src/sg-nodes/dynamic-keyboard.tsx +18 -0
- package/src/sg-nodes/dynamic-mini-keyboard.props.ts +22 -0
- package/src/sg-nodes/dynamic-mini-keyboard.tsx +18 -0
- package/src/sg-nodes/dynamic-pinpad.props.ts +57 -0
- package/src/sg-nodes/dynamic-pinpad.tsx +18 -0
- package/src/sg-nodes/effect.props.ts +119 -0
- package/src/sg-nodes/effect.tsx +167 -0
- package/src/sg-nodes/font.props.ts +45 -0
- package/src/sg-nodes/font.tsx +80 -0
- package/src/sg-nodes/group.props.ts +105 -0
- package/src/sg-nodes/group.tsx +30 -0
- package/src/sg-nodes/label-list.props.ts +86 -0
- package/src/sg-nodes/label-list.tsx +64 -0
- package/src/sg-nodes/label.props.ts +207 -0
- package/src/sg-nodes/label.tsx +56 -0
- package/src/sg-nodes/layout-group.props.ts +69 -0
- package/src/sg-nodes/layout-group.tsx +75 -0
- package/src/sg-nodes/list-panel.props.ts +103 -0
- package/src/sg-nodes/list-panel.tsx +49 -0
- package/src/sg-nodes/markup-grid.props.ts +78 -0
- package/src/sg-nodes/markup-grid.tsx +38 -0
- package/src/sg-nodes/markup-list.props.ts +66 -0
- package/src/sg-nodes/markup-list.tsx +38 -0
- package/src/sg-nodes/mask-group.props.ts +78 -0
- package/src/sg-nodes/mask-group.tsx +59 -0
- package/src/sg-nodes/media-playback-methods.ts +20 -0
- package/src/sg-nodes/node.ts +77 -0
- package/src/sg-nodes/overhang.props.ts +169 -0
- package/src/sg-nodes/overhang.tsx +29 -0
- package/src/sg-nodes/panel-set.props.ts +71 -0
- package/src/sg-nodes/panel-set.tsx +53 -0
- package/src/sg-nodes/panel.props.ts +176 -0
- package/src/sg-nodes/panel.tsx +56 -0
- package/src/sg-nodes/poster-grid.props.ts +277 -0
- package/src/sg-nodes/poster-grid.tsx +45 -0
- package/src/sg-nodes/poster.props.ts +125 -0
- package/src/sg-nodes/poster.tsx +44 -0
- package/src/sg-nodes/radio-button-list.props.ts +59 -0
- package/src/sg-nodes/radio-button-list.tsx +68 -0
- package/src/sg-nodes/rectangle.props.ts +29 -0
- package/src/sg-nodes/rectangle.tsx +27 -0
- package/src/sg-nodes/row-list.props.ts +288 -0
- package/src/sg-nodes/row-list.tsx +47 -0
- package/src/sg-nodes/scene.props.ts +65 -0
- package/src/sg-nodes/scene.tsx +15 -0
- package/src/sg-nodes/scrollable-text.props.ts +133 -0
- package/src/sg-nodes/scrollable-text.tsx +64 -0
- package/src/sg-nodes/scrolling-label.props.ts +106 -0
- package/src/sg-nodes/scrolling-label.tsx +42 -0
- package/src/sg-nodes/simple-label.props.ts +156 -0
- package/src/sg-nodes/simple-label.tsx +59 -0
- package/src/sg-nodes/sound-effect.props.ts +130 -0
- package/src/sg-nodes/sound-effect.tsx +65 -0
- package/src/sg-nodes/standard-dialog.props.ts +520 -0
- package/src/sg-nodes/standard-dialog.tsx +428 -0
- package/src/sg-nodes/standard-keyboard-dialog.props.ts +84 -0
- package/src/sg-nodes/standard-keyboard-dialog.tsx +58 -0
- package/src/sg-nodes/standard-message-dialog.props.ts +56 -0
- package/src/sg-nodes/standard-message-dialog.tsx +47 -0
- package/src/sg-nodes/standard-pinpad-dialog.props.ts +64 -0
- package/src/sg-nodes/standard-pinpad-dialog.tsx +44 -0
- package/src/sg-nodes/standard-progress-dialog.props.ts +30 -0
- package/src/sg-nodes/standard-progress-dialog.tsx +40 -0
- package/src/sg-nodes/target-group.props.ts +278 -0
- package/src/sg-nodes/target-group.tsx +63 -0
- package/src/sg-nodes/target-list.props.ts +128 -0
- package/src/sg-nodes/target-list.tsx +66 -0
- package/src/sg-nodes/target-set.props.ts +63 -0
- package/src/sg-nodes/target-set.tsx +42 -0
- package/src/sg-nodes/time-grid.props.ts +646 -0
- package/src/sg-nodes/time-grid.tsx +87 -0
- package/src/sg-nodes/tween.props.ts +115 -0
- package/src/sg-nodes/types.ts +150 -0
- package/src/sg-nodes/video.props.ts +642 -0
- package/src/sg-nodes/video.tsx +75 -0
- package/src/sg-nodes/voice-text-edit-box.props.ts +91 -0
- package/src/sg-nodes/voice-text-edit-box.tsx +15 -0
- package/src/sg-nodes/zoom-row-list.props.ts +416 -0
- package/src/sg-nodes/zoom-row-list.tsx +42 -0
- package/src/standard-dialog-next/__tests__/standard-dialog-next.test.tsx +186 -0
- package/src/standard-dialog-next/index.ts +5 -0
- package/src/standard-dialog-next/standard-dialog-next.props.ts +80 -0
- package/src/standard-dialog-next/standard-dialog-next.tsx +326 -0
- package/src/test-helpers/tween-test-setup.ts +78 -0
- package/src/tween.tsx +173 -0
- package/src/types.ts +8 -0
- package/src/xml-components/blended-busy-spinner/BlendedBusySpinner.brs +13 -0
- package/src/xml-components/blended-busy-spinner/BlendedBusySpinner.xml +10 -0
- package/src/xml-components/blended-busy-spinner/BlendedBusySpinner.xml.d.ts +42 -0
- package/src/xml-components/bounding-tracker/BoundingTracker.brs +26 -0
- package/src/xml-components/bounding-tracker/BoundingTracker.xml +14 -0
- package/src/xml-components/bounding-tracker/BoundingTracker.xml.d.ts +42 -0
- package/src/xml-components/channel-store/channelStoreExt.brs +159 -0
- package/src/xml-components/channel-store/channelStoreExt.xml +29 -0
- package/src/xml-components/channel-store/channelStoreExt.xml.d.ts +57 -0
- package/src/xml-components/focus/focusable-group.brs +251 -0
- package/src/xml-components/focus/focusable-group.xml +15 -0
- package/src/xml-components/focus/focusable-group.xml.d.ts +42 -0
- package/src/xml-components/focus/focusable.xml +18 -0
- package/src/xml-components/focus/focusable.xml.d.ts +48 -0
- package/src/xml-components/keyboards/CustomAddressKDF.keyboard.json +547 -0
- package/src/xml-components/keyboards/CustomKeyboard.brs +322 -0
- package/src/xml-components/keyboards/CustomKeyboard.xml +45 -0
- package/src/xml-components/keyboards/CustomKeyboard.xml.d.ts +73 -0
- package/src/xml-components/keyboards/KeyGridExt.xml +4 -0
- package/src/xml-components/keyboards/KeyGridExt.xml.d.ts +37 -0
- package/src/xml-components/keyboards/KeyboardExt.xml +4 -0
- package/src/xml-components/keyboards/KeyboardExt.xml.d.ts +37 -0
- package/src/xml-components/keyboards/MOPPinPadCustomKDF.keyboard.json +151 -0
- package/src/xml-components/keyboards/MiniKeyboardExt.xml +4 -0
- package/src/xml-components/keyboards/MiniKeyboardExt.xml.d.ts +37 -0
- package/src/xml-components/keyboards/PhonePadCustomKDF.keyboard.json +42 -0
- package/src/xml-components/keyboards/PinPadExt.brs +102 -0
- package/src/xml-components/keyboards/PinPadExt.xml +17 -0
- package/src/xml-components/keyboards/PinPadExt.xml.d.ts +49 -0
- package/src/xml-components/keyboards/WifiCustomKDF.keyboard.json +1242 -0
- package/src/xml-components/keyhandler/KeyHandler.brs +30 -0
- package/src/xml-components/keyhandler/KeyHandler.xml +16 -0
- package/src/xml-components/keyhandler/KeyHandler.xml.d.ts +45 -0
- package/src/xml-components/managed-list-panel/ManagedListPanel.brs +137 -0
- package/src/xml-components/managed-list-panel/ManagedListPanel.xml +10 -0
- package/src/xml-components/managed-list-panel/ManagedListPanel.xml.d.ts +37 -0
- package/src/xml-components/modal/Modal.brs +105 -0
- package/src/xml-components/modal/Modal.xml +22 -0
- package/src/xml-components/modal/Modal.xml.d.ts +54 -0
- package/src/xml-components/modal/StandardDialogExt.xml +10 -0
- package/src/xml-components/modal/StandardDialogExt.xml.d.ts +37 -0
- package/src/xml-components/modal/StandardKeyboardDialogExt.xml +10 -0
- package/src/xml-components/modal/StandardKeyboardDialogExt.xml.d.ts +37 -0
- package/src/xml-components/modal/StandardMessageDialogExt.xml +10 -0
- package/src/xml-components/modal/StandardMessageDialogExt.xml.d.ts +37 -0
- package/src/xml-components/modal/StandardPinPadDialogExt.xml +10 -0
- package/src/xml-components/modal/StandardPinPadDialogExt.xml.d.ts +37 -0
- package/src/xml-components/modal/StandardProgressDialogExt.xml +10 -0
- package/src/xml-components/modal/StandardProgressDialogExt.xml.d.ts +37 -0
- package/src/xml-components/modal/tests/Modal.test.brs +195 -0
- package/tsconfig.json +10 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Breaking Changes
|
|
2
|
+
|
|
3
|
+
See the [Tween value-shape contract](../../documentation/core-concepts/tween.md) for target and settle shapes.
|
|
4
|
+
|
|
5
|
+
## `<tween>` follows the native field contract
|
|
6
|
+
|
|
7
|
+
_Lands after 2.16.0._ The `<tween>` intrinsic no longer accepts `toY` or `delay`.
|
|
8
|
+
For a two-axis destination, pass `targetVector={[x, y]}` instead of `targetValue={x}`
|
|
9
|
+
and `toY={y}`. A scalar `targetValue` on a vector field now moves both axes to that
|
|
10
|
+
value. To delay an animation, write its target from an application-owned timer.
|
|
11
|
+
|
|
12
|
+
`onAnimationState` now receives one tuple, `[state, value]`, where `value` is
|
|
13
|
+
`number | Vector2D`. The `@roku-sdk/flex-grid` `Tween` wrapper still adapts this to
|
|
14
|
+
its two-argument callback; this change applies to the intrinsic.
|
|
15
|
+
|
|
16
|
+
The native node is selected only on firmware that reports the `tween` feature
|
|
17
|
+
(`roku.hasFeature("tween")`). Otherwise the build-injected `@roku-sdk/compat` supplies
|
|
18
|
+
`RsgTweenShim`; with `app.compat: false`, creating `<tween>` throws an error naming the
|
|
19
|
+
missing feature. The firmware feature set starts empty, so devices use the shim until
|
|
20
|
+
firmware adds `"tween"`. There is no OS-version gate.
|
|
21
|
+
|
|
22
|
+
**Migration.**
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
// before
|
|
26
|
+
<tween
|
|
27
|
+
targetNode={node}
|
|
28
|
+
axis="both"
|
|
29
|
+
targetValue={x}
|
|
30
|
+
toY={y}
|
|
31
|
+
delay={0.2}
|
|
32
|
+
onAnimationState={state => logState(state)}
|
|
33
|
+
/>
|
|
34
|
+
|
|
35
|
+
// after
|
|
36
|
+
<tween
|
|
37
|
+
targetNode={node}
|
|
38
|
+
axis="all"
|
|
39
|
+
targetVector={[x, y]}
|
|
40
|
+
onAnimationState={([state, value]) => logState(state, value)}
|
|
41
|
+
/>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## `axis="both"` is removed; use `axis="all"`
|
|
45
|
+
|
|
46
|
+
_Lands after 2.16.0._ `axis` accepts `"x"`, `"y"` and `"all"`. `"x"` and `"y"` move one
|
|
47
|
+
component and hold the other at `preserveOther`; `"all"` moves the whole vector. `"both"` meant
|
|
48
|
+
the same thing as `"all"` and is no longer part of the type. Write `"all"`.
|
|
49
|
+
|
|
50
|
+
The behavioural change is in settlement. A vector settle used to pick one dominant axis from the
|
|
51
|
+
armed span, apply the chosen stop to that component, and leave the other on whatever value it
|
|
52
|
+
happened to hold. It now picks one whole `[x, y]` candidate and applies it to every component the
|
|
53
|
+
axis owns, so a diagonal glide lands on both coordinates. A candidate is accepted when it lies
|
|
54
|
+
strictly ahead on every owned component the span moves (a component the span does not move
|
|
55
|
+
imposes no constraint), and the nearest accepted candidate by Euclidean distance wins. The
|
|
56
|
+
canonical `proposedStops` form for a vector field under `"all"` is therefore `[x, y][]`. A
|
|
57
|
+
candidate has the arity of the value being settled, so the shape follows the field and the axis:
|
|
58
|
+
|
|
59
|
+
- float fields, and `axis` `"x"` / `"y"` on a vector field: `number[]`;
|
|
60
|
+
- `axis` `"all"` (the default) on a vector field: `[number, number][]`;
|
|
61
|
+
- `axis` is ignored on float fields.
|
|
62
|
+
|
|
63
|
+
An entry of the wrong arity is skipped and logged once per settle, and the valid entries in a
|
|
64
|
+
mixed list still compete. A scalar under `"all"` is not expanded to `[s, s]` the way a scalar
|
|
65
|
+
`targetValue` is, and an array under `"x"` or `"y"` (an `[x, y]` pair included) is not read on
|
|
66
|
+
the owned component. A list with nothing of the right arity left in it means no settle. A
|
|
67
|
+
single candidate is read as a destination rather than a choice, so the direction-of-travel
|
|
68
|
+
filter does not apply to it.
|
|
69
|
+
|
|
70
|
+
A flat two-scalar `proposedStops` array used to be one `[x, y]` destination point under
|
|
71
|
+
`"both"`. Under `"all"` it is now two scalars of the wrong arity, both skipped, so it settles
|
|
72
|
+
nowhere. Write one point as `[[x, y]]`.
|
|
73
|
+
|
|
74
|
+
`onAnimationStop` still carries one scalar position. Under `"x"` or `"y"` it is that coordinate;
|
|
75
|
+
under `"all"` it is the chosen point's coordinate that travels further. The full point is
|
|
76
|
+
`proposedStops[index]`.
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
// before — dominant axis wins, the other component is left where it was
|
|
80
|
+
<tween targetNode={node} axis="both" targetVector={[x, y]} proposedStops={[x, y]} />
|
|
81
|
+
|
|
82
|
+
// after — both components settle
|
|
83
|
+
<tween targetNode={node} axis="all" targetVector={[x, y]} proposedStops={[[x, y]]} />
|
|
84
|
+
```
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Roku, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
-
#
|
|
1
|
+
# `@roku-sdk/components`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
SolidJS components for SceneGraph nodes in the RSG 2.0 SDK. Each component wraps one node, such as a Label, Poster, Rectangle or Effect, or composes several, and takes the node's fields as typed JSX props.
|
|
4
|
+
|
|
5
|
+
Every props interface extends `INodeProps`, which holds the props all nodes accept, such as `id`, `ref` and `focusable`. The package also exports character constants for Roku remote-button glyphs and common symbols, from `@roku-sdk/components/glyphs`.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
pnpm add @roku-sdk/components
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { Effect } from "@roku-sdk/components";
|
|
17
|
+
|
|
18
|
+
const framed = <Effect borderRadius={24} borderWidth={6} borderColor="0xF39C12FF" />;
|
|
19
|
+
<rectangle width={300} height={140} effect={framed} />;
|
|
20
|
+
```
|
package/core-jsx.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Copyright (c) 2026 Roku, Inc.
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
// JSX intrinsic map for the frozen core property contract.
|
|
5
|
+
//
|
|
6
|
+
// A build that sets `jsxImportSource: "@roku-sdk/components/core"` resolves `JSX.IntrinsicElements`
|
|
7
|
+
// through `@roku-sdk/components/core/jsx-runtime`, which this file augments. Reach it by adding
|
|
8
|
+
// "@roku-sdk/components/core-jsx" to the tsconfig's `types[]`.
|
|
9
|
+
//
|
|
10
|
+
// Unlike `jsx.d.ts` this file is not generated. `CorePropsByTag` in `src/sg-nodes/core-props.ts` is
|
|
11
|
+
// the authoritative tag-to-interface table, and every member below is its entry for that tag. A
|
|
12
|
+
// primitive absent from that table has no mapping, which is the element-level half of the contract
|
|
13
|
+
// — using its tag is a `Property '<tag>' does not exist on type 'JSX.IntrinsicElements'` error by
|
|
14
|
+
// name rather than a silent pass.
|
|
15
|
+
//
|
|
16
|
+
// Each tag MUST be declared as a direct member. `interface IntrinsicElements extends CorePropsByTag`
|
|
17
|
+
// looks equivalent and is not: the augmented interface already inherits solid-js's DOM tags through
|
|
18
|
+
// its own base interfaces, and an inherited member cannot displace another inherited member. `label`
|
|
19
|
+
// is the collision that matters — solid-js supplies it via `JSX.HTMLElementTags`, so under an
|
|
20
|
+
// `extends` clause `<label>` silently binds `LabelHTMLAttributes<HTMLLabelElement>` instead of
|
|
21
|
+
// `ILabelCoreProps`, and every core `<label>` in an app fails to typecheck against the DOM type. A
|
|
22
|
+
// direct member outranks anything inherited, which is why each generated per-renderer map
|
|
23
|
+
// spells its tags out. The cost is that this list no longer tracks `CorePropsByTag` on its own, so
|
|
24
|
+
// `core-props.test.ts` asserts the two key sets are equal in both directions.
|
|
25
|
+
//
|
|
26
|
+
// `export {}` makes this a TypeScript MODULE file (not a script), enabling proper module
|
|
27
|
+
// augmentation. Without it, `declare module` creates a standalone ambient namespace that shadows
|
|
28
|
+
// JSX.ElementChildrenAttribute from solid-js, breaking automatic `children` handling in `<Show>`,
|
|
29
|
+
// `<For>`, `<ErrorBoundary>`, etc.
|
|
30
|
+
|
|
31
|
+
import type {
|
|
32
|
+
IEffectCoreProps,
|
|
33
|
+
IGroupCoreProps,
|
|
34
|
+
ILabelCoreProps,
|
|
35
|
+
IPosterCoreProps,
|
|
36
|
+
IRectangleCoreProps,
|
|
37
|
+
ITweenCoreProps
|
|
38
|
+
} from "./src/sg-nodes/core-props";
|
|
39
|
+
|
|
40
|
+
export {};
|
|
41
|
+
|
|
42
|
+
declare module "@roku-sdk/components/core/jsx-runtime" {
|
|
43
|
+
namespace JSX {
|
|
44
|
+
interface IntrinsicElements {
|
|
45
|
+
group: IGroupCoreProps;
|
|
46
|
+
rectangle: IRectangleCoreProps;
|
|
47
|
+
label: ILabelCoreProps;
|
|
48
|
+
poster: IPosterCoreProps;
|
|
49
|
+
effect: IEffectCoreProps;
|
|
50
|
+
tween: ITweenCoreProps;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
package/jsx.d.ts
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
// Auto-generated. DO NOT EDIT.
|
|
2
|
+
// Source: src/sg-intrinsics.json — run `pnpm generate:sg-intrinsics` to regenerate.
|
|
3
|
+
|
|
4
|
+
import type {
|
|
5
|
+
IAnimatedImageProps,
|
|
6
|
+
IAnimationBaseProps,
|
|
7
|
+
IAnimationProps,
|
|
8
|
+
IAudioProps,
|
|
9
|
+
IBifDisplayProps,
|
|
10
|
+
IBlendedBusySpinnerProps,
|
|
11
|
+
IBoundingTrackerProps,
|
|
12
|
+
IBusySpinnerProps,
|
|
13
|
+
IButtonGroupProps,
|
|
14
|
+
IButtonProps,
|
|
15
|
+
IChannelStoreProps,
|
|
16
|
+
ICheckListProps,
|
|
17
|
+
IColorFieldInterpolatorProps,
|
|
18
|
+
IContentNodeProps,
|
|
19
|
+
IDialogProps,
|
|
20
|
+
IDynamicKeyboardProps,
|
|
21
|
+
IDynamicKeyGridProps,
|
|
22
|
+
IDynamicMiniKeyboardProps,
|
|
23
|
+
IDynamicPinPadProps,
|
|
24
|
+
IEffectProps,
|
|
25
|
+
IFloatFieldInterpolatorProps,
|
|
26
|
+
IFocusableGroupProps,
|
|
27
|
+
IFocusableProps,
|
|
28
|
+
IFontProps,
|
|
29
|
+
IFullPanelProps,
|
|
30
|
+
IGroupProps,
|
|
31
|
+
IKeyboardPropsWithVoice,
|
|
32
|
+
IKeyHandlerProps,
|
|
33
|
+
ILabelListProps,
|
|
34
|
+
ILabelProps,
|
|
35
|
+
ILayoutGroupProps,
|
|
36
|
+
IListPanelProps,
|
|
37
|
+
IMarkupGridProps,
|
|
38
|
+
IMarkupListProps,
|
|
39
|
+
IMaskGroupProps,
|
|
40
|
+
IModalProps,
|
|
41
|
+
IMultiStyleLabelProps,
|
|
42
|
+
IOverhangProps,
|
|
43
|
+
IPanelProps,
|
|
44
|
+
IPanelSetProps,
|
|
45
|
+
IPosterGridProps,
|
|
46
|
+
IPosterProps,
|
|
47
|
+
IProgressBarProps,
|
|
48
|
+
IRadioButtonListProps,
|
|
49
|
+
IRectangleProps,
|
|
50
|
+
IRowListProps,
|
|
51
|
+
ISceneProps,
|
|
52
|
+
IScrollableTextProps,
|
|
53
|
+
IScrollingLabelProps,
|
|
54
|
+
ISimpleLabelProps,
|
|
55
|
+
ISoundEffectProps,
|
|
56
|
+
IStandardDialogProps,
|
|
57
|
+
IStandardDialogRSGPaletteNodeProps,
|
|
58
|
+
IStandardKeyboardDialogProps,
|
|
59
|
+
IStandardMessageDialogProps,
|
|
60
|
+
IStandardPinPadDialogProps,
|
|
61
|
+
IStandardProgressDialogProps,
|
|
62
|
+
IStdDlgActionCardItemProps,
|
|
63
|
+
IStdDlgBulletTextItemProps,
|
|
64
|
+
IStdDlgButtonAreaProps,
|
|
65
|
+
IStdDlgButtonProps,
|
|
66
|
+
IStdDlgContentAreaProps,
|
|
67
|
+
IStdDlgCustomItemProps,
|
|
68
|
+
IStdDlgDeterminateProgressItemProps,
|
|
69
|
+
IStdDlgGraphicItemProps,
|
|
70
|
+
IStdDlgItemGroupProps,
|
|
71
|
+
IStdDlgKeyboardItemProps,
|
|
72
|
+
IStdDlgMultiStyleTextItemProps,
|
|
73
|
+
IStdDlgProgressItemProps,
|
|
74
|
+
IStdDlgSideCardAreaProps,
|
|
75
|
+
IStdDlgTextItemProps,
|
|
76
|
+
IStdDlgTitleAreaProps,
|
|
77
|
+
ITargetGroupProps,
|
|
78
|
+
ITargetListProps,
|
|
79
|
+
ITargetSetProps,
|
|
80
|
+
ITimeGridProps,
|
|
81
|
+
ITrickPlayBarProps,
|
|
82
|
+
ITweenProps,
|
|
83
|
+
IVector2DFieldInterpolatorProps,
|
|
84
|
+
IVideoProps,
|
|
85
|
+
IVoiceTextEditBoxProps,
|
|
86
|
+
IZoomRowListProps
|
|
87
|
+
} from "./src/jsx-props";
|
|
88
|
+
|
|
89
|
+
declare module "solid-js" {
|
|
90
|
+
namespace JSX {
|
|
91
|
+
interface IntrinsicElements {
|
|
92
|
+
checkList: ICheckListProps;
|
|
93
|
+
labelList: ILabelListProps;
|
|
94
|
+
markupList: IMarkupListProps;
|
|
95
|
+
label: ILabelProps;
|
|
96
|
+
scrollingLabel: IScrollingLabelProps;
|
|
97
|
+
simpleLabel: ISimpleLabelProps;
|
|
98
|
+
multiStyleLabel: IMultiStyleLabelProps;
|
|
99
|
+
button: IButtonProps;
|
|
100
|
+
buttonGroup: IButtonGroupProps;
|
|
101
|
+
busySpinner: IBusySpinnerProps;
|
|
102
|
+
blendedBusySpinner: IBlendedBusySpinnerProps;
|
|
103
|
+
group: IGroupProps;
|
|
104
|
+
"key-handler": IKeyHandlerProps;
|
|
105
|
+
animatedImage: IAnimatedImageProps;
|
|
106
|
+
poster: IPosterProps;
|
|
107
|
+
overhang: IOverhangProps;
|
|
108
|
+
animation: IAnimationProps;
|
|
109
|
+
sequentialAnimation: IAnimationBaseProps;
|
|
110
|
+
floatFieldInterpolator: IFloatFieldInterpolatorProps;
|
|
111
|
+
colorFieldInterpolator: IColorFieldInterpolatorProps;
|
|
112
|
+
vector2dFieldInterpolator: IVector2DFieldInterpolatorProps;
|
|
113
|
+
rectangle: IRectangleProps;
|
|
114
|
+
rowList: IRowListProps;
|
|
115
|
+
timeGrid: ITimeGridProps;
|
|
116
|
+
zoomRowList: IZoomRowListProps;
|
|
117
|
+
layoutGroup: ILayoutGroupProps;
|
|
118
|
+
listPanel: IListPanelProps;
|
|
119
|
+
panelSet: IPanelSetProps;
|
|
120
|
+
panel: IPanelProps;
|
|
121
|
+
radioButtonList: IRadioButtonListProps;
|
|
122
|
+
modal: IModalProps;
|
|
123
|
+
"modal-dialog": IModalProps;
|
|
124
|
+
standardDialogExt: IStandardDialogProps;
|
|
125
|
+
standardDialog: IStandardDialogProps;
|
|
126
|
+
standardKeyboardDialogExt: IStandardKeyboardDialogProps;
|
|
127
|
+
standardMessageDialogExt: IStandardMessageDialogProps;
|
|
128
|
+
standardPinPadDialogExt: IStandardPinPadDialogProps;
|
|
129
|
+
standardProgressDialogExt: IStandardProgressDialogProps;
|
|
130
|
+
dialog: IDialogProps;
|
|
131
|
+
stdDlgTitleArea: IStdDlgTitleAreaProps;
|
|
132
|
+
stdDlgContentArea: IStdDlgContentAreaProps;
|
|
133
|
+
stdDlgButtonArea: IStdDlgButtonAreaProps;
|
|
134
|
+
stdDlgSideCardArea: IStdDlgSideCardAreaProps;
|
|
135
|
+
stdDlgButton: IStdDlgButtonProps;
|
|
136
|
+
stdDlgItemGroup: IStdDlgItemGroupProps;
|
|
137
|
+
stdDlgActionCardItem: IStdDlgActionCardItemProps;
|
|
138
|
+
stdDlgBulletTextItem: IStdDlgBulletTextItemProps;
|
|
139
|
+
stdDlgDeterminateProgressItem: IStdDlgDeterminateProgressItemProps;
|
|
140
|
+
stdDlgGraphicItem: IStdDlgGraphicItemProps;
|
|
141
|
+
stdDlgMultiStyleTextItem: IStdDlgMultiStyleTextItemProps;
|
|
142
|
+
stdDlgKeyboardItem: IStdDlgKeyboardItemProps;
|
|
143
|
+
stdDlgProgressItem: IStdDlgProgressItemProps;
|
|
144
|
+
stdDlgTextItem: IStdDlgTextItemProps;
|
|
145
|
+
stdDlgCustomItem: IStdDlgCustomItemProps;
|
|
146
|
+
contentNode: IContentNodeProps;
|
|
147
|
+
posterGrid: IPosterGridProps;
|
|
148
|
+
markupGrid: IMarkupGridProps;
|
|
149
|
+
video: IVideoProps;
|
|
150
|
+
bifDisplay: IBifDisplayProps;
|
|
151
|
+
trickPlayBar: ITrickPlayBarProps;
|
|
152
|
+
progressBar: IProgressBarProps;
|
|
153
|
+
"bounding-tracker": IBoundingTrackerProps;
|
|
154
|
+
"focusable-group": IFocusableGroupProps;
|
|
155
|
+
focusable: IFocusableProps;
|
|
156
|
+
font: IFontProps;
|
|
157
|
+
channelStoreExt: IChannelStoreProps;
|
|
158
|
+
audio: IAudioProps;
|
|
159
|
+
soundEffect: ISoundEffectProps;
|
|
160
|
+
rsgPalette: IStandardDialogRSGPaletteNodeProps;
|
|
161
|
+
effect: IEffectProps;
|
|
162
|
+
targetGroup: ITargetGroupProps;
|
|
163
|
+
targetList: ITargetListProps;
|
|
164
|
+
targetSet: ITargetSetProps;
|
|
165
|
+
customKeyboard: IKeyboardPropsWithVoice;
|
|
166
|
+
dynamicKeyGrid: IDynamicKeyGridProps;
|
|
167
|
+
keyGridExt: IDynamicKeyGridProps;
|
|
168
|
+
dynamicKeyboard: IDynamicKeyboardProps;
|
|
169
|
+
keyboardExt: IDynamicKeyboardProps;
|
|
170
|
+
dynamicMiniKeyboard: IDynamicMiniKeyboardProps;
|
|
171
|
+
miniKeyboardExt: IDynamicMiniKeyboardProps;
|
|
172
|
+
dynamicPinPad: IDynamicPinPadProps;
|
|
173
|
+
pinPadExt: IDynamicPinPadProps;
|
|
174
|
+
voiceTextEditBox: IVoiceTextEditBoxProps;
|
|
175
|
+
tween: ITweenProps;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
declare module "@roku-sdk/solid" {
|
|
181
|
+
namespace JSX {
|
|
182
|
+
interface IntrinsicElements {
|
|
183
|
+
checkList: ICheckListProps;
|
|
184
|
+
labelList: ILabelListProps;
|
|
185
|
+
markupList: IMarkupListProps;
|
|
186
|
+
maskGroup: IMaskGroupProps;
|
|
187
|
+
label: ILabelProps;
|
|
188
|
+
scrollingLabel: IScrollingLabelProps;
|
|
189
|
+
scrollableText: IScrollableTextProps;
|
|
190
|
+
simpleLabel: ISimpleLabelProps;
|
|
191
|
+
multiStyleLabel: IMultiStyleLabelProps;
|
|
192
|
+
button: IButtonProps;
|
|
193
|
+
buttonGroup: IButtonGroupProps;
|
|
194
|
+
busySpinner: IBusySpinnerProps;
|
|
195
|
+
blendedBusySpinner: IBlendedBusySpinnerProps;
|
|
196
|
+
group: IGroupProps;
|
|
197
|
+
"key-handler": IKeyHandlerProps;
|
|
198
|
+
animatedImage: IAnimatedImageProps;
|
|
199
|
+
poster: IPosterProps;
|
|
200
|
+
overhang: IOverhangProps;
|
|
201
|
+
animation: IAnimationProps;
|
|
202
|
+
sequentialAnimation: IAnimationBaseProps;
|
|
203
|
+
floatFieldInterpolator: IFloatFieldInterpolatorProps;
|
|
204
|
+
colorFieldInterpolator: IColorFieldInterpolatorProps;
|
|
205
|
+
vector2dFieldInterpolator: IVector2DFieldInterpolatorProps;
|
|
206
|
+
rectangle: IRectangleProps;
|
|
207
|
+
rowList: IRowListProps;
|
|
208
|
+
timeGrid: ITimeGridProps;
|
|
209
|
+
zoomRowList: IZoomRowListProps;
|
|
210
|
+
scene: ISceneProps;
|
|
211
|
+
layoutGroup: ILayoutGroupProps;
|
|
212
|
+
managedListPanel: IListPanelProps;
|
|
213
|
+
listPanel: IFullPanelProps;
|
|
214
|
+
panelSet: IPanelSetProps;
|
|
215
|
+
panel: IPanelProps;
|
|
216
|
+
radioButtonList: IRadioButtonListProps;
|
|
217
|
+
modal: IModalProps;
|
|
218
|
+
"modal-dialog": IModalProps;
|
|
219
|
+
standardDialogExt: IStandardDialogProps;
|
|
220
|
+
standardDialog: IStandardDialogProps;
|
|
221
|
+
standardKeyboardDialogExt: IStandardKeyboardDialogProps;
|
|
222
|
+
standardMessageDialogExt: IStandardMessageDialogProps;
|
|
223
|
+
standardPinPadDialogExt: IStandardPinPadDialogProps;
|
|
224
|
+
standardProgressDialogExt: IStandardProgressDialogProps;
|
|
225
|
+
dialog: IDialogProps;
|
|
226
|
+
stdDlgTitleArea: IStdDlgTitleAreaProps;
|
|
227
|
+
stdDlgContentArea: IStdDlgContentAreaProps;
|
|
228
|
+
stdDlgButtonArea: IStdDlgButtonAreaProps;
|
|
229
|
+
stdDlgSideCardArea: IStdDlgSideCardAreaProps;
|
|
230
|
+
stdDlgButton: IStdDlgButtonProps;
|
|
231
|
+
stdDlgItemGroup: IStdDlgItemGroupProps;
|
|
232
|
+
stdDlgActionCardItem: IStdDlgActionCardItemProps;
|
|
233
|
+
stdDlgBulletTextItem: IStdDlgBulletTextItemProps;
|
|
234
|
+
stdDlgDeterminateProgressItem: IStdDlgDeterminateProgressItemProps;
|
|
235
|
+
stdDlgGraphicItem: IStdDlgGraphicItemProps;
|
|
236
|
+
stdDlgMultiStyleTextItem: IStdDlgMultiStyleTextItemProps;
|
|
237
|
+
stdDlgKeyboardItem: IStdDlgKeyboardItemProps;
|
|
238
|
+
stdDlgProgressItem: IStdDlgProgressItemProps;
|
|
239
|
+
stdDlgTextItem: IStdDlgTextItemProps;
|
|
240
|
+
stdDlgCustomItem: IStdDlgCustomItemProps;
|
|
241
|
+
contentNode: IContentNodeProps;
|
|
242
|
+
posterGrid: IPosterGridProps;
|
|
243
|
+
markupGrid: IMarkupGridProps;
|
|
244
|
+
video: IVideoProps;
|
|
245
|
+
bifDisplay: IBifDisplayProps;
|
|
246
|
+
trickPlayBar: ITrickPlayBarProps;
|
|
247
|
+
progressBar: IProgressBarProps;
|
|
248
|
+
"bounding-tracker": IBoundingTrackerProps;
|
|
249
|
+
"focusable-group": IFocusableGroupProps;
|
|
250
|
+
focusable: IFocusableProps;
|
|
251
|
+
font: IFontProps;
|
|
252
|
+
channelStoreExt: IChannelStoreProps;
|
|
253
|
+
audio: IAudioProps;
|
|
254
|
+
soundEffect: ISoundEffectProps;
|
|
255
|
+
rsgPalette: IStandardDialogRSGPaletteNodeProps;
|
|
256
|
+
effect: IEffectProps;
|
|
257
|
+
targetGroup: ITargetGroupProps;
|
|
258
|
+
targetList: ITargetListProps;
|
|
259
|
+
targetSet: ITargetSetProps;
|
|
260
|
+
customKeyboard: IKeyboardPropsWithVoice;
|
|
261
|
+
dynamicKeyGrid: IDynamicKeyGridProps;
|
|
262
|
+
keyGridExt: IDynamicKeyGridProps;
|
|
263
|
+
dynamicKeyboard: IDynamicKeyboardProps;
|
|
264
|
+
keyboardExt: IDynamicKeyboardProps;
|
|
265
|
+
dynamicMiniKeyboard: IDynamicMiniKeyboardProps;
|
|
266
|
+
miniKeyboardExt: IDynamicMiniKeyboardProps;
|
|
267
|
+
dynamicPinPad: IDynamicPinPadProps;
|
|
268
|
+
pinPadExt: IDynamicPinPadProps;
|
|
269
|
+
voiceTextEditBox: IVoiceTextEditBoxProps;
|
|
270
|
+
tween: ITweenProps;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,88 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@roku-sdk/components",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "2.19.0",
|
|
4
|
+
"description": "Roku SceneGraph Solid components",
|
|
5
|
+
"sideEffects": [
|
|
6
|
+
"src/**/*.brs",
|
|
7
|
+
"src/sg-nodes/animation.tsx",
|
|
8
|
+
"src/sg-nodes/audio.tsx",
|
|
9
|
+
"src/sg-nodes/effect.tsx",
|
|
10
|
+
"src/sg-nodes/sound-effect.tsx",
|
|
11
|
+
"src/sg-nodes/video.tsx"
|
|
12
|
+
],
|
|
13
|
+
"main": "src/index.tsx",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": "./src/index.tsx",
|
|
16
|
+
"./types": "./src/types.ts",
|
|
17
|
+
"./glyphs": {
|
|
18
|
+
"types": "./src/glyphs.ts",
|
|
19
|
+
"default": "./src/glyphs.ts"
|
|
20
|
+
},
|
|
21
|
+
"./kdfs": {
|
|
22
|
+
"types": "./src/kdfs.d.ts",
|
|
23
|
+
"default": "./src/kdfs.ts"
|
|
24
|
+
},
|
|
25
|
+
"./jsx": "./jsx.d.ts",
|
|
26
|
+
"./jsx-props": "./src/jsx-props.ts",
|
|
27
|
+
"./core-props": "./src/sg-nodes/core-props.ts",
|
|
28
|
+
"./core-jsx": "./core-jsx.d.ts",
|
|
29
|
+
"./core/jsx-runtime": "./src/core/jsx-runtime.ts",
|
|
30
|
+
"./animation": "./src/sg-nodes/animation.tsx",
|
|
31
|
+
"./busy-spinner": "./src/sg-nodes/busy-spinner.tsx",
|
|
32
|
+
"./helpers": "./src/helpers/index.tsx",
|
|
33
|
+
"./standard-dialog-next": "./src/standard-dialog-next/index.ts"
|
|
34
|
+
},
|
|
35
|
+
"type": "module",
|
|
36
|
+
"files": [
|
|
37
|
+
"src/",
|
|
38
|
+
"dist/",
|
|
39
|
+
"eslint.config.mjs",
|
|
40
|
+
"tsconfig.json",
|
|
41
|
+
"jsx.d.ts",
|
|
42
|
+
"core-jsx.d.ts",
|
|
43
|
+
"README.md",
|
|
44
|
+
"BREAKING_CHANGES.md"
|
|
45
|
+
],
|
|
46
|
+
"engines": {
|
|
47
|
+
"npm": ">=8.5.0",
|
|
48
|
+
"node": ">=24.0.0"
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@roku-sdk/common": "2.19.0",
|
|
52
|
+
"@roku-sdk/navigation": "2.19.0",
|
|
53
|
+
"@roku-sdk/runtime": "2.19.0",
|
|
54
|
+
"@roku-sdk/interfaces": "2.19.0",
|
|
55
|
+
"@roku-sdk/solid": "2.19.0"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@jest/globals": "^30.4.1",
|
|
59
|
+
"@types/jest": "^30.0.0",
|
|
60
|
+
"jest": "^30.4.1",
|
|
61
|
+
"jest-transform-stub": "^2.0.0",
|
|
62
|
+
"@roku-sdk/dev-tools": "2.19.0",
|
|
63
|
+
"@roku-sdk/testing-library": "2.19.0",
|
|
64
|
+
"@roku-sdk/compat": "2.19.0"
|
|
65
|
+
},
|
|
66
|
+
"author": "Roku Inc",
|
|
67
|
+
"license": "MIT",
|
|
68
|
+
"repository": {
|
|
69
|
+
"type": "git",
|
|
70
|
+
"url": "git+https://gitlab.com/rokudev/rsg-sdk.git",
|
|
71
|
+
"directory": "packages/components"
|
|
72
|
+
},
|
|
73
|
+
"homepage": "https://gitlab.com/rokudev/rsg-sdk/-/tree/main/packages/components#readme",
|
|
74
|
+
"bugs": {
|
|
75
|
+
"url": "https://gitlab.com/rokudev/rsg-sdk/-/issues"
|
|
76
|
+
},
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"access": "public"
|
|
79
|
+
},
|
|
80
|
+
"scripts": {
|
|
81
|
+
"generate:sg-intrinsics": "node scripts/generate-sg-intrinsics.mjs",
|
|
82
|
+
"test": "jest --passWithNoTests",
|
|
83
|
+
"coverage": "jest --coverage --runInBand --passWithNoTests --testTimeout=60000 --forceExit",
|
|
84
|
+
"clean": "rm -rf dist",
|
|
85
|
+
"lint": "eslint --no-error-on-unmatched-pattern \"src/**/*.{ts,tsx,mjs,cjs,js}\"",
|
|
86
|
+
"core-props:gap": "node scripts/core-props-gap.mjs"
|
|
87
|
+
}
|
|
6
88
|
}
|