@nexus-cross/design-system 1.1.0 → 1.1.1

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.
@@ -42,6 +42,97 @@ var comboboxInputVariants = classVarianceAuthority.cva("nexus-combobox", {
42
42
  },
43
43
  defaultVariants: { size: "md", state: "default" }
44
44
  });
45
+ function ComboboxOption(_) {
46
+ return null;
47
+ }
48
+ ComboboxOption.displayName = "Combobox.Option";
49
+ function ComboboxOptionDescription(_) {
50
+ return null;
51
+ }
52
+ ComboboxOptionDescription.displayName = "Combobox.OptionDescription";
53
+ function ComboboxOptionMeta(_) {
54
+ return null;
55
+ }
56
+ ComboboxOptionMeta.displayName = "Combobox.OptionMeta";
57
+ function isElementOfType(node, type) {
58
+ return React__namespace.isValidElement(node) && node.type === type;
59
+ }
60
+ function extractText(node) {
61
+ if (node == null || typeof node === "boolean") return "";
62
+ if (typeof node === "string" || typeof node === "number") return String(node);
63
+ if (Array.isArray(node)) {
64
+ return node.map(extractText).filter(Boolean).join(" ");
65
+ }
66
+ if (React__namespace.isValidElement(node)) {
67
+ if (node.type === ComboboxOptionDescription || node.type === ComboboxOptionMeta) {
68
+ return "";
69
+ }
70
+ const children = node.props?.children;
71
+ return extractText(children);
72
+ }
73
+ return "";
74
+ }
75
+ function resolveOptionsFromChildren(children) {
76
+ const resolved = [];
77
+ const seenValues = /* @__PURE__ */ new Set();
78
+ React__namespace.Children.forEach(children, (child) => {
79
+ if (!React__namespace.isValidElement(child)) return;
80
+ if (child.type !== ComboboxOption) {
81
+ if (process.env.NODE_ENV !== "production") {
82
+ const name = typeof child.type === "string" ? child.type : child.type?.displayName ?? child.type?.name ?? "Unknown";
83
+ console.warn(
84
+ `[Combobox] Ignoring child <${name}>. Only <Combobox.Option> is allowed as a direct child of <Combobox>.`
85
+ );
86
+ }
87
+ return;
88
+ }
89
+ const props = child.props;
90
+ const value = props.value;
91
+ if (typeof value !== "string" || value.length === 0) {
92
+ if (process.env.NODE_ENV !== "production") {
93
+ console.error(
94
+ "[Combobox] <Combobox.Option> requires a non-empty string `value` prop."
95
+ );
96
+ }
97
+ return;
98
+ }
99
+ if (seenValues.has(value)) {
100
+ if (process.env.NODE_ENV !== "production") {
101
+ console.error(
102
+ `[Combobox] Duplicate option value: "${value}". Each <Combobox.Option> must have a unique \`value\`. The duplicate will be ignored.`
103
+ );
104
+ }
105
+ return;
106
+ }
107
+ seenValues.add(value);
108
+ const labelNodes = [];
109
+ let description = null;
110
+ let meta = null;
111
+ React__namespace.Children.forEach(props.children, (slot) => {
112
+ if (isElementOfType(slot, ComboboxOptionDescription)) {
113
+ description = slot.props.children;
114
+ return;
115
+ }
116
+ if (isElementOfType(slot, ComboboxOptionMeta)) {
117
+ meta = slot.props.children;
118
+ return;
119
+ }
120
+ labelNodes.push(slot);
121
+ });
122
+ const label = labelNodes.length === 1 ? labelNodes[0] : labelNodes;
123
+ const textValue = typeof props.textValue === "string" && props.textValue.length > 0 ? props.textValue : extractText(label);
124
+ resolved.push({
125
+ value,
126
+ disabled: !!props.disabled,
127
+ textValue,
128
+ className: props.className,
129
+ label,
130
+ description,
131
+ meta
132
+ });
133
+ });
134
+ return resolved;
135
+ }
45
136
  var ChevronDown = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx(
46
137
  "svg",
47
138
  {
@@ -90,8 +181,8 @@ var CloseIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx(
90
181
  );
91
182
  function defaultFilter(option, query) {
92
183
  if (!query) return true;
93
- const label = typeof option.label === "string" ? option.label : typeof option.label === "number" ? String(option.label) : option.value;
94
- return label.toLowerCase().includes(query.toLowerCase());
184
+ const haystack = option.textValue || option.value;
185
+ return haystack.toLowerCase().includes(query.toLowerCase());
95
186
  }
96
187
  function useDebouncedCallback(callback, delay) {
97
188
  const cbRef = React__namespace.useRef(callback);
@@ -112,10 +203,10 @@ function useDebouncedCallback(callback, delay) {
112
203
  [delay]
113
204
  );
114
205
  }
115
- var Combobox = React__namespace.forwardRef(
116
- function Combobox2(props, ref) {
206
+ var ComboboxImpl = React__namespace.forwardRef(
207
+ function Combobox(props, ref) {
117
208
  const {
118
- options,
209
+ children,
119
210
  onSearch,
120
211
  searchDebounce = 250,
121
212
  loading = false,
@@ -187,11 +278,20 @@ var Combobox = React__namespace.forwardRef(
187
278
  const [query, setQuery] = React__namespace.useState("");
188
279
  const [activeIndex, setActiveIndex] = React__namespace.useState(0);
189
280
  const debouncedSearch = useDebouncedCallback(onSearch, searchDebounce);
281
+ const resolvedOptions = React__namespace.useMemo(
282
+ () => resolveOptionsFromChildren(children),
283
+ [children]
284
+ );
190
285
  const visibleOptions = React__namespace.useMemo(() => {
191
- if (onSearch) return options;
286
+ if (onSearch) return resolvedOptions;
192
287
  const filterFn = filter ?? defaultFilter;
193
- return options.filter((o) => filterFn(o, query));
194
- }, [onSearch, options, filter, query]);
288
+ return resolvedOptions.filter(
289
+ (o) => filterFn(
290
+ { value: o.value, textValue: o.textValue, disabled: o.disabled },
291
+ query
292
+ )
293
+ );
294
+ }, [onSearch, resolvedOptions, filter, query]);
195
295
  React__namespace.useEffect(() => {
196
296
  if (activeIndex >= visibleOptions.length) {
197
297
  setActiveIndex(visibleOptions.length > 0 ? 0 : -1);
@@ -219,7 +319,7 @@ var Combobox = React__namespace.forwardRef(
219
319
  inputRef.current?.focus();
220
320
  } else {
221
321
  updateValue(option.value);
222
- const labelText = typeof option.label === "string" ? option.label : option.value;
322
+ const labelText = option.textValue || option.value;
223
323
  setQuery(labelText);
224
324
  setOpen(false);
225
325
  inputRef.current?.blur();
@@ -311,9 +411,9 @@ var Combobox = React__namespace.forwardRef(
311
411
  };
312
412
  const selectedOptionMap = React__namespace.useMemo(() => {
313
413
  const map = /* @__PURE__ */ new Map();
314
- for (const opt of options) map.set(opt.value, opt);
414
+ for (const opt of resolvedOptions) map.set(opt.value, opt);
315
415
  return map;
316
- }, [options]);
416
+ }, [resolvedOptions]);
317
417
  const prevValueRef = React__namespace.useRef(
318
418
  currentValue
319
419
  );
@@ -329,7 +429,7 @@ var Combobox = React__namespace.forwardRef(
329
429
  return;
330
430
  }
331
431
  const opt = selectedOptionMap.get(currentValue);
332
- const labelText = opt ? typeof opt.label === "string" ? opt.label : currentValue : currentValue;
432
+ const labelText = opt ? opt.textValue || currentValue : currentValue;
333
433
  if (valueChanged) {
334
434
  setQuery(labelText);
335
435
  } else {
@@ -355,8 +455,9 @@ var Combobox = React__namespace.forwardRef(
355
455
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nexus-combobox__content", children: [
356
456
  isMultiple && selectedValues.map((val) => {
357
457
  const opt = selectedOptionMap.get(val);
458
+ const chipLabel = opt ? opt.label ?? opt.textValue ?? val : val;
358
459
  return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nexus-combobox__chip", children: [
359
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nexus-combobox__chip-label", children: opt?.label ?? val }),
460
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nexus-combobox__chip-label", children: chipLabel }),
360
461
  !disabled && /* @__PURE__ */ jsxRuntime.jsx(
361
462
  "button",
362
463
  {
@@ -476,7 +577,8 @@ var Combobox = React__namespace.forwardRef(
476
577
  "nexus-combobox-option",
477
578
  active && "nexus-combobox-option--active",
478
579
  selected && "nexus-combobox-option--selected",
479
- option.disabled && "nexus-combobox-option--disabled"
580
+ option.disabled && "nexus-combobox-option--disabled",
581
+ option.className
480
582
  ),
481
583
  onMouseEnter: () => setActiveIndex(idx),
482
584
  onMouseDown: (e) => {
@@ -486,8 +588,9 @@ var Combobox = React__namespace.forwardRef(
486
588
  children: [
487
589
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nexus-combobox-option__body", children: [
488
590
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nexus-combobox-option__label", children: option.label }),
489
- option.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nexus-combobox-option__description", children: option.description })
591
+ option.description != null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nexus-combobox-option__description", children: option.description })
490
592
  ] }),
593
+ option.meta != null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nexus-combobox-option__meta", children: option.meta }),
491
594
  selected && /* @__PURE__ */ jsxRuntime.jsx(
492
595
  "svg",
493
596
  {
@@ -532,7 +635,14 @@ var Combobox = React__namespace.forwardRef(
532
635
  ] });
533
636
  }
534
637
  );
535
- Combobox.displayName = "Combobox";
638
+ ComboboxImpl.displayName = "Combobox";
639
+ var Combobox2 = ComboboxImpl;
640
+ Combobox2.Option = ComboboxOption;
641
+ Combobox2.OptionDescription = ComboboxOptionDescription;
642
+ Combobox2.OptionMeta = ComboboxOptionMeta;
536
643
 
537
- exports.Combobox = Combobox;
644
+ exports.Combobox = Combobox2;
645
+ exports.ComboboxOption = ComboboxOption;
646
+ exports.ComboboxOptionDescription = ComboboxOptionDescription;
647
+ exports.ComboboxOptionMeta = ComboboxOptionMeta;
538
648
  exports.comboboxInputVariants = comboboxInputVariants;
package/dist/combobox.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk5ASTWFJW_js = require('./chunks/chunk-5ASTWFJW.js');
3
+ var chunkRC2Y4UH7_js = require('./chunks/chunk-RC2Y4UH7.js');
4
4
  require('./chunks/chunk-IOSIQLZL.js');
5
5
  require('./chunks/chunk-CZC76ZD5.js');
6
6
 
@@ -8,9 +8,21 @@ require('./chunks/chunk-CZC76ZD5.js');
8
8
 
9
9
  Object.defineProperty(exports, "Combobox", {
10
10
  enumerable: true,
11
- get: function () { return chunk5ASTWFJW_js.Combobox; }
11
+ get: function () { return chunkRC2Y4UH7_js.Combobox; }
12
+ });
13
+ Object.defineProperty(exports, "ComboboxOption", {
14
+ enumerable: true,
15
+ get: function () { return chunkRC2Y4UH7_js.ComboboxOption; }
16
+ });
17
+ Object.defineProperty(exports, "ComboboxOptionDescription", {
18
+ enumerable: true,
19
+ get: function () { return chunkRC2Y4UH7_js.ComboboxOptionDescription; }
20
+ });
21
+ Object.defineProperty(exports, "ComboboxOptionMeta", {
22
+ enumerable: true,
23
+ get: function () { return chunkRC2Y4UH7_js.ComboboxOptionMeta; }
12
24
  });
13
25
  Object.defineProperty(exports, "comboboxInputVariants", {
14
26
  enumerable: true,
15
- get: function () { return chunk5ASTWFJW_js.comboboxInputVariants; }
27
+ get: function () { return chunkRC2Y4UH7_js.comboboxInputVariants; }
16
28
  });
package/dist/combobox.mjs CHANGED
@@ -1,3 +1,3 @@
1
- export { Combobox, comboboxInputVariants } from './chunks/chunk-56ZOOQFE.mjs';
1
+ export { Combobox, ComboboxOption, ComboboxOptionDescription, ComboboxOptionMeta, comboboxInputVariants } from './chunks/chunk-AG2UJPFX.mjs';
2
2
  import './chunks/chunk-BPUQ2CO2.mjs';
3
3
  import './chunks/chunk-MCKOWMLS.mjs';
@@ -4,18 +4,55 @@ declare const comboboxInputVariants: (props?: ({
4
4
  size?: "xl" | "lg" | "md" | null | undefined;
5
5
  state?: "error" | "default" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
- interface ComboboxOption {
7
+ interface ComboboxOptionProps {
8
+ /** Unique value (must be unique per Combobox; dev mode warns on duplicates). */
8
9
  value: string;
9
- label: React.ReactNode;
10
- description?: React.ReactNode;
10
+ /** If true, the option cannot be selected and is skipped by keyboard nav. */
11
11
  disabled?: boolean;
12
+ /**
13
+ * Text used for filtering and the input display when this option is selected.
14
+ * If omitted, derived from `children` (string nodes only, OptionDescription /
15
+ * OptionMeta excluded). Set this when the label contains icons or non-text
16
+ * nodes you still want to be searchable (e.g. `textValue="apple 사과"`).
17
+ */
18
+ textValue?: string;
19
+ /** className passed to the rendered option `<div role="option">`. */
20
+ className?: string;
21
+ /** Label content + optional `<Combobox.OptionDescription>` / `<Combobox.OptionMeta>`. */
22
+ children?: React.ReactNode;
23
+ }
24
+ declare function ComboboxOption(_: ComboboxOptionProps): React.ReactElement | null;
25
+ declare namespace ComboboxOption {
26
+ var displayName: string;
27
+ }
28
+ interface ComboboxOptionSlotProps {
29
+ children?: React.ReactNode;
30
+ className?: string;
31
+ }
32
+ declare function ComboboxOptionDescription(_: ComboboxOptionSlotProps): React.ReactElement | null;
33
+ declare namespace ComboboxOptionDescription {
34
+ var displayName: string;
35
+ }
36
+ declare function ComboboxOptionMeta(_: ComboboxOptionSlotProps): React.ReactElement | null;
37
+ declare namespace ComboboxOptionMeta {
38
+ var displayName: string;
12
39
  }
13
40
  interface ComboboxBaseProps extends VariantProps<typeof comboboxInputVariants> {
14
- options: ComboboxOption[];
41
+ /**
42
+ * Async search callback. (query: string) => void. Triggers external data
43
+ * fetching with debounce. When set, the consumer is responsible for
44
+ * swapping in matching <Combobox.Option> children — the built-in client
45
+ * filter is disabled.
46
+ */
15
47
  onSearch?: (query: string) => void;
16
48
  searchDebounce?: number;
17
49
  loading?: boolean;
18
- filter?: (option: ComboboxOption, query: string) => boolean;
50
+ /** Custom client-side filter. Receives the resolved option metadata. */
51
+ filter?: (option: {
52
+ value: string;
53
+ textValue: string;
54
+ disabled: boolean;
55
+ }, query: string) => boolean;
19
56
  placeholder?: string;
20
57
  emptyMessage?: React.ReactNode;
21
58
  loadingMessage?: React.ReactNode;
@@ -28,6 +65,8 @@ interface ComboboxBaseProps extends VariantProps<typeof comboboxInputVariants> {
28
65
  className?: string;
29
66
  popoverClassName?: string;
30
67
  id?: string;
68
+ /** <Combobox.Option> elements. Other children are ignored. */
69
+ children?: React.ReactNode;
31
70
  }
32
71
  interface ComboboxSingleProps extends ComboboxBaseProps {
33
72
  multiple?: false;
@@ -42,7 +81,13 @@ interface ComboboxMultipleProps extends ComboboxBaseProps {
42
81
  onValueChange?: (value: string[]) => void;
43
82
  }
44
83
  type ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps;
45
- declare const Combobox: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLInputElement>>;
46
- export { Combobox, comboboxInputVariants };
47
- export type { ComboboxProps, ComboboxOption, ComboboxSingleProps, ComboboxMultipleProps, };
84
+ declare const ComboboxImpl: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLInputElement>>;
85
+ type ComboboxComponent = typeof ComboboxImpl & {
86
+ Option: typeof ComboboxOption;
87
+ OptionDescription: typeof ComboboxOptionDescription;
88
+ OptionMeta: typeof ComboboxOptionMeta;
89
+ };
90
+ declare const Combobox: ComboboxComponent;
91
+ export { Combobox, ComboboxOption, ComboboxOptionDescription, ComboboxOptionMeta, comboboxInputVariants, };
92
+ export type { ComboboxProps, ComboboxOptionProps, ComboboxOptionSlotProps, ComboboxSingleProps, ComboboxMultipleProps, };
48
93
  //# sourceMappingURL=Combobox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/components/Combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,qBAAqB;;;8EAazB,CAAC;AAEH,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,UAAU,iBACR,SAAQ,YAAY,CAAC,OAAO,qBAAqB,CAAC;IAClD,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAChD;AAED,UAAU,qBAAsB,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C;AAED,KAAK,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAwFjE,QAAA,MAAM,QAAQ,wFAmhBb,CAAC;AAIF,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;AAC3C,YAAY,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACtB,CAAC"}
1
+ {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/components/Combobox.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,8 +18,8 @@ export type { TableProps, TableRowProps, TdColumnProps, TableData, TableThRowDat
18
18
  export { Popover, PopoverTrigger, PopoverContent, PopoverArrow, PopoverClose, popoverContentClasses, } from './components/Popover';
19
19
  export { Tooltip, TooltipProvider, tooltipContentVariants, } from './components/Tooltip';
20
20
  export { Select, SelectItem, selectTriggerVariants, selectContentVariants, } from './components/Select';
21
- export { Combobox, comboboxInputVariants } from './components/Combobox';
22
- export type { ComboboxProps, ComboboxOption, ComboboxSingleProps, ComboboxMultipleProps, } from './components/Combobox';
21
+ export { Combobox, ComboboxOption, ComboboxOptionDescription, ComboboxOptionMeta, comboboxInputVariants, } from './components/Combobox';
22
+ export type { ComboboxProps, ComboboxOptionProps, ComboboxOptionSlotProps, ComboboxSingleProps, ComboboxMultipleProps, } from './components/Combobox';
23
23
  export { DropdownMenu, DropdownMenuRoot, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, } from './components/DropdownMenu';
24
24
  export type { DropdownMenuProps, DropdownMenuItemType } from './components/DropdownMenu';
25
25
  export { ToggleGroup, toggleGroupVariants } from './components/ToggleGroup';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -29,7 +29,7 @@ var chunk5JHJNN2K_js = require('./chunks/chunk-5JHJNN2K.js');
29
29
  var chunk2MC7XJSE_js = require('./chunks/chunk-2MC7XJSE.js');
30
30
  var chunkB6G5TJRO_js = require('./chunks/chunk-B6G5TJRO.js');
31
31
  var chunkOX5MEJ7B_js = require('./chunks/chunk-OX5MEJ7B.js');
32
- var chunk5ASTWFJW_js = require('./chunks/chunk-5ASTWFJW.js');
32
+ var chunkRC2Y4UH7_js = require('./chunks/chunk-RC2Y4UH7.js');
33
33
  var chunkIOSIQLZL_js = require('./chunks/chunk-IOSIQLZL.js');
34
34
  var chunkBSZ2LN6E_js = require('./chunks/chunk-BSZ2LN6E.js');
35
35
  var chunkIE4DGLMH_js = require('./chunks/chunk-IE4DGLMH.js');
@@ -607,11 +607,23 @@ Object.defineProperty(exports, "selectTriggerVariants", {
607
607
  });
608
608
  Object.defineProperty(exports, "Combobox", {
609
609
  enumerable: true,
610
- get: function () { return chunk5ASTWFJW_js.Combobox; }
610
+ get: function () { return chunkRC2Y4UH7_js.Combobox; }
611
+ });
612
+ Object.defineProperty(exports, "ComboboxOption", {
613
+ enumerable: true,
614
+ get: function () { return chunkRC2Y4UH7_js.ComboboxOption; }
615
+ });
616
+ Object.defineProperty(exports, "ComboboxOptionDescription", {
617
+ enumerable: true,
618
+ get: function () { return chunkRC2Y4UH7_js.ComboboxOptionDescription; }
619
+ });
620
+ Object.defineProperty(exports, "ComboboxOptionMeta", {
621
+ enumerable: true,
622
+ get: function () { return chunkRC2Y4UH7_js.ComboboxOptionMeta; }
611
623
  });
612
624
  Object.defineProperty(exports, "comboboxInputVariants", {
613
625
  enumerable: true,
614
- get: function () { return chunk5ASTWFJW_js.comboboxInputVariants; }
626
+ get: function () { return chunkRC2Y4UH7_js.comboboxInputVariants; }
615
627
  });
616
628
  Object.defineProperty(exports, "Spinner", {
617
629
  enumerable: true,
package/dist/index.mjs CHANGED
@@ -27,7 +27,7 @@ export { InfiniteScroll } from './chunks/chunk-LMMON5AU.mjs';
27
27
  export { Marquee } from './chunks/chunk-SJMCPSVH.mjs';
28
28
  export { Ellipsis } from './chunks/chunk-6FMDO6TT.mjs';
29
29
  export { Select, SelectItem, selectContentVariants, selectTriggerVariants } from './chunks/chunk-QOREDNWO.mjs';
30
- export { Combobox, comboboxInputVariants } from './chunks/chunk-56ZOOQFE.mjs';
30
+ export { Combobox, ComboboxOption, ComboboxOptionDescription, ComboboxOptionMeta, comboboxInputVariants } from './chunks/chunk-AG2UJPFX.mjs';
31
31
  export { Spinner } from './chunks/chunk-BPUQ2CO2.mjs';
32
32
  export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerRoot, DrawerTitle, DrawerTrigger, drawerContentVariants, drawerOverlayVariants } from './chunks/chunk-SGNRVYYQ.mjs';
33
33
  export { Tooltip, TooltipProvider, tooltipContentVariants } from './chunks/chunk-W4GG5A7K.mjs';
@@ -638,31 +638,76 @@
638
638
  "$schema": "http://json-schema.org/draft-07/schema#"
639
639
  },
640
640
  "comboboxOption": {
641
- "$ref": "#/definitions/comboboxOptionSchema",
641
+ "$ref": "#/definitions/comboboxOptionPropsSchema",
642
642
  "definitions": {
643
- "comboboxOptionSchema": {
643
+ "comboboxOptionPropsSchema": {
644
644
  "type": "object",
645
645
  "properties": {
646
646
  "value": {
647
647
  "type": "string",
648
- "description": "Option value (unique key)"
649
- },
650
- "label": {
651
- "description": "Display label (string | ReactNode)"
652
- },
653
- "description": {
654
- "description": "Secondary text below label (ReactNode)"
648
+ "description": "Unique value (string, required). Duplicate values within one Combobox produce a dev-mode console.error and the duplicate option is dropped."
655
649
  },
656
650
  "disabled": {
657
651
  "type": "boolean",
658
- "description": "Disabled option"
652
+ "description": "Disable selection. Skipped by keyboard navigation (Arrow Up/Down, Home/End)."
653
+ },
654
+ "textValue": {
655
+ "type": "string",
656
+ "description": "Text used for client-side filtering and the input display when this option is selected. If omitted, derived from `children` (string nodes only; OptionDescription / OptionMeta are excluded). Set this when label contains icons or non-text nodes you still want searchable (e.g. textValue=\"apple 사과 fruit\")."
657
+ },
658
+ "className": {
659
+ "type": "string",
660
+ "description": "Class merged onto the rendered <div role=\"option\">."
661
+ },
662
+ "children": {
663
+ "description": "Label content + optional <Combobox.OptionDescription> / <Combobox.OptionMeta> slots."
659
664
  }
660
665
  },
661
666
  "required": [
662
667
  "value"
663
668
  ],
664
669
  "additionalProperties": false,
665
- "description": "Single Combobox option."
670
+ "description": "Single Combobox option. Direct child of <Combobox> only.\n\nWHEN TO USE:\n • One per selectable item; `value` MUST be unique within the Combobox\n • Wrap rich content (icons, badges) directly as children — no escape hatch needed\n • Use textValue when label is non-text (e.g. <Combobox.Option value=\"apple\" textValue=\"사과 apple\">🍎</Combobox.Option>)\n\nANTI-PATTERNS:\n ✗ <Combobox><div><Combobox.Option/></div></Combobox> — Option must be a direct child\n ✗ Same value on two options → dev warning + silent drop; pick unique values\n ✗ Putting label text inside <Combobox.OptionDescription> — that slot is the secondary line below the label"
671
+ }
672
+ },
673
+ "$schema": "http://json-schema.org/draft-07/schema#"
674
+ },
675
+ "comboboxOptionDescription": {
676
+ "$ref": "#/definitions/comboboxOptionDescriptionPropsSchema",
677
+ "definitions": {
678
+ "comboboxOptionDescriptionPropsSchema": {
679
+ "type": "object",
680
+ "properties": {
681
+ "children": {
682
+ "description": "Secondary text below the label (ReactNode)."
683
+ },
684
+ "className": {
685
+ "type": "string",
686
+ "description": "Class for the description node."
687
+ }
688
+ },
689
+ "additionalProperties": false,
690
+ "description": "Secondary text shown below an option label. Use for hints like \"Republic of Korea\" beneath \"한국\". Excluded from textValue-based search."
691
+ }
692
+ },
693
+ "$schema": "http://json-schema.org/draft-07/schema#"
694
+ },
695
+ "comboboxOptionMeta": {
696
+ "$ref": "#/definitions/comboboxOptionMetaPropsSchema",
697
+ "definitions": {
698
+ "comboboxOptionMetaPropsSchema": {
699
+ "type": "object",
700
+ "properties": {
701
+ "children": {
702
+ "description": "Right-aligned meta content (price, badge, shortcut, etc.)."
703
+ },
704
+ "className": {
705
+ "type": "string",
706
+ "description": "Class for the meta slot."
707
+ }
708
+ },
709
+ "additionalProperties": false,
710
+ "description": "Right-aligned slot inside an option. Use for prices, keyboard shortcuts, version tags, status badges. Excluded from textValue-based search."
666
711
  }
667
712
  },
668
713
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -673,8 +718,8 @@
673
718
  "comboboxPropsSchema": {
674
719
  "type": "object",
675
720
  "properties": {
676
- "options": {
677
- "description": "Available options array (ComboboxOption[], required)"
721
+ "children": {
722
+ "description": "<Combobox.Option> elements (required). Other children are ignored with a dev-mode warning. Async-search consumers swap this list as `onSearch` results arrive."
678
723
  },
679
724
  "value": {
680
725
  "description": "Selected value. string for single, string[] for multiple"
@@ -691,7 +736,7 @@
691
736
  "description": "Multi-select mode. Selected values shown as chips inside input"
692
737
  },
693
738
  "onSearch": {
694
- "description": "Async search callback. (query: string) => void. Triggers external data fetching with debounce"
739
+ "description": "Async search callback. (query: string) => void. Triggers external data fetching with debounce. When set, the built-in client filter is disabled — render whatever <Combobox.Option> children match the latest results."
695
740
  },
696
741
  "searchDebounce": {
697
742
  "type": "number",
@@ -701,10 +746,10 @@
701
746
  "loading": {
702
747
  "type": "boolean",
703
748
  "default": false,
704
- "description": "Externally-controlled loading state. Shows spinner in input suffix"
749
+ "description": "Externally-controlled loading state. Shows spinner in input suffix and a status row inside the popover."
705
750
  },
706
751
  "filter": {
707
- "description": "Custom client-side filter. (option, query) => boolean. Default: case-insensitive label includes match"
752
+ "description": "Custom client-side filter. (option: { value, textValue, disabled }, query: string) => boolean. Default: case-insensitive textValue includes match. Ignored when onSearch is set."
708
753
  },
709
754
  "placeholder": {
710
755
  "type": "string",
@@ -760,7 +805,7 @@
760
805
  }
761
806
  },
762
807
  "additionalProperties": false,
763
- "description": "Searchable select. Text input + popover listbox. Single/multi-select. Sync (auto-filter) or async (onSearch + loading) modes.\n\nWHEN TO USE:\n • Options ≥ 7, OR labels are long, OR search/filter is needed → Combobox (not Select)\n • Multi-select form field → Combobox with multiple (chips render inside input)\n • Async data from server → set onSearch + loading\nFor ≤7 simple options use Select. For free-text tags use TagInput.\n\nASYNC PATTERN:\n <Combobox options={results} loading={isFetching} onSearch={(q) => mutate(q)} />\n — onSearch fires after searchDebounce (default 250ms). Do NOT clear input on result update; component preserves user's typing.\n\nIME (Korean/Japanese/Chinese): Enter during composition is ignored automatically — do not add custom keydown handlers.\n\nANTI-PATTERNS:\n ✗ <Select> with 20 options → <Combobox>\n ✗ Manual <input> + dropdown div + filter logic → <Combobox>\n ✗ Setting value externally to clear input mid-typing → use onValueChange instead"
808
+ "description": "Searchable select with compound option API. Text input + popover listbox. Single/multi-select. Sync (auto-filter) or async (onSearch + loading) modes.\n\nWHEN TO USE:\n • Options ≥ 7, OR labels are long, OR search/filter is needed → Combobox (not Select)\n • Multi-select form field → Combobox with multiple (chips render inside input)\n • Async data from server → set onSearch + loading\nFor ≤7 simple options use Select. For free-text tags use TagInput.\n\nCOMPOUND API:\n <Combobox value={v} onValueChange={setV} placeholder=\"…\">\n <Combobox.Option value=\"kr\">한국</Combobox.Option>\n <Combobox.Option value=\"jp\" disabled>\n 일본\n <Combobox.OptionDescription>품절</Combobox.OptionDescription>\n <Combobox.OptionMeta>JP</Combobox.OptionMeta>\n </Combobox.Option>\n </Combobox>\n\n • <Combobox.Option> requires unique `value` (dev mode warns on duplicates and drops the duplicate)\n • <Combobox.OptionDescription> = secondary line under label\n • <Combobox.OptionMeta> = right-aligned slot (price, shortcut, badge)\n • Both slots are excluded from textValue-based search\n\nASYNC PATTERN:\n <Combobox loading={isFetching} onSearch={(q) => mutate(q)}>\n {results.map((u) => (\n <Combobox.Option key={u.id} value={u.id}>{u.name}\n <Combobox.OptionDescription>{u.email}</Combobox.OptionDescription>\n </Combobox.Option>\n ))}\n </Combobox>\n — onSearch fires after searchDebounce (default 250ms). Do NOT clear input on result update; component preserves user's typing.\n\nIME (Korean/Japanese/Chinese): Enter during composition is ignored automatically — do not add custom keydown handlers.\n\nANTI-PATTERNS:\n ✗ <Select> with 20 options → <Combobox>\n ✗ Manual <input> + dropdown div + filter logic → <Combobox>\n ✗ Passing options through a prop array (legacy API removed) → use <Combobox.Option> children\n ✗ Wrapping options in extra elements (<div><Combobox.Option/></div>) → keep them as direct children\n ✗ Same `value` on two <Combobox.Option> — duplicates are warned + dropped in dev mode\n ✗ Setting value externally to clear input mid-typing → use onValueChange instead"
764
809
  }
765
810
  },
766
811
  "$schema": "http://json-schema.org/draft-07/schema#"