@intlayer/design-system 5.7.7 → 5.8.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/dist/.vite/manifest.json +85 -57
  2. package/dist/{better-auth.8zoxzg-F-D8e0X4ys.js → better-auth.CMQ3rA-I-7umXOENE.js} +1 -7
  3. package/dist/better-auth.CMQ3rA-I-7umXOENE.js.map +1 -0
  4. package/dist/{better-auth.8zoxzg-F-BEBqzpjz.cjs → better-auth.CMQ3rA-I-C2nBKRMa.cjs} +1 -7
  5. package/dist/better-auth.CMQ3rA-I-C2nBKRMa.cjs.map +1 -0
  6. package/dist/components/Accordion/Accordion.cjs +2 -2
  7. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  8. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  9. package/dist/components/Accordion/Accordion.mjs +3 -3
  10. package/dist/components/Accordion/Accordion.mjs.map +1 -1
  11. package/dist/components/Badge/index.cjs +69 -12
  12. package/dist/components/Badge/index.cjs.map +1 -1
  13. package/dist/components/Badge/index.d.ts +18 -2
  14. package/dist/components/Badge/index.d.ts.map +1 -1
  15. package/dist/components/Badge/index.mjs +69 -12
  16. package/dist/components/Badge/index.mjs.map +1 -1
  17. package/dist/components/Breadcrumb/index.cjs +2 -2
  18. package/dist/components/Breadcrumb/index.cjs.map +1 -1
  19. package/dist/components/Breadcrumb/index.d.ts +2 -1
  20. package/dist/components/Breadcrumb/index.d.ts.map +1 -1
  21. package/dist/components/Breadcrumb/index.mjs +4 -4
  22. package/dist/components/Breadcrumb/index.mjs.map +1 -1
  23. package/dist/components/Button/Button.cjs +95 -40
  24. package/dist/components/Button/Button.cjs.map +1 -1
  25. package/dist/components/Button/Button.d.ts +42 -1
  26. package/dist/components/Button/Button.d.ts.map +1 -1
  27. package/dist/components/Button/Button.mjs +96 -41
  28. package/dist/components/Button/Button.mjs.map +1 -1
  29. package/dist/components/Button/index.cjs +5 -0
  30. package/dist/components/Button/index.cjs.map +1 -1
  31. package/dist/components/Button/index.mjs +7 -2
  32. package/dist/components/Container/index.cjs +67 -0
  33. package/dist/components/Container/index.cjs.map +1 -1
  34. package/dist/components/Container/index.d.ts +53 -0
  35. package/dist/components/Container/index.d.ts.map +1 -1
  36. package/dist/components/Container/index.mjs +67 -0
  37. package/dist/components/Container/index.mjs.map +1 -1
  38. package/dist/components/ContentEditor/ContentEditor.cjs +3 -1
  39. package/dist/components/ContentEditor/ContentEditor.cjs.map +1 -1
  40. package/dist/components/ContentEditor/ContentEditor.d.ts.map +1 -1
  41. package/dist/components/ContentEditor/ContentEditor.mjs +3 -1
  42. package/dist/components/ContentEditor/ContentEditor.mjs.map +1 -1
  43. package/dist/components/ContentEditor/ContentEditorInput.cjs +7 -7
  44. package/dist/components/ContentEditor/ContentEditorInput.cjs.map +1 -1
  45. package/dist/components/ContentEditor/ContentEditorInput.d.ts +1 -1
  46. package/dist/components/ContentEditor/ContentEditorInput.d.ts.map +1 -1
  47. package/dist/components/ContentEditor/ContentEditorInput.mjs +9 -9
  48. package/dist/components/ContentEditor/ContentEditorInput.mjs.map +1 -1
  49. package/dist/components/CopyButton/index.cjs +3 -3
  50. package/dist/components/CopyButton/index.cjs.map +1 -1
  51. package/dist/components/CopyButton/index.d.ts.map +1 -1
  52. package/dist/components/CopyButton/index.mjs +4 -4
  53. package/dist/components/CopyButton/index.mjs.map +1 -1
  54. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs +26 -26
  55. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs.map +1 -1
  56. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
  57. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +28 -28
  58. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
  59. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +3 -2
  60. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs.map +1 -1
  61. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.d.ts.map +1 -1
  62. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +3 -2
  63. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
  64. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.cjs +2 -1
  65. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.cjs.map +1 -1
  66. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts +1 -0
  67. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts.map +1 -1
  68. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.mjs +1 -0
  69. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.mjs.map +1 -1
  70. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.cjs +1 -1
  71. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.mjs +1 -1
  72. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +4 -3
  73. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
  74. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
  75. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +4 -3
  76. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  77. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs +2 -1
  78. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs.map +1 -1
  79. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +1 -0
  80. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
  81. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +1 -0
  82. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  83. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.cjs +1 -1
  84. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.cjs +2 -1
  85. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.cjs.map +1 -1
  86. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +1 -0
  87. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts.map +1 -1
  88. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs +1 -0
  89. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs.map +1 -1
  90. package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs +1 -1
  91. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +5 -5
  92. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  93. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  94. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +7 -7
  95. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  96. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +7 -7
  97. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
  98. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts +1 -1
  99. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
  100. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +8 -8
  101. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  102. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs +2 -1
  103. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs.map +1 -1
  104. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +1 -0
  105. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts.map +1 -1
  106. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs +1 -0
  107. package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs.map +1 -1
  108. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +13 -12
  109. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  110. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  111. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +14 -13
  112. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  113. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +2 -1
  114. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  115. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +1 -0
  116. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  117. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +1 -0
  118. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  119. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.cjs +9 -9
  120. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.cjs.map +1 -1
  121. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.d.ts.map +1 -1
  122. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.mjs +10 -10
  123. package/dist/components/DictionaryFieldEditor/StructureView/StructureView.mjs.map +1 -1
  124. package/dist/components/DictionaryFieldEditor/StructureView/structureView.content.cjs +2 -1
  125. package/dist/components/DictionaryFieldEditor/StructureView/structureView.content.cjs.map +1 -1
  126. package/dist/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts +1 -0
  127. package/dist/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts.map +1 -1
  128. package/dist/components/DictionaryFieldEditor/StructureView/structureView.content.mjs +1 -0
  129. package/dist/components/DictionaryFieldEditor/StructureView/structureView.content.mjs.map +1 -1
  130. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.cjs +4 -4
  131. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.cjs.map +1 -1
  132. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.d.ts.map +1 -1
  133. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs +5 -5
  134. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs.map +1 -1
  135. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs +1 -1
  136. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs +1 -1
  137. package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.cjs +2 -1
  138. package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.cjs.map +1 -1
  139. package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts +1 -0
  140. package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts.map +1 -1
  141. package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.mjs +1 -0
  142. package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.mjs.map +1 -1
  143. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.cjs +2 -1
  144. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.cjs.map +1 -1
  145. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +1 -0
  146. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
  147. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs +1 -0
  148. package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.mjs.map +1 -1
  149. package/dist/components/DropDown/index.cjs +11 -2
  150. package/dist/components/DropDown/index.cjs.map +1 -1
  151. package/dist/components/DropDown/index.d.ts +7 -2
  152. package/dist/components/DropDown/index.d.ts.map +1 -1
  153. package/dist/components/DropDown/index.mjs +12 -3
  154. package/dist/components/DropDown/index.mjs.map +1 -1
  155. package/dist/components/EditableField/EditableFieldLayout.cjs +9 -9
  156. package/dist/components/EditableField/EditableFieldLayout.cjs.map +1 -1
  157. package/dist/components/EditableField/EditableFieldLayout.d.ts +1 -1
  158. package/dist/components/EditableField/EditableFieldLayout.d.ts.map +1 -1
  159. package/dist/components/EditableField/EditableFieldLayout.mjs +10 -10
  160. package/dist/components/EditableField/EditableFieldLayout.mjs.map +1 -1
  161. package/dist/components/EditableField/EditableFieldTextArea.cjs +1 -1
  162. package/dist/components/EditableField/EditableFieldTextArea.mjs +1 -1
  163. package/dist/components/Form/FormBase.cjs +1 -1
  164. package/dist/components/Form/FormBase.mjs +1 -1
  165. package/dist/components/Form/elements/FormElementWrapper.cjs +2 -2
  166. package/dist/components/Form/elements/FormElementWrapper.mjs +2 -2
  167. package/dist/components/IDE/CodeBlockClient.cjs +2 -2
  168. package/dist/components/IDE/CodeBlockClient.cjs.map +1 -1
  169. package/dist/components/IDE/CodeBlockClient.mjs +2 -2
  170. package/dist/components/IDE/CodeBlockClient.mjs.map +1 -1
  171. package/dist/components/IDE/CodeBlockServer.cjs +2 -2
  172. package/dist/components/IDE/CodeBlockServer.cjs.map +1 -1
  173. package/dist/components/IDE/CodeBlockServer.mjs +2 -2
  174. package/dist/components/IDE/CodeBlockServer.mjs.map +1 -1
  175. package/dist/components/IDE/CodeContext.cjs +1 -1
  176. package/dist/components/IDE/CodeContext.mjs +1 -1
  177. package/dist/components/IDE/CopyCode.cjs +1 -1
  178. package/dist/components/IDE/CopyCode.cjs.map +1 -1
  179. package/dist/components/IDE/CopyCode.mjs +2 -2
  180. package/dist/components/IDE/CopyCode.mjs.map +1 -1
  181. package/dist/components/Input/Checkbox.cjs +21 -0
  182. package/dist/components/Input/Checkbox.cjs.map +1 -1
  183. package/dist/components/Input/Checkbox.d.ts +21 -1
  184. package/dist/components/Input/Checkbox.d.ts.map +1 -1
  185. package/dist/components/Input/Checkbox.mjs +21 -0
  186. package/dist/components/Input/Checkbox.mjs.map +1 -1
  187. package/dist/components/Input/Input.cjs +12 -0
  188. package/dist/components/Input/Input.cjs.map +1 -1
  189. package/dist/components/Input/Input.d.ts +13 -2
  190. package/dist/components/Input/Input.d.ts.map +1 -1
  191. package/dist/components/Input/Input.mjs +12 -0
  192. package/dist/components/Input/Input.mjs.map +1 -1
  193. package/dist/components/Input/index.cjs +4 -0
  194. package/dist/components/Input/index.cjs.map +1 -1
  195. package/dist/components/Input/index.mjs +6 -2
  196. package/dist/components/Link/Link.cjs +60 -19
  197. package/dist/components/Link/Link.cjs.map +1 -1
  198. package/dist/components/Link/Link.d.ts +27 -2
  199. package/dist/components/Link/Link.d.ts.map +1 -1
  200. package/dist/components/Link/Link.mjs +60 -19
  201. package/dist/components/Link/Link.mjs.map +1 -1
  202. package/dist/components/Link/index.cjs +3 -0
  203. package/dist/components/Link/index.cjs.map +1 -1
  204. package/dist/components/Link/index.mjs +4 -1
  205. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +7 -7
  206. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -1
  207. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts.map +1 -1
  208. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +9 -9
  209. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
  210. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs +1 -1
  211. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs +1 -1
  212. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs +3 -3
  213. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
  214. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +4 -4
  215. package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
  216. package/dist/components/MarkDownRender/index.cjs +11 -24
  217. package/dist/components/MarkDownRender/index.cjs.map +1 -1
  218. package/dist/components/MarkDownRender/index.d.ts.map +1 -1
  219. package/dist/components/MarkDownRender/index.mjs +12 -25
  220. package/dist/components/MarkDownRender/index.mjs.map +1 -1
  221. package/dist/components/Modal/Modal.cjs +13 -4
  222. package/dist/components/Modal/Modal.cjs.map +1 -1
  223. package/dist/components/Modal/Modal.d.ts +10 -4
  224. package/dist/components/Modal/Modal.d.ts.map +1 -1
  225. package/dist/components/Modal/Modal.mjs +15 -6
  226. package/dist/components/Modal/Modal.mjs.map +1 -1
  227. package/dist/components/Modal/index.cjs +1 -0
  228. package/dist/components/Modal/index.cjs.map +1 -1
  229. package/dist/components/Modal/index.mjs +3 -2
  230. package/dist/components/Navbar/DesktopNavbar.cjs +1 -1
  231. package/dist/components/Navbar/DesktopNavbar.cjs.map +1 -1
  232. package/dist/components/Navbar/DesktopNavbar.d.ts.map +1 -1
  233. package/dist/components/Navbar/DesktopNavbar.mjs +2 -2
  234. package/dist/components/Navbar/DesktopNavbar.mjs.map +1 -1
  235. package/dist/components/Navbar/MobileNavbar.cjs +1 -1
  236. package/dist/components/Navbar/MobileNavbar.mjs +1 -1
  237. package/dist/components/Navbar/index.cjs +1 -1
  238. package/dist/components/Navbar/index.mjs +1 -1
  239. package/dist/components/Popover/index.cjs +12 -0
  240. package/dist/components/Popover/index.cjs.map +1 -1
  241. package/dist/components/Popover/index.d.ts +10 -2
  242. package/dist/components/Popover/index.d.ts.map +1 -1
  243. package/dist/components/Popover/index.mjs +13 -1
  244. package/dist/components/Popover/index.mjs.map +1 -1
  245. package/dist/components/RightDrawer/RightDrawer.cjs +5 -5
  246. package/dist/components/RightDrawer/RightDrawer.cjs.map +1 -1
  247. package/dist/components/RightDrawer/RightDrawer.mjs +6 -6
  248. package/dist/components/RightDrawer/RightDrawer.mjs.map +1 -1
  249. package/dist/components/Select/Multiselect.cjs +1 -1
  250. package/dist/components/Select/Multiselect.cjs.map +1 -1
  251. package/dist/components/Select/Multiselect.mjs +2 -2
  252. package/dist/components/Select/Multiselect.mjs.map +1 -1
  253. package/dist/components/Select/Select.cjs +12 -1
  254. package/dist/components/Select/Select.cjs.map +1 -1
  255. package/dist/components/Select/Select.d.ts +5 -1
  256. package/dist/components/Select/Select.d.ts.map +1 -1
  257. package/dist/components/Select/Select.mjs +12 -1
  258. package/dist/components/Select/Select.mjs.map +1 -1
  259. package/dist/components/Select/index.cjs +1 -0
  260. package/dist/components/Select/index.cjs.map +1 -1
  261. package/dist/components/Select/index.mjs +2 -1
  262. package/dist/components/SwitchSelector/index.cjs +89 -18
  263. package/dist/components/SwitchSelector/index.cjs.map +1 -1
  264. package/dist/components/SwitchSelector/index.d.ts +16 -2
  265. package/dist/components/SwitchSelector/index.d.ts.map +1 -1
  266. package/dist/components/SwitchSelector/index.mjs +90 -19
  267. package/dist/components/SwitchSelector/index.mjs.map +1 -1
  268. package/dist/components/TabSelector/TabSelector.cjs +12 -1
  269. package/dist/components/TabSelector/TabSelector.cjs.map +1 -1
  270. package/dist/components/TabSelector/TabSelector.d.ts +12 -1
  271. package/dist/components/TabSelector/TabSelector.d.ts.map +1 -1
  272. package/dist/components/TabSelector/TabSelector.mjs +13 -2
  273. package/dist/components/TabSelector/TabSelector.mjs.map +1 -1
  274. package/dist/components/TabSelector/index.cjs +1 -0
  275. package/dist/components/TabSelector/index.cjs.map +1 -1
  276. package/dist/components/TabSelector/index.d.ts +1 -0
  277. package/dist/components/TabSelector/index.d.ts.map +1 -1
  278. package/dist/components/TabSelector/index.mjs +3 -2
  279. package/dist/components/Table/Table.cjs +104 -0
  280. package/dist/components/Table/Table.cjs.map +1 -0
  281. package/dist/components/Table/Table.d.ts +5 -0
  282. package/dist/components/Table/Table.d.ts.map +1 -0
  283. package/dist/components/Table/Table.mjs +104 -0
  284. package/dist/components/Table/Table.mjs.map +1 -0
  285. package/dist/components/Table/index.cjs +5 -0
  286. package/dist/components/Table/index.cjs.map +1 -0
  287. package/dist/components/Table/index.d.ts +2 -0
  288. package/dist/components/Table/index.d.ts.map +1 -0
  289. package/dist/components/Table/index.mjs +5 -0
  290. package/dist/components/Table/index.mjs.map +1 -0
  291. package/dist/components/Table/table.content.cjs +54 -0
  292. package/dist/components/Table/table.content.cjs.map +1 -0
  293. package/dist/components/Table/table.content.d.ts +106 -0
  294. package/dist/components/Table/table.content.d.ts.map +1 -0
  295. package/dist/components/Table/table.content.mjs +55 -0
  296. package/dist/components/Table/table.content.mjs.map +1 -0
  297. package/dist/components/Tag/index.cjs +131 -22
  298. package/dist/components/Tag/index.cjs.map +1 -1
  299. package/dist/components/Tag/index.d.ts +37 -5
  300. package/dist/components/Tag/index.d.ts.map +1 -1
  301. package/dist/components/Tag/index.mjs +132 -23
  302. package/dist/components/Tag/index.mjs.map +1 -1
  303. package/dist/components/TextArea/AutocompleteTextArea.cjs +1 -1
  304. package/dist/components/TextArea/AutocompleteTextArea.mjs +1 -1
  305. package/dist/components/TextArea/TextArea.cjs.map +1 -1
  306. package/dist/components/TextArea/TextArea.d.ts +5 -3
  307. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  308. package/dist/components/TextArea/TextArea.mjs.map +1 -1
  309. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.cjs +1 -1
  310. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.cjs.map +1 -1
  311. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs +2 -2
  312. package/dist/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs.map +1 -1
  313. package/dist/components/index.cjs +34 -0
  314. package/dist/components/index.cjs.map +1 -1
  315. package/dist/components/index.mjs +47 -13
  316. package/dist/hooks/auth.cjs +2 -2
  317. package/dist/hooks/auth.cjs.map +1 -1
  318. package/dist/hooks/auth.mjs +1 -1
  319. package/dist/hooks/auth.mjs.map +1 -1
  320. package/dist/hooks/intlayerAPIHooks.cjs +1 -1
  321. package/dist/hooks/intlayerAPIHooks.d.ts +1 -1
  322. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  323. package/dist/hooks/intlayerAPIHooks.mjs +1 -1
  324. package/dist/hooks/useAsync/useAsync.cjs +6 -6
  325. package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
  326. package/dist/hooks/useAsync/useAsync.mjs +6 -6
  327. package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
  328. package/dist/hooks/useUser/index.cjs +1 -1
  329. package/dist/hooks/useUser/index.mjs +1 -1
  330. package/dist/index-BCuMWKyy.js.map +1 -1
  331. package/dist/index-BYzBot7l.cjs.map +1 -1
  332. package/dist/{parse-BJVwmz92.cjs → parse-Ltyyb1op.cjs} +9 -11
  333. package/dist/parse-Ltyyb1op.cjs.map +1 -0
  334. package/dist/{parse-pnJgclyf.js → parse-Vrm0h1r9.js} +30 -32
  335. package/dist/parse-Vrm0h1r9.js.map +1 -0
  336. package/dist/{schemas-BIuxHDyZ.js → schemas-DEXdAbCK.js} +75 -46
  337. package/dist/schemas-DEXdAbCK.js.map +1 -0
  338. package/dist/{schemas-Q6C7ZNs3.cjs → schemas-lh5OFOvX.cjs} +75 -46
  339. package/dist/schemas-lh5OFOvX.cjs.map +1 -0
  340. package/dist/{zod-K7y5gPX4.cjs → zod-BvUVjPTw.cjs} +11 -11
  341. package/dist/zod-BvUVjPTw.cjs.map +1 -0
  342. package/dist/{zod-D4WapgbL.js → zod-CJrbzxwg.js} +11 -11
  343. package/dist/zod-CJrbzxwg.js.map +1 -0
  344. package/package.json +39 -33
  345. package/dist/better-auth.8zoxzg-F-BEBqzpjz.cjs.map +0 -1
  346. package/dist/better-auth.8zoxzg-F-D8e0X4ys.js.map +0 -1
  347. package/dist/components/Headers/SectionScroller.cjs +0 -29
  348. package/dist/components/Headers/SectionScroller.cjs.map +0 -1
  349. package/dist/components/Headers/SectionScroller.d.ts +0 -2
  350. package/dist/components/Headers/SectionScroller.d.ts.map +0 -1
  351. package/dist/components/Headers/SectionScroller.mjs +0 -29
  352. package/dist/components/Headers/SectionScroller.mjs.map +0 -1
  353. package/dist/parse-BJVwmz92.cjs.map +0 -1
  354. package/dist/parse-pnJgclyf.js.map +0 -1
  355. package/dist/schemas-BIuxHDyZ.js.map +0 -1
  356. package/dist/schemas-Q6C7ZNs3.cjs.map +0 -1
  357. package/dist/zod-D4WapgbL.js.map +0 -1
  358. package/dist/zod-K7y5gPX4.cjs.map +0 -1
@@ -5,7 +5,7 @@ const jsxRuntime = require("react/jsx-runtime");
5
5
  const ReactExports = require("react");
6
6
  const classVarianceAuthority = require("class-variance-authority");
7
7
  require("@intlayer/config/built");
8
- require("../../better-auth.8zoxzg-F-BEBqzpjz.cjs");
8
+ require("../../better-auth.CMQ3rA-I-C2nBKRMa.cjs");
9
9
  require("@intlayer/editor-react");
10
10
  require("../Toaster/Toast.cjs");
11
11
  require("../../hooks/useAsync/useAsyncStateStore.cjs");
@@ -18,37 +18,85 @@ const defaultChoices = [
18
18
  { content: "Off", value: false },
19
19
  { content: "On", value: true }
20
20
  ];
21
+ var SwitchSelectorColor = /* @__PURE__ */ ((SwitchSelectorColor2) => {
22
+ SwitchSelectorColor2["PRIMARY"] = "primary";
23
+ SwitchSelectorColor2["SECONDARY"] = "secondary";
24
+ SwitchSelectorColor2["DESTRUCTIVE"] = "destructive";
25
+ SwitchSelectorColor2["NEUTRAL"] = "neutral";
26
+ SwitchSelectorColor2["LIGHT"] = "light";
27
+ SwitchSelectorColor2["DARK"] = "dark";
28
+ SwitchSelectorColor2["TEXT"] = "text";
29
+ return SwitchSelectorColor2;
30
+ })(SwitchSelectorColor || {});
21
31
  const switchSelectorVariant = classVarianceAuthority.cva(
22
32
  "flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]",
23
33
  {
24
34
  variants: {
25
35
  color: {
26
- primary: "border-primary text-primary",
27
- secondary: "border-secondary text-secondary",
28
- destructive: "border-destructive bg-destructive text-destructive",
29
- neutral: "border-neutral text-neutral ",
30
- light: "border-white text-white",
31
- dark: "border-neutral-800 text-neutral-800",
32
- text: "border-text text-text"
36
+ [
37
+ "primary"
38
+ /* PRIMARY */
39
+ ]: "border-primary text-primary",
40
+ [
41
+ "secondary"
42
+ /* SECONDARY */
43
+ ]: "border-secondary text-secondary",
44
+ [
45
+ "destructive"
46
+ /* DESTRUCTIVE */
47
+ ]: "border-destructive bg-destructive text-destructive",
48
+ [
49
+ "neutral"
50
+ /* NEUTRAL */
51
+ ]: "border-neutral text-neutral ",
52
+ [
53
+ "light"
54
+ /* LIGHT */
55
+ ]: "border-white text-white",
56
+ [
57
+ "dark"
58
+ /* DARK */
59
+ ]: "border-neutral-800 text-neutral-800",
60
+ [
61
+ "text"
62
+ /* TEXT */
63
+ ]: "border-text text-text"
33
64
  }
34
65
  },
35
66
  defaultVariants: {
36
67
  color: "primary"
68
+ /* PRIMARY */
37
69
  }
38
70
  }
39
71
  );
72
+ var SwitchSelectorSize = /* @__PURE__ */ ((SwitchSelectorSize2) => {
73
+ SwitchSelectorSize2["SM"] = "sm";
74
+ SwitchSelectorSize2["MD"] = "md";
75
+ SwitchSelectorSize2["LG"] = "lg";
76
+ return SwitchSelectorSize2;
77
+ })(SwitchSelectorSize || {});
40
78
  const choiceVariant = classVarianceAuthority.cva(
41
79
  "z-1 w-full flex-1 text-sm font-medium transition-all duration-300 ease-in-out cursor-pointer aria-selected:cursor-default aria-selected:text-text-opposite motion-reduce:transition-none",
42
80
  {
43
81
  variants: {
44
82
  size: {
45
- sm: "py-1 px-2 text-xs",
46
- md: "p-2 text-sm",
47
- lg: "p-4 text-base"
83
+ [
84
+ "sm"
85
+ /* SM */
86
+ ]: "py-1 px-2 text-xs",
87
+ [
88
+ "md"
89
+ /* MD */
90
+ ]: "p-2 text-sm",
91
+ [
92
+ "lg"
93
+ /* LG */
94
+ ]: "p-4 text-base"
48
95
  }
49
96
  },
50
97
  defaultVariants: {
51
98
  size: "md"
99
+ /* MD */
52
100
  }
53
101
  }
54
102
  );
@@ -57,13 +105,34 @@ const indicatorVariant = classVarianceAuthority.cva(
57
105
  {
58
106
  variants: {
59
107
  color: {
60
- primary: "bg-primary aria-selected:text-text",
61
- secondary: "bg-secondary aria-selected:text-text",
62
- destructive: "bg-destructive aria-selected:text-text",
63
- neutral: "bg-neutral aria-selected:text-white ",
64
- light: "bg-white aria-selected:text-black",
65
- dark: "bg-neutral-800 aria-selected:text-white",
66
- text: "bg-text aria-selected:text-text-opposite"
108
+ [
109
+ "primary"
110
+ /* PRIMARY */
111
+ ]: "bg-primary aria-selected:text-text",
112
+ [
113
+ "secondary"
114
+ /* SECONDARY */
115
+ ]: "bg-secondary aria-selected:text-text",
116
+ [
117
+ "destructive"
118
+ /* DESTRUCTIVE */
119
+ ]: "bg-destructive aria-selected:text-text",
120
+ [
121
+ "neutral"
122
+ /* NEUTRAL */
123
+ ]: "bg-neutral aria-selected:text-white ",
124
+ [
125
+ "light"
126
+ /* LIGHT */
127
+ ]: "bg-white aria-selected:text-black",
128
+ [
129
+ "dark"
130
+ /* DARK */
131
+ ]: "bg-neutral-800 aria-selected:text-white",
132
+ [
133
+ "text"
134
+ /* TEXT */
135
+ ]: "bg-text aria-selected:text-text-opposite"
67
136
  }
68
137
  }
69
138
  }
@@ -142,4 +211,6 @@ const SwitchSelector = ({
142
211
  );
143
212
  };
144
213
  exports.SwitchSelector = SwitchSelector;
214
+ exports.SwitchSelectorColor = SwitchSelectorColor;
215
+ exports.SwitchSelectorSize = SwitchSelectorSize;
145
216
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/SwitchSelector/index.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n useEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchSelectorChoice<T = boolean> = {\n content: ReactNode;\n value: T;\n} & HTMLAttributes<HTMLButtonElement>;\nexport type SwitchSelectorChoices<T> = SwitchSelectorChoice<T>[];\n\nconst defaultChoices: SwitchSelectorChoices<boolean> = [\n { content: 'Off', value: false },\n { content: 'On', value: true },\n];\n\nexport type SwitchSelectorProps<T = boolean> = {\n choices?: SwitchSelectorChoices<T>;\n value?: T;\n defaultValue?: T;\n onChange?: (choice: T) => void;\n className?: string;\n} & VariantProps<typeof switchSelectorVariant> &\n VariantProps<typeof choiceVariant>;\n\nconst switchSelectorVariant = cva(\n 'flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary',\n destructive: 'border-destructive bg-destructive text-destructive',\n neutral: 'border-neutral text-neutral ',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst choiceVariant = cva(\n 'z-1 w-full flex-1 text-sm font-medium transition-all duration-300 ease-in-out cursor-pointer aria-selected:cursor-default aria-selected:text-text-opposite motion-reduce:transition-none',\n {\n variants: {\n size: {\n sm: 'py-1 px-2 text-xs',\n md: 'p-2 text-sm',\n lg: 'p-4 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-full transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary: 'bg-primary aria-selected:text-text',\n secondary: 'bg-secondary aria-selected:text-text',\n destructive: 'bg-destructive aria-selected:text-text',\n neutral: 'bg-neutral aria-selected:text-white ',\n light: 'bg-white aria-selected:text-black',\n dark: 'bg-neutral-800 aria-selected:text-white',\n text: 'bg-text aria-selected:text-text-opposite',\n },\n },\n }\n);\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <SwitchSelector\n * choices={[\n * { content: 'Option 1', value: 'option1' },\n * { content: 'Option 2', value: 'option2' },\n * { content: 'Option 3', value: 'option3' },\n * ]}\n * value=\"option1\"\n * onChange={(choice) => console.log(choice)}\n * />\n * ```\n */\nexport const SwitchSelector = <T,>({\n choices = defaultChoices as SwitchSelectorChoices<T>,\n value,\n defaultValue,\n onChange,\n color = 'primary',\n size = 'md',\n className,\n}: SwitchSelectorProps<T>) => {\n const [valueState, setValue] = useState<T>(\n value ?? defaultValue ?? choices[0].value\n );\n const optionsRefs = useRef<HTMLButtonElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(optionsRefs);\n\n const handleChange = (newValue: T) => {\n setValue(newValue);\n onChange?.(newValue);\n };\n\n useEffect(() => {\n if (value === undefined) return;\n setValue(value);\n }, [value]);\n\n return (\n <div\n className={switchSelectorVariant({\n color,\n className,\n })}\n role=\"tablist\"\n >\n <div className=\"relative flex size-full flex-row items-center justify-center\">\n {choices.map((choice, index) => {\n const { content, value, ...buttonProps } = choice;\n\n const isKeyOfKey =\n typeof value === 'string' || typeof value === 'number';\n\n const isSelected = value === valueState;\n\n return (\n <button\n {...buttonProps}\n className={cn(\n choiceVariant({\n size,\n })\n )}\n key={isKeyOfKey ? value : index}\n role=\"tab\"\n onClick={() => handleChange(value)}\n aria-selected={isSelected}\n disabled={isSelected}\n ref={(el) => {\n optionsRefs.current[index] = el!;\n }}\n >\n {content}\n </button>\n );\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["cva","useState","useRef","useItemSelector","useEffect","jsx","jsxs","value","createElement","cn"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/SwitchSelector/index.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n useEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchSelectorChoice<T = boolean> = {\n content: ReactNode;\n value: T;\n} & HTMLAttributes<HTMLButtonElement>;\nexport type SwitchSelectorChoices<T> = SwitchSelectorChoice<T>[];\n\nconst defaultChoices: SwitchSelectorChoices<boolean> = [\n { content: 'Off', value: false },\n { content: 'On', value: true },\n];\n\nexport type SwitchSelectorProps<T = boolean> = {\n choices?: SwitchSelectorChoices<T>;\n value?: T;\n defaultValue?: T;\n onChange?: (choice: T) => void;\n className?: string;\n} & VariantProps<typeof switchSelectorVariant> &\n VariantProps<typeof choiceVariant>;\n\nexport enum SwitchSelectorColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n}\n\nconst switchSelectorVariant = cva(\n 'flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]',\n {\n variants: {\n color: {\n [SwitchSelectorColor.PRIMARY]: 'border-primary text-primary',\n [SwitchSelectorColor.SECONDARY]: 'border-secondary text-secondary',\n [SwitchSelectorColor.DESTRUCTIVE]:\n 'border-destructive bg-destructive text-destructive',\n [SwitchSelectorColor.NEUTRAL]: 'border-neutral text-neutral ',\n [SwitchSelectorColor.LIGHT]: 'border-white text-white',\n [SwitchSelectorColor.DARK]: 'border-neutral-800 text-neutral-800',\n [SwitchSelectorColor.TEXT]: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: SwitchSelectorColor.PRIMARY,\n },\n }\n);\n\nexport enum SwitchSelectorSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\nconst choiceVariant = cva(\n 'z-1 w-full flex-1 text-sm font-medium transition-all duration-300 ease-in-out cursor-pointer aria-selected:cursor-default aria-selected:text-text-opposite motion-reduce:transition-none',\n {\n variants: {\n size: {\n [SwitchSelectorSize.SM]: 'py-1 px-2 text-xs',\n [SwitchSelectorSize.MD]: 'p-2 text-sm',\n [SwitchSelectorSize.LG]: 'p-4 text-base',\n },\n },\n defaultVariants: {\n size: SwitchSelectorSize.MD,\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-full transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n [SwitchSelectorColor.PRIMARY]: 'bg-primary aria-selected:text-text',\n [SwitchSelectorColor.SECONDARY]: 'bg-secondary aria-selected:text-text',\n [SwitchSelectorColor.DESTRUCTIVE]:\n 'bg-destructive aria-selected:text-text',\n [SwitchSelectorColor.NEUTRAL]: 'bg-neutral aria-selected:text-white ',\n [SwitchSelectorColor.LIGHT]: 'bg-white aria-selected:text-black',\n [SwitchSelectorColor.DARK]: 'bg-neutral-800 aria-selected:text-white',\n [SwitchSelectorColor.TEXT]: 'bg-text aria-selected:text-text-opposite',\n },\n },\n }\n);\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <SwitchSelector\n * choices={[\n * { content: 'Option 1', value: 'option1' },\n * { content: 'Option 2', value: 'option2' },\n * { content: 'Option 3', value: 'option3' },\n * ]}\n * value=\"option1\"\n * onChange={(choice) => console.log(choice)}\n * />\n * ```\n */\nexport const SwitchSelector = <T,>({\n choices = defaultChoices as SwitchSelectorChoices<T>,\n value,\n defaultValue,\n onChange,\n color = SwitchSelectorColor.PRIMARY,\n size = SwitchSelectorSize.MD,\n className,\n}: SwitchSelectorProps<T>) => {\n const [valueState, setValue] = useState<T>(\n value ?? defaultValue ?? choices[0].value\n );\n const optionsRefs = useRef<HTMLButtonElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(optionsRefs);\n\n const handleChange = (newValue: T) => {\n setValue(newValue);\n onChange?.(newValue);\n };\n\n useEffect(() => {\n if (value === undefined) return;\n setValue(value);\n }, [value]);\n\n return (\n <div\n className={switchSelectorVariant({\n color,\n className,\n })}\n role=\"tablist\"\n >\n <div className=\"relative flex size-full flex-row items-center justify-center\">\n {choices.map((choice, index) => {\n const { content, value, ...buttonProps } = choice;\n\n const isKeyOfKey =\n typeof value === 'string' || typeof value === 'number';\n\n const isSelected = value === valueState;\n\n return (\n <button\n {...buttonProps}\n className={cn(\n choiceVariant({\n size,\n })\n )}\n key={isKeyOfKey ? value : index}\n role=\"tab\"\n onClick={() => handleChange(value)}\n aria-selected={isSelected}\n disabled={isSelected}\n ref={(el) => {\n optionsRefs.current[index] = el!;\n }}\n >\n {content}\n </button>\n );\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["SwitchSelectorColor","cva","SwitchSelectorSize","useState","useRef","useItemSelector","useEffect","jsx","jsxs","value","createElement","cn"],"mappings":"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"}
@@ -12,11 +12,25 @@ export type SwitchSelectorProps<T = boolean> = {
12
12
  onChange?: (choice: T) => void;
13
13
  className?: string;
14
14
  } & VariantProps<typeof switchSelectorVariant> & VariantProps<typeof choiceVariant>;
15
+ export declare enum SwitchSelectorColor {
16
+ PRIMARY = "primary",
17
+ SECONDARY = "secondary",
18
+ DESTRUCTIVE = "destructive",
19
+ NEUTRAL = "neutral",
20
+ LIGHT = "light",
21
+ DARK = "dark",
22
+ TEXT = "text"
23
+ }
15
24
  declare const switchSelectorVariant: (props?: ({
16
- color?: "text" | "primary" | "secondary" | "destructive" | "neutral" | "light" | "dark" | null | undefined;
25
+ color?: SwitchSelectorColor | null | undefined;
17
26
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
27
+ export declare enum SwitchSelectorSize {
28
+ SM = "sm",
29
+ MD = "md",
30
+ LG = "lg"
31
+ }
18
32
  declare const choiceVariant: (props?: ({
19
- size?: "sm" | "md" | "lg" | null | undefined;
33
+ size?: SwitchSelectorSize | null | undefined;
20
34
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
21
35
  /**
22
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SwitchSelector/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC9C,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;CACV,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACtC,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;AAOjE,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC7C,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,GAC5C,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAErC,QAAA,MAAM,qBAAqB;;8EAkB1B,CAAC;AAEF,QAAA,MAAM,aAAa;;8EAclB,CAAC;AAmBF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAG,qEAQhC,mBAAmB,CAAC,CAAC,CAAC,4CAsExB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SwitchSelector/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC9C,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;CACV,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACtC,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;AAOjE,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC7C,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,GAC5C,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAErC,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,QAAA,MAAM,qBAAqB;;8EAmB1B,CAAC;AAEF,oBAAY,kBAAkB;IAC5B,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV;AAED,QAAA,MAAM,aAAa;;8EAclB,CAAC;AAoBF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAG,qEAQhC,mBAAmB,CAAC,CAAC,CAAC,4CAsExB,CAAC"}
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState, useRef, useEffect, createElement } from "react";
4
4
  import { cva } from "class-variance-authority";
5
5
  import "@intlayer/config/built";
6
- import "../../better-auth.8zoxzg-F-D8e0X4ys.js";
6
+ import "../../better-auth.CMQ3rA-I-7umXOENE.js";
7
7
  import "@intlayer/editor-react";
8
8
  import "../Toaster/Toast.mjs";
9
9
  import "../../hooks/useAsync/useAsyncStateStore.mjs";
@@ -16,37 +16,85 @@ const defaultChoices = [
16
16
  { content: "Off", value: false },
17
17
  { content: "On", value: true }
18
18
  ];
19
+ var SwitchSelectorColor = /* @__PURE__ */ ((SwitchSelectorColor2) => {
20
+ SwitchSelectorColor2["PRIMARY"] = "primary";
21
+ SwitchSelectorColor2["SECONDARY"] = "secondary";
22
+ SwitchSelectorColor2["DESTRUCTIVE"] = "destructive";
23
+ SwitchSelectorColor2["NEUTRAL"] = "neutral";
24
+ SwitchSelectorColor2["LIGHT"] = "light";
25
+ SwitchSelectorColor2["DARK"] = "dark";
26
+ SwitchSelectorColor2["TEXT"] = "text";
27
+ return SwitchSelectorColor2;
28
+ })(SwitchSelectorColor || {});
19
29
  const switchSelectorVariant = cva(
20
30
  "flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]",
21
31
  {
22
32
  variants: {
23
33
  color: {
24
- primary: "border-primary text-primary",
25
- secondary: "border-secondary text-secondary",
26
- destructive: "border-destructive bg-destructive text-destructive",
27
- neutral: "border-neutral text-neutral ",
28
- light: "border-white text-white",
29
- dark: "border-neutral-800 text-neutral-800",
30
- text: "border-text text-text"
34
+ [
35
+ "primary"
36
+ /* PRIMARY */
37
+ ]: "border-primary text-primary",
38
+ [
39
+ "secondary"
40
+ /* SECONDARY */
41
+ ]: "border-secondary text-secondary",
42
+ [
43
+ "destructive"
44
+ /* DESTRUCTIVE */
45
+ ]: "border-destructive bg-destructive text-destructive",
46
+ [
47
+ "neutral"
48
+ /* NEUTRAL */
49
+ ]: "border-neutral text-neutral ",
50
+ [
51
+ "light"
52
+ /* LIGHT */
53
+ ]: "border-white text-white",
54
+ [
55
+ "dark"
56
+ /* DARK */
57
+ ]: "border-neutral-800 text-neutral-800",
58
+ [
59
+ "text"
60
+ /* TEXT */
61
+ ]: "border-text text-text"
31
62
  }
32
63
  },
33
64
  defaultVariants: {
34
65
  color: "primary"
66
+ /* PRIMARY */
35
67
  }
36
68
  }
37
69
  );
70
+ var SwitchSelectorSize = /* @__PURE__ */ ((SwitchSelectorSize2) => {
71
+ SwitchSelectorSize2["SM"] = "sm";
72
+ SwitchSelectorSize2["MD"] = "md";
73
+ SwitchSelectorSize2["LG"] = "lg";
74
+ return SwitchSelectorSize2;
75
+ })(SwitchSelectorSize || {});
38
76
  const choiceVariant = cva(
39
77
  "z-1 w-full flex-1 text-sm font-medium transition-all duration-300 ease-in-out cursor-pointer aria-selected:cursor-default aria-selected:text-text-opposite motion-reduce:transition-none",
40
78
  {
41
79
  variants: {
42
80
  size: {
43
- sm: "py-1 px-2 text-xs",
44
- md: "p-2 text-sm",
45
- lg: "p-4 text-base"
81
+ [
82
+ "sm"
83
+ /* SM */
84
+ ]: "py-1 px-2 text-xs",
85
+ [
86
+ "md"
87
+ /* MD */
88
+ ]: "p-2 text-sm",
89
+ [
90
+ "lg"
91
+ /* LG */
92
+ ]: "p-4 text-base"
46
93
  }
47
94
  },
48
95
  defaultVariants: {
49
96
  size: "md"
97
+ /* MD */
50
98
  }
51
99
  }
52
100
  );
@@ -55,13 +103,34 @@ const indicatorVariant = cva(
55
103
  {
56
104
  variants: {
57
105
  color: {
58
- primary: "bg-primary aria-selected:text-text",
59
- secondary: "bg-secondary aria-selected:text-text",
60
- destructive: "bg-destructive aria-selected:text-text",
61
- neutral: "bg-neutral aria-selected:text-white ",
62
- light: "bg-white aria-selected:text-black",
63
- dark: "bg-neutral-800 aria-selected:text-white",
64
- text: "bg-text aria-selected:text-text-opposite"
106
+ [
107
+ "primary"
108
+ /* PRIMARY */
109
+ ]: "bg-primary aria-selected:text-text",
110
+ [
111
+ "secondary"
112
+ /* SECONDARY */
113
+ ]: "bg-secondary aria-selected:text-text",
114
+ [
115
+ "destructive"
116
+ /* DESTRUCTIVE */
117
+ ]: "bg-destructive aria-selected:text-text",
118
+ [
119
+ "neutral"
120
+ /* NEUTRAL */
121
+ ]: "bg-neutral aria-selected:text-white ",
122
+ [
123
+ "light"
124
+ /* LIGHT */
125
+ ]: "bg-white aria-selected:text-black",
126
+ [
127
+ "dark"
128
+ /* DARK */
129
+ ]: "bg-neutral-800 aria-selected:text-white",
130
+ [
131
+ "text"
132
+ /* TEXT */
133
+ ]: "bg-text aria-selected:text-text-opposite"
65
134
  }
66
135
  }
67
136
  }
@@ -140,6 +209,8 @@ const SwitchSelector = ({
140
209
  );
141
210
  };
142
211
  export {
143
- SwitchSelector
212
+ SwitchSelector,
213
+ SwitchSelectorColor,
214
+ SwitchSelectorSize
144
215
  };
145
216
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/SwitchSelector/index.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n useEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchSelectorChoice<T = boolean> = {\n content: ReactNode;\n value: T;\n} & HTMLAttributes<HTMLButtonElement>;\nexport type SwitchSelectorChoices<T> = SwitchSelectorChoice<T>[];\n\nconst defaultChoices: SwitchSelectorChoices<boolean> = [\n { content: 'Off', value: false },\n { content: 'On', value: true },\n];\n\nexport type SwitchSelectorProps<T = boolean> = {\n choices?: SwitchSelectorChoices<T>;\n value?: T;\n defaultValue?: T;\n onChange?: (choice: T) => void;\n className?: string;\n} & VariantProps<typeof switchSelectorVariant> &\n VariantProps<typeof choiceVariant>;\n\nconst switchSelectorVariant = cva(\n 'flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary',\n destructive: 'border-destructive bg-destructive text-destructive',\n neutral: 'border-neutral text-neutral ',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst choiceVariant = cva(\n 'z-1 w-full flex-1 text-sm font-medium transition-all duration-300 ease-in-out cursor-pointer aria-selected:cursor-default aria-selected:text-text-opposite motion-reduce:transition-none',\n {\n variants: {\n size: {\n sm: 'py-1 px-2 text-xs',\n md: 'p-2 text-sm',\n lg: 'p-4 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-full transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary: 'bg-primary aria-selected:text-text',\n secondary: 'bg-secondary aria-selected:text-text',\n destructive: 'bg-destructive aria-selected:text-text',\n neutral: 'bg-neutral aria-selected:text-white ',\n light: 'bg-white aria-selected:text-black',\n dark: 'bg-neutral-800 aria-selected:text-white',\n text: 'bg-text aria-selected:text-text-opposite',\n },\n },\n }\n);\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <SwitchSelector\n * choices={[\n * { content: 'Option 1', value: 'option1' },\n * { content: 'Option 2', value: 'option2' },\n * { content: 'Option 3', value: 'option3' },\n * ]}\n * value=\"option1\"\n * onChange={(choice) => console.log(choice)}\n * />\n * ```\n */\nexport const SwitchSelector = <T,>({\n choices = defaultChoices as SwitchSelectorChoices<T>,\n value,\n defaultValue,\n onChange,\n color = 'primary',\n size = 'md',\n className,\n}: SwitchSelectorProps<T>) => {\n const [valueState, setValue] = useState<T>(\n value ?? defaultValue ?? choices[0].value\n );\n const optionsRefs = useRef<HTMLButtonElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(optionsRefs);\n\n const handleChange = (newValue: T) => {\n setValue(newValue);\n onChange?.(newValue);\n };\n\n useEffect(() => {\n if (value === undefined) return;\n setValue(value);\n }, [value]);\n\n return (\n <div\n className={switchSelectorVariant({\n color,\n className,\n })}\n role=\"tablist\"\n >\n <div className=\"relative flex size-full flex-row items-center justify-center\">\n {choices.map((choice, index) => {\n const { content, value, ...buttonProps } = choice;\n\n const isKeyOfKey =\n typeof value === 'string' || typeof value === 'number';\n\n const isSelected = value === valueState;\n\n return (\n <button\n {...buttonProps}\n className={cn(\n choiceVariant({\n size,\n })\n )}\n key={isKeyOfKey ? value : index}\n role=\"tab\"\n onClick={() => handleChange(value)}\n aria-selected={isSelected}\n disabled={isSelected}\n ref={(el) => {\n optionsRefs.current[index] = el!;\n }}\n >\n {content}\n </button>\n );\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["value"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/SwitchSelector/index.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n useEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchSelectorChoice<T = boolean> = {\n content: ReactNode;\n value: T;\n} & HTMLAttributes<HTMLButtonElement>;\nexport type SwitchSelectorChoices<T> = SwitchSelectorChoice<T>[];\n\nconst defaultChoices: SwitchSelectorChoices<boolean> = [\n { content: 'Off', value: false },\n { content: 'On', value: true },\n];\n\nexport type SwitchSelectorProps<T = boolean> = {\n choices?: SwitchSelectorChoices<T>;\n value?: T;\n defaultValue?: T;\n onChange?: (choice: T) => void;\n className?: string;\n} & VariantProps<typeof switchSelectorVariant> &\n VariantProps<typeof choiceVariant>;\n\nexport enum SwitchSelectorColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n}\n\nconst switchSelectorVariant = cva(\n 'flex flex-row gap-2 rounded-full w-fit border-[1.5px] p-[1.5px]',\n {\n variants: {\n color: {\n [SwitchSelectorColor.PRIMARY]: 'border-primary text-primary',\n [SwitchSelectorColor.SECONDARY]: 'border-secondary text-secondary',\n [SwitchSelectorColor.DESTRUCTIVE]:\n 'border-destructive bg-destructive text-destructive',\n [SwitchSelectorColor.NEUTRAL]: 'border-neutral text-neutral ',\n [SwitchSelectorColor.LIGHT]: 'border-white text-white',\n [SwitchSelectorColor.DARK]: 'border-neutral-800 text-neutral-800',\n [SwitchSelectorColor.TEXT]: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: SwitchSelectorColor.PRIMARY,\n },\n }\n);\n\nexport enum SwitchSelectorSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\nconst choiceVariant = cva(\n 'z-1 w-full flex-1 text-sm font-medium transition-all duration-300 ease-in-out cursor-pointer aria-selected:cursor-default aria-selected:text-text-opposite motion-reduce:transition-none',\n {\n variants: {\n size: {\n [SwitchSelectorSize.SM]: 'py-1 px-2 text-xs',\n [SwitchSelectorSize.MD]: 'p-2 text-sm',\n [SwitchSelectorSize.LG]: 'p-4 text-base',\n },\n },\n defaultVariants: {\n size: SwitchSelectorSize.MD,\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-full transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n [SwitchSelectorColor.PRIMARY]: 'bg-primary aria-selected:text-text',\n [SwitchSelectorColor.SECONDARY]: 'bg-secondary aria-selected:text-text',\n [SwitchSelectorColor.DESTRUCTIVE]:\n 'bg-destructive aria-selected:text-text',\n [SwitchSelectorColor.NEUTRAL]: 'bg-neutral aria-selected:text-white ',\n [SwitchSelectorColor.LIGHT]: 'bg-white aria-selected:text-black',\n [SwitchSelectorColor.DARK]: 'bg-neutral-800 aria-selected:text-white',\n [SwitchSelectorColor.TEXT]: 'bg-text aria-selected:text-text-opposite',\n },\n },\n }\n);\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <SwitchSelector\n * choices={[\n * { content: 'Option 1', value: 'option1' },\n * { content: 'Option 2', value: 'option2' },\n * { content: 'Option 3', value: 'option3' },\n * ]}\n * value=\"option1\"\n * onChange={(choice) => console.log(choice)}\n * />\n * ```\n */\nexport const SwitchSelector = <T,>({\n choices = defaultChoices as SwitchSelectorChoices<T>,\n value,\n defaultValue,\n onChange,\n color = SwitchSelectorColor.PRIMARY,\n size = SwitchSelectorSize.MD,\n className,\n}: SwitchSelectorProps<T>) => {\n const [valueState, setValue] = useState<T>(\n value ?? defaultValue ?? choices[0].value\n );\n const optionsRefs = useRef<HTMLButtonElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(optionsRefs);\n\n const handleChange = (newValue: T) => {\n setValue(newValue);\n onChange?.(newValue);\n };\n\n useEffect(() => {\n if (value === undefined) return;\n setValue(value);\n }, [value]);\n\n return (\n <div\n className={switchSelectorVariant({\n color,\n className,\n })}\n role=\"tablist\"\n >\n <div className=\"relative flex size-full flex-row items-center justify-center\">\n {choices.map((choice, index) => {\n const { content, value, ...buttonProps } = choice;\n\n const isKeyOfKey =\n typeof value === 'string' || typeof value === 'number';\n\n const isSelected = value === valueState;\n\n return (\n <button\n {...buttonProps}\n className={cn(\n choiceVariant({\n size,\n })\n )}\n key={isKeyOfKey ? value : index}\n role=\"tab\"\n onClick={() => handleChange(value)}\n aria-selected={isSelected}\n disabled={isSelected}\n ref={(el) => {\n optionsRefs.current[index] = el!;\n }}\n >\n {content}\n </button>\n );\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["SwitchSelectorColor","SwitchSelectorSize","value"],"mappings":"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"}
@@ -5,7 +5,7 @@ const jsxRuntime = require("react/jsx-runtime");
5
5
  const classVarianceAuthority = require("class-variance-authority");
6
6
  const ReactExports = require("react");
7
7
  require("@intlayer/config/built");
8
- require("../../better-auth.8zoxzg-F-BEBqzpjz.cjs");
8
+ require("../../better-auth.CMQ3rA-I-C2nBKRMa.cjs");
9
9
  require("@intlayer/editor-react");
10
10
  require("../Toaster/Toast.cjs");
11
11
  require("../../hooks/useAsync/useAsyncStateStore.cjs");
@@ -14,6 +14,16 @@ require("deepmerge");
14
14
  const hooks_useItemSelector = require("../../hooks/useItemSelector.cjs");
15
15
  require("../../hooks/useScrollBlockage/useScrollBlockageStore.cjs");
16
16
  const utils_cn = require("../../utils/cn.cjs");
17
+ var TabSelectorColor = /* @__PURE__ */ ((TabSelectorColor2) => {
18
+ TabSelectorColor2["PRIMARY"] = "primary";
19
+ TabSelectorColor2["SECONDARY"] = "secondary";
20
+ TabSelectorColor2["DESTRUCTIVE"] = "destructive";
21
+ TabSelectorColor2["NEUTRAL"] = "neutral";
22
+ TabSelectorColor2["LIGHT"] = "light";
23
+ TabSelectorColor2["DARK"] = "dark";
24
+ TabSelectorColor2["TEXT"] = "text";
25
+ return TabSelectorColor2;
26
+ })(TabSelectorColor || {});
17
27
  const tabSelectorVariant = classVarianceAuthority.cva(
18
28
  "relative flex size-full flex-row items-center gap-2",
19
29
  {
@@ -108,4 +118,5 @@ const TabSelector = ({
108
118
  );
109
119
  };
110
120
  exports.TabSelector = TabSelector;
121
+ exports.TabSelectorColor = TabSelectorColor;
111
122
  //# sourceMappingURL=TabSelector.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabSelector.cjs","sources":["../../../src/components/TabSelector/TabSelector.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n useRef,\n type HTMLAttributes,\n type ReactElement,\n cloneElement,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nconst tabSelectorVariant = cva(\n 'relative flex size-full flex-row items-center gap-2',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary',\n destructive: 'border-destructive bg-destructive text-destructive',\n neutral: 'border-neutral text-neutral ',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-lg transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary: 'bg-primary/10 aria-selected:text-text',\n secondary: 'bg-secondary/10 aria-selected:text-text',\n destructive: 'bg-destructive/10 aria-selected:text-text',\n neutral: 'bg-neutral/10 aria-selected:text-white/10',\n light: 'bg-white/10 aria-selected:text-black',\n dark: 'bg-neutral-800/10 aria-selected:text-white',\n text: 'bg-text/10 aria-selected:text-text-opposite',\n },\n },\n }\n);\n\nexport type TabProps = HTMLAttributes<HTMLElement> & {\n key: string | number;\n};\n\ntype TabSelectorProps<T extends TabProps> = {\n tabs: ReactElement<T>[];\n selectedChoice: T['key'];\n onTabClick?: (choice: T['key']) => void;\n hoverable?: boolean;\n} & HTMLAttributes<HTMLElement> &\n VariantProps<typeof tabSelectorVariant>;\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <TabSelector\n * selectedChoice=\"option1\"\n * onTabClick={(choice) => console.log(choice)}\n * hoverable={true}\n * >\n * <Button key=\"option1\"/>\n * <Button key=\"option2\"/>\n * <Button key=\"option3\"/>\n * </TabSelector>\n * ```\n */\nexport const TabSelector = <T extends TabProps>({\n tabs,\n selectedChoice,\n onTabClick,\n color = 'primary',\n hoverable = false,\n className,\n}: TabSelectorProps<T>) => {\n const optionsRefs = useRef<HTMLElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(\n optionsRefs,\n undefined,\n hoverable\n );\n\n return (\n <div\n className={cn(\n tabSelectorVariant({\n color,\n }),\n className\n )}\n aria-orientation=\"horizontal\"\n aria-multiselectable=\"false\"\n role=\"tablist\"\n >\n {tabs.map((Tab, index) => {\n const key = Tab.key!;\n\n const isSelected = selectedChoice === key;\n\n return cloneElement(Tab, {\n key: key ?? index,\n role: 'tab',\n onClick: () => onTabClick?.(key),\n 'aria-selected': isSelected,\n ref: (el: HTMLElement) => {\n optionsRefs.current[index] = el!;\n },\n } as unknown as T);\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n key={`${selectedChoice}${JSON.stringify(tabs.map((tab) => tab.key))}`}\n />\n )}\n </div>\n );\n};\n"],"names":["cva","useRef","useItemSelector","jsxs","cn","cloneElement","jsx"],"mappings":";;;;;;;;;;;;;;;;AAYA,MAAM,qBAAqBA,uBAAAA;AAAAA,EACzB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAEA,MAAM,mBAAmBA,uBAAAA;AAAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAEJ;AA+BO,MAAM,cAAc,CAAqB;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ;AACF,MAA2B;AACzB,QAAM,cAAcC,aAAAA,OAAsB,EAAE;AAC5C,QAAM,eAAeA,aAAAA,OAA8B,IAAI;AACvD,QAAM,EAAE,4BAA4BC,sBAAAA;AAAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,SAAAA;AAAAA,QACT,mBAAmB;AAAA,UACjB;AAAA,QAAA,CACD;AAAA,QACD;AAAA,MAAA;AAAA,MAEF,oBAAiB;AAAA,MACjB,wBAAqB;AAAA,MACrB,MAAK;AAAA,MAEJ,UAAA;AAAA,QAAA,KAAK,IAAI,CAAC,KAAK,UAAU;AACxB,gBAAM,MAAM,IAAI;AAEhB,gBAAM,aAAa,mBAAmB;AAEtC,iBAAOC,aAAAA,aAAa,KAAK;AAAA,YACvB,KAAK,OAAO;AAAA,YACZ,MAAM;AAAA,YACN,SAAS,MAAM,aAAa,GAAG;AAAA,YAC/B,iBAAiB;AAAA,YACjB,KAAK,CAAC,OAAoB;AACxB,0BAAY,QAAQ,KAAK,IAAI;AAAA,YAC/B;AAAA,UAAA,CACe;AAAA,QACnB,CAAC;AAAA,QACA,2BACCC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWF,SAAAA;AAAAA,cACT,iBAAiB;AAAA,gBACf;AAAA,cAAA,CACD;AAAA,YAAA;AAAA,YAEH,OAAO;AAAA,YACP,KAAK;AAAA,UAAA;AAAA,UACA,GAAG,cAAc,GAAG,KAAK,UAAU,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;AAAA,QAAA;AAAA,MACrE;AAAA,IAAA;AAAA,EAAA;AAIR;;"}
1
+ {"version":3,"file":"TabSelector.cjs","sources":["../../../src/components/TabSelector/TabSelector.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n cloneElement,\n useRef,\n type HTMLAttributes,\n type ReactElement,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport enum TabSelectorColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n}\n\nconst tabSelectorVariant = cva(\n 'relative flex size-full flex-row items-center gap-2',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary',\n destructive: 'border-destructive bg-destructive text-destructive',\n neutral: 'border-neutral text-neutral ',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-lg transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary: 'bg-primary/10 aria-selected:text-text',\n secondary: 'bg-secondary/10 aria-selected:text-text',\n destructive: 'bg-destructive/10 aria-selected:text-text',\n neutral: 'bg-neutral/10 aria-selected:text-white/10',\n light: 'bg-white/10 aria-selected:text-black',\n dark: 'bg-neutral-800/10 aria-selected:text-white',\n text: 'bg-text/10 aria-selected:text-text-opposite',\n },\n },\n }\n);\n\nexport type TabProps = HTMLAttributes<HTMLElement> & {\n key: string | number;\n};\n\ntype TabSelectorProps<T extends TabProps> = {\n tabs: ReactElement<T>[];\n selectedChoice: T['key'];\n onTabClick?: (choice: T['key']) => void;\n hoverable?: boolean;\n} & HTMLAttributes<HTMLElement> &\n Omit<VariantProps<typeof tabSelectorVariant>, 'color'> & {\n color?: TabSelectorColor;\n };\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <TabSelector\n * selectedChoice=\"option1\"\n * onTabClick={(choice) => console.log(choice)}\n * hoverable={true}\n * >\n * <Button key=\"option1\"/>\n * <Button key=\"option2\"/>\n * <Button key=\"option3\"/>\n * </TabSelector>\n * ```\n */\nexport const TabSelector = <T extends TabProps>({\n tabs,\n selectedChoice,\n onTabClick,\n color = TabSelectorColor.PRIMARY,\n hoverable = false,\n className,\n}: TabSelectorProps<T>) => {\n const optionsRefs = useRef<HTMLElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(\n optionsRefs,\n undefined,\n hoverable\n );\n\n return (\n <div\n className={cn(\n tabSelectorVariant({\n color,\n }),\n className\n )}\n aria-orientation=\"horizontal\"\n aria-multiselectable=\"false\"\n role=\"tablist\"\n >\n {tabs.map((Tab, index) => {\n const key = Tab.key!;\n\n const isSelected = selectedChoice === key;\n\n return cloneElement(Tab, {\n key: key ?? index,\n role: 'tab',\n onClick: () => onTabClick?.(key),\n 'aria-selected': isSelected,\n ref: (el: HTMLElement) => {\n optionsRefs.current[index] = el!;\n },\n } as unknown as T);\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n key={`${selectedChoice}${JSON.stringify(tabs.map((tab) => tab.key))}`}\n />\n )}\n </div>\n );\n};\n"],"names":["TabSelectorColor","cva","useRef","useItemSelector","jsxs","cn","cloneElement","jsx"],"mappings":";;;;;;;;;;;;;;;;AAYO,IAAK,qCAAAA,sBAAL;AACLA,oBAAA,SAAA,IAAU;AACVA,oBAAA,WAAA,IAAY;AACZA,oBAAA,aAAA,IAAc;AACdA,oBAAA,SAAA,IAAU;AACVA,oBAAA,OAAA,IAAQ;AACRA,oBAAA,MAAA,IAAO;AACPA,oBAAA,MAAA,IAAO;AAPG,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAUZ,MAAM,qBAAqBC,uBAAAA;AAAAA,EACzB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAEA,MAAM,mBAAmBA,uBAAAA;AAAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAEJ;AAiCO,MAAM,cAAc,CAAqB;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ;AACF,MAA2B;AACzB,QAAM,cAAcC,aAAAA,OAAsB,EAAE;AAC5C,QAAM,eAAeA,aAAAA,OAA8B,IAAI;AACvD,QAAM,EAAE,4BAA4BC,sBAAAA;AAAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,SAAAA;AAAAA,QACT,mBAAmB;AAAA,UACjB;AAAA,QAAA,CACD;AAAA,QACD;AAAA,MAAA;AAAA,MAEF,oBAAiB;AAAA,MACjB,wBAAqB;AAAA,MACrB,MAAK;AAAA,MAEJ,UAAA;AAAA,QAAA,KAAK,IAAI,CAAC,KAAK,UAAU;AACxB,gBAAM,MAAM,IAAI;AAEhB,gBAAM,aAAa,mBAAmB;AAEtC,iBAAOC,aAAAA,aAAa,KAAK;AAAA,YACvB,KAAK,OAAO;AAAA,YACZ,MAAM;AAAA,YACN,SAAS,MAAM,aAAa,GAAG;AAAA,YAC/B,iBAAiB;AAAA,YACjB,KAAK,CAAC,OAAoB;AACxB,0BAAY,QAAQ,KAAK,IAAI;AAAA,YAC/B;AAAA,UAAA,CACe;AAAA,QACnB,CAAC;AAAA,QACA,2BACCC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWF,SAAAA;AAAAA,cACT,iBAAiB;AAAA,gBACf;AAAA,cAAA,CACD;AAAA,YAAA;AAAA,YAEH,OAAO;AAAA,YACP,KAAK;AAAA,UAAA;AAAA,UACA,GAAG,cAAc,GAAG,KAAK,UAAU,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;AAAA,QAAA;AAAA,MACrE;AAAA,IAAA;AAAA,EAAA;AAIR;;;"}
@@ -1,5 +1,14 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import { HTMLAttributes, ReactElement } from 'react';
3
+ export declare enum TabSelectorColor {
4
+ PRIMARY = "primary",
5
+ SECONDARY = "secondary",
6
+ DESTRUCTIVE = "destructive",
7
+ NEUTRAL = "neutral",
8
+ LIGHT = "light",
9
+ DARK = "dark",
10
+ TEXT = "text"
11
+ }
3
12
  declare const tabSelectorVariant: (props?: ({
4
13
  color?: "text" | "primary" | "secondary" | "destructive" | "neutral" | "light" | "dark" | null | undefined;
5
14
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -11,7 +20,9 @@ type TabSelectorProps<T extends TabProps> = {
11
20
  selectedChoice: T['key'];
12
21
  onTabClick?: (choice: T['key']) => void;
13
22
  hoverable?: boolean;
14
- } & HTMLAttributes<HTMLElement> & VariantProps<typeof tabSelectorVariant>;
23
+ } & HTMLAttributes<HTMLElement> & Omit<VariantProps<typeof tabSelectorVariant>, 'color'> & {
24
+ color?: TabSelectorColor;
25
+ };
15
26
  /**
16
27
  *
17
28
  * Component that allows the user to select one of the provided choices.
@@ -1 +1 @@
1
- {"version":3,"file":"TabSelector.d.ts","sourceRoot":"","sources":["../../../src/components/TabSelector/TabSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,YAAY,EAElB,MAAM,OAAO,CAAC;AAIf,QAAA,MAAM,kBAAkB;;8EAkBvB,CAAC;AAmBF,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACnD,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI;IAC1C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,cAAc,CAAC,WAAW,CAAC,GAC7B,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE1C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,oEAO7C,gBAAgB,CAAC,CAAC,CAAC,4CAkDrB,CAAC"}
1
+ {"version":3,"file":"TabSelector.d.ts","sourceRoot":"","sources":["../../../src/components/TabSelector/TabSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAIf,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,QAAA,MAAM,kBAAkB;;8EAkBvB,CAAC;AAmBF,MAAM,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACnD,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI;IAC1C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,cAAc,CAAC,WAAW,CAAC,GAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,kBAAkB,CAAC,EAAE,OAAO,CAAC,GAAG;IACvD,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEJ;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,oEAO7C,gBAAgB,CAAC,CAAC,CAAC,4CAkDrB,CAAC"}
@@ -3,7 +3,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { useRef, cloneElement } from "react";
5
5
  import "@intlayer/config/built";
6
- import "../../better-auth.8zoxzg-F-D8e0X4ys.js";
6
+ import "../../better-auth.CMQ3rA-I-7umXOENE.js";
7
7
  import "@intlayer/editor-react";
8
8
  import "../Toaster/Toast.mjs";
9
9
  import "../../hooks/useAsync/useAsyncStateStore.mjs";
@@ -12,6 +12,16 @@ import "deepmerge";
12
12
  import { useItemSelector } from "../../hooks/useItemSelector.mjs";
13
13
  import "../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
14
14
  import { cn } from "../../utils/cn.mjs";
15
+ var TabSelectorColor = /* @__PURE__ */ ((TabSelectorColor2) => {
16
+ TabSelectorColor2["PRIMARY"] = "primary";
17
+ TabSelectorColor2["SECONDARY"] = "secondary";
18
+ TabSelectorColor2["DESTRUCTIVE"] = "destructive";
19
+ TabSelectorColor2["NEUTRAL"] = "neutral";
20
+ TabSelectorColor2["LIGHT"] = "light";
21
+ TabSelectorColor2["DARK"] = "dark";
22
+ TabSelectorColor2["TEXT"] = "text";
23
+ return TabSelectorColor2;
24
+ })(TabSelectorColor || {});
15
25
  const tabSelectorVariant = cva(
16
26
  "relative flex size-full flex-row items-center gap-2",
17
27
  {
@@ -106,6 +116,7 @@ const TabSelector = ({
106
116
  );
107
117
  };
108
118
  export {
109
- TabSelector
119
+ TabSelector,
120
+ TabSelectorColor
110
121
  };
111
122
  //# sourceMappingURL=TabSelector.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabSelector.mjs","sources":["../../../src/components/TabSelector/TabSelector.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n useRef,\n type HTMLAttributes,\n type ReactElement,\n cloneElement,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nconst tabSelectorVariant = cva(\n 'relative flex size-full flex-row items-center gap-2',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary',\n destructive: 'border-destructive bg-destructive text-destructive',\n neutral: 'border-neutral text-neutral ',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-lg transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary: 'bg-primary/10 aria-selected:text-text',\n secondary: 'bg-secondary/10 aria-selected:text-text',\n destructive: 'bg-destructive/10 aria-selected:text-text',\n neutral: 'bg-neutral/10 aria-selected:text-white/10',\n light: 'bg-white/10 aria-selected:text-black',\n dark: 'bg-neutral-800/10 aria-selected:text-white',\n text: 'bg-text/10 aria-selected:text-text-opposite',\n },\n },\n }\n);\n\nexport type TabProps = HTMLAttributes<HTMLElement> & {\n key: string | number;\n};\n\ntype TabSelectorProps<T extends TabProps> = {\n tabs: ReactElement<T>[];\n selectedChoice: T['key'];\n onTabClick?: (choice: T['key']) => void;\n hoverable?: boolean;\n} & HTMLAttributes<HTMLElement> &\n VariantProps<typeof tabSelectorVariant>;\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <TabSelector\n * selectedChoice=\"option1\"\n * onTabClick={(choice) => console.log(choice)}\n * hoverable={true}\n * >\n * <Button key=\"option1\"/>\n * <Button key=\"option2\"/>\n * <Button key=\"option3\"/>\n * </TabSelector>\n * ```\n */\nexport const TabSelector = <T extends TabProps>({\n tabs,\n selectedChoice,\n onTabClick,\n color = 'primary',\n hoverable = false,\n className,\n}: TabSelectorProps<T>) => {\n const optionsRefs = useRef<HTMLElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(\n optionsRefs,\n undefined,\n hoverable\n );\n\n return (\n <div\n className={cn(\n tabSelectorVariant({\n color,\n }),\n className\n )}\n aria-orientation=\"horizontal\"\n aria-multiselectable=\"false\"\n role=\"tablist\"\n >\n {tabs.map((Tab, index) => {\n const key = Tab.key!;\n\n const isSelected = selectedChoice === key;\n\n return cloneElement(Tab, {\n key: key ?? index,\n role: 'tab',\n onClick: () => onTabClick?.(key),\n 'aria-selected': isSelected,\n ref: (el: HTMLElement) => {\n optionsRefs.current[index] = el!;\n },\n } as unknown as T);\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n key={`${selectedChoice}${JSON.stringify(tabs.map((tab) => tab.key))}`}\n />\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAYA,MAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAEA,MAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAEJ;AA+BO,MAAM,cAAc,CAAqB;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ;AACF,MAA2B;AACzB,QAAM,cAAc,OAAsB,EAAE;AAC5C,QAAM,eAAe,OAA8B,IAAI;AACvD,QAAM,EAAE,4BAA4B;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,mBAAmB;AAAA,UACjB;AAAA,QAAA,CACD;AAAA,QACD;AAAA,MAAA;AAAA,MAEF,oBAAiB;AAAA,MACjB,wBAAqB;AAAA,MACrB,MAAK;AAAA,MAEJ,UAAA;AAAA,QAAA,KAAK,IAAI,CAAC,KAAK,UAAU;AACxB,gBAAM,MAAM,IAAI;AAEhB,gBAAM,aAAa,mBAAmB;AAEtC,iBAAO,aAAa,KAAK;AAAA,YACvB,KAAK,OAAO;AAAA,YACZ,MAAM;AAAA,YACN,SAAS,MAAM,aAAa,GAAG;AAAA,YAC/B,iBAAiB;AAAA,YACjB,KAAK,CAAC,OAAoB;AACxB,0BAAY,QAAQ,KAAK,IAAI;AAAA,YAC/B;AAAA,UAAA,CACe;AAAA,QACnB,CAAC;AAAA,QACA,2BACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT,iBAAiB;AAAA,gBACf;AAAA,cAAA,CACD;AAAA,YAAA;AAAA,YAEH,OAAO;AAAA,YACP,KAAK;AAAA,UAAA;AAAA,UACA,GAAG,cAAc,GAAG,KAAK,UAAU,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;AAAA,QAAA;AAAA,MACrE;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"TabSelector.mjs","sources":["../../../src/components/TabSelector/TabSelector.tsx"],"sourcesContent":["'use client';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n cloneElement,\n useRef,\n type HTMLAttributes,\n type ReactElement,\n} from 'react';\nimport { useItemSelector } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\nexport enum TabSelectorColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n}\n\nconst tabSelectorVariant = cva(\n 'relative flex size-full flex-row items-center gap-2',\n {\n variants: {\n color: {\n primary: 'border-primary text-primary',\n secondary: 'border-secondary text-secondary',\n destructive: 'border-destructive bg-destructive text-destructive',\n neutral: 'border-neutral text-neutral ',\n light: 'border-white text-white',\n dark: 'border-neutral-800 text-neutral-800',\n text: 'border-text text-text',\n },\n },\n defaultVariants: {\n color: 'primary',\n },\n }\n);\n\nconst indicatorVariant = cva(\n 'absolute top-0 z-[-1] h-full w-auto rounded-lg transition-[left,width] duration-300 ease-in-out motion-reduce:transition-none',\n {\n variants: {\n color: {\n primary: 'bg-primary/10 aria-selected:text-text',\n secondary: 'bg-secondary/10 aria-selected:text-text',\n destructive: 'bg-destructive/10 aria-selected:text-text',\n neutral: 'bg-neutral/10 aria-selected:text-white/10',\n light: 'bg-white/10 aria-selected:text-black',\n dark: 'bg-neutral-800/10 aria-selected:text-white',\n text: 'bg-text/10 aria-selected:text-text-opposite',\n },\n },\n }\n);\n\nexport type TabProps = HTMLAttributes<HTMLElement> & {\n key: string | number;\n};\n\ntype TabSelectorProps<T extends TabProps> = {\n tabs: ReactElement<T>[];\n selectedChoice: T['key'];\n onTabClick?: (choice: T['key']) => void;\n hoverable?: boolean;\n} & HTMLAttributes<HTMLElement> &\n Omit<VariantProps<typeof tabSelectorVariant>, 'color'> & {\n color?: TabSelectorColor;\n };\n\n/**\n *\n * Component that allows the user to select one of the provided choices.\n *\n * Example:\n * ```jsx\n * <TabSelector\n * selectedChoice=\"option1\"\n * onTabClick={(choice) => console.log(choice)}\n * hoverable={true}\n * >\n * <Button key=\"option1\"/>\n * <Button key=\"option2\"/>\n * <Button key=\"option3\"/>\n * </TabSelector>\n * ```\n */\nexport const TabSelector = <T extends TabProps>({\n tabs,\n selectedChoice,\n onTabClick,\n color = TabSelectorColor.PRIMARY,\n hoverable = false,\n className,\n}: TabSelectorProps<T>) => {\n const optionsRefs = useRef<HTMLElement[]>([]);\n const indicatorRef = useRef<HTMLDivElement | null>(null);\n const { choiceIndicatorPosition } = useItemSelector(\n optionsRefs,\n undefined,\n hoverable\n );\n\n return (\n <div\n className={cn(\n tabSelectorVariant({\n color,\n }),\n className\n )}\n aria-orientation=\"horizontal\"\n aria-multiselectable=\"false\"\n role=\"tablist\"\n >\n {tabs.map((Tab, index) => {\n const key = Tab.key!;\n\n const isSelected = selectedChoice === key;\n\n return cloneElement(Tab, {\n key: key ?? index,\n role: 'tab',\n onClick: () => onTabClick?.(key),\n 'aria-selected': isSelected,\n ref: (el: HTMLElement) => {\n optionsRefs.current[index] = el!;\n },\n } as unknown as T);\n })}\n {choiceIndicatorPosition && (\n <div\n className={cn(\n indicatorVariant({\n color,\n })\n )}\n style={choiceIndicatorPosition}\n ref={indicatorRef}\n key={`${selectedChoice}${JSON.stringify(tabs.map((tab) => tab.key))}`}\n />\n )}\n </div>\n );\n};\n"],"names":["TabSelectorColor"],"mappings":";;;;;;;;;;;;;;AAYO,IAAK,qCAAAA,sBAAL;AACLA,oBAAA,SAAA,IAAU;AACVA,oBAAA,WAAA,IAAY;AACZA,oBAAA,aAAA,IAAc;AACdA,oBAAA,SAAA,IAAU;AACVA,oBAAA,OAAA,IAAQ;AACRA,oBAAA,MAAA,IAAO;AACPA,oBAAA,MAAA,IAAO;AAPG,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAUZ,MAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAEA,MAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAEJ;AAiCO,MAAM,cAAc,CAAqB;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ;AACF,MAA2B;AACzB,QAAM,cAAc,OAAsB,EAAE;AAC5C,QAAM,eAAe,OAA8B,IAAI;AACvD,QAAM,EAAE,4BAA4B;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,mBAAmB;AAAA,UACjB;AAAA,QAAA,CACD;AAAA,QACD;AAAA,MAAA;AAAA,MAEF,oBAAiB;AAAA,MACjB,wBAAqB;AAAA,MACrB,MAAK;AAAA,MAEJ,UAAA;AAAA,QAAA,KAAK,IAAI,CAAC,KAAK,UAAU;AACxB,gBAAM,MAAM,IAAI;AAEhB,gBAAM,aAAa,mBAAmB;AAEtC,iBAAO,aAAa,KAAK;AAAA,YACvB,KAAK,OAAO;AAAA,YACZ,MAAM;AAAA,YACN,SAAS,MAAM,aAAa,GAAG;AAAA,YAC/B,iBAAiB;AAAA,YACjB,KAAK,CAAC,OAAoB;AACxB,0BAAY,QAAQ,KAAK,IAAI;AAAA,YAC/B;AAAA,UAAA,CACe;AAAA,QACnB,CAAC;AAAA,QACA,2BACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT,iBAAiB;AAAA,gBACf;AAAA,cAAA,CACD;AAAA,YAAA;AAAA,YAEH,OAAO;AAAA,YACP,KAAK;AAAA,UAAA;AAAA,UACA,GAAG,cAAc,GAAG,KAAK,UAAU,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;AAAA,QAAA;AAAA,MACrE;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -2,4 +2,5 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const components_TabSelector_TabSelector = require("./TabSelector.cjs");
4
4
  exports.TabSelector = components_TabSelector_TabSelector.TabSelector;
5
+ exports.TabSelectorColor = components_TabSelector_TabSelector.TabSelectorColor;
5
6
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -1,2 +1,3 @@
1
1
  export * from './TabSelector';
2
+ export { TabSelectorColor } from './TabSelector';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TabSelector/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TabSelector/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,5 +1,6 @@
1
- import { TabSelector } from "./TabSelector.mjs";
1
+ import { TabSelector, TabSelectorColor } from "./TabSelector.mjs";
2
2
  export {
3
- TabSelector
3
+ TabSelector,
4
+ TabSelectorColor
4
5
  };
5
6
  //# sourceMappingURL=index.mjs.map