se-design 1.0.79 → 1.0.81-dev1

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 (379) hide show
  1. package/dist/assets/icons/envelope.svg +4 -0
  2. package/dist/assets/icons/views.svg +7 -0
  3. package/dist/assets/style.css +1 -1
  4. package/dist/components/Checkbox/index.d.ts +4 -0
  5. package/dist/components/DatePicker/useDatePickerA11y.d.ts +1 -4
  6. package/dist/components/Dropdown/index.d.ts +4 -0
  7. package/dist/components/LabelChip/index.d.ts +1 -0
  8. package/dist/components/Popover/index.d.ts +9 -1
  9. package/dist/components/Radio/index.d.ts +4 -0
  10. package/dist/components/Toggle/index.d.ts +4 -0
  11. package/dist/index100.js +1 -1
  12. package/dist/index100.js.map +1 -1
  13. package/dist/index101.js +1 -1
  14. package/dist/index101.js.map +1 -1
  15. package/dist/index102.js +1 -1
  16. package/dist/index102.js.map +1 -1
  17. package/dist/index103.js +1 -1
  18. package/dist/index103.js.map +1 -1
  19. package/dist/index104.js +1 -1
  20. package/dist/index104.js.map +1 -1
  21. package/dist/index105.js +1 -1
  22. package/dist/index105.js.map +1 -1
  23. package/dist/index106.js +1 -1
  24. package/dist/index106.js.map +1 -1
  25. package/dist/index107.js +1 -1
  26. package/dist/index107.js.map +1 -1
  27. package/dist/index108.js +1 -1
  28. package/dist/index108.js.map +1 -1
  29. package/dist/index109.js +2 -2
  30. package/dist/index109.js.map +1 -1
  31. package/dist/index11.js +44 -43
  32. package/dist/index11.js.map +1 -1
  33. package/dist/index110.js +2 -2
  34. package/dist/index110.js.map +1 -1
  35. package/dist/index111.js +1 -1
  36. package/dist/index111.js.map +1 -1
  37. package/dist/index112.js +1 -1
  38. package/dist/index112.js.map +1 -1
  39. package/dist/index113.js +1 -1
  40. package/dist/index113.js.map +1 -1
  41. package/dist/index114.js +2 -2
  42. package/dist/index114.js.map +1 -1
  43. package/dist/index115.js +2 -2
  44. package/dist/index115.js.map +1 -1
  45. package/dist/index116.js +2 -2
  46. package/dist/index116.js.map +1 -1
  47. package/dist/index117.js +2 -2
  48. package/dist/index117.js.map +1 -1
  49. package/dist/index118.js +1 -1
  50. package/dist/index118.js.map +1 -1
  51. package/dist/index119.js +1 -1
  52. package/dist/index119.js.map +1 -1
  53. package/dist/index12.js +38 -31
  54. package/dist/index12.js.map +1 -1
  55. package/dist/index120.js +2 -2
  56. package/dist/index120.js.map +1 -1
  57. package/dist/index121.js +2 -2
  58. package/dist/index121.js.map +1 -1
  59. package/dist/index122.js +1 -1
  60. package/dist/index122.js.map +1 -1
  61. package/dist/index123.js +1 -1
  62. package/dist/index123.js.map +1 -1
  63. package/dist/index124.js +1 -1
  64. package/dist/index124.js.map +1 -1
  65. package/dist/index125.js +2 -2
  66. package/dist/index125.js.map +1 -1
  67. package/dist/index126.js +1 -1
  68. package/dist/index126.js.map +1 -1
  69. package/dist/index127.js +1 -1
  70. package/dist/index127.js.map +1 -1
  71. package/dist/index128.js +2 -2
  72. package/dist/index128.js.map +1 -1
  73. package/dist/index129.js +2 -2
  74. package/dist/index129.js.map +1 -1
  75. package/dist/index13.js +20 -19
  76. package/dist/index13.js.map +1 -1
  77. package/dist/index130.js +2 -2
  78. package/dist/index130.js.map +1 -1
  79. package/dist/index131.js +2 -2
  80. package/dist/index131.js.map +1 -1
  81. package/dist/index132.js +1 -1
  82. package/dist/index132.js.map +1 -1
  83. package/dist/index133.js +2 -2
  84. package/dist/index133.js.map +1 -1
  85. package/dist/index134.js +1 -1
  86. package/dist/index134.js.map +1 -1
  87. package/dist/index135.js +1 -1
  88. package/dist/index135.js.map +1 -1
  89. package/dist/index136.js +1 -1
  90. package/dist/index136.js.map +1 -1
  91. package/dist/index137.js +1 -1
  92. package/dist/index137.js.map +1 -1
  93. package/dist/index138.js +2 -2
  94. package/dist/index138.js.map +1 -1
  95. package/dist/index139.js +2 -2
  96. package/dist/index139.js.map +1 -1
  97. package/dist/index140.js +1 -1
  98. package/dist/index140.js.map +1 -1
  99. package/dist/index141.js +2 -2
  100. package/dist/index141.js.map +1 -1
  101. package/dist/index142.js +1 -1
  102. package/dist/index142.js.map +1 -1
  103. package/dist/index143.js +1 -1
  104. package/dist/index143.js.map +1 -1
  105. package/dist/index144.js +1 -1
  106. package/dist/index144.js.map +1 -1
  107. package/dist/index145.js +1 -1
  108. package/dist/index145.js.map +1 -1
  109. package/dist/index146.js +1 -1
  110. package/dist/index146.js.map +1 -1
  111. package/dist/index147.js +1 -1
  112. package/dist/index147.js.map +1 -1
  113. package/dist/index148.js +1 -1
  114. package/dist/index148.js.map +1 -1
  115. package/dist/index149.js +2 -2
  116. package/dist/index149.js.map +1 -1
  117. package/dist/index150.js +2 -2
  118. package/dist/index150.js.map +1 -1
  119. package/dist/index151.js +2 -2
  120. package/dist/index151.js.map +1 -1
  121. package/dist/index152.js +1 -1
  122. package/dist/index152.js.map +1 -1
  123. package/dist/index153.js +2 -2
  124. package/dist/index153.js.map +1 -1
  125. package/dist/index154.js +2 -2
  126. package/dist/index154.js.map +1 -1
  127. package/dist/index155.js +1 -1
  128. package/dist/index155.js.map +1 -1
  129. package/dist/index156.js +1 -1
  130. package/dist/index156.js.map +1 -1
  131. package/dist/index157.js +1 -1
  132. package/dist/index157.js.map +1 -1
  133. package/dist/index158.js +2 -2
  134. package/dist/index158.js.map +1 -1
  135. package/dist/index159.js +2 -2
  136. package/dist/index159.js.map +1 -1
  137. package/dist/index16.js +1 -1
  138. package/dist/index160.js +1 -1
  139. package/dist/index160.js.map +1 -1
  140. package/dist/index161.js +2 -2
  141. package/dist/index161.js.map +1 -1
  142. package/dist/index162.js +2 -2
  143. package/dist/index162.js.map +1 -1
  144. package/dist/index163.js +1 -1
  145. package/dist/index163.js.map +1 -1
  146. package/dist/index164.js +1 -1
  147. package/dist/index164.js.map +1 -1
  148. package/dist/index165.js +1 -1
  149. package/dist/index165.js.map +1 -1
  150. package/dist/index166.js +1 -1
  151. package/dist/index166.js.map +1 -1
  152. package/dist/index167.js +1 -1
  153. package/dist/index167.js.map +1 -1
  154. package/dist/index168.js +1 -1
  155. package/dist/index168.js.map +1 -1
  156. package/dist/index169.js +1 -1
  157. package/dist/index169.js.map +1 -1
  158. package/dist/index170.js +1 -1
  159. package/dist/index170.js.map +1 -1
  160. package/dist/index171.js +1 -1
  161. package/dist/index171.js.map +1 -1
  162. package/dist/index172.js +1 -1
  163. package/dist/index172.js.map +1 -1
  164. package/dist/index173.js +1 -1
  165. package/dist/index173.js.map +1 -1
  166. package/dist/index174.js +1 -1
  167. package/dist/index174.js.map +1 -1
  168. package/dist/index175.js +1 -1
  169. package/dist/index175.js.map +1 -1
  170. package/dist/index176.js +1 -1
  171. package/dist/index176.js.map +1 -1
  172. package/dist/index177.js +1 -1
  173. package/dist/index177.js.map +1 -1
  174. package/dist/index178.js +1 -1
  175. package/dist/index178.js.map +1 -1
  176. package/dist/index179.js +1 -1
  177. package/dist/index179.js.map +1 -1
  178. package/dist/index180.js +2 -2
  179. package/dist/index180.js.map +1 -1
  180. package/dist/index181.js +1 -1
  181. package/dist/index181.js.map +1 -1
  182. package/dist/index182.js +1 -1
  183. package/dist/index182.js.map +1 -1
  184. package/dist/index183.js +1 -1
  185. package/dist/index183.js.map +1 -1
  186. package/dist/index184.js +2 -2
  187. package/dist/index184.js.map +1 -1
  188. package/dist/index185.js +1 -1
  189. package/dist/index185.js.map +1 -1
  190. package/dist/index186.js +1 -1
  191. package/dist/index186.js.map +1 -1
  192. package/dist/index187.js +1 -1
  193. package/dist/index187.js.map +1 -1
  194. package/dist/index188.js +2 -2
  195. package/dist/index188.js.map +1 -1
  196. package/dist/index189.js +1 -1
  197. package/dist/index189.js.map +1 -1
  198. package/dist/index19.js +185 -163
  199. package/dist/index19.js.map +1 -1
  200. package/dist/index190.js +1 -1
  201. package/dist/index190.js.map +1 -1
  202. package/dist/index191.js +1 -1
  203. package/dist/index191.js.map +1 -1
  204. package/dist/index192.js +2 -2
  205. package/dist/index192.js.map +1 -1
  206. package/dist/index193.js +1 -1
  207. package/dist/index193.js.map +1 -1
  208. package/dist/index194.js +2 -2
  209. package/dist/index194.js.map +1 -1
  210. package/dist/index195.js +1 -1
  211. package/dist/index195.js.map +1 -1
  212. package/dist/index196.js +2 -2
  213. package/dist/index196.js.map +1 -1
  214. package/dist/index197.js +2 -149
  215. package/dist/index197.js.map +1 -1
  216. package/dist/index198.js +2 -9
  217. package/dist/index198.js.map +1 -1
  218. package/dist/index199.js +2 -6
  219. package/dist/index199.js.map +1 -1
  220. package/dist/index200.js +2 -5
  221. package/dist/index200.js.map +1 -1
  222. package/dist/index201.js +2 -40
  223. package/dist/index201.js.map +1 -1
  224. package/dist/index202.js +5 -0
  225. package/dist/index202.js.map +1 -0
  226. package/dist/index203.js +5 -0
  227. package/dist/index203.js.map +1 -0
  228. package/dist/index204.js +5 -0
  229. package/dist/index204.js.map +1 -0
  230. package/dist/index205.js +5 -0
  231. package/dist/index205.js.map +1 -0
  232. package/dist/index206.js +152 -0
  233. package/dist/index206.js.map +1 -0
  234. package/dist/index207.js +8 -0
  235. package/dist/index207.js.map +1 -0
  236. package/dist/{index217.js → index221.js} +1 -1
  237. package/dist/{index217.js.map → index221.js.map} +1 -1
  238. package/dist/{index225.js → index229.js} +1 -1
  239. package/dist/{index225.js.map → index229.js.map} +1 -1
  240. package/dist/index23.js +30 -28
  241. package/dist/index23.js.map +1 -1
  242. package/dist/{index228.js → index232.js} +1 -1
  243. package/dist/{index228.js.map → index232.js.map} +1 -1
  244. package/dist/index241.js +168 -8
  245. package/dist/index241.js.map +1 -1
  246. package/dist/index242.js +3 -9
  247. package/dist/index242.js.map +1 -1
  248. package/dist/index244.js +9 -169
  249. package/dist/index244.js.map +1 -1
  250. package/dist/index245.js +10 -11
  251. package/dist/index245.js.map +1 -1
  252. package/dist/index246.js +4 -5
  253. package/dist/index246.js.map +1 -1
  254. package/dist/index247.js +170 -6
  255. package/dist/index247.js.map +1 -1
  256. package/dist/index248.js +11 -38
  257. package/dist/index248.js.map +1 -1
  258. package/dist/index249.js +6 -2
  259. package/dist/index249.js.map +1 -1
  260. package/dist/index25.js +259 -236
  261. package/dist/index25.js.map +1 -1
  262. package/dist/index250.js +5 -7
  263. package/dist/index250.js.map +1 -1
  264. package/dist/index251.js +36 -325
  265. package/dist/index251.js.map +1 -1
  266. package/dist/index252.js +2 -50
  267. package/dist/index252.js.map +1 -1
  268. package/dist/index253.js +8 -2
  269. package/dist/index253.js.map +1 -1
  270. package/dist/index254.js +323 -72
  271. package/dist/index254.js.map +1 -1
  272. package/dist/index255.js +47 -90
  273. package/dist/index255.js.map +1 -1
  274. package/dist/index256.js +2 -52
  275. package/dist/index256.js.map +1 -1
  276. package/dist/index257.js +75 -7
  277. package/dist/index257.js.map +1 -1
  278. package/dist/index258.js +92 -4
  279. package/dist/index258.js.map +1 -1
  280. package/dist/index259.js +48 -48
  281. package/dist/index259.js.map +1 -1
  282. package/dist/index260.js +8 -2
  283. package/dist/index260.js.map +1 -1
  284. package/dist/index261.js +5 -2
  285. package/dist/index261.js.map +1 -1
  286. package/dist/index262.js +55 -0
  287. package/dist/index262.js.map +1 -0
  288. package/dist/index263.js +5 -0
  289. package/dist/index263.js.map +1 -0
  290. package/dist/index264.js +5 -0
  291. package/dist/index264.js.map +1 -0
  292. package/dist/index28.js +3 -3
  293. package/dist/index28.js.map +1 -1
  294. package/dist/index29.js +43 -41
  295. package/dist/index29.js.map +1 -1
  296. package/dist/index30.js +81 -79
  297. package/dist/index30.js.map +1 -1
  298. package/dist/index33.js +18 -16
  299. package/dist/index33.js.map +1 -1
  300. package/dist/index35.js +1 -1
  301. package/dist/index36.js +1 -1
  302. package/dist/index38.js +1 -1
  303. package/dist/index39.js +2 -2
  304. package/dist/index40.js +1 -1
  305. package/dist/index44.js +3 -3
  306. package/dist/index44.js.map +1 -1
  307. package/dist/index45.js +1 -1
  308. package/dist/index46.js +2 -2
  309. package/dist/index49.js +1 -1
  310. package/dist/index51.js +177 -169
  311. package/dist/index51.js.map +1 -1
  312. package/dist/index52.js +1 -1
  313. package/dist/index53.js +1 -1
  314. package/dist/index57.js +1 -1
  315. package/dist/index6.js +211 -207
  316. package/dist/index6.js.map +1 -1
  317. package/dist/index63.js +1 -1
  318. package/dist/index65.js +1 -1
  319. package/dist/index7.js +1 -1
  320. package/dist/index72.js +66 -60
  321. package/dist/index72.js.map +1 -1
  322. package/dist/index76.js +28 -25
  323. package/dist/index76.js.map +1 -1
  324. package/dist/{index208.js → index79.js} +1 -1
  325. package/dist/index79.js.map +1 -0
  326. package/dist/index80.js +19 -2
  327. package/dist/index80.js.map +1 -1
  328. package/dist/index81.js +9 -2
  329. package/dist/index81.js.map +1 -1
  330. package/dist/index82.js +42 -2
  331. package/dist/index82.js.map +1 -1
  332. package/dist/index83.js +6 -2
  333. package/dist/index83.js.map +1 -1
  334. package/dist/index84.js +68 -2
  335. package/dist/index84.js.map +1 -1
  336. package/dist/index85.js +21 -2
  337. package/dist/index85.js.map +1 -1
  338. package/dist/index87.js +2 -2
  339. package/dist/index87.js.map +1 -1
  340. package/dist/index88.js +2 -2
  341. package/dist/index88.js.map +1 -1
  342. package/dist/index89.js +1 -1
  343. package/dist/index89.js.map +1 -1
  344. package/dist/index9.js +28 -26
  345. package/dist/index9.js.map +1 -1
  346. package/dist/index90.js +2 -2
  347. package/dist/index90.js.map +1 -1
  348. package/dist/index91.js +1 -1
  349. package/dist/index91.js.map +1 -1
  350. package/dist/index92.js +1 -1
  351. package/dist/index92.js.map +1 -1
  352. package/dist/index93.js +1 -1
  353. package/dist/index93.js.map +1 -1
  354. package/dist/index94.js +1 -1
  355. package/dist/index94.js.map +1 -1
  356. package/dist/index95.js +1 -1
  357. package/dist/index95.js.map +1 -1
  358. package/dist/index96.js +1 -1
  359. package/dist/index96.js.map +1 -1
  360. package/dist/index97.js +1 -1
  361. package/dist/index97.js.map +1 -1
  362. package/dist/index98.js +1 -1
  363. package/dist/index98.js.map +1 -1
  364. package/dist/index99.js +1 -1
  365. package/dist/index99.js.map +1 -1
  366. package/package.json +1 -1
  367. package/dist/index208.js.map +0 -1
  368. package/dist/index209.js +0 -71
  369. package/dist/index209.js.map +0 -1
  370. package/dist/index237.js +0 -176
  371. package/dist/index237.js.map +0 -1
  372. package/dist/index238.js +0 -7
  373. package/dist/index238.js.map +0 -1
  374. package/dist/index240.js +0 -22
  375. package/dist/index240.js.map +0 -1
  376. package/dist/index243.js +0 -8
  377. package/dist/index243.js.map +0 -1
  378. package/dist/index86.js +0 -5
  379. package/dist/index86.js.map +0 -1
package/dist/index25.js CHANGED
@@ -1,308 +1,331 @@
1
- import n, { useState as I, useRef as L, useEffect as D } from "react";
2
- import { Popover as De } from "./index19.js";
3
- import { Icon as Y } from "./index6.js";
4
- import { Checkbox as ke } from "./index23.js";
5
- import { Button as Z } from "./index4.js";
6
- import { InputWithIcon as Ve } from "./index52.js";
7
- import { useStableId as ee } from "./index199.js";
8
- import { useCombobox as Ne } from "./index68.js";
9
- function h() {
10
- return h = Object.assign ? Object.assign.bind() : function(t) {
11
- for (var m = 1; m < arguments.length; m++) {
12
- var b = arguments[m];
13
- for (var v in b) ({}).hasOwnProperty.call(b, v) && (t[v] = b[v]);
1
+ import n, { useState as F, useRef as ne, useEffect as R, useLayoutEffect as Pe } from "react";
2
+ import { Popover as Ae } from "./index19.js";
3
+ import { Icon as oe } from "./index6.js";
4
+ import { Checkbox as $e } from "./index23.js";
5
+ import { Button as le } from "./index4.js";
6
+ import { InputWithIcon as Le } from "./index52.js";
7
+ import { useStableId as q } from "./index83.js";
8
+ import { useCombobox as re } from "./index68.js";
9
+ function p() {
10
+ return p = Object.assign ? Object.assign.bind() : function(t) {
11
+ for (var g = 1; g < arguments.length; g++) {
12
+ var x = arguments[g];
13
+ for (var S in x) ({}).hasOwnProperty.call(x, S) && (t[S] = x[S]);
14
14
  }
15
15
  return t;
16
- }, h.apply(null, arguments);
16
+ }, p.apply(null, arguments);
17
17
  }
18
- const Me = (t) => {
19
- const m = t.selectedValue !== void 0, b = t.isOpen !== void 0, [v, te] = I(!1), [k, R] = I(""), [i, S] = I(-1), [oe, K] = I(() => t?.defaultSelectedValue ? Array.isArray(t?.defaultSelectedValue) ? t?.defaultSelectedValue : [t.defaultSelectedValue] : []), M = L(null), V = L(null), N = L(null), T = ee(void 0, "dropdown-label"), g = ee(void 0, "dropdown-listbox"), d = b ? t.isOpen : v, r = m ? Array.isArray(t.selectedValue) ? t.selectedValue : t.selectedValue ? [t.selectedValue] : [] : oe, P = (e) => {
20
- b || te(e), t.onOpenChange?.(e);
21
- }, $ = (e) => {
22
- m || K(e);
18
+ const je = (t) => {
19
+ const g = t.selectedValue !== void 0, x = t.isOpen !== void 0, [S, ae] = F(!1), [V, K] = F(""), [se, T] = F(() => t?.defaultSelectedValue ? Array.isArray(t?.defaultSelectedValue) ? t?.defaultSelectedValue : [t.defaultSelectedValue] : []), y = ne(null), I = ne(null), P = q(void 0, "dropdown-label"), H = q(void 0, "dropdown-value"), C = q(void 0, "dropdown-listbox"), i = x ? t.isOpen : S, r = g ? Array.isArray(t.selectedValue) ? t.selectedValue : t.selectedValue ? [t.selectedValue] : [] : se, D = (e) => {
20
+ x || ae(e), t.onOpenChange?.(e);
21
+ }, A = (e) => {
22
+ g || T(e);
23
23
  }, {
24
- selectBy: x = "",
25
- optionsUniqueBy: u = "",
26
- displaySelected: ne = !1,
27
- dropDownOptions: j,
28
- defaultText: f = "Select",
29
- iconColor: H = "var(--color-gray-700)",
30
- disabled: E = !1,
31
- dropdownClassName: ae = "",
32
- hasError: q = !1,
33
- errorMessage: le = "",
34
- customDropdownContent: F = null,
35
- isBorderless: re = !1,
36
- shouldShowSearch: y = !1,
37
- showSearchIcon: se = !0,
38
- searchPlaceholder: U = "Search...",
39
- searchResultEmptyMessage: W = "No results found",
40
- ariaLabel: ce = "",
41
- customSelectedValue: _ = "",
42
- isWithPortal: z = !1
24
+ selectBy: d = "",
25
+ optionsUniqueBy: s = "",
26
+ displaySelected: ce = !1,
27
+ dropDownOptions: M,
28
+ defaultText: u = "Select",
29
+ iconColor: j = "var(--color-gray-700)",
30
+ disabled: k = !1,
31
+ dropdownClassName: ie = "",
32
+ hasError: W = !1,
33
+ errorMessage: de = "",
34
+ customDropdownContent: _ = null,
35
+ isBorderless: ue = !1,
36
+ shouldShowSearch: h = !1,
37
+ showSearchIcon: me = !0,
38
+ searchPlaceholder: z = "Search...",
39
+ searchResultEmptyMessage: J = "No results found",
40
+ ariaLabel: b = "",
41
+ customSelectedValue: $ = "",
42
+ isWithPortal: Q = !1,
43
+ firstOptionAsHeading: U = !1
43
44
  } = t;
44
- D(() => {
45
- if (!m) {
45
+ R(() => {
46
+ if (!g) {
46
47
  const e = t?.defaultSelectedValue ? Array.isArray(t?.defaultSelectedValue) ? t?.defaultSelectedValue : [t.defaultSelectedValue] : [];
47
- K(e);
48
+ T(e);
48
49
  }
49
- }, [t?.defaultSelectedValue, m]), D(() => {
50
- d || (R(""), S(-1));
51
- }, [d]), D(() => {
52
- i >= 0 && document.getElementById(`${g}-option-${i}`)?.scrollIntoView({
53
- block: "nearest"
50
+ }, [t?.defaultSelectedValue, g]), R(() => {
51
+ i || K("");
52
+ }, [i]), R(() => {
53
+ i && h && I.current && requestAnimationFrame(() => I.current?.focus());
54
+ }, [i, h]), Pe(() => {
55
+ t.popoverElementRef && (t.popoverElementRef.current = y.current?.element ?? null);
56
+ });
57
+ const a = t?.type === "multi-select", fe = () => V.trim() ? (M || []).filter((e) => (e?.[d]?.toString().toLowerCase() || "").includes(V.toLowerCase())) : M || [], L = (e) => {
58
+ A([e]), D(!1), t?.onOptionClick?.(e), requestAnimationFrame(() => {
59
+ requestAnimationFrame(() => {
60
+ y.current?.focusTrigger();
61
+ });
54
62
  });
55
- }, [i]), D(() => {
56
- d && y && N.current && requestAnimationFrame(() => N.current?.focus());
57
- }, [d, y]);
58
- const s = t?.type === "multi-select", A = () => k.trim() ? (j || []).filter((e) => (e?.[x]?.toString().toLowerCase() || "").includes(k.toLowerCase())) : j || [], O = (e) => {
59
- $([e]), P(!1), t?.onOptionClick?.(e);
60
- }, C = A(), {
61
- listboxProps: ie,
62
- getOptionProps: de,
63
- highlightedIndex: ue,
64
- containerProps: me,
65
- inputProps: c
66
- } = Ne({
67
- items: s ? [] : C,
63
+ }, c = fe(), {
64
+ listboxProps: ge,
65
+ getOptionProps: be,
66
+ highlightedIndex: ye,
67
+ setHighlightedIndex: he,
68
+ containerProps: ve,
69
+ inputProps: X
70
+ } = re({
71
+ items: a ? [] : c,
68
72
  // Only use for single-select
69
- isOpen: d && !s,
70
- onOpenChange: P,
73
+ isOpen: i && !a,
74
+ onOpenChange: D,
71
75
  onSelect: (e) => {
72
- O(e);
76
+ L(e);
73
77
  },
74
- listboxId: g,
75
- disabled: s || E,
76
- hasItems: C.length > 0
77
- }), fe = (e, a = !1) => s ? f : a && _ ? _ : e?.[x] || f, pe = () => {
78
- $([]), t?.onClear?.();
79
- }, J = (e, a = !1) => {
78
+ listboxId: C,
79
+ disabled: a || k,
80
+ hasItems: c.length > 0
81
+ }), {
82
+ inputProps: B,
83
+ listboxProps: O,
84
+ highlightedIndex: w,
85
+ setHighlightedIndex: pe
86
+ } = re({
87
+ items: a ? c : [],
88
+ isOpen: i && a,
89
+ onOpenChange: D,
90
+ onSelect: () => {
91
+ },
92
+ listboxId: C,
93
+ disabled: !a,
94
+ loop: !1,
95
+ hasItems: c.length > 0
96
+ }), xe = (e, o = !1) => a ? u : o && $ ? $ : e?.[d] || u, Se = () => {
97
+ A([]), t?.onClear?.();
98
+ }, G = (e, o = !1) => {
80
99
  if (t?.renderOptionChip)
81
- return t?.renderOptionChip(e, a);
82
- if (s && r?.length > 0) {
83
- const o = r[0]?.[x] || "", l = r.length - 1;
100
+ return t?.renderOptionChip(e, o);
101
+ if (a && r?.length > 0) {
102
+ const f = r[0]?.[d] || "", E = r.length - 1;
84
103
  return /* @__PURE__ */ n.createElement("div", {
85
104
  className: "option-chip flex items-center w-full"
86
105
  }, /* @__PURE__ */ n.createElement("div", {
87
- className: `${l > 0 ? "w-full" : "flex-1"} truncate`
88
- }, `${f}: ${o}`), l > 0 && /* @__PURE__ */ n.createElement("div", {
106
+ className: `${E > 0 ? "w-full" : "flex-1"} truncate`
107
+ }, `${u}: ${f}`), E > 0 && /* @__PURE__ */ n.createElement("div", {
89
108
  className: "flex-shrink-0"
90
- }, "+", l));
109
+ }, "+", E));
91
110
  }
111
+ const l = xe(e, o), m = !!t?.label || !!t?.ariaLabelledBy, v = o && u && e?.[d] && !$ && !m;
92
112
  return /* @__PURE__ */ n.createElement("p", {
93
113
  className: "option-chip flex flex-1 items-center justify-between"
94
- }, fe(e, a));
95
- }, Q = () => {
96
- const e = y && !s ? {
97
- role: c.role,
98
- "aria-expanded": c["aria-expanded"],
99
- "aria-haspopup": c["aria-haspopup"],
100
- "aria-controls": c["aria-controls"],
101
- "aria-autocomplete": c["aria-autocomplete"],
102
- "aria-activedescendant": c["aria-activedescendant"],
103
- onKeyDown: c.onKeyDown
104
- } : {};
105
- return /* @__PURE__ */ n.createElement("div", {
106
- className: " w-full relative flex items-center border-b border-[var(--color-gray-300)]"
107
- }, /* @__PURE__ */ n.createElement(Ve, {
108
- leftIcon: se ? {
109
- name: "search",
110
- position: "left",
111
- style: {
112
- color: "var(--color-gray-500)"
113
- }
114
- } : void 0,
115
- value: k,
116
- onChange: (a) => R(a),
117
- placeholder: U,
114
+ }, v ? `${u}: ${l}` : l);
115
+ }, Y = (e) => /* @__PURE__ */ n.createElement("div", {
116
+ className: " w-full relative flex items-center border-b border-[var(--color-gray-300)]"
117
+ }, /* @__PURE__ */ n.createElement(Le, {
118
+ leftIcon: me ? {
119
+ name: "search",
120
+ position: "left",
118
121
  style: {
119
- margin: 0,
120
- gap: 0
121
- },
122
- inputStyle: {
123
- width: "100%",
124
- border: "none",
125
- outline: "none"
126
- },
127
- automationId: "se-design-dropdown-search",
128
- ariaLabel: U,
129
- inputRef: N,
130
- inputProps: e
131
- }));
132
- }, be = (e, a) => {
133
- const o = e[x], l = r[0]?.[x] || f, w = u?.length ? e[u] == r[0]?.[u] : !0, p = ne && o === l && w, Ce = ue === a, Ie = s ? {} : de(a, p);
134
- return /* @__PURE__ */ n.createElement("div", h({
122
+ color: "var(--color-gray-500)"
123
+ }
124
+ } : void 0,
125
+ value: V,
126
+ onChange: (o) => K(o),
127
+ placeholder: z,
128
+ style: {
129
+ margin: 0,
130
+ gap: 0
131
+ },
132
+ inputStyle: {
133
+ width: "100%",
134
+ border: "none",
135
+ outline: "none"
136
+ },
137
+ automationId: "se-design-dropdown-search",
138
+ ariaLabel: z,
139
+ inputRef: I,
140
+ inputProps: e
141
+ })), Z = () => Y(a ? {
142
+ ...B,
143
+ onKeyDown: (e) => te(e, !0)
144
+ } : {
145
+ ...X,
146
+ onKeyDown: (e) => {
147
+ X.onKeyDown(e), e.key === "Escape" && requestAnimationFrame(() => y.current?.focusTrigger());
148
+ }
149
+ }), we = (e, o) => {
150
+ const l = e[d], m = r[0]?.[d] || u, v = s?.length ? e[s] == r[0]?.[s] : !0, f = ce && l === m && v, E = ye === o, Ve = a ? {} : be(o, f);
151
+ return /* @__PURE__ */ n.createElement("div", p({
135
152
  key: e.id || e.value,
136
- className: `option break-words px-3 py-2 hover:bg-gray-100 cursor-pointer select-none flex items-center justify-between ${p ? "selected" : ""} ${Ce ? "bg-gray-100" : ""}`,
137
- onClick: () => O(e),
138
- onKeyDown: (B) => {
139
- (B.key === "Enter" || B.key === " ") && (B.preventDefault(), O(e));
153
+ className: `option break-words px-3 py-2 hover:bg-[var(--color-gray-100)] focus:bg-[var(--color-gray-100)] cursor-pointer select-none flex items-center justify-between ${f ? "selected" : ""} ${E ? "bg-[var(--color-blue-50)]" : ""}`,
154
+ onClick: () => L(e),
155
+ onKeyDown: (N) => {
156
+ N.key === "Enter" || N.key === " " ? (N.preventDefault(), L(e)) : N.key === "Escape" && requestAnimationFrame(() => y.current?.focusTrigger());
140
157
  },
141
158
  tabIndex: -1,
142
- "data-automation-id": `dropdown-option-${e?.automationId || a}`
143
- }, Ie, {
144
- "aria-selected": p ? "true" : "false"
145
- }), J({
159
+ "data-automation-id": `dropdown-option-${e?.automationId || o}`
160
+ }, Ve, {
161
+ "aria-selected": f ? "true" : "false"
162
+ }), G({
146
163
  ...e,
147
- isOptionSelected: p
148
- }, !1), p && /* @__PURE__ */ n.createElement(Y, {
164
+ isOptionSelected: f
165
+ }, !1), f && /* @__PURE__ */ n.createElement(oe, {
149
166
  name: "checkmark",
150
- stroke: H
167
+ stroke: j
151
168
  }));
152
- }, ge = () => /* @__PURE__ */ n.createElement("div", h({
169
+ }, Ee = () => /* @__PURE__ */ n.createElement(n.Fragment, null, t?.label && U && /* @__PURE__ */ n.createElement("div", {
170
+ "aria-hidden": "true",
171
+ className: "px-3 pt-2 pb-1 text-[var(--color-gray-650)] text-xs cursor-default select-none"
172
+ }, t.label), /* @__PURE__ */ n.createElement("div", p({
153
173
  className: "dropdown-content dropdown-options",
154
- "aria-label": `${f} options`
155
- }, ie), y && Q(), /* @__PURE__ */ n.createElement("div", {
174
+ "aria-label": `${u} options`
175
+ }, ge), h && Z(), /* @__PURE__ */ n.createElement("div", {
156
176
  className: "flex flex-col max-h-80 overflow-y-auto"
157
- }, C.length > 0 ? C.map((e, a) => be(e, a)) : /* @__PURE__ */ n.createElement("div", {
177
+ }, c.length > 0 ? c.map((e, o) => we(e, o)) : /* @__PURE__ */ n.createElement("div", {
158
178
  className: "px-3 py-4 text-center text-[var(--color-gray-700)] text-sm",
159
179
  role: "status",
160
180
  "aria-live": "polite"
161
- }, W))), X = (e, a) => {
162
- let o = [];
163
- e ? o = [...r, a] : o = r?.filter((l) => l[u] !== a[u]), $(o);
164
- }, ye = () => {
165
- M.current?.togglePopover(), t?.onApply?.(r);
166
- }, he = (e) => {
167
- const a = A();
168
- if (e.key === "ArrowDown")
169
- e.preventDefault(), e.stopPropagation(), S((o) => o < a.length - 1 ? o + 1 : o);
170
- else if (e.key === "ArrowUp")
171
- e.preventDefault(), e.stopPropagation(), S((o) => o > 0 ? o - 1 : 0);
172
- else if ((e.key === " " || e.key === "Enter") && (e.preventDefault(), i >= 0 && i < a.length)) {
173
- const o = a[i], l = r.some((w) => w[u] === o[u]);
174
- X(!l, o);
181
+ }, J)))), ee = (e, o) => {
182
+ let l = [];
183
+ e ? l = [...r, o] : l = r?.filter((m) => m[s] !== o[s]), A(l);
184
+ }, Ie = () => {
185
+ y.current?.togglePopover(), t?.onApply?.(r);
186
+ }, te = (e, o = !1) => {
187
+ if (!(o && e.key === " ")) {
188
+ if (e.key === "Enter" || e.key === " ") {
189
+ if (e.preventDefault(), w >= 0 && w < c.length) {
190
+ const l = c[w], m = r.some((v) => v[s] === l[s]);
191
+ ee(!m, l);
192
+ }
193
+ return;
194
+ }
195
+ B.onKeyDown(e), e.key === "Escape" && (e.stopPropagation(), requestAnimationFrame(() => y.current?.focusTrigger()));
175
196
  }
176
- }, ve = (e, a) => {
177
- const o = r.some((p) => p[u] === e[u]), l = `${g}-option-${a}`, w = i === a;
197
+ }, Ce = (e, o) => {
198
+ const l = r.some((f) => f[s] === e[s]), m = `${C}-option-${o}`, v = w === o;
178
199
  return /* @__PURE__ */ n.createElement("div", {
179
200
  key: e.id || e.value,
180
- id: l,
201
+ id: m,
181
202
  role: "option",
182
- "aria-selected": o,
183
- className: `option px-3 py-2 cursor-pointer select-none flex items-center gap-2 ${w ? "bg-gray-100" : "hover:bg-gray-100"}`,
184
- onClick: () => X(!o, e),
185
- "data-automation-id": `dropdown-option-${e?.automationId || a}`
186
- }, /* @__PURE__ */ n.createElement(ke, {
203
+ "aria-selected": l,
204
+ className: `option px-3 py-2 hover:bg-[var(--color-gray-100)] focus:bg-[var(--color-gray-100)] cursor-pointer select-none flex items-center gap-2 ${v ? "bg-[var(--color-blue-50)]" : ""}`,
205
+ onClick: () => ee(!l, e),
206
+ "data-automation-id": `dropdown-option-${e?.automationId || o}`
207
+ }, /* @__PURE__ */ n.createElement($e, {
187
208
  tabIndex: -1,
188
209
  ariaHidden: !0,
189
- checked: o,
210
+ checked: l,
190
211
  onChange: () => {
191
212
  }
192
213
  }), /* @__PURE__ */ n.createElement("span", {
193
214
  className: "checkbox-label"
194
215
  }, e?.label));
195
- }, xe = () => {
196
- const e = A(), a = i >= 0 ? `${g}-option-${i}` : void 0;
197
- return /* @__PURE__ */ n.createElement("div", {
198
- className: "dropdown-content dropdown-options",
199
- onKeyDown: (o) => {
200
- o.key === "Tab" && o.stopPropagation();
201
- }
202
- }, /* @__PURE__ */ n.createElement("div", {
203
- id: g,
204
- ref: V,
205
- role: "listbox",
206
- "aria-label": `${f} options`,
207
- "aria-multiselectable": "true",
208
- tabIndex: -1,
209
- style: {
210
- outline: "none"
211
- },
212
- "aria-activedescendant": a,
213
- onKeyDown: he,
214
- onFocus: () => {
215
- i === -1 && e.length > 0 && S(0);
216
- }
217
- }, y && Q(), /* @__PURE__ */ n.createElement("div", {
218
- className: "flex flex-col max-h-80 overflow-y-auto"
219
- }, e.length > 0 ? e.map((o, l) => ve(o, l)) : /* @__PURE__ */ n.createElement("div", {
220
- className: "px-3 py-4 text-center text-[var(--color-gray-700)] text-sm",
221
- role: "status",
222
- "aria-live": "polite"
223
- }, W))), /* @__PURE__ */ n.createElement("div", {
224
- className: "flex items-center justify-end gap-4 p-3 border-t border-[var(--color-gray-200)]",
225
- onKeyDown: (o) => {
226
- o.key === "Tab" && o.shiftKey && (o.preventDefault(), o.stopPropagation(), V.current?.focus());
227
- }
228
- }, /* @__PURE__ */ n.createElement(Z, {
229
- label: "Clear",
230
- type: "link",
231
- size: "sm",
232
- onClick: pe,
233
- automationId: "se-design-dropdown-clear-button",
234
- ariaLabel: `Clear ${f} selection`
235
- }), /* @__PURE__ */ n.createElement(Z, {
236
- label: "Apply",
237
- type: "primary",
238
- size: "sm",
239
- onClick: ye,
240
- automationId: "se-design-dropdown-apply-button"
241
- })));
242
- }, we = () => {
243
- const e = d ? "border-[var(--color-blue-500)]" : E ? "border-[var(--color-gray-300)]" : "border-[var(--color-gray-600)]", a = q ? "border-[var(--color-red-500)]" : "", o = `dropdown-src-element bg-[var(--color-white)] flex px-3 py-2 ${re ? "border-0" : `border rounded-md ${a || e}`} flex items-center ${ae}`;
216
+ }, De = () => /* @__PURE__ */ n.createElement("div", {
217
+ className: "dropdown-content dropdown-options",
218
+ onKeyDown: (e) => {
219
+ e.key === "Tab" && e.stopPropagation();
220
+ }
221
+ }, h && Z(), /* @__PURE__ */ n.createElement("div", p({}, O, {
222
+ "aria-label": `${u} options`,
223
+ "aria-multiselectable": "true",
224
+ style: {
225
+ outline: "none"
226
+ }
227
+ }, h ? {} : {
228
+ tabIndex: -1,
229
+ "aria-activedescendant": B["aria-activedescendant"],
230
+ onKeyDown: (e) => te(e, !1),
231
+ onFocus: () => {
232
+ w === -1 && c.length > 0 && pe(0);
233
+ }
234
+ }), /* @__PURE__ */ n.createElement("div", {
235
+ className: "flex flex-col max-h-80 overflow-y-auto"
236
+ }, c.length > 0 ? c.map((e, o) => Ce(e, o)) : /* @__PURE__ */ n.createElement("div", {
237
+ className: "px-3 py-4 text-center text-[var(--color-gray-700)] text-sm",
238
+ role: "status",
239
+ "aria-live": "polite"
240
+ }, J))), /* @__PURE__ */ n.createElement("div", {
241
+ className: "flex items-center justify-end gap-4 p-3 border-t border-[var(--color-gray-200)]",
242
+ onKeyDown: (e) => {
243
+ e.key === "Tab" && e.shiftKey && (e.preventDefault(), e.stopPropagation(), h ? I.current?.focus() : O.ref.current?.focus());
244
+ }
245
+ }, /* @__PURE__ */ n.createElement(le, {
246
+ label: "Clear",
247
+ type: "link",
248
+ size: "sm",
249
+ onClick: Se,
250
+ automationId: "se-design-dropdown-clear-button"
251
+ }), /* @__PURE__ */ n.createElement(le, {
252
+ label: "Apply",
253
+ type: "primary",
254
+ size: "sm",
255
+ onClick: Ie,
256
+ automationId: "se-design-dropdown-apply-button"
257
+ }))), ke = () => {
258
+ const e = i ? "border-[var(--color-blue-500)]" : k ? "border-[var(--color-gray-300)]" : "border-[var(--color-gray-600)]", o = W ? "border-[var(--color-red-500)]" : "", l = `dropdown-src-element bg-[var(--color-white)] flex px-3 py-2 ${ue ? "border-0" : `border rounded-md ${o || e}`} flex items-center ${ie}`;
244
259
  return /* @__PURE__ */ n.createElement("div", {
245
- className: o
260
+ className: l
246
261
  }, /* @__PURE__ */ n.createElement("div", {
262
+ id: H,
247
263
  className: "flex-1 min-w-0",
248
264
  "data-automation-id": t?.dropDownSelectAutomationId || "selected-dropdown-value"
249
- }, J(r[0], !0)), /* @__PURE__ */ n.createElement("div", {
265
+ }, G(r[0], !0)), /* @__PURE__ */ n.createElement("div", {
250
266
  className: "flex-shrink-0 ml-2",
251
267
  "aria-hidden": "true"
252
- }, /* @__PURE__ */ n.createElement(Y, {
268
+ }, /* @__PURE__ */ n.createElement(oe, {
253
269
  name: "chevron",
254
- rotation: d ? "180" : "0",
270
+ rotation: i ? "180" : "0",
255
271
  className: "transition-transform",
256
- stroke: H
272
+ stroke: j
257
273
  })));
258
- }, Se = () => ce || f || "Select option", G = y ? "button" : "combobox", Ee = G === "combobox" && !s && c ? {
259
- "aria-activedescendant": c["aria-activedescendant"],
260
- "aria-controls": c["aria-controls"],
261
- "aria-expanded": c["aria-expanded"]
262
- } : {};
274
+ }, Ne = () => {
275
+ const e = r[0]?.[d];
276
+ return b && e ? `${b}, ${e}` : b || u || "Select option";
277
+ };
263
278
  return /* @__PURE__ */ n.createElement("div", {
264
279
  className: `se-design-dropdown-container${t?.className ? ` ${t?.className}` : ""}`,
265
280
  style: t?.style
266
- }, t?.label && /* @__PURE__ */ n.createElement("div", {
267
- id: T,
268
- className: "se-design-dropdown-label mb-[3px] text-[var(--color-gray-700)] text-sm"
269
- }, t?.label), /* @__PURE__ */ n.createElement("div", h({
281
+ }, t?.label ? /* @__PURE__ */ n.createElement("div", {
282
+ id: P,
283
+ className: `se-design-dropdown-label ${U ? "sr-only" : "mb-[3px] text-[var(--color-gray-700)] text-sm"}`
284
+ }, t?.label) : !t?.ariaLabelledBy && b ? /* @__PURE__ */ n.createElement("span", {
285
+ id: P,
286
+ className: "sr-only"
287
+ }, b) : null, /* @__PURE__ */ n.createElement("div", p({
270
288
  style: t?.style,
271
- className: `${E ? "bg-[var(--color-gray-50)] rounded-md cursor-not-allowed" : ""}`
272
- }, s ? {} : {
273
- ...me,
289
+ className: `${k ? "bg-[var(--color-gray-50)] rounded-md cursor-not-allowed" : ""}`
290
+ }, a ? {} : {
291
+ ...ve,
274
292
  // Portal content lives in document.body — focus moving into it looks like "focus out" to
275
293
  // the container's blur handler, causing immediate close. Suppress it; the Popover's own
276
294
  // onBlur handler checks both source and portal content and handles dismissal correctly.
277
- ...z ? {
295
+ ...Q ? {
278
296
  onBlurCapture: void 0
279
297
  } : {}
280
- }), /* @__PURE__ */ n.createElement(De, h({
281
- ref: M,
282
- isPopoverOpen: d,
283
- isWithPortal: z,
284
- renderPopoverContents: F || (s ? xe : ge),
298
+ }), /* @__PURE__ */ n.createElement(Ae, p({
299
+ ref: y,
300
+ isPopoverOpen: i,
301
+ isWithPortal: Q,
302
+ renderPopoverContents: _ || (a ? De : Ee),
285
303
  contentWidth: "full",
286
304
  renderPopoverSrcElement: t.renderSrcElement ? () => t.renderSrcElement({
287
- isOpen: d,
305
+ isOpen: i,
288
306
  selectedValue: r
289
- }) : we,
307
+ }) : ke,
290
308
  onPopoverToggle: (e) => {
291
- P(e), e && s && setTimeout(() => V.current?.focus(), 50);
309
+ if (D(e), e && !a && r.length > 0) {
310
+ const o = c.findIndex((l) => s ? l[s] === r[0]?.[s] : l[d] === r[0]?.[d]);
311
+ o >= 0 && he(o);
312
+ }
313
+ e && a && !h && requestAnimationFrame(() => requestAnimationFrame(() => O.ref.current?.focus()));
292
314
  },
293
- disabled: E,
315
+ disabled: k,
294
316
  automationId: t?.dropDownSrcAutomationId,
295
317
  popoverContentAutomationId: t?.dropDownContentAutomationId,
296
- ariaLabelledBy: t?.label ? T : t?.ariaLabelledBy,
297
- ariaLabel: t?.label || t?.ariaLabelledBy ? void 0 : Se(),
298
- sourceRole: G
299
- }, Ee, s ? {
300
- "aria-controls": g
301
- } : {}))), q && /* @__PURE__ */ n.createElement("div", {
318
+ ariaLabelledBy: t?.label || t?.ariaLabelledBy || b ? [t?.label || !t?.ariaLabelledBy && b ? P : t?.ariaLabelledBy, H].filter(Boolean).join(" ") : void 0,
319
+ ariaLabel: !t?.label && !b && !t?.ariaLabelledBy ? Ne() : void 0,
320
+ sourceRole: "button",
321
+ "aria-haspopup": "listbox"
322
+ }, i ? {
323
+ "aria-controls": C
324
+ } : {}))), W && /* @__PURE__ */ n.createElement("div", {
302
325
  className: "text-[var(--color-red-500)] text-sm"
303
- }, le));
326
+ }, de));
304
327
  };
305
328
  export {
306
- Me as Dropdown
329
+ je as Dropdown
307
330
  };
308
331
  //# sourceMappingURL=index25.js.map