@oneplatformdev/ui 0.1.99-beta.66 → 0.1.99-beta.68

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/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## 0.1.99-beta.68 (2026-01-16)
2
+
3
+ ### 🧱 Updated Dependencies
4
+
5
+ - Updated @oneplatformdev/utils to 0.1.99-beta.68
6
+ - Updated @oneplatformdev/hooks to 0.1.99-beta.68
7
+ - Updated @oneplatformdev/tokens to 0.1.99-beta.68
8
+
9
+ ## 0.1.99-beta.67 (2026-01-16)
10
+
11
+ ### 🧱 Updated Dependencies
12
+
13
+ - Updated @oneplatformdev/utils to 0.1.99-beta.67
14
+ - Updated @oneplatformdev/hooks to 0.1.99-beta.67
15
+ - Updated @oneplatformdev/tokens to 0.1.99-beta.67
16
+
1
17
  ## 0.1.99-beta.66 (2026-01-16)
2
18
 
3
19
  ### 🧱 Updated Dependencies
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/Combobox/Combobox.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAGL,aAAa,EACd,MAAM,kBAAkB,CAAC;AAqB1B,eAAO,MAAM,QAAQ,GAAI,IAAI,SAAS,MAAM,EAAG,OAAO,aAAa,CAAC,IAAI,CAAC,4CA2QxE,CAAA"}
1
+ {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/Combobox/Combobox.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAGL,aAAa,EACd,MAAM,kBAAkB,CAAC;AAqB1B,eAAO,MAAM,QAAQ,GAAI,IAAI,SAAS,MAAM,EAAI,OAAO,aAAa,CAAC,IAAI,CAAC,4CAiRzE,CAAA"}
@@ -1,28 +1,28 @@
1
- import { jsx as e, jsxs as p, Fragment as A } from "react/jsx-runtime";
2
- import { useState as l, useCallback as m, useEffect as ae, useMemo as F, useLayoutEffect as ie } from "react";
1
+ import { jsx as e, jsxs as p, Fragment as j } from "react/jsx-runtime";
2
+ import { useState as l, useCallback as f, useEffect as le, useMemo as A, useLayoutEffect as se } from "react";
3
3
  import { LoadingMask as X } from "../LoadingMask/LoadingMask.js";
4
4
  import "../LoadingMask/RenderLoadingMask.js";
5
- import { Popover as le, PopoverTrigger as se, PopoverContent as ce } from "../Popover/Popover.js";
6
- import { Button as de } from "../Button/Button.js";
5
+ import { Popover as ce, PopoverTrigger as de, PopoverContent as pe } from "../Popover/Popover.js";
6
+ import { Button as fe } from "../Button/Button.js";
7
7
  import "../Button/buttonVariants.js";
8
- import { Command as pe, CommandInput as me, CommandList as fe, CommandGroup as ue, CommandEmpty as _, CommandItem as he } from "../Command/Command.js";
9
- import { cn as M } from "@oneplatformdev/utils";
10
- import { useDebounceCallback as ge } from "@oneplatformdev/hooks";
11
- import { X as be, ChevronsUpDown as ye } from "lucide-react";
12
- import { ComboboxOptions as ve } from "./ComboboxOptions.js";
13
- const Ce = (N) => {
14
- const { value: n, flattenOptions: S = [], selectedOption: L } = N;
8
+ import { Command as me, CommandInput as ue, CommandList as he, CommandGroup as ge, CommandEmpty as _, CommandItem as be } from "../Command/Command.js";
9
+ import { cn as F } from "@oneplatformdev/utils";
10
+ import { useDebounceCallback as ye } from "@oneplatformdev/hooks";
11
+ import { X as ve, ChevronsUpDown as Ce } from "lucide-react";
12
+ import { ComboboxOptions as we } from "./ComboboxOptions.js";
13
+ const xe = (O) => {
14
+ const { value: n, flattenOptions: S = [], selectedOption: L } = O;
15
15
  if (!n) return "No value for render label";
16
- const y = [S.find((f) => String(f.value).toLowerCase() === String(n).toLowerCase()), L].filter(Boolean).map((f) => f.label).find(Boolean);
16
+ const y = [S.find((m) => String(m.value).toLowerCase() === String(n).toLowerCase()), L].filter(Boolean).map((m) => m.label).find(Boolean);
17
17
  return y || n;
18
- }, je = (N) => {
18
+ }, Ae = (O) => {
19
19
  const {
20
20
  value: n,
21
21
  onChange: S,
22
22
  placeholder: L,
23
23
  disabled: T,
24
24
  searchLabel: y = "Type to search...",
25
- fetchOptions: f,
25
+ fetchOptions: m,
26
26
  options: I,
27
27
  emptyLabel: R = "No options",
28
28
  emptyAction: v,
@@ -30,66 +30,68 @@ const Ce = (N) => {
30
30
  listHeadAction: C,
31
31
  listFooterAction: w,
32
32
  onMount: k,
33
- defaultNodeOpen: J,
34
- defaultNodeDisabled: K
35
- } = N, [G, U] = l(!1), [s, D] = l(!1), [a, P] = l(""), [u, E] = l(), [r, c] = l(!1), [o, Q] = l([]), [Y, Z] = l([]), h = m((t) => {
36
- const g = (j) => {
33
+ defaultNodeDisabled: J,
34
+ defaultNodeMatched: K,
35
+ defaultNodeMuted: Q,
36
+ defaultNodeInteractive: Y
37
+ } = O, [G, U] = l(!1), [s, D] = l(!1), [r, M] = l(""), [u, P] = l(), [a, c] = l(!1), [o, Z] = l([]), [$, ee] = l([]), h = f((t) => {
38
+ const g = (E) => {
37
39
  const i = [], V = (x) => {
38
40
  if (x)
39
41
  for (const b of x)
40
42
  i.push(b), b.items && b.items.length && V(b.items);
41
43
  };
42
- V(j), Z((x) => {
43
- if (!i.find((O) => !!n && String(O.value) === String(n))) {
44
- const O = u || x.find((re) => !!n && String(re.value) === String(n));
45
- if (O) return [O, ...i];
44
+ V(E), ee((x) => {
45
+ if (!i.find((N) => !!n && String(N.value) === String(n))) {
46
+ const N = u || x.find((ie) => !!n && String(ie.value) === String(n));
47
+ if (N) return [N, ...i];
46
48
  }
47
49
  return i;
48
50
  });
49
51
  };
50
- Q((j) => {
51
- const i = typeof t == "function" ? t(j) : t;
52
+ Z((E) => {
53
+ const i = typeof t == "function" ? t(E) : t;
52
54
  return g(i), i;
53
55
  });
54
56
  }, [u, n]);
55
- ae(() => {
57
+ le(() => {
56
58
  I?.length && h(I);
57
59
  }, [I]);
58
- const $ = async () => {
59
- s || (W(), P(""));
60
- }, W = m(async (t) => {
60
+ const te = async () => {
61
+ s || (W(), M(""));
62
+ }, W = f(async (t) => {
61
63
  c(!0);
62
64
  try {
63
- const g = await f(t);
65
+ const g = await m(t);
64
66
  h(g);
65
67
  } catch (g) {
66
68
  console.error("Unexpected error while get option:", g);
67
69
  } finally {
68
70
  c(!1);
69
71
  }
70
- }, [h]), ee = ge(W, 1e3, {
72
+ }, [h]), ne = ye(W, 1e3, {
71
73
  leading: !1,
72
74
  trailing: !0
73
- }), te = m((t) => {
74
- c(!0), P(t), ee(t);
75
- }, []), q = m((t) => {
76
- S(t.value), E(t), c(!1);
77
- }, []), ne = m(() => {
78
- q({ value: "", label: "" }), E(void 0), c(!1);
79
- }, []), z = F(() => !!a && !o.length && !r, [r, o.length, a]), H = F(() => !o.length && !r, [r, o.length, a]), d = F(() => ({
75
+ }), oe = f((t) => {
76
+ c(!0), M(t), ne(t);
77
+ }, []), q = f((t) => {
78
+ S(t.value), P(t), c(!1);
79
+ }, []), ae = f(() => {
80
+ q({ value: "", label: "" }), P(void 0), c(!1);
81
+ }, []), z = A(() => !!r && !o.length && !a, [a, o.length, r]), H = A(() => !o.length && !a, [a, o.length, r]), d = A(() => ({
80
82
  options: o,
81
83
  setOptions: h,
82
84
  selectedOption: u,
83
- setSelectedOption: E,
84
- search: a || "",
85
- setSearch: P,
85
+ setSelectedOption: P,
86
+ search: r || "",
87
+ setSearch: M,
86
88
  open: s,
87
89
  setOpen: D,
88
- loading: r,
90
+ loading: a,
89
91
  setLoading: c,
90
92
  isEmptyList: H,
91
93
  isSearchedEmptyList: z
92
- }), [r, s, o, a, u, H, z, h]), oe = m(async () => {
94
+ }), [a, s, o, r, u, H, z, h]), re = f(async () => {
93
95
  if (k) {
94
96
  U(!0);
95
97
  try {
@@ -99,73 +101,79 @@ const Ce = (N) => {
99
101
  }
100
102
  }
101
103
  }, [k, d]);
102
- return ie(() => {
103
- oe();
104
+ return se(() => {
105
+ re();
104
106
  }, []), /* @__PURE__ */ e("div", { className: "w-full", children: /* @__PURE__ */ p(
105
- le,
107
+ ce,
106
108
  {
107
109
  open: s,
108
110
  onOpenChange: (t) => {
109
- D(t), t && $();
111
+ D(t), t && te();
110
112
  },
111
113
  children: [
112
- /* @__PURE__ */ e(se, { asChild: !0, className: "border-input", children: /* @__PURE__ */ e(
113
- de,
114
+ /* @__PURE__ */ e(de, { asChild: !0, className: "border-input", children: /* @__PURE__ */ e(
115
+ fe,
114
116
  {
115
117
  color: "secondary",
116
118
  role: "combobox",
117
119
  "aria-expanded": s,
118
- className: M(
120
+ className: F(
119
121
  "relative w-full justify-between font-normal text-sm bg-transparent",
120
122
  "border border-border",
121
123
  s && "border-2 outline-hidden ring-1 ring-ring",
122
124
  "focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring"
123
125
  ),
124
126
  disabled: T || G,
125
- children: G ? /* @__PURE__ */ e(X, { fullWidth: !0 }) : /* @__PURE__ */ p(A, { children: [
126
- /* @__PURE__ */ e("span", { className: "truncate max-w-[calc(100%-1.5rem)] overflow-hidden whitespace-nowrap", children: n ? Ce({ value: n, flattenOptions: Y, selectedOption: u }) : /* @__PURE__ */ e("span", { className: "text-gray-400", children: L }) }),
127
+ children: G ? /* @__PURE__ */ e(X, { fullWidth: !0 }) : /* @__PURE__ */ p(j, { children: [
128
+ /* @__PURE__ */ e(
129
+ "span",
130
+ {
131
+ className: "truncate max-w-[calc(100%-1.5rem)] overflow-hidden whitespace-nowrap",
132
+ children: n ? xe({ value: n, flattenOptions: $, selectedOption: u }) : /* @__PURE__ */ e("span", { className: "text-gray-400", children: L })
133
+ }
134
+ ),
127
135
  n ? /* @__PURE__ */ e(
128
136
  "div",
129
137
  {
130
- className: M(
138
+ className: F(
131
139
  "absolute top-0 right-1",
132
140
  "flex items-center justify-center",
133
141
  "w-9 aspect-square [&_svg]:size-5",
134
142
  "opacity-50 cursor-pointer hover:opacity-100"
135
143
  ),
136
144
  onClick: (t) => {
137
- t.stopPropagation(), ne();
145
+ t.stopPropagation(), ae();
138
146
  },
139
- children: /* @__PURE__ */ e(be, {})
147
+ children: /* @__PURE__ */ e(ve, {})
140
148
  }
141
- ) : /* @__PURE__ */ e(ye, { className: "opacity-50 w-4 h-4" })
149
+ ) : /* @__PURE__ */ e(Ce, { className: "opacity-50 w-4 h-4" })
142
150
  ] })
143
151
  }
144
152
  ) }),
145
153
  /* @__PURE__ */ e(
146
- ce,
154
+ pe,
147
155
  {
148
156
  className: "w-(--radix-popper-anchor-width) max-w-none p-0",
149
157
  align: "start",
150
- children: /* @__PURE__ */ p(pe, { shouldFilter: !1, children: [
158
+ children: /* @__PURE__ */ p(me, { shouldFilter: !1, children: [
151
159
  /* @__PURE__ */ e(
152
- me,
160
+ ue,
153
161
  {
154
162
  placeholder: y,
155
- value: a,
156
- onValueChange: te
163
+ value: r,
164
+ onValueChange: oe
157
165
  }
158
166
  ),
159
167
  typeof B == "function" ? B(d) : B,
160
- /* @__PURE__ */ e(fe, { children: /* @__PURE__ */ p(ue, { className: M(!o.length && "p-0 shadow-none"), children: [
161
- r && /* @__PURE__ */ e(X, { fullWidth: !0 }),
162
- !r && !!a && /* @__PURE__ */ e(A, { children: v ? /* @__PURE__ */ p(_, { className: "flex flex-col gap-3 py-5 px-3 items-center", children: [
168
+ /* @__PURE__ */ e(he, { children: /* @__PURE__ */ p(ge, { className: F(!o.length && "p-0 shadow-none"), children: [
169
+ a && /* @__PURE__ */ e(X, { fullWidth: !0 }),
170
+ !a && !!r && /* @__PURE__ */ e(j, { children: v ? /* @__PURE__ */ p(_, { className: "flex flex-col gap-3 py-5 px-3 items-center", children: [
163
171
  /* @__PURE__ */ e("span", { children: R }),
164
172
  typeof v == "function" ? v(d) : v
165
173
  ] }) : /* @__PURE__ */ e(_, { children: R }) }),
166
- !r && /* @__PURE__ */ p(A, { children: [
174
+ !a && /* @__PURE__ */ p(j, { children: [
167
175
  !!o.length && C && /* @__PURE__ */ e(
168
- he,
176
+ be,
169
177
  {
170
178
  asChild: !0,
171
179
  className: "w-full",
@@ -174,14 +182,17 @@ const Ce = (N) => {
174
182
  "combobox-list-head-action"
175
183
  ),
176
184
  /* @__PURE__ */ e(
177
- ve,
185
+ we,
178
186
  {
187
+ searchTerm: r,
179
188
  value: n,
180
189
  options: o,
181
190
  onChangeOption: q,
182
191
  setOpen: D,
183
- defaultNodeOpen: J,
184
- defaultNodeDisabled: K
192
+ defaultNodeDisabled: J,
193
+ defaultNodeMatched: K,
194
+ defaultNodeMuted: Q,
195
+ defaultNodeInteractive: Y
185
196
  }
186
197
  )
187
198
  ] })
@@ -202,6 +213,6 @@ const Ce = (N) => {
202
213
  ) });
203
214
  };
204
215
  export {
205
- je as Combobox
216
+ Ae as Combobox
206
217
  };
207
218
  //# sourceMappingURL=Combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","sources":["../../src/Combobox/Combobox.tsx"],"sourcesContent":["import {\n Dispatch,\n SetStateAction,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState,\n} from 'react';\nimport { LoadingMask } from '../LoadingMask';\nimport { Popover, PopoverContent, PopoverTrigger } from '../Popover';\nimport { Button } from '../Button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '../Command';\nimport { cn } from '@oneplatformdev/utils';\nimport { useDebounceCallback } from '@oneplatformdev/hooks';\nimport { ChevronsUpDown, X } from 'lucide-react';\nimport {\n ComboboxCallbackStateParams,\n ComboboxOption,\n ComboboxProps,\n} from './Combobox.types';\nimport { ComboboxOptions } from './ComboboxOptions';\n\n// TODO: refactor next component | nlt code\nconst getSelectRenderLabel = <Data extends object>(params: {\n value: ComboboxProps<Data>['value'];\n flattenOptions: ComboboxOption<Data>[];\n selectedOption?: ComboboxOption<Data>;\n}): string => {\n const { value, flattenOptions = [], selectedOption } = params;\n if(!value) return 'No value for render label';\n const flattenedOption = flattenOptions.find(o => String(o.value).toLowerCase() === String(value).toLowerCase());\n const label = [flattenedOption, selectedOption]\n .filter(Boolean)\n .map(o => o!.label)\n .find(Boolean);\n if(!label) return value;\n return label;\n}\n\n// TODO: refactor next component | nlt code\nexport const Combobox = <Data extends object,>(props: ComboboxProps<Data>) => {\n const {\n value,\n onChange,\n placeholder,\n disabled,\n searchLabel = 'Type to search...',\n fetchOptions,\n options: itemOptions,\n emptyLabel = 'No options',\n emptyAction,\n commandInputAction,\n listHeadAction,\n listFooterAction,\n onMount,\n defaultNodeOpen,\n defaultNodeDisabled,\n } = props;\n const [initialLoading, setInitialLoading] = useState(false);\n const [open, setOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n const [selectedOption, setSelectedOption] = useState<ComboboxOption<Data>>();\n const [loading, setLoading] = useState(false);\n\n const [options, setOptionsDispatch] = useState<ComboboxOption<Data>[]>([]);\n const [flattenOptions, setFlattenOptions] = useState<ComboboxOption<Data>[]>([]);\n const setOptions: Dispatch<SetStateAction<ComboboxOption<Data>[]>> = useCallback((stater) => {\n const flatten = (next: ComboboxOption<Data>[]) => {\n const res: ComboboxOption<Data>[] = [];\n const walk = (nodes?: ComboboxOption<Data>[]) => {\n if (!nodes) return;\n for (const node of nodes) {\n res.push(node);\n if (node.items && node.items.length) walk(node.items);\n }\n };\n walk(next);\n setFlattenOptions((prev) => {\n const isIncludedInRes = res.find(o => !!value && String(o.value) === String(value));\n\n if(!isIncludedInRes) {\n const current = selectedOption || prev.find(o => !!value && String(o.value) === String(value))\n if(current) return [current, ...res];\n }\n\n return res;\n });\n }\n setOptionsDispatch((prev) => {\n const next: ComboboxOption<Data>[] = typeof stater === 'function' ? stater(prev) : stater;\n flatten(next);\n return next;\n });\n }, [selectedOption, value])\n\n useEffect(() => {\n itemOptions?.length && setOptions(itemOptions);\n }, [itemOptions]);\n\n const handlePopoverOpen = async () => {\n if (!open) {\n void getData();\n setSearchTerm('');\n }\n };\n\n const getData = useCallback(async (search?: string) => {\n setLoading(true);\n try {\n const fetchedOptions = await fetchOptions(search);\n setOptions(fetchedOptions);\n } catch (error) {\n console.error('Unexpected error while get option:', error);\n } finally {\n setLoading(false);\n }\n }, [setOptions]);\n\n const debouncedGetData = useDebounceCallback(getData, 1000, {\n leading: false,\n trailing: true,\n });\n\n const handleSearchChange = useCallback((value: string) => {\n setLoading(true);\n setSearchTerm(value);\n debouncedGetData(value);\n }, []);\n\n const onChangeOption = useCallback((option: ComboboxOption<Data>) => {\n onChange(option.value);\n setSelectedOption(option);\n setLoading(false);\n }, []);\n\n const handleClearSelection = useCallback(() => {\n onChangeOption({ value: '', label: '' });\n setSelectedOption(undefined);\n setLoading(false);\n }, []);\n\n const isSearchedEmptyList = useMemo(() => {\n return Boolean(searchTerm) && !options.length && !loading;\n }, [loading, options.length, searchTerm])\n\n const isEmptyList = useMemo(() => {\n return !options.length && !loading;\n }, [loading, options.length, searchTerm])\n\n const comboboxCallbackStateParams =\n useMemo((): ComboboxCallbackStateParams<Data> => {\n return {\n options,\n setOptions,\n selectedOption,\n setSelectedOption,\n search: searchTerm || '',\n setSearch: setSearchTerm,\n open,\n setOpen,\n loading,\n setLoading,\n isEmptyList,\n isSearchedEmptyList,\n };\n }, [loading, open, options, searchTerm, selectedOption, isEmptyList, isSearchedEmptyList, setOptions]);\n\n const runOnMount = useCallback(async () => {\n if (!onMount) return;\n setInitialLoading(true);\n try {\n await onMount(comboboxCallbackStateParams);\n } finally {\n setInitialLoading(false);\n }\n }, [onMount, comboboxCallbackStateParams]);\n\n useLayoutEffect(() => {\n runOnMount();\n }, []);\n\n return (\n <div className=\"w-full\">\n <Popover\n open={open}\n onOpenChange={(newOpen) => {\n setOpen(newOpen);\n if (newOpen) handlePopoverOpen();\n }}\n >\n <PopoverTrigger asChild className=\"border-input\">\n <Button\n color='secondary'\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\n 'relative w-full justify-between font-normal text-sm bg-transparent',\n 'border border-border',\n open && 'border-2 outline-hidden ring-1 ring-ring',\n 'focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring'\n )}\n disabled={disabled || initialLoading}\n >\n {initialLoading ? (\n <LoadingMask fullWidth />\n ) : (\n <>\n <span className=\"truncate max-w-[calc(100%-1.5rem)] overflow-hidden whitespace-nowrap\">\n {value\n ? getSelectRenderLabel({ value, flattenOptions, selectedOption })\n : <span className=\"text-gray-400\">{placeholder}</span>\n }\n </span>\n {value ? (\n <div\n className={cn(\n 'absolute top-0 right-1',\n 'flex items-center justify-center',\n 'w-9 aspect-square [&_svg]:size-5',\n 'opacity-50 cursor-pointer hover:opacity-100'\n )}\n onClick={(e) => {\n e.stopPropagation();\n handleClearSelection();\n }}\n >\n <X />\n </div>\n ) : (\n <ChevronsUpDown className=\"opacity-50 w-4 h-4\" />\n )}\n </>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-(--radix-popper-anchor-width) max-w-none p-0\"\n align=\"start\"\n >\n <Command shouldFilter={false}>\n <CommandInput\n placeholder={searchLabel}\n value={searchTerm}\n onValueChange={handleSearchChange}\n />\n {typeof commandInputAction === 'function'\n ? commandInputAction(comboboxCallbackStateParams)\n : commandInputAction}\n <CommandList>\n <CommandGroup className={cn(!options.length && 'p-0 shadow-none')}>\n {loading && <LoadingMask fullWidth />}\n {!loading && Boolean(searchTerm) && (\n <>\n {emptyAction ? (\n <CommandEmpty className=\"flex flex-col gap-3 py-5 px-3 items-center\">\n <span>{emptyLabel}</span>\n {typeof emptyAction === 'function'\n ? emptyAction(comboboxCallbackStateParams)\n : emptyAction}\n </CommandEmpty>\n ) : (\n <CommandEmpty>{emptyLabel}</CommandEmpty>\n )}\n </>\n )}\n {!loading && (\n <>\n {Boolean(options.length) && listHeadAction && (\n <CommandItem\n key='combobox-list-head-action'\n asChild\n className='w-full'\n >\n {typeof listHeadAction === 'function'\n ? listHeadAction(comboboxCallbackStateParams)\n : listHeadAction}\n </CommandItem>\n )}\n <ComboboxOptions\n value={value}\n options={options}\n onChangeOption={onChangeOption}\n setOpen={setOpen}\n defaultNodeOpen={defaultNodeOpen}\n defaultNodeDisabled={defaultNodeDisabled}\n />\n </>\n )}\n </CommandGroup>\n </CommandList>\n\n {/*LIST FOOTER ACTION*/}\n {Boolean(options.length) && listFooterAction && (\n <div\n data-slot=\"command-footer-wrapper\"\n className=\"flex w-full min-h-9 items-center gap-2 border-t px-3\"\n >\n {typeof listFooterAction === 'function'\n ? listFooterAction(comboboxCallbackStateParams)\n : listFooterAction}\n </div>\n )}\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n"],"names":["getSelectRenderLabel","params","value","flattenOptions","selectedOption","label","o","Combobox","props","onChange","placeholder","disabled","searchLabel","fetchOptions","itemOptions","emptyLabel","emptyAction","commandInputAction","listHeadAction","listFooterAction","onMount","defaultNodeOpen","defaultNodeDisabled","initialLoading","setInitialLoading","useState","open","setOpen","searchTerm","setSearchTerm","setSelectedOption","loading","setLoading","options","setOptionsDispatch","setFlattenOptions","setOptions","useCallback","stater","flatten","next","res","walk","nodes","node","prev","current","useEffect","handlePopoverOpen","getData","search","fetchedOptions","error","debouncedGetData","useDebounceCallback","handleSearchChange","onChangeOption","option","handleClearSelection","isSearchedEmptyList","useMemo","isEmptyList","comboboxCallbackStateParams","runOnMount","useLayoutEffect","jsx","jsxs","Popover","newOpen","PopoverTrigger","Button","cn","LoadingMask","Fragment","e","X","ChevronsUpDown","PopoverContent","Command","CommandInput","CommandList","CommandGroup","CommandEmpty","CommandItem","ComboboxOptions"],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.js","sources":["../../src/Combobox/Combobox.tsx"],"sourcesContent":["import {\n Dispatch,\n SetStateAction,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState,\n} from 'react';\nimport { LoadingMask } from '../LoadingMask';\nimport { Popover, PopoverContent, PopoverTrigger } from '../Popover';\nimport { Button } from '../Button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '../Command';\nimport { cn } from '@oneplatformdev/utils';\nimport { useDebounceCallback } from '@oneplatformdev/hooks';\nimport { ChevronsUpDown, X } from 'lucide-react';\nimport {\n ComboboxCallbackStateParams,\n ComboboxOption,\n ComboboxProps,\n} from './Combobox.types';\nimport { ComboboxOptions } from './ComboboxOptions';\n\n// TODO: refactor next component | nlt code\nconst getSelectRenderLabel = <Data extends object>(params: {\n value: ComboboxProps<Data>['value'];\n flattenOptions: ComboboxOption<Data>[];\n selectedOption?: ComboboxOption<Data>;\n}): string => {\n const { value, flattenOptions = [], selectedOption } = params;\n if (!value) return 'No value for render label';\n const flattenedOption = flattenOptions.find(o => String(o.value).toLowerCase() === String(value).toLowerCase());\n const label = [ flattenedOption, selectedOption ]\n .filter(Boolean)\n .map(o => o!.label)\n .find(Boolean);\n if (!label) return value;\n return label;\n}\n\n// TODO: refactor next component | nlt code\nexport const Combobox = <Data extends object, >(props: ComboboxProps<Data>) => {\n const {\n value,\n onChange,\n placeholder,\n disabled,\n searchLabel = 'Type to search...',\n fetchOptions,\n options: itemOptions,\n emptyLabel = 'No options',\n emptyAction,\n commandInputAction,\n listHeadAction,\n listFooterAction,\n onMount,\n defaultNodeDisabled,\n defaultNodeMatched,\n defaultNodeMuted,\n defaultNodeInteractive,\n } = props;\n const [ initialLoading, setInitialLoading ] = useState(false);\n const [ open, setOpen ] = useState(false);\n const [ searchTerm, setSearchTerm ] = useState('');\n const [ selectedOption, setSelectedOption ] = useState<ComboboxOption<Data>>();\n const [ loading, setLoading ] = useState(false);\n\n const [ options, setOptionsDispatch ] = useState<ComboboxOption<Data>[]>([]);\n const [ flattenOptions, setFlattenOptions ] = useState<ComboboxOption<Data>[]>([]);\n const setOptions: Dispatch<SetStateAction<ComboboxOption<Data>[]>> = useCallback((stater) => {\n const flatten = (next: ComboboxOption<Data>[]) => {\n const res: ComboboxOption<Data>[] = [];\n const walk = (nodes?: ComboboxOption<Data>[]) => {\n if (!nodes) return;\n for (const node of nodes) {\n res.push(node);\n if (node.items && node.items.length) walk(node.items);\n }\n };\n walk(next);\n setFlattenOptions((prev) => {\n const isIncludedInRes = res.find(o => !!value && String(o.value) === String(value));\n\n if (!isIncludedInRes) {\n const current = selectedOption || prev.find(o => !!value && String(o.value) === String(value))\n if (current) return [ current, ...res ];\n }\n\n return res;\n });\n }\n setOptionsDispatch((prev) => {\n const next: ComboboxOption<Data>[] = typeof stater === 'function' ? stater(prev) : stater;\n flatten(next);\n return next;\n });\n }, [ selectedOption, value ])\n\n useEffect(() => {\n itemOptions?.length && setOptions(itemOptions);\n }, [ itemOptions ]);\n\n const handlePopoverOpen = async () => {\n if (!open) {\n void getData();\n setSearchTerm('');\n }\n };\n\n const getData = useCallback(async (search?: string) => {\n setLoading(true);\n try {\n const fetchedOptions = await fetchOptions(search);\n setOptions(fetchedOptions);\n } catch (error) {\n console.error('Unexpected error while get option:', error);\n } finally {\n setLoading(false);\n }\n }, [ setOptions ]);\n\n const debouncedGetData = useDebounceCallback(getData, 1000, {\n leading: false,\n trailing: true,\n });\n\n const handleSearchChange = useCallback((value: string) => {\n setLoading(true);\n setSearchTerm(value);\n debouncedGetData(value);\n }, []);\n\n const onChangeOption = useCallback((option: ComboboxOption<Data>) => {\n onChange(option.value);\n setSelectedOption(option);\n setLoading(false);\n }, []);\n\n const handleClearSelection = useCallback(() => {\n onChangeOption({ value: '', label: '' });\n setSelectedOption(undefined);\n setLoading(false);\n }, []);\n\n const isSearchedEmptyList = useMemo(() => {\n return Boolean(searchTerm) && !options.length && !loading;\n }, [ loading, options.length, searchTerm ])\n\n const isEmptyList = useMemo(() => {\n return !options.length && !loading;\n }, [ loading, options.length, searchTerm ])\n\n const comboboxCallbackStateParams =\n useMemo((): ComboboxCallbackStateParams<Data> => {\n return {\n options,\n setOptions,\n selectedOption,\n setSelectedOption,\n search: searchTerm || '',\n setSearch: setSearchTerm,\n open,\n setOpen,\n loading,\n setLoading,\n isEmptyList,\n isSearchedEmptyList,\n };\n }, [ loading, open, options, searchTerm, selectedOption, isEmptyList, isSearchedEmptyList, setOptions ]);\n\n const runOnMount = useCallback(async () => {\n if (!onMount) return;\n setInitialLoading(true);\n try {\n await onMount(comboboxCallbackStateParams);\n } finally {\n setInitialLoading(false);\n }\n }, [ onMount, comboboxCallbackStateParams ]);\n\n useLayoutEffect(() => {\n runOnMount();\n }, []);\n\n return (\n <div className=\"w-full\">\n <Popover\n open={open}\n onOpenChange={(newOpen) => {\n setOpen(newOpen);\n if (newOpen) handlePopoverOpen();\n }}\n >\n <PopoverTrigger asChild className=\"border-input\">\n <Button\n color='secondary'\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\n 'relative w-full justify-between font-normal text-sm bg-transparent',\n 'border border-border',\n open && 'border-2 outline-hidden ring-1 ring-ring',\n 'focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring'\n )}\n disabled={disabled || initialLoading}\n >\n {initialLoading ? (\n <LoadingMask fullWidth/>\n ) : (\n <>\n <span\n className=\"truncate max-w-[calc(100%-1.5rem)] overflow-hidden whitespace-nowrap\">\n {value\n ? getSelectRenderLabel({ value, flattenOptions, selectedOption })\n : <span className=\"text-gray-400\">{placeholder}</span>\n }\n </span>\n {value ? (\n <div\n className={cn(\n 'absolute top-0 right-1',\n 'flex items-center justify-center',\n 'w-9 aspect-square [&_svg]:size-5',\n 'opacity-50 cursor-pointer hover:opacity-100'\n )}\n onClick={(e) => {\n e.stopPropagation();\n handleClearSelection();\n }}\n >\n <X/>\n </div>\n ) : (\n <ChevronsUpDown className=\"opacity-50 w-4 h-4\"/>\n )}\n </>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-(--radix-popper-anchor-width) max-w-none p-0\"\n align=\"start\"\n >\n <Command shouldFilter={false}>\n <CommandInput\n placeholder={searchLabel}\n value={searchTerm}\n onValueChange={handleSearchChange}\n />\n {typeof commandInputAction === 'function'\n ? commandInputAction(comboboxCallbackStateParams)\n : commandInputAction}\n <CommandList>\n <CommandGroup className={cn(!options.length && 'p-0 shadow-none')}>\n {loading && <LoadingMask fullWidth/>}\n {!loading && Boolean(searchTerm) && (\n <>\n {emptyAction ? (\n <CommandEmpty className=\"flex flex-col gap-3 py-5 px-3 items-center\">\n <span>{emptyLabel}</span>\n {typeof emptyAction === 'function'\n ? emptyAction(comboboxCallbackStateParams)\n : emptyAction}\n </CommandEmpty>\n ) : (\n <CommandEmpty>{emptyLabel}</CommandEmpty>\n )}\n </>\n )}\n {!loading && (\n <>\n {Boolean(options.length) && listHeadAction && (\n <CommandItem\n key='combobox-list-head-action'\n asChild\n className='w-full'\n >\n {typeof listHeadAction === 'function'\n ? listHeadAction(comboboxCallbackStateParams)\n : listHeadAction}\n </CommandItem>\n )}\n <ComboboxOptions\n searchTerm={searchTerm}\n value={value}\n options={options}\n onChangeOption={onChangeOption}\n setOpen={setOpen}\n defaultNodeDisabled={defaultNodeDisabled}\n defaultNodeMatched={defaultNodeMatched}\n defaultNodeMuted={defaultNodeMuted}\n defaultNodeInteractive={defaultNodeInteractive}\n />\n </>\n )}\n </CommandGroup>\n </CommandList>\n\n {/*LIST FOOTER ACTION*/}\n {Boolean(options.length) && listFooterAction && (\n <div\n data-slot=\"command-footer-wrapper\"\n className=\"flex w-full min-h-9 items-center gap-2 border-t px-3\"\n >\n {typeof listFooterAction === 'function'\n ? listFooterAction(comboboxCallbackStateParams)\n : listFooterAction}\n </div>\n )}\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n"],"names":["getSelectRenderLabel","params","value","flattenOptions","selectedOption","label","o","Combobox","props","onChange","placeholder","disabled","searchLabel","fetchOptions","itemOptions","emptyLabel","emptyAction","commandInputAction","listHeadAction","listFooterAction","onMount","defaultNodeDisabled","defaultNodeMatched","defaultNodeMuted","defaultNodeInteractive","initialLoading","setInitialLoading","useState","open","setOpen","searchTerm","setSearchTerm","setSelectedOption","loading","setLoading","options","setOptionsDispatch","setFlattenOptions","setOptions","useCallback","stater","flatten","next","res","walk","nodes","node","prev","current","useEffect","handlePopoverOpen","getData","search","fetchedOptions","error","debouncedGetData","useDebounceCallback","handleSearchChange","onChangeOption","option","handleClearSelection","isSearchedEmptyList","useMemo","isEmptyList","comboboxCallbackStateParams","runOnMount","useLayoutEffect","jsx","jsxs","Popover","newOpen","PopoverTrigger","Button","cn","LoadingMask","Fragment","e","X","ChevronsUpDown","PopoverContent","Command","CommandInput","CommandList","CommandGroup","CommandEmpty","CommandItem","ComboboxOptions"],"mappings":"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"}
@@ -26,8 +26,12 @@ export interface ComboboxCallbackStateParams<Data extends object = object> {
26
26
  export interface IComboboxOptionsNodeHandlersProps<Data extends object = object> {
27
27
  defaultNodeOpen?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
28
28
  defaultNodeDisabled?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
29
+ defaultNodeMatched?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
30
+ defaultNodeMuted?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
31
+ defaultNodeInteractive?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
29
32
  }
30
33
  export interface IComboboxOptionsNodeProps<Data extends object = object> extends IComboboxOptionsNodeHandlersProps<Data> {
34
+ searchTerm?: string;
31
35
  value?: string;
32
36
  option: ComboboxOption<Data>;
33
37
  onChangeOption?: (option: ComboboxOption<Data>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.types.d.ts","sourceRoot":"","sources":["../../src/Combobox/Combobox.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.types.d.ts","sourceRoot":"","sources":["../../src/Combobox/Combobox.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOptionItem.d.ts","sourceRoot":"","sources":["../../src/Combobox/ComboboxOptionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAK7D,eAAO,MAAM,kBAAkB,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,iBAAiB,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,4CAsChH,CAAA"}
1
+ {"version":3,"file":"ComboboxOptionItem.d.ts","sourceRoot":"","sources":["../../src/Combobox/ComboboxOptionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAK7D,eAAO,MAAM,kBAAkB,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,iBAAiB,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,4CAkEhH,CAAA"}
@@ -1,38 +1,53 @@
1
- import { jsxs as c, jsx as i } from "react/jsx-runtime";
2
- import { CommandItem as d } from "../Command/Command.js";
3
- import { Check as r } from "lucide-react";
4
- import { cn as n } from "@oneplatformdev/utils";
5
- const f = 8, x = (s) => {
6
- const { children: m, setOpen: p, option: e, onChangeOption: t, value: l = "", deep: o = 0, defaultNodeDisabled: a } = s;
7
- return /* @__PURE__ */ c(
8
- d,
1
+ import { jsxs as u, jsx as r } from "react/jsx-runtime";
2
+ import { CommandItem as m } from "../Command/Command.js";
3
+ import { Check as v } from "lucide-react";
4
+ import { cn as d } from "@oneplatformdev/utils";
5
+ const h = 24, O = (i) => {
6
+ const {
7
+ children: c,
8
+ setOpen: f,
9
+ option: e,
10
+ onChangeOption: s,
11
+ value: p = "",
12
+ deep: t = 0,
13
+ defaultNodeDisabled: o,
14
+ defaultNodeMatched: a,
15
+ defaultNodeMuted: n,
16
+ defaultNodeInteractive: l
17
+ } = i;
18
+ return /* @__PURE__ */ u(
19
+ m,
9
20
  {
10
21
  value: e.value,
11
22
  "data-matched": e.matched ?? !0,
12
23
  onSelect: () => {
13
- l === e.value ? t?.({ value: "", label: "" }) : t?.(e), p(!1);
24
+ p === e.value ? s?.({ value: "", label: "" }) : s?.(e), f(!1);
14
25
  },
15
26
  style: {
16
- paddingLeft: (o + 1) * f
27
+ "--deep-space": `${(t + 1) * h}px`
17
28
  },
18
- disabled: typeof a == "function" ? a(e, o) : a ?? !1,
29
+ disabled: typeof o == "function" ? o(e, t) : o ?? !1,
19
30
  children: [
20
- m,
21
- /* @__PURE__ */ i(
31
+ c,
32
+ /* @__PURE__ */ r(
22
33
  "span",
23
34
  {
24
- className: n(
25
- "overflow-hidden whitespace-wrap text-ellipsis line-clamp-2"
35
+ style: { paddingLeft: "var(--deep-space)" },
36
+ className: d(
37
+ "overflow-hidden whitespace-wrap text-ellipsis line-clamp-2",
38
+ (typeof a == "function" ? a(e, t) : a ?? !1) && "font-bold",
39
+ (typeof n == "function" ? n(e, t) : n ?? !1) && "text-opacity-80",
40
+ !(typeof l == "function" ? l(e, t) : l ?? !0) && "pointer-events-none"
26
41
  ),
27
42
  children: e.label
28
43
  }
29
44
  ),
30
- /* @__PURE__ */ i(
31
- r,
45
+ /* @__PURE__ */ r(
46
+ v,
32
47
  {
33
- className: n(
48
+ className: d(
34
49
  "ml-auto",
35
- l === e.value ? "opacity-100" : "opacity-0"
50
+ p === e.value ? "opacity-100" : "opacity-0"
36
51
  )
37
52
  }
38
53
  )
@@ -42,6 +57,6 @@ const f = 8, x = (s) => {
42
57
  );
43
58
  };
44
59
  export {
45
- x as ComboboxOptionItem
60
+ O as ComboboxOptionItem
46
61
  };
47
62
  //# sourceMappingURL=ComboboxOptionItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOptionItem.js","sources":["../../src/Combobox/ComboboxOptionItem.tsx"],"sourcesContent":["import { PropsWithChildren } from 'react';\nimport { CommandItem } from '../Command';\nimport { IComboboxOptionsNodeProps } from './Combobox.types';\nimport { Check } from 'lucide-react';\nimport { cn } from '@oneplatformdev/utils';\n\nconst DEEP_OFFSET = 8;\nexport const ComboboxOptionItem = <Data extends object>(props: PropsWithChildren<IComboboxOptionsNodeProps<Data>>) => {\n const { children, setOpen, option, onChangeOption, value = '', deep = 0, defaultNodeDisabled } = props;\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n data-matched={option.matched ?? true}\n onSelect={() => {\n if (value === option.value) {\n onChangeOption?.({ value: '', label: '' });\n } else {\n onChangeOption?.(option);\n }\n setOpen(false);\n }}\n style={{\n paddingLeft: (deep + 1) * DEEP_OFFSET,\n }}\n disabled={typeof defaultNodeDisabled === \"function\"\n ? defaultNodeDisabled(option, deep)\n : defaultNodeDisabled ?? false}\n >\n {children}\n <span\n className={cn(\n 'overflow-hidden whitespace-wrap text-ellipsis line-clamp-2'\n )}\n >\n {option.label}\n </span>\n <Check\n className={cn(\n 'ml-auto',\n value === option.value ? 'opacity-100' : 'opacity-0'\n )}\n />\n </CommandItem>\n );\n}\n"],"names":["DEEP_OFFSET","ComboboxOptionItem","props","children","setOpen","option","onChangeOption","value","deep","defaultNodeDisabled","jsxs","CommandItem","jsx","cn","Check"],"mappings":";;;;AAMA,MAAMA,IAAc,GACPC,IAAqB,CAAsBC,MAA8D;AACpH,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,QAAAC,GAAQ,gBAAAC,GAAgB,OAAAC,IAAQ,IAAI,MAAAC,IAAO,GAAG,qBAAAC,EAAA,IAAwBP;AACjG,SACE,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MAEC,OAAON,EAAO;AAAA,MACd,gBAAcA,EAAO,WAAW;AAAA,MAChC,UAAU,MAAM;AACd,QAAIE,MAAUF,EAAO,QACnBC,IAAiB,EAAE,OAAO,IAAI,OAAO,IAAI,IAEzCA,IAAiBD,CAAM,GAEzBD,EAAQ,EAAK;AAAA,MACf;AAAA,MACA,OAAO;AAAA,QACL,cAAcI,IAAO,KAAKR;AAAA,MAAA;AAAA,MAE5B,UAAU,OAAOS,KAAwB,aACrCA,EAAoBJ,GAAQG,CAAI,IAChCC,KAAuB;AAAA,MAE1B,UAAA;AAAA,QAAAN;AAAA,QACD,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,YAAA;AAAA,YAGD,UAAAR,EAAO;AAAA,UAAA;AAAA,QAAA;AAAA,QAEV,gBAAAO;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAN,MAAUF,EAAO,QAAQ,gBAAgB;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IA/BKA,EAAO;AAAA,EAAA;AAkClB;"}
1
+ {"version":3,"file":"ComboboxOptionItem.js","sources":["../../src/Combobox/ComboboxOptionItem.tsx"],"sourcesContent":["import { CSSProperties, PropsWithChildren } from 'react';\nimport { CommandItem } from '../Command';\nimport { IComboboxOptionsNodeProps } from './Combobox.types';\nimport { Check } from 'lucide-react';\nimport { cn } from '@oneplatformdev/utils';\n\nconst DEEP_OFFSET = 24;\nexport const ComboboxOptionItem = <Data extends object>(props: PropsWithChildren<IComboboxOptionsNodeProps<Data>>) => {\n const {\n children,\n setOpen,\n option,\n onChangeOption,\n value = '',\n deep = 0,\n defaultNodeDisabled,\n defaultNodeMatched,\n defaultNodeMuted,\n defaultNodeInteractive,\n } = props;\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n data-matched={option.matched ?? true}\n onSelect={() => {\n if (value === option.value) {\n onChangeOption?.({ value: '', label: '' });\n } else {\n onChangeOption?.(option);\n }\n setOpen(false);\n }}\n style={{\n '--deep-space': `${(deep + 1) * DEEP_OFFSET}px`,\n } as CSSProperties}\n disabled={typeof defaultNodeDisabled === \"function\"\n ? defaultNodeDisabled(option, deep)\n : defaultNodeDisabled ?? false}\n >\n {children}\n <span\n style={{ paddingLeft: 'var(--deep-space)' }}\n className={cn(\n 'overflow-hidden whitespace-wrap text-ellipsis line-clamp-2',\n (() => {\n return typeof defaultNodeMatched === \"function\"\n ? defaultNodeMatched(option, deep)\n : defaultNodeMatched ?? false\n })() && 'font-bold',\n (() => {\n return typeof defaultNodeMuted === \"function\"\n ? defaultNodeMuted(option, deep)\n : defaultNodeMuted ?? false\n })() && 'text-opacity-80',\n (() => {\n const res = typeof defaultNodeInteractive === \"function\"\n ? defaultNodeInteractive(option, deep)\n : defaultNodeInteractive ?? true\n return !res;\n })() && 'pointer-events-none',\n )}\n >\n {option.label}\n </span>\n <Check\n className={cn(\n 'ml-auto',\n value === option.value ? 'opacity-100' : 'opacity-0'\n )}\n />\n </CommandItem>\n );\n}\n"],"names":["DEEP_OFFSET","ComboboxOptionItem","props","children","setOpen","option","onChangeOption","value","deep","defaultNodeDisabled","defaultNodeMatched","defaultNodeMuted","defaultNodeInteractive","jsxs","CommandItem","jsx","cn","Check"],"mappings":";;;;AAMA,MAAMA,IAAc,IACPC,IAAqB,CAAsBC,MAA8D;AACpH,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,QAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,MAAAC,IAAO;AAAA,IACP,qBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,wBAAAC;AAAA,EAAA,IACEV;AACJ,SACE,gBAAAW;AAAA,IAACC;AAAA,IAAA;AAAA,MAEC,OAAOT,EAAO;AAAA,MACd,gBAAcA,EAAO,WAAW;AAAA,MAChC,UAAU,MAAM;AACd,QAAIE,MAAUF,EAAO,QACnBC,IAAiB,EAAE,OAAO,IAAI,OAAO,IAAI,IAEzCA,IAAiBD,CAAM,GAEzBD,EAAQ,EAAK;AAAA,MACf;AAAA,MACA,OAAO;AAAA,QACL,gBAAgB,IAAII,IAAO,KAAKR,CAAW;AAAA,MAAA;AAAA,MAE7C,UAAU,OAAOS,KAAwB,aACrCA,EAAoBJ,GAAQG,CAAI,IAChCC,KAAuB;AAAA,MAE1B,UAAA;AAAA,QAAAN;AAAA,QACD,gBAAAY;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,aAAa,oBAAA;AAAA,YACtB,WAAWC;AAAA,cACT;AAAA,eAEO,OAAON,KAAuB,aACjCA,EAAmBL,GAAQG,CAAI,IAC/BE,KAAsB,OAClB;AAAA,eAEC,OAAOC,KAAqB,aAC/BA,EAAiBN,GAAQG,CAAI,IAC7BG,KAAoB,OAClB;AAAA,cAKC,EAHK,OAAOC,KAA2B,aAC1CA,EAAuBP,GAAQG,CAAI,IACnCI,KAA0B,OAExB;AAAA,YAAA;AAAA,YAGT,UAAAP,EAAO;AAAA,UAAA;AAAA,QAAA;AAAA,QAEV,gBAAAU;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAT,MAAUF,EAAO,QAAQ,gBAAgB;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAhDKA,EAAO;AAAA,EAAA;AAmDlB;"}
@@ -1,51 +1,51 @@
1
- import { jsx as e, jsxs as f } from "react/jsx-runtime";
2
- import { useState as u } from "react";
3
- import { Collapsible as b, CollapsibleTrigger as g, CollapsibleContent as h } from "../Collapsible/Collapsible.js";
4
- import { ComboboxOptionItem as c } from "./ComboboxOptionItem.js";
5
- import { ChevronDownIcon as v } from "lucide-react";
1
+ import { jsx as e, jsxs as u } from "react/jsx-runtime";
2
+ import { useState as b } from "react";
3
+ import { Collapsible as h, CollapsibleTrigger as g, CollapsibleContent as x } from "../Collapsible/Collapsible.js";
4
+ import { ComboboxOptionItem as p } from "./ComboboxOptionItem.js";
5
+ import { ChevronRightIcon as C } from "lucide-react";
6
6
  import { cn as l } from "@oneplatformdev/utils";
7
- import { ButtonIcon as C } from "../ButtonIcon/ButtonIcon.js";
7
+ import { ButtonIcon as v } from "../ButtonIcon/ButtonIcon.js";
8
8
  import "../ButtonIcon/buttonIconVariants.js";
9
- const m = (o) => {
10
- const { option: t, deep: r = 0, defaultNodeOpen: n, defaultNodeDisabled: s } = o, [i, p] = u(() => typeof n == "function" ? n(t, r) : n ?? !0);
11
- return t?.items?.length ? /* @__PURE__ */ f(
12
- b,
9
+ const m = (t) => {
10
+ const { option: o, deep: r = 0, defaultNodeOpen: n, defaultNodeDisabled: s, searchTerm: d } = t, [i, c] = b(() => typeof n == "function" ? n(o, r) : n ?? !!d);
11
+ return o?.items?.length ? /* @__PURE__ */ u(
12
+ h,
13
13
  {
14
14
  open: i,
15
- onOpenChange: p,
15
+ onOpenChange: c,
16
16
  "data-opened": i,
17
17
  className: l("group/collapsible"),
18
- disabled: typeof s == "function" ? s(t, r) : s ?? !1,
18
+ disabled: typeof s == "function" ? s(o, r) : s ?? !1,
19
19
  children: [
20
- /* @__PURE__ */ e(c, { ...o, children: /* @__PURE__ */ e(g, { asChild: !0, children: /* @__PURE__ */ e("div", { className: "aspect-square size-6 relative", children: /* @__PURE__ */ e(
21
- C,
20
+ /* @__PURE__ */ e(p, { ...t, children: /* @__PURE__ */ e(g, { asChild: !0, children: /* @__PURE__ */ e("div", { className: "aspect-square size-10 absolute top-0 letf-0 -translate-x-2", children: /* @__PURE__ */ e(
21
+ v,
22
22
  {
23
23
  onClick: (a) => {
24
- a?.preventDefault(), a?.stopPropagation(), p((d) => !d);
24
+ a?.preventDefault(), a?.stopPropagation(), c((f) => !f);
25
25
  },
26
26
  type: "button",
27
27
  variant: "ghost",
28
28
  color: "secondary",
29
- size: "md",
30
29
  className: l(
31
- "absolute -top-1.5 -left-2 size-9",
32
30
  "bg-transparent hover:bg-transparent active:bg-transparent focus:bg-transparent"
33
31
  ),
34
32
  icon: /* @__PURE__ */ e(
35
- v,
33
+ C,
36
34
  {
35
+ strokeWidth: 2,
37
36
  className: l(
37
+ "text-[#06080D]",
38
38
  "transition-transform",
39
- i && "rotate-180"
39
+ i && "rotate-90"
40
40
  )
41
41
  }
42
42
  )
43
43
  }
44
44
  ) }) }) }),
45
- /* @__PURE__ */ e(h, { children: /* @__PURE__ */ e("div", { className: "flex flex-col gap-0", children: t?.items.map((a) => /* @__PURE__ */ e(
45
+ /* @__PURE__ */ e(x, { children: /* @__PURE__ */ e("div", { className: "flex flex-col gap-0", children: o?.items.map((a) => /* @__PURE__ */ e(
46
46
  m,
47
47
  {
48
- ...o,
48
+ ...t,
49
49
  deep: r + 1,
50
50
  option: a
51
51
  },
@@ -53,13 +53,13 @@ const m = (o) => {
53
53
  )) }) })
54
54
  ]
55
55
  }
56
- ) : /* @__PURE__ */ e(c, { ...o });
57
- }, k = (o) => {
58
- const { options: t = [], ...r } = o;
59
- return /* @__PURE__ */ e("div", { className: "flex flex-col gap-0", children: t.map((n) => /* @__PURE__ */ e(m, { ...r, option: n }, n.value)) });
56
+ ) : /* @__PURE__ */ e(p, { ...t });
57
+ }, q = (t) => {
58
+ const { options: o = [], ...r } = t;
59
+ return /* @__PURE__ */ e("div", { className: "flex flex-col gap-0", children: o.map((n) => /* @__PURE__ */ e(m, { ...r, option: n }, n.value)) });
60
60
  };
61
61
  export {
62
- k as ComboboxOptions,
62
+ q as ComboboxOptions,
63
63
  m as ComboboxOptionsNode
64
64
  };
65
65
  //# sourceMappingURL=ComboboxOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOptions.js","sources":["../../src/Combobox/ComboboxOptions.tsx"],"sourcesContent":["import {\n IComboboxOptionsNodeProps,\n IComboboxOptionsProps,\n} from './Combobox.types';\nimport { useState } from 'react';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '../Collapsible';\nimport { ComboboxOptionItem } from './ComboboxOptionItem';\nimport { ChevronDownIcon } from 'lucide-react';\nimport { cn } from '@oneplatformdev/utils';\nimport { ButtonIcon } from \"../ButtonIcon\";\n\nexport const ComboboxOptionsNode = <Data extends object>(props: IComboboxOptionsNodeProps<Data>) => {\n const { option, deep = 0, defaultNodeOpen, defaultNodeDisabled } = props;\n\n const [open, onOpenChange] = useState(() => {\n return typeof defaultNodeOpen === \"function\"\n ? defaultNodeOpen(option, deep)\n : defaultNodeOpen ?? true;\n });\n\n if (!option?.items?.length) {\n return <ComboboxOptionItem {...props} />;\n }\n return (\n <Collapsible\n open={open}\n onOpenChange={onOpenChange}\n data-opened={open}\n className={cn('group/collapsible')}\n disabled={typeof defaultNodeDisabled === \"function\"\n ? defaultNodeDisabled(option, deep)\n : defaultNodeDisabled ?? false}\n >\n <ComboboxOptionItem {...props}>\n <CollapsibleTrigger asChild>\n <div className='aspect-square size-6 relative'>\n <ButtonIcon\n onClick={(e) => {\n e?.preventDefault();\n e?.stopPropagation();\n onOpenChange((prev) => !prev);\n }}\n type=\"button\"\n variant=\"ghost\"\n color='secondary'\n size=\"md\"\n className={cn(\n 'absolute -top-1.5 -left-2 size-9',\n 'bg-transparent hover:bg-transparent active:bg-transparent focus:bg-transparent'\n )}\n icon={(\n <ChevronDownIcon\n className={cn(\n 'transition-transform',\n open && 'rotate-180'\n )}\n />\n )}\n />\n </div>\n </CollapsibleTrigger>\n </ComboboxOptionItem>\n\n <CollapsibleContent>\n <div className=\"flex flex-col gap-0\">\n {option?.items.map((opt) => {\n return (\n <ComboboxOptionsNode\n key={opt.value}\n {...props}\n deep={deep + 1}\n option={opt}\n />\n );\n })}\n </div>\n </CollapsibleContent>\n </Collapsible>\n );\n}\n\nexport const ComboboxOptions = <Data extends object>(props: IComboboxOptionsProps<Data>) => {\n const { options = [], ...rest } = props;\n return (\n <div className=\"flex flex-col gap-0\">\n {options.map((option) => (\n <ComboboxOptionsNode key={option.value} {...rest} option={option} />\n ))}\n </div>\n );\n}\n"],"names":["ComboboxOptionsNode","props","option","deep","defaultNodeOpen","defaultNodeDisabled","open","onOpenChange","useState","jsxs","Collapsible","cn","jsx","ComboboxOptionItem","CollapsibleTrigger","ButtonIcon","e","prev","ChevronDownIcon","CollapsibleContent","opt","ComboboxOptions","options","rest"],"mappings":";;;;;;;;AAeO,MAAMA,IAAsB,CAAsBC,MAA2C;AAClG,QAAM,EAAE,QAAAC,GAAQ,MAAAC,IAAO,GAAG,iBAAAC,GAAiB,qBAAAC,MAAwBJ,GAE7D,CAACK,GAAMC,CAAY,IAAIC,EAAS,MAC7B,OAAOJ,KAAoB,aAC9BA,EAAgBF,GAAQC,CAAI,IAC5BC,KAAmB,EACxB;AAED,SAAKF,GAAQ,OAAO,SAIlB,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAJ;AAAA,MACA,cAAAC;AAAA,MACA,eAAaD;AAAA,MACb,WAAWK,EAAG,mBAAmB;AAAA,MACjC,UAAU,OAAON,KAAwB,aACrCA,EAAoBH,GAAQC,CAAI,IAChCE,KAAuB;AAAA,MAE3B,UAAA;AAAA,QAAA,gBAAAO,EAACC,GAAA,EAAoB,GAAGZ,GACtB,UAAA,gBAAAW,EAACE,GAAA,EAAmB,SAAO,IACzB,UAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA,gBAAAA;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,SAAS,CAACC,MAAM;AACd,cAAAA,GAAG,eAAA,GACHA,GAAG,gBAAA,GACHT,EAAa,CAACU,MAAS,CAACA,CAAI;AAAA,YAC9B;AAAA,YACA,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,MAAK;AAAA,YACL,WAAWN;AAAA,cACT;AAAA,cACA;AAAA,YAAA;AAAA,YAEF,MACE,gBAAAC;AAAA,cAACM;AAAA,cAAA;AAAA,gBACC,WAAWP;AAAA,kBACT;AAAA,kBACAL,KAAQ;AAAA,gBAAA;AAAA,cACV;AAAA,YAAA;AAAA,UACF;AAAA,QAAA,EAEJ,CACF,GACF,GACF;AAAA,QAEA,gBAAAM,EAACO,GAAA,EACC,UAAA,gBAAAP,EAAC,OAAA,EAAI,WAAU,uBACZ,UAAAV,GAAQ,MAAM,IAAI,CAACkB,MAEhB,gBAAAR;AAAA,UAACZ;AAAA,UAAA;AAAA,YAEE,GAAGC;AAAA,YACJ,MAAME,IAAO;AAAA,YACb,QAAQiB;AAAA,UAAA;AAAA,UAHHA,EAAI;AAAA,QAAA,CAMd,GACH,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAvDK,gBAAAR,EAACC,GAAA,EAAoB,GAAGZ,EAAA,CAAO;AA0D1C,GAEaoB,IAAkB,CAAsBpB,MAAuC;AAC1F,QAAM,EAAE,SAAAqB,IAAU,CAAA,GAAI,GAAGC,MAAStB;AAClC,2BACG,OAAA,EAAI,WAAU,uBACZ,UAAAqB,EAAQ,IAAI,CAACpB,MACZ,gBAAAU,EAACZ,GAAA,EAAwC,GAAGuB,GAAM,QAAArB,EAAA,GAAxBA,EAAO,KAAiC,CACnE,GACH;AAEJ;"}
1
+ {"version":3,"file":"ComboboxOptions.js","sources":["../../src/Combobox/ComboboxOptions.tsx"],"sourcesContent":["import {\n IComboboxOptionsNodeProps,\n IComboboxOptionsProps,\n} from './Combobox.types';\nimport { useState } from 'react';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '../Collapsible';\nimport { ComboboxOptionItem } from './ComboboxOptionItem';\nimport { ChevronRightIcon } from 'lucide-react';\nimport { cn } from '@oneplatformdev/utils';\nimport { ButtonIcon } from \"../ButtonIcon\";\n\nexport const ComboboxOptionsNode = <Data extends object>(props: IComboboxOptionsNodeProps<Data>) => {\n const { option, deep = 0, defaultNodeOpen, defaultNodeDisabled, searchTerm } = props;\n\n const [open, onOpenChange] = useState(() => {\n return typeof defaultNodeOpen === \"function\"\n ? defaultNodeOpen(option, deep)\n : defaultNodeOpen ?? !!searchTerm;\n });\n\n if (!option?.items?.length) {\n return <ComboboxOptionItem {...props} />;\n }\n return (\n <Collapsible\n open={open}\n onOpenChange={onOpenChange}\n data-opened={open}\n className={cn('group/collapsible')}\n disabled={typeof defaultNodeDisabled === \"function\"\n ? defaultNodeDisabled(option, deep)\n : defaultNodeDisabled ?? false}\n >\n <ComboboxOptionItem {...props}>\n <CollapsibleTrigger asChild>\n <div className='aspect-square size-10 absolute top-0 letf-0 -translate-x-2'>\n <ButtonIcon\n onClick={(e) => {\n e?.preventDefault();\n e?.stopPropagation();\n onOpenChange((prev) => !prev);\n }}\n type=\"button\"\n variant=\"ghost\"\n color='secondary'\n className={cn(\n 'bg-transparent hover:bg-transparent active:bg-transparent focus:bg-transparent'\n )}\n icon={(\n <ChevronRightIcon\n strokeWidth={2}\n className={cn(\n 'text-[#06080D]',\n 'transition-transform',\n open && 'rotate-90'\n )}\n />\n )}\n />\n </div>\n </CollapsibleTrigger>\n </ComboboxOptionItem>\n\n <CollapsibleContent>\n <div className=\"flex flex-col gap-0\">\n {option?.items.map((opt) => {\n return (\n <ComboboxOptionsNode\n key={opt.value}\n {...props}\n deep={deep + 1}\n option={opt}\n />\n );\n })}\n </div>\n </CollapsibleContent>\n </Collapsible>\n );\n}\n\nexport const ComboboxOptions = <Data extends object>(props: IComboboxOptionsProps<Data>) => {\n const { options = [], ...rest } = props;\n return (\n <div className=\"flex flex-col gap-0\">\n {options.map((option) => (\n <ComboboxOptionsNode key={option.value} {...rest} option={option} />\n ))}\n </div>\n );\n}\n"],"names":["ComboboxOptionsNode","props","option","deep","defaultNodeOpen","defaultNodeDisabled","searchTerm","open","onOpenChange","useState","jsxs","Collapsible","cn","jsx","ComboboxOptionItem","CollapsibleTrigger","ButtonIcon","e","prev","ChevronRightIcon","CollapsibleContent","opt","ComboboxOptions","options","rest"],"mappings":";;;;;;;;AAeO,MAAMA,IAAsB,CAAsBC,MAA2C;AAClG,QAAM,EAAE,QAAAC,GAAQ,MAAAC,IAAO,GAAG,iBAAAC,GAAiB,qBAAAC,GAAqB,YAAAC,MAAeL,GAEzE,CAACM,GAAMC,CAAY,IAAIC,EAAS,MAC7B,OAAOL,KAAoB,aAC9BA,EAAgBF,GAAQC,CAAI,IAC5BC,KAAmB,CAAC,CAACE,CAC1B;AAED,SAAKJ,GAAQ,OAAO,SAIlB,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAJ;AAAA,MACA,cAAAC;AAAA,MACA,eAAaD;AAAA,MACb,WAAWK,EAAG,mBAAmB;AAAA,MACjC,UAAU,OAAOP,KAAwB,aACrCA,EAAoBH,GAAQC,CAAI,IAChCE,KAAuB;AAAA,MAE3B,UAAA;AAAA,QAAA,gBAAAQ,EAACC,GAAA,EAAoB,GAAGb,GACtB,UAAA,gBAAAY,EAACE,GAAA,EAAmB,SAAO,IACzB,UAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,8DACb,UAAA,gBAAAA;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,SAAS,CAACC,MAAM;AACd,cAAAA,GAAG,eAAA,GACHA,GAAG,gBAAA,GACHT,EAAa,CAACU,MAAS,CAACA,CAAI;AAAA,YAC9B;AAAA,YACA,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,WAAWN;AAAA,cACT;AAAA,YAAA;AAAA,YAEF,MACE,gBAAAC;AAAA,cAACM;AAAA,cAAA;AAAA,gBACC,aAAa;AAAA,gBACb,WAAWP;AAAA,kBACT;AAAA,kBACA;AAAA,kBACAL,KAAQ;AAAA,gBAAA;AAAA,cACV;AAAA,YAAA;AAAA,UACF;AAAA,QAAA,EAEJ,CACF,GACF,GACF;AAAA,QAEA,gBAAAM,EAACO,GAAA,EACC,UAAA,gBAAAP,EAAC,OAAA,EAAI,WAAU,uBACZ,UAAAX,GAAQ,MAAM,IAAI,CAACmB,MAEhB,gBAAAR;AAAA,UAACb;AAAA,UAAA;AAAA,YAEE,GAAGC;AAAA,YACJ,MAAME,IAAO;AAAA,YACb,QAAQkB;AAAA,UAAA;AAAA,UAHHA,EAAI;AAAA,QAAA,CAMd,GACH,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAvDK,gBAAAR,EAACC,GAAA,EAAoB,GAAGb,EAAA,CAAO;AA0D1C,GAEaqB,IAAkB,CAAsBrB,MAAuC;AAC1F,QAAM,EAAE,SAAAsB,IAAU,CAAA,GAAI,GAAGC,MAASvB;AAClC,2BACG,OAAA,EAAI,WAAU,uBACZ,UAAAsB,EAAQ,IAAI,CAACrB,MACZ,gBAAAW,EAACb,GAAA,EAAwC,GAAGwB,GAAM,QAAAtB,EAAA,GAAxBA,EAAO,KAAiC,CACnE,GACH;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/Command/Command.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAIlD,OAAO,EACL,MAAM,EAKP,MAAM,WAAW,CAAA;AAElB,iBAAS,OAAO,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,2CAWhE;AAED,iBAAS,aAAa,CAAC,EACE,KAAyB,EACzB,WAA8C,EAC9C,QAAQ,EACR,SAAS,EACT,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,2CAiBA;AAED,iBAAS,YAAY,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAiB3E;AAED,iBAAS,WAAW,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWzE;AAED,iBAAS,YAAY,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAQ3E;AAED,iBAAS,YAAY,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAW3E;AAED,iBAAS,gBAAgB,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,2CAQnF;AAED,iBAAS,WAAW,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWzE;AAED,iBAAS,eAAe,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAWvD;AAED,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,CAAA"}
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/Command/Command.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAIlD,OAAO,EACL,MAAM,EAKP,MAAM,WAAW,CAAA;AAElB,iBAAS,OAAO,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,2CAWhE;AAED,iBAAS,aAAa,CAAC,EACE,KAAyB,EACzB,WAA8C,EAC9C,QAAQ,EACR,SAAS,EACT,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,2CAiBA;AAED,iBAAS,YAAY,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAiB3E;AAED,iBAAS,WAAW,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWzE;AAED,iBAAS,YAAY,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAQ3E;AAED,iBAAS,YAAY,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAW3E;AAED,iBAAS,gBAAgB,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,2CAQnF;AAED,iBAAS,WAAW,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAczE;AAED,iBAAS,eAAe,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAWvD;AAED,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,CAAA"}
@@ -3,7 +3,7 @@ import { Command as n } from "cmdk";
3
3
  import { Command as L } from "cmdk";
4
4
  import { SearchIcon as c } from "lucide-react";
5
5
  import { cn as a } from "@oneplatformdev/utils";
6
- import { Dialog as l, DialogHeader as p, DialogTitle as u, DialogDescription as g, DialogContent as f } from "../Dialog/Dialog.js";
6
+ import { Dialog as p, DialogHeader as l, DialogTitle as u, DialogDescription as g, DialogContent as f } from "../Dialog/Dialog.js";
7
7
  import "../Dialog/DialogOverlayScope.js";
8
8
  function h({
9
9
  className: e,
@@ -26,11 +26,11 @@ function y({
26
26
  description: t = "Search for a command to run...",
27
27
  children: d,
28
28
  className: m,
29
- showCloseButton: s = !0,
30
- ...i
29
+ showCloseButton: i = !0,
30
+ ...s
31
31
  }) {
32
- return /* @__PURE__ */ r(l, { ...i, children: [
33
- /* @__PURE__ */ r(p, { className: "sr-only", children: [
32
+ return /* @__PURE__ */ r(p, { ...s, children: [
33
+ /* @__PURE__ */ r(l, { className: "sr-only", children: [
34
34
  /* @__PURE__ */ o(u, { children: e }),
35
35
  /* @__PURE__ */ o(g, { children: t })
36
36
  ] }),
@@ -38,7 +38,7 @@ function y({
38
38
  f,
39
39
  {
40
40
  className: a("overflow-hidden p-0", m),
41
- showCloseButton: s,
41
+ showCloseButton: i,
42
42
  children: /* @__PURE__ */ o(h, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children: d })
43
43
  }
44
44
  )
@@ -136,7 +136,10 @@ function z({
136
136
  {
137
137
  "data-slot": "command-item",
138
138
  className: a(
139
- "data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
139
+ "relative flex items-center gap-2 rounded-sm px-2 py-1.5 min-h-10 text-sm",
140
+ "cursor-pointer select-none",
141
+ "outline-hidden data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
142
+ "data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground",
140
143
  e
141
144
  ),
142
145
  ...t
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","sources":["../../src/Command/Command.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { SearchIcon } from \"lucide-react\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../Dialog\"\n\nfunction Command({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n \"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = true,\n ...props\n }: React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\"overflow-hidden p-0\", className)}\n showCloseButton={showCloseButton}\n >\n <Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n \"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n \"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n \"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\"bg-border -mx-1 h-px\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n CommandPrimitive\n}\n"],"names":["Command","className","props","jsx","CommandPrimitive","cn","CommandDialog","title","description","children","showCloseButton","jsxs","Dialog","DialogHeader","DialogTitle","DialogDescription","DialogContent","CommandInput","SearchIcon","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":"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"}
1
+ {"version":3,"file":"Command.js","sources":["../../src/Command/Command.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { SearchIcon } from \"lucide-react\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../Dialog\"\n\nfunction Command({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n \"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = true,\n ...props\n }: React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\"overflow-hidden p-0\", className)}\n showCloseButton={showCloseButton}\n >\n <Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n \"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n \"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n \"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\"bg-border -mx-1 h-px\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n ...props\n }: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n 'relative flex items-center gap-2 rounded-sm px-2 py-1.5 min-h-10 text-sm',\n 'cursor-pointer select-none',\n 'outline-hidden data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4',\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n CommandPrimitive\n}\n"],"names":["Command","className","props","jsx","CommandPrimitive","cn","CommandDialog","title","description","children","showCloseButton","jsxs","Dialog","DialogHeader","DialogTitle","DialogDescription","DialogContent","CommandInput","SearchIcon","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneplatformdev/ui",
3
- "version": "0.1.99-beta.66",
3
+ "version": "0.1.99-beta.68",
4
4
  "description": "UI component library for OnePlatform",
5
5
  "author": "One Platform Development Team",
6
6
  "keywords": [
@@ -105,9 +105,9 @@
105
105
  "recharts": "^3.2.0",
106
106
  "sonner": "^2.0.7",
107
107
  "vaul": "^1.1.2",
108
- "@oneplatformdev/tokens": "^0.1.99-beta.66",
109
- "@oneplatformdev/utils": "^0.1.99-beta.66",
110
- "@oneplatformdev/hooks": "^0.1.99-beta.66"
108
+ "@oneplatformdev/tokens": "^0.1.99-beta.68",
109
+ "@oneplatformdev/utils": "^0.1.99-beta.68",
110
+ "@oneplatformdev/hooks": "^0.1.99-beta.68"
111
111
  },
112
112
  "scripts": {
113
113
  "chromatic": "chromatic"