fiboui 2.9.1 → 2.9.5

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.
@@ -472,6 +472,30 @@ type EdgeInsetsValue = {
472
472
  /** CSS right — alias of trailing in LTR */
473
473
  right?: number | string;
474
474
  };
475
+ declare const Material: {
476
+ readonly ultraThin: {
477
+ readonly blur: 20;
478
+ readonly background: "rgba(255, 255, 255, 0.35)";
479
+ };
480
+ readonly thin: {
481
+ readonly blur: 28;
482
+ readonly background: "rgba(255, 255, 255, 0.48)";
483
+ };
484
+ readonly regular: {
485
+ readonly blur: 36;
486
+ readonly background: "rgba(255, 255, 255, 0.62)";
487
+ };
488
+ readonly thick: {
489
+ readonly blur: 48;
490
+ readonly background: "rgba(255, 255, 255, 0.78)";
491
+ };
492
+ readonly ultraThick: {
493
+ readonly blur: 60;
494
+ readonly background: "rgba(255, 255, 255, 0.88)";
495
+ };
496
+ };
497
+ type MaterialKind = keyof typeof Material;
498
+ type MaterialSpec = (typeof Material)[MaterialKind];
475
499
  type SafeAreaInsetEdge = Edge | "top" | "bottom" | "leading" | "trailing" | "left" | "right";
476
500
  type SafeAreaInsetSpec = {
477
501
  edge: SafeAreaInsetEdge;
@@ -976,6 +1000,16 @@ declare abstract class FiboBuilder {
976
1000
  text(color: string | Colors): this;
977
1001
  color(value: string | Colors): this;
978
1002
  private resolveSemanticColor;
1003
+ /**
1004
+ * Backdrop blur (glass). Prefer over raw `.backdropFilter('blur(…)')`.
1005
+ * `20` → `blur(20px)`; also accepts `'20px'` or a full `blur(…)` string.
1006
+ */
1007
+ backdropBlur(radius?: number | string): this;
1008
+ /**
1009
+ * SwiftUI `Material` glass fill — blur + translucent background.
1010
+ * `Box().material(Material.ultraThin)` or `.material('regular')`.
1011
+ */
1012
+ material(kind: MaterialKind | MaterialSpec): this;
979
1013
  shadow(config?: ShadowConfig): this;
980
1014
  /**
981
1015
  * Breakpoint styles compiled to CSS `@media` (same engine as `.md()`).
@@ -1,5 +1,5 @@
1
- import { B as e } from "./index-I-MXiId0.js";
2
- import { aA as r, aE as t, am as m, aB as x, aD as i, az as l, al as n, aC as u, ar as p, ay as h, an as T, ax as b, au as c, aq as d, at as f, ap as g, as as q, ao as B, av as C, aw as w } from "./client-3NdKI2xE.js";
1
+ import { B as e } from "./index-BJnYb_kw.js";
2
+ import { aA as r, aE as t, am as m, aB as x, aD as i, az as l, al as n, aC as u, ar as p, ay as h, an as T, ax as b, au as c, aq as d, at as f, ap as g, as as q, ao as B, av as C, aw as w } from "./client-Cc87LXic.js";
3
3
  export {
4
4
  e as Button,
5
5
  r as Checkbox,
package/dist/layout.d.ts CHANGED
@@ -474,6 +474,30 @@ type EdgeInsetsValue = {
474
474
  /** CSS right — alias of trailing in LTR */
475
475
  right?: number | string;
476
476
  };
477
+ declare const Material: {
478
+ readonly ultraThin: {
479
+ readonly blur: 20;
480
+ readonly background: "rgba(255, 255, 255, 0.35)";
481
+ };
482
+ readonly thin: {
483
+ readonly blur: 28;
484
+ readonly background: "rgba(255, 255, 255, 0.48)";
485
+ };
486
+ readonly regular: {
487
+ readonly blur: 36;
488
+ readonly background: "rgba(255, 255, 255, 0.62)";
489
+ };
490
+ readonly thick: {
491
+ readonly blur: 48;
492
+ readonly background: "rgba(255, 255, 255, 0.78)";
493
+ };
494
+ readonly ultraThick: {
495
+ readonly blur: 60;
496
+ readonly background: "rgba(255, 255, 255, 0.88)";
497
+ };
498
+ };
499
+ type MaterialKind = keyof typeof Material;
500
+ type MaterialSpec = (typeof Material)[MaterialKind];
477
501
  type SafeAreaInsetEdge = Edge | "top" | "bottom" | "leading" | "trailing" | "left" | "right";
478
502
  type SafeAreaInsetSpec = {
479
503
  edge: SafeAreaInsetEdge;
@@ -978,6 +1002,16 @@ declare abstract class FiboBuilder {
978
1002
  text(color: string | Colors): this;
979
1003
  color(value: string | Colors): this;
980
1004
  private resolveSemanticColor;
1005
+ /**
1006
+ * Backdrop blur (glass). Prefer over raw `.backdropFilter('blur(…)')`.
1007
+ * `20` → `blur(20px)`; also accepts `'20px'` or a full `blur(…)` string.
1008
+ */
1009
+ backdropBlur(radius?: number | string): this;
1010
+ /**
1011
+ * SwiftUI `Material` glass fill — blur + translucent background.
1012
+ * `Box().material(Material.ultraThin)` or `.material('regular')`.
1013
+ */
1014
+ material(kind: MaterialKind | MaterialSpec): this;
981
1015
  shadow(config?: ShadowConfig): this;
982
1016
  /**
983
1017
  * Breakpoint styles compiled to CSS `@media` (same engine as `.md()`).
@@ -1310,6 +1344,11 @@ declare class ColumnBuilder extends FiboBuilder {
1310
1344
  alignY(alignment: AlignAxis): this;
1311
1345
  spacing(value: string | number): this;
1312
1346
  size(size: "small" | "medium" | "large"): this;
1347
+ /**
1348
+ * Sugar for `.children(ForEach(data).renderItem(fn))`.
1349
+ * Prefer `ForEach` when you need `.keyBy()`.
1350
+ */
1351
+ forEach<T>(items: T[] | readonly T[], renderItem: (item: T, index: number) => unknown): this;
1313
1352
  build(): React$1.ReactElement;
1314
1353
  }
1315
1354
  export declare const Column: () => StyleBuilder<ColumnBuilder>;
@@ -1342,6 +1381,11 @@ declare class RowBuilder extends FiboBuilder {
1342
1381
  alignY(alignment: AlignAxis): this;
1343
1382
  spacing(value: string | number): this;
1344
1383
  items(children: React$1.ReactElement[]): this;
1384
+ /**
1385
+ * Sugar for `.children(ForEach(data).renderItem(fn))`.
1386
+ * Prefer `ForEach` when you need `.keyBy()`.
1387
+ */
1388
+ forEach<T>(items: T[] | readonly T[], renderItem: (item: T, index: number) => unknown): this;
1345
1389
  build(): React$1.ReactElement;
1346
1390
  }
1347
1391
  export declare const Row: () => StyleBuilder<RowBuilder>;
@@ -1370,6 +1414,13 @@ interface ScaffoldStructure {
1370
1414
  height?: string | number;
1371
1415
  visible?: boolean;
1372
1416
  };
1417
+ /** Flutter `Scaffold.bottomNavigationBar` chrome metrics. */
1418
+ bottomAppBar?: {
1419
+ position?: "static" | "sticky" | "fixed";
1420
+ height?: string | number;
1421
+ visible?: boolean;
1422
+ };
1423
+ /** @deprecated Use `bottomAppBar`. */
1373
1424
  footer?: {
1374
1425
  position?: "static" | "sticky" | "fixed";
1375
1426
  height?: string | number;
@@ -1395,7 +1446,7 @@ declare class ScaffoldBuilder extends FiboBuilder {
1395
1446
  private _customProviders;
1396
1447
  private _structure;
1397
1448
  private _headerBar?;
1398
- private _footerBar?;
1449
+ private _bottomAppBar?;
1399
1450
  private _sideBarLeft?;
1400
1451
  private _sideBarRight?;
1401
1452
  private _drawer?;
@@ -1424,7 +1475,13 @@ declare class ScaffoldBuilder extends FiboBuilder {
1424
1475
  * set, this is a no-op (explicit chrome wins).
1425
1476
  */
1426
1477
  navigationTitle(title: string | FiboChild): this;
1427
- footerBar(config: FiboChild | LayoutBarConfig): this;
1478
+ /**
1479
+ * Flutter `Scaffold.bottomNavigationBar` — typically a {@link BottomAppBar}
1480
+ * (same three zones as `AppBar`) or a `TabView` / `BottomBar` strip.
1481
+ */
1482
+ bottomAppBar(config: FiboChild | LayoutBarConfig): this;
1483
+ /** Flutter alias of `.bottomAppBar()`. */
1484
+ bottomNavigationBar(config: FiboChild | LayoutBarConfig): this;
1428
1485
  sideBarLeft(config: FiboChild | LayoutBarConfig): this;
1429
1486
  sideBarRight(config: FiboChild | LayoutBarConfig): this;
1430
1487
  /** Flutter drawer. Starts closed. Open it with `useScaffold().openDrawer()`. */
package/dist/layout.js CHANGED
@@ -1,6 +1,6 @@
1
- import { C as e, a as o, L as s, b as l, S as t, Z as i } from "./index-FuD1J3Qo.js";
2
- import { C as d, S as c } from "./index-BLEG6Nql.js";
3
- import { ad as u, ai as C, ab as f, ah as m, a9 as b, aa as p, ae as w, ac as L, af as R, ag as V } from "./client-3NdKI2xE.js";
1
+ import { C as e, a as o, L as s, b as l, S as t, Z as i } from "./index-T8F37_p4.js";
2
+ import { C as d, S as c } from "./index-C-hvMzQd.js";
3
+ import { ad as u, ai as C, ab as f, ah as m, a9 as b, aa as p, ae as w, ac as L, af as R, ag as V } from "./client-Cc87LXic.js";
4
4
  export {
5
5
  e as Center,
6
6
  d as Column,
@@ -1,5 +1,5 @@
1
1
  import { jsx as c } from "react/jsx-runtime";
2
- import { be as v, bc as w, bf as x, bg as O, bh as R, bi as P, bj as E, bk as g, bl as $, bm as D, bn as z, aO as A, aP as K } from "./client-3NdKI2xE.js";
2
+ import { bf as v, bd as w, bg as x, bh as O, bi as R, bj as P, bk as E, bl as g, bm as $, bn as D, bo as z, aO as A, aP as K } from "./client-Cc87LXic.js";
3
3
  import { useState as M, useMemo as N, lazy as S, Suspense as j } from "react";
4
4
  function b(e) {
5
5
  const t = (typeof e == "string" ? e.trim() : "").split(/[?#]/, 1)[0];
@@ -1,5 +1,5 @@
1
- import { aP as s, aO as u, aI as o, aM as t, aK as r, aL as l, aN as L, aJ as R } from "./client-3NdKI2xE.js";
2
- import { L as i, N as p, O as N, l as m, p as n, u as O } from "./metadata-B2MRlDTz.js";
1
+ import { aP as s, aO as u, aI as o, aM as t, aK as r, aL as l, aN as L, aJ as R } from "./client-Cc87LXic.js";
2
+ import { L as i, N as p, O as N, l as m, p as n, u as O } from "./metadata-BffL-8b9.js";
3
3
  export {
4
4
  s as DefaultErrorPage,
5
5
  u as DefaultLoader,
@@ -1,4 +1,4 @@
1
- import { bo as z, N as B, S as k, bp as V, bq as O, _ as I, br as W, bs as _, bt as G } from "./client-3NdKI2xE.js";
1
+ import { bp as z, N as B, S as k, bq as V, br as O, _ as I, bs as W, bt as _, bu as G } from "./client-Cc87LXic.js";
2
2
  import p, { useSyncExternalStore as H } from "react";
3
3
  function J(t) {
4
4
  return typeof t == "number" ? t : t != null && typeof t == "object" && "value" in t ? Number(t.value) : Number(t);
package/dist/server.d.ts CHANGED
@@ -511,6 +511,30 @@ type EdgeInsetsValue = {
511
511
  /** CSS right — alias of trailing in LTR */
512
512
  right?: number | string;
513
513
  };
514
+ declare const Material: {
515
+ readonly ultraThin: {
516
+ readonly blur: 20;
517
+ readonly background: "rgba(255, 255, 255, 0.35)";
518
+ };
519
+ readonly thin: {
520
+ readonly blur: 28;
521
+ readonly background: "rgba(255, 255, 255, 0.48)";
522
+ };
523
+ readonly regular: {
524
+ readonly blur: 36;
525
+ readonly background: "rgba(255, 255, 255, 0.62)";
526
+ };
527
+ readonly thick: {
528
+ readonly blur: 48;
529
+ readonly background: "rgba(255, 255, 255, 0.78)";
530
+ };
531
+ readonly ultraThick: {
532
+ readonly blur: 60;
533
+ readonly background: "rgba(255, 255, 255, 0.88)";
534
+ };
535
+ };
536
+ type MaterialKind = keyof typeof Material;
537
+ type MaterialSpec = (typeof Material)[MaterialKind];
514
538
  type SafeAreaInsetEdge = Edge | "top" | "bottom" | "leading" | "trailing" | "left" | "right";
515
539
  type SafeAreaInsetSpec = {
516
540
  edge: SafeAreaInsetEdge;
@@ -1015,6 +1039,16 @@ declare abstract class FiboBuilder {
1015
1039
  text(color: string | Colors): this;
1016
1040
  color(value: string | Colors): this;
1017
1041
  private resolveSemanticColor;
1042
+ /**
1043
+ * Backdrop blur (glass). Prefer over raw `.backdropFilter('blur(…)')`.
1044
+ * `20` → `blur(20px)`; also accepts `'20px'` or a full `blur(…)` string.
1045
+ */
1046
+ backdropBlur(radius?: number | string): this;
1047
+ /**
1048
+ * SwiftUI `Material` glass fill — blur + translucent background.
1049
+ * `Box().material(Material.ultraThin)` or `.material('regular')`.
1050
+ */
1051
+ material(kind: MaterialKind | MaterialSpec): this;
1018
1052
  shadow(config?: ShadowConfig): this;
1019
1053
  /**
1020
1054
  * Breakpoint styles compiled to CSS `@media` (same engine as `.md()`).
@@ -1347,6 +1381,11 @@ declare class ColumnBuilder extends FiboBuilder {
1347
1381
  alignY(alignment: AlignAxis): this;
1348
1382
  spacing(value: string | number): this;
1349
1383
  size(size: "small" | "medium" | "large"): this;
1384
+ /**
1385
+ * Sugar for `.children(ForEach(data).renderItem(fn))`.
1386
+ * Prefer `ForEach` when you need `.keyBy()`.
1387
+ */
1388
+ forEach<T>(items: T[] | readonly T[], renderItem: (item: T, index: number) => unknown): this;
1350
1389
  build(): React$1.ReactElement;
1351
1390
  }
1352
1391
  export declare const Column: () => StyleBuilder<ColumnBuilder>;
@@ -1379,6 +1418,11 @@ declare class RowBuilder extends FiboBuilder {
1379
1418
  alignY(alignment: AlignAxis): this;
1380
1419
  spacing(value: string | number): this;
1381
1420
  items(children: React$1.ReactElement[]): this;
1421
+ /**
1422
+ * Sugar for `.children(ForEach(data).renderItem(fn))`.
1423
+ * Prefer `ForEach` when you need `.keyBy()`.
1424
+ */
1425
+ forEach<T>(items: T[] | readonly T[], renderItem: (item: T, index: number) => unknown): this;
1382
1426
  build(): React$1.ReactElement;
1383
1427
  }
1384
1428
  export declare const Row: () => StyleBuilder<RowBuilder>;
@@ -1428,6 +1472,13 @@ interface ScaffoldStructure {
1428
1472
  height?: string | number;
1429
1473
  visible?: boolean;
1430
1474
  };
1475
+ /** Flutter `Scaffold.bottomNavigationBar` chrome metrics. */
1476
+ bottomAppBar?: {
1477
+ position?: "static" | "sticky" | "fixed";
1478
+ height?: string | number;
1479
+ visible?: boolean;
1480
+ };
1481
+ /** @deprecated Use `bottomAppBar`. */
1431
1482
  footer?: {
1432
1483
  position?: "static" | "sticky" | "fixed";
1433
1484
  height?: string | number;
@@ -1453,7 +1504,7 @@ declare class ScaffoldBuilder extends FiboBuilder {
1453
1504
  private _customProviders;
1454
1505
  private _structure;
1455
1506
  private _headerBar?;
1456
- private _footerBar?;
1507
+ private _bottomAppBar?;
1457
1508
  private _sideBarLeft?;
1458
1509
  private _sideBarRight?;
1459
1510
  private _drawer?;
@@ -1482,7 +1533,13 @@ declare class ScaffoldBuilder extends FiboBuilder {
1482
1533
  * set, this is a no-op (explicit chrome wins).
1483
1534
  */
1484
1535
  navigationTitle(title: string | FiboChild): this;
1485
- footerBar(config: FiboChild | LayoutBarConfig): this;
1536
+ /**
1537
+ * Flutter `Scaffold.bottomNavigationBar` — typically a {@link BottomAppBar}
1538
+ * (same three zones as `AppBar`) or a `TabView` / `BottomBar` strip.
1539
+ */
1540
+ bottomAppBar(config: FiboChild | LayoutBarConfig): this;
1541
+ /** Flutter alias of `.bottomAppBar()`. */
1542
+ bottomNavigationBar(config: FiboChild | LayoutBarConfig): this;
1486
1543
  sideBarLeft(config: FiboChild | LayoutBarConfig): this;
1487
1544
  sideBarRight(config: FiboChild | LayoutBarConfig): this;
1488
1545
  /** Flutter drawer. Starts closed. Open it with `useScaffold().openDrawer()`. */