@gv-tech/ui-web 2.15.1 → 2.15.2

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/search.cjs CHANGED
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./jsx-runtime-nZSsnGb7.js"),f=require("lucide-react"),j=require("react"),g=require("./button.cjs"),h=require("./command.cjs"),m=require("./utils-IjLH3w2e.js");function y(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(s,e,o.get?o:{enumerable:!0,get:()=>t[e]})}}return s.default=t,Object.freeze(s)}const c=y(j);function b({children:t,open:s,onOpenChange:e}){const[o,a]=c.useState(!1),u=s!==void 0,l=u?s:o,d=c.useCallback(i=>{let n;typeof i=="function"?n=i(l):n=i,u?e?.(n):a(n)},[u,l,e]);return c.useEffect(()=>{const i=n=>{n.key==="k"&&(n.metaKey||n.ctrlKey)&&(n.preventDefault(),d(x=>!x))};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[d]),r.jsxRuntimeExports.jsx(h.CommandDialog,{open:l,onOpenChange:d,children:t})}const p=c.forwardRef(({className:t,placeholder:s="Search docs...",variant:e="default",...o},a)=>r.jsxRuntimeExports.jsxs(g.Button,{variant:"outline",className:m.cn("text-muted-foreground relative h-9 text-sm transition-all transition-colors",e==="default"?"w-full justify-start pr-12":"w-9 justify-center px-0 md:w-40 md:justify-start md:px-3 md:pr-12 lg:w-64",t),ref:a,...o,children:[r.jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-2",children:[r.jsxRuntimeExports.jsx(f.Search,{className:"h-4 w-4 shrink-0"}),r.jsxRuntimeExports.jsx("span",{className:m.cn("truncate",e==="compact"&&"hidden md:inline"),children:s})]}),r.jsxRuntimeExports.jsxs("kbd",{className:"bg-muted pointer-events-none absolute top-1.5 right-1.5 hidden h-6 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none sm:flex",children:[r.jsxRuntimeExports.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}));p.displayName="SearchTrigger";exports.Search=b;exports.SearchTrigger=p;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./jsx-runtime-nZSsnGb7.js"),p=require("lucide-react"),h=require("react"),j=require("./button.cjs"),g=require("./command.cjs"),u=require("./utils-IjLH3w2e.js");function y(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(s,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return s.default=t,Object.freeze(s)}const d=y(h);function b({children:t,open:s,onOpenChange:e}){const[r,x]=d.useState(!1),a=s!==void 0,i=a?s:r,l=d.useCallback(o=>{let n;typeof o=="function"?n=o(i):n=o,a?e?.(n):x(n)},[a,i,e]);return d.useEffect(()=>{const o=n=>{n.key==="k"&&(n.metaKey||n.ctrlKey)&&(n.preventDefault(),l(f=>!f))};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[l]),c.jsxRuntimeExports.jsx(g.CommandDialog,{open:i,onOpenChange:l,children:t})}const m=d.forwardRef(({className:t,placeholder:s,variant:e="default",responsive:r=!1,...x},a)=>{const l=s||(e==="compact"?"Search...":"Search docs...");return c.jsxRuntimeExports.jsxs(j.Button,{variant:"outline",className:u.cn("text-muted-foreground relative h-9 text-sm transition-all transition-colors",e==="default"?"w-full justify-start pr-12":u.cn("w-9 justify-center px-0",r&&"2xl:w-48 2xl:justify-start 2xl:px-3 2xl:pr-12"),t),ref:a,...x,children:[c.jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-2",children:[c.jsxRuntimeExports.jsx(p.Search,{className:"h-4 w-4 shrink-0"}),c.jsxRuntimeExports.jsx("span",{className:u.cn("truncate",e==="compact"&&(r?"hidden 2xl:inline":"hidden")),children:l})]}),c.jsxRuntimeExports.jsxs("kbd",{className:u.cn("bg-muted pointer-events-none absolute top-1.5 right-1.5 hidden h-6 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none",e==="default"&&"sm:flex",e==="compact"&&r&&"2xl:flex"),children:[c.jsxRuntimeExports.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]})});m.displayName="SearchTrigger";exports.Search=b;exports.SearchTrigger=m;
package/dist/search.mjs CHANGED
@@ -1,52 +1,65 @@
1
1
  "use client";
2
- import { j as t } from "./jsx-runtime-tc70JA_2.mjs";
2
+ import { j as n } from "./jsx-runtime-tc70JA_2.mjs";
3
3
  import { Search as u } from "lucide-react";
4
- import * as o from "react";
4
+ import * as d from "react";
5
5
  import { Button as x } from "./button.mjs";
6
6
  import { CommandDialog as h } from "./command.mjs";
7
- import { c as p } from "./utils-B6yFEsav.mjs";
8
- function S({ children: a, open: r, onOpenChange: s }) {
9
- const [i, c] = o.useState(!1), m = r !== void 0, l = m ? r : i, d = o.useCallback(
10
- (n) => {
7
+ import { c as i } from "./utils-B6yFEsav.mjs";
8
+ function N({ children: m, open: l, onOpenChange: t }) {
9
+ const [o, f] = d.useState(!1), r = l !== void 0, c = r ? l : o, a = d.useCallback(
10
+ (s) => {
11
11
  let e;
12
- typeof n == "function" ? e = n(l) : e = n, m ? s?.(e) : c(e);
12
+ typeof s == "function" ? e = s(c) : e = s, r ? t?.(e) : f(e);
13
13
  },
14
- [m, l, s]
14
+ [r, c, t]
15
15
  );
16
- return o.useEffect(() => {
17
- const n = (e) => {
18
- e.key === "k" && (e.metaKey || e.ctrlKey) && (e.preventDefault(), d((f) => !f));
16
+ return d.useEffect(() => {
17
+ const s = (e) => {
18
+ e.key === "k" && (e.metaKey || e.ctrlKey) && (e.preventDefault(), a((p) => !p));
19
19
  };
20
- return document.addEventListener("keydown", n), () => document.removeEventListener("keydown", n);
21
- }, [d]), /* @__PURE__ */ t.jsx(h, { open: l, onOpenChange: d, children: a });
20
+ return document.addEventListener("keydown", s), () => document.removeEventListener("keydown", s);
21
+ }, [a]), /* @__PURE__ */ n.jsx(h, { open: c, onOpenChange: a, children: m });
22
22
  }
23
- const j = o.forwardRef(
24
- ({ className: a, placeholder: r = "Search docs...", variant: s = "default", ...i }, c) => /* @__PURE__ */ t.jsxs(
25
- x,
26
- {
27
- variant: "outline",
28
- className: p(
29
- "text-muted-foreground relative h-9 text-sm transition-all transition-colors",
30
- s === "default" ? "w-full justify-start pr-12" : "w-9 justify-center px-0 md:w-40 md:justify-start md:px-3 md:pr-12 lg:w-64",
31
- a
32
- ),
33
- ref: c,
34
- ...i,
35
- children: [
36
- /* @__PURE__ */ t.jsxs("span", { className: "inline-flex items-center gap-2", children: [
37
- /* @__PURE__ */ t.jsx(u, { className: "h-4 w-4 shrink-0" }),
38
- /* @__PURE__ */ t.jsx("span", { className: p("truncate", s === "compact" && "hidden md:inline"), children: r })
39
- ] }),
40
- /* @__PURE__ */ t.jsxs("kbd", { className: "bg-muted pointer-events-none absolute top-1.5 right-1.5 hidden h-6 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none sm:flex", children: [
41
- /* @__PURE__ */ t.jsx("span", { className: "text-xs", children: "⌘" }),
42
- "K"
43
- ] })
44
- ]
45
- }
46
- )
23
+ const j = d.forwardRef(
24
+ ({ className: m, placeholder: l, variant: t = "default", responsive: o = !1, ...f }, r) => {
25
+ const a = l || (t === "compact" ? "Search..." : "Search docs...");
26
+ return /* @__PURE__ */ n.jsxs(
27
+ x,
28
+ {
29
+ variant: "outline",
30
+ className: i(
31
+ "text-muted-foreground relative h-9 text-sm transition-all transition-colors",
32
+ t === "default" ? "w-full justify-start pr-12" : i("w-9 justify-center px-0", o && "2xl:w-48 2xl:justify-start 2xl:px-3 2xl:pr-12"),
33
+ m
34
+ ),
35
+ ref: r,
36
+ ...f,
37
+ children: [
38
+ /* @__PURE__ */ n.jsxs("span", { className: "inline-flex items-center gap-2", children: [
39
+ /* @__PURE__ */ n.jsx(u, { className: "h-4 w-4 shrink-0" }),
40
+ /* @__PURE__ */ n.jsx("span", { className: i("truncate", t === "compact" && (o ? "hidden 2xl:inline" : "hidden")), children: a })
41
+ ] }),
42
+ /* @__PURE__ */ n.jsxs(
43
+ "kbd",
44
+ {
45
+ className: i(
46
+ "bg-muted pointer-events-none absolute top-1.5 right-1.5 hidden h-6 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none",
47
+ t === "default" && "sm:flex",
48
+ t === "compact" && o && "2xl:flex"
49
+ ),
50
+ children: [
51
+ /* @__PURE__ */ n.jsx("span", { className: "text-xs", children: "⌘" }),
52
+ "K"
53
+ ]
54
+ }
55
+ )
56
+ ]
57
+ }
58
+ );
59
+ }
47
60
  );
48
61
  j.displayName = "SearchTrigger";
49
62
  export {
50
- S as Search,
63
+ N as Search,
51
64
  j as SearchTrigger
52
65
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gv-tech/ui-web",
3
- "version": "2.15.1",
3
+ "version": "2.15.2",
4
4
  "description": "Web (DOM/Radix) implementations of the GV Tech design system components",
5
5
  "repository": {
6
6
  "type": "git",
package/src/search.tsx CHANGED
@@ -59,7 +59,10 @@ export function Search({ children, open: customOpen, onOpenChange }: SearchProps
59
59
  export interface SearchTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, SearchTriggerBaseProps {}
60
60
 
61
61
  export const SearchTrigger = React.forwardRef<HTMLButtonElement, SearchTriggerProps>(
62
- ({ className, placeholder = 'Search docs...', variant = 'default', ...props }, ref) => {
62
+ ({ className, placeholder, variant = 'default', responsive = false, ...props }, ref) => {
63
+ const defaultPlaceholder = variant === 'compact' ? 'Search...' : 'Search docs...';
64
+ const activePlaceholder = placeholder || defaultPlaceholder;
65
+
63
66
  return (
64
67
  <Button
65
68
  variant="outline"
@@ -67,7 +70,7 @@ export const SearchTrigger = React.forwardRef<HTMLButtonElement, SearchTriggerPr
67
70
  'text-muted-foreground relative h-9 text-sm transition-all transition-colors',
68
71
  variant === 'default'
69
72
  ? 'w-full justify-start pr-12'
70
- : 'w-9 justify-center px-0 md:w-40 md:justify-start md:px-3 md:pr-12 lg:w-64',
73
+ : cn('w-9 justify-center px-0', responsive && '2xl:w-48 2xl:justify-start 2xl:px-3 2xl:pr-12'),
71
74
  className,
72
75
  )}
73
76
  ref={ref}
@@ -75,9 +78,17 @@ export const SearchTrigger = React.forwardRef<HTMLButtonElement, SearchTriggerPr
75
78
  >
76
79
  <span className="inline-flex items-center gap-2">
77
80
  <SearchIcon className="h-4 w-4 shrink-0" />
78
- <span className={cn('truncate', variant === 'compact' && 'hidden md:inline')}>{placeholder}</span>
81
+ <span className={cn('truncate', variant === 'compact' && (responsive ? 'hidden 2xl:inline' : 'hidden'))}>
82
+ {activePlaceholder}
83
+ </span>
79
84
  </span>
80
- <kbd className="bg-muted pointer-events-none absolute top-1.5 right-1.5 hidden h-6 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none sm:flex">
85
+ <kbd
86
+ className={cn(
87
+ 'bg-muted pointer-events-none absolute top-1.5 right-1.5 hidden h-6 items-center gap-1 rounded border px-1.5 font-mono text-[10px] font-medium opacity-100 select-none',
88
+ variant === 'default' && 'sm:flex',
89
+ variant === 'compact' && responsive && '2xl:flex',
90
+ )}
91
+ >
81
92
  <span className="text-xs">⌘</span>K
82
93
  </kbd>
83
94
  </Button>