@bioturing/components 0.46.4 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/components/base-menu/component.js +19 -21
  2. package/dist/components/base-menu/component.js.map +1 -1
  3. package/dist/components/base-menu/index.d.ts +1 -1
  4. package/dist/components/base-menu/index.d.ts.map +1 -1
  5. package/dist/components/base-menu/index.js +12 -7
  6. package/dist/components/base-menu/index.js.map +1 -1
  7. package/dist/components/base-menu/item.css +1 -1
  8. package/dist/components/base-menu/item.d.ts +13 -2
  9. package/dist/components/base-menu/item.d.ts.map +1 -1
  10. package/dist/components/base-menu/item.js +62 -47
  11. package/dist/components/base-menu/item.js.map +1 -1
  12. package/dist/components/base-menu/style.css +1 -1
  13. package/dist/components/checkbox/component.d.ts +2 -2
  14. package/dist/components/checkbox/component.d.ts.map +1 -1
  15. package/dist/components/checkbox/component.js.map +1 -1
  16. package/dist/components/choice-list/component.js +12 -12
  17. package/dist/components/combobox/component.d.ts.map +1 -1
  18. package/dist/components/combobox/component.js +121 -121
  19. package/dist/components/combobox/component.js.map +1 -1
  20. package/dist/components/combobox/style.css +1 -1
  21. package/dist/components/data-table/component.d.ts.map +1 -1
  22. package/dist/components/data-table/component.js +99 -79
  23. package/dist/components/data-table/component.js.map +1 -1
  24. package/dist/components/data-table/components/TableBody.d.ts +3 -2
  25. package/dist/components/data-table/components/TableBody.d.ts.map +1 -1
  26. package/dist/components/data-table/components/TableBody.js +106 -89
  27. package/dist/components/data-table/components/TableBody.js.map +1 -1
  28. package/dist/components/data-table/components/TableHeader.d.ts +3 -1
  29. package/dist/components/data-table/components/TableHeader.d.ts.map +1 -1
  30. package/dist/components/data-table/components/TableHeader.js +121 -93
  31. package/dist/components/data-table/components/TableHeader.js.map +1 -1
  32. package/dist/components/data-table/components/TablePagination.d.ts.map +1 -1
  33. package/dist/components/data-table/components/TablePagination.js +36 -31
  34. package/dist/components/data-table/components/TablePagination.js.map +1 -1
  35. package/dist/components/data-table/hooks.d.ts.map +1 -1
  36. package/dist/components/data-table/hooks.js +98 -83
  37. package/dist/components/data-table/hooks.js.map +1 -1
  38. package/dist/components/data-table/style.css +1 -1
  39. package/dist/components/data-table/types.d.ts +1 -1
  40. package/dist/components/data-table/types.d.ts.map +1 -1
  41. package/dist/components/data-table/utils.js +37 -30
  42. package/dist/components/data-table/utils.js.map +1 -1
  43. package/dist/components/data-table/variant-minimal.css +1 -0
  44. package/dist/components/data-table/variant-zebra.css +1 -0
  45. package/dist/components/dialog/Dialog.js +46 -46
  46. package/dist/components/dialog/Dialog.js.map +1 -1
  47. package/dist/components/dialog/dialog.css +1 -1
  48. package/dist/components/dropdown-menu/component.d.ts.map +1 -1
  49. package/dist/components/dropdown-menu/component.js +121 -144
  50. package/dist/components/dropdown-menu/component.js.map +1 -1
  51. package/dist/components/dropdown-menu/index.d.ts +2 -0
  52. package/dist/components/dropdown-menu/index.d.ts.map +1 -1
  53. package/dist/components/dropdown-menu/item.d.ts +7 -15
  54. package/dist/components/dropdown-menu/item.d.ts.map +1 -1
  55. package/dist/components/dropdown-menu/item.js +132 -81
  56. package/dist/components/dropdown-menu/item.js.map +1 -1
  57. package/dist/components/dropdown-menu/radio-group.d.ts +14 -0
  58. package/dist/components/dropdown-menu/radio-group.d.ts.map +1 -0
  59. package/dist/components/dropdown-menu/radio-group.js +45 -0
  60. package/dist/components/dropdown-menu/radio-group.js.map +1 -0
  61. package/dist/components/dropdown-menu/search-mode.d.ts +4 -0
  62. package/dist/components/dropdown-menu/search-mode.d.ts.map +1 -0
  63. package/dist/components/dropdown-menu/search-mode.js +6 -0
  64. package/dist/components/dropdown-menu/search-mode.js.map +1 -0
  65. package/dist/components/dropdown-menu/style.css +1 -1
  66. package/dist/components/dropdown-menu/submenu.d.ts +25 -0
  67. package/dist/components/dropdown-menu/submenu.d.ts.map +1 -0
  68. package/dist/components/dropdown-menu/submenu.js +96 -0
  69. package/dist/components/dropdown-menu/submenu.js.map +1 -0
  70. package/dist/components/dropdown-menu/types.d.ts +85 -12
  71. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  72. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +4 -8
  73. package/dist/components/dropdown-menu/useDropdownMenu.d.ts.map +1 -1
  74. package/dist/components/dropdown-menu/useDropdownMenu.js +108 -81
  75. package/dist/components/dropdown-menu/useDropdownMenu.js.map +1 -1
  76. package/dist/components/form/FormItem/ItemHolder.d.ts +6 -5
  77. package/dist/components/form/FormItem/ItemHolder.d.ts.map +1 -1
  78. package/dist/components/form/FormItem/ItemHolder.js +32 -29
  79. package/dist/components/form/FormItem/ItemHolder.js.map +1 -1
  80. package/dist/components/form/FormItem/index.d.ts +6 -0
  81. package/dist/components/form/FormItem/index.d.ts.map +1 -1
  82. package/dist/components/form/FormItem/index.js +138 -127
  83. package/dist/components/form/FormItem/index.js.map +1 -1
  84. package/dist/components/form/FormValidationContext.d.ts +5 -0
  85. package/dist/components/form/FormValidationContext.d.ts.map +1 -0
  86. package/dist/components/form/FormValidationContext.js +7 -0
  87. package/dist/components/form/FormValidationContext.js.map +1 -0
  88. package/dist/components/form/component.d.ts +6 -1
  89. package/dist/components/form/component.d.ts.map +1 -1
  90. package/dist/components/form/component.js +30 -20
  91. package/dist/components/form/component.js.map +1 -1
  92. package/dist/components/form/formValidationRule.d.ts +19 -0
  93. package/dist/components/form/formValidationRule.d.ts.map +1 -0
  94. package/dist/components/form/formValidationRule.js +22 -0
  95. package/dist/components/form/formValidationRule.js.map +1 -0
  96. package/dist/components/form/index.d.ts +2 -0
  97. package/dist/components/form/index.d.ts.map +1 -1
  98. package/dist/components/form/useFormValidation.d.ts +3 -0
  99. package/dist/components/form/useFormValidation.d.ts.map +1 -0
  100. package/dist/components/form/useFormValidation.js +18 -0
  101. package/dist/components/form/useFormValidation.js.map +1 -0
  102. package/dist/components/index.d.ts +2 -0
  103. package/dist/components/index.d.ts.map +1 -1
  104. package/dist/components/keyboard-shortcut/component.d.ts +2 -0
  105. package/dist/components/keyboard-shortcut/component.d.ts.map +1 -1
  106. package/dist/components/keyboard-shortcut/component.js +69 -49
  107. package/dist/components/keyboard-shortcut/component.js.map +1 -1
  108. package/dist/components/modal/Modal.d.ts +1 -1
  109. package/dist/components/modal/Modal.js +9 -9
  110. package/dist/components/modal/Modal.js.map +1 -1
  111. package/dist/components/modal/style.css +1 -1
  112. package/dist/components/select/component.js +29 -29
  113. package/dist/components/select/component.js.map +1 -1
  114. package/dist/components/theme-provider/component.d.ts +3 -1
  115. package/dist/components/theme-provider/component.d.ts.map +1 -1
  116. package/dist/components/theme-provider/component.js +32 -31
  117. package/dist/components/theme-provider/component.js.map +1 -1
  118. package/dist/components/theme-provider/context/index.d.ts +2 -1
  119. package/dist/components/theme-provider/context/index.d.ts.map +1 -1
  120. package/dist/components/theme-provider/context/provider.d.ts +2 -3
  121. package/dist/components/theme-provider/context/provider.d.ts.map +1 -1
  122. package/dist/components/theme-provider/context/provider.js +13 -6
  123. package/dist/components/theme-provider/context/provider.js.map +1 -1
  124. package/dist/components/theme-provider/context/themeStore.d.ts +15 -0
  125. package/dist/components/theme-provider/context/themeStore.d.ts.map +1 -1
  126. package/dist/components/theme-provider/context/themeStore.js +10 -9
  127. package/dist/components/theme-provider/context/themeStore.js.map +1 -1
  128. package/dist/components/theme-provider/style.css +1 -1
  129. package/dist/components/tooltip/component.d.ts.map +1 -1
  130. package/dist/components/tooltip/component.js +23 -12
  131. package/dist/components/tooltip/component.js.map +1 -1
  132. package/dist/index.js +273 -258
  133. package/dist/index.js.map +1 -1
  134. package/dist/metadata.d.ts +9 -0
  135. package/dist/metadata.d.ts.map +1 -1
  136. package/dist/metadata.js +14 -0
  137. package/dist/metadata.js.map +1 -1
  138. package/dist/stats.html +1 -1
  139. package/package.json +6 -6
@@ -1,140 +1,140 @@
1
1
  "use client";
2
- import { jsx as t, jsxs as g, Fragment as ne } from "react/jsx-runtime";
2
+ import { jsx as t, jsxs as g, Fragment as te } from "react/jsx-runtime";
3
3
  import { Combobox as r } from "@base-ui/react/combobox";
4
4
  import Ae from "antd/es/config-provider/DisabledContext";
5
5
  import { FormItemInputContext as Re } from "antd/es/form/context";
6
- import { forwardRef as Se, useRef as ke, useContext as re, useCallback as v, useMemo as y, useState as De } from "react";
7
- import { BaseMenu as V } from "../base-menu/index.js";
8
- import { XIcon as Me } from "@bioturing/assets";
9
- import { hasTokenSeparator as Ve, splitBySeparators as Fe } from "./utils.js";
6
+ import { forwardRef as Se, useRef as ke, useContext as ne, useCallback as v, useMemo as w, useState as De } from "react";
7
+ import { BaseMenu as M } from "../base-menu/index.js";
8
+ import { XIcon as Ve } from "@bioturing/assets";
9
+ import { hasTokenSeparator as Me, splitBySeparators as Fe } from "./utils.js";
10
10
  import { useComboboxTokenInput as Oe } from "./use-combobox-token-input.js";
11
11
  import './style.css';/* empty css */
12
12
  import { SelectTrigger as p } from "../select-trigger/component.js";
13
- import { BaseMenuItem as se } from "../base-menu/item.js";
13
+ import { BaseMenuItem as re } from "../base-menu/item.js";
14
14
  import { Empty as $e } from "../empty/component.js";
15
- import { useControlledState as ce } from "../hooks/useControlledState.js";
15
+ import { useControlledState as se } from "../hooks/useControlledState.js";
16
16
  import { useCls as Be } from "../utils/antdUtils.js";
17
- import { clsx as l } from "../utils/cn.js";
18
- import { reactNodeToString as le } from "../utils/reactToString.js";
17
+ import { clsx as a } from "../utils/cn.js";
18
+ import { reactNodeToString as ce } from "../utils/reactToString.js";
19
19
  import { ScrollArea as Le } from "../scroll-area/component.js";
20
- const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__ */ t(V.Popup, { ...s }), Ee = (s) => /* @__PURE__ */ t(V.Divider, { ...s }), Ke = (s) => /* @__PURE__ */ t(V.List, { ...s }), We = ({
20
+ const Pe = (s) => /* @__PURE__ */ t(M.Root, { ...s }), je = (s) => /* @__PURE__ */ t(M.Popup, { ...s }), Ee = (s) => /* @__PURE__ */ t(M.Divider, { ...s }), Ke = (s) => /* @__PURE__ */ t(M.List, { ...s }), We = ({
21
21
  options: s = [],
22
22
  value: ae,
23
- defaultValue: K,
24
- onChange: F,
25
- placeholder: w = "Select...",
23
+ defaultValue: E,
24
+ onChange: le,
25
+ placeholder: N = "Select...",
26
26
  disabled: ie = !1,
27
27
  status: de,
28
- allowClear: W = !1,
28
+ allowClear: K = !1,
29
29
  multiple: n = !1,
30
30
  showSearch: Qe = !0,
31
31
  open: he,
32
32
  onOpenChange: me,
33
33
  className: ue,
34
34
  classNames: b,
35
- size: O = "middle",
36
- optionRender: H,
37
- onSearch: $,
38
- clearIcon: Q,
39
- suffixIcon: U,
35
+ size: F = "middle",
36
+ optionRender: W,
37
+ onSearch: O,
38
+ clearIcon: H,
39
+ suffixIcon: Q,
40
40
  placement: T = "bottomLeft",
41
41
  // showSelectionSummary: _showSelectionSummary = false,
42
42
  // selectionSummaryRender,
43
- showSelectAll: X = !1,
43
+ showSelectAll: U = !1,
44
44
  optionLabelRender: A,
45
- getOptionKeywords: G = (u) => [
45
+ getOptionKeywords: X = (u) => [
46
46
  String(u.value),
47
- le(u.label)
47
+ ce(u.label)
48
48
  ],
49
49
  popupMatchSelectWidth: be = !0,
50
- addOnEnter: B = !1,
50
+ addOnEnter: $ = !1,
51
51
  tokenSeparators: C,
52
- autoHighlight: L = !0,
52
+ autoHighlight: B = !0,
53
53
  filterOption: R,
54
54
  ...fe
55
55
  }, ge) => {
56
- const [u, J] = ce(
56
+ const [u, G] = se(
57
57
  ae,
58
- F,
59
- K !== void 0 ? K : n ? [] : void 0
60
- ), [P, S] = ce(he, me, !1), c = Be(), j = ke(null), { status: pe } = re(Re), Ce = re(Ae), k = de || pe, I = ie || Ce, h = v(
58
+ le,
59
+ E !== void 0 ? E : n ? [] : void 0
60
+ ), [L, S] = se(he, me, !1), c = Be(), P = ke(null), { status: pe } = ne(Re), Ce = ne(Ae), k = de || pe, y = ie || Ce, h = v(
61
61
  (e) => {
62
- J(e), F?.(e);
62
+ G(e);
63
63
  },
64
- [J, F]
65
- ), Y = v(() => {
64
+ [G]
65
+ ), J = v(() => {
66
66
  if (n) {
67
67
  const e = s.map((o) => o.value);
68
68
  h(e);
69
69
  }
70
- }, [n, s, h]), Z = v(() => {
70
+ }, [n, s, h]), Y = v(() => {
71
71
  n && h([]);
72
- }, [n, h]), _ = v(() => {
72
+ }, [n, h]), Z = v(() => {
73
73
  h(n ? [] : void 0);
74
- }, [n, h]), m = y(() => Array.isArray(u) ? u : u ? [u] : [], [u]), i = y(() => {
74
+ }, [n, h]), m = w(() => Array.isArray(u) ? u : u ? [u] : [], [u]), i = w(() => {
75
75
  const e = /* @__PURE__ */ new Map();
76
76
  for (const o of s)
77
77
  e.set(o.value, o);
78
78
  return e;
79
- }, [s]), D = y(() => {
80
- if (!X || !n || s.length === 0)
79
+ }, [s]), D = w(() => {
80
+ if (!U || !n || s.length === 0)
81
81
  return null;
82
- const e = m.filter((d) => i.has(d)), o = e.length === s.length && s.length > 0, a = e.length > 0 && e.length < s.length;
82
+ const e = m.filter((d) => i.has(d)), o = e.length === s.length && s.length > 0, l = e.length > 0 && e.length < s.length;
83
83
  return {
84
84
  checked: o,
85
- indeterminate: a,
85
+ indeterminate: l,
86
86
  onToggle: () => {
87
- a || o ? Z() : Y();
87
+ l || o ? Y() : J();
88
88
  }
89
89
  };
90
- }, [X, n, s, i, m, Z, Y]), xe = y(() => s.map((e) => e.value), [s]), z = y(() => n ? m.length > 0 ? `${m.length} item${m.length === 1 ? "" : "s"} selected` : null : i.get(m[0])?.label || null, [n, m, i]), q = l(
90
+ }, [U, n, s, i, m, Y, J]), xe = w(() => s.map((e) => e.value), [s]), _ = w(() => n ? m.length > 0 ? `${m.length} item${m.length === 1 ? "" : "s"} selected` : null : i.get(m[0])?.label || null, [n, m, i]), z = a(
91
91
  c("combobox-input"),
92
- c(`combobox-input-${O}`),
92
+ c(`combobox-input-${F}`),
93
93
  k && c(`combobox-input-${k}`),
94
94
  b?.input
95
95
  ), ve = v(
96
96
  (e) => {
97
97
  const o = i.get(e);
98
- return le(o?.label || String(e));
98
+ return ce(o?.label || String(e));
99
99
  },
100
100
  [i]
101
- ), [M, ee] = De(""), { handleAddOnEnter: oe, handleInputValueChange: ye } = Oe({
102
- addOnEnter: B,
101
+ ), [V, q] = De(""), { handleAddOnEnter: ee, handleInputValueChange: we } = Oe({
102
+ addOnEnter: $,
103
103
  multiple: n,
104
104
  tokenSeparators: C,
105
105
  optionMap: i,
106
106
  value: u,
107
107
  handleValueChange: h,
108
108
  setOpen: S,
109
- setSearchValue: ee,
110
- onSearch: $
111
- }), Ie = !!C?.length, Ne = n && Ie && Ve(M, C) ? !1 : L, te = v(
109
+ setSearchValue: q,
110
+ onSearch: O
111
+ }), ye = !!C?.length, Ie = n && ye && Me(V, C) ? !1 : B, oe = v(
112
112
  (e) => (o) => {
113
- if (o.key === "Enter" && B && e) {
114
- if (!n && L) return;
115
- oe(e) && (o.preventDefault(), ee(""), $?.(""));
113
+ if (o.key === "Enter" && $ && e) {
114
+ if (!n && B) return;
115
+ ee(e) && (o.preventDefault(), q(""), O?.(""));
116
116
  }
117
117
  },
118
- [B, L, n, oe, $]
119
- ), we = y(() => R === !1 ? null : typeof R == "function" ? (e, o) => {
120
- const a = i.get(e);
121
- return R(o, a);
118
+ [$, B, n, ee, O]
119
+ ), Ne = w(() => R === !1 ? null : typeof R == "function" ? (e, o) => {
120
+ const l = i.get(e);
121
+ return R(o, l);
122
122
  } : (e, o) => {
123
123
  if (!o) return !0;
124
- const a = i.get(e);
125
- if (!a) return !1;
126
- const d = C && C.length > 0 ? Fe(o, C) : [o], x = G(a).map((N) => N.toLowerCase()), f = d.filter((N) => {
127
- const E = N.toLowerCase();
128
- return x.some((Te) => Te.includes(E));
124
+ const l = i.get(e);
125
+ if (!l) return !1;
126
+ const d = C && C.length > 0 ? Fe(o, C) : [o], x = X(l).map((I) => I.toLowerCase()), f = d.filter((I) => {
127
+ const j = I.toLowerCase();
128
+ return x.some((Te) => Te.includes(j));
129
129
  }).length;
130
130
  if (f === 0) return !1;
131
131
  if (d.length > 1 && f > 1) {
132
- const N = o.toLowerCase();
133
- return x.some((E) => E.includes(N));
132
+ const I = o.toLowerCase();
133
+ return x.some((j) => j.includes(I));
134
134
  }
135
135
  return !0;
136
- }, [R, i, C, G]);
137
- return /* @__PURE__ */ t("div", { ref: ge, className: l(c("combobox"), ue), ...fe, children: /* @__PURE__ */ g(
136
+ }, [R, i, C, X]);
137
+ return /* @__PURE__ */ t("div", { ref: ge, className: a(c("combobox"), ue), ...fe, children: /* @__PURE__ */ g(
138
138
  r.Root,
139
139
  {
140
140
  value: n ? m : m[0] ?? null,
@@ -143,51 +143,51 @@ const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__
143
143
  n ? Array.isArray(e) ? e : [] : e
144
144
  );
145
145
  },
146
- inputValue: M,
147
- onInputValueChange: ye,
148
- open: P,
146
+ inputValue: n ? V : void 0,
147
+ onInputValueChange: we,
148
+ open: L,
149
149
  onOpenChange: S,
150
150
  multiple: n,
151
- disabled: I,
152
- autoHighlight: Ne,
151
+ disabled: y,
152
+ autoHighlight: Ie,
153
153
  items: xe,
154
154
  itemToStringLabel: ve,
155
- filter: we,
155
+ filter: Ne,
156
156
  children: [
157
157
  n ? (
158
158
  /* Multiple Selection Layout using SelectTrigger compound components */
159
159
  /* @__PURE__ */ g(
160
160
  p.Root,
161
161
  {
162
- ref: j,
163
- size: O,
164
- disabled: I,
165
- open: P,
162
+ ref: P,
163
+ size: F,
164
+ disabled: y,
165
+ open: L,
166
166
  status: k,
167
- placeholder: w,
168
- displayValue: z,
169
- allowClear: W,
170
- suffixIcon: U,
171
- clearIcon: Q,
172
- onClear: _,
167
+ placeholder: N,
168
+ displayValue: _,
169
+ allowClear: K,
170
+ suffixIcon: Q,
171
+ clearIcon: H,
172
+ onClear: Z,
173
173
  onOpenChange: S,
174
- className: l(b?.trigger, c("combobox-trigger-multiple")),
174
+ className: a(b?.trigger, c("combobox-trigger-multiple")),
175
175
  as: "div",
176
176
  children: [
177
177
  /* @__PURE__ */ t(
178
178
  p.Content,
179
179
  {
180
- contentRender: ({ className: e, children: o, ...a }) => /* @__PURE__ */ t(r.Chips, { className: l(c("combobox-chips"), e), ...a, children: /* @__PURE__ */ t(r.Value, { children: (d) => /* @__PURE__ */ g(ne, { children: [
180
+ contentRender: ({ className: e, children: o, ...l }) => /* @__PURE__ */ t(r.Chips, { className: a(c("combobox-chips"), e), ...l, children: /* @__PURE__ */ t(r.Value, { children: (d) => /* @__PURE__ */ g(te, { children: [
181
181
  d.map((x) => {
182
182
  const f = i.get(x);
183
- return /* @__PURE__ */ g(r.Chip, { className: l(c("combobox-chip")), children: [
184
- f?.icon && /* @__PURE__ */ t("span", { className: l(c("combobox-chip-icon")), children: f.icon }),
185
- /* @__PURE__ */ t("span", { className: l(c("combobox-chip-text")), children: f ? A ? A(f) : f.label : x }),
183
+ return /* @__PURE__ */ g(r.Chip, { className: a(c("combobox-chip")), children: [
184
+ f?.icon && /* @__PURE__ */ t("span", { className: a(c("combobox-chip-icon")), children: f.icon }),
185
+ /* @__PURE__ */ t("span", { className: a(c("combobox-chip-text")), children: f ? A ? A(f) : f.label : x }),
186
186
  /* @__PURE__ */ t(
187
187
  r.ChipRemove,
188
188
  {
189
- className: l(c("combobox-chip-remove")),
190
- children: /* @__PURE__ */ t(Me, {})
189
+ className: a(c("combobox-chip-remove")),
190
+ children: /* @__PURE__ */ t(Ve, {})
191
191
  }
192
192
  )
193
193
  ] }, x);
@@ -195,10 +195,10 @@ const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__
195
195
  /* @__PURE__ */ t(
196
196
  r.Input,
197
197
  {
198
- placeholder: d.length > 0 ? "" : w,
199
- className: q,
200
- disabled: I,
201
- onKeyDown: te(M)
198
+ placeholder: d.length > 0 ? "" : N,
199
+ className: z,
200
+ disabled: y,
201
+ onKeyDown: oe(V)
202
202
  }
203
203
  )
204
204
  ] }) }) })
@@ -222,32 +222,32 @@ const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__
222
222
  ) : /* @__PURE__ */ g(
223
223
  p.Root,
224
224
  {
225
- ref: j,
225
+ ref: P,
226
226
  as: "div",
227
- size: O,
228
- disabled: I,
229
- open: P,
227
+ size: F,
228
+ disabled: y,
229
+ open: L,
230
230
  status: k,
231
- placeholder: w,
232
- displayValue: z,
233
- allowClear: W,
234
- suffixIcon: U,
235
- clearIcon: Q,
236
- onClear: _,
231
+ placeholder: N,
232
+ displayValue: _,
233
+ allowClear: K,
234
+ suffixIcon: Q,
235
+ clearIcon: H,
236
+ onClear: Z,
237
237
  onOpenChange: S,
238
- className: l(b?.trigger, c("combobox-trigger-single")),
238
+ className: a(b?.trigger, c("combobox-trigger-single")),
239
239
  children: [
240
240
  /* @__PURE__ */ t(
241
241
  p.Content,
242
242
  {
243
- contentRender: ({ className: e, children: o, ...a }) => /* @__PURE__ */ t(
243
+ contentRender: ({ className: e, children: o, ...l }) => /* @__PURE__ */ t(
244
244
  r.Input,
245
245
  {
246
- placeholder: w,
247
- className: l(e, q),
248
- disabled: I,
249
- onKeyDown: te(M),
250
- ...a
246
+ placeholder: N,
247
+ className: a(e, z),
248
+ disabled: y,
249
+ onKeyDown: oe(V),
250
+ ...l
251
251
  }
252
252
  )
253
253
  }
@@ -270,7 +270,7 @@ const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__
270
270
  /* @__PURE__ */ t(r.Portal, { children: /* @__PURE__ */ t(
271
271
  r.Positioner,
272
272
  {
273
- anchor: j.current,
273
+ anchor: P.current,
274
274
  sideOffset: 4,
275
275
  side: T.startsWith("top") ? "top" : "bottom",
276
276
  align: T.endsWith("Right") ? "end" : T === "top" || T === "bottom" ? "center" : "start",
@@ -278,20 +278,20 @@ const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__
278
278
  children: /* @__PURE__ */ t(
279
279
  r.Popup,
280
280
  {
281
- className: l(
281
+ className: a(
282
282
  c("combobox-popup"),
283
283
  !be && c("combobox-popup--auto-width"),
284
284
  b?.portal
285
285
  ),
286
286
  render: je,
287
- children: /* @__PURE__ */ g("div", { className: l(c("combobox-container")), children: [
288
- D && /* @__PURE__ */ g(ne, { children: [
287
+ children: /* @__PURE__ */ g("div", { className: a(c("combobox-container")), children: [
288
+ D && /* @__PURE__ */ g(te, { children: [
289
289
  /* @__PURE__ */ t(
290
- se,
290
+ re,
291
291
  {
292
292
  as: "button",
293
293
  type: "button",
294
- className: l(c("combobox-select-all")),
294
+ className: a(c("combobox-select-all")),
295
295
  selected: D.checked,
296
296
  onClick: D.onToggle,
297
297
  indeterminate: D.indeterminate,
@@ -305,21 +305,21 @@ const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__
305
305
  /* @__PURE__ */ t(
306
306
  r.List,
307
307
  {
308
- className: l(c("combobox-list"), b?.list),
308
+ className: a(c("combobox-list"), b?.list),
309
309
  render: Ke,
310
310
  children: (e) => {
311
311
  const o = i.get(e);
312
312
  if (!o) return null;
313
- const a = m.includes(e);
314
- return H ? H(o, {}) : /* @__PURE__ */ t(
315
- se,
313
+ const l = m.includes(e);
314
+ return W ? W(o, {}) : /* @__PURE__ */ t(
315
+ re,
316
316
  {
317
317
  disabled: o.disabled,
318
- selected: a,
318
+ selected: l,
319
319
  showCheckbox: n,
320
320
  icon: o.icon,
321
321
  classNames: {
322
- root: l(b?.option),
322
+ root: a(b?.option),
323
323
  icon: b?.optionIcon,
324
324
  text: b?.optionText
325
325
  },
@@ -331,7 +331,7 @@ const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__
331
331
  disabled: o.disabled,
332
332
  ...d,
333
333
  "data-disabled": o.disabled,
334
- "data-selected": a
334
+ "data-selected": l
335
335
  }
336
336
  ),
337
337
  children: o.label
@@ -341,7 +341,7 @@ const Pe = (s) => /* @__PURE__ */ t(V.Root, { ...s }), je = (s) => /* @__PURE__
341
341
  }
342
342
  }
343
343
  ),
344
- /* @__PURE__ */ t(r.Empty, { className: l(c("combobox-empty")), children: /* @__PURE__ */ t($e, { description: "No options found" }) })
344
+ /* @__PURE__ */ t(r.Empty, { className: a(c("combobox-empty")), children: /* @__PURE__ */ t($e, { description: "No options found" }) })
345
345
  ] })
346
346
  ] })
347
347
  }
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/combobox/component.tsx"],"sourcesContent":["\"use client\";\nimport { Combobox as BaseCombobox } from \"@base-ui/react/combobox\";\nimport DisabledContext from \"antd/es/config-provider/DisabledContext\";\nimport { FormItemInputContext } from \"antd/es/form/context\";\nimport React, {\n ForwardedRef,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { BaseMenuItem } from \"../base-menu\";\nimport { useControlledState } from \"../hooks\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { SelectTrigger } from \"../select-trigger\";\nimport { clsx, reactNodeToString, useCls } from \"../utils\";\n\nimport { XIcon } from \"@bioturing/assets\";\nimport { BaseMenu } from \"../base-menu\";\nimport { Empty } from \"../empty\";\nimport type { ComboboxOption, ComboboxProps } from \"./types\";\nimport { hasTokenSeparator, splitBySeparators } from \"./utils\";\nimport { useComboboxTokenInput } from \"./use-combobox-token-input\";\nimport \"./style.css\";\n\nexport type { ComboboxOption, ComboboxProps } from \"./types\";\n\n// Module-level static renderers — avoid recreating on every render\nconst positionerRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Root {...props} />;\nconst popupRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Popup {...props} />;\nconst separatorRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Divider {...props} />;\nconst listRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.List {...props} />;\n\nconst ComboboxInner = <\n T extends React.Key,\n M extends boolean,\n O extends Record<string, unknown> = {},\n>(\n {\n options = [],\n value: controlledValue,\n defaultValue,\n onChange,\n placeholder = \"Select...\",\n disabled: disabledProp = false,\n status: statusProp,\n allowClear = false,\n multiple = false as M,\n showSearch: _showSearch = true,\n open: controlledOpen,\n onOpenChange,\n className,\n classNames,\n size = \"middle\",\n optionRender,\n onSearch,\n clearIcon,\n suffixIcon,\n placement = \"bottomLeft\",\n // showSelectionSummary: _showSelectionSummary = false,\n // selectionSummaryRender,\n showSelectAll = false,\n optionLabelRender,\n getOptionKeywords: _getOptionKeywords = (option: ComboboxOption<T, O>) => [\n String(option.value),\n reactNodeToString(option.label),\n ],\n popupMatchSelectWidth = true,\n addOnEnter = false,\n tokenSeparators,\n autoHighlight = true,\n filterOption,\n ...rest\n }: ComboboxProps<T, M, O>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) => {\n const [value, setValue] = useControlledState(\n controlledValue,\n onChange,\n defaultValue !== undefined ? defaultValue : multiple ? ([] as T[]) : undefined,\n );\n\n const [open, setOpen] = useControlledState(controlledOpen, onOpenChange, false);\n\n const cls = useCls();\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n // Get form context values\n const { status: contextStatus } = useContext(FormItemInputContext);\n const contextDisabled = useContext(DisabledContext);\n\n // Merge context values with props\n const mergedStatus = statusProp || contextStatus;\n const disabled = disabledProp || contextDisabled;\n\n const handleValueChange = useCallback(\n (newValue: M extends true ? T[] : T) => {\n setValue(newValue);\n onChange?.(newValue);\n },\n [setValue, onChange],\n );\n\n const handleSelectAll = useCallback(() => {\n if (multiple) {\n const allValues = options.map((option) => option.value);\n (handleValueChange as (v: T[]) => void)(allValues);\n }\n }, [multiple, options, handleValueChange]);\n\n const handleDeselectAll = useCallback(() => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)([]);\n }\n }, [multiple, handleValueChange]);\n\n const handleClear = useCallback(() => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)([]);\n } else {\n (handleValueChange as (v: T) => void)(undefined as T);\n }\n }, [multiple, handleValueChange]);\n\n // Prepare selected values\n const selectedValues = useMemo(() => {\n return Array.isArray(value) ? value : value ? [value] : [];\n }, [value]);\n\n // Build a Map for O(1) option lookups.\n // `options.find()` was being called 7+ times per render and inside\n // the hot `filter` path on every keystroke.\n const optionMap = useMemo(() => {\n const map = new Map<T, ComboboxOption<T, O>>();\n for (const opt of options) {\n map.set(opt.value, opt);\n }\n return map;\n }, [options]);\n\n // Select all option logic\n const selectAllOption = useMemo(() => {\n if (!showSelectAll || !multiple || options.length === 0) {\n return null;\n }\n\n const selectedFromFiltered = selectedValues.filter((val) => optionMap.has(val as T));\n const checked = selectedFromFiltered.length === options.length && options.length > 0;\n const indeterminate =\n selectedFromFiltered.length > 0 && selectedFromFiltered.length < options.length;\n\n return {\n checked,\n indeterminate,\n onToggle: () => {\n if (indeterminate || checked) {\n handleDeselectAll();\n } else {\n handleSelectAll();\n }\n },\n };\n }, [showSelectAll, multiple, options, optionMap, selectedValues, handleDeselectAll, handleSelectAll]);\n\n // Convert options to Base UI format\n const baseUIItems = useMemo(() => options.map((opt) => opt.value), [options]);\n\n // Get display value for SelectTrigger\n const displayValue = useMemo(() => {\n if (multiple) {\n return selectedValues.length > 0\n ? `${selectedValues.length} item${selectedValues.length === 1 ? \"\" : \"s\"} selected`\n : null;\n } else {\n const selectedOption = optionMap.get(selectedValues[0] as T);\n return selectedOption?.label || null;\n }\n }, [multiple, selectedValues, optionMap]);\n\n const inputClassName = clsx(\n cls(\"combobox-input\"),\n cls(`combobox-input-${size}`),\n mergedStatus && cls(`combobox-input-${mergedStatus}`),\n classNames?.input,\n );\n\n const itemToStringLabel = useCallback(\n (itemValue: T) => {\n const option = optionMap.get(itemValue);\n return reactNodeToString(option?.label || String(itemValue));\n },\n [optionMap],\n );\n\n const [searchValue, setSearchValue] = useState(\"\");\n\n const { handleAddOnEnter, handleInputValueChange } = useComboboxTokenInput<T, O>({\n addOnEnter,\n multiple,\n tokenSeparators,\n optionMap,\n value: value as T | T[] | undefined,\n handleValueChange: handleValueChange as (nextValue: T | T[]) => void,\n setOpen,\n setSearchValue,\n onSearch,\n });\n\n const hasTokenSeparators = Boolean(tokenSeparators?.length);\n const effectiveAutoHighlight =\n multiple && hasTokenSeparators && hasTokenSeparator(searchValue, tokenSeparators)\n ? false\n : autoHighlight;\n\n const createInputKeyDownHandler = useCallback(\n (currentSearchValue: string) => (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\" && addOnEnter && currentSearchValue) {\n // In single-select mode with autoHighlight, let Base UI handle Enter\n // to select the natively highlighted item instead of exact matching.\n if (!multiple && autoHighlight) return;\n\n const matched = handleAddOnEnter(currentSearchValue);\n if (matched) {\n event.preventDefault();\n setSearchValue(\"\");\n onSearch?.(\"\");\n }\n }\n },\n [addOnEnter, autoHighlight, multiple, handleAddOnEnter, onSearch],\n );\n\n const mergedFilter = useMemo(() => {\n if (filterOption === false) {\n return null;\n }\n\n if (typeof filterOption === \"function\") {\n return (itemValue: T, query: string) => {\n const option = optionMap.get(itemValue);\n return filterOption(query, option);\n };\n }\n\n return (itemValue: T, query: string) => {\n if (!query) return true;\n const option = optionMap.get(itemValue);\n if (!option) return false;\n\n const tokens =\n tokenSeparators && tokenSeparators.length > 0\n ? splitBySeparators(query, tokenSeparators)\n : [query];\n\n const keywords = _getOptionKeywords(option).map((k) => k.toLowerCase());\n\n const matchingTokenCount = tokens.filter((token) => {\n const lowerToken = token.toLowerCase();\n return keywords.some((keyword) => keyword.includes(lowerToken));\n }).length;\n\n if (matchingTokenCount === 0) return false;\n if (tokens.length > 1 && matchingTokenCount > 1) {\n const lowerQuery = query.toLowerCase();\n return keywords.some((keyword) => keyword.includes(lowerQuery));\n }\n return true;\n };\n }, [filterOption, optionMap, tokenSeparators, _getOptionKeywords]);\n\n return (\n <div ref={ref} className={clsx(cls(\"combobox\"), className)} {...rest}>\n <BaseCombobox.Root<T, M>\n value={\n (multiple ? selectedValues : (selectedValues[0] ?? null)) as M extends true\n ? T[]\n : T | null\n }\n onValueChange={(newValue) => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)(\n Array.isArray(newValue) ? (newValue as T[]) : [],\n );\n } else {\n (handleValueChange as (v: T) => void)(newValue as T);\n }\n }}\n inputValue={searchValue}\n onInputValueChange={handleInputValueChange}\n open={open}\n onOpenChange={setOpen}\n multiple={multiple}\n disabled={disabled}\n autoHighlight={effectiveAutoHighlight}\n items={baseUIItems}\n itemToStringLabel={itemToStringLabel}\n filter={mergedFilter}\n >\n {/* Single Selection Layout using SelectTrigger compound components */}\n {!multiple ? (\n <SelectTrigger.Root\n ref={inputContainerRef}\n as=\"div\"\n size={size}\n disabled={disabled}\n open={open}\n status={mergedStatus}\n placeholder={placeholder}\n displayValue={displayValue}\n allowClear={allowClear}\n suffixIcon={suffixIcon}\n clearIcon={clearIcon}\n onClear={handleClear}\n onOpenChange={setOpen}\n className={clsx(classNames?.trigger, cls(\"combobox-trigger-single\"))}\n >\n <SelectTrigger.Content\n contentRender={({ className, children, ...rest }) => (\n <BaseCombobox.Input\n placeholder={placeholder}\n className={clsx(className, inputClassName)}\n disabled={disabled}\n onKeyDown={createInputKeyDownHandler(searchValue)}\n {...rest}\n />\n )}\n />\n <SelectTrigger.Clear\n render={(props) => <BaseCombobox.Clear {...props}></BaseCombobox.Clear>}\n />\n <SelectTrigger.Arrow\n render={(props, { icon }) => (\n <BaseCombobox.Trigger {...props}>\n <BaseCombobox.Icon>{icon}</BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n )}\n />\n </SelectTrigger.Root>\n ) : (\n /* Multiple Selection Layout using SelectTrigger compound components */\n <SelectTrigger.Root\n ref={inputContainerRef}\n size={size}\n disabled={disabled}\n open={open}\n status={mergedStatus}\n placeholder={placeholder}\n displayValue={displayValue}\n allowClear={allowClear}\n suffixIcon={suffixIcon}\n clearIcon={clearIcon}\n onClear={handleClear}\n onOpenChange={setOpen}\n className={clsx(classNames?.trigger, cls(\"combobox-trigger-multiple\"))}\n as=\"div\"\n >\n <SelectTrigger.Content\n contentRender={({ className, children, ...rest }) => (\n <BaseCombobox.Chips className={clsx(cls(\"combobox-chips\"), className)} {...rest}>\n <BaseCombobox.Value>\n {(selectedItems) => (\n <>\n {selectedItems.map((item: T) => {\n const option = optionMap.get(item);\n return (\n <BaseCombobox.Chip key={item} className={clsx(cls(\"combobox-chip\"))}>\n {option?.icon && (\n <span className={clsx(cls(\"combobox-chip-icon\"))}>\n {option.icon}\n </span>\n )}\n <span className={clsx(cls(\"combobox-chip-text\"))}>\n {option\n ? optionLabelRender\n ? optionLabelRender(option)\n : option.label\n : item}\n </span>\n <BaseCombobox.ChipRemove\n className={clsx(cls(\"combobox-chip-remove\"))}\n >\n <XIcon />\n </BaseCombobox.ChipRemove>\n </BaseCombobox.Chip>\n );\n })}\n\n <BaseCombobox.Input\n placeholder={selectedItems.length > 0 ? \"\" : placeholder}\n className={inputClassName}\n disabled={disabled}\n onKeyDown={createInputKeyDownHandler(searchValue)}\n />\n </>\n )}\n </BaseCombobox.Value>\n </BaseCombobox.Chips>\n )}\n />\n <SelectTrigger.Clear\n render={(props) => <BaseCombobox.Clear {...props}></BaseCombobox.Clear>}\n />\n <SelectTrigger.Arrow\n render={(props, { icon }) => (\n <BaseCombobox.Trigger {...props}>\n <BaseCombobox.Icon>{icon}</BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n )}\n />\n </SelectTrigger.Root>\n )}\n\n <BaseCombobox.Portal>\n <BaseCombobox.Positioner\n anchor={inputContainerRef.current}\n sideOffset={4}\n side={placement.startsWith(\"top\") ? \"top\" : \"bottom\"}\n align={\n placement.endsWith(\"Right\")\n ? \"end\"\n : placement === \"top\" || placement === \"bottom\"\n ? \"center\"\n : \"start\"\n }\n render={positionerRender}\n >\n <BaseCombobox.Popup\n className={clsx(\n cls(\"combobox-popup\"),\n !popupMatchSelectWidth && cls(\"combobox-popup--auto-width\"),\n classNames?.portal,\n )}\n render={popupRender}\n >\n <div className={clsx(cls(\"combobox-container\"))}>\n {/* Select All Option */}\n {selectAllOption && (\n <>\n <BaseMenuItem\n as=\"button\"\n type=\"button\"\n className={clsx(cls(\"combobox-select-all\"))}\n selected={selectAllOption.checked}\n onClick={selectAllOption.onToggle}\n indeterminate={selectAllOption.indeterminate}\n showCheckbox\n >\n Select All\n </BaseMenuItem>\n <BaseCombobox.Separator render={separatorRender} />\n </>\n )}\n <ScrollArea fadeEdges>\n <BaseCombobox.List\n className={clsx(cls(\"combobox-list\"), classNames?.list)}\n render={listRender}\n >\n {(item: T) => {\n const option = optionMap.get(item);\n if (!option) return null;\n const isSelected = (selectedValues as T[]).includes(item);\n return optionRender ? (\n optionRender(option, {})\n ) : (\n <BaseMenuItem\n key={option.value}\n disabled={option.disabled}\n selected={isSelected}\n showCheckbox={multiple}\n icon={option.icon}\n classNames={{\n root: clsx(classNames?.option),\n icon: classNames?.optionIcon,\n text: classNames?.optionText,\n }}\n labelRender={\n optionLabelRender\n ? (props: React.HTMLAttributes<HTMLElement>) =>\n optionLabelRender(option, props)\n : undefined\n }\n render={(props: React.HTMLAttributes<HTMLElement>) => (\n <BaseCombobox.Item\n value={item as T}\n disabled={option.disabled}\n {...props}\n data-disabled={option.disabled}\n data-selected={isSelected}\n />\n )}\n >\n {option.label}\n </BaseMenuItem>\n );\n }}\n </BaseCombobox.List>\n\n <BaseCombobox.Empty className={clsx(cls(\"combobox-empty\"))}>\n <Empty description=\"No options found\" />\n </BaseCombobox.Empty>\n </ScrollArea>\n </div>\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </BaseCombobox.Root>\n </div>\n );\n};\n\nconst MainCombobox = forwardRef(ComboboxInner) as <\n T extends React.Key,\n M extends boolean,\n O extends Record<string, unknown> = {},\n>(\n props: ComboboxProps<T, M, O> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReturnType<typeof ComboboxInner>;\n\nexport const Combobox = Object.assign(MainCombobox, {\n // Add any sub components here if needed\n});\n\nexport default Combobox;\n"],"names":["positionerRender","props","jsx","BaseMenu","popupRender","separatorRender","listRender","ComboboxInner","options","controlledValue","defaultValue","onChange","placeholder","disabledProp","statusProp","allowClear","multiple","_showSearch","controlledOpen","onOpenChange","className","classNames","size","optionRender","onSearch","clearIcon","suffixIcon","placement","showSelectAll","optionLabelRender","_getOptionKeywords","option","reactNodeToString","popupMatchSelectWidth","addOnEnter","tokenSeparators","autoHighlight","filterOption","rest","ref","value","setValue","useControlledState","open","setOpen","cls","useCls","inputContainerRef","useRef","contextStatus","useContext","FormItemInputContext","contextDisabled","DisabledContext","mergedStatus","disabled","handleValueChange","useCallback","newValue","handleSelectAll","allValues","handleDeselectAll","handleClear","selectedValues","useMemo","optionMap","map","opt","selectAllOption","selectedFromFiltered","val","checked","indeterminate","baseUIItems","displayValue","inputClassName","clsx","itemToStringLabel","itemValue","searchValue","setSearchValue","useState","handleAddOnEnter","handleInputValueChange","useComboboxTokenInput","hasTokenSeparators","effectiveAutoHighlight","hasTokenSeparator","createInputKeyDownHandler","currentSearchValue","event","mergedFilter","query","tokens","splitBySeparators","keywords","k","matchingTokenCount","token","lowerToken","keyword","lowerQuery","jsxs","BaseCombobox","SelectTrigger","children","selectedItems","Fragment","item","XIcon","icon","BaseMenuItem","ScrollArea","isSelected","Empty","MainCombobox","forwardRef","Combobox"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/combobox/component.tsx"],"sourcesContent":["\"use client\";\nimport { Combobox as BaseCombobox } from \"@base-ui/react/combobox\";\nimport DisabledContext from \"antd/es/config-provider/DisabledContext\";\nimport { FormItemInputContext } from \"antd/es/form/context\";\nimport React, {\n ForwardedRef,\n forwardRef,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { BaseMenuItem } from \"../base-menu\";\nimport { useControlledState } from \"../hooks\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { SelectTrigger } from \"../select-trigger\";\nimport { clsx, reactNodeToString, useCls } from \"../utils\";\n\nimport { XIcon } from \"@bioturing/assets\";\nimport { BaseMenu } from \"../base-menu\";\nimport { Empty } from \"../empty\";\nimport type { ComboboxOption, ComboboxProps } from \"./types\";\nimport { hasTokenSeparator, splitBySeparators } from \"./utils\";\nimport { useComboboxTokenInput } from \"./use-combobox-token-input\";\nimport \"./style.css\";\n\nexport type { ComboboxOption, ComboboxProps } from \"./types\";\n\n// Module-level static renderers — avoid recreating on every render\nconst positionerRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Root {...props} />;\nconst popupRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Popup {...props} />;\nconst separatorRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.Divider {...props} />;\nconst listRender = (props: React.ComponentProps<\"div\">) => <BaseMenu.List {...props} />;\n\nconst ComboboxInner = <\n T extends React.Key,\n M extends boolean,\n O extends Record<string, unknown> = {},\n>(\n {\n options = [],\n value: controlledValue,\n defaultValue,\n onChange,\n placeholder = \"Select...\",\n disabled: disabledProp = false,\n status: statusProp,\n allowClear = false,\n multiple = false as M,\n showSearch: _showSearch = true,\n open: controlledOpen,\n onOpenChange,\n className,\n classNames,\n size = \"middle\",\n optionRender,\n onSearch,\n clearIcon,\n suffixIcon,\n placement = \"bottomLeft\",\n // showSelectionSummary: _showSelectionSummary = false,\n // selectionSummaryRender,\n showSelectAll = false,\n optionLabelRender,\n getOptionKeywords: _getOptionKeywords = (option: ComboboxOption<T, O>) => [\n String(option.value),\n reactNodeToString(option.label),\n ],\n popupMatchSelectWidth = true,\n addOnEnter = false,\n tokenSeparators,\n autoHighlight = true,\n filterOption,\n ...rest\n }: ComboboxProps<T, M, O>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) => {\n const [value, setValue] = useControlledState(\n controlledValue,\n onChange,\n defaultValue !== undefined ? defaultValue : multiple ? ([] as T[]) : undefined,\n );\n\n const [open, setOpen] = useControlledState(controlledOpen, onOpenChange, false);\n\n const cls = useCls();\n const inputContainerRef = useRef<HTMLDivElement>(null);\n\n // Get form context values\n const { status: contextStatus } = useContext(FormItemInputContext);\n const contextDisabled = useContext(DisabledContext);\n\n // Merge context values with props\n const mergedStatus = statusProp || contextStatus;\n const disabled = disabledProp || contextDisabled;\n\n const handleValueChange = useCallback(\n (newValue: M extends true ? T[] : T) => {\n setValue(newValue);\n },\n [setValue],\n );\n\n const handleSelectAll = useCallback(() => {\n if (multiple) {\n const allValues = options.map((option) => option.value);\n (handleValueChange as (v: T[]) => void)(allValues);\n }\n }, [multiple, options, handleValueChange]);\n\n const handleDeselectAll = useCallback(() => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)([]);\n }\n }, [multiple, handleValueChange]);\n\n const handleClear = useCallback(() => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)([]);\n } else {\n (handleValueChange as (v: T) => void)(undefined as T);\n }\n }, [multiple, handleValueChange]);\n\n // Prepare selected values\n const selectedValues = useMemo(() => {\n return Array.isArray(value) ? value : value ? [value] : [];\n }, [value]);\n\n // Build a Map for O(1) option lookups.\n // `options.find()` was being called 7+ times per render and inside\n // the hot `filter` path on every keystroke.\n const optionMap = useMemo(() => {\n const map = new Map<T, ComboboxOption<T, O>>();\n for (const opt of options) {\n map.set(opt.value, opt);\n }\n return map;\n }, [options]);\n\n // Select all option logic\n const selectAllOption = useMemo(() => {\n if (!showSelectAll || !multiple || options.length === 0) {\n return null;\n }\n\n const selectedFromFiltered = selectedValues.filter((val) => optionMap.has(val as T));\n const checked = selectedFromFiltered.length === options.length && options.length > 0;\n const indeterminate =\n selectedFromFiltered.length > 0 && selectedFromFiltered.length < options.length;\n\n return {\n checked,\n indeterminate,\n onToggle: () => {\n if (indeterminate || checked) {\n handleDeselectAll();\n } else {\n handleSelectAll();\n }\n },\n };\n }, [showSelectAll, multiple, options, optionMap, selectedValues, handleDeselectAll, handleSelectAll]);\n\n // Convert options to Base UI format\n const baseUIItems = useMemo(() => options.map((opt) => opt.value), [options]);\n\n // Get display value for SelectTrigger\n const displayValue = useMemo(() => {\n if (multiple) {\n return selectedValues.length > 0\n ? `${selectedValues.length} item${selectedValues.length === 1 ? \"\" : \"s\"} selected`\n : null;\n } else {\n const selectedOption = optionMap.get(selectedValues[0] as T);\n return selectedOption?.label || null;\n }\n }, [multiple, selectedValues, optionMap]);\n\n const inputClassName = clsx(\n cls(\"combobox-input\"),\n cls(`combobox-input-${size}`),\n mergedStatus && cls(`combobox-input-${mergedStatus}`),\n classNames?.input,\n );\n\n const itemToStringLabel = useCallback(\n (itemValue: T) => {\n const option = optionMap.get(itemValue);\n return reactNodeToString(option?.label || String(itemValue));\n },\n [optionMap],\n );\n\n const [searchValue, setSearchValue] = useState(\"\");\n\n const { handleAddOnEnter, handleInputValueChange } = useComboboxTokenInput<T, O>({\n addOnEnter,\n multiple,\n tokenSeparators,\n optionMap,\n value: value as T | T[] | undefined,\n handleValueChange: handleValueChange as (nextValue: T | T[]) => void,\n setOpen,\n setSearchValue,\n onSearch,\n });\n\n const hasTokenSeparators = Boolean(tokenSeparators?.length);\n const effectiveAutoHighlight =\n multiple && hasTokenSeparators && hasTokenSeparator(searchValue, tokenSeparators)\n ? false\n : autoHighlight;\n\n const createInputKeyDownHandler = useCallback(\n (currentSearchValue: string) => (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\" && addOnEnter && currentSearchValue) {\n // In single-select mode with autoHighlight, let Base UI handle Enter\n // to select the natively highlighted item instead of exact matching.\n if (!multiple && autoHighlight) return;\n\n const matched = handleAddOnEnter(currentSearchValue);\n if (matched) {\n event.preventDefault();\n setSearchValue(\"\");\n onSearch?.(\"\");\n }\n }\n },\n [addOnEnter, autoHighlight, multiple, handleAddOnEnter, onSearch],\n );\n\n const mergedFilter = useMemo(() => {\n if (filterOption === false) {\n return null;\n }\n\n if (typeof filterOption === \"function\") {\n return (itemValue: T, query: string) => {\n const option = optionMap.get(itemValue);\n return filterOption(query, option);\n };\n }\n\n return (itemValue: T, query: string) => {\n if (!query) return true;\n const option = optionMap.get(itemValue);\n if (!option) return false;\n\n const tokens =\n tokenSeparators && tokenSeparators.length > 0\n ? splitBySeparators(query, tokenSeparators)\n : [query];\n\n const keywords = _getOptionKeywords(option).map((k) => k.toLowerCase());\n\n const matchingTokenCount = tokens.filter((token) => {\n const lowerToken = token.toLowerCase();\n return keywords.some((keyword) => keyword.includes(lowerToken));\n }).length;\n\n if (matchingTokenCount === 0) return false;\n if (tokens.length > 1 && matchingTokenCount > 1) {\n const lowerQuery = query.toLowerCase();\n return keywords.some((keyword) => keyword.includes(lowerQuery));\n }\n return true;\n };\n }, [filterOption, optionMap, tokenSeparators, _getOptionKeywords]);\n\n return (\n <div ref={ref} className={clsx(cls(\"combobox\"), className)} {...rest}>\n <BaseCombobox.Root<T, M>\n value={\n (multiple ? selectedValues : (selectedValues[0] ?? null)) as M extends true\n ? T[]\n : T | null\n }\n onValueChange={(newValue) => {\n if (multiple) {\n (handleValueChange as (v: T[]) => void)(\n Array.isArray(newValue) ? (newValue as T[]) : [],\n );\n } else {\n (handleValueChange as (v: T) => void)(newValue as T);\n }\n }}\n inputValue={multiple ? searchValue : undefined}\n onInputValueChange={handleInputValueChange}\n open={open}\n onOpenChange={setOpen}\n multiple={multiple}\n disabled={disabled}\n autoHighlight={effectiveAutoHighlight}\n items={baseUIItems}\n itemToStringLabel={itemToStringLabel}\n filter={mergedFilter}\n >\n {/* Single Selection Layout using SelectTrigger compound components */}\n {!multiple ? (\n <SelectTrigger.Root\n ref={inputContainerRef}\n as=\"div\"\n size={size}\n disabled={disabled}\n open={open}\n status={mergedStatus}\n placeholder={placeholder}\n displayValue={displayValue}\n allowClear={allowClear}\n suffixIcon={suffixIcon}\n clearIcon={clearIcon}\n onClear={handleClear}\n onOpenChange={setOpen}\n className={clsx(classNames?.trigger, cls(\"combobox-trigger-single\"))}\n >\n <SelectTrigger.Content\n contentRender={({ className, children, ...rest }) => (\n <BaseCombobox.Input\n placeholder={placeholder}\n className={clsx(className, inputClassName)}\n disabled={disabled}\n onKeyDown={createInputKeyDownHandler(searchValue)}\n {...rest}\n />\n )}\n />\n <SelectTrigger.Clear\n render={(props) => <BaseCombobox.Clear {...props}></BaseCombobox.Clear>}\n />\n <SelectTrigger.Arrow\n render={(props, { icon }) => (\n <BaseCombobox.Trigger {...props}>\n <BaseCombobox.Icon>{icon}</BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n )}\n />\n </SelectTrigger.Root>\n ) : (\n /* Multiple Selection Layout using SelectTrigger compound components */\n <SelectTrigger.Root\n ref={inputContainerRef}\n size={size}\n disabled={disabled}\n open={open}\n status={mergedStatus}\n placeholder={placeholder}\n displayValue={displayValue}\n allowClear={allowClear}\n suffixIcon={suffixIcon}\n clearIcon={clearIcon}\n onClear={handleClear}\n onOpenChange={setOpen}\n className={clsx(classNames?.trigger, cls(\"combobox-trigger-multiple\"))}\n as=\"div\"\n >\n <SelectTrigger.Content\n contentRender={({ className, children, ...rest }) => (\n <BaseCombobox.Chips className={clsx(cls(\"combobox-chips\"), className)} {...rest}>\n <BaseCombobox.Value>\n {(selectedItems) => (\n <>\n {selectedItems.map((item: T) => {\n const option = optionMap.get(item);\n return (\n <BaseCombobox.Chip key={item} className={clsx(cls(\"combobox-chip\"))}>\n {option?.icon && (\n <span className={clsx(cls(\"combobox-chip-icon\"))}>\n {option.icon}\n </span>\n )}\n <span className={clsx(cls(\"combobox-chip-text\"))}>\n {option\n ? optionLabelRender\n ? optionLabelRender(option)\n : option.label\n : item}\n </span>\n <BaseCombobox.ChipRemove\n className={clsx(cls(\"combobox-chip-remove\"))}\n >\n <XIcon />\n </BaseCombobox.ChipRemove>\n </BaseCombobox.Chip>\n );\n })}\n\n <BaseCombobox.Input\n placeholder={selectedItems.length > 0 ? \"\" : placeholder}\n className={inputClassName}\n disabled={disabled}\n onKeyDown={createInputKeyDownHandler(searchValue)}\n />\n </>\n )}\n </BaseCombobox.Value>\n </BaseCombobox.Chips>\n )}\n />\n <SelectTrigger.Clear\n render={(props) => <BaseCombobox.Clear {...props}></BaseCombobox.Clear>}\n />\n <SelectTrigger.Arrow\n render={(props, { icon }) => (\n <BaseCombobox.Trigger {...props}>\n <BaseCombobox.Icon>{icon}</BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n )}\n />\n </SelectTrigger.Root>\n )}\n\n <BaseCombobox.Portal>\n <BaseCombobox.Positioner\n anchor={inputContainerRef.current}\n sideOffset={4}\n side={placement.startsWith(\"top\") ? \"top\" : \"bottom\"}\n align={\n placement.endsWith(\"Right\")\n ? \"end\"\n : placement === \"top\" || placement === \"bottom\"\n ? \"center\"\n : \"start\"\n }\n render={positionerRender}\n >\n <BaseCombobox.Popup\n className={clsx(\n cls(\"combobox-popup\"),\n !popupMatchSelectWidth && cls(\"combobox-popup--auto-width\"),\n classNames?.portal,\n )}\n render={popupRender}\n >\n <div className={clsx(cls(\"combobox-container\"))}>\n {/* Select All Option */}\n {selectAllOption && (\n <>\n <BaseMenuItem\n as=\"button\"\n type=\"button\"\n className={clsx(cls(\"combobox-select-all\"))}\n selected={selectAllOption.checked}\n onClick={selectAllOption.onToggle}\n indeterminate={selectAllOption.indeterminate}\n showCheckbox\n >\n Select All\n </BaseMenuItem>\n <BaseCombobox.Separator render={separatorRender} />\n </>\n )}\n <ScrollArea fadeEdges>\n <BaseCombobox.List\n className={clsx(cls(\"combobox-list\"), classNames?.list)}\n render={listRender}\n >\n {(item: T) => {\n const option = optionMap.get(item);\n if (!option) return null;\n const isSelected = (selectedValues as T[]).includes(item);\n return optionRender ? (\n optionRender(option, {})\n ) : (\n <BaseMenuItem\n key={option.value}\n disabled={option.disabled}\n selected={isSelected}\n showCheckbox={multiple}\n icon={option.icon}\n classNames={{\n root: clsx(classNames?.option),\n icon: classNames?.optionIcon,\n text: classNames?.optionText,\n }}\n labelRender={\n optionLabelRender\n ? (props: React.HTMLAttributes<HTMLElement>) =>\n optionLabelRender(option, props)\n : undefined\n }\n render={(props: React.HTMLAttributes<HTMLElement>) => (\n <BaseCombobox.Item\n value={item as T}\n disabled={option.disabled}\n {...props}\n data-disabled={option.disabled}\n data-selected={isSelected}\n />\n )}\n >\n {option.label}\n </BaseMenuItem>\n );\n }}\n </BaseCombobox.List>\n\n <BaseCombobox.Empty className={clsx(cls(\"combobox-empty\"))}>\n <Empty description=\"No options found\" />\n </BaseCombobox.Empty>\n </ScrollArea>\n </div>\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </BaseCombobox.Root>\n </div>\n );\n};\n\nconst MainCombobox = forwardRef(ComboboxInner) as <\n T extends React.Key,\n M extends boolean,\n O extends Record<string, unknown> = {},\n>(\n props: ComboboxProps<T, M, O> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReturnType<typeof ComboboxInner>;\n\nexport const Combobox = Object.assign(MainCombobox, {\n // Add any sub components here if needed\n});\n\nexport default Combobox;\n"],"names":["positionerRender","props","jsx","BaseMenu","popupRender","separatorRender","listRender","ComboboxInner","options","controlledValue","defaultValue","onChange","placeholder","disabledProp","statusProp","allowClear","multiple","_showSearch","controlledOpen","onOpenChange","className","classNames","size","optionRender","onSearch","clearIcon","suffixIcon","placement","showSelectAll","optionLabelRender","_getOptionKeywords","option","reactNodeToString","popupMatchSelectWidth","addOnEnter","tokenSeparators","autoHighlight","filterOption","rest","ref","value","setValue","useControlledState","open","setOpen","cls","useCls","inputContainerRef","useRef","contextStatus","useContext","FormItemInputContext","contextDisabled","DisabledContext","mergedStatus","disabled","handleValueChange","useCallback","newValue","handleSelectAll","allValues","handleDeselectAll","handleClear","selectedValues","useMemo","optionMap","map","opt","selectAllOption","selectedFromFiltered","val","checked","indeterminate","baseUIItems","displayValue","inputClassName","clsx","itemToStringLabel","itemValue","searchValue","setSearchValue","useState","handleAddOnEnter","handleInputValueChange","useComboboxTokenInput","hasTokenSeparators","effectiveAutoHighlight","hasTokenSeparator","createInputKeyDownHandler","currentSearchValue","event","mergedFilter","query","tokens","splitBySeparators","keywords","k","matchingTokenCount","token","lowerToken","keyword","lowerQuery","jsxs","BaseCombobox","SelectTrigger","children","selectedItems","Fragment","item","XIcon","icon","BaseMenuItem","ScrollArea","isSelected","Empty","MainCombobox","forwardRef","Combobox"],"mappings":"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"}
@@ -1 +1 @@
1
- @layer components{.ds-combobox{position:relative;display:inline-block;width:100%}.ds-combobox-popup{width:var(--anchor-width)}.ds-combobox-popup--auto-width{width:max-content;min-width:var(--anchor-width);max-width:var(--available-width)}.ds-combobox-input{flex:1;border:none;outline:none;background:transparent;color:var(--ds-color-text);min-width:0}.ds-combobox-input::placeholder{color:var(--ds-color-text-placeholder)}.ds-combobox-divider{border:none;border-bottom:1px solid var(--ds-color-split);margin:.25rem 0}.ds-combobox-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--ds-color-fill-secondary);border-radius:var(--ds-border-radius-sm);padding:.25rem .5rem;font-size:var(--ds-font-size);color:var(--ds-color-text);max-width:100%;min-width:0;height:var(--ds-control-line-height)}.ds-combobox-chip-icon{display:flex;align-items:center;flex-shrink:0;font-size:.75rem}.ds-combobox-chip-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-combobox-chip-remove{display:flex;align-items:center;justify-content:center;padding:.125rem;border-radius:var(--ds-border-radius-lg);cursor:pointer;color:var(--ds-color-text-secondary);transition:all .2s var(--ds-motion-ease-out);background:none;border:none;font-size:.875rem;line-height:1}.ds-combobox-chip-remove:hover{background:var(--ds-control-item-bg-hover);color:var(--ds-color-text)}.ds-combobox-chips-container .ds-combobox-input{flex:1;min-width:120px;border:none;background:transparent;padding:.25rem 0;margin:0}.ds-combobox-chips{display:flex;flex-wrap:wrap;gap:.375rem}.ds-select-trigger-small .ds-combobox-chips{gap:.25rem}.ds-combobox-trigger-multiple.ds-select-trigger-has-value .ds-select-trigger-content{padding-left:.5rem}.ds-combobox[data-disabled=true] .ds-combobox-chip{background-color:var(--ds-color-bg-disabled);color:var(--ds-color-text-disabled)}.ds-combobox[data-disabled=true] .ds-combobox-chip-remove{cursor:not-allowed;color:var(--ds-color-text-disabled)}.ds-combobox-empty{padding:1rem}.ds-combobox-empty:empty{display:none}.ds-combobox-container{display:flex;flex-direction:column;flex-shrink:1;min-height:0;gap:.25rem}.ds-combobox-popup .ds-menu-item-show-checkbox[data-selected=true]{background:transparent}.ds-combobox-popup .ds-menu-item-show-checkbox[data-selected=true]:hover,.ds-combobox-popup .ds-menu-item-show-checkbox[data-selected=true][data-highlighted],.ds-combobox-popup .ds-menu-item-show-checkbox[data-selected=true][data-active=true]{background:var(--ds-control-item-bg-active)}.ds-combobox-popup .ds-menu-item-show-checkbox:not([data-selected=true]):hover,.ds-combobox-popup .ds-menu-item-show-checkbox:not([data-selected=true])[data-highlighted],.ds-combobox-popup .ds-menu-item-show-checkbox:not([data-selected=true])[data-active=true]{background:var(--ds-control-item-bg-hover)}.ds-combobox-popup .ds-menu-item-base[data-selected=true] .ds-menu-item-text{font-weight:600}}
1
+ @layer components{.ds-combobox{position:relative;display:inline-block;width:100%}.ds-combobox-popup{width:var(--anchor-width)}.ds-combobox-popup--auto-width{width:max-content;min-width:var(--anchor-width);max-width:var(--available-width)}.ds-combobox-input{flex:1;border:none;outline:none;background:transparent;color:var(--ds-color-text);min-width:0}.ds-combobox-input::placeholder{color:var(--ds-color-text-placeholder)}.ds-combobox-divider{border:none;border-bottom:1px solid var(--ds-color-split);margin:.25rem 0}.ds-combobox-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--ds-color-fill-secondary);border-radius:var(--ds-border-radius-sm);padding:.25rem .5rem;font-size:var(--ds-font-size);color:var(--ds-color-text);max-width:100%;min-width:0;height:var(--ds-control-line-height)}.ds-combobox-chip-icon{display:flex;align-items:center;flex-shrink:0;font-size:.75rem}.ds-combobox-chip-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-combobox-chip-remove{display:flex;align-items:center;justify-content:center;padding:.125rem;border-radius:var(--ds-border-radius-lg);cursor:pointer;color:var(--ds-color-text-secondary);transition:all .2s var(--ds-motion-ease-out);background:none;border:none;font-size:.875rem;line-height:1}.ds-combobox-chip-remove:hover{background:var(--ds-control-item-bg-hover);color:var(--ds-color-text)}.ds-combobox-chips-container .ds-combobox-input{flex:1;min-width:120px;border:none;background:transparent;padding:.25rem 0;margin:0}.ds-combobox-chips{display:flex;flex-wrap:wrap;gap:.375rem}.ds-select-trigger-small .ds-combobox-chips{gap:.25rem}.ds-combobox-trigger-multiple.ds-select-trigger-has-value .ds-select-trigger-content{padding-left:.5rem}.ds-combobox[data-disabled=true] .ds-combobox-chip{background-color:var(--ds-color-bg-disabled);color:var(--ds-color-text-disabled)}.ds-combobox[data-disabled=true] .ds-combobox-chip-remove{cursor:not-allowed;color:var(--ds-color-text-disabled)}.ds-combobox-empty{padding:1rem}.ds-combobox-empty:empty{display:none}.ds-combobox-container{display:flex;flex-direction:column;flex-shrink:1;min-height:0}.ds-combobox-popup .ds-menu-item-show-checkbox:not([data-disabled=true])[data-selected=true]{background:transparent}.ds-combobox-popup .ds-menu-item-show-checkbox[data-selected=true]:not([data-disabled=true]):hover,.ds-combobox-popup .ds-menu-item-show-checkbox[data-selected=true][data-highlighted]:not([data-disabled=true]),.ds-combobox-popup .ds-menu-item-show-checkbox[data-selected=true][data-active=true]:not([data-disabled=true]){background:var(--ds-control-item-bg-active)}.ds-combobox-popup .ds-menu-item-show-checkbox:not([data-disabled=true]):not([data-selected=true]):hover,.ds-combobox-popup .ds-menu-item-show-checkbox:not([data-disabled=true]):not([data-selected=true])[data-highlighted],.ds-combobox-popup .ds-menu-item-show-checkbox:not([data-disabled=true]):not([data-selected=true])[data-active=true]{background:var(--ds-control-item-bg-hover)}.ds-combobox-popup .ds-menu-item-base:not([data-disabled=true])[data-selected=true] .ds-menu-item-text{font-weight:600}}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/component.tsx"],"names":[],"mappings":"AACA,OAAc,EAKZ,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,aAAa,CAAC;AAWrB,QAAA,MAAM,cAAc,GAClB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,OAAO,cAAc,CAAC,UAAU,CAAC,EACjC,KAAK,GAAG,CAAC,YAAY,CAAC,4CA+IvB,CAAC;AAQF,eAAO,MAAM,SAAS,GALpB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,mCAE/B,cAAc,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;CAAE,KAC5D,UAAU,CAAC,OAAO,cAAc,CAEK,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/component.tsx"],"names":[],"mappings":"AACA,OAAc,EAKZ,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,aAAa,CAAC;AACrB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAU/B,QAAA,MAAM,cAAc,GAClB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,OAAO,cAAc,CAAC,UAAU,CAAC,EACjC,KAAK,GAAG,CAAC,YAAY,CAAC,4CAoLvB,CAAC;AAQF,eAAO,MAAM,SAAS,GALpB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,mCAE/B,cAAc,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;CAAE,KAC5D,UAAU,CAAC,OAAO,cAAc,CAEK,CAAC"}