@xenide-io/the-old-ui-theme 0.9.15 → 0.9.16

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/suite.d.mts CHANGED
@@ -1165,9 +1165,9 @@ declare function SuiteClientsProjectsDirectory({ clients, projects, canEdit, loa
1165
1165
  /**
1166
1166
  * A client/project icon.
1167
1167
  *
1168
- * Shows the stored image when there is one; otherwise a neutral placeholder —
1169
- * a tinted rounded square with the entity's initial, or a small dot when no
1170
- * label is available. No icon font is involved.
1168
+ * Shows the stored image when there is one; otherwise a folder outline (tinted
1169
+ * to the entity colour when set). A folder is the neutral default for clients,
1170
+ * projects, and their sidebar entries across every app.
1171
1171
  */
1172
1172
  declare function SuiteEntityIcon({ imageUrl, label, color, className, roundedClass, style, tinted, }: {
1173
1173
  imageUrl?: string | null;
package/dist/suite.d.ts CHANGED
@@ -1165,9 +1165,9 @@ declare function SuiteClientsProjectsDirectory({ clients, projects, canEdit, loa
1165
1165
  /**
1166
1166
  * A client/project icon.
1167
1167
  *
1168
- * Shows the stored image when there is one; otherwise a neutral placeholder —
1169
- * a tinted rounded square with the entity's initial, or a small dot when no
1170
- * label is available. No icon font is involved.
1168
+ * Shows the stored image when there is one; otherwise a folder outline (tinted
1169
+ * to the entity colour when set). A folder is the neutral default for clients,
1170
+ * projects, and their sidebar entries across every app.
1171
1171
  */
1172
1172
  declare function SuiteEntityIcon({ imageUrl, label, color, className, roundedClass, style, tinted, }: {
1173
1173
  imageUrl?: string | null;
package/dist/suite.js CHANGED
@@ -7143,7 +7143,10 @@ function SuiteIntegrationRules({
7143
7143
 
7144
7144
  // src/suite/components/suite-clients-projects-directory.tsx
7145
7145
  var import_react29 = require("react");
7146
- var import_iconoir_react15 = require("iconoir-react");
7146
+ var import_iconoir_react16 = require("iconoir-react");
7147
+
7148
+ // src/suite/components/suite-entity-icon.tsx
7149
+ var import_iconoir_react14 = require("iconoir-react");
7147
7150
 
7148
7151
  // src/suite/lib/palette-api.ts
7149
7152
  var _a;
@@ -7228,12 +7231,11 @@ function SuiteEntityIcon({
7228
7231
  }
7229
7232
  );
7230
7233
  }
7231
- const initial = label == null ? void 0 : label.trim().charAt(0).toUpperCase();
7232
7234
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7233
7235
  "span",
7234
7236
  {
7235
7237
  className: cn2(
7236
- "inline-flex shrink-0 items-center justify-center font-semibold leading-none",
7238
+ "inline-flex shrink-0 items-center justify-center leading-none",
7237
7239
  roundedClass,
7238
7240
  className
7239
7241
  ),
@@ -7242,14 +7244,22 @@ function SuiteEntityIcon({
7242
7244
  backgroundColor: tint ? `${tint}18` : neutralBackground
7243
7245
  }, style),
7244
7246
  "aria-hidden": "true",
7245
- children: initial ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-[0.7em]", children: initial }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "block h-1.5 w-1.5 rounded-full bg-current opacity-40" })
7247
+ title: label != null ? label : void 0,
7248
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7249
+ import_iconoir_react14.Folder,
7250
+ {
7251
+ className: "h-[0.85em] w-[0.85em]",
7252
+ strokeWidth: 1.8,
7253
+ "aria-hidden": true
7254
+ }
7255
+ )
7246
7256
  }
7247
7257
  );
7248
7258
  }
7249
7259
 
7250
7260
  // src/suite/components/suite-palette-library.tsx
7251
7261
  var import_react28 = require("react");
7252
- var import_iconoir_react14 = require("iconoir-react");
7262
+ var import_iconoir_react15 = require("iconoir-react");
7253
7263
  var import_jsx_runtime43 = require("react/jsx-runtime");
7254
7264
  var PAGE_SIZE = 60;
7255
7265
  var DISCOVER_LIMIT = 120;
@@ -7287,7 +7297,7 @@ function FilterSelect({
7287
7297
  }
7288
7298
  ),
7289
7299
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7290
- import_iconoir_react14.NavArrowDown,
7300
+ import_iconoir_react15.NavArrowDown,
7291
7301
  {
7292
7302
  className: "pointer-events-none absolute right-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-ph-mutedtext",
7293
7303
  "aria-hidden": true
@@ -7453,7 +7463,7 @@ function SuitePaletteLibrary({
7453
7463
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col gap-2 sm:flex-row", children: [
7454
7464
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "relative flex-1", children: [
7455
7465
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7456
- import_iconoir_react14.Search,
7466
+ import_iconoir_react15.Search,
7457
7467
  {
7458
7468
  className: "pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-ph-mutedtext",
7459
7469
  "aria-hidden": true
@@ -7480,10 +7490,10 @@ function SuitePaletteLibrary({
7480
7490
  onClick: () => setLibraryOpen((open) => !open),
7481
7491
  className: "flex items-center gap-2 rounded-lg border border-ph-border bg-ph-surface px-2.5 py-2 text-sm text-ph-ink hover:border-ph-brand focus:outline-none focus-visible:ring-2 focus-visible:ring-ph-brand",
7482
7492
  children: [
7483
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_iconoir_react14.FilterList, { className: "h-4 w-4 shrink-0 text-ph-mutedtext", "aria-hidden": true }),
7493
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_iconoir_react15.FilterList, { className: "h-4 w-4 shrink-0 text-ph-mutedtext", "aria-hidden": true }),
7484
7494
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "max-w-[10rem] truncate", children: (_b = activeLibrary == null ? void 0 : activeLibrary.name) != null ? _b : "All libraries" }),
7485
7495
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7486
- import_iconoir_react14.NavArrowDown,
7496
+ import_iconoir_react15.NavArrowDown,
7487
7497
  {
7488
7498
  className: cn2(
7489
7499
  "h-3.5 w-3.5 shrink-0 text-ph-mutedtext transition-transform",
@@ -7498,7 +7508,7 @@ function SuitePaletteLibrary({
7498
7508
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7499
7509
  FilterSelect,
7500
7510
  {
7501
- icon: import_iconoir_react14.Filter,
7511
+ icon: import_iconoir_react15.Filter,
7502
7512
  label: "Filter by icon type",
7503
7513
  value: typeFilter,
7504
7514
  onChange: setTypeFilter,
@@ -7509,7 +7519,7 @@ function SuitePaletteLibrary({
7509
7519
  libraryOpen ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "rounded-lg border border-ph-border bg-ph-surface p-2", children: [
7510
7520
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "relative mb-2", children: [
7511
7521
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7512
- import_iconoir_react14.Search,
7522
+ import_iconoir_react15.Search,
7513
7523
  {
7514
7524
  className: "pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-ph-mutedtext",
7515
7525
  "aria-hidden": true
@@ -7682,7 +7692,7 @@ function DirectoryIconPicker({
7682
7692
  className: "mt-2 inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-ph-mutedtext hover:bg-ph-surface hover:text-ph-ink",
7683
7693
  onClick: onClear,
7684
7694
  children: [
7685
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react15.Trash, { className: "h-3.5 w-3.5", "aria-hidden": true }),
7695
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react16.Trash, { className: "h-3.5 w-3.5", "aria-hidden": true }),
7686
7696
  " Remove image"
7687
7697
  ]
7688
7698
  }
@@ -7937,7 +7947,7 @@ function SuiteClientsProjectsDirectory({
7937
7947
  /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex h-14 items-center gap-2 border-b border-ph-border px-3", children: [
7938
7948
  /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "relative min-w-0 flex-1", children: [
7939
7949
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7940
- import_iconoir_react15.Search,
7950
+ import_iconoir_react16.Search,
7941
7951
  {
7942
7952
  className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-ph-mutedtext",
7943
7953
  "aria-hidden": true
@@ -7960,7 +7970,7 @@ function SuiteClientsProjectsDirectory({
7960
7970
  {
7961
7971
  size: "sm",
7962
7972
  variant: "primary",
7963
- icon: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react15.Plus, { className: "h-4 w-4" }),
7973
+ icon: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react16.Plus, { className: "h-4 w-4" }),
7964
7974
  onClick: () => openNew("client"),
7965
7975
  children: "New client"
7966
7976
  }
@@ -8032,7 +8042,7 @@ function SuiteClientsProjectsDirectory({
8032
8042
  setMobileDetail(false);
8033
8043
  },
8034
8044
  "aria-label": "Back to clients",
8035
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react15.ArrowLeft, { className: "h-4 w-4" })
8045
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react16.ArrowLeft, { className: "h-4 w-4" })
8036
8046
  }
8037
8047
  ),
8038
8048
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(DirectoryIcon, { item: selectedClient }),
@@ -8050,7 +8060,7 @@ function SuiteClientsProjectsDirectory({
8050
8060
  "aria-label": `Actions for ${selectedClient.name}`,
8051
8061
  align: "end",
8052
8062
  trigger: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: "inline-flex h-8 w-8 items-center justify-center rounded-md text-ph-mutedtext hover:bg-ph-muted hover:text-ph-ink", children: [
8053
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react15.MoreHoriz, { className: "h-4 w-4", "aria-hidden": true }),
8063
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react16.MoreHoriz, { className: "h-4 w-4", "aria-hidden": true }),
8054
8064
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "sr-only", children: "Client actions" })
8055
8065
  ] }),
8056
8066
  children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "p-1", children: [
@@ -8077,7 +8087,7 @@ function SuiteClientsProjectsDirectory({
8077
8087
  Button,
8078
8088
  {
8079
8089
  variant: "primary",
8080
- icon: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react15.Plus, { className: "h-4 w-4" }),
8090
+ icon: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react16.Plus, { className: "h-4 w-4" }),
8081
8091
  onClick: () => openNew("project"),
8082
8092
  children: "Add project"
8083
8093
  }
@@ -8119,7 +8129,7 @@ function SuiteClientsProjectsDirectory({
8119
8129
  align: "end",
8120
8130
  trigger: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: "inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-ph-mutedtext hover:bg-ph-muted hover:text-ph-ink", children: [
8121
8131
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8122
- import_iconoir_react15.MoreHoriz,
8132
+ import_iconoir_react16.MoreHoriz,
8123
8133
  {
8124
8134
  className: "h-4 w-4",
8125
8135
  "aria-hidden": true
@@ -8216,7 +8226,7 @@ function SuiteClientsProjectsDirectory({
8216
8226
  "flex h-8 w-8 items-center justify-center rounded-full border border-ph-border bg-ph-surface text-ph-mutedtext ring-offset-2",
8217
8227
  !draft.color && "ring-2 ring-ph-brand"
8218
8228
  ),
8219
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react15.Prohibition, { className: "h-4 w-4", "aria-hidden": true })
8229
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react16.Prohibition, { className: "h-4 w-4", "aria-hidden": true })
8220
8230
  }
8221
8231
  ),
8222
8232
  [
@@ -8270,7 +8280,7 @@ function SuiteClientsProjectsDirectory({
8270
8280
  "#ef4444",
8271
8281
  "#a855f7",
8272
8282
  "#64748b"
8273
- ].includes(draft.color) ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react15.Plus, { className: "h-3 w-3 text-ph-ink", "aria-hidden": true }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8283
+ ].includes(draft.color) ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_iconoir_react16.Plus, { className: "h-3 w-3 text-ph-ink", "aria-hidden": true }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8274
8284
  "span",
8275
8285
  {
8276
8286
  className: "h-2.5 w-2.5 rounded-full",
package/dist/suite.mjs CHANGED
@@ -5320,6 +5320,9 @@ import {
5320
5320
  Trash
5321
5321
  } from "iconoir-react";
5322
5322
 
5323
+ // src/suite/components/suite-entity-icon.tsx
5324
+ import { Folder } from "iconoir-react";
5325
+
5323
5326
  // src/suite/lib/palette-api.ts
5324
5327
  var _a;
5325
5328
  var PALETTE_URL = ((_a = process.env.NEXT_PUBLIC_PALETTE_URL) != null ? _a : "http://localhost:8010").replace(/\/$/, "");
@@ -5403,12 +5406,11 @@ function SuiteEntityIcon({
5403
5406
  }
5404
5407
  );
5405
5408
  }
5406
- const initial = label == null ? void 0 : label.trim().charAt(0).toUpperCase();
5407
5409
  return /* @__PURE__ */ jsx28(
5408
5410
  "span",
5409
5411
  {
5410
5412
  className: cn(
5411
- "inline-flex shrink-0 items-center justify-center font-semibold leading-none",
5413
+ "inline-flex shrink-0 items-center justify-center leading-none",
5412
5414
  roundedClass,
5413
5415
  className
5414
5416
  ),
@@ -5417,7 +5419,15 @@ function SuiteEntityIcon({
5417
5419
  backgroundColor: tint ? `${tint}18` : neutralBackground
5418
5420
  }, style),
5419
5421
  "aria-hidden": "true",
5420
- children: initial ? /* @__PURE__ */ jsx28("span", { className: "text-[0.7em]", children: initial }) : /* @__PURE__ */ jsx28("span", { className: "block h-1.5 w-1.5 rounded-full bg-current opacity-40" })
5422
+ title: label != null ? label : void 0,
5423
+ children: /* @__PURE__ */ jsx28(
5424
+ Folder,
5425
+ {
5426
+ className: "h-[0.85em] w-[0.85em]",
5427
+ strokeWidth: 1.8,
5428
+ "aria-hidden": true
5429
+ }
5430
+ )
5421
5431
  }
5422
5432
  );
5423
5433
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenide-io/the-old-ui-theme",
3
- "version": "0.9.15",
3
+ "version": "0.9.16",
4
4
  "description": "Props-driven React components and theme tokens inspired by classic interface design — optimized for Next.js apps and internal tools.",
5
5
  "author": "Xenide",
6
6
  "license": "MIT",
@@ -1,15 +1,16 @@
1
1
  'use client';
2
2
 
3
3
  import type { CSSProperties } from 'react';
4
+ import { Folder } from 'iconoir-react';
4
5
  import { paletteIconSrc } from '@/suite/lib/palette-api';
5
6
  import { cn } from '@/lib/cn';
6
7
 
7
8
  /**
8
9
  * A client/project icon.
9
10
  *
10
- * Shows the stored image when there is one; otherwise a neutral placeholder —
11
- * a tinted rounded square with the entity's initial, or a small dot when no
12
- * label is available. No icon font is involved.
11
+ * Shows the stored image when there is one; otherwise a folder outline (tinted
12
+ * to the entity colour when set). A folder is the neutral default for clients,
13
+ * projects, and their sidebar entries across every app.
13
14
  */
14
15
  export function SuiteEntityIcon({
15
16
  imageUrl,
@@ -54,12 +55,10 @@ export function SuiteEntityIcon({
54
55
  );
55
56
  }
56
57
 
57
- const initial = label?.trim().charAt(0).toUpperCase();
58
-
59
58
  return (
60
59
  <span
61
60
  className={cn(
62
- 'inline-flex shrink-0 items-center justify-center font-semibold leading-none',
61
+ 'inline-flex shrink-0 items-center justify-center leading-none',
63
62
  roundedClass,
64
63
  className,
65
64
  )}
@@ -69,12 +68,13 @@ export function SuiteEntityIcon({
69
68
  ...style,
70
69
  }}
71
70
  aria-hidden="true"
71
+ title={label ?? undefined}
72
72
  >
73
- {initial ? (
74
- <span className="text-[0.7em]">{initial}</span>
75
- ) : (
76
- <span className="block h-1.5 w-1.5 rounded-full bg-current opacity-40" />
77
- )}
73
+ <Folder
74
+ className="h-[0.85em] w-[0.85em]"
75
+ strokeWidth={1.8}
76
+ aria-hidden
77
+ />
78
78
  </span>
79
79
  );
80
80
  }