@fayz-ai/ui 0.42.0 → 0.43.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 (37) hide show
  1. package/dist/{chunk-47B6ISJ6.js → chunk-3HGLZIQT.js} +140 -344
  2. package/dist/chunk-3HGLZIQT.js.map +1 -0
  3. package/dist/{chunk-W7CIJU5U.js → chunk-4BP33MTZ.js} +4 -4
  4. package/dist/{chunk-W7CIJU5U.js.map → chunk-4BP33MTZ.js.map} +1 -1
  5. package/dist/{chunk-UKMRHO5B.js → chunk-L6PNGGHM.js} +713 -244
  6. package/dist/chunk-L6PNGGHM.js.map +1 -0
  7. package/dist/{chunk-GG5XY6SF.js → chunk-ZMS7TNJD.js} +149 -196
  8. package/dist/chunk-ZMS7TNJD.js.map +1 -0
  9. package/dist/dashboard/index.js +3 -3
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +8 -8
  13. package/dist/layout/AppShell.d.ts +4 -1
  14. package/dist/layout/AppShell.d.ts.map +1 -1
  15. package/dist/layout/index.js +1 -1
  16. package/dist/primitives/bulk-action-bar.d.ts +3 -1
  17. package/dist/primitives/bulk-action-bar.d.ts.map +1 -1
  18. package/dist/primitives/data-table.d.ts +8 -1
  19. package/dist/primitives/data-table.d.ts.map +1 -1
  20. package/dist/primitives/dropdown.d.ts +2 -2
  21. package/dist/primitives/dropdown.d.ts.map +1 -1
  22. package/dist/primitives/index.d.ts +1 -1
  23. package/dist/primitives/index.d.ts.map +1 -1
  24. package/dist/primitives/index.js +3 -3
  25. package/dist/primitives/list-view.d.ts +3 -1
  26. package/dist/primitives/list-view.d.ts.map +1 -1
  27. package/dist/primitives/mobile-scrim.d.ts +29 -0
  28. package/dist/primitives/mobile-scrim.d.ts.map +1 -0
  29. package/dist/primitives/page-actions.d.ts +5 -14
  30. package/dist/primitives/page-actions.d.ts.map +1 -1
  31. package/dist/primitives/use-row-selection.d.ts +2 -0
  32. package/dist/primitives/use-row-selection.d.ts.map +1 -1
  33. package/dist/styles.css +55 -0
  34. package/package.json +2 -2
  35. package/dist/chunk-47B6ISJ6.js.map +0 -1
  36. package/dist/chunk-GG5XY6SF.js.map +0 -1
  37. package/dist/chunk-UKMRHO5B.js.map +0 -1
@@ -129,6 +129,8 @@ export interface ListViewProps<TData> {
129
129
  className?: string;
130
130
  /** Classe por linha — ver DataTable.rowClassName. */
131
131
  rowClassName?: (row: TData) => string | undefined;
132
+ /** Rows on a phone: stacked cards by default; `table` keeps the scrolling grid. */
133
+ mobileLayout?: 'table' | 'cards';
132
134
  }
133
- export declare function ListView<TData>({ columns, data, loading, searchPlaceholder, filtersLabel, advancedFilters, filtersTrigger, activeFilterCount, onClearFilters, clearFiltersLabel, search: controlledSearch, onSearchChange, searchDebounce, searchOwnRow, tags, allTagLabel, tagsLabel, activeTag, onTagChange, newLabel, onNew, onRowClick, bulkActions, getRowId, emptyIcon: EmptyIcon, emptyMessage, emptyActionLabel, onEmptyAction, total, page, pageSize, rangeOfLabel, firstPageLabel, prevPageLabel, nextPageLabel, lastPageLabel, pageLabel, onPageChange, toolbar, filters, filterDefs, headerActions, onExport, exportLabel, onRefresh, refreshLabel, className, rowClassName, actions, }: ListViewProps<TData>): React.JSX.Element;
135
+ export declare function ListView<TData>({ columns, data, loading, searchPlaceholder, filtersLabel, advancedFilters, filtersTrigger, activeFilterCount, onClearFilters, clearFiltersLabel, search: controlledSearch, onSearchChange, searchDebounce, searchOwnRow, tags, allTagLabel, tagsLabel, activeTag, onTagChange, newLabel, onNew, onRowClick, bulkActions, getRowId, emptyIcon: EmptyIcon, emptyMessage, emptyActionLabel, onEmptyAction, total, page, pageSize, rangeOfLabel, firstPageLabel, prevPageLabel, nextPageLabel, lastPageLabel, pageLabel, onPageChange, toolbar, filters, filterDefs, headerActions, onExport, exportLabel, onRefresh, refreshLabel, className, rowClassName, mobileLayout, actions, }: ListViewProps<TData>): React.JSX.Element;
134
136
  //# sourceMappingURL=list-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-view.d.ts","sourceRoot":"","sources":["../../src/primitives/list-view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-view.d.ts","sourceRoot":"","sources":["../../src/primitives/list-view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Keeps the scrim mounted through its fade-OUT.
4
+ *
5
+ * Radix animates its own content out with `data-state=closed`; a plain element
6
+ * of ours has no such state, so unmounting on close would cut the dim instantly
7
+ * while the menu was still leaving. Mounted first, painted transparent, then
8
+ * faded in on the next frame — a transition needs two values to run between.
9
+ */
10
+ export declare function useScrim(open: boolean): {
11
+ mounted: boolean;
12
+ visible: boolean;
13
+ };
14
+ /** Matches `duration-200` on the scrim. */
15
+ export declare const SCRIM_MS = 200;
16
+ /** The phone-only dim behind a menu hanging from the shell's chrome — every
17
+ * dropdown raises it, so a menu is the only thing left to answer. */
18
+ export declare function MobileScrim({ open, onClose, focus }: {
19
+ open: boolean;
20
+ onClose: () => void;
21
+ /**
22
+ * The thing the menu acts on (a row, a card). It stays lit while the rest of
23
+ * the page dims. The dim is drawn AROUND it rather than the element raised
24
+ * above the dim: a row sits inside scrollers and stacking contexts that no
25
+ * z-index gets out of.
26
+ */
27
+ focus?: Element | null;
28
+ }): React.ReactPortal | null;
29
+ //# sourceMappingURL=mobile-scrim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile-scrim.d.ts","sourceRoot":"","sources":["../../src/primitives/mobile-scrim.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAoB9E;AAED,2CAA2C;AAC3C,eAAO,MAAM,QAAQ,MAAM,CAAA;AAE3B;sEACsE;AACtE,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IACpD,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CACvB,4BA6BA"}
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { MobileScrim, SCRIM_MS, useScrim } from './mobile-scrim';
2
3
  export type PageActionIntent = 'primary' | 'secondary' | 'utility' | 'danger';
3
4
  export interface PageActionItem {
4
5
  id: string;
@@ -22,6 +23,9 @@ export interface PageActionItem {
22
23
  description?: string;
23
24
  /** Kept so converting a hand-written button does not silently drop its hook. */
24
25
  testId?: string;
26
+ /** Hands the job to the assistant. Drawn in the assistant's own tint, the
27
+ * same on every screen, so "the AI does this one" is learnt once. */
28
+ ai?: boolean;
25
29
  /**
26
30
  * This action makes a NEW record. It decides the FAB's face: "+" on a screen
27
31
  * you add to, "⋮" on a record you act upon. Not derivable from the icon —
@@ -49,21 +53,8 @@ export declare function PageActionBar({ actions, className }: {
49
53
  actions: PageActionItem[];
50
54
  className?: string;
51
55
  }): React.JSX.Element | null;
52
- /**
53
- * Keeps the scrim mounted through its fade-OUT.
54
- *
55
- * Radix animates its own content out with `data-state=closed`; a plain element
56
- * of ours has no such state, so unmounting on close would cut the dim instantly
57
- * while the menu was still leaving. Mounted first, painted transparent, then
58
- * faded in on the next frame — a transition needs two values to run between.
59
- */
60
- export declare function useScrim(open: boolean): {
61
- mounted: boolean;
62
- visible: boolean;
63
- };
64
- /** Matches `duration-200` on the scrim. */
65
- export declare const SCRIM_MS = 200;
66
56
  /** The FAB's accessible name when it opens a menu. Overridable for locale. */
67
57
  export declare let actionsMenuLabel: string;
68
58
  export declare function setActionsMenuLabel(label: string): void;
59
+ export { MobileScrim, SCRIM_MS, useScrim };
69
60
  //# sourceMappingURL=page-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-actions.d.ts","sourceRoot":"","sources":["../../src/primitives/page-actions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA2B9B,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE7E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAOD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,4BAyHtG;AAmED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAgB9E;AAED,2CAA2C;AAC3C,eAAO,MAAM,QAAQ,MAAM,CAAA;AAqG3B,8EAA8E;AAC9E,eAAO,IAAI,gBAAgB,QAAU,CAAA;AACrC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,QAA8B"}
1
+ {"version":3,"file":"page-actions.d.ts","sourceRoot":"","sources":["../../src/primitives/page-actions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AA0BhE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE7E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;0EACsE;IACtE,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAOD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,4BAyHtG;AAiJD,8EAA8E;AAC9E,eAAO,IAAI,gBAAgB,QAAU,CAAA;AACrC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,QAA8B;AAE/E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA"}
@@ -17,6 +17,8 @@ export interface RowBulkAction<T> {
17
17
  /** Moves the action into the "…" menu instead of the button row. */
18
18
  overflow?: boolean;
19
19
  disabled?: boolean;
20
+ /** Left off a phone: printing and file exports are finished at a desk. */
21
+ desktopOnly?: boolean;
20
22
  }
21
23
  export interface UseRowSelectionOptions<T> {
22
24
  /** The rows currently on screen — what a selection may reach. */
@@ -1 +1 @@
1
- {"version":3,"file":"use-row-selection.d.ts","sourceRoot":"","sources":["../../src/primitives/use-row-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AASnD;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,iEAAiE;IACjE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,CAAA;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC7B;uCACmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,YAAY,EAAE,CAAC,EAAE,CAAA;IACjB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACvC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,iCAAiC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,uEAAuE;IACvE,UAAU,EAAE,UAAU,EAAE,CAAA;IACxB,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAA;IACnB,oEAAoE;IACpE,YAAY,EAAE,OAAO,CAAA;IACrB,wDAAwD;IACxD,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,EACjC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAc,GACf,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAuD7C"}
1
+ {"version":3,"file":"use-row-selection.d.ts","sourceRoot":"","sources":["../../src/primitives/use-row-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AASnD;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,iEAAiE;IACjE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,CAAA;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC7B;uCACmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,YAAY,EAAE,CAAC,EAAE,CAAA;IACjB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACvC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,iCAAiC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,uEAAuE;IACvE,UAAU,EAAE,UAAU,EAAE,CAAA;IACxB,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAA;IACnB,oEAAoE;IACpE,YAAY,EAAE,OAAO,CAAA;IACrB,wDAAwD;IACxD,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,EACjC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAc,GACf,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAwD7C"}
package/dist/styles.css CHANGED
@@ -539,6 +539,10 @@
539
539
  --sidebar-accent-foreground: var(--accent-foreground);
540
540
  --sidebar-border: var(--border);
541
541
  background-color: hsl(var(--background));
542
+ /* Same paper as the page under it: a rule or a shadow would draw a seam
543
+ between two things that are one surface. */
544
+ border-bottom: 0;
545
+ box-shadow: none;
542
546
  }
543
547
 
544
548
  .fayz-glass-topbar::before {
@@ -546,6 +550,57 @@
546
550
  }
547
551
  }
548
552
 
553
+ /* Menus are glass: dropdowns, popovers, the phone's quick settings. Tripled
554
+ on purpose — it has to outrank `.fayz-glass-surface.bg-popover`, which
555
+ paints the same element opaque. */
556
+ .fz-menu-glass.fz-menu-glass.fz-menu-glass {
557
+ background: hsl(var(--popover) / 0.72);
558
+ backdrop-filter: blur(28px) saturate(1.8);
559
+ -webkit-backdrop-filter: blur(28px) saturate(1.8);
560
+ border: 1px solid hsl(var(--border) / 0.5);
561
+ box-shadow: 0 16px 40px -16px rgb(0 0 0 / 0.35), inset 0 1px 0 rgb(255 255 255 / 0.5);
562
+ }
563
+ .dark .fz-menu-glass.fz-menu-glass.fz-menu-glass {
564
+ border-color: rgb(255 255 255 / 0.1);
565
+ box-shadow: 0 16px 40px -16px rgb(0 0 0 / 0.6), inset 0 1px 0 rgb(255 255 255 / 0.1);
566
+ }
567
+
568
+ /* Actions the assistant performs. One tint for all of them, on every brand:
569
+ it marks WHO does the work, so it must not follow the app's primary. */
570
+ :root { --ai: 262 70% 50%; }
571
+ .dark { --ai: 262 85% 76%; }
572
+ .fz-ai-action,
573
+ .fz-ai-action:focus { color: hsl(var(--ai)); }
574
+ .fz-ai-action:focus,
575
+ .fz-ai-action[data-highlighted] { background-color: hsl(var(--ai) / 0.08); }
576
+ .fz-ai-button {
577
+ color: hsl(var(--ai));
578
+ background-color: hsl(var(--ai) / 0.1);
579
+ border: 1px solid hsl(var(--ai) / 0.25);
580
+ }
581
+ .fz-ai-button:hover { background-color: hsl(var(--ai) / 0.16); }
582
+
583
+ /* The phone tab bar: the same glass, tinted with the rail's colour. No
584
+ `position` here — the bar is `fixed`, and the blur stays on a layer for the
585
+ reason given above. */
586
+ .fz-glass-tabbar {
587
+ background-color: transparent;
588
+ border-top: 1px solid hsl(var(--sidebar-border) / 0.5);
589
+ box-shadow: 0 -10px 30px -14px rgb(0 0 0 / 0.3), inset 0 1px 0 rgb(255 255 255 / 0.12);
590
+ }
591
+
592
+ .fz-glass-tabbar::before {
593
+ content: '';
594
+ position: absolute;
595
+ inset: 0;
596
+ z-index: -1;
597
+ border-radius: inherit;
598
+ pointer-events: none;
599
+ backdrop-filter: blur(28px) saturate(1.8);
600
+ -webkit-backdrop-filter: blur(28px) saturate(1.8);
601
+ background-color: hsl(var(--sidebar) / 0.9);
602
+ }
603
+
549
604
  /* On ink the lit edge IS the border — a theme hairline vanishes into it. */
550
605
  .dark .fayz-glass-bar,
551
606
  .dark .fayz-glass-sheet,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "fayz": {
4
4
  "status": "beta"
5
5
  },
6
- "version": "0.42.0",
6
+ "version": "0.43.0",
7
7
  "description": "Fayz SDK UI — Radix + Tailwind component library with CRUD engine and layout shells",
8
8
  "type": "module",
9
9
  "sideEffects": [
@@ -80,7 +80,7 @@
80
80
  "exceljs": "^4.4.0",
81
81
  "recharts": "^2.15.0",
82
82
  "tailwind-merge": "^2.4.0",
83
- "@fayz-ai/core": "^0.40.0"
83
+ "@fayz-ai/core": "^0.43.0"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@types/react": "^18.3.0",