@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,114 +1,2 @@
1
- 'use client';
2
-
3
- import { Button, ButtonColor, ButtonSize, ButtonVariant } from "../Button/Button.mjs";
4
- import { AutoCompleteTextarea } from "../TextArea/AutocompleteTextArea.mjs";
5
- import { useUser } from "../../hooks/useUser/index.mjs";
6
- import { Check, X } from "lucide-react";
7
- import { useEffect, useState } from "react";
8
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
-
10
- //#region src/components/ContentEditor/ContentEditorTextArea.tsx
11
- /**
12
- * ContentEditorTextArea Component
13
- *
14
- * An inline editing component for multi-line text with autocomplete functionality,
15
- * user authentication integration, and validation support. This component combines
16
- * the auto-sizing textarea with smart autocomplete features.
17
- *
18
- * ## Features
19
- * - **Auto-sizing Textarea**: Automatically adjusts height to content
20
- * - **Autocomplete Integration**: Smart text completion when user is authenticated
21
- * - **Validation Support**: Optional content validation with visual feedback
22
- * - **Action Buttons**: Built-in save/cancel with support for additional buttons
23
- * - **Keyboard Shortcuts**: Enter to save, Escape to cancel
24
- * - **User Authentication**: Autocomplete features activate based on auth status
25
- * - **Accessibility**: Full ARIA support and keyboard navigation
26
- *
27
- * ## Accessibility
28
- * - Proper ARIA labels and descriptions for all controls
29
- * - Keyboard navigation (Tab, Enter, Escape)
30
- * - Screen reader support for validation states and user auth status
31
- * - Focus management and visual indicators
32
- *
33
- * @param children - Current textarea content
34
- * @param onContentChange - Callback when content is saved
35
- * @param disabled - Whether the editor is disabled
36
- * @param validate - Optional validation function
37
- * @param additionalButtons - Extra buttons to display
38
- * @param props - Additional AutoSizedTextArea component props
39
- */
40
- const ContentEditorTextArea = ({ children, onContentChange, disabled, validate, additionalButtons, ...props }) => {
41
- const { isAuthenticated } = useUser();
42
- const [newValue, setNewValue] = useState(children);
43
- const [resetIncrementor, setResetIncrementor] = useState(0);
44
- const isEdited = newValue !== children;
45
- const handleCancel = () => {
46
- setNewValue(children);
47
- setResetIncrementor((prev) => prev + 1);
48
- };
49
- const handleValid = () => {
50
- onContentChange(newValue);
51
- };
52
- const handleOnContentChange = (e) => setNewValue(e.currentTarget.value ?? "");
53
- const handleKeyDown = (e) => {
54
- if (e.key === "Enter" && (e.metaKey || e.ctrlKey) && !disabled && isValid) {
55
- e.preventDefault();
56
- handleValid();
57
- } else if (e.key === "Escape") {
58
- e.preventDefault();
59
- handleCancel();
60
- }
61
- };
62
- useEffect(() => {
63
- setNewValue(children);
64
- setResetIncrementor((prev) => prev + 1);
65
- }, [children]);
66
- const isValid = validate?.(newValue) ?? true;
67
- return /* @__PURE__ */ jsxs("div", {
68
- className: "flex size-full flex-col items-center justify-between gap-2",
69
- role: "group",
70
- "aria-label": "Content editor textarea",
71
- children: [/* @__PURE__ */ jsx(AutoCompleteTextarea, {
72
- onChange: handleOnContentChange,
73
- onKeyDown: handleKeyDown,
74
- variant: "invisible",
75
- className: "size-full",
76
- value: children,
77
- isActive: isAuthenticated,
78
- disabled,
79
- "aria-label": "Editable textarea content",
80
- "aria-describedby": isEdited || additionalButtons ? "content-editor-textarea-actions" : void 0,
81
- "aria-invalid": !isValid,
82
- ...props
83
- }, resetIncrementor), (isEdited || additionalButtons) && /* @__PURE__ */ jsxs("div", {
84
- id: "content-editor-textarea-actions",
85
- className: "flex w-full items-center justify-end gap-2",
86
- role: "group",
87
- "aria-label": "Edit actions",
88
- children: [isEdited && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
89
- Icon: Check,
90
- label: `Save changes${!isValid ? " (invalid content)" : ""}`,
91
- variant: ButtonVariant.HOVERABLE,
92
- color: ButtonColor.TEXT,
93
- size: ButtonSize.ICON_SM,
94
- className: "cursor-pointer hover:scale-110",
95
- disabled: disabled || !isValid,
96
- onClick: handleValid,
97
- "aria-describedby": !isValid ? "textarea-validation-error" : void 0
98
- }), /* @__PURE__ */ jsx(Button, {
99
- Icon: X,
100
- label: "Cancel changes",
101
- variant: ButtonVariant.HOVERABLE,
102
- size: ButtonSize.ICON_SM,
103
- color: ButtonColor.TEXT,
104
- className: "cursor-pointer hover:scale-110",
105
- onClick: handleCancel,
106
- disabled
107
- })] }), additionalButtons]
108
- })]
109
- }, children);
110
- };
111
-
112
- //#endregion
113
- export { ContentEditorTextArea };
1
+ "use client";import{Button as e,ButtonColor as t,ButtonSize as n,ButtonVariant as r}from"../Button/Button.mjs";import{AutoCompleteTextarea as i}from"../TextArea/AutocompleteTextArea.mjs";import{useUser as a}from"../../hooks/useUser/index.mjs";import{Check as o,X as s}from"lucide-react";import{useEffect as c,useState as l}from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";const p=({children:p,onContentChange:m,disabled:h,validate:g,additionalButtons:_,...v})=>{let{isAuthenticated:y}=a(),[b,x]=l(p),[S,C]=l(0),w=b!==p,T=()=>{x(p),C(e=>e+1)},E=()=>{m(b)},D=e=>x(e.currentTarget.value??``),O=e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&!h&&k?(e.preventDefault(),E()):e.key===`Escape`&&(e.preventDefault(),T())};c(()=>{x(p),C(e=>e+1)},[p]);let k=g?.(b)??!0;return f(`div`,{className:`flex size-full flex-col items-center justify-between gap-2`,role:`group`,"aria-label":`Content editor textarea`,children:[d(i,{onChange:D,onKeyDown:O,variant:`invisible`,className:`size-full`,value:p,isActive:y,disabled:h,"aria-label":`Editable textarea content`,"aria-describedby":w||_?`content-editor-textarea-actions`:void 0,"aria-invalid":!k,...v},S),(w||_)&&f(`div`,{id:`content-editor-textarea-actions`,className:`flex w-full items-center justify-end gap-2`,role:`group`,"aria-label":`Edit actions`,children:[w&&f(u,{children:[d(e,{Icon:o,label:`Save changes${k?``:` (invalid content)`}`,variant:r.HOVERABLE,color:t.TEXT,size:n.ICON_SM,className:`cursor-pointer hover:scale-110`,disabled:h||!k,onClick:E,"aria-describedby":k?void 0:`textarea-validation-error`}),d(e,{Icon:s,label:`Cancel changes`,variant:r.HOVERABLE,size:n.ICON_SM,color:t.TEXT,className:`cursor-pointer hover:scale-110`,onClick:T,disabled:h})]}),_]})]},p)};export{p as ContentEditorTextArea};
114
2
  //# sourceMappingURL=ContentEditorTextArea.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentEditorTextArea.mjs","names":[],"sources":["../../../../src/components/ContentEditor/ContentEditorTextArea.tsx"],"sourcesContent":["'use client';\n\nimport { useUser } from '@hooks/useUser';\nimport { Check, X } from 'lucide-react';\nimport {\n type ChangeEventHandler,\n type FC,\n type ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport { Button, ButtonColor, ButtonSize, ButtonVariant } from '../Button';\nimport { AutoCompleteTextarea, type AutoSizedTextAreaProps } from '../TextArea';\n\n/** Props for the ContentEditorTextArea component */\nexport type ContentEditorTextAreaProps = {\n /** The current content to display and edit */\n children: string;\n /** Callback function called when content is saved/validated */\n onContentChange: (content: string) => void;\n /** Whether the editor is disabled */\n disabled?: boolean;\n /** Optional validation function to check content validity */\n validate?: (content: string) => boolean;\n /** Additional buttons to display alongside edit actions */\n additionalButtons?: ReactNode;\n} & Omit<AutoSizedTextAreaProps, 'children'>;\n\n/**\n * ContentEditorTextArea Component\n *\n * An inline editing component for multi-line text with autocomplete functionality,\n * user authentication integration, and validation support. This component combines\n * the auto-sizing textarea with smart autocomplete features.\n *\n * ## Features\n * - **Auto-sizing Textarea**: Automatically adjusts height to content\n * - **Autocomplete Integration**: Smart text completion when user is authenticated\n * - **Validation Support**: Optional content validation with visual feedback\n * - **Action Buttons**: Built-in save/cancel with support for additional buttons\n * - **Keyboard Shortcuts**: Enter to save, Escape to cancel\n * - **User Authentication**: Autocomplete features activate based on auth status\n * - **Accessibility**: Full ARIA support and keyboard navigation\n *\n * ## Accessibility\n * - Proper ARIA labels and descriptions for all controls\n * - Keyboard navigation (Tab, Enter, Escape)\n * - Screen reader support for validation states and user auth status\n * - Focus management and visual indicators\n *\n * @param children - Current textarea content\n * @param onContentChange - Callback when content is saved\n * @param disabled - Whether the editor is disabled\n * @param validate - Optional validation function\n * @param additionalButtons - Extra buttons to display\n * @param props - Additional AutoSizedTextArea component props\n */\nexport const ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n children,\n onContentChange,\n disabled,\n validate,\n additionalButtons,\n ...props\n}) => {\n const { isAuthenticated } = useUser();\n const [newValue, setNewValue] = useState<string>(children);\n const [resetIncrementor, setResetIncrementor] = useState<number>(0); // To reset the textarea on cancel\n const isEdited: boolean = newValue !== children;\n\n const handleCancel = () => {\n setNewValue(children);\n setResetIncrementor((prev) => prev + 1);\n };\n\n const handleValid = () => {\n onContentChange(newValue);\n };\n\n const handleOnContentChange: ChangeEventHandler<HTMLTextAreaElement> = (e) =>\n setNewValue(e.currentTarget.value ?? '');\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && (e.metaKey || e.ctrlKey) && !disabled && isValid) {\n e.preventDefault();\n handleValid();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n handleCancel();\n }\n };\n\n useEffect(() => {\n setNewValue(children);\n // Force textarea to reset when children changes externally\n setResetIncrementor((prev) => prev + 1);\n }, [children]);\n\n const isValid = validate?.(newValue) ?? true;\n\n return (\n <div\n className=\"flex size-full flex-col items-center justify-between gap-2\"\n key={children}\n role=\"group\"\n aria-label=\"Content editor textarea\"\n >\n <AutoCompleteTextarea\n onChange={handleOnContentChange}\n onKeyDown={handleKeyDown}\n key={resetIncrementor}\n variant=\"invisible\"\n className=\"size-full\"\n value={children}\n isActive={isAuthenticated}\n disabled={disabled}\n aria-label=\"Editable textarea content\"\n aria-describedby={\n isEdited || additionalButtons\n ? 'content-editor-textarea-actions'\n : undefined\n }\n aria-invalid={!isValid}\n {...props}\n />\n {(isEdited || additionalButtons) && (\n <div\n id=\"content-editor-textarea-actions\"\n className=\"flex w-full items-center justify-end gap-2\"\n role=\"group\"\n aria-label=\"Edit actions\"\n >\n {isEdited && (\n <>\n <Button\n Icon={Check}\n label={`Save changes${!isValid ? ' (invalid content)' : ''}`}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n size={ButtonSize.ICON_SM}\n className=\"cursor-pointer hover:scale-110\"\n disabled={disabled || !isValid}\n onClick={handleValid}\n aria-describedby={\n !isValid ? 'textarea-validation-error' : undefined\n }\n />\n <Button\n Icon={X}\n label=\"Cancel changes\"\n variant={ButtonVariant.HOVERABLE}\n size={ButtonSize.ICON_SM}\n color={ButtonColor.TEXT}\n className=\"cursor-pointer hover:scale-110\"\n onClick={handleCancel}\n disabled={disabled}\n />\n </>\n )}\n {additionalButtons}\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,MAAa,yBAAyD,EACpE,UACA,iBACA,UACA,UACA,mBACA,GAAG,YACC;CACJ,MAAM,EAAE,oBAAoB,SAAS;CACrC,MAAM,CAAC,UAAU,eAAe,SAAiB,SAAS;CAC1D,MAAM,CAAC,kBAAkB,uBAAuB,SAAiB,EAAE;CACnE,MAAM,WAAoB,aAAa;CAEvC,MAAM,qBAAqB;AACzB,cAAY,SAAS;AACrB,uBAAqB,SAAS,OAAO,EAAE;;CAGzC,MAAM,oBAAoB;AACxB,kBAAgB,SAAS;;CAG3B,MAAM,yBAAkE,MACtE,YAAY,EAAE,cAAc,SAAS,GAAG;CAE1C,MAAM,iBAAiB,MAAgD;AACrE,MAAI,EAAE,QAAQ,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,YAAY,SAAS;AACzE,KAAE,gBAAgB;AAClB,gBAAa;aACJ,EAAE,QAAQ,UAAU;AAC7B,KAAE,gBAAgB;AAClB,iBAAc;;;AAIlB,iBAAgB;AACd,cAAY,SAAS;AAErB,uBAAqB,SAAS,OAAO,EAAE;IACtC,CAAC,SAAS,CAAC;CAEd,MAAM,UAAU,WAAW,SAAS,IAAI;AAExC,QACE,qBAAC;EACC,WAAU;EAEV,MAAK;EACL,cAAW;aAEX,oBAAC;GACC,UAAU;GACV,WAAW;GAEX,SAAQ;GACR,WAAU;GACV,OAAO;GACP,UAAU;GACA;GACV,cAAW;GACX,oBACE,YAAY,oBACR,oCACA;GAEN,gBAAc,CAAC;GACf,GAAI;KAbC,iBAcL,GACA,YAAY,sBACZ,qBAAC;GACC,IAAG;GACH,WAAU;GACV,MAAK;GACL,cAAW;cAEV,YACC,8CACE,oBAAC;IACC,MAAM;IACN,OAAO,eAAe,CAAC,UAAU,uBAAuB;IACxD,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,WAAU;IACV,UAAU,YAAY,CAAC;IACvB,SAAS;IACT,oBACE,CAAC,UAAU,8BAA8B;KAE3C,EACF,oBAAC;IACC,MAAM;IACN,OAAM;IACN,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,WAAU;IACV,SAAS;IACC;KACV,IACD,EAEJ;IACG;IAzDH,SA2DD"}
1
+ {"version":3,"file":"ContentEditorTextArea.mjs","names":[],"sources":["../../../../src/components/ContentEditor/ContentEditorTextArea.tsx"],"sourcesContent":["'use client';\n\nimport { useUser } from '@hooks/useUser';\nimport { Check, X } from 'lucide-react';\nimport {\n type ChangeEventHandler,\n type FC,\n type ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport { Button, ButtonColor, ButtonSize, ButtonVariant } from '../Button';\nimport { AutoCompleteTextarea, type AutoSizedTextAreaProps } from '../TextArea';\n\n/** Props for the ContentEditorTextArea component */\nexport type ContentEditorTextAreaProps = {\n /** The current content to display and edit */\n children: string;\n /** Callback function called when content is saved/validated */\n onContentChange: (content: string) => void;\n /** Whether the editor is disabled */\n disabled?: boolean;\n /** Optional validation function to check content validity */\n validate?: (content: string) => boolean;\n /** Additional buttons to display alongside edit actions */\n additionalButtons?: ReactNode;\n} & Omit<AutoSizedTextAreaProps, 'children'>;\n\n/**\n * ContentEditorTextArea Component\n *\n * An inline editing component for multi-line text with autocomplete functionality,\n * user authentication integration, and validation support. This component combines\n * the auto-sizing textarea with smart autocomplete features.\n *\n * ## Features\n * - **Auto-sizing Textarea**: Automatically adjusts height to content\n * - **Autocomplete Integration**: Smart text completion when user is authenticated\n * - **Validation Support**: Optional content validation with visual feedback\n * - **Action Buttons**: Built-in save/cancel with support for additional buttons\n * - **Keyboard Shortcuts**: Enter to save, Escape to cancel\n * - **User Authentication**: Autocomplete features activate based on auth status\n * - **Accessibility**: Full ARIA support and keyboard navigation\n *\n * ## Accessibility\n * - Proper ARIA labels and descriptions for all controls\n * - Keyboard navigation (Tab, Enter, Escape)\n * - Screen reader support for validation states and user auth status\n * - Focus management and visual indicators\n *\n * @param children - Current textarea content\n * @param onContentChange - Callback when content is saved\n * @param disabled - Whether the editor is disabled\n * @param validate - Optional validation function\n * @param additionalButtons - Extra buttons to display\n * @param props - Additional AutoSizedTextArea component props\n */\nexport const ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n children,\n onContentChange,\n disabled,\n validate,\n additionalButtons,\n ...props\n}) => {\n const { isAuthenticated } = useUser();\n const [newValue, setNewValue] = useState<string>(children);\n const [resetIncrementor, setResetIncrementor] = useState<number>(0); // To reset the textarea on cancel\n const isEdited: boolean = newValue !== children;\n\n const handleCancel = () => {\n setNewValue(children);\n setResetIncrementor((prev) => prev + 1);\n };\n\n const handleValid = () => {\n onContentChange(newValue);\n };\n\n const handleOnContentChange: ChangeEventHandler<HTMLTextAreaElement> = (e) =>\n setNewValue(e.currentTarget.value ?? '');\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && (e.metaKey || e.ctrlKey) && !disabled && isValid) {\n e.preventDefault();\n handleValid();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n handleCancel();\n }\n };\n\n useEffect(() => {\n setNewValue(children);\n // Force textarea to reset when children changes externally\n setResetIncrementor((prev) => prev + 1);\n }, [children]);\n\n const isValid = validate?.(newValue) ?? true;\n\n return (\n <div\n className=\"flex size-full flex-col items-center justify-between gap-2\"\n key={children}\n role=\"group\"\n aria-label=\"Content editor textarea\"\n >\n <AutoCompleteTextarea\n onChange={handleOnContentChange}\n onKeyDown={handleKeyDown}\n key={resetIncrementor}\n variant=\"invisible\"\n className=\"size-full\"\n value={children}\n isActive={isAuthenticated}\n disabled={disabled}\n aria-label=\"Editable textarea content\"\n aria-describedby={\n isEdited || additionalButtons\n ? 'content-editor-textarea-actions'\n : undefined\n }\n aria-invalid={!isValid}\n {...props}\n />\n {(isEdited || additionalButtons) && (\n <div\n id=\"content-editor-textarea-actions\"\n className=\"flex w-full items-center justify-end gap-2\"\n role=\"group\"\n aria-label=\"Edit actions\"\n >\n {isEdited && (\n <>\n <Button\n Icon={Check}\n label={`Save changes${!isValid ? ' (invalid content)' : ''}`}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n size={ButtonSize.ICON_SM}\n className=\"cursor-pointer hover:scale-110\"\n disabled={disabled || !isValid}\n onClick={handleValid}\n aria-describedby={\n !isValid ? 'textarea-validation-error' : undefined\n }\n />\n <Button\n Icon={X}\n label=\"Cancel changes\"\n variant={ButtonVariant.HOVERABLE}\n size={ButtonSize.ICON_SM}\n color={ButtonColor.TEXT}\n className=\"cursor-pointer hover:scale-110\"\n onClick={handleCancel}\n disabled={disabled}\n />\n </>\n )}\n {additionalButtons}\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"+YAyDA,MAAa,GAAyD,CACpE,WACA,kBACA,WACA,WACA,oBACA,GAAG,KACC,CACJ,GAAM,CAAE,mBAAoB,GAAS,CAC/B,CAAC,EAAU,GAAe,EAAiB,EAAS,CACpD,CAAC,EAAkB,GAAuB,EAAiB,EAAE,CAC7D,EAAoB,IAAa,EAEjC,MAAqB,CACzB,EAAY,EAAS,CACrB,EAAqB,GAAS,EAAO,EAAE,EAGnC,MAAoB,CACxB,EAAgB,EAAS,EAGrB,EAAkE,GACtE,EAAY,EAAE,cAAc,OAAS,GAAG,CAEpC,EAAiB,GAAgD,CACjE,EAAE,MAAQ,UAAY,EAAE,SAAW,EAAE,UAAY,CAAC,GAAY,GAChE,EAAE,gBAAgB,CAClB,GAAa,EACJ,EAAE,MAAQ,WACnB,EAAE,gBAAgB,CAClB,GAAc,GAIlB,MAAgB,CACd,EAAY,EAAS,CAErB,EAAqB,GAAS,EAAO,EAAE,EACtC,CAAC,EAAS,CAAC,CAEd,IAAM,EAAU,IAAW,EAAS,EAAI,GAExC,OACE,EAAC,MAAA,CACC,UAAU,6DAEV,KAAK,QACL,aAAW,oCAEX,EAAC,EAAA,CACC,SAAU,EACV,UAAW,EAEX,QAAQ,YACR,UAAU,YACV,MAAO,EACP,SAAU,EACA,WACV,aAAW,4BACX,mBACE,GAAY,EACR,kCACA,IAAA,GAEN,eAAc,CAAC,EACf,GAAI,GAbC,EAcL,EACA,GAAY,IACZ,EAAC,MAAA,CACC,GAAG,kCACH,UAAU,6CACV,KAAK,QACL,aAAW,yBAEV,GACC,EAAA,EAAA,CAAA,SAAA,CACE,EAAC,EAAA,CACC,KAAM,EACN,MAAO,eAAgB,EAAiC,GAAvB,uBACjC,QAAS,EAAc,UACvB,MAAO,EAAY,KACnB,KAAM,EAAW,QACjB,UAAU,iCACV,SAAU,GAAY,CAAC,EACvB,QAAS,EACT,mBACG,EAAwC,IAAA,GAA9B,6BAEb,CACF,EAAC,EAAA,CACC,KAAM,EACN,MAAM,iBACN,QAAS,EAAc,UACvB,KAAM,EAAW,QACjB,MAAO,EAAY,KACnB,UAAU,iCACV,QAAS,EACC,YACV,CAAA,CAAA,CACD,CAEJ,EAAA,EACG,CAAA,EAzDH,EA2DD"}
@@ -1,5 +1 @@
1
- import { ContentEditorInput } from "./ContentEditorInput.mjs";
2
- import { ContentEditorTextArea } from "./ContentEditorTextArea.mjs";
3
- import { ContentEditor } from "./ContentEditor.mjs";
4
-
5
- export { ContentEditor, ContentEditorInput, ContentEditorTextArea };
1
+ import{ContentEditorInput as e}from"./ContentEditorInput.mjs";import{ContentEditorTextArea as t}from"./ContentEditorTextArea.mjs";import{ContentEditor as n}from"./ContentEditor.mjs";export{n as ContentEditor,e as ContentEditorInput,t as ContentEditorTextArea};
@@ -1,82 +1,2 @@
1
- 'use client';
2
-
3
- import { PressableSpan } from "../PressableSpan/PressableSpan.mjs";
4
- import { jsx } from "react/jsx-runtime";
5
-
6
- //#region src/components/ContentSelector/ContentSelector.tsx
7
- /**
8
- * ContentSelector - A higher-level wrapper around PressableSpan for content selection
9
- *
10
- * This component provides a semantic interface for making any content selectable through
11
- * long press gestures. It's specifically designed for content management interfaces
12
- * where users need to select text, images, or other elements to perform actions like
13
- * editing, moving, or applying operations.
14
- *
15
- * ## Key Features
16
- * - **Content Selection**: Makes any React content selectable via long press
17
- * - **Visual Feedback**: Inherits outline-based selection indicators from PressableSpan
18
- * - **Accessibility**: Full keyboard navigation and screen reader support
19
- * - **Click Outside**: Automatic deselection when clicking elsewhere
20
- * - **External Control**: Can be controlled externally for complex selection states
21
- *
22
- * ## Use Cases
23
- * - Content management systems with inline editing
24
- * - Text and media selection interfaces
25
- * - Interactive documentation with selectable sections
26
- * - Dashboard widgets with configurable content
27
- * - Form builders with selectable form elements
28
- *
29
- * ## Accessibility
30
- * - Inherits all accessibility features from PressableSpan
31
- * - Keyboard navigation with Tab, Enter, Space, and Escape
32
- * - Screen reader announcements for selection states
33
- * - Focus management and proper ARIA attributes
34
- *
35
- * @example
36
- * Basic content selection:
37
- * ```tsx
38
- * <ContentSelector onSelect={() => setIsEditing(true)}>
39
- * <p>This paragraph becomes selectable</p>
40
- * </ContentSelector>
41
- * ```
42
- *
43
- * @example
44
- * With deselection handling:
45
- * ```tsx
46
- * <ContentSelector
47
- * onSelect={() => setSelectedContent(contentId)}
48
- * onUnselect={() => setSelectedContent(null)}
49
- * >
50
- * <div className="content-block">
51
- * <h2>Selectable Content Block</h2>
52
- * <p>Long press to select this entire block</p>
53
- * </div>
54
- * </ContentSelector>
55
- * ```
56
- *
57
- * @example
58
- * Controlled selection state:
59
- * ```tsx
60
- * <ContentSelector
61
- * isSelecting={selectedItems.includes(itemId)}
62
- * onSelect={() => selectItem(itemId)}
63
- * onUnselect={() => deselectItem(itemId)}
64
- * >
65
- * <ContentCard data={cardData} />
66
- * </ContentSelector>
67
- * ```
68
- */
69
- const ContentSelector = ({ children, onSelect, onUnselect, isSelecting, pressDuration, className, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy }) => /* @__PURE__ */ jsx(PressableSpan, {
70
- onPress: onSelect,
71
- onClickOutside: onUnselect,
72
- isSelecting,
73
- pressDuration,
74
- className,
75
- "aria-label": ariaLabel,
76
- "aria-describedby": ariaDescribedBy,
77
- children
78
- });
79
-
80
- //#endregion
81
- export { ContentSelector };
1
+ "use client";import{PressableSpan as e}from"../PressableSpan/PressableSpan.mjs";import{jsx as t}from"react/jsx-runtime";const n=({children:n,onSelect:r,onUnselect:i,isSelecting:a,pressDuration:o,className:s,"aria-label":c,"aria-describedby":l})=>t(e,{onPress:r,onClickOutside:i,isSelecting:a,pressDuration:o,className:s,"aria-label":c,"aria-describedby":l,children:n});export{n as ContentSelector};
82
2
  //# sourceMappingURL=ContentSelector.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentSelector.mjs","names":[],"sources":["../../../../src/components/ContentSelector/ContentSelector.tsx"],"sourcesContent":["'use client';\n\nimport type { FC, ReactNode } from 'react';\nimport { PressableSpan } from '../PressableSpan';\n\n/**\n * Props for the ContentSelector component\n */\ntype ContentSelectorProps = {\n /**\n * The content to be displayed and made selectable\n * @example\n * ```tsx\n * <ContentSelector onSelect={() => startEditing()}>\n * <h1>Selectable Heading</h1>\n * </ContentSelector>\n * ```\n */\n children: ReactNode;\n\n /**\n * Callback function triggered when content is selected via long press or keyboard\n * @example\n * ```tsx\n * <ContentSelector\n * onSelect={() => setEditMode(true)}\n * onUnselect={() => setEditMode(false)}\n * >\n * Click content to edit\n * </ContentSelector>\n * ```\n */\n onSelect: () => void;\n\n /**\n * Optional callback function triggered when clicking outside the selected content\n * Used to deselect the content and exit edit/selection mode\n * @example\n * ```tsx\n * <ContentSelector\n * onSelect={() => enterEditMode()}\n * onUnselect={() => exitEditMode()}\n * >\n * Editable content with auto-deselect\n * </ContentSelector>\n * ```\n */\n onUnselect?: () => void;\n\n /**\n * External control for the selection state\n * When provided, overrides the internal selection state\n * @example\n * ```tsx\n * <ContentSelector\n * isSelecting={isInEditMode}\n * onSelect={() => {}}\n * >\n * Externally controlled content\n * </ContentSelector>\n * ```\n */\n isSelecting?: boolean;\n\n /**\n * Duration in milliseconds for long press detection\n * @default 400\n * @example\n * ```tsx\n * <ContentSelector\n * pressDuration={600}\n * onSelect={() => activateSlowSelection()}\n * >\n * Requires longer press\n * </ContentSelector>\n * ```\n */\n pressDuration?: number;\n\n /**\n * Additional CSS classes for styling the selectable content\n * @example\n * ```tsx\n * <ContentSelector\n * className=\"border-2 border-dashed border-blue-300\"\n * onSelect={() => {}}\n * >\n * Styled selectable content\n * </ContentSelector>\n * ```\n */\n className?: string;\n\n /**\n * ARIA label for accessibility\n * Provides context about what happens when the content is selected\n * @example\n * ```tsx\n * <ContentSelector\n * aria-label=\"Select to edit this content\"\n * onSelect={() => {}}\n * >\n * Content with accessibility context\n * </ContentSelector>\n * ```\n */\n 'aria-label'?: string;\n\n /**\n * ID of element providing additional description\n * @example\n * ```tsx\n * <ContentSelector\n * aria-describedby=\"help-text\"\n * onSelect={() => {}}\n * >\n * Content with help\n * </ContentSelector>\n * <div id=\"help-text\">Long press to edit</div>\n * ```\n */\n 'aria-describedby'?: string;\n};\n\n/**\n * ContentSelector - A higher-level wrapper around PressableSpan for content selection\n *\n * This component provides a semantic interface for making any content selectable through\n * long press gestures. It's specifically designed for content management interfaces\n * where users need to select text, images, or other elements to perform actions like\n * editing, moving, or applying operations.\n *\n * ## Key Features\n * - **Content Selection**: Makes any React content selectable via long press\n * - **Visual Feedback**: Inherits outline-based selection indicators from PressableSpan\n * - **Accessibility**: Full keyboard navigation and screen reader support\n * - **Click Outside**: Automatic deselection when clicking elsewhere\n * - **External Control**: Can be controlled externally for complex selection states\n *\n * ## Use Cases\n * - Content management systems with inline editing\n * - Text and media selection interfaces\n * - Interactive documentation with selectable sections\n * - Dashboard widgets with configurable content\n * - Form builders with selectable form elements\n *\n * ## Accessibility\n * - Inherits all accessibility features from PressableSpan\n * - Keyboard navigation with Tab, Enter, Space, and Escape\n * - Screen reader announcements for selection states\n * - Focus management and proper ARIA attributes\n *\n * @example\n * Basic content selection:\n * ```tsx\n * <ContentSelector onSelect={() => setIsEditing(true)}>\n * <p>This paragraph becomes selectable</p>\n * </ContentSelector>\n * ```\n *\n * @example\n * With deselection handling:\n * ```tsx\n * <ContentSelector\n * onSelect={() => setSelectedContent(contentId)}\n * onUnselect={() => setSelectedContent(null)}\n * >\n * <div className=\"content-block\">\n * <h2>Selectable Content Block</h2>\n * <p>Long press to select this entire block</p>\n * </div>\n * </ContentSelector>\n * ```\n *\n * @example\n * Controlled selection state:\n * ```tsx\n * <ContentSelector\n * isSelecting={selectedItems.includes(itemId)}\n * onSelect={() => selectItem(itemId)}\n * onUnselect={() => deselectItem(itemId)}\n * >\n * <ContentCard data={cardData} />\n * </ContentSelector>\n * ```\n */\n\nexport const ContentSelector: FC<ContentSelectorProps> = ({\n children,\n onSelect,\n onUnselect,\n isSelecting,\n pressDuration,\n className,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}) => (\n <PressableSpan\n onPress={onSelect}\n onClickOutside={onUnselect}\n isSelecting={isSelecting}\n pressDuration={pressDuration}\n className={className}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n >\n {children}\n </PressableSpan>\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2LA,MAAa,mBAA6C,EACxD,UACA,UACA,YACA,aACA,eACA,WACA,cAAc,WACd,oBAAoB,sBAEpB,oBAAC;CACC,SAAS;CACT,gBAAgB;CACH;CACE;CACJ;CACX,cAAY;CACZ,oBAAkB;CAEjB;EACa"}
1
+ {"version":3,"file":"ContentSelector.mjs","names":[],"sources":["../../../../src/components/ContentSelector/ContentSelector.tsx"],"sourcesContent":["'use client';\n\nimport type { FC, ReactNode } from 'react';\nimport { PressableSpan } from '../PressableSpan';\n\n/**\n * Props for the ContentSelector component\n */\ntype ContentSelectorProps = {\n /**\n * The content to be displayed and made selectable\n * @example\n * ```tsx\n * <ContentSelector onSelect={() => startEditing()}>\n * <h1>Selectable Heading</h1>\n * </ContentSelector>\n * ```\n */\n children: ReactNode;\n\n /**\n * Callback function triggered when content is selected via long press or keyboard\n * @example\n * ```tsx\n * <ContentSelector\n * onSelect={() => setEditMode(true)}\n * onUnselect={() => setEditMode(false)}\n * >\n * Click content to edit\n * </ContentSelector>\n * ```\n */\n onSelect: () => void;\n\n /**\n * Optional callback function triggered when clicking outside the selected content\n * Used to deselect the content and exit edit/selection mode\n * @example\n * ```tsx\n * <ContentSelector\n * onSelect={() => enterEditMode()}\n * onUnselect={() => exitEditMode()}\n * >\n * Editable content with auto-deselect\n * </ContentSelector>\n * ```\n */\n onUnselect?: () => void;\n\n /**\n * External control for the selection state\n * When provided, overrides the internal selection state\n * @example\n * ```tsx\n * <ContentSelector\n * isSelecting={isInEditMode}\n * onSelect={() => {}}\n * >\n * Externally controlled content\n * </ContentSelector>\n * ```\n */\n isSelecting?: boolean;\n\n /**\n * Duration in milliseconds for long press detection\n * @default 400\n * @example\n * ```tsx\n * <ContentSelector\n * pressDuration={600}\n * onSelect={() => activateSlowSelection()}\n * >\n * Requires longer press\n * </ContentSelector>\n * ```\n */\n pressDuration?: number;\n\n /**\n * Additional CSS classes for styling the selectable content\n * @example\n * ```tsx\n * <ContentSelector\n * className=\"border-2 border-dashed border-blue-300\"\n * onSelect={() => {}}\n * >\n * Styled selectable content\n * </ContentSelector>\n * ```\n */\n className?: string;\n\n /**\n * ARIA label for accessibility\n * Provides context about what happens when the content is selected\n * @example\n * ```tsx\n * <ContentSelector\n * aria-label=\"Select to edit this content\"\n * onSelect={() => {}}\n * >\n * Content with accessibility context\n * </ContentSelector>\n * ```\n */\n 'aria-label'?: string;\n\n /**\n * ID of element providing additional description\n * @example\n * ```tsx\n * <ContentSelector\n * aria-describedby=\"help-text\"\n * onSelect={() => {}}\n * >\n * Content with help\n * </ContentSelector>\n * <div id=\"help-text\">Long press to edit</div>\n * ```\n */\n 'aria-describedby'?: string;\n};\n\n/**\n * ContentSelector - A higher-level wrapper around PressableSpan for content selection\n *\n * This component provides a semantic interface for making any content selectable through\n * long press gestures. It's specifically designed for content management interfaces\n * where users need to select text, images, or other elements to perform actions like\n * editing, moving, or applying operations.\n *\n * ## Key Features\n * - **Content Selection**: Makes any React content selectable via long press\n * - **Visual Feedback**: Inherits outline-based selection indicators from PressableSpan\n * - **Accessibility**: Full keyboard navigation and screen reader support\n * - **Click Outside**: Automatic deselection when clicking elsewhere\n * - **External Control**: Can be controlled externally for complex selection states\n *\n * ## Use Cases\n * - Content management systems with inline editing\n * - Text and media selection interfaces\n * - Interactive documentation with selectable sections\n * - Dashboard widgets with configurable content\n * - Form builders with selectable form elements\n *\n * ## Accessibility\n * - Inherits all accessibility features from PressableSpan\n * - Keyboard navigation with Tab, Enter, Space, and Escape\n * - Screen reader announcements for selection states\n * - Focus management and proper ARIA attributes\n *\n * @example\n * Basic content selection:\n * ```tsx\n * <ContentSelector onSelect={() => setIsEditing(true)}>\n * <p>This paragraph becomes selectable</p>\n * </ContentSelector>\n * ```\n *\n * @example\n * With deselection handling:\n * ```tsx\n * <ContentSelector\n * onSelect={() => setSelectedContent(contentId)}\n * onUnselect={() => setSelectedContent(null)}\n * >\n * <div className=\"content-block\">\n * <h2>Selectable Content Block</h2>\n * <p>Long press to select this entire block</p>\n * </div>\n * </ContentSelector>\n * ```\n *\n * @example\n * Controlled selection state:\n * ```tsx\n * <ContentSelector\n * isSelecting={selectedItems.includes(itemId)}\n * onSelect={() => selectItem(itemId)}\n * onUnselect={() => deselectItem(itemId)}\n * >\n * <ContentCard data={cardData} />\n * </ContentSelector>\n * ```\n */\n\nexport const ContentSelector: FC<ContentSelectorProps> = ({\n children,\n onSelect,\n onUnselect,\n isSelecting,\n pressDuration,\n className,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}) => (\n <PressableSpan\n onPress={onSelect}\n onClickOutside={onUnselect}\n isSelecting={isSelecting}\n pressDuration={pressDuration}\n className={className}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n >\n {children}\n </PressableSpan>\n);\n"],"mappings":"wHA2LA,MAAa,GAA6C,CACxD,WACA,WACA,aACA,cACA,gBACA,YACA,aAAc,EACd,mBAAoB,KAEpB,EAAC,EAAA,CACC,QAAS,EACT,eAAgB,EACH,cACE,gBACJ,YACX,aAAY,EACZ,mBAAkB,EAEjB,YACa"}
@@ -1,3 +1 @@
1
- import { ContentSelector } from "./ContentSelector.mjs";
2
-
3
- export { ContentSelector };
1
+ import{ContentSelector as e}from"./ContentSelector.mjs";export{e as ContentSelector};
@@ -1,33 +1,2 @@
1
- import { t } from "intlayer";
2
-
3
- //#region src/components/CopyButton/CopyButton.content.ts
4
- const copyContentContent = {
5
- key: "copy-button",
6
- content: { label: t({
7
- en: "Copy content",
8
- fr: "Copier le contenu",
9
- es: "Copiar contenido",
10
- "en-GB": "Copy content",
11
- de: "Inhalt kopieren",
12
- ja: "コンテンツをコピー",
13
- ko: "콘텐츠 복사",
14
- zh: "复制内容",
15
- it: "Copia contenuto",
16
- pt: "Copiar conteúdo",
17
- hi: "सामग्री कॉपी करें",
18
- ar: "نسخ المحتوى",
19
- ru: "Копировать содержимое",
20
- tr: "İçeriği kopyala",
21
- pl: "Kopiuj zawartość",
22
- id: "Salin konten",
23
- vi: "Sao chép nội dung",
24
- uk: "Копіювати вміст"
25
- }) },
26
- title: "Copy button label",
27
- description: "Content declaration for the copy button label used to trigger the copy to clipboard action in the design system.",
28
- tags: ["button component", "design system"]
29
- };
30
-
31
- //#endregion
32
- export { copyContentContent, copyContentContent as default };
1
+ import{t as e}from"intlayer";const t={key:`copy-button`,content:{label:e({en:`Copy content`,fr:`Copier le contenu`,es:`Copiar contenido`,"en-GB":`Copy content`,de:`Inhalt kopieren`,ja:`コンテンツをコピー`,ko:`콘텐츠 복사`,zh:`复制内容`,it:`Copia contenuto`,pt:`Copiar conteúdo`,hi:`सामग्री कॉपी करें`,ar:`نسخ المحتوى`,ru:`Копировать содержимое`,tr:`İçeriği kopyala`,pl:`Kopiuj zawartość`,id:`Salin konten`,vi:`Sao chép nội dung`,uk:`Копіювати вміст`})},title:`Copy button label`,description:`Content declaration for the copy button label used to trigger the copy to clipboard action in the design system.`,tags:[`button component`,`design system`]};export{t as copyContentContent,t as default};
33
2
  //# sourceMappingURL=CopyButton.content.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CopyButton.content.mjs","names":[],"sources":["../../../../src/components/CopyButton/CopyButton.content.ts"],"sourcesContent":["import { type Dictionary, t } from 'intlayer';\n\nexport const copyContentContent = {\n key: 'copy-button',\n content: {\n label: t({\n en: 'Copy content',\n fr: 'Copier le contenu',\n es: 'Copiar contenido',\n 'en-GB': 'Copy content',\n de: 'Inhalt kopieren',\n ja: 'コンテンツをコピー',\n ko: '콘텐츠 복사',\n zh: '复制内容',\n it: 'Copia contenuto',\n pt: 'Copiar conteúdo',\n hi: 'सामग्री कॉपी करें',\n ar: 'نسخ المحتوى',\n ru: 'Копировать содержимое',\n tr: 'İçeriği kopyala',\n pl: 'Kopiuj zawartość',\n id: 'Salin konten',\n vi: 'Sao chép nội dung',\n uk: 'Копіювати вміст',\n }),\n },\n title: 'Copy button label',\n description:\n 'Content declaration for the copy button label used to trigger the copy to clipboard action in the design system.',\n tags: ['button component', 'design system'],\n} satisfies Dictionary;\n\nexport default copyContentContent;\n"],"mappings":";;;AAEA,MAAa,qBAAqB;CAChC,KAAK;CACL,SAAS,EACP,OAAO,EAAE;EACP,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,SAAS;EACT,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,CAAC,EACH;CACD,OAAO;CACP,aACE;CACF,MAAM,CAAC,oBAAoB,gBAAgB;CAC5C"}
1
+ {"version":3,"file":"CopyButton.content.mjs","names":[],"sources":["../../../../src/components/CopyButton/CopyButton.content.ts"],"sourcesContent":["import { type Dictionary, t } from 'intlayer';\n\nexport const copyContentContent = {\n key: 'copy-button',\n content: {\n label: t({\n en: 'Copy content',\n fr: 'Copier le contenu',\n es: 'Copiar contenido',\n 'en-GB': 'Copy content',\n de: 'Inhalt kopieren',\n ja: 'コンテンツをコピー',\n ko: '콘텐츠 복사',\n zh: '复制内容',\n it: 'Copia contenuto',\n pt: 'Copiar conteúdo',\n hi: 'सामग्री कॉपी करें',\n ar: 'نسخ المحتوى',\n ru: 'Копировать содержимое',\n tr: 'İçeriği kopyala',\n pl: 'Kopiuj zawartość',\n id: 'Salin konten',\n vi: 'Sao chép nội dung',\n uk: 'Копіювати вміст',\n }),\n },\n title: 'Copy button label',\n description:\n 'Content declaration for the copy button label used to trigger the copy to clipboard action in the design system.',\n tags: ['button component', 'design system'],\n} satisfies Dictionary;\n\nexport default copyContentContent;\n"],"mappings":"6BAEA,MAAa,EAAqB,CAChC,IAAK,cACL,QAAS,CACP,MAAO,EAAE,CACP,GAAI,eACJ,GAAI,oBACJ,GAAI,mBACJ,QAAS,eACT,GAAI,kBACJ,GAAI,YACJ,GAAI,SACJ,GAAI,OACJ,GAAI,kBACJ,GAAI,kBACJ,GAAI,oBACJ,GAAI,cACJ,GAAI,wBACJ,GAAI,kBACJ,GAAI,mBACJ,GAAI,eACJ,GAAI,oBACJ,GAAI,kBACL,CAAC,CACH,CACD,MAAO,oBACP,YACE,mHACF,KAAM,CAAC,mBAAoB,gBAAgB,CAC5C"}
@@ -1,122 +1,2 @@
1
- 'use client';
2
-
3
- import { Button, ButtonColor, ButtonSize, ButtonVariant } from "../Button/Button.mjs";
4
- import { CopyCheckIcon, CopyIcon } from "lucide-react";
5
- import { useEffect, useState } from "react";
6
- import { jsx } from "react/jsx-runtime";
7
- import { useIntlayer } from "react-intlayer";
8
-
9
- //#region src/components/CopyButton/index.tsx
10
- /**
11
- * CopyButton - A specialized button component for copying text to the clipboard
12
- *
13
- * This component provides a user-friendly way to copy text content to the system clipboard
14
- * with visual feedback and accessibility features. It uses the modern Clipboard API with
15
- * fallback error handling, and provides clear visual indication of successful copy operations.
16
- *
17
- * ## Key Features
18
- * - **Clipboard Integration**: Uses modern Clipboard API for reliable text copying
19
- * - **Visual Feedback**: Icon changes from copy to check mark on successful copy
20
- * - **Auto-Reset**: Automatically reverts to copy icon after 1 second
21
- * - **Error Handling**: Graceful error handling with console logging
22
- * - **Accessibility**: Full keyboard navigation and screen reader support
23
- * - **Internationalization**: Multi-language support via Intlayer
24
- *
25
- * ## Use Cases
26
- * - Code snippet copying in documentation
27
- * - Sharing URLs or links
28
- * - Copying configuration values
29
- * - Form data duplication
30
- * - API key or token copying
31
- * - Text content sharing in interfaces
32
- *
33
- * ## Accessibility
34
- * - Uses semantic button element with proper ARIA labeling
35
- * - Keyboard accessible (Tab, Enter, Space)
36
- * - Screen reader announces copy actions
37
- * - Focus management with visible indicators
38
- * - Proper error state handling for assistive technologies
39
- *
40
- * ## Browser Compatibility
41
- * - Requires modern browsers with Clipboard API support
42
- * - Falls back gracefully with error logging for unsupported browsers
43
- * - Works in secure contexts (HTTPS) as required by Clipboard API
44
- *
45
- * @example
46
- * Basic usage:
47
- * ```tsx
48
- * <CopyButton content="Text to copy" />
49
- * ```
50
- *
51
- * @example
52
- * With custom styling and label:
53
- * ```tsx
54
- * <CopyButton
55
- * content="https://example.com/api/endpoint"
56
- * label="Copy API endpoint"
57
- * variant={ButtonVariant.OUTLINE}
58
- * color={ButtonColor.PRIMARY}
59
- * size={ButtonSize.ICON_MD}
60
- * />
61
- * ```
62
- *
63
- * @example
64
- * In a code block context:
65
- * ```tsx
66
- * <div className="relative">
67
- * <pre className="bg-gray-100 p-4 rounded">
68
- * <code>npm install @intlayer/design-system</code>
69
- * </pre>
70
- * <CopyButton
71
- * content="npm install @intlayer/design-system"
72
- * className="absolute top-2 right-2"
73
- * label="Copy installation command"
74
- * />
75
- * </div>
76
- * ```
77
- */
78
- const CopyButton = ({ content, ...props }) => {
79
- const [copied, setCopied] = useState(false);
80
- const [error, setError] = useState(false);
81
- const { label } = useIntlayer("copy-button");
82
- const handleCopy = async () => {
83
- try {
84
- setError(false);
85
- await navigator.clipboard.writeText(content);
86
- setCopied(true);
87
- } catch (error) {
88
- console.error("Failed to copy text: ", error);
89
- setError(true);
90
- }
91
- };
92
- useEffect(() => {
93
- if (copied || error) {
94
- const timer = setTimeout(() => {
95
- setCopied(false);
96
- setError(false);
97
- }, 1e3);
98
- return () => clearTimeout(timer);
99
- }
100
- }, [copied, error]);
101
- const getAriaLabel = () => {
102
- if (copied) return "Content copied to clipboard";
103
- if (error) return "Failed to copy content";
104
- return props.label ?? label.value;
105
- };
106
- return /* @__PURE__ */ jsx(Button, {
107
- Icon: copied ? CopyCheckIcon : CopyIcon,
108
- onClick: handleCopy,
109
- variant: ButtonVariant.HOVERABLE,
110
- color: ButtonColor.TEXT,
111
- size: ButtonSize.ICON_SM,
112
- tabIndex: 0,
113
- title: getAriaLabel(),
114
- ...props,
115
- label: getAriaLabel(),
116
- "aria-describedby": copied ? "copy-success" : error ? "copy-error" : void 0
117
- });
118
- };
119
-
120
- //#endregion
121
- export { CopyButton };
1
+ "use client";import{Button as e,ButtonColor as t,ButtonSize as n,ButtonVariant as r}from"../Button/Button.mjs";import{CopyCheckIcon as i,CopyIcon as a}from"lucide-react";import{useEffect as o,useState as s}from"react";import{jsx as c}from"react/jsx-runtime";import{useIntlayer as l}from"react-intlayer";const u=({content:u,...d})=>{let[f,p]=s(!1),[m,h]=s(!1),{label:g}=l(`copy-button`),_=async()=>{try{h(!1),await navigator.clipboard.writeText(u),p(!0)}catch(e){console.error(`Failed to copy text: `,e),h(!0)}};o(()=>{if(f||m){let e=setTimeout(()=>{p(!1),h(!1)},1e3);return()=>clearTimeout(e)}},[f,m]);let v=()=>f?`Content copied to clipboard`:m?`Failed to copy content`:d.label??g.value;return c(e,{Icon:f?i:a,onClick:_,variant:r.HOVERABLE,color:t.TEXT,size:n.ICON_SM,tabIndex:0,title:v(),...d,label:v(),"aria-describedby":f?`copy-success`:m?`copy-error`:void 0})};export{u as CopyButton};
122
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/CopyButton/index.tsx"],"sourcesContent":["'use client';\n\nimport { CopyCheckIcon, CopyIcon } from 'lucide-react';\nimport { type FC, useEffect, useState } from 'react';\nimport { useIntlayer } from 'react-intlayer';\nimport {\n Button,\n ButtonColor,\n type ButtonProps,\n ButtonSize,\n ButtonVariant,\n} from '../Button';\n\n/**\n * Props for the CopyButton component\n */\ntype CopyButtonProps = {\n /**\n * The text content to copy to the clipboard\n * @example\n * ```tsx\n * <CopyButton content=\"Hello World!\" />\n * ```\n */\n content: string;\n} & Partial<ButtonProps>;\n\n/**\n * CopyButton - A specialized button component for copying text to the clipboard\n *\n * This component provides a user-friendly way to copy text content to the system clipboard\n * with visual feedback and accessibility features. It uses the modern Clipboard API with\n * fallback error handling, and provides clear visual indication of successful copy operations.\n *\n * ## Key Features\n * - **Clipboard Integration**: Uses modern Clipboard API for reliable text copying\n * - **Visual Feedback**: Icon changes from copy to check mark on successful copy\n * - **Auto-Reset**: Automatically reverts to copy icon after 1 second\n * - **Error Handling**: Graceful error handling with console logging\n * - **Accessibility**: Full keyboard navigation and screen reader support\n * - **Internationalization**: Multi-language support via Intlayer\n *\n * ## Use Cases\n * - Code snippet copying in documentation\n * - Sharing URLs or links\n * - Copying configuration values\n * - Form data duplication\n * - API key or token copying\n * - Text content sharing in interfaces\n *\n * ## Accessibility\n * - Uses semantic button element with proper ARIA labeling\n * - Keyboard accessible (Tab, Enter, Space)\n * - Screen reader announces copy actions\n * - Focus management with visible indicators\n * - Proper error state handling for assistive technologies\n *\n * ## Browser Compatibility\n * - Requires modern browsers with Clipboard API support\n * - Falls back gracefully with error logging for unsupported browsers\n * - Works in secure contexts (HTTPS) as required by Clipboard API\n *\n * @example\n * Basic usage:\n * ```tsx\n * <CopyButton content=\"Text to copy\" />\n * ```\n *\n * @example\n * With custom styling and label:\n * ```tsx\n * <CopyButton\n * content=\"https://example.com/api/endpoint\"\n * label=\"Copy API endpoint\"\n * variant={ButtonVariant.OUTLINE}\n * color={ButtonColor.PRIMARY}\n * size={ButtonSize.ICON_MD}\n * />\n * ```\n *\n * @example\n * In a code block context:\n * ```tsx\n * <div className=\"relative\">\n * <pre className=\"bg-gray-100 p-4 rounded\">\n * <code>npm install @intlayer/design-system</code>\n * </pre>\n * <CopyButton\n * content=\"npm install @intlayer/design-system\"\n * className=\"absolute top-2 right-2\"\n * label=\"Copy installation command\"\n * />\n * </div>\n * ```\n */\n\nexport const CopyButton: FC<CopyButtonProps> = ({ content, ...props }) => {\n const [copied, setCopied] = useState(false);\n const [error, setError] = useState(false);\n const { label } = useIntlayer('copy-button');\n\n const handleCopy = async () => {\n try {\n setError(false);\n await navigator.clipboard.writeText(content);\n setCopied(true);\n } catch (error) {\n console.error('Failed to copy text: ', error);\n setError(true);\n }\n };\n\n useEffect(() => {\n if (copied || error) {\n const timer = setTimeout(() => {\n setCopied(false);\n setError(false);\n }, 1000);\n return () => clearTimeout(timer);\n }\n }, [copied, error]);\n\n // Determine the current state for accessibility\n const getAriaLabel = () => {\n if (copied) return 'Content copied to clipboard';\n if (error) return 'Failed to copy content';\n return props.label ?? label.value;\n };\n\n return (\n <Button\n Icon={copied ? CopyCheckIcon : CopyIcon}\n onClick={handleCopy}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n size={ButtonSize.ICON_SM}\n tabIndex={0}\n title={getAriaLabel()}\n {...props}\n label={getAriaLabel()}\n aria-describedby={\n copied ? 'copy-success' : error ? 'copy-error' : undefined\n }\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGA,MAAa,cAAmC,EAAE,SAAS,GAAG,YAAY;CACxE,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAM,CAAC,OAAO,YAAY,SAAS,MAAM;CACzC,MAAM,EAAE,UAAU,YAAY,cAAc;CAE5C,MAAM,aAAa,YAAY;AAC7B,MAAI;AACF,YAAS,MAAM;AACf,SAAM,UAAU,UAAU,UAAU,QAAQ;AAC5C,aAAU,KAAK;WACR,OAAO;AACd,WAAQ,MAAM,yBAAyB,MAAM;AAC7C,YAAS,KAAK;;;AAIlB,iBAAgB;AACd,MAAI,UAAU,OAAO;GACnB,MAAM,QAAQ,iBAAiB;AAC7B,cAAU,MAAM;AAChB,aAAS,MAAM;MACd,IAAK;AACR,gBAAa,aAAa,MAAM;;IAEjC,CAAC,QAAQ,MAAM,CAAC;CAGnB,MAAM,qBAAqB;AACzB,MAAI,OAAQ,QAAO;AACnB,MAAI,MAAO,QAAO;AAClB,SAAO,MAAM,SAAS,MAAM;;AAG9B,QACE,oBAAC;EACC,MAAM,SAAS,gBAAgB;EAC/B,SAAS;EACT,SAAS,cAAc;EACvB,OAAO,YAAY;EACnB,MAAM,WAAW;EACjB,UAAU;EACV,OAAO,cAAc;EACrB,GAAI;EACJ,OAAO,cAAc;EACrB,oBACE,SAAS,iBAAiB,QAAQ,eAAe;GAEnD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/CopyButton/index.tsx"],"sourcesContent":["'use client';\n\nimport { CopyCheckIcon, CopyIcon } from 'lucide-react';\nimport { type FC, useEffect, useState } from 'react';\nimport { useIntlayer } from 'react-intlayer';\nimport {\n Button,\n ButtonColor,\n type ButtonProps,\n ButtonSize,\n ButtonVariant,\n} from '../Button';\n\n/**\n * Props for the CopyButton component\n */\ntype CopyButtonProps = {\n /**\n * The text content to copy to the clipboard\n * @example\n * ```tsx\n * <CopyButton content=\"Hello World!\" />\n * ```\n */\n content: string;\n} & Partial<ButtonProps>;\n\n/**\n * CopyButton - A specialized button component for copying text to the clipboard\n *\n * This component provides a user-friendly way to copy text content to the system clipboard\n * with visual feedback and accessibility features. It uses the modern Clipboard API with\n * fallback error handling, and provides clear visual indication of successful copy operations.\n *\n * ## Key Features\n * - **Clipboard Integration**: Uses modern Clipboard API for reliable text copying\n * - **Visual Feedback**: Icon changes from copy to check mark on successful copy\n * - **Auto-Reset**: Automatically reverts to copy icon after 1 second\n * - **Error Handling**: Graceful error handling with console logging\n * - **Accessibility**: Full keyboard navigation and screen reader support\n * - **Internationalization**: Multi-language support via Intlayer\n *\n * ## Use Cases\n * - Code snippet copying in documentation\n * - Sharing URLs or links\n * - Copying configuration values\n * - Form data duplication\n * - API key or token copying\n * - Text content sharing in interfaces\n *\n * ## Accessibility\n * - Uses semantic button element with proper ARIA labeling\n * - Keyboard accessible (Tab, Enter, Space)\n * - Screen reader announces copy actions\n * - Focus management with visible indicators\n * - Proper error state handling for assistive technologies\n *\n * ## Browser Compatibility\n * - Requires modern browsers with Clipboard API support\n * - Falls back gracefully with error logging for unsupported browsers\n * - Works in secure contexts (HTTPS) as required by Clipboard API\n *\n * @example\n * Basic usage:\n * ```tsx\n * <CopyButton content=\"Text to copy\" />\n * ```\n *\n * @example\n * With custom styling and label:\n * ```tsx\n * <CopyButton\n * content=\"https://example.com/api/endpoint\"\n * label=\"Copy API endpoint\"\n * variant={ButtonVariant.OUTLINE}\n * color={ButtonColor.PRIMARY}\n * size={ButtonSize.ICON_MD}\n * />\n * ```\n *\n * @example\n * In a code block context:\n * ```tsx\n * <div className=\"relative\">\n * <pre className=\"bg-gray-100 p-4 rounded\">\n * <code>npm install @intlayer/design-system</code>\n * </pre>\n * <CopyButton\n * content=\"npm install @intlayer/design-system\"\n * className=\"absolute top-2 right-2\"\n * label=\"Copy installation command\"\n * />\n * </div>\n * ```\n */\n\nexport const CopyButton: FC<CopyButtonProps> = ({ content, ...props }) => {\n const [copied, setCopied] = useState(false);\n const [error, setError] = useState(false);\n const { label } = useIntlayer('copy-button');\n\n const handleCopy = async () => {\n try {\n setError(false);\n await navigator.clipboard.writeText(content);\n setCopied(true);\n } catch (error) {\n console.error('Failed to copy text: ', error);\n setError(true);\n }\n };\n\n useEffect(() => {\n if (copied || error) {\n const timer = setTimeout(() => {\n setCopied(false);\n setError(false);\n }, 1000);\n return () => clearTimeout(timer);\n }\n }, [copied, error]);\n\n // Determine the current state for accessibility\n const getAriaLabel = () => {\n if (copied) return 'Content copied to clipboard';\n if (error) return 'Failed to copy content';\n return props.label ?? label.value;\n };\n\n return (\n <Button\n Icon={copied ? CopyCheckIcon : CopyIcon}\n onClick={handleCopy}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n size={ButtonSize.ICON_SM}\n tabIndex={0}\n title={getAriaLabel()}\n {...props}\n label={getAriaLabel()}\n aria-describedby={\n copied ? 'copy-success' : error ? 'copy-error' : undefined\n }\n />\n );\n};\n"],"mappings":"+SAgGA,MAAa,GAAmC,CAAE,UAAS,GAAG,KAAY,CACxE,GAAM,CAAC,EAAQ,GAAa,EAAS,GAAM,CACrC,CAAC,EAAO,GAAY,EAAS,GAAM,CACnC,CAAE,SAAU,EAAY,cAAc,CAEtC,EAAa,SAAY,CAC7B,GAAI,CACF,EAAS,GAAM,CACf,MAAM,UAAU,UAAU,UAAU,EAAQ,CAC5C,EAAU,GAAK,OACR,EAAO,CACd,QAAQ,MAAM,wBAAyB,EAAM,CAC7C,EAAS,GAAK,GAIlB,MAAgB,CACd,GAAI,GAAU,EAAO,CACnB,IAAM,EAAQ,eAAiB,CAC7B,EAAU,GAAM,CAChB,EAAS,GAAM,EACd,IAAK,CACR,UAAa,aAAa,EAAM,GAEjC,CAAC,EAAQ,EAAM,CAAC,CAGnB,IAAM,MACA,EAAe,8BACf,EAAc,yBACX,EAAM,OAAS,EAAM,MAG9B,OACE,EAAC,EAAA,CACC,KAAM,EAAS,EAAgB,EAC/B,QAAS,EACT,QAAS,EAAc,UACvB,MAAO,EAAY,KACnB,KAAM,EAAW,QACjB,SAAU,EACV,MAAO,GAAc,CACrB,GAAI,EACJ,MAAO,GAAc,CACrB,mBACE,EAAS,eAAiB,EAAQ,aAAe,IAAA,IAEnD"}
@@ -1,102 +1,2 @@
1
- 'use client';
2
-
3
- import { cn } from "../../utils/cn.mjs";
4
- import { CopyCheck, CopyIcon } from "lucide-react";
5
- import { useState } from "react";
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
-
8
- //#region src/components/CopyToClipboard/index.tsx
9
- const useCopyToClipboard = (text, feedbackDuration = 2e3, onCopySuccess, onCopyError) => {
10
- const [isCopied, setIsCopied] = useState(false);
11
- const copy = async () => {
12
- if (!text) return;
13
- try {
14
- if (navigator.clipboard?.writeText) await navigator.clipboard.writeText(text);
15
- else {
16
- onCopyError?.(/* @__PURE__ */ new Error("Clipboard API not supported in this browser"));
17
- return;
18
- }
19
- setIsCopied(true);
20
- setTimeout(() => setIsCopied(false), feedbackDuration);
21
- onCopySuccess?.();
22
- } catch (error) {
23
- const errorMessage = error instanceof Error ? error.message : "Failed to copy to clipboard";
24
- onCopyError?.(error instanceof Error ? error : new Error(errorMessage));
25
- }
26
- };
27
- return {
28
- isCopied,
29
- copy
30
- };
31
- };
32
- /**
33
- * CopyToClipboard Component
34
- *
35
- * A versatile component that allows users to copy text to their clipboard with visual feedback.
36
- * Provides accessibility features, customizable feedback duration, and error handling.
37
- *
38
- * @example
39
- * ```tsx
40
- * // Basic usage
41
- * <CopyToClipboard text="Hello World">
42
- * <span>Click to copy</span>
43
- * </CopyToClipboard>
44
- *
45
- * // With custom styling, callbacks, and icon size
46
- * <CopyToClipboard
47
- * text="npm install @intlayer/design-system"
48
- * className="bg-gray-100 p-2"
49
- * feedbackDuration={3000}
50
- * size={20}
51
- * onCopySuccess={() => console.log('Copied!')}
52
- * >
53
- * <code>npm install @intlayer/design-system</code>
54
- * </CopyToClipboard>
55
- * ```
56
- *
57
- * @component
58
- * @accessibility
59
- * - Uses proper ARIA labels for copy and copied states
60
- * - Supports keyboard navigation (Enter and Space keys)
61
- * - Announces state changes to screen readers
62
- * - Provides visual focus indicators
63
- */
64
- const CopyToClipboard = ({ text, children, className, "aria-label": ariaLabel = "Copy to clipboard", "aria-copied-label": ariaCopiedLabel = "Copied to clipboard", feedbackDuration = 2e3, onCopySuccess, onCopyError, disable, preventDefault = true, stopPropagation = true, size = 14 }) => {
65
- const { isCopied, copy } = useCopyToClipboard(text, feedbackDuration, onCopySuccess, onCopyError);
66
- if (disable) return /* @__PURE__ */ jsx("span", {
67
- className,
68
- children
69
- });
70
- const handleKeyDown = (event) => {
71
- if (event.key === "Enter" || event.key === " ") handleCopy(event);
72
- };
73
- const handleCopy = (event) => {
74
- if (preventDefault) event.preventDefault();
75
- if (stopPropagation) event.stopPropagation();
76
- copy();
77
- };
78
- const currentAriaLabel = isCopied ? ariaCopiedLabel : ariaLabel;
79
- const IconComponent = isCopied ? CopyCheck : CopyIcon;
80
- return /* @__PURE__ */ jsxs("span", {
81
- className: cn("inline-flex max-w-full cursor-pointer items-center gap-2 rounded-md p-0.5 hover:bg-neutral/10", className),
82
- onClick: handleCopy,
83
- onKeyDown: handleKeyDown,
84
- role: "button",
85
- tabIndex: 0,
86
- "aria-label": currentAriaLabel,
87
- "aria-pressed": isCopied,
88
- "data-testid": "copy-to-clipboard",
89
- children: [/* @__PURE__ */ jsx("span", {
90
- className: "min-w-0 break-all",
91
- children
92
- }), text && /* @__PURE__ */ jsx(IconComponent, {
93
- className: "ml-1 ml-auto shrink-0",
94
- size,
95
- "aria-hidden": "true"
96
- })]
97
- });
98
- };
99
-
100
- //#endregion
101
- export { CopyToClipboard, useCopyToClipboard };
1
+ "use client";import{cn as e}from"../../utils/cn.mjs";import{CopyCheck as t,CopyIcon as n}from"lucide-react";import{useState as r}from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=(e,t=2e3,n,i)=>{let[a,o]=r(!1);return{isCopied:a,copy:async()=>{if(e)try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(e);else{i?.(Error(`Clipboard API not supported in this browser`));return}o(!0),setTimeout(()=>o(!1),t),n?.()}catch(e){let t=e instanceof Error?e.message:`Failed to copy to clipboard`;i?.(e instanceof Error?e:Error(t))}}}},s=({text:r,children:s,className:c,"aria-label":l=`Copy to clipboard`,"aria-copied-label":u=`Copied to clipboard`,feedbackDuration:d=2e3,onCopySuccess:f,onCopyError:p,disable:m,preventDefault:h=!0,stopPropagation:g=!0,size:_=14})=>{let{isCopied:v,copy:y}=o(r,d,f,p);if(m)return i(`span`,{className:c,children:s});let b=e=>{(e.key===`Enter`||e.key===` `)&&x(e)},x=e=>{h&&e.preventDefault(),g&&e.stopPropagation(),y()},S=v?u:l,C=v?t:n;return a(`span`,{className:e(`inline-flex max-w-full cursor-pointer items-center gap-2 rounded-md p-0.5 hover:bg-neutral/10`,c),onClick:x,onKeyDown:b,role:`button`,tabIndex:0,"aria-label":S,"aria-pressed":v,"data-testid":`copy-to-clipboard`,children:[i(`span`,{className:`min-w-0 break-all`,children:s}),r&&i(C,{className:`ml-1 ml-auto shrink-0`,size:_,"aria-hidden":`true`})]})};export{s as CopyToClipboard,o as useCopyToClipboard};
102
2
  //# sourceMappingURL=index.mjs.map