@fayz-ai/admin 0.30.3 → 0.31.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.
@@ -10,6 +10,8 @@ export { UnitPickerDialog } from './UnitPickerDialog';
10
10
  export { useUnitPickerStore, openUnitPicker } from './picker.store';
11
11
  export { UnitMenuSection, UnitIndicator } from './UnitMenuSection';
12
12
  export { useUnitBootstrap } from './useUnitBootstrap';
13
+ export { useUnitFilter } from './useUnitFilter';
14
+ export type { UnitFilter, UnitFilterOption } from './useUnitFilter';
13
15
  export { UnitsSettingsPage } from './UnitsSettingsPage';
14
16
  export { UnitModeCard } from './UnitModeCard';
15
17
  export { MemberAccessRailPage, useMemberAccessPanel } from './MemberAccessRailPage';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/units/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EACL,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAC/D,cAAc,EAAE,kBAAkB,EAClC,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EACvE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAC/D,kBAAkB,EAAE,aAAa,GAClC,MAAM,QAAQ,CAAA;AACf,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/units/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EACL,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAC/D,cAAc,EAAE,kBAAkB,EAClC,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EACvE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAC/D,kBAAkB,EAAE,aAAa,GAClC,MAAM,QAAQ,CAAA;AACf,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,46 @@
1
+ import type { ListFilterDef } from '@fayz-ai/ui';
2
+ import type { Unit } from './data';
3
+ export interface UnitFilterOption {
4
+ id: string;
5
+ name: string;
6
+ }
7
+ export interface UnitFilter {
8
+ /** False when the tenant has no unit mode, or the person reaches one unit or
9
+ * none: a filter with a single option is a control that lies. */
10
+ visible: boolean;
11
+ /** `undefined` = every unit the person reaches (never the whole tenant: the
12
+ * database fences the rest). */
13
+ value: string | undefined;
14
+ setValue: (unitId: string | undefined) => void;
15
+ options: UnitFilterOption[];
16
+ label: string;
17
+ allLabel: string;
18
+ /** Ready for `ListFilterBar.filters`; null when not `visible`. */
19
+ def: ListFilterDef | null;
20
+ }
21
+ /** The units a person may pick: the ones they reach, branches only (a region
22
+ * is a grouping, not somewhere rows live), active, by name. Same fallback as
23
+ * the switcher when the pool predates per-person reach. */
24
+ export declare function unitFilterOptions(units: Unit[], myUnitIds: string[]): UnitFilterOption[];
25
+ /** A unit the person no longer reaches falls back to "all of mine" rather
26
+ * than an empty list that reads as missing data. */
27
+ export declare function standableUnit(raw: string | undefined, options: UnitFilterOption[]): string | undefined;
28
+ export declare function unitFilterVisible(unitMode: boolean, options: UnitFilterOption[]): boolean;
29
+ /**
30
+ * The "Unidade" filter every list shows under unit mode.
31
+ *
32
+ * - `scope: 'list'` (default) — the V1 behaviour: the list starts on the unit
33
+ * the person is standing in, can be pointed at another reachable unit or at
34
+ * all of them, and snaps back when the active unit changes. The caller
35
+ * narrows its own query with `value`.
36
+ * - `scope: 'global'` — for lists whose provider already narrows by the active
37
+ * unit (the generic CRUD): picking here switches the active unit itself.
38
+ *
39
+ * Options are only the units the person reaches. This narrows, it never
40
+ * grants: RLS decides what is readable, so a stale or forged value can hide
41
+ * rows, never reveal one.
42
+ */
43
+ export declare function useUnitFilter(options?: {
44
+ scope?: 'list' | 'global';
45
+ }): UnitFilter;
46
+ //# sourceMappingURL=useUnitFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUnitFilter.d.ts","sourceRoot":"","sources":["../../src/units/useUnitFilter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAKlC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB;sEACkE;IAClE,OAAO,EAAE,OAAO,CAAA;IAChB;qCACiC;IACjC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC9C,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,GAAG,EAAE,aAAa,GAAG,IAAI,CAAA;CAC1B;AAOD;;4DAE4D;AAC5D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAQxF;AAED;qDACqD;AACrD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,GAAG,SAAS,CAEtG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAEzF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAO,GAAG,UAAU,CA+CrF"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "fayz": {
4
4
  "status": "beta"
5
5
  },
6
- "version": "0.30.3",
6
+ "version": "0.31.0",
7
7
  "description": "Fayz SDK admin layer — the admin shell, CRUD engine, multi-tenancy, billing, permissions and org management",
8
8
  "type": "module",
9
9
  "sideEffects": [
@@ -59,12 +59,12 @@
59
59
  "@radix-ui/react-dialog": "^1.1.0",
60
60
  "@tanstack/react-table": "^8.20.0",
61
61
  "cmdk": "^1.0.0",
62
- "@fayz-ai/auth": "^0.30.0",
63
- "@fayz-ai/core": "^0.30.3",
62
+ "@fayz-ai/auth": "^0.31.0",
63
+ "@fayz-ai/core": "^0.31.0",
64
64
  "@fayz-ai/db": "^0.18.2",
65
- "@fayz-ai/plugin-auth": "^0.12.10",
65
+ "@fayz-ai/plugin-auth": "^0.12.11",
66
66
  "@fayz-ai/sdk": "^0.30.1",
67
- "@fayz-ai/ui": "^0.30.3"
67
+ "@fayz-ai/ui": "^0.31.0"
68
68
  },
69
69
  "devDependencies": {
70
70
  "@supabase/supabase-js": "^2.45.0",