@intlayer/design-system 8.1.2 → 8.1.3

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 (828) hide show
  1. package/dist/esm/_virtual/_rolldown/runtime.mjs +1 -18
  2. package/dist/esm/components/Accordion/Accordion.mjs +1 -99
  3. package/dist/esm/components/Accordion/Accordion.mjs.map +1 -1
  4. package/dist/esm/components/Accordion/index.mjs +1 -3
  5. package/dist/esm/components/Avatar/index.mjs +1 -126
  6. package/dist/esm/components/Avatar/index.mjs.map +1 -1
  7. package/dist/esm/components/Badge/index.mjs +1 -150
  8. package/dist/esm/components/Badge/index.mjs.map +1 -1
  9. package/dist/esm/components/Breadcrumb/breadcrumb.content.mjs +1 -32
  10. package/dist/esm/components/Breadcrumb/breadcrumb.content.mjs.map +1 -1
  11. package/dist/esm/components/Breadcrumb/index.mjs +1 -232
  12. package/dist/esm/components/Breadcrumb/index.mjs.map +1 -1
  13. package/dist/esm/components/Browser/Browser.content.mjs +1 -179
  14. package/dist/esm/components/Browser/Browser.content.mjs.map +1 -1
  15. package/dist/esm/components/Browser/Browser.mjs +1 -249
  16. package/dist/esm/components/Browser/Browser.mjs.map +1 -1
  17. package/dist/esm/components/Browser/index.mjs +1 -3
  18. package/dist/esm/components/Button/Button.mjs +1 -287
  19. package/dist/esm/components/Button/Button.mjs.map +1 -1
  20. package/dist/esm/components/Button/index.mjs +1 -3
  21. package/dist/esm/components/Carousel/index.content.mjs +1 -79
  22. package/dist/esm/components/Carousel/index.content.mjs.map +1 -1
  23. package/dist/esm/components/Carousel/index.mjs +4 -270
  24. package/dist/esm/components/Carousel/index.mjs.map +1 -1
  25. package/dist/esm/components/ClickOutsideDiv/index.mjs +1 -42
  26. package/dist/esm/components/ClickOutsideDiv/index.mjs.map +1 -1
  27. package/dist/esm/components/CollapsibleTable/CollapsibleTable.mjs +1 -246
  28. package/dist/esm/components/CollapsibleTable/CollapsibleTable.mjs.map +1 -1
  29. package/dist/esm/components/CollapsibleTable/index.mjs +1 -3
  30. package/dist/esm/components/Command/index.mjs +1 -88
  31. package/dist/esm/components/Command/index.mjs.map +1 -1
  32. package/dist/esm/components/Container/index.mjs +1 -203
  33. package/dist/esm/components/Container/index.mjs.map +1 -1
  34. package/dist/esm/components/ContentEditor/ContentEditor.mjs +1 -107
  35. package/dist/esm/components/ContentEditor/ContentEditor.mjs.map +1 -1
  36. package/dist/esm/components/ContentEditor/ContentEditorInput.mjs +1 -110
  37. package/dist/esm/components/ContentEditor/ContentEditorInput.mjs.map +1 -1
  38. package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs +1 -113
  39. package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs.map +1 -1
  40. package/dist/esm/components/ContentEditor/index.mjs +1 -5
  41. package/dist/esm/components/ContentSelector/ContentSelector.mjs +1 -81
  42. package/dist/esm/components/ContentSelector/ContentSelector.mjs.map +1 -1
  43. package/dist/esm/components/ContentSelector/index.mjs +1 -3
  44. package/dist/esm/components/CopyButton/CopyButton.content.mjs +1 -32
  45. package/dist/esm/components/CopyButton/CopyButton.content.mjs.map +1 -1
  46. package/dist/esm/components/CopyButton/index.mjs +1 -121
  47. package/dist/esm/components/CopyButton/index.mjs.map +1 -1
  48. package/dist/esm/components/CopyToClipboard/index.mjs +1 -101
  49. package/dist/esm/components/CopyToClipboard/index.mjs.map +1 -1
  50. package/dist/esm/components/DictionaryEditor/DictionaryEditor.mjs +1 -31
  51. package/dist/esm/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
  52. package/dist/esm/components/DictionaryEditor/ItemLayout.mjs +1 -36
  53. package/dist/esm/components/DictionaryEditor/ItemLayout.mjs.map +1 -1
  54. package/dist/esm/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs +1 -35
  55. package/dist/esm/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs.map +1 -1
  56. package/dist/esm/components/DictionaryEditor/NodeWrapper/ConditionWrapper.mjs +1 -32
  57. package/dist/esm/components/DictionaryEditor/NodeWrapper/ConditionWrapper.mjs.map +1 -1
  58. package/dist/esm/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs +1 -32
  59. package/dist/esm/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs.map +1 -1
  60. package/dist/esm/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs +1 -36
  61. package/dist/esm/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs.map +1 -1
  62. package/dist/esm/components/DictionaryEditor/NodeWrapper/HtmlWrapper.mjs +1 -21
  63. package/dist/esm/components/DictionaryEditor/NodeWrapper/HtmlWrapper.mjs.map +1 -1
  64. package/dist/esm/components/DictionaryEditor/NodeWrapper/InsertionWrapper.mjs +1 -21
  65. package/dist/esm/components/DictionaryEditor/NodeWrapper/InsertionWrapper.mjs.map +1 -1
  66. package/dist/esm/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs +1 -21
  67. package/dist/esm/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.mjs.map +1 -1
  68. package/dist/esm/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs +1 -39
  69. package/dist/esm/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs.map +1 -1
  70. package/dist/esm/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +1 -35
  71. package/dist/esm/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
  72. package/dist/esm/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs +1 -22
  73. package/dist/esm/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs.map +1 -1
  74. package/dist/esm/components/DictionaryEditor/NodeWrapper/index.mjs +1 -88
  75. package/dist/esm/components/DictionaryEditor/NodeWrapper/index.mjs.map +1 -1
  76. package/dist/esm/components/DictionaryEditor/index.mjs +1 -3
  77. package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs +1 -61
  78. package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs.map +1 -1
  79. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +1 -661
  80. package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
  81. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -64
  82. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
  83. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.mjs +1 -268
  84. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.mjs.map +1 -1
  85. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.mjs +1 -98
  86. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.mjs.map +1 -1
  87. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.mjs +1 -14
  88. package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.mjs.map +1 -1
  89. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +1 -328
  90. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  91. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +1 -575
  92. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  93. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs +1 -338
  94. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs.map +1 -1
  95. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs +1 -29
  96. package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs.map +1 -1
  97. package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +1 -112
  98. package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  99. package/dist/esm/components/DictionaryFieldEditor/EnumKeyInput.mjs +1 -98
  100. package/dist/esm/components/DictionaryFieldEditor/EnumKeyInput.mjs.map +1 -1
  101. package/dist/esm/components/DictionaryFieldEditor/JSONEditor.mjs +1 -28
  102. package/dist/esm/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  103. package/dist/esm/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs +1 -22
  104. package/dist/esm/components/DictionaryFieldEditor/KeyPathBreadcrumb.mjs.map +1 -1
  105. package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +1 -172
  106. package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  107. package/dist/esm/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs +1 -268
  108. package/dist/esm/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs.map +1 -1
  109. package/dist/esm/components/DictionaryFieldEditor/NodeTypeSelector.mjs +1 -84
  110. package/dist/esm/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
  111. package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +1 -153
  112. package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  113. package/dist/esm/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +1 -350
  114. package/dist/esm/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  115. package/dist/esm/components/DictionaryFieldEditor/StructureEditor.mjs +1 -19
  116. package/dist/esm/components/DictionaryFieldEditor/StructureEditor.mjs.map +1 -1
  117. package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs +1 -199
  118. package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs.map +1 -1
  119. package/dist/esm/components/DictionaryFieldEditor/StructureView/structureView.content.mjs +1 -100
  120. package/dist/esm/components/DictionaryFieldEditor/StructureView/structureView.content.mjs.map +1 -1
  121. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs +1 -73
  122. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs.map +1 -1
  123. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs +1 -27
  124. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs.map +1 -1
  125. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/index.mjs +1 -4
  126. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.mjs +1 -78
  127. package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.mjs.map +1 -1
  128. package/dist/esm/components/DictionaryFieldEditor/dictionaryFieldEditor.content.mjs +1 -58
  129. package/dist/esm/components/DictionaryFieldEditor/dictionaryFieldEditor.content.mjs.map +1 -1
  130. package/dist/esm/components/DictionaryFieldEditor/getIsEditableSection.mjs +1 -14
  131. package/dist/esm/components/DictionaryFieldEditor/getIsEditableSection.mjs.map +1 -1
  132. package/dist/esm/components/DictionaryFieldEditor/index.mjs +1 -10
  133. package/dist/esm/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs +1 -318
  134. package/dist/esm/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs.map +1 -1
  135. package/dist/esm/components/DropDown/index.mjs +1 -177
  136. package/dist/esm/components/DropDown/index.mjs.map +1 -1
  137. package/dist/esm/components/EditableField/EditableFieldInput.mjs +1 -68
  138. package/dist/esm/components/EditableField/EditableFieldInput.mjs.map +1 -1
  139. package/dist/esm/components/EditableField/EditableFieldLayout.mjs +1 -103
  140. package/dist/esm/components/EditableField/EditableFieldLayout.mjs.map +1 -1
  141. package/dist/esm/components/EditableField/EditableFieldTextArea.mjs +1 -77
  142. package/dist/esm/components/EditableField/EditableFieldTextArea.mjs.map +1 -1
  143. package/dist/esm/components/EditableField/index.mjs +1 -4
  144. package/dist/esm/components/ExpandCollapse/ExpandCollapse.mjs +1 -96
  145. package/dist/esm/components/ExpandCollapse/ExpandCollapse.mjs.map +1 -1
  146. package/dist/esm/components/ExpandCollapse/expandCollapse.content.mjs +1 -58
  147. package/dist/esm/components/ExpandCollapse/expandCollapse.content.mjs.map +1 -1
  148. package/dist/esm/components/ExpandCollapse/index.mjs +1 -3
  149. package/dist/esm/components/Flags/Flag.mjs +1 -326
  150. package/dist/esm/components/Flags/Flag.mjs.map +1 -1
  151. package/dist/esm/components/Flags/ae.mjs +1 -36
  152. package/dist/esm/components/Flags/ae.mjs.map +1 -1
  153. package/dist/esm/components/Flags/af.mjs +1 -96
  154. package/dist/esm/components/Flags/af.mjs.map +1 -1
  155. package/dist/esm/components/Flags/al.mjs +1 -37
  156. package/dist/esm/components/Flags/al.mjs.map +1 -1
  157. package/dist/esm/components/Flags/am.mjs +1 -33
  158. package/dist/esm/components/Flags/am.mjs.map +1 -1
  159. package/dist/esm/components/Flags/ar.mjs +1 -160
  160. package/dist/esm/components/Flags/ar.mjs.map +1 -1
  161. package/dist/esm/components/Flags/at.mjs +1 -30
  162. package/dist/esm/components/Flags/at.mjs.map +1 -1
  163. package/dist/esm/components/Flags/au.mjs +1 -42
  164. package/dist/esm/components/Flags/au.mjs.map +1 -1
  165. package/dist/esm/components/Flags/az.mjs +1 -46
  166. package/dist/esm/components/Flags/az.mjs.map +1 -1
  167. package/dist/esm/components/Flags/ba.mjs +1 -40
  168. package/dist/esm/components/Flags/ba.mjs.map +1 -1
  169. package/dist/esm/components/Flags/bd.mjs +1 -32
  170. package/dist/esm/components/Flags/bd.mjs.map +1 -1
  171. package/dist/esm/components/Flags/be.mjs +1 -36
  172. package/dist/esm/components/Flags/be.mjs.map +1 -1
  173. package/dist/esm/components/Flags/bg.mjs +1 -33
  174. package/dist/esm/components/Flags/bg.mjs.map +1 -1
  175. package/dist/esm/components/Flags/bh.mjs +1 -30
  176. package/dist/esm/components/Flags/bh.mjs.map +1 -1
  177. package/dist/esm/components/Flags/bn.mjs +1 -42
  178. package/dist/esm/components/Flags/bn.mjs.map +1 -1
  179. package/dist/esm/components/Flags/bo.mjs +1 -3030
  180. package/dist/esm/components/Flags/bo.mjs.map +1 -1
  181. package/dist/esm/components/Flags/br.mjs +1 -106
  182. package/dist/esm/components/Flags/br.mjs.map +1 -1
  183. package/dist/esm/components/Flags/bw.mjs +1 -33
  184. package/dist/esm/components/Flags/bw.mjs.map +1 -1
  185. package/dist/esm/components/Flags/by.mjs +1 -45
  186. package/dist/esm/components/Flags/by.mjs.map +1 -1
  187. package/dist/esm/components/Flags/bz.mjs +1 -338
  188. package/dist/esm/components/Flags/bz.mjs.map +1 -1
  189. package/dist/esm/components/Flags/ca.mjs +1 -30
  190. package/dist/esm/components/Flags/ca.mjs.map +1 -1
  191. package/dist/esm/components/Flags/ch.mjs +1 -30
  192. package/dist/esm/components/Flags/ch.mjs.map +1 -1
  193. package/dist/esm/components/Flags/cl.mjs +1 -43
  194. package/dist/esm/components/Flags/cl.mjs.map +1 -1
  195. package/dist/esm/components/Flags/cn.mjs +1 -57
  196. package/dist/esm/components/Flags/cn.mjs.map +1 -1
  197. package/dist/esm/components/Flags/co.mjs +1 -36
  198. package/dist/esm/components/Flags/co.mjs.map +1 -1
  199. package/dist/esm/components/Flags/cr.mjs +1 -36
  200. package/dist/esm/components/Flags/cr.mjs.map +1 -1
  201. package/dist/esm/components/Flags/cu.mjs +1 -43
  202. package/dist/esm/components/Flags/cu.mjs.map +1 -1
  203. package/dist/esm/components/Flags/cv.mjs +1 -43
  204. package/dist/esm/components/Flags/cv.mjs.map +1 -1
  205. package/dist/esm/components/Flags/cz.mjs +1 -33
  206. package/dist/esm/components/Flags/cz.mjs.map +1 -1
  207. package/dist/esm/components/Flags/de.mjs +1 -33
  208. package/dist/esm/components/Flags/de.mjs.map +1 -1
  209. package/dist/esm/components/Flags/dj.mjs +1 -43
  210. package/dist/esm/components/Flags/dj.mjs.map +1 -1
  211. package/dist/esm/components/Flags/dk.mjs +1 -33
  212. package/dist/esm/components/Flags/dk.mjs.map +1 -1
  213. package/dist/esm/components/Flags/do.mjs +1 -211
  214. package/dist/esm/components/Flags/do.mjs.map +1 -1
  215. package/dist/esm/components/Flags/dz.mjs +1 -33
  216. package/dist/esm/components/Flags/dz.mjs.map +1 -1
  217. package/dist/esm/components/Flags/ec.mjs +1 -622
  218. package/dist/esm/components/Flags/ec.mjs.map +1 -1
  219. package/dist/esm/components/Flags/ee.mjs +1 -33
  220. package/dist/esm/components/Flags/ee.mjs.map +1 -1
  221. package/dist/esm/components/Flags/eg.mjs +1 -112
  222. package/dist/esm/components/Flags/eg.mjs.map +1 -1
  223. package/dist/esm/components/Flags/es-ct.mjs +1 -32
  224. package/dist/esm/components/Flags/es-ct.mjs.map +1 -1
  225. package/dist/esm/components/Flags/es-ga.mjs +1 -792
  226. package/dist/esm/components/Flags/es-ga.mjs.map +1 -1
  227. package/dist/esm/components/Flags/es-pv.mjs +1 -33
  228. package/dist/esm/components/Flags/es-pv.mjs.map +1 -1
  229. package/dist/esm/components/Flags/es.mjs +1 -2226
  230. package/dist/esm/components/Flags/es.mjs.map +1 -1
  231. package/dist/esm/components/Flags/et.mjs +1 -50
  232. package/dist/esm/components/Flags/et.mjs.map +1 -1
  233. package/dist/esm/components/Flags/fi.mjs +1 -33
  234. package/dist/esm/components/Flags/fi.mjs.map +1 -1
  235. package/dist/esm/components/Flags/flags.mjs +1 -1363
  236. package/dist/esm/components/Flags/flags.mjs.map +1 -1
  237. package/dist/esm/components/Flags/fo.mjs +1 -41
  238. package/dist/esm/components/Flags/fo.mjs.map +1 -1
  239. package/dist/esm/components/Flags/fr.mjs +1 -33
  240. package/dist/esm/components/Flags/fr.mjs.map +1 -1
  241. package/dist/esm/components/Flags/gb-wls.mjs +1 -43
  242. package/dist/esm/components/Flags/gb-wls.mjs.map +1 -1
  243. package/dist/esm/components/Flags/gb.mjs +1 -39
  244. package/dist/esm/components/Flags/gb.mjs.map +1 -1
  245. package/dist/esm/components/Flags/ge.mjs +1 -37
  246. package/dist/esm/components/Flags/ge.mjs.map +1 -1
  247. package/dist/esm/components/Flags/gh.mjs +1 -36
  248. package/dist/esm/components/Flags/gh.mjs.map +1 -1
  249. package/dist/esm/components/Flags/gr.mjs +1 -66
  250. package/dist/esm/components/Flags/gr.mjs.map +1 -1
  251. package/dist/esm/components/Flags/gt.mjs +1 -461
  252. package/dist/esm/components/Flags/gt.mjs.map +1 -1
  253. package/dist/esm/components/Flags/gw.mjs +1 -67
  254. package/dist/esm/components/Flags/gw.mjs.map +1 -1
  255. package/dist/esm/components/Flags/hk.mjs +1 -44
  256. package/dist/esm/components/Flags/hk.mjs.map +1 -1
  257. package/dist/esm/components/Flags/hn.mjs +1 -83
  258. package/dist/esm/components/Flags/hn.mjs.map +1 -1
  259. package/dist/esm/components/Flags/hr.mjs +1 -94
  260. package/dist/esm/components/Flags/hr.mjs.map +1 -1
  261. package/dist/esm/components/Flags/hu.mjs +1 -33
  262. package/dist/esm/components/Flags/hu.mjs.map +1 -1
  263. package/dist/esm/components/Flags/id.mjs +1 -30
  264. package/dist/esm/components/Flags/id.mjs.map +1 -1
  265. package/dist/esm/components/Flags/ie.mjs +1 -36
  266. package/dist/esm/components/Flags/ie.mjs.map +1 -1
  267. package/dist/esm/components/Flags/il.mjs +1 -46
  268. package/dist/esm/components/Flags/il.mjs.map +1 -1
  269. package/dist/esm/components/Flags/in.mjs +1 -74
  270. package/dist/esm/components/Flags/in.mjs.map +1 -1
  271. package/dist/esm/components/Flags/index.mjs +1 -4
  272. package/dist/esm/components/Flags/iq.mjs +1 -40
  273. package/dist/esm/components/Flags/iq.mjs.map +1 -1
  274. package/dist/esm/components/Flags/ir.mjs +1 -112
  275. package/dist/esm/components/Flags/ir.mjs.map +1 -1
  276. package/dist/esm/components/Flags/is.mjs +1 -40
  277. package/dist/esm/components/Flags/is.mjs.map +1 -1
  278. package/dist/esm/components/Flags/it.mjs +1 -36
  279. package/dist/esm/components/Flags/it.mjs.map +1 -1
  280. package/dist/esm/components/Flags/jm.mjs +1 -36
  281. package/dist/esm/components/Flags/jm.mjs.map +1 -1
  282. package/dist/esm/components/Flags/jo.mjs +1 -48
  283. package/dist/esm/components/Flags/jo.mjs.map +1 -1
  284. package/dist/esm/components/Flags/jp.mjs +1 -41
  285. package/dist/esm/components/Flags/jp.mjs.map +1 -1
  286. package/dist/esm/components/Flags/ke.mjs +1 -91
  287. package/dist/esm/components/Flags/ke.mjs.map +1 -1
  288. package/dist/esm/components/Flags/kg.mjs +1 -49
  289. package/dist/esm/components/Flags/kg.mjs.map +1 -1
  290. package/dist/esm/components/Flags/kh.mjs +1 -76
  291. package/dist/esm/components/Flags/kh.mjs.map +1 -1
  292. package/dist/esm/components/Flags/km.mjs +1 -52
  293. package/dist/esm/components/Flags/km.mjs.map +1 -1
  294. package/dist/esm/components/Flags/kr.mjs +1 -64
  295. package/dist/esm/components/Flags/kr.mjs.map +1 -1
  296. package/dist/esm/components/Flags/kw.mjs +1 -44
  297. package/dist/esm/components/Flags/kw.mjs.map +1 -1
  298. package/dist/esm/components/Flags/kz.mjs +1 -94
  299. package/dist/esm/components/Flags/kz.mjs.map +1 -1
  300. package/dist/esm/components/Flags/la.mjs +1 -39
  301. package/dist/esm/components/Flags/la.mjs.map +1 -1
  302. package/dist/esm/components/Flags/lb.mjs +1 -50
  303. package/dist/esm/components/Flags/lb.mjs.map +1 -1
  304. package/dist/esm/components/Flags/li.mjs +1 -136
  305. package/dist/esm/components/Flags/li.mjs.map +1 -1
  306. package/dist/esm/components/Flags/lk.mjs +1 -73
  307. package/dist/esm/components/Flags/lk.mjs.map +1 -1
  308. package/dist/esm/components/Flags/lt.mjs +1 -46
  309. package/dist/esm/components/Flags/lt.mjs.map +1 -1
  310. package/dist/esm/components/Flags/lu.mjs +1 -33
  311. package/dist/esm/components/Flags/lu.mjs.map +1 -1
  312. package/dist/esm/components/Flags/lv.mjs +1 -30
  313. package/dist/esm/components/Flags/lv.mjs.map +1 -1
  314. package/dist/esm/components/Flags/ly.mjs +1 -39
  315. package/dist/esm/components/Flags/ly.mjs.map +1 -1
  316. package/dist/esm/components/Flags/ma.mjs +1 -32
  317. package/dist/esm/components/Flags/ma.mjs.map +1 -1
  318. package/dist/esm/components/Flags/mc.mjs +1 -33
  319. package/dist/esm/components/Flags/mc.mjs.map +1 -1
  320. package/dist/esm/components/Flags/md.mjs +1 -317
  321. package/dist/esm/components/Flags/md.mjs.map +1 -1
  322. package/dist/esm/components/Flags/mk.mjs +1 -37
  323. package/dist/esm/components/Flags/mk.mjs.map +1 -1
  324. package/dist/esm/components/Flags/mm.mjs +1 -58
  325. package/dist/esm/components/Flags/mm.mjs.map +1 -1
  326. package/dist/esm/components/Flags/mn.mjs +1 -59
  327. package/dist/esm/components/Flags/mn.mjs.map +1 -1
  328. package/dist/esm/components/Flags/mo.mjs +1 -42
  329. package/dist/esm/components/Flags/mo.mjs.map +1 -1
  330. package/dist/esm/components/Flags/mr.mjs +1 -37
  331. package/dist/esm/components/Flags/mr.mjs.map +1 -1
  332. package/dist/esm/components/Flags/mt.mjs +1 -153
  333. package/dist/esm/components/Flags/mt.mjs.map +1 -1
  334. package/dist/esm/components/Flags/mv.mjs +1 -40
  335. package/dist/esm/components/Flags/mv.mjs.map +1 -1
  336. package/dist/esm/components/Flags/mx.mjs +1 -1365
  337. package/dist/esm/components/Flags/mx.mjs.map +1 -1
  338. package/dist/esm/components/Flags/my.mjs +1 -78
  339. package/dist/esm/components/Flags/my.mjs.map +1 -1
  340. package/dist/esm/components/Flags/mz.mjs +1 -92
  341. package/dist/esm/components/Flags/mz.mjs.map +1 -1
  342. package/dist/esm/components/Flags/ng.mjs +1 -33
  343. package/dist/esm/components/Flags/ng.mjs.map +1 -1
  344. package/dist/esm/components/Flags/ni.mjs +1 -451
  345. package/dist/esm/components/Flags/ni.mjs.map +1 -1
  346. package/dist/esm/components/Flags/nl.mjs +1 -33
  347. package/dist/esm/components/Flags/nl.mjs.map +1 -1
  348. package/dist/esm/components/Flags/no.mjs +1 -39
  349. package/dist/esm/components/Flags/no.mjs.map +1 -1
  350. package/dist/esm/components/Flags/np.mjs +1 -38
  351. package/dist/esm/components/Flags/np.mjs.map +1 -1
  352. package/dist/esm/components/Flags/nz.mjs +1 -104
  353. package/dist/esm/components/Flags/nz.mjs.map +1 -1
  354. package/dist/esm/components/Flags/om.mjs +1 -539
  355. package/dist/esm/components/Flags/om.mjs.map +1 -1
  356. package/dist/esm/components/Flags/pa.mjs +1 -46
  357. package/dist/esm/components/Flags/pa.mjs.map +1 -1
  358. package/dist/esm/components/Flags/pe.mjs +1 -30
  359. package/dist/esm/components/Flags/pe.mjs.map +1 -1
  360. package/dist/esm/components/Flags/ph.mjs +1 -36
  361. package/dist/esm/components/Flags/ph.mjs.map +1 -1
  362. package/dist/esm/components/Flags/pk.mjs +1 -38
  363. package/dist/esm/components/Flags/pk.mjs.map +1 -1
  364. package/dist/esm/components/Flags/pl.mjs +1 -30
  365. package/dist/esm/components/Flags/pl.mjs.map +1 -1
  366. package/dist/esm/components/Flags/pr.mjs +1 -43
  367. package/dist/esm/components/Flags/pr.mjs.map +1 -1
  368. package/dist/esm/components/Flags/ps.mjs +1 -45
  369. package/dist/esm/components/Flags/ps.mjs.map +1 -1
  370. package/dist/esm/components/Flags/pt.mjs +1 -152
  371. package/dist/esm/components/Flags/pt.mjs.map +1 -1
  372. package/dist/esm/components/Flags/py.mjs +1 -61
  373. package/dist/esm/components/Flags/py.mjs.map +1 -1
  374. package/dist/esm/components/Flags/qa.mjs +1 -30
  375. package/dist/esm/components/Flags/qa.mjs.map +1 -1
  376. package/dist/esm/components/Flags/ro.mjs +1 -36
  377. package/dist/esm/components/Flags/ro.mjs.map +1 -1
  378. package/dist/esm/components/Flags/rs.mjs +1 -820
  379. package/dist/esm/components/Flags/rs.mjs.map +1 -1
  380. package/dist/esm/components/Flags/ru.mjs +1 -33
  381. package/dist/esm/components/Flags/ru.mjs.map +1 -1
  382. package/dist/esm/components/Flags/sa.mjs +1 -79
  383. package/dist/esm/components/Flags/sa.mjs.map +1 -1
  384. package/dist/esm/components/Flags/sd.mjs +1 -44
  385. package/dist/esm/components/Flags/sd.mjs.map +1 -1
  386. package/dist/esm/components/Flags/se.mjs +1 -30
  387. package/dist/esm/components/Flags/se.mjs.map +1 -1
  388. package/dist/esm/components/Flags/sg.mjs +1 -42
  389. package/dist/esm/components/Flags/sg.mjs.map +1 -1
  390. package/dist/esm/components/Flags/si.mjs +1 -59
  391. package/dist/esm/components/Flags/si.mjs.map +1 -1
  392. package/dist/esm/components/Flags/sk.mjs +1 -45
  393. package/dist/esm/components/Flags/sk.mjs.map +1 -1
  394. package/dist/esm/components/Flags/so.mjs +1 -37
  395. package/dist/esm/components/Flags/so.mjs.map +1 -1
  396. package/dist/esm/components/Flags/st.mjs +1 -73
  397. package/dist/esm/components/Flags/st.mjs.map +1 -1
  398. package/dist/esm/components/Flags/sv.mjs +1 -1735
  399. package/dist/esm/components/Flags/sv.mjs.map +1 -1
  400. package/dist/esm/components/Flags/sy.mjs +1 -36
  401. package/dist/esm/components/Flags/sy.mjs.map +1 -1
  402. package/dist/esm/components/Flags/td.mjs +1 -33
  403. package/dist/esm/components/Flags/td.mjs.map +1 -1
  404. package/dist/esm/components/Flags/th.mjs +1 -33
  405. package/dist/esm/components/Flags/th.mjs.map +1 -1
  406. package/dist/esm/components/Flags/tl.mjs +1 -43
  407. package/dist/esm/components/Flags/tl.mjs.map +1 -1
  408. package/dist/esm/components/Flags/tn.mjs +1 -30
  409. package/dist/esm/components/Flags/tn.mjs.map +1 -1
  410. package/dist/esm/components/Flags/tr.mjs +1 -36
  411. package/dist/esm/components/Flags/tr.mjs.map +1 -1
  412. package/dist/esm/components/Flags/tt.mjs +1 -35
  413. package/dist/esm/components/Flags/tt.mjs.map +1 -1
  414. package/dist/esm/components/Flags/tw.mjs +1 -40
  415. package/dist/esm/components/Flags/tw.mjs.map +1 -1
  416. package/dist/esm/components/Flags/tz.mjs +1 -44
  417. package/dist/esm/components/Flags/tz.mjs.map +1 -1
  418. package/dist/esm/components/Flags/ua.mjs +1 -33
  419. package/dist/esm/components/Flags/ua.mjs.map +1 -1
  420. package/dist/esm/components/Flags/ug.mjs +1 -145
  421. package/dist/esm/components/Flags/ug.mjs.map +1 -1
  422. package/dist/esm/components/Flags/us.mjs +1 -45
  423. package/dist/esm/components/Flags/us.mjs.map +1 -1
  424. package/dist/esm/components/Flags/uy.mjs +1 -63
  425. package/dist/esm/components/Flags/uy.mjs.map +1 -1
  426. package/dist/esm/components/Flags/uz.mjs +1 -109
  427. package/dist/esm/components/Flags/uz.mjs.map +1 -1
  428. package/dist/esm/components/Flags/ve.mjs +1 -84
  429. package/dist/esm/components/Flags/ve.mjs.map +1 -1
  430. package/dist/esm/components/Flags/vn.mjs +1 -37
  431. package/dist/esm/components/Flags/vn.mjs.map +1 -1
  432. package/dist/esm/components/Flags/xx.mjs +1 -35
  433. package/dist/esm/components/Flags/xx.mjs.map +1 -1
  434. package/dist/esm/components/Flags/ye.mjs +1 -36
  435. package/dist/esm/components/Flags/ye.mjs.map +1 -1
  436. package/dist/esm/components/Flags/za.mjs +1 -51
  437. package/dist/esm/components/Flags/za.mjs.map +1 -1
  438. package/dist/esm/components/Flags/zw.mjs +1 -70
  439. package/dist/esm/components/Flags/zw.mjs.map +1 -1
  440. package/dist/esm/components/Footer/index.mjs +1 -123
  441. package/dist/esm/components/Footer/index.mjs.map +1 -1
  442. package/dist/esm/components/Form/Form.mjs +1 -65
  443. package/dist/esm/components/Form/Form.mjs.map +1 -1
  444. package/dist/esm/components/Form/FormBase.mjs +1 -50
  445. package/dist/esm/components/Form/FormBase.mjs.map +1 -1
  446. package/dist/esm/components/Form/FormControl.mjs +1 -19
  447. package/dist/esm/components/Form/FormControl.mjs.map +1 -1
  448. package/dist/esm/components/Form/FormDescription.mjs +1 -17
  449. package/dist/esm/components/Form/FormDescription.mjs.map +1 -1
  450. package/dist/esm/components/Form/FormField.mjs +1 -34
  451. package/dist/esm/components/Form/FormField.mjs.map +1 -1
  452. package/dist/esm/components/Form/FormItem.mjs +1 -23
  453. package/dist/esm/components/Form/FormItem.mjs.map +1 -1
  454. package/dist/esm/components/Form/FormLabel.mjs +1 -19
  455. package/dist/esm/components/Form/FormLabel.mjs.map +1 -1
  456. package/dist/esm/components/Form/FormMessage.mjs +1 -21
  457. package/dist/esm/components/Form/FormMessage.mjs.map +1 -1
  458. package/dist/esm/components/Form/elements/AutoSizeTextAreaElement.mjs +1 -14
  459. package/dist/esm/components/Form/elements/AutoSizeTextAreaElement.mjs.map +1 -1
  460. package/dist/esm/components/Form/elements/CheckboxElement.mjs +1 -25
  461. package/dist/esm/components/Form/elements/CheckboxElement.mjs.map +1 -1
  462. package/dist/esm/components/Form/elements/EditableFieldInputElement.mjs +1 -16
  463. package/dist/esm/components/Form/elements/EditableFieldInputElement.mjs.map +1 -1
  464. package/dist/esm/components/Form/elements/EditableFieldTextAreaElement.mjs +1 -16
  465. package/dist/esm/components/Form/elements/EditableFieldTextAreaElement.mjs.map +1 -1
  466. package/dist/esm/components/Form/elements/FormElement.mjs +1 -58
  467. package/dist/esm/components/Form/elements/FormElement.mjs.map +1 -1
  468. package/dist/esm/components/Form/elements/FormElementWrapper.mjs +1 -34
  469. package/dist/esm/components/Form/elements/FormElementWrapper.mjs.map +1 -1
  470. package/dist/esm/components/Form/elements/InputElement.mjs +1 -16
  471. package/dist/esm/components/Form/elements/InputElement.mjs.map +1 -1
  472. package/dist/esm/components/Form/elements/InputPasswordElement.mjs +1 -19
  473. package/dist/esm/components/Form/elements/InputPasswordElement.mjs.map +1 -1
  474. package/dist/esm/components/Form/elements/MultiselectElement.mjs +1 -49
  475. package/dist/esm/components/Form/elements/MultiselectElement.mjs.map +1 -1
  476. package/dist/esm/components/Form/elements/OTPElement.mjs +1 -108
  477. package/dist/esm/components/Form/elements/OTPElement.mjs.map +1 -1
  478. package/dist/esm/components/Form/elements/SearchInputElement.mjs +1 -16
  479. package/dist/esm/components/Form/elements/SearchInputElement.mjs.map +1 -1
  480. package/dist/esm/components/Form/elements/SelectElement.mjs +1 -49
  481. package/dist/esm/components/Form/elements/SelectElement.mjs.map +1 -1
  482. package/dist/esm/components/Form/elements/SwitchSelectorElement.mjs +1 -48
  483. package/dist/esm/components/Form/elements/SwitchSelectorElement.mjs.map +1 -1
  484. package/dist/esm/components/Form/elements/TextAreaElement.mjs +1 -16
  485. package/dist/esm/components/Form/elements/TextAreaElement.mjs.map +1 -1
  486. package/dist/esm/components/Form/elements/index.mjs +1 -10
  487. package/dist/esm/components/Form/index.mjs +1 -5
  488. package/dist/esm/components/Form/layout/FormItemLayout.mjs +1 -24
  489. package/dist/esm/components/Form/layout/FormItemLayout.mjs.map +1 -1
  490. package/dist/esm/components/Form/layout/FormLabelLayout.mjs +1 -20
  491. package/dist/esm/components/Form/layout/FormLabelLayout.mjs.map +1 -1
  492. package/dist/esm/components/Form/layout/RequiredStar.mjs +1 -10
  493. package/dist/esm/components/Form/layout/RequiredStar.mjs.map +1 -1
  494. package/dist/esm/components/Form/layout/index.mjs +1 -4
  495. package/dist/esm/components/HTMLRender/HTMLRender.mjs +1 -65
  496. package/dist/esm/components/HTMLRender/HTMLRender.mjs.map +1 -1
  497. package/dist/esm/components/HTMLRender/index.mjs +1 -3
  498. package/dist/esm/components/Headers/index.mjs +1 -216
  499. package/dist/esm/components/Headers/index.mjs.map +1 -1
  500. package/dist/esm/components/HeightResizer/index.mjs +1 -163
  501. package/dist/esm/components/HeightResizer/index.mjs.map +1 -1
  502. package/dist/esm/components/HideShow/index.mjs +1 -70
  503. package/dist/esm/components/HideShow/index.mjs.map +1 -1
  504. package/dist/esm/components/IDE/Code.mjs +2 -59
  505. package/dist/esm/components/IDE/Code.mjs.map +1 -1
  506. package/dist/esm/components/IDE/CodeBlockClient.mjs +2 -31
  507. package/dist/esm/components/IDE/CodeBlockClient.mjs.map +1 -1
  508. package/dist/esm/components/IDE/CodeBlockServer.mjs +2 -45
  509. package/dist/esm/components/IDE/CodeBlockServer.mjs.map +1 -1
  510. package/dist/esm/components/IDE/CodeBlockShiki.mjs +1 -109
  511. package/dist/esm/components/IDE/CodeBlockShiki.mjs.map +1 -1
  512. package/dist/esm/components/IDE/CodeConditionalRenderer.mjs +1 -20
  513. package/dist/esm/components/IDE/CodeConditionalRenderer.mjs.map +1 -1
  514. package/dist/esm/components/IDE/CodeContext.mjs +1 -44
  515. package/dist/esm/components/IDE/CodeContext.mjs.map +1 -1
  516. package/dist/esm/components/IDE/CodeFormatSelector.mjs +1 -40
  517. package/dist/esm/components/IDE/CodeFormatSelector.mjs.map +1 -1
  518. package/dist/esm/components/IDE/ContentDeclarationFormatSelector.mjs +1 -41
  519. package/dist/esm/components/IDE/ContentDeclarationFormatSelector.mjs.map +1 -1
  520. package/dist/esm/components/IDE/CopyCode.mjs +1 -27
  521. package/dist/esm/components/IDE/CopyCode.mjs.map +1 -1
  522. package/dist/esm/components/IDE/FileList.mjs +1 -34
  523. package/dist/esm/components/IDE/FileList.mjs.map +1 -1
  524. package/dist/esm/components/IDE/FileTree.mjs +1 -64
  525. package/dist/esm/components/IDE/FileTree.mjs.map +1 -1
  526. package/dist/esm/components/IDE/IDE.mjs +1 -87
  527. package/dist/esm/components/IDE/IDE.mjs.map +1 -1
  528. package/dist/esm/components/IDE/MarkDownRender.mjs +1 -22
  529. package/dist/esm/components/IDE/MarkDownRender.mjs.map +1 -1
  530. package/dist/esm/components/IDE/MonacoCode.mjs +2 -103
  531. package/dist/esm/components/IDE/MonacoCode.mjs.map +1 -1
  532. package/dist/esm/components/IDE/PackageManagerSelector.mjs +1 -42
  533. package/dist/esm/components/IDE/PackageManagerSelector.mjs.map +1 -1
  534. package/dist/esm/components/IDE/code.content.mjs +1 -58
  535. package/dist/esm/components/IDE/code.content.mjs.map +1 -1
  536. package/dist/esm/components/IDE/copyCode.content.mjs +1 -58
  537. package/dist/esm/components/IDE/copyCode.content.mjs.map +1 -1
  538. package/dist/esm/components/IDE/createFileTree.mjs +1 -31
  539. package/dist/esm/components/IDE/createFileTree.mjs.map +1 -1
  540. package/dist/esm/components/IDE/index.mjs +1 -6
  541. package/dist/esm/components/IDE/selectors.content.mjs +1 -144
  542. package/dist/esm/components/IDE/selectors.content.mjs.map +1 -1
  543. package/dist/esm/components/InformationTag/index.mjs +1 -80
  544. package/dist/esm/components/InformationTag/index.mjs.map +1 -1
  545. package/dist/esm/components/Input/Checkbox.mjs +1 -97
  546. package/dist/esm/components/Input/Checkbox.mjs.map +1 -1
  547. package/dist/esm/components/Input/Input.mjs +1 -64
  548. package/dist/esm/components/Input/Input.mjs.map +1 -1
  549. package/dist/esm/components/Input/InputPassword.mjs +1 -38
  550. package/dist/esm/components/Input/InputPassword.mjs.map +1 -1
  551. package/dist/esm/components/Input/OTPInput.mjs +2 -474
  552. package/dist/esm/components/Input/OTPInput.mjs.map +1 -1
  553. package/dist/esm/components/Input/SearchInput.mjs +1 -17
  554. package/dist/esm/components/Input/SearchInput.mjs.map +1 -1
  555. package/dist/esm/components/Input/index.mjs +1 -7
  556. package/dist/esm/components/KeyboardScreenAdapter/index.mjs +1 -119
  557. package/dist/esm/components/KeyboardScreenAdapter/index.mjs.map +1 -1
  558. package/dist/esm/components/KeyboardShortcut/KeyboardShortcut.mjs +1 -230
  559. package/dist/esm/components/KeyboardShortcut/KeyboardShortcut.mjs.map +1 -1
  560. package/dist/esm/components/KeyboardShortcut/index.mjs +1 -3
  561. package/dist/esm/components/Label/index.mjs +1 -53
  562. package/dist/esm/components/Label/index.mjs.map +1 -1
  563. package/dist/esm/components/LanguageBackground/index.mjs +1 -87
  564. package/dist/esm/components/LanguageBackground/index.mjs.map +1 -1
  565. package/dist/esm/components/Link/Link.mjs +1 -239
  566. package/dist/esm/components/Link/Link.mjs.map +1 -1
  567. package/dist/esm/components/Link/index.mjs +1 -3
  568. package/dist/esm/components/Loader/index.content.mjs +1 -32
  569. package/dist/esm/components/Loader/index.content.mjs.map +1 -1
  570. package/dist/esm/components/Loader/index.mjs +1 -111
  571. package/dist/esm/components/Loader/index.mjs.map +1 -1
  572. package/dist/esm/components/Loader/spinner.mjs +1 -121
  573. package/dist/esm/components/Loader/spinner.mjs.map +1 -1
  574. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +1 -183
  575. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
  576. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs +1 -29
  577. package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs.map +1 -1
  578. package/dist/esm/components/LocaleSwitcherContentDropDown/index.mjs +1 -4
  579. package/dist/esm/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs +1 -182
  580. package/dist/esm/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs.map +1 -1
  581. package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +1 -134
  582. package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  583. package/dist/esm/components/LocaleSwitcherDropDown/index.mjs +1 -3
  584. package/dist/esm/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs +1 -140
  585. package/dist/esm/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs.map +1 -1
  586. package/dist/esm/components/Logo/Logo.mjs +1 -34
  587. package/dist/esm/components/Logo/Logo.mjs.map +1 -1
  588. package/dist/esm/components/Logo/LogoTextOnly.mjs +1 -28
  589. package/dist/esm/components/Logo/LogoTextOnly.mjs.map +1 -1
  590. package/dist/esm/components/Logo/LogoWithText.mjs +1 -34
  591. package/dist/esm/components/Logo/LogoWithText.mjs.map +1 -1
  592. package/dist/esm/components/Logo/LogoWithTextBelow.mjs +1 -34
  593. package/dist/esm/components/Logo/LogoWithTextBelow.mjs.map +1 -1
  594. package/dist/esm/components/Logo/index.mjs +1 -6
  595. package/dist/esm/components/MarkDownRender/MarkDownRender.mjs +1 -167
  596. package/dist/esm/components/MarkDownRender/MarkDownRender.mjs.map +1 -1
  597. package/dist/esm/components/MarkDownRender/index.mjs +1 -3
  598. package/dist/esm/components/MaxHeightSmoother/index.mjs +1 -163
  599. package/dist/esm/components/MaxHeightSmoother/index.mjs.map +1 -1
  600. package/dist/esm/components/MaxWidthSmoother/index.mjs +1 -18
  601. package/dist/esm/components/MaxWidthSmoother/index.mjs.map +1 -1
  602. package/dist/esm/components/Modal/Modal.mjs +1 -201
  603. package/dist/esm/components/Modal/Modal.mjs.map +1 -1
  604. package/dist/esm/components/Modal/index.mjs +1 -3
  605. package/dist/esm/components/Navbar/Burger.mjs +1 -76
  606. package/dist/esm/components/Navbar/Burger.mjs.map +1 -1
  607. package/dist/esm/components/Navbar/DesktopNavbar.mjs +1 -96
  608. package/dist/esm/components/Navbar/DesktopNavbar.mjs.map +1 -1
  609. package/dist/esm/components/Navbar/MobileNavbar.mjs +1 -169
  610. package/dist/esm/components/Navbar/MobileNavbar.mjs.map +1 -1
  611. package/dist/esm/components/Navbar/index.mjs +1 -86
  612. package/dist/esm/components/Navbar/index.mjs.map +1 -1
  613. package/dist/esm/components/Navbar/useNavigation.mjs +1 -152
  614. package/dist/esm/components/Navbar/useNavigation.mjs.map +1 -1
  615. package/dist/esm/components/Pagination/NumberItemsSelector.mjs +1 -46
  616. package/dist/esm/components/Pagination/NumberItemsSelector.mjs.map +1 -1
  617. package/dist/esm/components/Pagination/Pagination.mjs +1 -173
  618. package/dist/esm/components/Pagination/Pagination.mjs.map +1 -1
  619. package/dist/esm/components/Pagination/ShowingResultsNumberItems.mjs +1 -27
  620. package/dist/esm/components/Pagination/ShowingResultsNumberItems.mjs.map +1 -1
  621. package/dist/esm/components/Pagination/index.mjs +1 -5
  622. package/dist/esm/components/Pagination/pagination.content.mjs +1 -114
  623. package/dist/esm/components/Pagination/pagination.content.mjs.map +1 -1
  624. package/dist/esm/components/Pattern/DotPattern.mjs +1 -121
  625. package/dist/esm/components/Pattern/DotPattern.mjs.map +1 -1
  626. package/dist/esm/components/Pattern/GridPattern.mjs +1 -156
  627. package/dist/esm/components/Pattern/GridPattern.mjs.map +1 -1
  628. package/dist/esm/components/Pattern/SpotLight.mjs +1 -168
  629. package/dist/esm/components/Pattern/SpotLight.mjs.map +1 -1
  630. package/dist/esm/components/Pattern/index.mjs +1 -5
  631. package/dist/esm/components/Popover/dynamic.mjs +1 -128
  632. package/dist/esm/components/Popover/dynamic.mjs.map +1 -1
  633. package/dist/esm/components/Popover/index.mjs +1 -4
  634. package/dist/esm/components/Popover/static.mjs +1 -192
  635. package/dist/esm/components/Popover/static.mjs.map +1 -1
  636. package/dist/esm/components/PressableSpan/PressableSpan.mjs +1 -158
  637. package/dist/esm/components/PressableSpan/PressableSpan.mjs.map +1 -1
  638. package/dist/esm/components/PressableSpan/index.mjs +1 -3
  639. package/dist/esm/components/RightDrawer/RightDrawer.mjs +1 -179
  640. package/dist/esm/components/RightDrawer/RightDrawer.mjs.map +1 -1
  641. package/dist/esm/components/RightDrawer/index.mjs +1 -4
  642. package/dist/esm/components/RightDrawer/isElementAtTopAndNotCovered.mjs +1 -60
  643. package/dist/esm/components/RightDrawer/isElementAtTopAndNotCovered.mjs.map +1 -1
  644. package/dist/esm/components/RightDrawer/rightDrawer.content.mjs +1 -59
  645. package/dist/esm/components/RightDrawer/rightDrawer.content.mjs.map +1 -1
  646. package/dist/esm/components/RightDrawer/useRightDrawer.mjs +1 -64
  647. package/dist/esm/components/RightDrawer/useRightDrawer.mjs.map +1 -1
  648. package/dist/esm/components/Select/Multiselect.mjs +1 -353
  649. package/dist/esm/components/Select/Multiselect.mjs.map +1 -1
  650. package/dist/esm/components/Select/Select.mjs +1 -276
  651. package/dist/esm/components/Select/Select.mjs.map +1 -1
  652. package/dist/esm/components/Select/index.mjs +1 -4
  653. package/dist/esm/components/SocialNetworks/DiscordLogo.mjs +1 -20
  654. package/dist/esm/components/SocialNetworks/DiscordLogo.mjs.map +1 -1
  655. package/dist/esm/components/SocialNetworks/FacebookLogo.mjs +1 -17
  656. package/dist/esm/components/SocialNetworks/FacebookLogo.mjs.map +1 -1
  657. package/dist/esm/components/SocialNetworks/InstagramLogo.mjs +1 -29
  658. package/dist/esm/components/SocialNetworks/InstagramLogo.mjs.map +1 -1
  659. package/dist/esm/components/SocialNetworks/LinkedInLogo.mjs +1 -32
  660. package/dist/esm/components/SocialNetworks/LinkedInLogo.mjs.map +1 -1
  661. package/dist/esm/components/SocialNetworks/ProductHuntLogo.mjs +1 -15
  662. package/dist/esm/components/SocialNetworks/ProductHuntLogo.mjs.map +1 -1
  663. package/dist/esm/components/SocialNetworks/TiktokLogo.mjs +1 -17
  664. package/dist/esm/components/SocialNetworks/TiktokLogo.mjs.map +1 -1
  665. package/dist/esm/components/SocialNetworks/XLogo.mjs +1 -17
  666. package/dist/esm/components/SocialNetworks/XLogo.mjs.map +1 -1
  667. package/dist/esm/components/SocialNetworks/YoutubeLogo.mjs +1 -17
  668. package/dist/esm/components/SocialNetworks/YoutubeLogo.mjs.map +1 -1
  669. package/dist/esm/components/SocialNetworks/index.mjs +1 -64
  670. package/dist/esm/components/SocialNetworks/index.mjs.map +1 -1
  671. package/dist/esm/components/SwitchSelector/index.mjs +1 -145
  672. package/dist/esm/components/SwitchSelector/index.mjs.map +1 -1
  673. package/dist/esm/components/Tab/Tab.mjs +1 -148
  674. package/dist/esm/components/Tab/Tab.mjs.map +1 -1
  675. package/dist/esm/components/Tab/TabContext.mjs +1 -33
  676. package/dist/esm/components/Tab/TabContext.mjs.map +1 -1
  677. package/dist/esm/components/Tab/index.mjs +1 -3
  678. package/dist/esm/components/TabSelector/TabSelector.mjs +1 -111
  679. package/dist/esm/components/TabSelector/TabSelector.mjs.map +1 -1
  680. package/dist/esm/components/TabSelector/index.mjs +1 -3
  681. package/dist/esm/components/Table/Table.mjs +1 -195
  682. package/dist/esm/components/Table/Table.mjs.map +1 -1
  683. package/dist/esm/components/Table/index.mjs +1 -3
  684. package/dist/esm/components/Table/table.content.mjs +1 -36
  685. package/dist/esm/components/Table/table.content.mjs.map +1 -1
  686. package/dist/esm/components/Tag/index.mjs +1 -316
  687. package/dist/esm/components/Tag/index.mjs.map +1 -1
  688. package/dist/esm/components/Terminal/Terminal.mjs +3 -160
  689. package/dist/esm/components/Terminal/Terminal.mjs.map +1 -1
  690. package/dist/esm/components/Terminal/index.mjs +1 -3
  691. package/dist/esm/components/Terminal/terminal.content.mjs +1 -60
  692. package/dist/esm/components/Terminal/terminal.content.mjs.map +1 -1
  693. package/dist/esm/components/TextArea/AutoSizeTextArea.mjs +1 -106
  694. package/dist/esm/components/TextArea/AutoSizeTextArea.mjs.map +1 -1
  695. package/dist/esm/components/TextArea/AutocompleteTextArea.mjs +1 -257
  696. package/dist/esm/components/TextArea/AutocompleteTextArea.mjs.map +1 -1
  697. package/dist/esm/components/TextArea/TextArea.mjs +1 -58
  698. package/dist/esm/components/TextArea/TextArea.mjs.map +1 -1
  699. package/dist/esm/components/TextArea/index.mjs +1 -5
  700. package/dist/esm/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs +1 -79
  701. package/dist/esm/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs.map +1 -1
  702. package/dist/esm/components/ThemeSwitcherDropDown/MobileThemeSwitcher.mjs +1 -53
  703. package/dist/esm/components/ThemeSwitcherDropDown/MobileThemeSwitcher.mjs.map +1 -1
  704. package/dist/esm/components/ThemeSwitcherDropDown/index.mjs +1 -5
  705. package/dist/esm/components/ThemeSwitcherDropDown/types.mjs +1 -10
  706. package/dist/esm/components/ThemeSwitcherDropDown/types.mjs.map +1 -1
  707. package/dist/esm/components/Toaster/Toast.mjs +1 -187
  708. package/dist/esm/components/Toaster/Toast.mjs.map +1 -1
  709. package/dist/esm/components/Toaster/Toaster.mjs +1 -66
  710. package/dist/esm/components/Toaster/Toaster.mjs.map +1 -1
  711. package/dist/esm/components/Toaster/index.mjs +1 -5
  712. package/dist/esm/components/Toaster/useToast.mjs +1 -308
  713. package/dist/esm/components/Toaster/useToast.mjs.map +1 -1
  714. package/dist/esm/components/WithResizer/index.mjs +1 -200
  715. package/dist/esm/components/WithResizer/index.mjs.map +1 -1
  716. package/dist/esm/components/index.mjs +1 -105
  717. package/dist/esm/hooks/index.mjs +1 -22
  718. package/dist/esm/hooks/reactQuery.mjs +1 -915
  719. package/dist/esm/hooks/reactQuery.mjs.map +1 -1
  720. package/dist/esm/hooks/useAuth/index.mjs +1 -5
  721. package/dist/esm/hooks/useAuth/useAuth.mjs +1 -21
  722. package/dist/esm/hooks/useAuth/useAuth.mjs.map +1 -1
  723. package/dist/esm/hooks/useAuth/useOAuth2.mjs +1 -28
  724. package/dist/esm/hooks/useAuth/useOAuth2.mjs.map +1 -1
  725. package/dist/esm/hooks/useAuth/useSession.mjs +1 -42
  726. package/dist/esm/hooks/useAuth/useSession.mjs.map +1 -1
  727. package/dist/esm/hooks/useDevice.mjs +1 -71
  728. package/dist/esm/hooks/useDevice.mjs.map +1 -1
  729. package/dist/esm/hooks/useGetElementById.mjs +1 -15
  730. package/dist/esm/hooks/useGetElementById.mjs.map +1 -1
  731. package/dist/esm/hooks/useGetElementOrWindow.mjs +1 -15
  732. package/dist/esm/hooks/useGetElementOrWindow.mjs.map +1 -1
  733. package/dist/esm/hooks/useHorizontalSwipe.mjs +1 -123
  734. package/dist/esm/hooks/useHorizontalSwipe.mjs.map +1 -1
  735. package/dist/esm/hooks/useIntlayerAPI.mjs +1 -21
  736. package/dist/esm/hooks/useIntlayerAPI.mjs.map +1 -1
  737. package/dist/esm/hooks/useIsDarkMode.mjs +1 -15
  738. package/dist/esm/hooks/useIsDarkMode.mjs.map +1 -1
  739. package/dist/esm/hooks/useIsMounted.mjs +1 -15
  740. package/dist/esm/hooks/useIsMounted.mjs.map +1 -1
  741. package/dist/esm/hooks/useItemSelector.mjs +1 -146
  742. package/dist/esm/hooks/useItemSelector.mjs.map +1 -1
  743. package/dist/esm/hooks/useKeyboardDetector.mjs +1 -26
  744. package/dist/esm/hooks/useKeyboardDetector.mjs.map +1 -1
  745. package/dist/esm/hooks/usePersistedStore.mjs +1 -65
  746. package/dist/esm/hooks/usePersistedStore.mjs.map +1 -1
  747. package/dist/esm/hooks/useScreenWidth.mjs +1 -20
  748. package/dist/esm/hooks/useScreenWidth.mjs.map +1 -1
  749. package/dist/esm/hooks/useScrollBlockage/index.mjs +1 -27
  750. package/dist/esm/hooks/useScrollBlockage/index.mjs.map +1 -1
  751. package/dist/esm/hooks/useScrollBlockage/useScrollBlockageStore.mjs +1 -70
  752. package/dist/esm/hooks/useScrollBlockage/useScrollBlockageStore.mjs.map +1 -1
  753. package/dist/esm/hooks/useScrollDetection.mjs +1 -61
  754. package/dist/esm/hooks/useScrollDetection.mjs.map +1 -1
  755. package/dist/esm/hooks/useScrollY.mjs +1 -68
  756. package/dist/esm/hooks/useScrollY.mjs.map +1 -1
  757. package/dist/esm/hooks/useSearch.mjs +1 -50
  758. package/dist/esm/hooks/useSearch.mjs.map +1 -1
  759. package/dist/esm/hooks/useUser/index.mjs +1 -28
  760. package/dist/esm/hooks/useUser/index.mjs.map +1 -1
  761. package/dist/esm/libs/auth.mjs +1 -176
  762. package/dist/esm/libs/auth.mjs.map +1 -1
  763. package/dist/esm/libs/index.mjs +1 -3
  764. package/dist/esm/providers/ReactQueryProvider.mjs +1 -86
  765. package/dist/esm/providers/ReactQueryProvider.mjs.map +1 -1
  766. package/dist/esm/providers/index.mjs +1 -4
  767. package/dist/esm/tailwind.config.mjs +1 -15
  768. package/dist/esm/tailwind.config.mjs.map +1 -1
  769. package/dist/esm/utils/cn.mjs +1 -8
  770. package/dist/esm/utils/cn.mjs.map +1 -1
  771. package/dist/esm/utils/image.mjs +1 -51
  772. package/dist/esm/utils/image.mjs.map +1 -1
  773. package/dist/esm/utils/object.mjs +1 -32
  774. package/dist/esm/utils/object.mjs.map +1 -1
  775. package/dist/types/components/Avatar/index.d.ts.map +1 -1
  776. package/dist/types/components/Breadcrumb/breadcrumb.content.d.ts +1 -1
  777. package/dist/types/components/Browser/Browser.content.d.ts +8 -8
  778. package/dist/types/components/Button/Button.d.ts +3 -3
  779. package/dist/types/components/Carousel/index.content.d.ts +5 -5
  780. package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts +2 -84
  781. package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts.map +1 -1
  782. package/dist/types/components/Command/index.d.ts +2 -2
  783. package/dist/types/components/Container/index.d.ts +7 -7
  784. package/dist/types/components/CopyButton/CopyButton.content.d.ts +1 -1
  785. package/dist/types/components/DictionaryEditor/NodeWrapper/ConditionWrapper.d.ts +1 -1
  786. package/dist/types/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.d.ts +1 -1
  787. package/dist/types/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts +1 -1
  788. package/dist/types/components/DictionaryEditor/NodeWrapper/FileWrapper.d.ts.map +1 -1
  789. package/dist/types/components/DictionaryEditor/NodeWrapper/HtmlWrapper.d.ts +1 -1
  790. package/dist/types/components/DictionaryEditor/NodeWrapper/InsertionWrapper.d.ts +1 -1
  791. package/dist/types/components/DictionaryEditor/NodeWrapper/MarkdownWrapper.d.ts +1 -1
  792. package/dist/types/components/DictionaryEditor/NodeWrapper/TranslationWrapper.d.ts +1 -1
  793. package/dist/types/components/DictionaryEditor/NodeWrapper/index.d.ts.map +1 -1
  794. package/dist/types/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
  795. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts +12 -12
  796. package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts +4 -4
  797. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +27 -27
  798. package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +16 -16
  799. package/dist/types/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +12 -12
  800. package/dist/types/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +16 -16
  801. package/dist/types/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts +4 -4
  802. package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +3 -3
  803. package/dist/types/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts +2 -2
  804. package/dist/types/components/DictionaryFieldEditor/getIsEditableSection.d.ts.map +1 -1
  805. package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +15 -15
  806. package/dist/types/components/ExpandCollapse/expandCollapse.content.d.ts +3 -3
  807. package/dist/types/components/HTMLRender/HTMLRender.d.ts.map +1 -1
  808. package/dist/types/components/IDE/MonacoCode.d.ts.map +1 -1
  809. package/dist/types/components/IDE/code.content.d.ts +2 -2
  810. package/dist/types/components/IDE/copyCode.content.d.ts +2 -2
  811. package/dist/types/components/IDE/selectors.content.d.ts +6 -6
  812. package/dist/types/components/Input/Checkbox.d.ts +2 -2
  813. package/dist/types/components/Input/Input.d.ts +1 -1
  814. package/dist/types/components/Link/Link.d.ts +3 -3
  815. package/dist/types/components/Loader/index.content.d.ts +1 -1
  816. package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +8 -8
  817. package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +6 -6
  818. package/dist/types/components/Pagination/Pagination.d.ts +1 -1
  819. package/dist/types/components/Pagination/pagination.content.d.ts +7 -7
  820. package/dist/types/components/RightDrawer/rightDrawer.content.d.ts +2 -2
  821. package/dist/types/components/SwitchSelector/index.d.ts +2 -2
  822. package/dist/types/components/Tab/Tab.d.ts +1 -1
  823. package/dist/types/components/TabSelector/TabSelector.d.ts +1 -1
  824. package/dist/types/components/Table/table.content.d.ts +1 -1
  825. package/dist/types/components/Tag/index.d.ts +3 -3
  826. package/dist/types/components/Terminal/terminal.content.d.ts +2 -2
  827. package/package.json +14 -14
  828. package/tailwind.css +3 -1
@@ -1,60 +1,2 @@
1
- import { t } from "intlayer";
2
-
3
- //#region src/components/RightDrawer/rightDrawer.content.ts
4
- const rightDrawerContent = {
5
- key: "right-drawer",
6
- content: {
7
- goBack: t({
8
- en: "Go back",
9
- "en-GB": "Go back",
10
- ru: "Назад",
11
- ja: "戻る",
12
- fr: "Retour",
13
- ko: "뒤로",
14
- zh: "返回",
15
- es: "Volver",
16
- de: "Zurück",
17
- ar: "رجوع",
18
- it: "Indietro",
19
- pt: "Voltar",
20
- hi: "वापस जाएं",
21
- tr: "Geri dön",
22
- pl: "Wstecz",
23
- id: "Kembali",
24
- vi: "Quay lại",
25
- uk: "Назад"
26
- }),
27
- closeDrawer: t({
28
- en: "Close Drawer",
29
- "en-GB": "Close Drawer",
30
- ru: "Закрыть панель",
31
- ja: "引き出しを閉じる",
32
- fr: "Fermer le tiroir",
33
- ko: "서랍 닫기",
34
- zh: "关闭抽屉",
35
- es: "Cerrar cajón",
36
- de: "Schublade schließen",
37
- ar: "إغلاق الدرج",
38
- it: "Chiudi cassetto",
39
- pt: "Fechar gaveta",
40
- hi: "दराज बंद करें",
41
- tr: "Çekmeceyi kapat",
42
- pl: "Zamknij szufladę",
43
- id: "Tutup laci",
44
- vi: "Đóng ngăn kéo",
45
- uk: "Закрити бічну панель"
46
- })
47
- },
48
- title: "Right Drawer",
49
- description: "Localized UI strings for the Right Drawer component (labels: \"Go back\" and \"Close Drawer\").",
50
- tags: [
51
- "component",
52
- "right-drawer",
53
- "ui",
54
- "localization"
55
- ]
56
- };
57
-
58
- //#endregion
59
- export { rightDrawerContent as default };
1
+ import{t as e}from"intlayer";const t={key:`right-drawer`,content:{goBack:e({en:`Go back`,"en-GB":`Go back`,ru:`Назад`,ja:`戻る`,fr:`Retour`,ko:`뒤로`,zh:`返回`,es:`Volver`,de:`Zurück`,ar:`رجوع`,it:`Indietro`,pt:`Voltar`,hi:`वापस जाएं`,tr:`Geri dön`,pl:`Wstecz`,id:`Kembali`,vi:`Quay lại`,uk:`Назад`}),closeDrawer:e({en:`Close Drawer`,"en-GB":`Close Drawer`,ru:`Закрыть панель`,ja:`引き出しを閉じる`,fr:`Fermer le tiroir`,ko:`서랍 닫기`,zh:`关闭抽屉`,es:`Cerrar cajón`,de:`Schublade schließen`,ar:`إغلاق الدرج`,it:`Chiudi cassetto`,pt:`Fechar gaveta`,hi:`दराज बंद करें`,tr:`Çekmeceyi kapat`,pl:`Zamknij szufladę`,id:`Tutup laci`,vi:`Đóng ngăn kéo`,uk:`Закрити бічну панель`})},title:`Right Drawer`,description:`Localized UI strings for the Right Drawer component (labels: "Go back" and "Close Drawer").`,tags:[`component`,`right-drawer`,`ui`,`localization`]};export{t as default};
60
2
  //# sourceMappingURL=rightDrawer.content.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rightDrawer.content.mjs","names":[],"sources":["../../../../src/components/RightDrawer/rightDrawer.content.ts"],"sourcesContent":["import { type Dictionary, t } from 'intlayer';\n\nconst rightDrawerContent = {\n key: 'right-drawer',\n content: {\n goBack: t({\n en: 'Go back',\n 'en-GB': 'Go back',\n ru: 'Назад',\n ja: '戻る',\n fr: 'Retour',\n ko: '뒤로',\n zh: '返回',\n es: 'Volver',\n de: 'Zurück',\n ar: 'رجوع',\n it: 'Indietro',\n pt: 'Voltar',\n hi: 'वापस जाएं',\n tr: 'Geri dön',\n pl: 'Wstecz',\n id: 'Kembali',\n vi: 'Quay lại',\n uk: 'Назад',\n }),\n closeDrawer: t({\n en: 'Close Drawer',\n 'en-GB': 'Close Drawer',\n ru: 'Закрыть панель',\n ja: '引き出しを閉じる',\n fr: 'Fermer le tiroir',\n ko: '서랍 닫기',\n zh: '关闭抽屉',\n es: 'Cerrar cajón',\n de: 'Schublade schließen',\n ar: 'إغلاق الدرج',\n it: 'Chiudi cassetto',\n pt: 'Fechar gaveta',\n hi: 'दराज बंद करें',\n tr: 'Çekmeceyi kapat',\n pl: 'Zamknij szufladę',\n id: 'Tutup laci',\n vi: 'Đóng ngăn kéo',\n uk: 'Закрити бічну панель',\n }),\n },\n title: 'Right Drawer',\n description:\n 'Localized UI strings for the Right Drawer component (labels: \"Go back\" and \"Close Drawer\").',\n tags: ['component', 'right-drawer', 'ui', 'localization'],\n} satisfies Dictionary;\n\nexport default rightDrawerContent;\n"],"mappings":";;;AAEA,MAAM,qBAAqB;CACzB,KAAK;CACL,SAAS;EACP,QAAQ,EAAE;GACR,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL,CAAC;EACF,aAAa,EAAE;GACb,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL,CAAC;EACH;CACD,OAAO;CACP,aACE;CACF,MAAM;EAAC;EAAa;EAAgB;EAAM;EAAe;CAC1D"}
1
+ {"version":3,"file":"rightDrawer.content.mjs","names":[],"sources":["../../../../src/components/RightDrawer/rightDrawer.content.ts"],"sourcesContent":["import { type Dictionary, t } from 'intlayer';\n\nconst rightDrawerContent = {\n key: 'right-drawer',\n content: {\n goBack: t({\n en: 'Go back',\n 'en-GB': 'Go back',\n ru: 'Назад',\n ja: '戻る',\n fr: 'Retour',\n ko: '뒤로',\n zh: '返回',\n es: 'Volver',\n de: 'Zurück',\n ar: 'رجوع',\n it: 'Indietro',\n pt: 'Voltar',\n hi: 'वापस जाएं',\n tr: 'Geri dön',\n pl: 'Wstecz',\n id: 'Kembali',\n vi: 'Quay lại',\n uk: 'Назад',\n }),\n closeDrawer: t({\n en: 'Close Drawer',\n 'en-GB': 'Close Drawer',\n ru: 'Закрыть панель',\n ja: '引き出しを閉じる',\n fr: 'Fermer le tiroir',\n ko: '서랍 닫기',\n zh: '关闭抽屉',\n es: 'Cerrar cajón',\n de: 'Schublade schließen',\n ar: 'إغلاق الدرج',\n it: 'Chiudi cassetto',\n pt: 'Fechar gaveta',\n hi: 'दराज बंद करें',\n tr: 'Çekmeceyi kapat',\n pl: 'Zamknij szufladę',\n id: 'Tutup laci',\n vi: 'Đóng ngăn kéo',\n uk: 'Закрити бічну панель',\n }),\n },\n title: 'Right Drawer',\n description:\n 'Localized UI strings for the Right Drawer component (labels: \"Go back\" and \"Close Drawer\").',\n tags: ['component', 'right-drawer', 'ui', 'localization'],\n} satisfies Dictionary;\n\nexport default rightDrawerContent;\n"],"mappings":"6BAEA,MAAM,EAAqB,CACzB,IAAK,eACL,QAAS,CACP,OAAQ,EAAE,CACR,GAAI,UACJ,QAAS,UACT,GAAI,QACJ,GAAI,KACJ,GAAI,SACJ,GAAI,KACJ,GAAI,KACJ,GAAI,SACJ,GAAI,SACJ,GAAI,OACJ,GAAI,WACJ,GAAI,SACJ,GAAI,YACJ,GAAI,WACJ,GAAI,SACJ,GAAI,UACJ,GAAI,WACJ,GAAI,QACL,CAAC,CACF,YAAa,EAAE,CACb,GAAI,eACJ,QAAS,eACT,GAAI,iBACJ,GAAI,WACJ,GAAI,mBACJ,GAAI,QACJ,GAAI,OACJ,GAAI,eACJ,GAAI,sBACJ,GAAI,cACJ,GAAI,kBACJ,GAAI,gBACJ,GAAI,gBACJ,GAAI,kBACJ,GAAI,mBACJ,GAAI,aACJ,GAAI,gBACJ,GAAI,uBACL,CAAC,CACH,CACD,MAAO,eACP,YACE,8FACF,KAAM,CAAC,YAAa,eAAgB,KAAM,eAAe,CAC1D"}
@@ -1,65 +1,2 @@
1
- 'use client';
2
-
3
- import { useSyncExternalStore } from "react";
4
-
5
- //#region src/components/RightDrawer/useRightDrawer.ts
6
- var DrawerObservable = class {
7
- listeners = /* @__PURE__ */ new Set();
8
- drawers = {};
9
- subscribe = (listener) => {
10
- this.listeners.add(listener);
11
- return () => {
12
- this.listeners.delete(listener);
13
- };
14
- };
15
- getSnapshot = () => {
16
- return this.drawers;
17
- };
18
- open = (key) => {
19
- if (this.drawers[key]) return;
20
- this.drawers = {
21
- ...this.drawers,
22
- [key]: true
23
- };
24
- this.emit();
25
- };
26
- close = (key) => {
27
- if (!this.drawers[key]) return;
28
- this.drawers = {
29
- ...this.drawers,
30
- [key]: false
31
- };
32
- this.emit();
33
- };
34
- set = (states) => {
35
- let changed = false;
36
- const newDrawers = { ...this.drawers };
37
- for (const [key, value] of Object.entries(states)) if (newDrawers[key] !== value) {
38
- newDrawers[key] = value;
39
- changed = true;
40
- }
41
- if (changed) {
42
- this.drawers = newDrawers;
43
- this.emit();
44
- }
45
- };
46
- emit = () => {
47
- this.listeners.forEach((listener) => {
48
- listener();
49
- });
50
- };
51
- };
52
- const drawerManager = new DrawerObservable();
53
- const useRightDrawer = () => {
54
- const drawers = useSyncExternalStore(drawerManager.subscribe, drawerManager.getSnapshot, () => ({}));
55
- return {
56
- open: drawerManager.open,
57
- close: drawerManager.close,
58
- set: drawerManager.set,
59
- isOpen: (key) => !!drawers[key]
60
- };
61
- };
62
-
63
- //#endregion
64
- export { drawerManager, useRightDrawer };
1
+ "use client";import{useSyncExternalStore as e}from"react";const t=new class{listeners=new Set;drawers={};subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});getSnapshot=()=>this.drawers;open=e=>{this.drawers[e]||(this.drawers={...this.drawers,[e]:!0},this.emit())};close=e=>{this.drawers[e]&&(this.drawers={...this.drawers,[e]:!1},this.emit())};set=e=>{let t=!1,n={...this.drawers};for(let[r,i]of Object.entries(e))n[r]!==i&&(n[r]=i,t=!0);t&&(this.drawers=n,this.emit())};emit=()=>{this.listeners.forEach(e=>{e()})}},n=()=>{let n=e(t.subscribe,t.getSnapshot,()=>({}));return{open:t.open,close:t.close,set:t.set,isOpen:e=>!!n[e]}};export{t as drawerManager,n as useRightDrawer};
65
2
  //# sourceMappingURL=useRightDrawer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRightDrawer.mjs","names":[],"sources":["../../../../src/components/RightDrawer/useRightDrawer.ts"],"sourcesContent":["'use client';\n\nimport { useSyncExternalStore } from 'react';\n\ntype DrawerState = Record<string, boolean>;\n\nclass DrawerObservable {\n private listeners = new Set<() => void>();\n private drawers: DrawerState = {};\n\n subscribe = (listener: () => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n getSnapshot = () => {\n return this.drawers;\n };\n\n open = (key: string) => {\n if (this.drawers[key]) return;\n this.drawers = { ...this.drawers, [key]: true };\n this.emit();\n };\n\n close = (key: string) => {\n if (!this.drawers[key]) return;\n this.drawers = { ...this.drawers, [key]: false };\n this.emit();\n };\n\n set = (states: DrawerState) => {\n let changed = false;\n const newDrawers = { ...this.drawers };\n\n for (const [key, value] of Object.entries(states)) {\n if (newDrawers[key] !== value) {\n newDrawers[key] = value;\n changed = true;\n }\n }\n\n if (changed) {\n this.drawers = newDrawers;\n this.emit();\n }\n };\n\n private emit = () => {\n this.listeners.forEach((listener) => {\n listener();\n });\n };\n}\n\nexport const drawerManager = new DrawerObservable();\n\nexport const useRightDrawer = () => {\n const drawers = useSyncExternalStore(\n drawerManager.subscribe,\n drawerManager.getSnapshot,\n () => ({}) as DrawerState\n );\n\n return {\n open: drawerManager.open,\n close: drawerManager.close,\n set: drawerManager.set,\n isOpen: (key: string) => !!drawers[key],\n };\n};\n"],"mappings":";;;;;AAMA,IAAM,mBAAN,MAAuB;CACrB,AAAQ,4BAAY,IAAI,KAAiB;CACzC,AAAQ,UAAuB,EAAE;CAEjC,aAAa,aAAyB;AACpC,OAAK,UAAU,IAAI,SAAS;AAC5B,eAAa;AACX,QAAK,UAAU,OAAO,SAAS;;;CAInC,oBAAoB;AAClB,SAAO,KAAK;;CAGd,QAAQ,QAAgB;AACtB,MAAI,KAAK,QAAQ,KAAM;AACvB,OAAK,UAAU;GAAE,GAAG,KAAK;IAAU,MAAM;GAAM;AAC/C,OAAK,MAAM;;CAGb,SAAS,QAAgB;AACvB,MAAI,CAAC,KAAK,QAAQ,KAAM;AACxB,OAAK,UAAU;GAAE,GAAG,KAAK;IAAU,MAAM;GAAO;AAChD,OAAK,MAAM;;CAGb,OAAO,WAAwB;EAC7B,IAAI,UAAU;EACd,MAAM,aAAa,EAAE,GAAG,KAAK,SAAS;AAEtC,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,CAC/C,KAAI,WAAW,SAAS,OAAO;AAC7B,cAAW,OAAO;AAClB,aAAU;;AAId,MAAI,SAAS;AACX,QAAK,UAAU;AACf,QAAK,MAAM;;;CAIf,AAAQ,aAAa;AACnB,OAAK,UAAU,SAAS,aAAa;AACnC,aAAU;IACV;;;AAIN,MAAa,gBAAgB,IAAI,kBAAkB;AAEnD,MAAa,uBAAuB;CAClC,MAAM,UAAU,qBACd,cAAc,WACd,cAAc,oBACP,EAAE,EACV;AAED,QAAO;EACL,MAAM,cAAc;EACpB,OAAO,cAAc;EACrB,KAAK,cAAc;EACnB,SAAS,QAAgB,CAAC,CAAC,QAAQ;EACpC"}
1
+ {"version":3,"file":"useRightDrawer.mjs","names":[],"sources":["../../../../src/components/RightDrawer/useRightDrawer.ts"],"sourcesContent":["'use client';\n\nimport { useSyncExternalStore } from 'react';\n\ntype DrawerState = Record<string, boolean>;\n\nclass DrawerObservable {\n private listeners = new Set<() => void>();\n private drawers: DrawerState = {};\n\n subscribe = (listener: () => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n getSnapshot = () => {\n return this.drawers;\n };\n\n open = (key: string) => {\n if (this.drawers[key]) return;\n this.drawers = { ...this.drawers, [key]: true };\n this.emit();\n };\n\n close = (key: string) => {\n if (!this.drawers[key]) return;\n this.drawers = { ...this.drawers, [key]: false };\n this.emit();\n };\n\n set = (states: DrawerState) => {\n let changed = false;\n const newDrawers = { ...this.drawers };\n\n for (const [key, value] of Object.entries(states)) {\n if (newDrawers[key] !== value) {\n newDrawers[key] = value;\n changed = true;\n }\n }\n\n if (changed) {\n this.drawers = newDrawers;\n this.emit();\n }\n };\n\n private emit = () => {\n this.listeners.forEach((listener) => {\n listener();\n });\n };\n}\n\nexport const drawerManager = new DrawerObservable();\n\nexport const useRightDrawer = () => {\n const drawers = useSyncExternalStore(\n drawerManager.subscribe,\n drawerManager.getSnapshot,\n () => ({}) as DrawerState\n );\n\n return {\n open: drawerManager.open,\n close: drawerManager.close,\n set: drawerManager.set,\n isOpen: (key: string) => !!drawers[key],\n };\n};\n"],"mappings":"0DAyDA,MAAa,EAAgB,IAnD7B,KAAuB,CACrB,UAAoB,IAAI,IACxB,QAA+B,EAAE,CAEjC,UAAa,IACX,KAAK,UAAU,IAAI,EAAS,KACf,CACX,KAAK,UAAU,OAAO,EAAS,GAInC,gBACS,KAAK,QAGd,KAAQ,GAAgB,CAClB,KAAK,QAAQ,KACjB,KAAK,QAAU,CAAE,GAAG,KAAK,SAAU,GAAM,GAAM,CAC/C,KAAK,MAAM,GAGb,MAAS,GAAgB,CAClB,KAAK,QAAQ,KAClB,KAAK,QAAU,CAAE,GAAG,KAAK,SAAU,GAAM,GAAO,CAChD,KAAK,MAAM,GAGb,IAAO,GAAwB,CAC7B,IAAI,EAAU,GACR,EAAa,CAAE,GAAG,KAAK,QAAS,CAEtC,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAO,CAC3C,EAAW,KAAS,IACtB,EAAW,GAAO,EAClB,EAAU,IAIV,IACF,KAAK,QAAU,EACf,KAAK,MAAM,GAIf,SAAqB,CACnB,KAAK,UAAU,QAAS,GAAa,CACnC,GAAU,EACV,GAMO,MAAuB,CAClC,IAAM,EAAU,EACd,EAAc,UACd,EAAc,iBACP,EAAE,EACV,CAED,MAAO,CACL,KAAM,EAAc,KACpB,MAAO,EAAc,MACrB,IAAK,EAAc,IACnB,OAAS,GAAgB,CAAC,CAAC,EAAQ,GACpC"}
@@ -1,354 +1,2 @@
1
- 'use client';
2
-
3
- import { cn } from "../../utils/cn.mjs";
4
- import { Badge, BadgeColor } from "../Badge/index.mjs";
5
- import { Command, CommandRoot } from "../Command/index.mjs";
6
- import { Check, X } from "lucide-react";
7
- import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
8
- import { jsx, jsxs } from "react/jsx-runtime";
9
-
10
- //#region src/components/Select/Multiselect.tsx
11
- const MultiSelectContext = createContext(null);
12
- /**
13
- * Custom hook to access MultiSelect context
14
- *
15
- * Provides access to the internal state and methods of the MultiSelect component.
16
- * Must be used within a MultiSelect component tree.
17
- *
18
- * @returns MultiSelectContextProps - All context properties and methods
19
- * @throws Error when used outside of MultiSelect component
20
- *
21
- * @example
22
- * ```tsx
23
- * function CustomMultiSelectItem() {
24
- * const { value, onValueChange, open } = useMultiSelect();
25
- * // Use context properties...
26
- * }
27
- * ```
28
- */
29
- const useMultiSelect = () => {
30
- const context = useContext(MultiSelectContext);
31
- if (!context) throw new Error("useMultiSelect must be used within MultiSelectProvider");
32
- return context;
33
- };
34
- /**
35
- * MultiSelect - A comprehensive multi-selection dropdown component
36
- *
37
- * An advanced multi-select component that combines the functionality of a searchable dropdown
38
- * with the ability to select multiple values. Built on top of Command component primitives,
39
- * it provides filtering, keyboard navigation, and visual feedback through badges.
40
- *
41
- * ## Key Features
42
- * - **Multi-Selection**: Select multiple options with visual badge representation
43
- * - **Searchable**: Built-in filtering to quickly find options in large lists
44
- * - **Keyboard Navigation**: Full arrow key navigation with optional looping
45
- * - **Accessibility**: Screen reader support, ARIA attributes, and focus management
46
- * - **Flexible State**: Both controlled and uncontrolled usage patterns
47
- * - **Rich UI**: Customizable badges, icons, and content layout
48
- *
49
- * ## Use Cases
50
- * - Tag/category selection in forms
51
- * - Multi-user assignment interfaces
52
- * - Feature/permission selection
53
- * - Filter selection in search interfaces
54
- * - Any multi-choice selection requirement
55
- *
56
- * ## Architecture
57
- * The component follows a compound pattern similar to Select:
58
- * - `MultiSelect` (root): Manages state and provides context
59
- * - `MultiSelect.Trigger`: Container for input and selected badges
60
- * - `MultiSelect.Input`: Searchable input field with filtering
61
- * - `MultiSelect.Content`: Dropdown container for options
62
- * - `MultiSelect.List`: Options container with keyboard navigation
63
- * - `MultiSelect.Item`: Individual selectable options
64
- *
65
- * ## Accessibility
66
- * - **Keyboard Navigation**: Arrow keys, Enter to select, Backspace to remove
67
- * - **Screen Readers**: Proper ARIA labels and live region announcements
68
- * - **Focus Management**: Clear focus indicators and logical tab flow
69
- * - **Search**: Real-time filtering with screen reader announcements
70
- *
71
- * @example
72
- * Basic multi-select usage:
73
- * ```tsx
74
- * const [frameworks, setFrameworks] = useState<string[]>([]);
75
- *
76
- * <MultiSelect values={frameworks} onValueChange={setFrameworks}>
77
- * <MultiSelect.Trigger>
78
- * <MultiSelect.Input placeholder="Select frameworks..." />
79
- * </MultiSelect.Trigger>
80
- * <MultiSelect.Content>
81
- * <MultiSelect.List>
82
- * <MultiSelect.Item value="react">React</MultiSelect.Item>
83
- * <MultiSelect.Item value="vue">Vue</MultiSelect.Item>
84
- * <MultiSelect.Item value="svelte">Svelte</MultiSelect.Item>
85
- * </MultiSelect.List>
86
- * </MultiSelect.Content>
87
- * </MultiSelect>
88
- * ```
89
- *
90
- * @example
91
- * Advanced usage with keyboard looping:
92
- * ```tsx
93
- * <MultiSelect defaultValues={['react']} loop>
94
- * <MultiSelect.Trigger>
95
- * <MultiSelect.Input placeholder="Choose technologies..." />
96
- * </MultiSelect.Trigger>
97
- * <MultiSelect.Content>
98
- * <MultiSelect.List>
99
- * <MultiSelect.Item value="react">⚛️ React</MultiSelect.Item>
100
- * <MultiSelect.Item value="vue">💚 Vue</MultiSelect.Item>
101
- * <MultiSelect.Item value="angular">🔴 Angular</MultiSelect.Item>
102
- * </MultiSelect.List>
103
- * </MultiSelect.Content>
104
- * </MultiSelect>
105
- * ```
106
- *
107
- * @example
108
- * Form integration with validation:
109
- * ```tsx
110
- * <form>
111
- * <MultiSelect
112
- * values={selectedSkills}
113
- * onValueChange={setSelectedSkills}
114
- * required
115
- * >
116
- * <MultiSelect.Trigger className="min-h-[2.5rem]">
117
- * <MultiSelect.Input placeholder="Select your skills..." />
118
- * </MultiSelect.Trigger>
119
- * <MultiSelect.Content>
120
- * <MultiSelect.List>
121
- * <MultiSelect.Item value="javascript">JavaScript</MultiSelect.Item>
122
- * <MultiSelect.Item value="typescript">TypeScript</MultiSelect.Item>
123
- * <MultiSelect.Item value="python">Python</MultiSelect.Item>
124
- * </MultiSelect.List>
125
- * </MultiSelect.Content>
126
- * </MultiSelect>
127
- * </form>
128
- * ```
129
- */
130
- const MultiSelectRoot = ({ values: valuesProp, defaultValues, onValueChange, loop = false, className, children, dir, ...props }) => {
131
- const [value, setValue] = useState(defaultValues ?? []);
132
- const [inputValue, setInputValue] = useState("");
133
- const [open, setOpen] = useState(false);
134
- const [activeIndex, setActiveIndex] = useState(-1);
135
- const inputRef = useRef(null);
136
- const [isValueSelected, setIsValueSelected] = useState(false);
137
- const [selectedValue, setSelectedValue] = useState("");
138
- useEffect(() => {
139
- if (valuesProp) setValue(valuesProp);
140
- }, [valuesProp]);
141
- const onValueChangeHandler = useCallback((val) => {
142
- if (value.includes(val)) {
143
- const newValue = value.filter((item) => item !== val);
144
- setValue(newValue);
145
- onValueChange?.(newValue);
146
- } else {
147
- const newValue = [...value, val];
148
- setValue(newValue);
149
- onValueChange?.(newValue);
150
- }
151
- }, [value]);
152
- const handleSelect = useCallback((e) => {
153
- e.preventDefault();
154
- const target = e.currentTarget;
155
- const selection = target.value.substring(target.selectionStart ?? 0, target.selectionEnd ?? 0);
156
- setSelectedValue(selection);
157
- setIsValueSelected(selection === inputValue);
158
- }, [inputValue]);
159
- const handleKeyDown = useCallback((e) => {
160
- e.stopPropagation();
161
- const target = inputRef.current;
162
- if (!target) return;
163
- const moveNext = () => {
164
- const nextIndex = activeIndex + 1;
165
- setActiveIndex(nextIndex > value.length - 1 ? loop ? 0 : -1 : nextIndex);
166
- };
167
- const movePrev = () => {
168
- const prevIndex = activeIndex - 1;
169
- setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);
170
- };
171
- const moveCurrent = () => {
172
- setActiveIndex(activeIndex - 1 <= 0 ? value.length - 1 === 0 ? -1 : 0 : activeIndex - 1);
173
- };
174
- switch (e.key) {
175
- case "ArrowLeft":
176
- if (dir === "rtl") {
177
- if (value.length > 0 && (activeIndex !== -1 || loop)) moveNext();
178
- } else if (value.length > 0 && target.selectionStart === 0) movePrev();
179
- break;
180
- case "ArrowRight":
181
- if (dir === "rtl") {
182
- if (value.length > 0 && target.selectionStart === 0) movePrev();
183
- } else if (value.length > 0 && (activeIndex !== -1 || loop)) moveNext();
184
- break;
185
- case "Backspace":
186
- case "Delete":
187
- if (value.length > 0) {
188
- if (activeIndex !== -1 && activeIndex < value.length) {
189
- onValueChangeHandler(value[activeIndex]);
190
- moveCurrent();
191
- } else if (target.selectionStart === 0 && selectedValue === inputValue || isValueSelected) onValueChangeHandler(value[value.length - 1]);
192
- }
193
- break;
194
- case "Enter":
195
- setOpen(true);
196
- break;
197
- case "Escape":
198
- if (activeIndex !== -1) setActiveIndex(-1);
199
- else if (open) setOpen(false);
200
- break;
201
- }
202
- }, [
203
- value,
204
- inputValue,
205
- activeIndex,
206
- loop
207
- ]);
208
- return /* @__PURE__ */ jsx(MultiSelectContext, {
209
- value: useMemo(() => ({
210
- value,
211
- onValueChange: onValueChangeHandler,
212
- open,
213
- setOpen,
214
- inputValue,
215
- setInputValue,
216
- activeIndex,
217
- setActiveIndex,
218
- ref: inputRef,
219
- handleSelect
220
- }), [
221
- value,
222
- onValueChangeHandler,
223
- open,
224
- setOpen,
225
- inputValue,
226
- setInputValue,
227
- activeIndex,
228
- setActiveIndex,
229
- inputRef,
230
- handleSelect
231
- ]),
232
- children: /* @__PURE__ */ jsx(CommandRoot, {
233
- onKeyDown: handleKeyDown,
234
- className: cn("flex w-full flex-col gap-2 overflow-visible bg-transparent", className),
235
- dir,
236
- ...props,
237
- children
238
- })
239
- });
240
- };
241
- const MultiSelectTrigger = ({ className, getBadgeValue = (value) => value, validationStyleEnabled = false, children, ...props }) => {
242
- const { value, onValueChange, activeIndex } = useMultiSelect();
243
- const mousePreventDefault = useCallback((e) => {
244
- e.preventDefault();
245
- e.stopPropagation();
246
- }, []);
247
- return /* @__PURE__ */ jsxs("div", {
248
- className: cn("flex w-full flex-col gap-3", "cursor-pointer select-text text-base shadow-none outline-none md:text-sm", "rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl", "px-2 py-3 md:py-2", "bg-neutral-50 dark:bg-neutral-950", "text-text", "ring-0", "focus-within:outline-none", "focus-within:ring-3", "focus-within:ring-neutral-200", "dark:focus-within:ring-neutral-500", "focus-within:ring-offset-white", "dark:focus-within:ring-offset-neutral-500", "[box-shadow:none]", "disabled:cursor-not-allowed disabled:opacity-50", "aria-invalid:border-error", validationStyleEnabled && "valid:border-success invalid:border-error", className),
249
- ...props,
250
- children: [value.length > 0 && /* @__PURE__ */ jsx("div", {
251
- className: "flex w-full flex-wrap gap-1",
252
- children: value.map((item, index) => /* @__PURE__ */ jsxs(Badge, {
253
- className: cn("flex items-center gap-1 rounded-xl px-1", activeIndex === index && "ring-2 ring-muted-foreground"),
254
- color: BadgeColor.TEXT,
255
- children: [/* @__PURE__ */ jsx("span", {
256
- className: "text-xs",
257
- children: getBadgeValue(item)
258
- }), /* @__PURE__ */ jsxs("button", {
259
- "aria-label": `Remove ${item} option`,
260
- "aria-roledescription": "button to remove option",
261
- onMouseDown: mousePreventDefault,
262
- onClick: () => onValueChange(item),
263
- children: [/* @__PURE__ */ jsxs("span", {
264
- className: "sr-only",
265
- children: [
266
- "Remove ",
267
- item,
268
- " option"
269
- ]
270
- }), /* @__PURE__ */ jsx(X, { className: "size-4 cursor-pointer" })]
271
- })]
272
- }, item))
273
- }), children]
274
- });
275
- };
276
- const MultiSelectInput = ({ className, ...props }) => {
277
- const { setOpen, inputValue, setInputValue, activeIndex, setActiveIndex, handleSelect, ref: inputRef } = useMultiSelect();
278
- return /* @__PURE__ */ jsx(Command.Input, {
279
- ...props,
280
- tabIndex: 0,
281
- ref: inputRef,
282
- value: inputValue,
283
- onValueChange: activeIndex === -1 ? setInputValue : void 0,
284
- onSelect: handleSelect,
285
- onBlur: () => setOpen(false),
286
- onFocus: () => setOpen(true),
287
- onClick: () => setActiveIndex(-1),
288
- className: cn("ml-2 flex-1 cursor-pointer outline-hidden", className, activeIndex !== -1 && "caret-transparent")
289
- });
290
- };
291
- const MultiSelectContent = ({ children }) => {
292
- const { open } = useMultiSelect();
293
- return /* @__PURE__ */ jsx("div", {
294
- className: "relative",
295
- children: open && children
296
- });
297
- };
298
- const MultiSelectList = ({ className, children }) => /* @__PURE__ */ jsxs(Command.List, {
299
- className: cn("absolute top-0 z-10 flex w-full flex-col gap-2", "rounded-xl p-2 shadow-md", "bg-white dark:bg-neutral-950", "text-text", "border border-neutral-200 dark:border-neutral-800", "transition-colors", className),
300
- children: [children, /* @__PURE__ */ jsx(Command.Empty, { children: /* @__PURE__ */ jsx("span", {
301
- className: "text-muted-foreground",
302
- children: "No results found"
303
- }) })]
304
- });
305
- const MultiSelectItem = ({ className, value, children, ...props }) => {
306
- const { value: Options, onValueChange, setInputValue } = useMultiSelect();
307
- const mousePreventDefault = useCallback((e) => {
308
- e.preventDefault();
309
- e.stopPropagation();
310
- }, []);
311
- const isIncluded = Options.includes(value);
312
- return /* @__PURE__ */ jsxs(Command.Item, {
313
- ...props,
314
- onSelect: () => {
315
- onValueChange(value);
316
- setInputValue("");
317
- },
318
- className: cn("flex cursor-pointer justify-between", "rounded-lg px-2 py-1", "transition-colors", "hover:bg-neutral/10", isIncluded && "opacity-50", props.disabled && "cursor-not-allowed opacity-50", className),
319
- onMouseDown: mousePreventDefault,
320
- children: [children, isIncluded && /* @__PURE__ */ jsx(Check, { className: "size-4" })]
321
- });
322
- };
323
- /**
324
- *
325
- * Usage example:
326
- * ```jsx
327
- * <MultiSelect
328
- * values={value}
329
- * onValuesChange={setValue}
330
- * loop
331
- * >
332
- * <MultiSelect.Trigger>
333
- * <MultiSelect.Input placeholder="Select your framework" />
334
- * </MultiSelect.Trigger>
335
- * <MultiSelect.Content>
336
- * <MultiSelect.List>
337
- * <MultiSelect.Item value={"React"}>React</MultiSelect.Item>
338
- * <MultiSelect.Item value={"Vue"}>Vue</MultiSelect.Item>
339
- * <MultiSelect.Item value={"Svelte"}>Svelte</MultiSelect.Item>
340
- * </MultiSelect.List>
341
- * </MultiSelect.Content>
342
- * </MultiSelect>
343
- * ```
344
- */
345
- const MultiSelect = MultiSelectRoot;
346
- MultiSelect.Trigger = MultiSelectTrigger;
347
- MultiSelect.Input = MultiSelectInput;
348
- MultiSelect.Content = MultiSelectContent;
349
- MultiSelect.List = MultiSelectList;
350
- MultiSelect.Item = MultiSelectItem;
351
-
352
- //#endregion
353
- export { MultiSelect };
1
+ "use client";import{cn as e}from"../../utils/cn.mjs";import{Badge as t,BadgeColor as n}from"../Badge/index.mjs";import{Command as r,CommandRoot as i}from"../Command/index.mjs";import{Check as a,X as o}from"lucide-react";import{createContext as s,useCallback as c,useContext as l,useEffect as u,useMemo as d,useRef as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";const g=s(null),_=()=>{let e=l(g);if(!e)throw Error(`useMultiSelect must be used within MultiSelectProvider`);return e},v=({values:t,defaultValues:n,onValueChange:r,loop:a=!1,className:o,children:s,dir:l,...h})=>{let[_,v]=p(n??[]),[y,b]=p(``),[x,S]=p(!1),[C,w]=p(-1),T=f(null),[E,D]=p(!1),[O,k]=p(``);u(()=>{t&&v(t)},[t]);let A=c(e=>{if(_.includes(e)){let t=_.filter(t=>t!==e);v(t),r?.(t)}else{let t=[..._,e];v(t),r?.(t)}},[_]),j=c(e=>{e.preventDefault();let t=e.currentTarget,n=t.value.substring(t.selectionStart??0,t.selectionEnd??0);k(n),D(n===y)},[y]),M=c(e=>{e.stopPropagation();let t=T.current;if(!t)return;let n=()=>{let e=C+1;w(e>_.length-1?a?0:-1:e)},r=()=>{let e=C-1;w(e<0?_.length-1:e)},i=()=>{w(C-1<=0?_.length-1==0?-1:0:C-1)};switch(e.key){case`ArrowLeft`:l===`rtl`?_.length>0&&(C!==-1||a)&&n():_.length>0&&t.selectionStart===0&&r();break;case`ArrowRight`:l===`rtl`?_.length>0&&t.selectionStart===0&&r():_.length>0&&(C!==-1||a)&&n();break;case`Backspace`:case`Delete`:_.length>0&&(C!==-1&&C<_.length?(A(_[C]),i()):(t.selectionStart===0&&O===y||E)&&A(_[_.length-1]));break;case`Enter`:S(!0);break;case`Escape`:C===-1?x&&S(!1):w(-1);break}},[_,y,C,a]);return m(g,{value:d(()=>({value:_,onValueChange:A,open:x,setOpen:S,inputValue:y,setInputValue:b,activeIndex:C,setActiveIndex:w,ref:T,handleSelect:j}),[_,A,x,S,y,b,C,w,T,j]),children:m(i,{onKeyDown:M,className:e(`flex w-full flex-col gap-2 overflow-visible bg-transparent`,o),dir:l,...h,children:s})})},y=({className:r,getBadgeValue:i=e=>e,validationStyleEnabled:a=!1,children:s,...l})=>{let{value:u,onValueChange:d,activeIndex:f}=_(),p=c(e=>{e.preventDefault(),e.stopPropagation()},[]);return h(`div`,{className:e(`flex w-full flex-col gap-3`,`cursor-pointer select-text text-base shadow-none outline-none md:text-sm`,`rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl`,`px-2 py-3 md:py-2`,`bg-neutral-50 dark:bg-neutral-950`,`text-text`,`ring-0`,`focus-within:outline-none`,`focus-within:ring-3`,`focus-within:ring-neutral-200`,`dark:focus-within:ring-neutral-500`,`focus-within:ring-offset-white`,`dark:focus-within:ring-offset-neutral-500`,`[box-shadow:none]`,`disabled:cursor-not-allowed disabled:opacity-50`,`aria-invalid:border-error`,a&&`valid:border-success invalid:border-error`,r),...l,children:[u.length>0&&m(`div`,{className:`flex w-full flex-wrap gap-1`,children:u.map((r,a)=>h(t,{className:e(`flex items-center gap-1 rounded-xl px-1`,f===a&&`ring-2 ring-muted-foreground`),color:n.TEXT,children:[m(`span`,{className:`text-xs`,children:i(r)}),h(`button`,{"aria-label":`Remove ${r} option`,"aria-roledescription":`button to remove option`,onMouseDown:p,onClick:()=>d(r),children:[h(`span`,{className:`sr-only`,children:[`Remove `,r,` option`]}),m(o,{className:`size-4 cursor-pointer`})]})]},r))}),s]})},b=({className:t,...n})=>{let{setOpen:i,inputValue:a,setInputValue:o,activeIndex:s,setActiveIndex:c,handleSelect:l,ref:u}=_();return m(r.Input,{...n,tabIndex:0,ref:u,value:a,onValueChange:s===-1?o:void 0,onSelect:l,onBlur:()=>i(!1),onFocus:()=>i(!0),onClick:()=>c(-1),className:e(`ml-2 flex-1 cursor-pointer outline-hidden`,t,s!==-1&&`caret-transparent`)})},x=({children:e})=>{let{open:t}=_();return m(`div`,{className:`relative`,children:t&&e})},S=({className:t,children:n})=>h(r.List,{className:e(`absolute top-0 z-10 flex w-full flex-col gap-2`,`rounded-xl p-2 shadow-md`,`bg-white dark:bg-neutral-950`,`text-text`,`border border-neutral-200 dark:border-neutral-800`,`transition-colors`,t),children:[n,m(r.Empty,{children:m(`span`,{className:`text-muted-foreground`,children:`No results found`})})]}),C=({className:t,value:n,children:i,...o})=>{let{value:s,onValueChange:l,setInputValue:u}=_(),d=c(e=>{e.preventDefault(),e.stopPropagation()},[]),f=s.includes(n);return h(r.Item,{...o,onSelect:()=>{l(n),u(``)},className:e(`flex cursor-pointer justify-between`,`rounded-lg px-2 py-1`,`transition-colors`,`hover:bg-neutral/10`,f&&`opacity-50`,o.disabled&&`cursor-not-allowed opacity-50`,t),onMouseDown:d,children:[i,f&&m(a,{className:`size-4`})]})},w=v;w.Trigger=y,w.Input=b,w.Content=x,w.List=S,w.Item=C;export{w as MultiSelect};
354
2
  //# sourceMappingURL=Multiselect.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Multiselect.mjs","names":["RemoveIcon"],"sources":["../../../../src/components/Select/Multiselect.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport { Check, X as RemoveIcon } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type Dispatch,\n type FC,\n type HTMLAttributes,\n type KeyboardEvent,\n type LegacyRef,\n type MouseEventHandler,\n type RefObject,\n type SetStateAction,\n type SyntheticEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Badge, BadgeColor } from '../Badge';\nimport { Command, CommandRoot } from '../Command';\n\n/**\n * Context properties for MultiSelect component state management\n *\n * @interface MultiSelectContextProps\n */\ntype MultiSelectContextProps = {\n /** Array of currently selected values */\n value: string[];\n /** Handler for value changes */\n onValueChange: (value: string) => void;\n /** Whether the dropdown is currently open */\n open: boolean;\n /** Function to set the open state */\n setOpen: (value: boolean) => void;\n /** Current input field value for filtering */\n inputValue: string;\n /** Function to set the input value */\n setInputValue: Dispatch<SetStateAction<string>>;\n /** Index of currently focused option for keyboard navigation */\n activeIndex: number;\n /** Function to set the active index */\n setActiveIndex: Dispatch<SetStateAction<number>>;\n /** Ref to the input element */\n ref: RefObject<HTMLInputElement | null>;\n /** Handler for option selection */\n handleSelect: (e: SyntheticEvent<HTMLInputElement>) => void;\n};\n\nconst MultiSelectContext = createContext<MultiSelectContextProps | null>(null);\n\n/**\n * Custom hook to access MultiSelect context\n *\n * Provides access to the internal state and methods of the MultiSelect component.\n * Must be used within a MultiSelect component tree.\n *\n * @returns MultiSelectContextProps - All context properties and methods\n * @throws Error when used outside of MultiSelect component\n *\n * @example\n * ```tsx\n * function CustomMultiSelectItem() {\n * const { value, onValueChange, open } = useMultiSelect();\n * // Use context properties...\n * }\n * ```\n */\nconst useMultiSelect = () => {\n const context = useContext(MultiSelectContext);\n if (!context) {\n throw new Error('useMultiSelect must be used within MultiSelectProvider');\n }\n return context;\n};\n\n/**\n * Props interface for the main MultiSelect component\n *\n * @interface MultiSelectProps\n */\ntype MultiSelectProps = ComponentProps<typeof CommandRoot> & {\n /**\n * Array of selected values (controlled mode)\n * @example\n * ```tsx\n * const [selected, setSelected] = useState(['react', 'vue']);\n * <MultiSelect values={selected} onValueChange={setSelected} />\n * ```\n */\n values?: string[];\n\n /**\n * Default selected values for uncontrolled mode\n * @example\n * ```tsx\n * <MultiSelect defaultValues={['react']} />\n * ```\n */\n defaultValues?: string[];\n\n /**\n * Callback fired when selection changes\n * @param value - New array of selected values\n * @example\n * ```tsx\n * <MultiSelect onValueChange={(values) => console.log('Selected:', values)} />\n * ```\n */\n onValueChange?: (value: string[]) => void;\n\n /**\n * Whether keyboard navigation should loop through options\n * @default false\n * @example\n * ```tsx\n * <MultiSelect loop /> // Arrow keys wrap around at list boundaries\n * ```\n */\n loop?: boolean;\n};\n\n/**\n * MultiSelect - A comprehensive multi-selection dropdown component\n *\n * An advanced multi-select component that combines the functionality of a searchable dropdown\n * with the ability to select multiple values. Built on top of Command component primitives,\n * it provides filtering, keyboard navigation, and visual feedback through badges.\n *\n * ## Key Features\n * - **Multi-Selection**: Select multiple options with visual badge representation\n * - **Searchable**: Built-in filtering to quickly find options in large lists\n * - **Keyboard Navigation**: Full arrow key navigation with optional looping\n * - **Accessibility**: Screen reader support, ARIA attributes, and focus management\n * - **Flexible State**: Both controlled and uncontrolled usage patterns\n * - **Rich UI**: Customizable badges, icons, and content layout\n *\n * ## Use Cases\n * - Tag/category selection in forms\n * - Multi-user assignment interfaces\n * - Feature/permission selection\n * - Filter selection in search interfaces\n * - Any multi-choice selection requirement\n *\n * ## Architecture\n * The component follows a compound pattern similar to Select:\n * - `MultiSelect` (root): Manages state and provides context\n * - `MultiSelect.Trigger`: Container for input and selected badges\n * - `MultiSelect.Input`: Searchable input field with filtering\n * - `MultiSelect.Content`: Dropdown container for options\n * - `MultiSelect.List`: Options container with keyboard navigation\n * - `MultiSelect.Item`: Individual selectable options\n *\n * ## Accessibility\n * - **Keyboard Navigation**: Arrow keys, Enter to select, Backspace to remove\n * - **Screen Readers**: Proper ARIA labels and live region announcements\n * - **Focus Management**: Clear focus indicators and logical tab flow\n * - **Search**: Real-time filtering with screen reader announcements\n *\n * @example\n * Basic multi-select usage:\n * ```tsx\n * const [frameworks, setFrameworks] = useState<string[]>([]);\n *\n * <MultiSelect values={frameworks} onValueChange={setFrameworks}>\n * <MultiSelect.Trigger>\n * <MultiSelect.Input placeholder=\"Select frameworks...\" />\n * </MultiSelect.Trigger>\n * <MultiSelect.Content>\n * <MultiSelect.List>\n * <MultiSelect.Item value=\"react\">React</MultiSelect.Item>\n * <MultiSelect.Item value=\"vue\">Vue</MultiSelect.Item>\n * <MultiSelect.Item value=\"svelte\">Svelte</MultiSelect.Item>\n * </MultiSelect.List>\n * </MultiSelect.Content>\n * </MultiSelect>\n * ```\n *\n * @example\n * Advanced usage with keyboard looping:\n * ```tsx\n * <MultiSelect defaultValues={['react']} loop>\n * <MultiSelect.Trigger>\n * <MultiSelect.Input placeholder=\"Choose technologies...\" />\n * </MultiSelect.Trigger>\n * <MultiSelect.Content>\n * <MultiSelect.List>\n * <MultiSelect.Item value=\"react\">⚛️ React</MultiSelect.Item>\n * <MultiSelect.Item value=\"vue\">💚 Vue</MultiSelect.Item>\n * <MultiSelect.Item value=\"angular\">🔴 Angular</MultiSelect.Item>\n * </MultiSelect.List>\n * </MultiSelect.Content>\n * </MultiSelect>\n * ```\n *\n * @example\n * Form integration with validation:\n * ```tsx\n * <form>\n * <MultiSelect\n * values={selectedSkills}\n * onValueChange={setSelectedSkills}\n * required\n * >\n * <MultiSelect.Trigger className=\"min-h-[2.5rem]\">\n * <MultiSelect.Input placeholder=\"Select your skills...\" />\n * </MultiSelect.Trigger>\n * <MultiSelect.Content>\n * <MultiSelect.List>\n * <MultiSelect.Item value=\"javascript\">JavaScript</MultiSelect.Item>\n * <MultiSelect.Item value=\"typescript\">TypeScript</MultiSelect.Item>\n * <MultiSelect.Item value=\"python\">Python</MultiSelect.Item>\n * </MultiSelect.List>\n * </MultiSelect.Content>\n * </MultiSelect>\n * </form>\n * ```\n */\nconst MultiSelectRoot: FC<MultiSelectProps> = ({\n values: valuesProp,\n defaultValues,\n onValueChange,\n loop = false,\n className,\n children,\n dir,\n ...props\n}) => {\n const [value, setValue] = useState<string[]>(defaultValues ?? []);\n const [inputValue, setInputValue] = useState('');\n const [open, setOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n const inputRef = useRef<HTMLInputElement>(null);\n const [isValueSelected, setIsValueSelected] = useState(false);\n const [selectedValue, setSelectedValue] = useState('');\n\n useEffect(() => {\n if (valuesProp) {\n setValue(valuesProp);\n }\n }, [valuesProp]);\n\n const onValueChangeHandler = useCallback(\n (val: string) => {\n if (value.includes(val)) {\n const newValue = value.filter((item) => item !== val);\n setValue(newValue);\n onValueChange?.(newValue);\n } else {\n const newValue = [...value, val];\n setValue(newValue);\n onValueChange?.(newValue);\n }\n },\n\n [value]\n );\n\n const handleSelect = useCallback(\n (e: SyntheticEvent<HTMLInputElement>) => {\n e.preventDefault();\n const target = e.currentTarget;\n const selection = target.value.substring(\n target.selectionStart ?? 0,\n target.selectionEnd ?? 0\n );\n\n setSelectedValue(selection);\n setIsValueSelected(selection === inputValue);\n },\n [inputValue]\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n e.stopPropagation();\n const target = inputRef.current;\n\n if (!target) return;\n\n const moveNext = () => {\n const nextIndex = activeIndex + 1;\n setActiveIndex(\n nextIndex > value.length - 1 ? (loop ? 0 : -1) : nextIndex\n );\n };\n\n const movePrev = () => {\n const prevIndex = activeIndex - 1;\n setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);\n };\n\n const moveCurrent = () => {\n const newIndex =\n activeIndex - 1 <= 0\n ? value.length - 1 === 0\n ? -1\n : 0\n : activeIndex - 1;\n setActiveIndex(newIndex);\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n if (dir === 'rtl') {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n } else if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n break;\n\n case 'ArrowRight':\n if (dir === 'rtl') {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n } else if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n break;\n\n case 'Backspace':\n case 'Delete':\n if (value.length > 0) {\n if (activeIndex !== -1 && activeIndex < value.length) {\n onValueChangeHandler(value[activeIndex]);\n moveCurrent();\n } else if (\n (target.selectionStart === 0 && selectedValue === inputValue) ||\n isValueSelected\n ) {\n onValueChangeHandler(value[value.length - 1]);\n }\n }\n break;\n\n case 'Enter':\n setOpen(true);\n break;\n\n case 'Escape':\n if (activeIndex !== -1) {\n setActiveIndex(-1);\n } else if (open) {\n setOpen(false);\n }\n break;\n }\n },\n\n [value, inputValue, activeIndex, loop]\n );\n\n const memoValue = useMemo(\n () => ({\n value,\n onValueChange: onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n ref: inputRef,\n handleSelect,\n }),\n [\n value,\n onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n inputRef,\n handleSelect,\n ]\n );\n\n return (\n <MultiSelectContext value={memoValue}>\n <CommandRoot\n onKeyDown={handleKeyDown}\n className={cn(\n 'flex w-full flex-col gap-2 overflow-visible bg-transparent',\n className\n )}\n dir={dir}\n {...props}\n >\n {children}\n </CommandRoot>\n </MultiSelectContext>\n );\n};\n\nconst MultiSelectTrigger: FC<\n HTMLAttributes<HTMLDivElement> & {\n getBadgeValue?: (value: string) => string;\n validationStyleEnabled?: boolean;\n }\n> = ({\n className,\n getBadgeValue = (value) => value,\n validationStyleEnabled = false,\n children,\n ...props\n}) => {\n const { value, onValueChange, activeIndex } = useMultiSelect();\n\n const mousePreventDefault: MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n []\n );\n\n return (\n <div\n className={cn(\n // Base layout\n 'flex w-full flex-col gap-3',\n 'cursor-pointer select-text text-base shadow-none outline-none md:text-sm',\n\n // Corner shape\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n\n // Spacing\n 'px-2 py-3 md:py-2',\n\n // Background and text\n 'bg-neutral-50 dark:bg-neutral-950',\n 'text-text',\n\n // Focus ring\n 'ring-0',\n 'focus-within:outline-none',\n 'focus-within:ring-3',\n 'focus-within:ring-neutral-200',\n 'dark:focus-within:ring-neutral-500',\n\n 'focus-within:ring-offset-white',\n 'dark:focus-within:ring-offset-neutral-500',\n\n // Remove box-shadow\n '[box-shadow:none]',\n\n // States\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'aria-invalid:border-error',\n\n // Validation styles\n validationStyleEnabled && 'valid:border-success invalid:border-error',\n\n className\n )}\n {...props}\n >\n {value.length > 0 && (\n <div className=\"flex w-full flex-wrap gap-1\">\n {value.map((item, index) => (\n <Badge\n key={item}\n className={cn(\n 'flex items-center gap-1 rounded-xl px-1',\n activeIndex === index && 'ring-2 ring-muted-foreground'\n )}\n color={BadgeColor.TEXT}\n >\n <span className=\"text-xs\">{getBadgeValue(item)}</span>\n <button\n aria-label={`Remove ${item} option`}\n aria-roledescription=\"button to remove option\"\n onMouseDown={mousePreventDefault}\n onClick={() => onValueChange(item)}\n >\n <span className=\"sr-only\">Remove {item} option</span>\n <RemoveIcon className=\"size-4 cursor-pointer\" />\n </button>\n </Badge>\n ))}\n </div>\n )}\n {children}\n </div>\n );\n};\n\nconst MultiSelectInput: FC<ComponentProps<typeof Command.Input>> = ({\n className,\n ...props\n}) => {\n const {\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n handleSelect,\n ref: inputRef,\n } = useMultiSelect();\n\n return (\n <Command.Input\n {...props}\n tabIndex={0}\n ref={inputRef as LegacyRef<HTMLInputElement>}\n value={inputValue}\n onValueChange={activeIndex === -1 ? setInputValue : undefined}\n onSelect={handleSelect}\n onBlur={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onClick={() => setActiveIndex(-1)}\n className={cn(\n 'ml-2 flex-1 cursor-pointer outline-hidden',\n className,\n activeIndex !== -1 && 'caret-transparent'\n )}\n />\n );\n};\n\nconst MultiSelectContent: FC<HTMLAttributes<HTMLDivElement>> = ({\n children,\n}) => {\n const { open } = useMultiSelect();\n return <div className=\"relative\">{open && children}</div>;\n};\n\nconst MultiSelectList: typeof Command.List = ({ className, children }) => (\n <Command.List\n className={cn(\n // Base layout\n 'absolute top-0 z-10 flex w-full flex-col gap-2',\n 'rounded-xl p-2 shadow-md',\n\n // Background and text\n 'bg-white dark:bg-neutral-950',\n 'text-text',\n\n // Border\n 'border border-neutral-200 dark:border-neutral-800',\n\n // Transitions\n 'transition-colors',\n\n className\n )}\n >\n {children}\n <Command.Empty>\n <span className=\"text-muted-foreground\">No results found</span>\n </Command.Empty>\n </Command.List>\n);\n\nconst MultiSelectItem: FC<\n { value: string } & ComponentProps<typeof Command.Item>\n> = ({ className, value, children, ...props }) => {\n const { value: Options, onValueChange, setInputValue } = useMultiSelect();\n\n const mousePreventDefault: MouseEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n []\n );\n\n const isIncluded = Options.includes(value);\n return (\n <Command.Item\n {...props}\n onSelect={() => {\n onValueChange(value);\n setInputValue('');\n }}\n className={cn(\n // Base layout\n 'flex cursor-pointer justify-between',\n 'rounded-lg px-2 py-1',\n\n // Hover and transitions\n 'transition-colors',\n 'hover:bg-neutral/10',\n\n // States\n isIncluded && 'opacity-50',\n props.disabled && 'cursor-not-allowed opacity-50',\n\n className\n )}\n onMouseDown={mousePreventDefault}\n >\n {children}\n {isIncluded && <Check className=\"size-4\" />}\n </Command.Item>\n );\n};\n\ntype MultiSelectType = typeof MultiSelectRoot & {\n Trigger: typeof MultiSelectTrigger;\n Input: typeof MultiSelectInput;\n Content: typeof MultiSelectContent;\n List: typeof MultiSelectList;\n Item: typeof MultiSelectItem;\n};\n\n/**\n *\n * Usage example:\n * ```jsx\n * <MultiSelect\n * values={value}\n * onValuesChange={setValue}\n * loop\n * >\n * <MultiSelect.Trigger>\n * <MultiSelect.Input placeholder=\"Select your framework\" />\n * </MultiSelect.Trigger>\n * <MultiSelect.Content>\n * <MultiSelect.List>\n * <MultiSelect.Item value={\"React\"}>React</MultiSelect.Item>\n * <MultiSelect.Item value={\"Vue\"}>Vue</MultiSelect.Item>\n * <MultiSelect.Item value={\"Svelte\"}>Svelte</MultiSelect.Item>\n * </MultiSelect.List>\n * </MultiSelect.Content>\n * </MultiSelect>\n * ```\n */\nexport const MultiSelect = MultiSelectRoot as MultiSelectType;\nMultiSelect.Trigger = MultiSelectTrigger;\nMultiSelect.Input = MultiSelectInput;\nMultiSelect.Content = MultiSelectContent;\nMultiSelect.List = MultiSelectList;\nMultiSelect.Item = MultiSelectItem;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Multiselect.mjs","names":["RemoveIcon"],"sources":["../../../../src/components/Select/Multiselect.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport { Check, X as RemoveIcon } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type Dispatch,\n type FC,\n type HTMLAttributes,\n type KeyboardEvent,\n type LegacyRef,\n type MouseEventHandler,\n type RefObject,\n type SetStateAction,\n type SyntheticEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Badge, BadgeColor } from '../Badge';\nimport { Command, CommandRoot } from '../Command';\n\n/**\n * Context properties for MultiSelect component state management\n *\n * @interface MultiSelectContextProps\n */\ntype MultiSelectContextProps = {\n /** Array of currently selected values */\n value: string[];\n /** Handler for value changes */\n onValueChange: (value: string) => void;\n /** Whether the dropdown is currently open */\n open: boolean;\n /** Function to set the open state */\n setOpen: (value: boolean) => void;\n /** Current input field value for filtering */\n inputValue: string;\n /** Function to set the input value */\n setInputValue: Dispatch<SetStateAction<string>>;\n /** Index of currently focused option for keyboard navigation */\n activeIndex: number;\n /** Function to set the active index */\n setActiveIndex: Dispatch<SetStateAction<number>>;\n /** Ref to the input element */\n ref: RefObject<HTMLInputElement | null>;\n /** Handler for option selection */\n handleSelect: (e: SyntheticEvent<HTMLInputElement>) => void;\n};\n\nconst MultiSelectContext = createContext<MultiSelectContextProps | null>(null);\n\n/**\n * Custom hook to access MultiSelect context\n *\n * Provides access to the internal state and methods of the MultiSelect component.\n * Must be used within a MultiSelect component tree.\n *\n * @returns MultiSelectContextProps - All context properties and methods\n * @throws Error when used outside of MultiSelect component\n *\n * @example\n * ```tsx\n * function CustomMultiSelectItem() {\n * const { value, onValueChange, open } = useMultiSelect();\n * // Use context properties...\n * }\n * ```\n */\nconst useMultiSelect = () => {\n const context = useContext(MultiSelectContext);\n if (!context) {\n throw new Error('useMultiSelect must be used within MultiSelectProvider');\n }\n return context;\n};\n\n/**\n * Props interface for the main MultiSelect component\n *\n * @interface MultiSelectProps\n */\ntype MultiSelectProps = ComponentProps<typeof CommandRoot> & {\n /**\n * Array of selected values (controlled mode)\n * @example\n * ```tsx\n * const [selected, setSelected] = useState(['react', 'vue']);\n * <MultiSelect values={selected} onValueChange={setSelected} />\n * ```\n */\n values?: string[];\n\n /**\n * Default selected values for uncontrolled mode\n * @example\n * ```tsx\n * <MultiSelect defaultValues={['react']} />\n * ```\n */\n defaultValues?: string[];\n\n /**\n * Callback fired when selection changes\n * @param value - New array of selected values\n * @example\n * ```tsx\n * <MultiSelect onValueChange={(values) => console.log('Selected:', values)} />\n * ```\n */\n onValueChange?: (value: string[]) => void;\n\n /**\n * Whether keyboard navigation should loop through options\n * @default false\n * @example\n * ```tsx\n * <MultiSelect loop /> // Arrow keys wrap around at list boundaries\n * ```\n */\n loop?: boolean;\n};\n\n/**\n * MultiSelect - A comprehensive multi-selection dropdown component\n *\n * An advanced multi-select component that combines the functionality of a searchable dropdown\n * with the ability to select multiple values. Built on top of Command component primitives,\n * it provides filtering, keyboard navigation, and visual feedback through badges.\n *\n * ## Key Features\n * - **Multi-Selection**: Select multiple options with visual badge representation\n * - **Searchable**: Built-in filtering to quickly find options in large lists\n * - **Keyboard Navigation**: Full arrow key navigation with optional looping\n * - **Accessibility**: Screen reader support, ARIA attributes, and focus management\n * - **Flexible State**: Both controlled and uncontrolled usage patterns\n * - **Rich UI**: Customizable badges, icons, and content layout\n *\n * ## Use Cases\n * - Tag/category selection in forms\n * - Multi-user assignment interfaces\n * - Feature/permission selection\n * - Filter selection in search interfaces\n * - Any multi-choice selection requirement\n *\n * ## Architecture\n * The component follows a compound pattern similar to Select:\n * - `MultiSelect` (root): Manages state and provides context\n * - `MultiSelect.Trigger`: Container for input and selected badges\n * - `MultiSelect.Input`: Searchable input field with filtering\n * - `MultiSelect.Content`: Dropdown container for options\n * - `MultiSelect.List`: Options container with keyboard navigation\n * - `MultiSelect.Item`: Individual selectable options\n *\n * ## Accessibility\n * - **Keyboard Navigation**: Arrow keys, Enter to select, Backspace to remove\n * - **Screen Readers**: Proper ARIA labels and live region announcements\n * - **Focus Management**: Clear focus indicators and logical tab flow\n * - **Search**: Real-time filtering with screen reader announcements\n *\n * @example\n * Basic multi-select usage:\n * ```tsx\n * const [frameworks, setFrameworks] = useState<string[]>([]);\n *\n * <MultiSelect values={frameworks} onValueChange={setFrameworks}>\n * <MultiSelect.Trigger>\n * <MultiSelect.Input placeholder=\"Select frameworks...\" />\n * </MultiSelect.Trigger>\n * <MultiSelect.Content>\n * <MultiSelect.List>\n * <MultiSelect.Item value=\"react\">React</MultiSelect.Item>\n * <MultiSelect.Item value=\"vue\">Vue</MultiSelect.Item>\n * <MultiSelect.Item value=\"svelte\">Svelte</MultiSelect.Item>\n * </MultiSelect.List>\n * </MultiSelect.Content>\n * </MultiSelect>\n * ```\n *\n * @example\n * Advanced usage with keyboard looping:\n * ```tsx\n * <MultiSelect defaultValues={['react']} loop>\n * <MultiSelect.Trigger>\n * <MultiSelect.Input placeholder=\"Choose technologies...\" />\n * </MultiSelect.Trigger>\n * <MultiSelect.Content>\n * <MultiSelect.List>\n * <MultiSelect.Item value=\"react\">⚛️ React</MultiSelect.Item>\n * <MultiSelect.Item value=\"vue\">💚 Vue</MultiSelect.Item>\n * <MultiSelect.Item value=\"angular\">🔴 Angular</MultiSelect.Item>\n * </MultiSelect.List>\n * </MultiSelect.Content>\n * </MultiSelect>\n * ```\n *\n * @example\n * Form integration with validation:\n * ```tsx\n * <form>\n * <MultiSelect\n * values={selectedSkills}\n * onValueChange={setSelectedSkills}\n * required\n * >\n * <MultiSelect.Trigger className=\"min-h-[2.5rem]\">\n * <MultiSelect.Input placeholder=\"Select your skills...\" />\n * </MultiSelect.Trigger>\n * <MultiSelect.Content>\n * <MultiSelect.List>\n * <MultiSelect.Item value=\"javascript\">JavaScript</MultiSelect.Item>\n * <MultiSelect.Item value=\"typescript\">TypeScript</MultiSelect.Item>\n * <MultiSelect.Item value=\"python\">Python</MultiSelect.Item>\n * </MultiSelect.List>\n * </MultiSelect.Content>\n * </MultiSelect>\n * </form>\n * ```\n */\nconst MultiSelectRoot: FC<MultiSelectProps> = ({\n values: valuesProp,\n defaultValues,\n onValueChange,\n loop = false,\n className,\n children,\n dir,\n ...props\n}) => {\n const [value, setValue] = useState<string[]>(defaultValues ?? []);\n const [inputValue, setInputValue] = useState('');\n const [open, setOpen] = useState<boolean>(false);\n const [activeIndex, setActiveIndex] = useState<number>(-1);\n const inputRef = useRef<HTMLInputElement>(null);\n const [isValueSelected, setIsValueSelected] = useState(false);\n const [selectedValue, setSelectedValue] = useState('');\n\n useEffect(() => {\n if (valuesProp) {\n setValue(valuesProp);\n }\n }, [valuesProp]);\n\n const onValueChangeHandler = useCallback(\n (val: string) => {\n if (value.includes(val)) {\n const newValue = value.filter((item) => item !== val);\n setValue(newValue);\n onValueChange?.(newValue);\n } else {\n const newValue = [...value, val];\n setValue(newValue);\n onValueChange?.(newValue);\n }\n },\n\n [value]\n );\n\n const handleSelect = useCallback(\n (e: SyntheticEvent<HTMLInputElement>) => {\n e.preventDefault();\n const target = e.currentTarget;\n const selection = target.value.substring(\n target.selectionStart ?? 0,\n target.selectionEnd ?? 0\n );\n\n setSelectedValue(selection);\n setIsValueSelected(selection === inputValue);\n },\n [inputValue]\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n e.stopPropagation();\n const target = inputRef.current;\n\n if (!target) return;\n\n const moveNext = () => {\n const nextIndex = activeIndex + 1;\n setActiveIndex(\n nextIndex > value.length - 1 ? (loop ? 0 : -1) : nextIndex\n );\n };\n\n const movePrev = () => {\n const prevIndex = activeIndex - 1;\n setActiveIndex(prevIndex < 0 ? value.length - 1 : prevIndex);\n };\n\n const moveCurrent = () => {\n const newIndex =\n activeIndex - 1 <= 0\n ? value.length - 1 === 0\n ? -1\n : 0\n : activeIndex - 1;\n setActiveIndex(newIndex);\n };\n\n switch (e.key) {\n case 'ArrowLeft':\n if (dir === 'rtl') {\n if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n } else if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n break;\n\n case 'ArrowRight':\n if (dir === 'rtl') {\n if (value.length > 0 && target.selectionStart === 0) {\n movePrev();\n }\n } else if (value.length > 0 && (activeIndex !== -1 || loop)) {\n moveNext();\n }\n break;\n\n case 'Backspace':\n case 'Delete':\n if (value.length > 0) {\n if (activeIndex !== -1 && activeIndex < value.length) {\n onValueChangeHandler(value[activeIndex]);\n moveCurrent();\n } else if (\n (target.selectionStart === 0 && selectedValue === inputValue) ||\n isValueSelected\n ) {\n onValueChangeHandler(value[value.length - 1]);\n }\n }\n break;\n\n case 'Enter':\n setOpen(true);\n break;\n\n case 'Escape':\n if (activeIndex !== -1) {\n setActiveIndex(-1);\n } else if (open) {\n setOpen(false);\n }\n break;\n }\n },\n\n [value, inputValue, activeIndex, loop]\n );\n\n const memoValue = useMemo(\n () => ({\n value,\n onValueChange: onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n ref: inputRef,\n handleSelect,\n }),\n [\n value,\n onValueChangeHandler,\n open,\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n inputRef,\n handleSelect,\n ]\n );\n\n return (\n <MultiSelectContext value={memoValue}>\n <CommandRoot\n onKeyDown={handleKeyDown}\n className={cn(\n 'flex w-full flex-col gap-2 overflow-visible bg-transparent',\n className\n )}\n dir={dir}\n {...props}\n >\n {children}\n </CommandRoot>\n </MultiSelectContext>\n );\n};\n\nconst MultiSelectTrigger: FC<\n HTMLAttributes<HTMLDivElement> & {\n getBadgeValue?: (value: string) => string;\n validationStyleEnabled?: boolean;\n }\n> = ({\n className,\n getBadgeValue = (value) => value,\n validationStyleEnabled = false,\n children,\n ...props\n}) => {\n const { value, onValueChange, activeIndex } = useMultiSelect();\n\n const mousePreventDefault: MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n []\n );\n\n return (\n <div\n className={cn(\n // Base layout\n 'flex w-full flex-col gap-3',\n 'cursor-pointer select-text text-base shadow-none outline-none md:text-sm',\n\n // Corner shape\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n\n // Spacing\n 'px-2 py-3 md:py-2',\n\n // Background and text\n 'bg-neutral-50 dark:bg-neutral-950',\n 'text-text',\n\n // Focus ring\n 'ring-0',\n 'focus-within:outline-none',\n 'focus-within:ring-3',\n 'focus-within:ring-neutral-200',\n 'dark:focus-within:ring-neutral-500',\n\n 'focus-within:ring-offset-white',\n 'dark:focus-within:ring-offset-neutral-500',\n\n // Remove box-shadow\n '[box-shadow:none]',\n\n // States\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'aria-invalid:border-error',\n\n // Validation styles\n validationStyleEnabled && 'valid:border-success invalid:border-error',\n\n className\n )}\n {...props}\n >\n {value.length > 0 && (\n <div className=\"flex w-full flex-wrap gap-1\">\n {value.map((item, index) => (\n <Badge\n key={item}\n className={cn(\n 'flex items-center gap-1 rounded-xl px-1',\n activeIndex === index && 'ring-2 ring-muted-foreground'\n )}\n color={BadgeColor.TEXT}\n >\n <span className=\"text-xs\">{getBadgeValue(item)}</span>\n <button\n aria-label={`Remove ${item} option`}\n aria-roledescription=\"button to remove option\"\n onMouseDown={mousePreventDefault}\n onClick={() => onValueChange(item)}\n >\n <span className=\"sr-only\">Remove {item} option</span>\n <RemoveIcon className=\"size-4 cursor-pointer\" />\n </button>\n </Badge>\n ))}\n </div>\n )}\n {children}\n </div>\n );\n};\n\nconst MultiSelectInput: FC<ComponentProps<typeof Command.Input>> = ({\n className,\n ...props\n}) => {\n const {\n setOpen,\n inputValue,\n setInputValue,\n activeIndex,\n setActiveIndex,\n handleSelect,\n ref: inputRef,\n } = useMultiSelect();\n\n return (\n <Command.Input\n {...props}\n tabIndex={0}\n ref={inputRef as LegacyRef<HTMLInputElement>}\n value={inputValue}\n onValueChange={activeIndex === -1 ? setInputValue : undefined}\n onSelect={handleSelect}\n onBlur={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onClick={() => setActiveIndex(-1)}\n className={cn(\n 'ml-2 flex-1 cursor-pointer outline-hidden',\n className,\n activeIndex !== -1 && 'caret-transparent'\n )}\n />\n );\n};\n\nconst MultiSelectContent: FC<HTMLAttributes<HTMLDivElement>> = ({\n children,\n}) => {\n const { open } = useMultiSelect();\n return <div className=\"relative\">{open && children}</div>;\n};\n\nconst MultiSelectList: typeof Command.List = ({ className, children }) => (\n <Command.List\n className={cn(\n // Base layout\n 'absolute top-0 z-10 flex w-full flex-col gap-2',\n 'rounded-xl p-2 shadow-md',\n\n // Background and text\n 'bg-white dark:bg-neutral-950',\n 'text-text',\n\n // Border\n 'border border-neutral-200 dark:border-neutral-800',\n\n // Transitions\n 'transition-colors',\n\n className\n )}\n >\n {children}\n <Command.Empty>\n <span className=\"text-muted-foreground\">No results found</span>\n </Command.Empty>\n </Command.List>\n);\n\nconst MultiSelectItem: FC<\n { value: string } & ComponentProps<typeof Command.Item>\n> = ({ className, value, children, ...props }) => {\n const { value: Options, onValueChange, setInputValue } = useMultiSelect();\n\n const mousePreventDefault: MouseEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n []\n );\n\n const isIncluded = Options.includes(value);\n return (\n <Command.Item\n {...props}\n onSelect={() => {\n onValueChange(value);\n setInputValue('');\n }}\n className={cn(\n // Base layout\n 'flex cursor-pointer justify-between',\n 'rounded-lg px-2 py-1',\n\n // Hover and transitions\n 'transition-colors',\n 'hover:bg-neutral/10',\n\n // States\n isIncluded && 'opacity-50',\n props.disabled && 'cursor-not-allowed opacity-50',\n\n className\n )}\n onMouseDown={mousePreventDefault}\n >\n {children}\n {isIncluded && <Check className=\"size-4\" />}\n </Command.Item>\n );\n};\n\ntype MultiSelectType = typeof MultiSelectRoot & {\n Trigger: typeof MultiSelectTrigger;\n Input: typeof MultiSelectInput;\n Content: typeof MultiSelectContent;\n List: typeof MultiSelectList;\n Item: typeof MultiSelectItem;\n};\n\n/**\n *\n * Usage example:\n * ```jsx\n * <MultiSelect\n * values={value}\n * onValuesChange={setValue}\n * loop\n * >\n * <MultiSelect.Trigger>\n * <MultiSelect.Input placeholder=\"Select your framework\" />\n * </MultiSelect.Trigger>\n * <MultiSelect.Content>\n * <MultiSelect.List>\n * <MultiSelect.Item value={\"React\"}>React</MultiSelect.Item>\n * <MultiSelect.Item value={\"Vue\"}>Vue</MultiSelect.Item>\n * <MultiSelect.Item value={\"Svelte\"}>Svelte</MultiSelect.Item>\n * </MultiSelect.List>\n * </MultiSelect.Content>\n * </MultiSelect>\n * ```\n */\nexport const MultiSelect = MultiSelectRoot as MultiSelectType;\nMultiSelect.Trigger = MultiSelectTrigger;\nMultiSelect.Input = MultiSelectInput;\nMultiSelect.Content = MultiSelectContent;\nMultiSelect.List = MultiSelectList;\nMultiSelect.Item = MultiSelectItem;\n"],"mappings":"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"}