@frontify/fondue-components 28.0.0 → 29.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/dist/fondue-components.js +60 -56
  2. package/dist/fondue-components.js.map +1 -1
  3. package/dist/fondue-components10.js +1 -1
  4. package/dist/fondue-components100.js +22 -16
  5. package/dist/fondue-components100.js.map +1 -1
  6. package/dist/fondue-components101.js +34 -151
  7. package/dist/fondue-components101.js.map +1 -1
  8. package/dist/fondue-components102.js +10 -44
  9. package/dist/fondue-components102.js.map +1 -1
  10. package/dist/fondue-components103.js +67 -13
  11. package/dist/fondue-components103.js.map +1 -1
  12. package/dist/fondue-components104.js +13 -13
  13. package/dist/fondue-components105.js +26 -111
  14. package/dist/fondue-components105.js.map +1 -1
  15. package/dist/fondue-components106.js +18 -12
  16. package/dist/fondue-components106.js.map +1 -1
  17. package/dist/fondue-components107.js +25 -17
  18. package/dist/fondue-components107.js.map +1 -1
  19. package/dist/fondue-components108.js +8 -12
  20. package/dist/fondue-components108.js.map +1 -1
  21. package/dist/fondue-components109.js +30 -16
  22. package/dist/fondue-components109.js.map +1 -1
  23. package/dist/fondue-components11.js +3 -3
  24. package/dist/fondue-components110.js +7 -6
  25. package/dist/fondue-components110.js.map +1 -1
  26. package/dist/fondue-components111.js +16 -11
  27. package/dist/fondue-components111.js.map +1 -1
  28. package/dist/fondue-components112.js +125 -69
  29. package/dist/fondue-components112.js.map +1 -1
  30. package/dist/fondue-components113.js +11 -15
  31. package/dist/fondue-components113.js.map +1 -1
  32. package/dist/fondue-components114.js +36 -7
  33. package/dist/fondue-components114.js.map +1 -1
  34. package/dist/fondue-components115.js +14 -89
  35. package/dist/fondue-components115.js.map +1 -1
  36. package/dist/fondue-components116.js +14 -80
  37. package/dist/fondue-components116.js.map +1 -1
  38. package/dist/fondue-components117.js +109 -29
  39. package/dist/fondue-components117.js.map +1 -1
  40. package/dist/fondue-components118.js +12 -28
  41. package/dist/fondue-components118.js.map +1 -1
  42. package/dist/fondue-components119.js +20 -0
  43. package/dist/fondue-components119.js.map +1 -0
  44. package/dist/fondue-components12.js +3 -3
  45. package/dist/fondue-components120.js +12 -40
  46. package/dist/fondue-components120.js.map +1 -1
  47. package/dist/fondue-components121.js +216 -18
  48. package/dist/fondue-components121.js.map +1 -1
  49. package/dist/fondue-components122.js +17 -19
  50. package/dist/fondue-components122.js.map +1 -1
  51. package/dist/fondue-components123.js +15 -38
  52. package/dist/fondue-components123.js.map +1 -1
  53. package/dist/fondue-components124.js +150 -67
  54. package/dist/fondue-components124.js.map +1 -1
  55. package/dist/fondue-components125.js +44 -30
  56. package/dist/fondue-components125.js.map +1 -1
  57. package/dist/fondue-components126.js +5 -9
  58. package/dist/fondue-components126.js.map +1 -1
  59. package/dist/fondue-components127.js +4 -152
  60. package/dist/fondue-components127.js.map +1 -1
  61. package/dist/fondue-components128.js +28 -107
  62. package/dist/fondue-components128.js.map +1 -1
  63. package/dist/fondue-components13.js +61 -35
  64. package/dist/fondue-components13.js.map +1 -1
  65. package/dist/fondue-components130.js +41 -16
  66. package/dist/fondue-components130.js.map +1 -1
  67. package/dist/fondue-components131.js +6 -29
  68. package/dist/fondue-components131.js.map +1 -1
  69. package/dist/fondue-components132.js +12 -13
  70. package/dist/fondue-components132.js.map +1 -1
  71. package/dist/fondue-components133.js +70 -6
  72. package/dist/fondue-components133.js.map +1 -1
  73. package/dist/fondue-components134.js +18 -0
  74. package/dist/fondue-components134.js.map +1 -0
  75. package/dist/fondue-components135.js +10 -0
  76. package/dist/fondue-components135.js.map +1 -0
  77. package/dist/fondue-components136.js +92 -0
  78. package/dist/fondue-components136.js.map +1 -0
  79. package/dist/fondue-components137.js +84 -0
  80. package/dist/fondue-components137.js.map +1 -0
  81. package/dist/fondue-components138.js +34 -0
  82. package/dist/fondue-components138.js.map +1 -0
  83. package/dist/fondue-components139.js +173 -0
  84. package/dist/fondue-components139.js.map +1 -0
  85. package/dist/fondue-components14.js +36 -121
  86. package/dist/fondue-components14.js.map +1 -1
  87. package/dist/fondue-components140.js +63 -0
  88. package/dist/fondue-components140.js.map +1 -0
  89. package/dist/fondue-components141.js +12 -0
  90. package/dist/fondue-components141.js.map +1 -0
  91. package/dist/fondue-components142.js +259 -0
  92. package/dist/fondue-components142.js.map +1 -0
  93. package/dist/fondue-components143.js +22 -0
  94. package/dist/fondue-components143.js.map +1 -0
  95. package/dist/fondue-components144.js +73 -0
  96. package/dist/fondue-components144.js.map +1 -0
  97. package/dist/fondue-components145.js +1355 -0
  98. package/dist/fondue-components145.js.map +1 -0
  99. package/dist/fondue-components146.js +944 -0
  100. package/dist/fondue-components146.js.map +1 -0
  101. package/dist/fondue-components147.js +201 -0
  102. package/dist/fondue-components147.js.map +1 -0
  103. package/dist/fondue-components148.js +24 -0
  104. package/dist/fondue-components148.js.map +1 -0
  105. package/dist/fondue-components149.js +43 -0
  106. package/dist/fondue-components149.js.map +1 -0
  107. package/dist/fondue-components15.js +121 -36
  108. package/dist/fondue-components15.js.map +1 -1
  109. package/dist/fondue-components150.js +71 -0
  110. package/dist/fondue-components150.js.map +1 -0
  111. package/dist/fondue-components151.js +34 -0
  112. package/dist/fondue-components151.js.map +1 -0
  113. package/dist/fondue-components152.js +12 -0
  114. package/dist/fondue-components152.js.map +1 -0
  115. package/dist/fondue-components153.js +156 -0
  116. package/dist/fondue-components153.js.map +1 -0
  117. package/dist/fondue-components154.js +111 -0
  118. package/dist/fondue-components154.js.map +1 -0
  119. package/dist/{fondue-components129.js → fondue-components155.js} +1 -1
  120. package/dist/{fondue-components129.js.map → fondue-components155.js.map} +1 -1
  121. package/dist/fondue-components156.js +19 -0
  122. package/dist/fondue-components156.js.map +1 -0
  123. package/dist/fondue-components157.js +32 -0
  124. package/dist/fondue-components157.js.map +1 -0
  125. package/dist/fondue-components158.js +16 -0
  126. package/dist/fondue-components158.js.map +1 -0
  127. package/dist/fondue-components159.js +10 -0
  128. package/dist/fondue-components159.js.map +1 -0
  129. package/dist/fondue-components16.js +30 -39
  130. package/dist/fondue-components16.js.map +1 -1
  131. package/dist/fondue-components17.js +44 -41
  132. package/dist/fondue-components17.js.map +1 -1
  133. package/dist/fondue-components18.js +42 -57
  134. package/dist/fondue-components18.js.map +1 -1
  135. package/dist/fondue-components19.js +55 -41
  136. package/dist/fondue-components19.js.map +1 -1
  137. package/dist/fondue-components20.js +39 -16
  138. package/dist/fondue-components20.js.map +1 -1
  139. package/dist/fondue-components21.js +17 -43
  140. package/dist/fondue-components21.js.map +1 -1
  141. package/dist/fondue-components22.js +42 -69
  142. package/dist/fondue-components22.js.map +1 -1
  143. package/dist/fondue-components23.js +69 -17
  144. package/dist/fondue-components23.js.map +1 -1
  145. package/dist/fondue-components24.js +71 -74
  146. package/dist/fondue-components24.js.map +1 -1
  147. package/dist/fondue-components25.js +18 -36
  148. package/dist/fondue-components25.js.map +1 -1
  149. package/dist/fondue-components26.js +72 -50
  150. package/dist/fondue-components26.js.map +1 -1
  151. package/dist/fondue-components27.js +36 -23
  152. package/dist/fondue-components27.js.map +1 -1
  153. package/dist/fondue-components28.js +50 -50
  154. package/dist/fondue-components28.js.map +1 -1
  155. package/dist/fondue-components29.js +23 -100
  156. package/dist/fondue-components29.js.map +1 -1
  157. package/dist/fondue-components3.js +1 -1
  158. package/dist/fondue-components30.js +50 -28
  159. package/dist/fondue-components30.js.map +1 -1
  160. package/dist/fondue-components31.js +92 -188
  161. package/dist/fondue-components31.js.map +1 -1
  162. package/dist/fondue-components32.js +31 -144
  163. package/dist/fondue-components32.js.map +1 -1
  164. package/dist/fondue-components33.js +192 -129
  165. package/dist/fondue-components33.js.map +1 -1
  166. package/dist/fondue-components34.js +141 -27
  167. package/dist/fondue-components34.js.map +1 -1
  168. package/dist/fondue-components35.js +123 -71
  169. package/dist/fondue-components35.js.map +1 -1
  170. package/dist/fondue-components36.js +28 -120
  171. package/dist/fondue-components36.js.map +1 -1
  172. package/dist/fondue-components37.js +80 -35
  173. package/dist/fondue-components37.js.map +1 -1
  174. package/dist/fondue-components38.js +119 -52
  175. package/dist/fondue-components38.js.map +1 -1
  176. package/dist/fondue-components39.js +36 -20
  177. package/dist/fondue-components39.js.map +1 -1
  178. package/dist/fondue-components4.js +3 -3
  179. package/dist/fondue-components40.js +56 -25
  180. package/dist/fondue-components40.js.map +1 -1
  181. package/dist/fondue-components41.js +20 -7
  182. package/dist/fondue-components41.js.map +1 -1
  183. package/dist/fondue-components42.js +25 -8
  184. package/dist/fondue-components42.js.map +1 -1
  185. package/dist/fondue-components43.js +8 -41
  186. package/dist/fondue-components43.js.map +1 -1
  187. package/dist/fondue-components44.js +8 -4
  188. package/dist/fondue-components44.js.map +1 -1
  189. package/dist/fondue-components45.js +41 -5
  190. package/dist/fondue-components45.js.map +1 -1
  191. package/dist/fondue-components46.js +3 -11
  192. package/dist/fondue-components46.js.map +1 -1
  193. package/dist/fondue-components47.js +5 -32
  194. package/dist/fondue-components47.js.map +1 -1
  195. package/dist/fondue-components48.js +12 -53
  196. package/dist/fondue-components48.js.map +1 -1
  197. package/dist/fondue-components49.js +32 -131
  198. package/dist/fondue-components49.js.map +1 -1
  199. package/dist/fondue-components5.js +2 -2
  200. package/dist/fondue-components50.js +53 -20
  201. package/dist/fondue-components50.js.map +1 -1
  202. package/dist/fondue-components51.js +131 -53
  203. package/dist/fondue-components51.js.map +1 -1
  204. package/dist/fondue-components52.js +20 -7
  205. package/dist/fondue-components52.js.map +1 -1
  206. package/dist/fondue-components53.js +53 -13
  207. package/dist/fondue-components53.js.map +1 -1
  208. package/dist/fondue-components54.js +7 -16
  209. package/dist/fondue-components54.js.map +1 -1
  210. package/dist/fondue-components55.js +13 -5
  211. package/dist/fondue-components55.js.map +1 -1
  212. package/dist/fondue-components56.js +17 -18
  213. package/dist/fondue-components56.js.map +1 -1
  214. package/dist/fondue-components57.js +4 -18
  215. package/dist/fondue-components57.js.map +1 -1
  216. package/dist/fondue-components58.js +18 -44
  217. package/dist/fondue-components58.js.map +1 -1
  218. package/dist/fondue-components59.js +18 -24
  219. package/dist/fondue-components59.js.map +1 -1
  220. package/dist/fondue-components6.js +1 -1
  221. package/dist/fondue-components60.js +43 -22
  222. package/dist/fondue-components60.js.map +1 -1
  223. package/dist/fondue-components61.js +24 -4
  224. package/dist/fondue-components61.js.map +1 -1
  225. package/dist/fondue-components62.js +22 -12
  226. package/dist/fondue-components62.js.map +1 -1
  227. package/dist/fondue-components63.js +6 -4
  228. package/dist/fondue-components63.js.map +1 -1
  229. package/dist/fondue-components64.js +4 -17
  230. package/dist/fondue-components64.js.map +1 -1
  231. package/dist/fondue-components65.js +12 -10
  232. package/dist/fondue-components65.js.map +1 -1
  233. package/dist/fondue-components66.js +4 -36
  234. package/dist/fondue-components66.js.map +1 -1
  235. package/dist/fondue-components67.js +17 -6
  236. package/dist/fondue-components67.js.map +1 -1
  237. package/dist/fondue-components68.js +10 -4
  238. package/dist/fondue-components68.js.map +1 -1
  239. package/dist/fondue-components69.js +34 -10
  240. package/dist/fondue-components69.js.map +1 -1
  241. package/dist/fondue-components7.js +1 -1
  242. package/dist/fondue-components70.js +6 -8
  243. package/dist/fondue-components70.js.map +1 -1
  244. package/dist/fondue-components71.js +4 -12
  245. package/dist/fondue-components71.js.map +1 -1
  246. package/dist/fondue-components72.js +11 -3
  247. package/dist/fondue-components72.js.map +1 -1
  248. package/dist/fondue-components73.js +50 -23
  249. package/dist/fondue-components73.js.map +1 -1
  250. package/dist/fondue-components74.js +44 -17
  251. package/dist/fondue-components74.js.map +1 -1
  252. package/dist/fondue-components75.js +6 -20
  253. package/dist/fondue-components75.js.map +1 -1
  254. package/dist/fondue-components76.js +6 -20
  255. package/dist/fondue-components76.js.map +1 -1
  256. package/dist/fondue-components77.js +12 -19
  257. package/dist/fondue-components77.js.map +1 -1
  258. package/dist/fondue-components78.js +24 -16
  259. package/dist/fondue-components78.js.map +1 -1
  260. package/dist/fondue-components79.js +13 -19
  261. package/dist/fondue-components79.js.map +1 -1
  262. package/dist/fondue-components8.js +5 -5
  263. package/dist/fondue-components80.js +5 -8
  264. package/dist/fondue-components80.js.map +1 -1
  265. package/dist/fondue-components81.js +12 -10
  266. package/dist/fondue-components81.js.map +1 -1
  267. package/dist/fondue-components82.js +47 -10
  268. package/dist/fondue-components82.js.map +1 -1
  269. package/dist/fondue-components83.js +20 -4
  270. package/dist/fondue-components83.js.map +1 -1
  271. package/dist/fondue-components84.js +628 -12
  272. package/dist/fondue-components84.js.map +1 -1
  273. package/dist/fondue-components85.js +8 -22
  274. package/dist/fondue-components85.js.map +1 -1
  275. package/dist/fondue-components86.js +13 -34
  276. package/dist/fondue-components86.js.map +1 -1
  277. package/dist/fondue-components87.js +4 -10
  278. package/dist/fondue-components87.js.map +1 -1
  279. package/dist/fondue-components88.js +23 -66
  280. package/dist/fondue-components88.js.map +1 -1
  281. package/dist/fondue-components89.js +14 -12
  282. package/dist/fondue-components89.js.map +1 -1
  283. package/dist/fondue-components9.js +5 -5
  284. package/dist/fondue-components90.js +20 -25
  285. package/dist/fondue-components90.js.map +1 -1
  286. package/dist/fondue-components91.js +20 -19
  287. package/dist/fondue-components91.js.map +1 -1
  288. package/dist/fondue-components92.js +20 -25
  289. package/dist/fondue-components92.js.map +1 -1
  290. package/dist/fondue-components93.js +20 -9
  291. package/dist/fondue-components93.js.map +1 -1
  292. package/dist/fondue-components94.js +19 -31
  293. package/dist/fondue-components94.js.map +1 -1
  294. package/dist/fondue-components95.js +8 -7
  295. package/dist/fondue-components95.js.map +1 -1
  296. package/dist/fondue-components96.js +10 -4
  297. package/dist/fondue-components96.js.map +1 -1
  298. package/dist/fondue-components97.js +10 -4
  299. package/dist/fondue-components97.js.map +1 -1
  300. package/dist/fondue-components98.js +6 -216
  301. package/dist/fondue-components98.js.map +1 -1
  302. package/dist/fondue-components99.js +12 -18
  303. package/dist/fondue-components99.js.map +1 -1
  304. package/dist/index.d.ts +102 -4
  305. package/dist/style.css +1 -1
  306. package/package.json +6 -4
@@ -1,28 +1,23 @@
1
- const t = "_root_3dhca_5", o = "_textareaWrapper_3dhca_62", s = "_textarea_3dhca_62", a = "_slot_3dhca_120", _ = "_decorator_3dhca_145", c = "_tools_3dhca_158", r = "_toolsButton_3dhca_190", e = "_success_3dhca_222", n = "_error_3dhca_226", d = "_loadingStatus_3dhca_230", l = "_spin_3dhca_1", h = {
2
- root: t,
3
- textareaWrapper: o,
4
- textarea: s,
5
- slot: a,
6
- decorator: _,
7
- tools: c,
8
- toolsButton: r,
9
- success: e,
10
- error: n,
11
- loadingStatus: d,
12
- spin: l
13
- };
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { forwardRef as s } from "react";
3
+ import { SelectBase as u } from "./fondue-components124.js";
4
+ import { useMultiselect as a } from "./fondue-components122.js";
5
+ const n = ({ value: e, onSelect: t, defaultValue: l, ...o }, r) => {
6
+ const { selectedItemValues: m, toggleSelectedItem: c, clear: i } = a(t, e, l);
7
+ return /* @__PURE__ */ p(
8
+ u,
9
+ {
10
+ ref: r,
11
+ multiple: !0,
12
+ selectedItemValues: m,
13
+ onItemSelect: c,
14
+ onClear: i,
15
+ ...o
16
+ }
17
+ );
18
+ }, f = s(n);
19
+ f.displayName = "Select.Multi";
14
20
  export {
15
- _ as decorator,
16
- h as default,
17
- n as error,
18
- d as loadingStatus,
19
- t as root,
20
- a as slot,
21
- l as spin,
22
- e as success,
23
- s as textarea,
24
- o as textareaWrapper,
25
- c as tools,
26
- r as toolsButton
21
+ f as SelectMultiple
27
22
  };
28
23
  //# sourceMappingURL=fondue-components92.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components92.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
1
+ {"version":3,"file":"fondue-components92.js","sources":["../src/components/Select/SelectMultiple.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { forwardRef, type ForwardedRef } from 'react';\n\nimport { SelectBase, type SelectSharedProps } from './components/SelectBase';\nimport { useMultiselect } from './hooks/useMultiselect';\n\nexport type SelectMultipleProps = SelectSharedProps & {\n /**\n * The active value in the select component. This is used to control the select externally\n */\n value?: string[] | null;\n /**\n * Callback function that is called when items are selected\n */\n onSelect?: (selectedValues: string[] | null) => void;\n /**\n * The default value of the select component. Used for uncontrolled usages\n */\n defaultValue?: string[];\n};\n\nconst SelectMultipleInput = (\n { value, onSelect, defaultValue, ...rest }: SelectMultipleProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n const { selectedItemValues, toggleSelectedItem, clear } = useMultiselect(onSelect, value, defaultValue);\n\n return (\n <SelectBase\n ref={ref}\n multiple\n selectedItemValues={selectedItemValues}\n onItemSelect={toggleSelectedItem}\n onClear={clear}\n {...rest}\n />\n );\n};\n\nexport const SelectMultiple = forwardRef<HTMLDivElement, SelectMultipleProps>(SelectMultipleInput);\nSelectMultiple.displayName = 'Select.Multi';\n"],"names":["SelectMultipleInput","value","onSelect","defaultValue","rest","ref","selectedItemValues","toggleSelectedItem","clear","useMultiselect","jsx","SelectBase","SelectMultiple","forwardRef"],"mappings":";;;;AAsBA,MAAMA,IAAsB,CACxB,EAAE,OAAAC,GAAO,UAAAC,GAAU,cAAAC,GAAc,GAAGC,EAAA,GACpCC,MACC;AACD,QAAM,EAAE,oBAAAC,GAAoB,oBAAAC,GAAoB,OAAAC,EAAA,IAAUC,EAAeP,GAAUD,GAAOE,CAAY;AAEtG,SACI,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,KAAAN;AAAA,MACA,UAAQ;AAAA,MACR,oBAAAC;AAAA,MACA,cAAcC;AAAA,MACd,SAASC;AAAA,MACR,GAAGJ;AAAA,IAAA;AAAA,EAAA;AAGhB,GAEaQ,IAAiBC,EAAgDb,CAAmB;AACjGY,EAAe,cAAc;"}
@@ -1,12 +1,23 @@
1
- const s = "_base_vux45_1", t = "_dark_vux45_249", _ = "_light_vux45_331", a = {
2
- base: s,
3
- dark: t,
4
- light: _
5
- };
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { forwardRef as i } from "react";
3
+ import { SelectBase as S } from "./fondue-components124.js";
4
+ import { useSingleSelect as a } from "./fondue-components123.js";
5
+ const p = ({ value: e, onSelect: t, defaultValue: l, ...o }, r) => {
6
+ const { selectedItemValues: m, selectItem: c, clear: s } = a(t, e, l);
7
+ return /* @__PURE__ */ n(
8
+ S,
9
+ {
10
+ ref: r,
11
+ multiple: !1,
12
+ selectedItemValues: m,
13
+ onItemSelect: c,
14
+ onClear: s,
15
+ ...o
16
+ }
17
+ );
18
+ }, f = i(p);
19
+ f.displayName = "Select";
6
20
  export {
7
- s as base,
8
- t as dark,
9
- a as default,
10
- _ as light
21
+ f as SelectSingle
11
22
  };
12
23
  //# sourceMappingURL=fondue-components93.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components93.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"fondue-components93.js","sources":["../src/components/Select/SelectSingle.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { forwardRef, type ForwardedRef } from 'react';\n\nimport { SelectBase, type SelectSharedProps } from './components/SelectBase';\nimport { useSingleSelect } from './hooks/useSingleSelect';\n\nexport type SelectSingleProps = SelectSharedProps & {\n /**\n * The active value in the select component. This is used to control the select externally\n */\n value?: string | null;\n /**\n * Callback function that is called when an item is selected\n */\n onSelect?: (selectedValue: string | null) => void;\n /**\n * The default value of the select component. Used for uncontrolled usages\n */\n defaultValue?: string;\n};\n\nconst SelectSingleInput = (\n { value, onSelect, defaultValue, ...rest }: SelectSingleProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n const { selectedItemValues, selectItem, clear } = useSingleSelect(onSelect, value, defaultValue);\n\n return (\n <SelectBase\n ref={ref}\n multiple={false}\n selectedItemValues={selectedItemValues}\n onItemSelect={selectItem}\n onClear={clear}\n {...rest}\n />\n );\n};\n\nexport const SelectSingle = forwardRef<HTMLDivElement, SelectSingleProps>(SelectSingleInput);\nSelectSingle.displayName = 'Select';\n"],"names":["SelectSingleInput","value","onSelect","defaultValue","rest","ref","selectedItemValues","selectItem","clear","useSingleSelect","jsx","SelectBase","SelectSingle","forwardRef"],"mappings":";;;;AAsBA,MAAMA,IAAoB,CACtB,EAAE,OAAAC,GAAO,UAAAC,GAAU,cAAAC,GAAc,GAAGC,EAAA,GACpCC,MACC;AACD,QAAM,EAAE,oBAAAC,GAAoB,YAAAC,GAAY,OAAAC,EAAA,IAAUC,EAAgBP,GAAUD,GAAOE,CAAY;AAE/F,SACI,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,KAAAN;AAAA,MACA,UAAU;AAAA,MACV,oBAAAC;AAAA,MACA,cAAcC;AAAA,MACd,SAASC;AAAA,MACR,GAAGJ;AAAA,IAAA;AAAA,EAAA;AAGhB,GAEaQ,IAAeC,EAA8Cb,CAAiB;AAC3FY,EAAa,cAAc;"}
@@ -1,34 +1,22 @@
1
- import { enUS as e } from "./fondue-components121.js";
2
- const l = {
3
- ColorPicker_selectColor: "Select Color",
4
- ColorPicker_selectFormat: "Select a color format",
5
- ColorPicker_hexValue: "Hex color value",
6
- ColorPicker_redChannel: "Red Color Channel",
7
- ColorPicker_greenChannel: "Green Color Channel",
8
- ColorPicker_blueChannel: "Blue Color Channel",
9
- ColorPicker_opacity: "Color Opacity",
10
- DatePicker_selectDate: "Select Date",
11
- Dialog_close: "Close",
12
- Flyout_close: "Close",
13
- Select_clear: "clear input",
14
- Select_toggleMenu: "toggle menu",
15
- Select_error: "Error",
16
- Select_selectedCount: "${count} selected: ${items}",
17
- Select_singleItemSelected: "1 item selected",
18
- Select_multipleItemsSelected: "${count} items selected",
19
- Select_additionalItemsSelected: "${count} additional items selected",
20
- Switch_defaultLabel: "Switch",
21
- Table_sortByDescending: "Sort by ${column} descending",
22
- Table_sortByAscending: "Sort by ${column} ascending",
23
- Table_sortDescending: "Sort descending",
24
- Table_sortAscending: "Sort ascending",
25
- Badge_dismiss: "Dismiss ${label}",
26
- Notice_dismiss: "Dismiss notice"
27
- }, t = {
28
- translationStrings: l,
29
- dateLocale: e
30
- };
1
+ import { jsxs as d, jsx as r } from "react/jsx-runtime";
2
+ import { IconCheckMark as n } from "@frontify/fondue-icons";
3
+ import { forwardRef as l } from "react";
4
+ import a from "./fondue-components125.js";
5
+ const o = ({ "data-test-id": c = "fondue-select-item", ...e }, t) => /* @__PURE__ */ d("li", { "data-test-id": c, ref: t, ...e, children: [
6
+ /* @__PURE__ */ r("div", { className: a.itemValue, children: e.children }),
7
+ /* @__PURE__ */ r(n, { className: a.checkmarkIcon })
8
+ ] });
9
+ o.displayName = "Select.Item";
10
+ const I = l(o), s = ({ children: c, groupId: e, heading: t, "data-test-id": i = "fondue-select-item-group" }, m) => /* @__PURE__ */ d("div", { "data-test-id": i, className: a.group, ref: m, children: [
11
+ t ? /* @__PURE__ */ r("div", { className: a.groupHeading, children: /* @__PURE__ */ r("span", { children: t }) }) : null,
12
+ c
13
+ ] }, e);
14
+ s.displayName = "Select.Group";
15
+ const N = l(s);
31
16
  export {
32
- t as enUS
17
+ I as ForwardedRefSelectItem,
18
+ N as ForwardedRefSelectItemGroup,
19
+ o as SelectItem,
20
+ s as SelectItemGroup
33
21
  };
34
22
  //# sourceMappingURL=fondue-components94.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components94.js","sources":["../src/locales/en-US.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { enUS as dateLocale } from 'date-fns/locale';\n\nconst translations = {\n ColorPicker_selectColor: 'Select Color',\n ColorPicker_selectFormat: 'Select a color format',\n ColorPicker_hexValue: 'Hex color value',\n ColorPicker_redChannel: 'Red Color Channel',\n ColorPicker_greenChannel: 'Green Color Channel',\n ColorPicker_blueChannel: 'Blue Color Channel',\n ColorPicker_opacity: 'Color Opacity',\n DatePicker_selectDate: 'Select Date',\n Dialog_close: 'Close',\n Flyout_close: 'Close',\n Select_clear: 'clear input',\n Select_toggleMenu: 'toggle menu',\n Select_error: 'Error',\n Select_selectedCount: '${count} selected: ${items}',\n Select_singleItemSelected: '1 item selected',\n Select_multipleItemsSelected: '${count} items selected',\n Select_additionalItemsSelected: '${count} additional items selected',\n Switch_defaultLabel: 'Switch',\n Table_sortByDescending: 'Sort by ${column} descending',\n Table_sortByAscending: 'Sort by ${column} ascending',\n Table_sortDescending: 'Sort descending',\n Table_sortAscending: 'Sort ascending',\n Badge_dismiss: 'Dismiss ${label}',\n Notice_dismiss: 'Dismiss notice',\n};\n\nexport const enUS = {\n translationStrings: translations,\n dateLocale,\n};\n"],"names":["translations","enUS","dateLocale"],"mappings":";AAIA,MAAMA,IAAe;AAAA,EACjB,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EACvB,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,gCAAgC;AAAA,EAChC,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,gBAAgB;AACpB,GAEaC,IAAO;AAAA,EAChB,oBAAoBD;AAAA,EAAA,YACpBE;AACJ;"}
1
+ {"version":3,"file":"fondue-components94.js","sources":["../src/components/Select/components/SelectItem.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCheckMark } from '@frontify/fondue-icons';\nimport { forwardRef, type ForwardedRef, type ReactNode } from 'react';\n\nimport styles from '../styles/select.module.scss';\n\nexport type SelectItemProps = {\n /**\n * The value of the select item.\n */\n value: string;\n /**\n * The data test id of the select item.\n */\n 'data-test-id'?: string;\n} & (\n | {\n /**\n * The label of the select item. Required when the child is not a string.\n */\n label: string;\n /**\n * The children of the select item. This can be a custom component or a string.\n */\n children?: ReactNode;\n }\n | {\n label?: string;\n children: string;\n }\n);\n\nexport const SelectItem = (\n { 'data-test-id': dataTestId = 'fondue-select-item', ...props }: SelectItemProps,\n forwardedRef?: ForwardedRef<HTMLLIElement>,\n) => {\n return (\n <li data-test-id={dataTestId} ref={forwardedRef} {...props}>\n <div className={styles.itemValue}>{props.children}</div>\n <IconCheckMark className={styles.checkmarkIcon} />\n </li>\n );\n};\nSelectItem.displayName = 'Select.Item';\n\nexport const ForwardedRefSelectItem = forwardRef<HTMLLIElement, SelectItemProps>(SelectItem);\n\nexport type SelectItemGroupProps = {\n /**\n * The children of the select item group. This can contain multiple `Select.Item` components.\n */\n children: ReactNode;\n /**\n * The internal group ID of the select item group.\n */\n groupId: string;\n /**\n * The groups heading\n */\n heading?: string;\n /**\n * The data test id of the select item group.\n */\n 'data-test-id'?: string;\n};\n\nexport const SelectItemGroup = (\n { children, groupId, heading, 'data-test-id': dataTestId = 'fondue-select-item-group' }: SelectItemGroupProps,\n forwardedRef?: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div data-test-id={dataTestId} className={styles.group} ref={forwardedRef} key={groupId}>\n {heading ? (\n <div className={styles.groupHeading}>\n <span>{heading}</span>\n </div>\n ) : null}\n {children}\n </div>\n );\n};\nSelectItemGroup.displayName = 'Select.Group';\n\nexport const ForwardedRefSelectItemGroup = forwardRef<HTMLDivElement, SelectItemGroupProps>(SelectItemGroup);\n"],"names":["SelectItem","dataTestId","props","forwardedRef","jsx","styles","IconCheckMark","ForwardedRefSelectItem","forwardRef","SelectItemGroup","children","groupId","heading","jsxs","ForwardedRefSelectItemGroup"],"mappings":";;;;AAiCO,MAAMA,IAAa,CACtB,EAAE,gBAAgBC,IAAa,sBAAsB,GAAGC,EAAA,GACxDC,wBAGK,MAAA,EAAG,gBAAcF,GAAY,KAAKE,GAAe,GAAGD,GACjD,UAAA;AAAA,EAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWC,EAAO,WAAY,YAAM,UAAS;AAAA,EAClD,gBAAAD,EAACE,GAAA,EAAc,WAAWD,EAAO,cAAA,CAAe;AAAA,GACpD;AAGRL,EAAW,cAAc;AAElB,MAAMO,IAAyBC,EAA2CR,CAAU,GAqB9ES,IAAkB,CAC3B,EAAE,UAAAC,GAAU,SAAAC,GAAS,SAAAC,GAAS,gBAAgBX,IAAa,2BAAA,GAC3DE,MAGI,gBAAAU,EAAC,SAAI,gBAAcZ,GAAY,WAAWI,EAAO,OAAO,KAAKF,GACxD,UAAA;AAAA,EAAAS,IACG,gBAAAR,EAAC,SAAI,WAAWC,EAAO,cACnB,UAAA,gBAAAD,EAAC,QAAA,EAAM,UAAAQ,EAAA,CAAQ,EAAA,CACnB,IACA;AAAA,EACHF;AAAA,EAAA,GAN2EC,CAOhF;AAGRF,EAAgB,cAAc;AAEvB,MAAMK,IAA8BN,EAAiDC,CAAe;"}
@@ -1,10 +1,11 @@
1
- const o = "_root_jwtp8_4", t = "_arrow_jwtp8_27", r = {
2
- root: o,
3
- arrow: t
4
- };
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as d } from "react";
3
+ import m from "./fondue-components125.js";
4
+ const t = ({ children: e, name: o, "data-test-id": r = "fondue-select-slot", ...a }, s) => /* @__PURE__ */ l("div", { "data-test-id": r, ref: s, className: m.slot, "data-name": o, ...a, children: e });
5
+ t.displayName = "Select.Slot";
6
+ const S = d(t);
5
7
  export {
6
- t as arrow,
7
- r as default,
8
- o as root
8
+ S as ForwardedRefSelectSlot,
9
+ t as SelectSlot
9
10
  };
10
11
  //# sourceMappingURL=fondue-components95.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components95.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"fondue-components95.js","sources":["../src/components/Select/components/SelectSlot.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { forwardRef, type ForwardedRef, type ReactNode } from 'react';\n\nimport styles from '../styles/select.module.scss';\n\nexport type SelectSlotProps = {\n /**\n * The children of the select slot. This can be a custom component.\n */\n children?: ReactNode;\n /**\n * The slot name that is used to determine the placement.\n */\n name: 'menu' | 'left' | 'right' | 'clear';\n /**\n * The data test id of the select slot.\n */\n 'data-test-id'?: string;\n};\n\nexport const SelectSlot = (\n { children, name, 'data-test-id': dataTestId = 'fondue-select-slot', ...props }: SelectSlotProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div data-test-id={dataTestId} ref={forwardedRef} className={styles.slot} data-name={name} {...props}>\n {children}\n </div>\n );\n};\nSelectSlot.displayName = 'Select.Slot';\n\nexport const ForwardedRefSelectSlot = forwardRef<HTMLDivElement, SelectSlotProps>(SelectSlot);\n"],"names":["SelectSlot","children","name","dataTestId","props","forwardedRef","jsx","styles","ForwardedRefSelectSlot","forwardRef"],"mappings":";;;AAqBO,MAAMA,IAAa,CACtB,EAAE,UAAAC,GAAU,MAAAC,GAAM,gBAAgBC,IAAa,sBAAsB,GAAGC,EAAA,GACxEC,MAGI,gBAAAC,EAAC,OAAA,EAAI,gBAAcH,GAAY,KAAKE,GAAc,WAAWE,EAAO,MAAM,aAAWL,GAAO,GAAGE,GAC1F,UAAAH,GACL;AAGRD,EAAW,cAAc;AAElB,MAAMQ,IAAyBC,EAA4CT,CAAU;"}
@@ -1,8 +1,14 @@
1
- const o = "_root_1y4f3_2", t = {
2
- root: o
1
+ const t = "_root_1x5sc_5", c = "_thumb_1x5sc_17", o = "_track_1x5sc_21", s = "_range_1x5sc_28", _ = {
2
+ root: t,
3
+ thumb: c,
4
+ track: o,
5
+ range: s
3
6
  };
4
7
  export {
5
- t as default,
6
- o as root
8
+ _ as default,
9
+ s as range,
10
+ t as root,
11
+ c as thumb,
12
+ o as track
7
13
  };
8
14
  //# sourceMappingURL=fondue-components96.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components96.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"fondue-components96.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,8 +1,14 @@
1
- const r = (e) => {
2
- if (e)
3
- return `rgba(${e.red}, ${e.green}, ${e.blue}, ${e.alpha ?? 1})`;
1
+ const t = "_root_gywoe_3", o = "_content_gywoe_18", n = "_action_gywoe_22", c = "_actionButton_gywoe_200", _ = {
2
+ root: t,
3
+ content: o,
4
+ action: n,
5
+ actionButton: c
4
6
  };
5
7
  export {
6
- r as colorToCss
8
+ n as action,
9
+ c as actionButton,
10
+ o as content,
11
+ _ as default,
12
+ t as root
7
13
  };
8
14
  //# sourceMappingURL=fondue-components97.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components97.js","sources":["../src/components/Badge/utils.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type RgbaColor } from './types';\n\nexport const DEFAULT_COLOR = { red: 255, green: 255, blue: 255, alpha: 1, name: '' };\n\n/**\n * Converts a color object to a CSS color string.\n * @param {RgbaColor} color - The color object to be converted.\n * @returns {string}\n * @example\n * colorToCss({ red: 255, green: 255, blue: 255, alpha: 1 }); // 'rgba(255, 255, 255, 1)'\n * @example\n * colorToCss({ red: 255, green: 87, blue: 51, alpha: 1 }); // 'rgba(255, 87, 51, 1)'\n * @example\n * colorToCss({ red: 0, green: 0, blue: 0, alpha: 0 }); // 'rgba(0, 0, 0, 0)'\n */\nexport const colorToCss = (color?: RgbaColor) => {\n if (!color) {\n return undefined;\n }\n return `rgba(${color.red}, ${color.green}, ${color.blue}, ${color.alpha ?? 1})`;\n};\n"],"names":["colorToCss","color"],"mappings":"AAiBO,MAAMA,IAAa,CAACC,MAAsB;AAC7C,MAAKA;AAGL,WAAO,QAAQA,EAAM,GAAG,KAAKA,EAAM,KAAK,KAAKA,EAAM,IAAI,KAAKA,EAAM,SAAS,CAAC;AAChF;"}
1
+ {"version":3,"file":"fondue-components97.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,220 +1,10 @@
1
- import { jsxs as g, jsx as n, Fragment as ue } from "react/jsx-runtime";
2
- import { IconCaretDown as me } from "@frontify/fondue-icons";
3
- import * as H from "@radix-ui/react-popover";
4
- import { useMultipleSelection as K, useCombobox as s } from "downshift";
5
- import { forwardRef as be, useRef as he, useCallback as fe, useState as ge, useMemo as j } from "react";
6
- import { LoadingCircle as pe } from "./fondue-components20.js";
7
- import { useTranslation as Ce } from "./fondue-components40.js";
8
- import { useBadgeItems as ye } from "./fondue-components110.js";
9
- import { useFocusRing as Ie } from "./fondue-components111.js";
10
- import { useSelectData as ve } from "./fondue-components112.js";
11
- import { useSelectionDescription as Be } from "./fondue-components113.js";
12
- import c from "./fondue-components102.js";
13
- import { ClearButton as xe } from "./fondue-components114.js";
14
- import { CollapsibleBadges as Se } from "./fondue-components115.js";
15
- import { SelectMenu as we } from "./fondue-components116.js";
16
- import { ForwardedRefSelectSlot as De } from "./fondue-components80.js";
17
- import { StatusIcons as Re } from "./fondue-components117.js";
18
- const z = ({
19
- children: E,
20
- selectedItemValues: i,
21
- onItemSelect: m,
22
- onClear: $,
23
- placeholder: x = "",
24
- status: p = "neutral",
25
- disabled: b,
26
- "data-test-id": d = "fondue-select-combobox",
27
- alignMenu: _ = "start",
28
- side: q = "bottom",
29
- id: G,
30
- viewportCollisionPadding: J = "compact",
31
- getAsyncItems: C,
32
- onEscapeKeyDown: Q,
33
- multiple: o,
34
- ...a
35
- }, U) => {
36
- const h = he(null), W = fe((e) => {
37
- h.current = e;
38
- }, []), { t: X } = Ce(), { inputSlots: Y, menuSlots: Z, items: y, filterText: A, clearButton: S, getItemByValue: r, setFilterText: I, asyncItemStatus: w } = ve(E, C), { wasClickedRef: V, onMouseDown: D, onFocus: R, onBlur: ee } = Ie(), { selectionDescriptionId: L, selectionDescription: O } = Be(
39
- o,
40
- i,
41
- r
42
- ), te = ye(i, r), [ae, k] = ge(!1), M = j(() => i.map((e) => r(e)).filter((e) => e !== void 0 && "value" in e && "label" in e), [i, r]), ne = K(
43
- o ? {
44
- selectedItems: M,
45
- onStateChange({ selectedItems: e, type: l }) {
46
- if (l === K.stateChangeTypes.SelectedItemKeyDownBackspace) {
47
- const t = M.find((u) => !(e != null && e.includes(u)));
48
- t && m(t.value);
49
- }
50
- }
51
- } : { selectedItems: [] }
52
- ), oe = o ? ne.removeSelectedItem : () => {
53
- }, {
54
- getInputProps: f,
55
- getToggleButtonProps: ie,
56
- getMenuProps: le,
57
- getItemProps: re,
58
- reset: N,
59
- selectedItem: v,
60
- isOpen: T,
61
- highlightedIndex: se,
62
- inputValue: B
63
- } = s({
64
- items: y,
65
- selectedItem: o ? null : r(i[0]),
66
- defaultHighlightedIndex: 0,
67
- toggleButtonId: G,
68
- // Only set labelId if aria-labelledby is explicitly provided, otherwise downshift generates an orphan ID
69
- ..."aria-labelledby" in a && a["aria-labelledby"] ? { labelId: a["aria-labelledby"] } : {},
70
- onSelectedItemChange: ({ selectedItem: e }) => {
71
- e && m(e.value), o && I("");
72
- },
73
- onInputValueChange: ({ inputValue: e }) => {
74
- I(e);
75
- },
76
- onIsOpenChange: () => {
77
- k(!1), I("");
78
- },
79
- onHighlightedIndexChange: () => {
80
- k(!0);
81
- },
82
- itemToString: (e) => e ? e.label : "",
83
- stateReducer: (e, l) => {
84
- const { changes: t, type: u } = l;
85
- if (o)
86
- switch (u) {
87
- case s.stateChangeTypes.InputKeyDownEnter:
88
- case s.stateChangeTypes.ItemClick:
89
- return {
90
- ...t,
91
- isOpen: !0,
92
- highlightedIndex: e.highlightedIndex,
93
- inputValue: ""
94
- };
95
- case s.stateChangeTypes.InputBlur:
96
- return {
97
- ...t,
98
- inputValue: ""
99
- };
100
- }
101
- else
102
- switch (u) {
103
- case s.stateChangeTypes.InputKeyDownEnter:
104
- case s.stateChangeTypes.ItemClick:
105
- t.selectedItem && e.selectedItem && t.selectedItem.value === e.selectedItem.value && m(t.selectedItem.value);
106
- break;
107
- }
108
- return t;
109
- }
110
- }), F = j(() => o ? !1 : !C && !y.find((e) => e.label.toLowerCase().includes(B.toLowerCase())), [B, y, C, o]) || !!w.error || p === "error", ce = (e, l) => {
111
- const t = r(e);
112
- t && (oe(t), m(e), h.current && (h.current.focus(), l && (h.current.dataset.showFocusRing = "false")));
113
- }, de = () => {
114
- $(), N();
115
- }, P = (e) => {
116
- var l, t;
117
- ee(e), o || ((v == null ? void 0 : v.label) ?? "").toLocaleLowerCase() !== B.toLocaleLowerCase() && N(), f().onBlur && ((t = (l = f()).onBlur) == null || t.call(l, e));
118
- };
119
- return /* @__PURE__ */ g(H.Root, { open: T, children: [
120
- /* @__PURE__ */ n(H.Anchor, { asChild: !0, children: /* @__PURE__ */ g(
121
- "div",
122
- {
123
- ref: U,
124
- className: c.root,
125
- "data-status": F ? "error" : p,
126
- "data-disabled": b,
127
- "data-empty": i.length === 0,
128
- children: [
129
- o ? /* @__PURE__ */ g(ue, { children: [
130
- /* @__PURE__ */ n("span", { id: L, className: c.srOnly, children: O }),
131
- /* @__PURE__ */ n(
132
- Se,
133
- {
134
- items: te,
135
- onDismiss: ce,
136
- selectedCount: i.length,
137
- children: /* @__PURE__ */ n(
138
- "input",
139
- {
140
- ...f({
141
- ref: W,
142
- "aria-label": "aria-label" in a ? a["aria-label"] : void 0,
143
- // Remove auto-generated aria-labelledby if not explicitly provided
144
- "aria-labelledby": "aria-labelledby" in a && a["aria-labelledby"] ? a["aria-labelledby"] : void 0,
145
- "aria-describedby": O ? L : void 0
146
- }),
147
- "data-test-id": d,
148
- placeholder: i.length === 0 ? x : "",
149
- className: c.multiSelectInput,
150
- disabled: b,
151
- onMouseDown: D,
152
- onFocus: R,
153
- onBlur: P
154
- }
155
- )
156
- }
157
- )
158
- ] }) : /* @__PURE__ */ n(
159
- "input",
160
- {
161
- ...f({
162
- "aria-label": "aria-label" in a ? a["aria-label"] : void 0,
163
- // Remove auto-generated aria-labelledby if not explicitly provided
164
- "aria-labelledby": "aria-labelledby" in a && a["aria-labelledby"] ? a["aria-labelledby"] : void 0
165
- }),
166
- "data-test-id": d,
167
- placeholder: x,
168
- className: c.input,
169
- disabled: b,
170
- onMouseDown: D,
171
- onFocus: R,
172
- onBlur: P
173
- }
174
- ),
175
- Y,
176
- S ? /* @__PURE__ */ n(xe, { onClear: de, children: S }) : null,
177
- w.isLoading && T ? /* @__PURE__ */ n(De, { name: "right", "data-test-id": `${d}-right-slot`, children: /* @__PURE__ */ n(pe, { size: "x-small", "data-test-id": `${d}-loading-circle` }) }) : null,
178
- /* @__PURE__ */ g("div", { className: c.icons, children: [
179
- /* @__PURE__ */ n(
180
- "button",
181
- {
182
- "aria-label": X("Select_toggleMenu"),
183
- ...ie(),
184
- type: "button",
185
- disabled: b,
186
- onMouseDown: () => {
187
- V.current = !0;
188
- },
189
- children: /* @__PURE__ */ n(me, { size: 16, className: c.caret })
190
- }
191
- ),
192
- /* @__PURE__ */ n(Re, { status: p, hasError: F, dataTestId: d })
193
- ] })
194
- ]
195
- }
196
- ) }),
197
- /* @__PURE__ */ n(
198
- we,
199
- {
200
- align: _,
201
- side: q,
202
- highlightedIndex: se,
203
- filterText: A,
204
- getMenuProps: le,
205
- getItemProps: re,
206
- selectedItemValues: i,
207
- hasInteractedSinceOpening: ae,
208
- viewportCollisionPadding: J,
209
- onEscapeKeyDown: Q,
210
- children: Z
211
- }
212
- )
213
- ] });
1
+ const t = "_root_2ej9d_5", o = "_thumb_2ej9d_62", s = {
2
+ root: t,
3
+ thumb: o
214
4
  };
215
- z.displayName = "Select.Combobox";
216
- const Qe = be(z);
217
5
  export {
218
- Qe as ComboboxBase
6
+ s as default,
7
+ t as root,
8
+ o as thumb
219
9
  };
220
10
  //# sourceMappingURL=fondue-components98.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components98.js","sources":["../src/components/Select/components/ComboboxBase.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCaretDown } from '@frontify/fondue-icons';\nimport * as RadixPopover from '@radix-ui/react-popover';\nimport { useCombobox, useMultipleSelection } from 'downshift';\nimport {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type ForwardedRef,\n type ReactNode,\n} from 'react';\n\nimport { LoadingCircle } from '#/components/LoadingCircle/LoadingCircle.tsx';\nimport { type CommonAriaProps } from '#/helpers/aria';\nimport { useTranslation } from '#/hooks/useTranslation';\n\nimport { useBadgeItems } from '../hooks/useBadgeItems';\nimport { useFocusRing } from '../hooks/useFocusRing';\nimport { useSelectData, type AsyncItemsFetcher } from '../hooks/useSelectData';\nimport { useSelectionDescription } from '../hooks/useSelectionDescription';\nimport styles from '../styles/select.module.scss';\n\nimport { ClearButton } from './ClearButton';\nimport { CollapsibleBadges } from './CollapsibleBadges';\nimport { SelectMenu, type SelectMenuViewportCollisionPadding } from './SelectMenu';\nimport { ForwardedRefSelectSlot } from './SelectSlot';\nimport { StatusIcons } from './StatusIcons';\n\ntype SelectItem = {\n value: string;\n label: string;\n children?: ReactNode;\n};\n\nexport type ComboboxSharedProps = {\n /**\n * Children of the Combobox component. This can contain the `Select.Slot` components for the label, decorators, clear action and menu\n */\n children?: ReactNode;\n /**\n * The placeholder in the combobox component\n */\n placeholder?: string;\n /**\n * Status of the text input\n * @default \"neutral\"\n */\n status?: 'neutral' | 'success' | 'error';\n /**\n * Disables the combobox component\n */\n disabled?: boolean;\n /**\n * The alignment of the menu\n * @default \"start\"\n */\n alignMenu?: 'start' | 'center' | 'end';\n /**\n * Defines the preferred side of the combobox. It will not be respected if there are collisions with the viewport\n * @default \"bottom\"\n */\n side?: 'left' | 'right' | 'bottom' | 'top';\n /**\n * Id of the combobox component\n */\n id?: string;\n /**\n * The data test id of the combobox component\n */\n 'data-test-id'?: string;\n /**\n * Define the minimum distance between the select menu and the viewport edge\n * @default 'compact'\n */\n viewportCollisionPadding?: SelectMenuViewportCollisionPadding;\n /**\n * Function to fetch items asynchronously\n */\n getAsyncItems?: AsyncItemsFetcher;\n /**\n * Event handler called when the escape key is pressed\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n} & CommonAriaProps;\n\ntype ComboboxBaseProps = ComboboxSharedProps & {\n /**\n * The currently selected item values\n */\n selectedItemValues: string[];\n /**\n * Callback fired when an item is selected or deselected\n */\n onItemSelect: (value?: string) => void;\n /**\n * Callback fired when the selection is cleared\n */\n onClear: () => void;\n /**\n * Whether the combobox allows multiple selections\n */\n multiple: boolean;\n};\n\nconst ComboboxBaseInput = (\n {\n children,\n selectedItemValues,\n onItemSelect,\n onClear,\n placeholder = '',\n status = 'neutral',\n disabled,\n 'data-test-id': dataTestId = 'fondue-select-combobox',\n alignMenu = 'start',\n side = 'bottom',\n id,\n viewportCollisionPadding = 'compact',\n getAsyncItems,\n onEscapeKeyDown,\n multiple,\n ...props\n }: ComboboxBaseProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): ReactNode => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const inputCallbackRef = useCallback((node: HTMLInputElement | null): void => {\n inputRef.current = node;\n }, []);\n const { t } = useTranslation();\n const { inputSlots, menuSlots, items, filterText, clearButton, getItemByValue, setFilterText, asyncItemStatus } =\n useSelectData(children, getAsyncItems);\n const { wasClickedRef, onMouseDown, onFocus, onBlur } = useFocusRing();\n const { selectionDescriptionId, selectionDescription } = useSelectionDescription(\n multiple,\n selectedItemValues,\n getItemByValue,\n );\n const badgeItems = useBadgeItems(selectedItemValues, getItemByValue);\n\n const [hasInteractedSinceOpening, setHasInteractedSinceOpening] = useState(false);\n\n const selectedItems = useMemo((): SelectItem[] => {\n return selectedItemValues\n .map((value) => getItemByValue(value))\n .filter((item): item is SelectItem => item !== undefined && 'value' in item && 'label' in item);\n }, [selectedItemValues, getItemByValue]);\n\n const multipleSelectionResult = useMultipleSelection<SelectItem>(\n multiple\n ? {\n selectedItems,\n onStateChange({ selectedItems: newSelectedItems, type }) {\n if (type === useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace) {\n const removedItem = selectedItems.find((item) => !newSelectedItems?.includes(item));\n if (removedItem) {\n onItemSelect(removedItem.value);\n }\n }\n },\n }\n : { selectedItems: [] },\n );\n const removeSelectedItem = multiple ? multipleSelectionResult.removeSelectedItem : (): void => {};\n\n const {\n getInputProps,\n getToggleButtonProps,\n getMenuProps,\n getItemProps,\n reset,\n selectedItem,\n isOpen,\n highlightedIndex,\n inputValue,\n } = useCombobox<SelectItem>({\n items,\n selectedItem: multiple ? null : (getItemByValue(selectedItemValues[0]) as SelectItem | null | undefined),\n defaultHighlightedIndex: 0,\n toggleButtonId: id,\n // Only set labelId if aria-labelledby is explicitly provided, otherwise downshift generates an orphan ID\n ...('aria-labelledby' in props && props['aria-labelledby'] ? { labelId: props['aria-labelledby'] } : {}),\n onSelectedItemChange: ({ selectedItem }) => {\n if (selectedItem) {\n onItemSelect(selectedItem.value);\n }\n if (multiple) {\n setFilterText('');\n }\n },\n onInputValueChange: ({ inputValue }) => {\n setFilterText(inputValue);\n },\n onIsOpenChange: () => {\n setHasInteractedSinceOpening(false);\n setFilterText('');\n },\n onHighlightedIndexChange: () => {\n setHasInteractedSinceOpening(true);\n },\n itemToString: (item) => (item ? item.label : ''),\n stateReducer: (state, actionAndChanges) => {\n const { changes, type } = actionAndChanges;\n if (multiple) {\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return {\n ...changes,\n isOpen: true,\n highlightedIndex: state.highlightedIndex,\n inputValue: '',\n };\n case useCombobox.stateChangeTypes.InputBlur:\n // Select item on blur (Tab key) but clear the input\n return {\n ...changes,\n inputValue: '',\n };\n }\n } else {\n // For single select, handle re-selection of the same item\n // onSelectedItemChange doesn't fire when selecting the same item, so we call onItemSelect here\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n if (\n changes.selectedItem &&\n state.selectedItem &&\n changes.selectedItem.value === state.selectedItem.value\n ) {\n onItemSelect(changes.selectedItem.value);\n }\n break;\n }\n }\n return changes;\n },\n });\n\n const valueInvalid = useMemo(() => {\n if (multiple) {\n return false;\n }\n return !getAsyncItems && !items.find((item) => item.label.toLowerCase().includes(inputValue.toLowerCase()));\n }, [inputValue, items, getAsyncItems, multiple]);\n\n const hasError = valueInvalid || !!asyncItemStatus.error || status === 'error';\n\n const handleDismissBadge = (value: string, preventFocusRing: boolean): void => {\n const item = getItemByValue(value) as SelectItem | undefined;\n if (item) {\n removeSelectedItem(item);\n onItemSelect(value);\n if (inputRef.current) {\n inputRef.current.focus();\n if (preventFocusRing) {\n inputRef.current.dataset.showFocusRing = 'false';\n }\n }\n }\n };\n\n const handleClear = (): void => {\n onClear();\n reset();\n };\n\n const handleBlur = (blurEvent: FocusEvent<HTMLInputElement, Element>): void => {\n onBlur(blurEvent);\n\n if (!multiple) {\n const selectedItemLabel = selectedItem?.label ?? '';\n const isOutdated = selectedItemLabel.toLocaleLowerCase() !== inputValue.toLocaleLowerCase();\n\n if (isOutdated) {\n reset();\n }\n }\n\n if (getInputProps().onBlur) {\n getInputProps().onBlur?.(blurEvent);\n }\n };\n\n return (\n <RadixPopover.Root open={isOpen}>\n <RadixPopover.Anchor asChild>\n <div\n ref={forwardedRef}\n className={styles.root}\n data-status={hasError ? 'error' : status}\n data-disabled={disabled}\n data-empty={selectedItemValues.length === 0}\n >\n {multiple ? (\n <>\n {/* Hidden description for screen readers - announced on focus */}\n <span id={selectionDescriptionId} className={styles.srOnly}>\n {selectionDescription}\n </span>\n <CollapsibleBadges\n items={badgeItems}\n onDismiss={handleDismissBadge}\n selectedCount={selectedItemValues.length}\n >\n <input\n // eslint-disable-next-line react-hooks/refs\n {...getInputProps({\n ref: inputCallbackRef,\n 'aria-label': 'aria-label' in props ? props['aria-label'] : undefined,\n // Remove auto-generated aria-labelledby if not explicitly provided\n 'aria-labelledby':\n 'aria-labelledby' in props && props['aria-labelledby']\n ? props['aria-labelledby']\n : undefined,\n 'aria-describedby': selectionDescription ? selectionDescriptionId : undefined,\n })}\n data-test-id={dataTestId}\n placeholder={selectedItemValues.length === 0 ? placeholder : ''}\n className={styles.multiSelectInput}\n disabled={disabled}\n onMouseDown={onMouseDown}\n onFocus={onFocus}\n onBlur={handleBlur}\n />\n </CollapsibleBadges>\n </>\n ) : (\n <input\n {...getInputProps({\n 'aria-label': 'aria-label' in props ? props['aria-label'] : undefined,\n // Remove auto-generated aria-labelledby if not explicitly provided\n 'aria-labelledby':\n 'aria-labelledby' in props && props['aria-labelledby']\n ? props['aria-labelledby']\n : undefined,\n })}\n data-test-id={dataTestId}\n placeholder={placeholder}\n className={styles.input}\n disabled={disabled}\n onMouseDown={onMouseDown}\n onFocus={onFocus}\n onBlur={handleBlur}\n />\n )}\n {inputSlots}\n {clearButton ? <ClearButton onClear={handleClear}>{clearButton}</ClearButton> : null}\n {asyncItemStatus.isLoading && isOpen ? (\n <ForwardedRefSelectSlot name=\"right\" data-test-id={`${dataTestId}-right-slot`}>\n <LoadingCircle size=\"x-small\" data-test-id={`${dataTestId}-loading-circle`} />\n </ForwardedRefSelectSlot>\n ) : null}\n <div className={styles.icons}>\n <button\n aria-label={t('Select_toggleMenu')}\n {...getToggleButtonProps()}\n type=\"button\"\n disabled={disabled}\n onMouseDown={() => {\n wasClickedRef.current = true;\n }}\n >\n <IconCaretDown size={16} className={styles.caret} />\n </button>\n <StatusIcons status={status} hasError={hasError} dataTestId={dataTestId} />\n </div>\n </div>\n </RadixPopover.Anchor>\n\n <SelectMenu\n align={alignMenu}\n side={side}\n highlightedIndex={highlightedIndex}\n filterText={filterText}\n getMenuProps={getMenuProps}\n getItemProps={getItemProps}\n selectedItemValues={selectedItemValues}\n hasInteractedSinceOpening={hasInteractedSinceOpening}\n viewportCollisionPadding={viewportCollisionPadding}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {menuSlots}\n </SelectMenu>\n </RadixPopover.Root>\n );\n};\nComboboxBaseInput.displayName = 'Select.Combobox';\n\nexport const ComboboxBase = forwardRef<HTMLDivElement, ComboboxBaseProps>(ComboboxBaseInput);\n"],"names":["ComboboxBaseInput","children","selectedItemValues","onItemSelect","onClear","placeholder","status","disabled","dataTestId","alignMenu","side","id","viewportCollisionPadding","getAsyncItems","onEscapeKeyDown","multiple","props","forwardedRef","inputRef","useRef","inputCallbackRef","useCallback","node","t","useTranslation","inputSlots","menuSlots","items","filterText","clearButton","getItemByValue","setFilterText","asyncItemStatus","useSelectData","wasClickedRef","onMouseDown","onFocus","onBlur","useFocusRing","selectionDescriptionId","selectionDescription","useSelectionDescription","badgeItems","useBadgeItems","hasInteractedSinceOpening","setHasInteractedSinceOpening","useState","selectedItems","useMemo","value","item","multipleSelectionResult","useMultipleSelection","newSelectedItems","type","removedItem","removeSelectedItem","getInputProps","getToggleButtonProps","getMenuProps","getItemProps","reset","selectedItem","isOpen","highlightedIndex","inputValue","useCombobox","state","actionAndChanges","changes","hasError","handleDismissBadge","preventFocusRing","handleClear","handleBlur","blurEvent","_b","_a","jsxs","RadixPopover","jsx","styles","Fragment","CollapsibleBadges","ClearButton","ForwardedRefSelectSlot","LoadingCircle","IconCaretDown","StatusIcons","SelectMenu","ComboboxBase","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;AA4GA,MAAMA,IAAoB,CACtB;AAAA,EACI,UAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,gBAAgBC,IAAa;AAAA,EAC7B,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,IAAAC;AAAA,EACA,0BAAAC,IAA2B;AAAA,EAC3B,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACP,GACAC,MACY;AACZ,QAAMC,IAAWC,GAAgC,IAAI,GAC/CC,IAAmBC,GAAY,CAACC,MAAwC;AAC1E,IAAAJ,EAAS,UAAUI;AAAA,EACvB,GAAG,CAAA,CAAE,GACC,EAAE,GAAAC,EAAA,IAAMC,GAAA,GACR,EAAE,YAAAC,GAAY,WAAAC,GAAW,OAAAC,GAAO,YAAAC,GAAY,aAAAC,GAAa,gBAAAC,GAAgB,eAAAC,GAAe,iBAAAC,EAAA,IAC1FC,GAAchC,GAAUY,CAAa,GACnC,EAAE,eAAAqB,GAAe,aAAAC,GAAa,SAAAC,GAAS,QAAAC,GAAA,IAAWC,GAAA,GAClD,EAAE,wBAAAC,GAAwB,sBAAAC,EAAA,IAAyBC;AAAA,IACrD1B;AAAA,IACAb;AAAA,IACA4B;AAAA,EAAA,GAEEY,KAAaC,GAAczC,GAAoB4B,CAAc,GAE7D,CAACc,IAA2BC,CAA4B,IAAIC,GAAS,EAAK,GAE1EC,IAAgBC,EAAQ,MACnB9C,EACF,IAAI,CAAC+C,MAAUnB,EAAemB,CAAK,CAAC,EACpC,OAAO,CAACC,MAA6BA,MAAS,UAAa,WAAWA,KAAQ,WAAWA,CAAI,GACnG,CAAChD,GAAoB4B,CAAc,CAAC,GAEjCqB,KAA0BC;AAAA,IAC5BrC,IACM;AAAA,MACI,eAAAgC;AAAA,MACA,cAAc,EAAE,eAAeM,GAAkB,MAAAC,KAAQ;AACrD,YAAIA,MAASF,EAAqB,iBAAiB,8BAA8B;AAC7E,gBAAMG,IAAcR,EAAc,KAAK,CAACG,MAAS,EAACG,KAAA,QAAAA,EAAkB,SAASH,GAAK;AAClF,UAAIK,KACApD,EAAaoD,EAAY,KAAK;AAAA,QAEtC;AAAA,MACJ;AAAA,IAAA,IAEJ,EAAE,eAAe,CAAA,EAAC;AAAA,EAAE,GAExBC,KAAqBzC,IAAWoC,GAAwB,qBAAqB,MAAY;AAAA,EAAC,GAE1F;AAAA,IACF,eAAAM;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,IACAC,EAAwB;AAAA,IACxB,OAAAvC;AAAA,IACA,cAAcZ,IAAW,OAAQe,EAAe5B,EAAmB,CAAC,CAAC;AAAA,IACrE,yBAAyB;AAAA,IACzB,gBAAgBS;AAAA;AAAA,IAEhB,GAAI,qBAAqBK,KAASA,EAAM,iBAAiB,IAAI,EAAE,SAASA,EAAM,iBAAiB,EAAA,IAAM,CAAA;AAAA,IACrG,sBAAsB,CAAC,EAAE,cAAA8C,QAAmB;AACxC,MAAIA,KACA3D,EAAa2D,EAAa,KAAK,GAE/B/C,KACAgB,EAAc,EAAE;AAAA,IAExB;AAAA,IACA,oBAAoB,CAAC,EAAE,YAAAkC,QAAiB;AACpC,MAAAlC,EAAckC,CAAU;AAAA,IAC5B;AAAA,IACA,gBAAgB,MAAM;AAClB,MAAApB,EAA6B,EAAK,GAClCd,EAAc,EAAE;AAAA,IACpB;AAAA,IACA,0BAA0B,MAAM;AAC5B,MAAAc,EAA6B,EAAI;AAAA,IACrC;AAAA,IACA,cAAc,CAACK,MAAUA,IAAOA,EAAK,QAAQ;AAAA,IAC7C,cAAc,CAACiB,GAAOC,MAAqB;AACvC,YAAM,EAAE,SAAAC,GAAS,MAAAf,EAAA,IAASc;AAC1B,UAAIrD;AACA,gBAAQuC,GAAA;AAAA,UACJ,KAAKY,EAAY,iBAAiB;AAAA,UAClC,KAAKA,EAAY,iBAAiB;AAC9B,mBAAO;AAAA,cACH,GAAGG;AAAA,cACH,QAAQ;AAAA,cACR,kBAAkBF,EAAM;AAAA,cACxB,YAAY;AAAA,YAAA;AAAA,UAEpB,KAAKD,EAAY,iBAAiB;AAE9B,mBAAO;AAAA,cACH,GAAGG;AAAA,cACH,YAAY;AAAA,YAAA;AAAA,QAChB;AAAA;AAKR,gBAAQf,GAAA;AAAA,UACJ,KAAKY,EAAY,iBAAiB;AAAA,UAClC,KAAKA,EAAY,iBAAiB;AAC9B,YACIG,EAAQ,gBACRF,EAAM,gBACNE,EAAQ,aAAa,UAAUF,EAAM,aAAa,SAElDhE,EAAakE,EAAQ,aAAa,KAAK;AAE3C;AAAA,QAAA;AAGZ,aAAOA;AAAA,IACX;AAAA,EAAA,CACH,GASKC,IAPetB,EAAQ,MACrBjC,IACO,KAEJ,CAACF,KAAiB,CAACc,EAAM,KAAK,CAACuB,MAASA,EAAK,MAAM,cAAc,SAASe,EAAW,YAAA,CAAa,CAAC,GAC3G,CAACA,GAAYtC,GAAOd,GAAeE,CAAQ,CAAC,KAEd,CAAC,CAACiB,EAAgB,SAAS1B,MAAW,SAEjEiE,KAAqB,CAACtB,GAAeuB,MAAoC;AAC3E,UAAMtB,IAAOpB,EAAemB,CAAK;AACjC,IAAIC,MACAM,GAAmBN,CAAI,GACvB/C,EAAa8C,CAAK,GACd/B,EAAS,YACTA,EAAS,QAAQ,MAAA,GACbsD,MACAtD,EAAS,QAAQ,QAAQ,gBAAgB;AAAA,EAIzD,GAEMuD,KAAc,MAAY;AAC5B,IAAArE,EAAA,GACAyD,EAAA;AAAA,EACJ,GAEMa,IAAa,CAACC,MAA2D;;AAC3E,IAAAtC,GAAOsC,CAAS,GAEX5D,OACyB+C,KAAA,gBAAAA,EAAc,UAAS,IACZ,kBAAA,MAAwBG,EAAW,kBAAA,KAGpEJ,EAAA,GAIJJ,EAAA,EAAgB,YAChBmB,KAAAC,IAAApB,EAAA,GAAgB,WAAhB,QAAAmB,EAAA,KAAAC,GAAyBF;AAAA,EAEjC;AAEA,SACI,gBAAAG,EAACC,EAAa,MAAb,EAAkB,MAAMhB,GACrB,UAAA;AAAA,IAAA,gBAAAiB,EAACD,EAAa,QAAb,EAAoB,SAAO,IACxB,UAAA,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,KAAK7D;AAAA,QACL,WAAWgE,EAAO;AAAA,QAClB,eAAaX,IAAW,UAAUhE;AAAA,QAClC,iBAAeC;AAAA,QACf,cAAYL,EAAmB,WAAW;AAAA,QAEzC,UAAA;AAAA,UAAAa,IACG,gBAAA+D,EAAAI,IAAA,EAEI,UAAA;AAAA,YAAA,gBAAAF,EAAC,UAAK,IAAIzC,GAAwB,WAAW0C,EAAO,QAC/C,UAAAzC,GACL;AAAA,YACA,gBAAAwC;AAAA,cAACG;AAAA,cAAA;AAAA,gBACG,OAAOzC;AAAA,gBACP,WAAW6B;AAAA,gBACX,eAAerE,EAAmB;AAAA,gBAElC,UAAA,gBAAA8E;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEI,GAAGvB,EAAc;AAAA,sBACd,KAAKrC;AAAA,sBACL,cAAc,gBAAgBJ,IAAQA,EAAM,YAAY,IAAI;AAAA;AAAA,sBAE5D,mBACI,qBAAqBA,KAASA,EAAM,iBAAiB,IAC/CA,EAAM,iBAAiB,IACvB;AAAA,sBACV,oBAAoBwB,IAAuBD,IAAyB;AAAA,oBAAA,CACvE;AAAA,oBACD,gBAAc/B;AAAA,oBACd,aAAaN,EAAmB,WAAW,IAAIG,IAAc;AAAA,oBAC7D,WAAW4E,EAAO;AAAA,oBAClB,UAAA1E;AAAA,oBACA,aAAA4B;AAAA,oBACA,SAAAC;AAAA,oBACA,QAAQsC;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACZ;AAAA,YAAA;AAAA,UACJ,EAAA,CACJ,IAEA,gBAAAM;AAAA,YAAC;AAAA,YAAA;AAAA,cACI,GAAGvB,EAAc;AAAA,gBACd,cAAc,gBAAgBzC,IAAQA,EAAM,YAAY,IAAI;AAAA;AAAA,gBAE5D,mBACI,qBAAqBA,KAASA,EAAM,iBAAiB,IAC/CA,EAAM,iBAAiB,IACvB;AAAA,cAAA,CACb;AAAA,cACD,gBAAcR;AAAA,cACd,aAAAH;AAAA,cACA,WAAW4E,EAAO;AAAA,cAClB,UAAA1E;AAAA,cACA,aAAA4B;AAAA,cACA,SAAAC;AAAA,cACA,QAAQsC;AAAA,YAAA;AAAA,UAAA;AAAA,UAGfjD;AAAA,UACAI,IAAc,gBAAAmD,EAACI,IAAA,EAAY,SAASX,IAAc,aAAY,IAAiB;AAAA,UAC/EzC,EAAgB,aAAa+B,IAC1B,gBAAAiB,EAACK,MAAuB,MAAK,SAAQ,gBAAc,GAAG7E,CAAU,eAC5D,UAAA,gBAAAwE,EAACM,IAAA,EAAc,MAAK,WAAU,gBAAc,GAAG9E,CAAU,mBAAmB,GAChF,IACA;AAAA,UACJ,gBAAAsE,EAAC,OAAA,EAAI,WAAWG,EAAO,OACnB,UAAA;AAAA,YAAA,gBAAAD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACG,cAAYzD,EAAE,mBAAmB;AAAA,gBAChC,GAAGmC,GAAA;AAAA,gBACJ,MAAK;AAAA,gBACL,UAAAnD;AAAA,gBACA,aAAa,MAAM;AACf,kBAAA2B,EAAc,UAAU;AAAA,gBAC5B;AAAA,gBAEA,4BAACqD,IAAA,EAAc,MAAM,IAAI,WAAWN,EAAO,MAAA,CAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YAEtD,gBAAAD,EAACQ,IAAA,EAAY,QAAAlF,GAAgB,UAAAgE,GAAoB,YAAA9D,EAAA,CAAwB;AAAA,UAAA,EAAA,CAC7E;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAER;AAAA,IAEA,gBAAAwE;AAAA,MAACS;AAAA,MAAA;AAAA,QACG,OAAOhF;AAAA,QACP,MAAAC;AAAA,QACA,kBAAAsD;AAAA,QACA,YAAApC;AAAA,QACA,cAAA+B;AAAA,QACA,cAAAC;AAAA,QACA,oBAAA1D;AAAA,QACA,2BAAA0C;AAAA,QACA,0BAAAhC;AAAA,QACA,iBAAAE;AAAA,QAEC,UAAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,GACJ;AAER;AACA1B,EAAkB,cAAc;AAEzB,MAAM0F,KAAeC,GAA8C3F,CAAiB;"}
1
+ {"version":3,"file":"fondue-components98.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,22 +1,16 @@
1
- import { useState as f } from "react";
2
- const I = (i, l, r) => {
3
- const [d, n] = f(r ?? []), e = l ?? d, s = (t) => {
4
- l || n(t), i == null || i(t);
5
- };
6
- return {
7
- selectedItemValues: e,
8
- toggleSelectedItem: (t) => {
9
- if (t === void 0)
10
- return;
11
- const c = e.findIndex((o) => t === o);
12
- c > 0 ? s([...e.slice(0, c), ...e.slice(c + 1)]) : s(c === 0 ? [...e.slice(1)] : [...e, t]);
13
- },
14
- clear: () => {
15
- s([]);
16
- }
17
- };
1
+ import { useEffect as c } from "react";
2
+ const s = (t) => {
3
+ c(() => {
4
+ if (!t.current)
5
+ return;
6
+ const e = t.current, n = new ResizeObserver(() => {
7
+ const r = e.scrollWidth > e.clientWidth;
8
+ e.title = r && e.textContent || "";
9
+ });
10
+ return n.observe(e), () => n.disconnect();
11
+ }, [t]);
18
12
  };
19
13
  export {
20
- I as useMultiselect
14
+ s as useTextTruncation
21
15
  };
22
16
  //# sourceMappingURL=fondue-components99.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components99.js","sources":["../src/components/Select/hooks/useMultiselect.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useState } from 'react';\n\nexport const useMultiselect = (\n onSelect?: (value: string[] | null) => void,\n value?: string[] | null,\n defaultValue?: string[],\n) => {\n const [selectedItemsState, setSelectedItemsState] = useState<string[]>(defaultValue ?? []);\n\n const selectedItemValues = value ?? selectedItemsState;\n const setSelectedItems = (items: string[]) => {\n if (!value) {\n setSelectedItemsState(items);\n }\n onSelect?.(items);\n };\n\n const toggleSelectedItem = (toggledItem?: string) => {\n if (toggledItem === undefined) {\n return;\n }\n const index = selectedItemValues.findIndex((selectedItemValue) => toggledItem === selectedItemValue);\n if (index > 0) {\n setSelectedItems([...selectedItemValues.slice(0, index), ...selectedItemValues.slice(index + 1)]);\n } else if (index === 0) {\n setSelectedItems([...selectedItemValues.slice(1)]);\n } else {\n setSelectedItems([...selectedItemValues, toggledItem]);\n }\n };\n\n const clear = () => {\n setSelectedItems([]);\n };\n\n return {\n selectedItemValues,\n toggleSelectedItem,\n clear,\n };\n};\n"],"names":["useMultiselect","onSelect","value","defaultValue","selectedItemsState","setSelectedItemsState","useState","selectedItemValues","setSelectedItems","items","toggledItem","index","selectedItemValue"],"mappings":";AAIO,MAAMA,IAAiB,CAC1BC,GACAC,GACAC,MACC;AACD,QAAM,CAACC,GAAoBC,CAAqB,IAAIC,EAAmBH,KAAgB,CAAA,CAAE,GAEnFI,IAAqBL,KAASE,GAC9BI,IAAmB,CAACC,MAAoB;AAC1C,IAAKP,KACDG,EAAsBI,CAAK,GAE/BR,KAAA,QAAAA,EAAWQ;AAAA,EACf;AAoBA,SAAO;AAAA,IACH,oBAAAF;AAAA,IACA,oBApBuB,CAACG,MAAyB;AACjD,UAAIA,MAAgB;AAChB;AAEJ,YAAMC,IAAQJ,EAAmB,UAAU,CAACK,MAAsBF,MAAgBE,CAAiB;AACnG,MAAID,IAAQ,IACRH,EAAiB,CAAC,GAAGD,EAAmB,MAAM,GAAGI,CAAK,GAAG,GAAGJ,EAAmB,MAAMI,IAAQ,CAAC,CAAC,CAAC,IAEhGH,EADOG,MAAU,IACA,CAAC,GAAGJ,EAAmB,MAAM,CAAC,CAAC,IAE/B,CAAC,GAAGA,GAAoBG,CAAW,CAFH;AAAA,IAIzD;AAAA,IASI,OAPU,MAAM;AAChB,MAAAF,EAAiB,CAAA,CAAE;AAAA,IACvB;AAAA,EAKI;AAER;"}
1
+ {"version":3,"file":"fondue-components99.js","sources":["../src/hooks/useTextTruncation.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useEffect, type RefObject } from 'react';\n\n/**\n * A custom React hook that automatically manages text truncation and tooltips.\n * It observes the element's size and adds a title attribute with the full text\n * when the content is truncated.\n *\n * @param {RefObject<HTMLElement>} ref - Reference to the HTML element to observe for truncation.\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * const textRef = useRef<HTMLDivElement>(null);\n * useTextTruncation(textRef);\n *\n * return <div ref={textRef} className=\"truncate\">Long text content...</div>;\n * });\n * ```\n */\nexport const useTextTruncation = (ref: RefObject<HTMLElement>) => {\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const element = ref.current;\n const observer = new ResizeObserver(() => {\n const isTruncated = element.scrollWidth > element.clientWidth;\n element.title = isTruncated ? element.textContent || '' : '';\n });\n\n observer.observe(element);\n return () => observer.disconnect();\n }, [ref]);\n};\n"],"names":["useTextTruncation","ref","useEffect","element","observer","isTruncated"],"mappings":";AAqBO,MAAMA,IAAoB,CAACC,MAAgC;AAC9D,EAAAC,EAAU,MAAM;AACZ,QAAI,CAACD,EAAI;AACL;AAGJ,UAAME,IAAUF,EAAI,SACdG,IAAW,IAAI,eAAe,MAAM;AACtC,YAAMC,IAAcF,EAAQ,cAAcA,EAAQ;AAClD,MAAAA,EAAQ,QAAQE,KAAcF,EAAQ,eAAe;AAAA,IACzD,CAAC;AAED,WAAAC,EAAS,QAAQD,CAAO,GACjB,MAAMC,EAAS,WAAA;AAAA,EAC1B,GAAG,CAACH,CAAG,CAAC;AACZ;"}