@streamoid/settings 0.4.4 → 0.4.6

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/dist/index.d.mts CHANGED
@@ -1102,6 +1102,13 @@ declare function MemberListFrame({ header, emptyText, isEmpty, grow, maxHeight,
1102
1102
  * Derived by intersecting this workspace's members with the organization's, so
1103
1103
  * it states a fact both APIs already report — it is not a guess at an
1104
1104
  * "inherited permission" flag, which no endpoint exposes.
1105
+ *
1106
+ * ONLY ADMINS GET A CHIP NOW. The other state read "in org", which told you
1107
+ * that someone in the workspace list is also in the organization -- true of
1108
+ * nearly everyone, actionable for no one, and one more thing to read on every
1109
+ * row. An org admin is different: they keep access to this workspace whatever
1110
+ * is set here, and they are who you ask for permissions. That is worth a chip;
1111
+ * "also in the org" is not.
1105
1112
  */
1106
1113
  declare function OrgMembershipTag({ organizationName, isOrgAdmin, }: {
1107
1114
  organizationName?: string | null;
package/dist/index.d.ts CHANGED
@@ -1102,6 +1102,13 @@ declare function MemberListFrame({ header, emptyText, isEmpty, grow, maxHeight,
1102
1102
  * Derived by intersecting this workspace's members with the organization's, so
1103
1103
  * it states a fact both APIs already report — it is not a guess at an
1104
1104
  * "inherited permission" flag, which no endpoint exposes.
1105
+ *
1106
+ * ONLY ADMINS GET A CHIP NOW. The other state read "in org", which told you
1107
+ * that someone in the workspace list is also in the organization -- true of
1108
+ * nearly everyone, actionable for no one, and one more thing to read on every
1109
+ * row. An org admin is different: they keep access to this workspace whatever
1110
+ * is set here, and they are who you ask for permissions. That is worth a chip;
1111
+ * "also in the org" is not.
1105
1112
  */
1106
1113
  declare function OrgMembershipTag({ organizationName, isOrgAdmin, }: {
1107
1114
  organizationName?: string | null;
package/dist/index.js CHANGED
@@ -2175,7 +2175,7 @@ function OrganizationAffiliationCard({
2175
2175
  "Failed to change visibility"
2176
2176
  );
2177
2177
  },
2178
- children: opt === "private" ? "Only its members" : "Everyone in the organization"
2178
+ children: opt === "private" ? "Only workspace members" : "Everyone in the organization"
2179
2179
  },
2180
2180
  opt
2181
2181
  );
@@ -3835,8 +3835,22 @@ function OrgMembershipTag({
3835
3835
  border: `1px solid ${isOrgAdmin ? T7.primary : T7.borderSubtle}`,
3836
3836
  backgroundColor: "transparent"
3837
3837
  },
3838
- title: isOrgAdmin ? `Admin of ${org} \u2014 keeps access to this workspace regardless of what is set here. Manage under Organization \u203A People.` : `Also a member of ${org}. Manage their organization role under Organization \u203A People.`,
3839
- children: isOrgAdmin ? "org admin" : "in org"
3838
+ title: `Admin of ${org} \u2014 keeps access to this workspace regardless of what is set here. Manage under Organization \u203A People.`,
3839
+ children: "Org admin"
3840
+ }
3841
+ );
3842
+ }
3843
+ function RoleChip({
3844
+ role,
3845
+ label
3846
+ }) {
3847
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3848
+ import_ui4.ScRole,
3849
+ {
3850
+ type: role,
3851
+ label,
3852
+ className: "shrink-0",
3853
+ style: { width: "auto", minWidth: "5rem" }
3840
3854
  }
3841
3855
  );
3842
3856
  }
@@ -4313,11 +4327,10 @@ function TeamRow({
4313
4327
  ),
4314
4328
  /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center shrink-0", style: { gap: 6 }, children: [
4315
4329
  /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
4316
- import_ui5.ScRole,
4330
+ RoleChip,
4317
4331
  {
4318
- type: member.permissions.role,
4319
- label: member.permissions.role === "admin" ? "Admin" : "Member",
4320
- className: "shrink-0"
4332
+ role: member.permissions.role === "admin" ? "admin" : "member",
4333
+ label: member.permissions.role === "admin" ? "Workspace admin" : "Member"
4321
4334
  }
4322
4335
  ),
4323
4336
  orgMembership && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
@@ -5987,11 +6000,10 @@ function MemberRow({
5987
6000
  }
5988
6001
  ),
5989
6002
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5990
- import_ui8.ScRole,
6003
+ RoleChip,
5991
6004
  {
5992
- type: member.role,
5993
- label: member.role === "admin" ? "Admin" : "Member",
5994
- className: "shrink-0"
6005
+ role: member.role === "admin" ? "admin" : "member",
6006
+ label: member.role === "admin" ? "Org admin" : "Member"
5995
6007
  }
5996
6008
  ),
5997
6009
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
@@ -6096,11 +6108,10 @@ function InviteRow({
6096
6108
  ] })
6097
6109
  ] }),
6098
6110
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
6099
- import_ui8.ScRole,
6111
+ RoleChip,
6100
6112
  {
6101
- type: role === "admin" ? "admin" : "member",
6102
- label: role === "admin" ? "Admin" : "Member",
6103
- className: "shrink-0"
6113
+ role: role === "admin" ? "admin" : "member",
6114
+ label: role === "admin" ? "Org admin" : "Member"
6104
6115
  }
6105
6116
  ),
6106
6117
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
@@ -10335,25 +10346,25 @@ function SettingsNavGroupHeader({
10335
10346
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
10336
10347
  "div",
10337
10348
  {
10338
- className: "flex items-center w-full min-w-0",
10339
- style: { gap: 6, padding: "2px var(--spacing-md) 4px" },
10349
+ className: "flex flex-col w-full min-w-0",
10350
+ style: { gap: 2, padding: "2px var(--spacing-xl) var(--spacing-sm)" },
10340
10351
  children: [
10341
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "shrink-0 flex items-center", children: icon }),
10342
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex flex-col min-w-0", children: [
10343
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
10344
- "span",
10345
- {
10346
- style: {
10347
- fontFamily: "var(--font-family-font-family-body)",
10348
- fontSize: "var(--font-size-font-size-xxs, 10px)",
10349
- fontWeight: 500,
10350
- letterSpacing: "0.08em",
10351
- textTransform: "uppercase",
10352
- color: MUTED_COLOR2
10353
- },
10354
- children: eyebrow
10355
- }
10356
- ),
10352
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
10353
+ "span",
10354
+ {
10355
+ style: {
10356
+ fontFamily: "var(--font-family-font-family-body)",
10357
+ fontSize: "var(--font-size-font-size-xxs, 10px)",
10358
+ fontWeight: 500,
10359
+ letterSpacing: "0.08em",
10360
+ textTransform: "uppercase",
10361
+ color: MUTED_COLOR2
10362
+ },
10363
+ children: eyebrow
10364
+ }
10365
+ ),
10366
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center min-w-0", style: { gap: "var(--spacing-md)" }, children: [
10367
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "shrink-0 flex items-center", children: icon }),
10357
10368
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
10358
10369
  "span",
10359
10370
  {
@@ -10395,26 +10406,26 @@ function SettingsNav({
10395
10406
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
10396
10407
  "div",
10397
10408
  {
10398
- className: "flex flex-col items-start shrink-0 relative",
10409
+ className: "flex flex-col items-start shrink-0 relative overflow-y-auto",
10399
10410
  style: {
10400
10411
  backgroundColor: "var(--alias-surface-base)",
10401
10412
  borderRadius: "var(--radius-3xl)",
10402
10413
  padding: "var(--spacing-md)",
10403
10414
  width: 216,
10404
- gap: "var(--spacing-xl)"
10415
+ maxHeight: "100%",
10416
+ /* A REAL BORDER, not the absolutely-positioned overlay that used to
10417
+ * sit inside this box. Now that the nav scrolls, an `absolute inset-0`
10418
+ * child is positioned against the scrolled CONTENT, so the outline
10419
+ * would slide up out of view and leave the card unbounded. `border`
10420
+ * belongs to the box itself and cannot drift; `box-sizing: border-box`
10421
+ * keeps the 216px width. */
10422
+ border: "1px solid var(--alias-border-subtle)",
10423
+ /* Was `--spacing-xl` (12). The groups and the rules between them sat
10424
+ * closer to each other than the rows inside a group did to their own
10425
+ * heading, so the divisions read as weaker than what they divided. */
10426
+ gap: "var(--spacing-5xl)"
10405
10427
  },
10406
10428
  children: [
10407
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
10408
- "div",
10409
- {
10410
- "aria-hidden": "true",
10411
- className: "absolute inset-0 pointer-events-none",
10412
- style: {
10413
- border: "1px solid var(--alias-border-subtle)",
10414
- borderRadius: "var(--radius-3xl)"
10415
- }
10416
- }
10417
- ),
10418
10429
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex flex-col w-full", style: { gap: "var(--spacing-md)" }, children: item("profile", (color) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons12.SiconUser, { className: "w-6 h-6", color })) }),
10419
10430
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_ui11.ScHDivider, {}),
10420
10431
  /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex flex-col w-full", style: { gap: "var(--spacing-md)" }, children: [
package/dist/index.mjs CHANGED
@@ -2139,7 +2139,7 @@ function OrganizationAffiliationCard({
2139
2139
  "Failed to change visibility"
2140
2140
  );
2141
2141
  },
2142
- children: opt === "private" ? "Only its members" : "Everyone in the organization"
2142
+ children: opt === "private" ? "Only workspace members" : "Everyone in the organization"
2143
2143
  },
2144
2144
  opt
2145
2145
  );
@@ -2398,7 +2398,7 @@ function SettingsTooltip({
2398
2398
 
2399
2399
  // src/teams-content.tsx
2400
2400
  import { useState as useState6, useEffect as useEffect6, useCallback as useCallback2 } from "react";
2401
- import { ScTableHeader, ScRole, ScPendingAction } from "@streamoid/ui";
2401
+ import { ScTableHeader, ScPendingAction } from "@streamoid/ui";
2402
2402
  import { ScButton as ScButton3 } from "@streamoid/ui";
2403
2403
  import {
2404
2404
  SiconUserAdd,
@@ -3642,7 +3642,7 @@ function InviteUpdateModal({
3642
3642
  }
3643
3643
 
3644
3644
  // src/member-list.tsx
3645
- import { ScTabSwitcher, ScTabComp, ScOnlyField } from "@streamoid/ui";
3645
+ import { ScTabSwitcher, ScTabComp, ScOnlyField, ScRole } from "@streamoid/ui";
3646
3646
  import { SiconSearch as SiconSearch2 } from "@streamoid/icons";
3647
3647
  import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
3648
3648
  var T7 = {
@@ -3817,8 +3817,22 @@ function OrgMembershipTag({
3817
3817
  border: `1px solid ${isOrgAdmin ? T7.primary : T7.borderSubtle}`,
3818
3818
  backgroundColor: "transparent"
3819
3819
  },
3820
- title: isOrgAdmin ? `Admin of ${org} \u2014 keeps access to this workspace regardless of what is set here. Manage under Organization \u203A People.` : `Also a member of ${org}. Manage their organization role under Organization \u203A People.`,
3821
- children: isOrgAdmin ? "org admin" : "in org"
3820
+ title: `Admin of ${org} \u2014 keeps access to this workspace regardless of what is set here. Manage under Organization \u203A People.`,
3821
+ children: "Org admin"
3822
+ }
3823
+ );
3824
+ }
3825
+ function RoleChip({
3826
+ role,
3827
+ label
3828
+ }) {
3829
+ return /* @__PURE__ */ jsx11(
3830
+ ScRole,
3831
+ {
3832
+ type: role,
3833
+ label,
3834
+ className: "shrink-0",
3835
+ style: { width: "auto", minWidth: "5rem" }
3822
3836
  }
3823
3837
  );
3824
3838
  }
@@ -4295,11 +4309,10 @@ function TeamRow({
4295
4309
  ),
4296
4310
  /* @__PURE__ */ jsxs10("div", { className: "flex items-center shrink-0", style: { gap: 6 }, children: [
4297
4311
  /* @__PURE__ */ jsx12(
4298
- ScRole,
4312
+ RoleChip,
4299
4313
  {
4300
- type: member.permissions.role,
4301
- label: member.permissions.role === "admin" ? "Admin" : "Member",
4302
- className: "shrink-0"
4314
+ role: member.permissions.role === "admin" ? "admin" : "member",
4315
+ label: member.permissions.role === "admin" ? "Workspace admin" : "Member"
4303
4316
  }
4304
4317
  ),
4305
4318
  orgMembership && /* @__PURE__ */ jsx12(
@@ -4923,7 +4936,7 @@ function TeamsContent({
4923
4936
 
4924
4937
  // src/organization-content.tsx
4925
4938
  import { useCallback as useCallback3, useEffect as useEffect9, useState as useState9 } from "react";
4926
- import { ScRole as ScRole2, ScButton as ScButton5 } from "@streamoid/ui";
4939
+ import { ScButton as ScButton5 } from "@streamoid/ui";
4927
4940
  import { SiconUserAdd as SiconUserAdd2, SiconGlobe as SiconGlobe2 } from "@streamoid/icons";
4928
4941
 
4929
4942
  // src/organization-invite-modal.tsx
@@ -5969,11 +5982,10 @@ function MemberRow({
5969
5982
  }
5970
5983
  ),
5971
5984
  /* @__PURE__ */ jsx15(
5972
- ScRole2,
5985
+ RoleChip,
5973
5986
  {
5974
- type: member.role,
5975
- label: member.role === "admin" ? "Admin" : "Member",
5976
- className: "shrink-0"
5987
+ role: member.role === "admin" ? "admin" : "member",
5988
+ label: member.role === "admin" ? "Org admin" : "Member"
5977
5989
  }
5978
5990
  ),
5979
5991
  /* @__PURE__ */ jsx15(
@@ -6078,11 +6090,10 @@ function InviteRow({
6078
6090
  ] })
6079
6091
  ] }),
6080
6092
  /* @__PURE__ */ jsx15(
6081
- ScRole2,
6093
+ RoleChip,
6082
6094
  {
6083
- type: role === "admin" ? "admin" : "member",
6084
- label: role === "admin" ? "Admin" : "Member",
6085
- className: "shrink-0"
6095
+ role: role === "admin" ? "admin" : "member",
6096
+ label: role === "admin" ? "Org admin" : "Member"
6086
6097
  }
6087
6098
  ),
6088
6099
  /* @__PURE__ */ jsx15(
@@ -10343,25 +10354,25 @@ function SettingsNavGroupHeader({
10343
10354
  return /* @__PURE__ */ jsxs18(
10344
10355
  "div",
10345
10356
  {
10346
- className: "flex items-center w-full min-w-0",
10347
- style: { gap: 6, padding: "2px var(--spacing-md) 4px" },
10357
+ className: "flex flex-col w-full min-w-0",
10358
+ style: { gap: 2, padding: "2px var(--spacing-xl) var(--spacing-sm)" },
10348
10359
  children: [
10349
- /* @__PURE__ */ jsx20("span", { className: "shrink-0 flex items-center", children: icon }),
10350
- /* @__PURE__ */ jsxs18("div", { className: "flex flex-col min-w-0", children: [
10351
- /* @__PURE__ */ jsx20(
10352
- "span",
10353
- {
10354
- style: {
10355
- fontFamily: "var(--font-family-font-family-body)",
10356
- fontSize: "var(--font-size-font-size-xxs, 10px)",
10357
- fontWeight: 500,
10358
- letterSpacing: "0.08em",
10359
- textTransform: "uppercase",
10360
- color: MUTED_COLOR2
10361
- },
10362
- children: eyebrow
10363
- }
10364
- ),
10360
+ /* @__PURE__ */ jsx20(
10361
+ "span",
10362
+ {
10363
+ style: {
10364
+ fontFamily: "var(--font-family-font-family-body)",
10365
+ fontSize: "var(--font-size-font-size-xxs, 10px)",
10366
+ fontWeight: 500,
10367
+ letterSpacing: "0.08em",
10368
+ textTransform: "uppercase",
10369
+ color: MUTED_COLOR2
10370
+ },
10371
+ children: eyebrow
10372
+ }
10373
+ ),
10374
+ /* @__PURE__ */ jsxs18("div", { className: "flex items-center min-w-0", style: { gap: "var(--spacing-md)" }, children: [
10375
+ /* @__PURE__ */ jsx20("span", { className: "shrink-0 flex items-center", children: icon }),
10365
10376
  /* @__PURE__ */ jsx20(
10366
10377
  "span",
10367
10378
  {
@@ -10403,26 +10414,26 @@ function SettingsNav({
10403
10414
  return /* @__PURE__ */ jsxs18(
10404
10415
  "div",
10405
10416
  {
10406
- className: "flex flex-col items-start shrink-0 relative",
10417
+ className: "flex flex-col items-start shrink-0 relative overflow-y-auto",
10407
10418
  style: {
10408
10419
  backgroundColor: "var(--alias-surface-base)",
10409
10420
  borderRadius: "var(--radius-3xl)",
10410
10421
  padding: "var(--spacing-md)",
10411
10422
  width: 216,
10412
- gap: "var(--spacing-xl)"
10423
+ maxHeight: "100%",
10424
+ /* A REAL BORDER, not the absolutely-positioned overlay that used to
10425
+ * sit inside this box. Now that the nav scrolls, an `absolute inset-0`
10426
+ * child is positioned against the scrolled CONTENT, so the outline
10427
+ * would slide up out of view and leave the card unbounded. `border`
10428
+ * belongs to the box itself and cannot drift; `box-sizing: border-box`
10429
+ * keeps the 216px width. */
10430
+ border: "1px solid var(--alias-border-subtle)",
10431
+ /* Was `--spacing-xl` (12). The groups and the rules between them sat
10432
+ * closer to each other than the rows inside a group did to their own
10433
+ * heading, so the divisions read as weaker than what they divided. */
10434
+ gap: "var(--spacing-5xl)"
10413
10435
  },
10414
10436
  children: [
10415
- /* @__PURE__ */ jsx20(
10416
- "div",
10417
- {
10418
- "aria-hidden": "true",
10419
- className: "absolute inset-0 pointer-events-none",
10420
- style: {
10421
- border: "1px solid var(--alias-border-subtle)",
10422
- borderRadius: "var(--radius-3xl)"
10423
- }
10424
- }
10425
- ),
10426
10437
  /* @__PURE__ */ jsx20("div", { className: "flex flex-col w-full", style: { gap: "var(--spacing-md)" }, children: item("profile", (color) => /* @__PURE__ */ jsx20(SiconUser, { className: "w-6 h-6", color })) }),
10427
10438
  /* @__PURE__ */ jsx20(ScHDivider, {}),
10428
10439
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-col w-full", style: { gap: "var(--spacing-md)" }, children: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamoid/settings",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",