@elevasis/ui 2.76.0 → 2.77.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.
@@ -1,10 +1,9 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
 
4
- declare const workOsOrgIdBrand: unique symbol;
5
4
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
6
5
  type WorkOsOrgId = string & {
7
- readonly [workOsOrgIdBrand]: true;
6
+ readonly __orgIdBrand: 'workos';
8
7
  };
9
8
 
10
9
  interface AuthContextValue {
@@ -3,10 +3,9 @@ import { ReactNode } from 'react';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { z } from 'zod';
5
5
 
6
- declare const workOsOrgIdBrand: unique symbol;
7
6
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
8
7
  type WorkOsOrgId = string & {
9
- readonly [workOsOrgIdBrand]: true;
8
+ readonly __orgIdBrand: 'workos';
10
9
  };
11
10
 
12
11
  declare const AccessKeyInputSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
@@ -3759,10 +3759,9 @@ type Database = {
3759
3759
  };
3760
3760
  };
3761
3761
 
3762
- declare const workOsOrgIdBrand: unique symbol;
3763
3762
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
3764
3763
  type WorkOsOrgId = string & {
3765
- readonly [workOsOrgIdBrand]: true;
3764
+ readonly __orgIdBrand: 'workos';
3766
3765
  };
3767
3766
 
3768
3767
  /** One state within a stage: minimal shape of key + display label. */
@@ -3783,15 +3783,31 @@ type Database = {
3783
3783
  * Lives on the published `@repo/core` / `@repo/core/auth` surface so the UI,
3784
3784
  * the API, and the dogfooding `@repo/elevasis-*` packages can all use it.
3785
3785
  */
3786
- declare const supabaseOrgIdBrand: unique symbol;
3787
- declare const workOsOrgIdBrand: unique symbol;
3786
+ /**
3787
+ * The brands are keyed on a string literal, NOT on a `declare const ...: unique symbol`.
3788
+ *
3789
+ * A `unique symbol` is nominal per declaration site. `@repo/ui`'s rollup-dts pipeline
3790
+ * inlines `@repo/core` types into every published subpath bundle (that inlining is what
3791
+ * `/sdk release-ui` Step 4a enforces), so a symbol-keyed brand is re-declared once per
3792
+ * bundle and TypeScript treats each copy as a different type. In the monorepo every
3793
+ * import resolves to this one file and it all works; for an external consumer, a value
3794
+ * from `@elevasis/ui/organization` passed into a component from
3795
+ * `@elevasis/ui/features/settings` fails with TS2719 "Two different types with this name
3796
+ * exist, but they are unrelated." Measured 2026-08-27 against `@elevasis/ui@2.76.0`,
3797
+ * where seven separate `supabaseOrgIdBrand` symbols shipped across six ui subpaths and
3798
+ * `@elevasis/core/auth`.
3799
+ *
3800
+ * A literal-keyed brand is structural, so every inlined copy is the same type. It still
3801
+ * refuses a bare `string` and still keeps the two ids mutually non-assignable, which is
3802
+ * the entire job. Do not "restore" the symbol form.
3803
+ */
3788
3804
  /** A Supabase organization id (UUID) -- the database key for RLS-scoped rows. */
3789
3805
  type SupabaseOrgId = string & {
3790
- readonly [supabaseOrgIdBrand]: true;
3806
+ readonly __orgIdBrand: 'supabase';
3791
3807
  };
3792
3808
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
3793
3809
  type WorkOsOrgId = string & {
3794
- readonly [workOsOrgIdBrand]: true;
3810
+ readonly __orgIdBrand: 'workos';
3795
3811
  };
3796
3812
 
3797
3813
  declare const RecordColumnConfigSchema: z$1.ZodObject<{
@@ -3741,10 +3741,27 @@ type Database = {
3741
3741
  * Lives on the published `@repo/core` / `@repo/core/auth` surface so the UI,
3742
3742
  * the API, and the dogfooding `@repo/elevasis-*` packages can all use it.
3743
3743
  */
3744
- declare const supabaseOrgIdBrand: unique symbol;
3744
+ /**
3745
+ * The brands are keyed on a string literal, NOT on a `declare const ...: unique symbol`.
3746
+ *
3747
+ * A `unique symbol` is nominal per declaration site. `@repo/ui`'s rollup-dts pipeline
3748
+ * inlines `@repo/core` types into every published subpath bundle (that inlining is what
3749
+ * `/sdk release-ui` Step 4a enforces), so a symbol-keyed brand is re-declared once per
3750
+ * bundle and TypeScript treats each copy as a different type. In the monorepo every
3751
+ * import resolves to this one file and it all works; for an external consumer, a value
3752
+ * from `@elevasis/ui/organization` passed into a component from
3753
+ * `@elevasis/ui/features/settings` fails with TS2719 "Two different types with this name
3754
+ * exist, but they are unrelated." Measured 2026-08-27 against `@elevasis/ui@2.76.0`,
3755
+ * where seven separate `supabaseOrgIdBrand` symbols shipped across six ui subpaths and
3756
+ * `@elevasis/core/auth`.
3757
+ *
3758
+ * A literal-keyed brand is structural, so every inlined copy is the same type. It still
3759
+ * refuses a bare `string` and still keeps the two ids mutually non-assignable, which is
3760
+ * the entire job. Do not "restore" the symbol form.
3761
+ */
3745
3762
  /** A Supabase organization id (UUID) -- the database key for RLS-scoped rows. */
3746
3763
  type SupabaseOrgId = string & {
3747
- readonly [supabaseOrgIdBrand]: true;
3764
+ readonly __orgIdBrand: 'supabase';
3748
3765
  };
3749
3766
 
3750
3767
  type SystemSidebarComponent = ComponentType;
@@ -65,10 +65,27 @@ type SupabaseUserProfile = {
65
65
  * Lives on the published `@repo/core` / `@repo/core/auth` surface so the UI,
66
66
  * the API, and the dogfooding `@repo/elevasis-*` packages can all use it.
67
67
  */
68
- declare const supabaseOrgIdBrand: unique symbol;
68
+ /**
69
+ * The brands are keyed on a string literal, NOT on a `declare const ...: unique symbol`.
70
+ *
71
+ * A `unique symbol` is nominal per declaration site. `@repo/ui`'s rollup-dts pipeline
72
+ * inlines `@repo/core` types into every published subpath bundle (that inlining is what
73
+ * `/sdk release-ui` Step 4a enforces), so a symbol-keyed brand is re-declared once per
74
+ * bundle and TypeScript treats each copy as a different type. In the monorepo every
75
+ * import resolves to this one file and it all works; for an external consumer, a value
76
+ * from `@elevasis/ui/organization` passed into a component from
77
+ * `@elevasis/ui/features/settings` fails with TS2719 "Two different types with this name
78
+ * exist, but they are unrelated." Measured 2026-08-27 against `@elevasis/ui@2.76.0`,
79
+ * where seven separate `supabaseOrgIdBrand` symbols shipped across six ui subpaths and
80
+ * `@elevasis/core/auth`.
81
+ *
82
+ * A literal-keyed brand is structural, so every inlined copy is the same type. It still
83
+ * refuses a bare `string` and still keeps the two ids mutually non-assignable, which is
84
+ * the entire job. Do not "restore" the symbol form.
85
+ */
69
86
  /** A Supabase organization id (UUID) -- the database key for RLS-scoped rows. */
70
87
  type SupabaseOrgId = string & {
71
- readonly [supabaseOrgIdBrand]: true;
88
+ readonly __orgIdBrand: 'supabase';
72
89
  };
73
90
 
74
91
  /**
@@ -3709,10 +3709,9 @@ type Database = {
3709
3709
  };
3710
3710
  };
3711
3711
 
3712
- declare const workOsOrgIdBrand: unique symbol;
3713
3712
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
3714
3713
  type WorkOsOrgId = string & {
3715
- readonly [workOsOrgIdBrand]: true;
3714
+ readonly __orgIdBrand: 'workos';
3716
3715
  };
3717
3716
 
3718
3717
  type ProjectRow = Database['public']['Tables']['prj_projects']['Row'];
@@ -28,15 +28,31 @@ import * as zustand from 'zustand';
28
28
  * Lives on the published `@repo/core` / `@repo/core/auth` surface so the UI,
29
29
  * the API, and the dogfooding `@repo/elevasis-*` packages can all use it.
30
30
  */
31
- declare const supabaseOrgIdBrand: unique symbol;
32
- declare const workOsOrgIdBrand: unique symbol;
31
+ /**
32
+ * The brands are keyed on a string literal, NOT on a `declare const ...: unique symbol`.
33
+ *
34
+ * A `unique symbol` is nominal per declaration site. `@repo/ui`'s rollup-dts pipeline
35
+ * inlines `@repo/core` types into every published subpath bundle (that inlining is what
36
+ * `/sdk release-ui` Step 4a enforces), so a symbol-keyed brand is re-declared once per
37
+ * bundle and TypeScript treats each copy as a different type. In the monorepo every
38
+ * import resolves to this one file and it all works; for an external consumer, a value
39
+ * from `@elevasis/ui/organization` passed into a component from
40
+ * `@elevasis/ui/features/settings` fails with TS2719 "Two different types with this name
41
+ * exist, but they are unrelated." Measured 2026-08-27 against `@elevasis/ui@2.76.0`,
42
+ * where seven separate `supabaseOrgIdBrand` symbols shipped across six ui subpaths and
43
+ * `@elevasis/core/auth`.
44
+ *
45
+ * A literal-keyed brand is structural, so every inlined copy is the same type. It still
46
+ * refuses a bare `string` and still keeps the two ids mutually non-assignable, which is
47
+ * the entire job. Do not "restore" the symbol form.
48
+ */
33
49
  /** A Supabase organization id (UUID) -- the database key for RLS-scoped rows. */
34
50
  type SupabaseOrgId = string & {
35
- readonly [supabaseOrgIdBrand]: true;
51
+ readonly __orgIdBrand: 'supabase';
36
52
  };
37
53
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
38
54
  type WorkOsOrgId = string & {
39
- readonly [workOsOrgIdBrand]: true;
55
+ readonly __orgIdBrand: 'workos';
40
56
  };
41
57
 
42
58
  /**
@@ -26,15 +26,31 @@ import { UseBoundStore, StoreApi } from 'zustand';
26
26
  * Lives on the published `@repo/core` / `@repo/core/auth` surface so the UI,
27
27
  * the API, and the dogfooding `@repo/elevasis-*` packages can all use it.
28
28
  */
29
- declare const supabaseOrgIdBrand: unique symbol;
30
- declare const workOsOrgIdBrand: unique symbol;
29
+ /**
30
+ * The brands are keyed on a string literal, NOT on a `declare const ...: unique symbol`.
31
+ *
32
+ * A `unique symbol` is nominal per declaration site. `@repo/ui`'s rollup-dts pipeline
33
+ * inlines `@repo/core` types into every published subpath bundle (that inlining is what
34
+ * `/sdk release-ui` Step 4a enforces), so a symbol-keyed brand is re-declared once per
35
+ * bundle and TypeScript treats each copy as a different type. In the monorepo every
36
+ * import resolves to this one file and it all works; for an external consumer, a value
37
+ * from `@elevasis/ui/organization` passed into a component from
38
+ * `@elevasis/ui/features/settings` fails with TS2719 "Two different types with this name
39
+ * exist, but they are unrelated." Measured 2026-08-27 against `@elevasis/ui@2.76.0`,
40
+ * where seven separate `supabaseOrgIdBrand` symbols shipped across six ui subpaths and
41
+ * `@elevasis/core/auth`.
42
+ *
43
+ * A literal-keyed brand is structural, so every inlined copy is the same type. It still
44
+ * refuses a bare `string` and still keeps the two ids mutually non-assignable, which is
45
+ * the entire job. Do not "restore" the symbol form.
46
+ */
31
47
  /** A Supabase organization id (UUID) -- the database key for RLS-scoped rows. */
32
48
  type SupabaseOrgId = string & {
33
- readonly [supabaseOrgIdBrand]: true;
49
+ readonly __orgIdBrand: 'supabase';
34
50
  };
35
51
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
36
52
  type WorkOsOrgId = string & {
37
- readonly [workOsOrgIdBrand]: true;
53
+ readonly __orgIdBrand: 'workos';
38
54
  };
39
55
 
40
56
  /**
@@ -65,10 +65,27 @@ type SupabaseUserProfile = {
65
65
  * Lives on the published `@repo/core` / `@repo/core/auth` surface so the UI,
66
66
  * the API, and the dogfooding `@repo/elevasis-*` packages can all use it.
67
67
  */
68
- declare const supabaseOrgIdBrand: unique symbol;
68
+ /**
69
+ * The brands are keyed on a string literal, NOT on a `declare const ...: unique symbol`.
70
+ *
71
+ * A `unique symbol` is nominal per declaration site. `@repo/ui`'s rollup-dts pipeline
72
+ * inlines `@repo/core` types into every published subpath bundle (that inlining is what
73
+ * `/sdk release-ui` Step 4a enforces), so a symbol-keyed brand is re-declared once per
74
+ * bundle and TypeScript treats each copy as a different type. In the monorepo every
75
+ * import resolves to this one file and it all works; for an external consumer, a value
76
+ * from `@elevasis/ui/organization` passed into a component from
77
+ * `@elevasis/ui/features/settings` fails with TS2719 "Two different types with this name
78
+ * exist, but they are unrelated." Measured 2026-08-27 against `@elevasis/ui@2.76.0`,
79
+ * where seven separate `supabaseOrgIdBrand` symbols shipped across six ui subpaths and
80
+ * `@elevasis/core/auth`.
81
+ *
82
+ * A literal-keyed brand is structural, so every inlined copy is the same type. It still
83
+ * refuses a bare `string` and still keeps the two ids mutually non-assignable, which is
84
+ * the entire job. Do not "restore" the symbol form.
85
+ */
69
86
  /** A Supabase organization id (UUID) -- the database key for RLS-scoped rows. */
70
87
  type SupabaseOrgId = string & {
71
- readonly [supabaseOrgIdBrand]: true;
88
+ readonly __orgIdBrand: 'supabase';
72
89
  };
73
90
 
74
91
  type ApiRequestFn$1 = <T>(endpoint: string, options?: RequestInit) => Promise<T>;
@@ -2,10 +2,9 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { ReactNode } from 'react';
4
4
 
5
- declare const workOsOrgIdBrand: unique symbol;
6
5
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
7
6
  type WorkOsOrgId = string & {
8
- readonly [workOsOrgIdBrand]: true;
7
+ readonly __orgIdBrand: 'workos';
9
8
  };
10
9
 
11
10
  /**
@@ -3813,10 +3813,9 @@ type Database = {
3813
3813
  };
3814
3814
  };
3815
3815
 
3816
- declare const workOsOrgIdBrand: unique symbol;
3817
3816
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
3818
3817
  type WorkOsOrgId = string & {
3819
- readonly [workOsOrgIdBrand]: true;
3818
+ readonly __orgIdBrand: 'workos';
3820
3819
  };
3821
3820
 
3822
3821
  /**
@@ -3812,10 +3812,9 @@ type Database = {
3812
3812
  };
3813
3813
  };
3814
3814
 
3815
- declare const workOsOrgIdBrand: unique symbol;
3816
3815
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
3817
3816
  type WorkOsOrgId = string & {
3818
- readonly [workOsOrgIdBrand]: true;
3817
+ readonly __orgIdBrand: 'workos';
3819
3818
  };
3820
3819
 
3821
3820
  /**
@@ -7,10 +7,9 @@ import * as vitest from 'vitest';
7
7
  import * as msw_node from 'msw/node';
8
8
  import * as msw from 'msw';
9
9
 
10
- declare const workOsOrgIdBrand: unique symbol;
11
10
  /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
12
11
  type WorkOsOrgId = string & {
13
- readonly [workOsOrgIdBrand]: true;
12
+ readonly __orgIdBrand: 'workos';
14
13
  };
15
14
 
16
15
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevasis/ui",
3
- "version": "2.76.0",
3
+ "version": "2.77.0",
4
4
  "description": "UI components and platform-aware hooks for building custom frontends on the Elevasis platform",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -279,10 +279,10 @@
279
279
  "vite": "^7.0.0",
280
280
  "vitest": "^3.2.4",
281
281
  "@elevasis/sdk": "1.51.0",
282
- "@repo/eslint-config": "0.0.0",
283
- "@repo/typescript-config": "0.0.0",
284
282
  "@repo/elevasis-core": "1.0.0",
285
- "@repo/core": "0.68.0"
283
+ "@repo/typescript-config": "0.0.0",
284
+ "@repo/eslint-config": "0.0.0",
285
+ "@repo/core": "0.69.0"
286
286
  },
287
287
  "dependencies": {
288
288
  "@dagrejs/dagre": "^1.1.4",