@cosxai/ui 0.13.4 → 0.14.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosxai/ui",
3
- "version": "0.13.4",
3
+ "version": "0.14.0",
4
4
  "description": "COSX design system — React 19 component primitives shared across product-meta and other consumers",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -16,6 +16,11 @@ interface Ranked {
16
16
  }
17
17
 
18
18
  function scoreOne(item: CommandItem, q: string): number | null {
19
+ // Secret items exist only for their exact phrase — never in empty
20
+ // listings, never via partial/label matches.
21
+ if (item.secret) {
22
+ return q.trim().toLowerCase() === item.secret.toLowerCase() ? 200 : null;
23
+ }
19
24
  if (!q) return 1; // empty query — everyone passes, sorted by registration order
20
25
  const ql = q.toLowerCase();
21
26
  const lab = item.label.toLowerCase();
@@ -23,4 +23,10 @@ export interface CommandItem {
23
23
  // palette — useful when the command opens a sub-flow that wants
24
24
  // to keep the palette open.
25
25
  run: (api: { close: () => void }) => void;
26
+ // Cheat-code gating: when set, the item is INVISIBLE to every
27
+ // query except an exact (case-insensitive, trimmed) match of this
28
+ // phrase — it never appears in empty-query listings or partial
29
+ // matches. Use for hidden debug/test menus; pair with a "Debug"
30
+ // group so the reveal is self-describing.
31
+ secret?: string;
26
32
  }
@@ -380,7 +380,13 @@ export const SignaturePad = forwardRef<SignaturePadHandle, SignaturePadProps>(
380
380
  display: "flex",
381
381
  flexDirection: "column",
382
382
  gap: 8,
383
+ // fit-content sizes to the canvas's intrinsic `width` prop —
384
+ // which is exactly what overflowed narrow phones: the wrapper
385
+ // itself grew to 480px, so the canvas's own maxWidth:100%
386
+ // resolved against an already-overflowing parent. Cap the
387
+ // wrapper too; the flex-column children then shrink with it.
383
388
  width: "fit-content",
389
+ maxWidth: "100%",
384
390
  }),
385
391
  [],
386
392
  );