flet-box 1.0.6 → 1.0.8
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/README.md +28 -1
- package/bin/cli.js +90 -11
- package/bin/commands/auditFix.js +682 -0
- package/bin/commands/checkApi.js +20 -6
- package/bin/commands/checkUi.js +1369 -0
- package/bin/commands/create.js +86 -12
- package/bin/commands/createBundle.js +75 -1
- package/bin/commands/images.js +349 -0
- package/bin/commands/pruneAssets.js +170 -0
- package/bin/commands/release.js +34 -1
- package/bin/commands/runCloudflare.js +47 -9
- package/bin/commands/runServer.js +91 -25
- package/bin/commands/toPng.js +346 -0
- package/bin/commands/unpack.js +1173 -0
- package/bin/ota/loader.js +90 -0
- package/bin/utils/appSources.js +101 -0
- package/bin/utils/bundleConfig.js +166 -0
- package/bin/utils/dtsProps.js +147 -0
- package/bin/utils/imageTools.js +271 -0
- package/bin/utils/images/bmp.js +99 -0
- package/bin/utils/images/gif.js +244 -0
- package/bin/utils/images/index.js +163 -0
- package/bin/utils/images/jpeg.js +643 -0
- package/bin/utils/images/png.js +486 -0
- package/bin/utils/images/unsupported.js +29 -0
- package/bin/utils/neutralise.js +109 -6
- package/bin/utils/pwaShell.js +137 -0
- package/bin/utils/templates.js +1653 -471
- package/docs/README.md +2 -0
- package/docs/cli/README.md +144 -1
- package/docs/guides/README.md +2 -0
- package/docs/guides/clean-ui.md +211 -0
- package/docs/guides/minification-and-protection.md +1 -1
- package/docs/guides/online-updates.md +105 -9
- package/docs/tools/README.md +1 -1
- package/docs/tools/animation.md +1 -1
- package/docs/tools/markdown.md +3 -3
- package/docs/tools/theme.md +41 -1
- package/docs/widget/Accordion.md +4 -0
- package/docs/widget/AdMob.md +5 -1
- package/docs/widget/AdSense.md +4 -0
- package/docs/widget/AnimatedBox.md +7 -3
- package/docs/widget/AnimatedText.md +4 -0
- package/docs/widget/Audio.md +5 -1
- package/docs/widget/Avatar.md +15 -3
- package/docs/widget/Badge.md +4 -0
- package/docs/widget/Button.md +4 -0
- package/docs/widget/COMMON_PROPS.md +52 -0
- package/docs/widget/Card.md +4 -0
- package/docs/widget/Carousel.md +4 -0
- package/docs/widget/Chart.md +4 -0
- package/docs/widget/Checkbox.md +4 -0
- package/docs/widget/Chip.md +4 -0
- package/docs/widget/CircularBar.md +4 -0
- package/docs/widget/CircularChart.md +4 -0
- package/docs/widget/CodeViewer.md +4 -0
- package/docs/widget/Column.md +4 -0
- package/docs/widget/Container.md +4 -0
- package/docs/widget/DataTable.md +4 -0
- package/docs/widget/Divider.md +4 -0
- package/docs/widget/DraggBox.md +6 -2
- package/docs/widget/Dropdown.md +6 -0
- package/docs/widget/DroppBox.md +5 -1
- package/docs/widget/FloatingActionButton.md +4 -0
- package/docs/widget/GridView.md +4 -0
- package/docs/widget/Icon.md +4 -0
- package/docs/widget/Image.md +14 -3
- package/docs/widget/Input.md +4 -0
- package/docs/widget/Inspector.md +2 -2
- package/docs/widget/InstallButton.md +4 -0
- package/docs/widget/ListTile.md +4 -0
- package/docs/widget/ListView.md +4 -0
- package/docs/widget/Maps.md +191 -0
- package/docs/widget/Markdown.md +4 -0
- package/docs/widget/MatrixRain.md +4 -0
- package/docs/widget/Pagination.md +4 -0
- package/docs/widget/ParallaxBox.md +4 -0
- package/docs/widget/ProgressBar.md +4 -0
- package/docs/widget/QRCode.md +4 -0
- package/docs/widget/README.md +12 -10
- package/docs/widget/Radio.md +5 -1
- package/docs/widget/Rating.md +4 -0
- package/docs/widget/Row.md +4 -0
- package/docs/widget/Skeleton.md +4 -0
- package/docs/widget/Slider.md +4 -0
- package/docs/widget/Stack.md +4 -0
- package/docs/widget/Stepper.md +4 -0
- package/docs/widget/Switch.md +4 -0
- package/docs/widget/Tabs.md +5 -5
- package/docs/widget/Text.md +4 -0
- package/docs/widget/Tooltip.md +14 -13
- package/docs/widget/TreeView.md +4 -0
- package/docs/widget/Video.md +6 -2
- package/package.json +2 -2
- package/src/animations/AnimatedBox.js +4 -1
- package/src/animations/MatrixRain.js +3 -3
- package/src/core/hmr-client.js +129 -34
- package/src/index.d.ts +195 -7
- package/src/index.js +2 -0
- package/src/navigations/AppBar.js +22 -16
- package/src/navigations/BottomNavigation.js +8 -13
- package/src/navigations/CollapsibleSideBar.js +30 -8
- package/src/navigations/Drawer.js +25 -15
- package/src/navigations/DrawerItem.js +3 -1
- package/src/navigations/Scaffold.js +26 -12
- package/src/navigations/Tabs.js +104 -59
- package/src/tools/color.js +54 -0
- package/src/tools/index.js +9 -1
- package/src/tools/scale.js +41 -0
- package/src/tools/shadow.js +20 -0
- package/src/utils/index.js +1 -0
- package/src/utils/readableInk.js +19 -0
- package/src/utils/syntaxHighlight.js +78 -10
- package/src/utils/themes.js +217 -54
- package/src/utils/units.js +33 -11
- package/src/widget-factory/effects.js +56 -5
- package/src/widget-factory/processProps.js +10 -1
- package/src/widget-factory/remTool.js +15 -29
- package/src/widget-factory/stackPosition.js +18 -3
- package/src/widget-factory/translateProps.js +60 -1
- package/src/widgets/Accordion.js +20 -23
- package/src/widgets/AdMob.js +7 -2
- package/src/widgets/Avatar.js +236 -133
- package/src/widgets/Badge.js +3 -2
- package/src/widgets/BottomSheet.js +14 -13
- package/src/widgets/Button.js +69 -30
- package/src/widgets/Card.js +6 -2
- package/src/widgets/Carousel.js +12 -10
- package/src/widgets/Chart.js +28 -5
- package/src/widgets/Checkbox.js +76 -18
- package/src/widgets/Chip.js +31 -10
- package/src/widgets/CircularBar.js +7 -7
- package/src/widgets/CircularChart.js +26 -8
- package/src/widgets/CodeViewer.js +93 -20
- package/src/widgets/Container.js +13 -0
- package/src/widgets/DataTable.js +17 -11
- package/src/widgets/DraggBox.js +2 -1
- package/src/widgets/Dropdown.js +59 -14
- package/src/widgets/DroppBox.js +4 -2
- package/src/widgets/FloatingActionButton.js +13 -7
- package/src/widgets/Icon.js +3 -1
- package/src/widgets/Image.js +102 -3
- package/src/widgets/Input.js +30 -23
- package/src/widgets/Inspector.js +54 -1
- package/src/widgets/InstallButton.js +6 -4
- package/src/widgets/ListTile.js +4 -3
- package/src/widgets/ListView.js +30 -12
- package/src/widgets/Maps.js +1495 -0
- package/src/widgets/Markdown.js +37 -26
- package/src/widgets/Modal.js +14 -11
- package/src/widgets/Pagination.js +16 -11
- package/src/widgets/ProgressBar.js +6 -4
- package/src/widgets/Radio.js +73 -15
- package/src/widgets/Rating.js +24 -6
- package/src/widgets/Skeleton.js +31 -31
- package/src/widgets/Slider.js +29 -18
- package/src/widgets/SnackBar.js +35 -39
- package/src/widgets/Stepper.js +13 -9
- package/src/widgets/Switch.js +59 -18
- package/src/widgets/Tooltip.js +24 -12
- package/src/widgets/TreeView.js +27 -15
- package/src/widgets/index.js +1 -0
package/bin/commands/checkApi.js
CHANGED
|
@@ -31,6 +31,7 @@ import { createRequire } from "node:module";
|
|
|
31
31
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
32
32
|
import {
|
|
33
33
|
parseInterfaces,
|
|
34
|
+
parseSignatures,
|
|
34
35
|
resolveInterfaceProps,
|
|
35
36
|
} from "../utils/dtsProps.js";
|
|
36
37
|
import { c, banner, section } from "../utils/colors.js";
|
|
@@ -42,7 +43,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
42
43
|
const CLI_PACKAGE_DIR = path.join(__dirname, "..", "..");
|
|
43
44
|
|
|
44
45
|
/** Keys the factory itself reads, so they are never "invented props". */
|
|
45
|
-
const STRUCTURAL_PROPS = new Set([
|
|
46
|
+
export const STRUCTURAL_PROPS = new Set([
|
|
46
47
|
"child",
|
|
47
48
|
"children",
|
|
48
49
|
"tag",
|
|
@@ -129,7 +130,7 @@ const resolvePackage = (projectRoot) => {
|
|
|
129
130
|
* @param {string} projectRoot
|
|
130
131
|
* @returns {Promise<object>}
|
|
131
132
|
*/
|
|
132
|
-
const loadApi = async (projectRoot) => {
|
|
133
|
+
export const loadApi = async (projectRoot) => {
|
|
133
134
|
const { dir, pkg } = resolvePackage(projectRoot);
|
|
134
135
|
const barrel = await import(pathToFileURL(path.join(dir, "src", "index.js")).href);
|
|
135
136
|
const registry = await import(
|
|
@@ -143,6 +144,7 @@ const loadApi = async (projectRoot) => {
|
|
|
143
144
|
PROP_MAP: registry.PROP_MAP,
|
|
144
145
|
ALL_PROPS: registry.ALL_PROPS,
|
|
145
146
|
interfaces: parseInterfaces(dts),
|
|
147
|
+
signatures: parseSignatures(dts),
|
|
146
148
|
};
|
|
147
149
|
};
|
|
148
150
|
|
|
@@ -153,7 +155,7 @@ const loadApi = async (projectRoot) => {
|
|
|
153
155
|
* @param {string} b
|
|
154
156
|
* @returns {number}
|
|
155
157
|
*/
|
|
156
|
-
const distance = (a, b) => {
|
|
158
|
+
export const distance = (a, b) => {
|
|
157
159
|
if (a === b) return 0;
|
|
158
160
|
const m = a.length;
|
|
159
161
|
const n = b.length;
|
|
@@ -180,7 +182,7 @@ const distance = (a, b) => {
|
|
|
180
182
|
* @param {Iterable<string>} candidates
|
|
181
183
|
* @returns {string | null}
|
|
182
184
|
*/
|
|
183
|
-
const nearest = (value, candidates) => {
|
|
185
|
+
export const nearest = (value, candidates) => {
|
|
184
186
|
let best = null;
|
|
185
187
|
let bestScore = 4; // never suggest for names that are simply unrelated
|
|
186
188
|
const lower = value.toLowerCase();
|
|
@@ -200,7 +202,7 @@ const nearest = (value, candidates) => {
|
|
|
200
202
|
* @param {string} projectRoot
|
|
201
203
|
* @returns {string[]}
|
|
202
204
|
*/
|
|
203
|
-
const collectSources = (projectRoot) => {
|
|
205
|
+
export const collectSources = (projectRoot) => {
|
|
204
206
|
const files = [];
|
|
205
207
|
const walk = (dir) => {
|
|
206
208
|
let entries;
|
|
@@ -232,6 +234,13 @@ const collectSources = (projectRoot) => {
|
|
|
232
234
|
/**
|
|
233
235
|
* Read the keys of an object literal starting at its opening brace.
|
|
234
236
|
*
|
|
237
|
+
* Only the object's own level is scanned: a comma inside an array, a call or a
|
|
238
|
+
* nested brace belongs to that inner expression, not to the props object.
|
|
239
|
+
* Without the group counter, `children: [slot, line]` was split on its inner
|
|
240
|
+
* commas and every widget variable in the list was reported as a shorthand prop
|
|
241
|
+
* (`Column({ line })` — UNKNOWN_PROP), which is the single most common shape in
|
|
242
|
+
* a FletBox app.
|
|
243
|
+
*
|
|
235
244
|
* @param {string} code Comment/string-free source.
|
|
236
245
|
* @param {number} open Index of `{`.
|
|
237
246
|
* @returns {{ keys: string[], opaque: boolean }} `opaque` when a top-level
|
|
@@ -240,6 +249,7 @@ const collectSources = (projectRoot) => {
|
|
|
240
249
|
const literalKeys = (code, open) => {
|
|
241
250
|
const keys = [];
|
|
242
251
|
let depth = 0;
|
|
252
|
+
let group = 0;
|
|
243
253
|
let current = "";
|
|
244
254
|
let opaque = false;
|
|
245
255
|
const flush = () => {
|
|
@@ -265,7 +275,11 @@ const literalKeys = (code, open) => {
|
|
|
265
275
|
flush();
|
|
266
276
|
return { keys, opaque };
|
|
267
277
|
}
|
|
268
|
-
} else if (
|
|
278
|
+
} else if (ch === "[" || ch === "(") {
|
|
279
|
+
group++;
|
|
280
|
+
} else if (ch === "]" || ch === ")") {
|
|
281
|
+
if (group > 0) group--;
|
|
282
|
+
} else if (depth === 1 && group === 0 && ch === ",") {
|
|
269
283
|
flush();
|
|
270
284
|
continue;
|
|
271
285
|
}
|