@xyd-js/components 0.1.0-xyd.10 → 0.1.0-xyd.13

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 (352) hide show
  1. package/.idea/git_toolbox_blame.xml +6 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/vcs.xml +6 -0
  4. package/.idea/xyd-components.iml +12 -0
  5. package/CHANGELOG.md +22 -0
  6. package/TODO.md +1 -0
  7. package/content.ts +0 -2
  8. package/dist/CTABanner-BD4wweO5.js +2 -0
  9. package/dist/CTABanner-BD4wweO5.js.map +1 -0
  10. package/dist/CTABanner-DLG0_gv8.js +2 -0
  11. package/dist/CTABanner-DLG0_gv8.js.map +1 -0
  12. package/dist/CTABanner-DpPtA-FL.js +2 -0
  13. package/dist/CTABanner-DpPtA-FL.js.map +1 -0
  14. package/dist/CodeSample--qfqZ1hL.js +2 -0
  15. package/dist/CodeSample--qfqZ1hL.js.map +1 -0
  16. package/dist/CodeSample-CqFaFwwz.js +2 -0
  17. package/dist/CodeSample-CqFaFwwz.js.map +1 -0
  18. package/dist/CodeSample-GbqwRbcO.js +2 -0
  19. package/dist/CodeSample-GbqwRbcO.js.map +1 -0
  20. package/dist/HomeView-BZdY0g_7.js +2 -0
  21. package/dist/{HomeView-ACBdUgyz.js.map → HomeView-BZdY0g_7.js.map} +1 -1
  22. package/dist/HomeView-C_mEMzjV.js +2 -0
  23. package/dist/{HomeView-B0ATNUF1.js.map → HomeView-C_mEMzjV.js.map} +1 -1
  24. package/dist/HomeView-RATm-3zT.js +2 -0
  25. package/dist/{HomeView-CHSb4HL6.js.map → HomeView-RATm-3zT.js.map} +1 -1
  26. package/dist/Icon-BkXdTctK.js +2 -0
  27. package/dist/Icon-BkXdTctK.js.map +1 -0
  28. package/dist/Icon-BoKcRZAF.js +2 -0
  29. package/dist/Icon-BoKcRZAF.js.map +1 -0
  30. package/dist/Icon-CouPZRkJ.js +2 -0
  31. package/dist/Icon-CouPZRkJ.js.map +1 -0
  32. package/dist/Text-B-E3eaWW.js +2 -0
  33. package/dist/Text-B-E3eaWW.js.map +1 -0
  34. package/dist/Text-B5Ba_pci.js +2 -0
  35. package/dist/Text-B5Ba_pci.js.map +1 -0
  36. package/dist/Text-QH4jjPUM.js +2 -0
  37. package/dist/Text-QH4jjPUM.js.map +1 -0
  38. package/dist/Update-BlhP2VFR.js +2 -0
  39. package/dist/Update-BlhP2VFR.js.map +1 -0
  40. package/dist/Update-CMM38Snc.js +2 -0
  41. package/dist/Update-CMM38Snc.js.map +1 -0
  42. package/dist/Update-D5e_yqty.js +2 -0
  43. package/dist/Update-D5e_yqty.js.map +1 -0
  44. package/dist/VideoGuide-C5aW4OXW.js +2 -0
  45. package/dist/VideoGuide-C5aW4OXW.js.map +1 -0
  46. package/dist/VideoGuide-CoQXlHjQ.js +2 -0
  47. package/dist/VideoGuide-CoQXlHjQ.js.map +1 -0
  48. package/dist/VideoGuide-CwkedH8b.js +2 -0
  49. package/dist/VideoGuide-CwkedH8b.js.map +1 -0
  50. package/dist/_rollupPluginBabelHelpers-9wcO9jN6.js +4 -0
  51. package/dist/_rollupPluginBabelHelpers-9wcO9jN6.js.map +1 -0
  52. package/dist/_rollupPluginBabelHelpers-CiqSP2w-.js +4 -0
  53. package/dist/_rollupPluginBabelHelpers-CiqSP2w-.js.map +1 -0
  54. package/dist/_rollupPluginBabelHelpers-DmvUE1MU.js +4 -0
  55. package/dist/_rollupPluginBabelHelpers-DmvUE1MU.js.map +1 -0
  56. package/dist/brand.js +1 -1
  57. package/dist/brand.js.map +1 -1
  58. package/dist/coder/themes/cosmo-light.js.map +1 -1
  59. package/dist/coder.d.ts +29 -9
  60. package/dist/coder.js +1 -1
  61. package/dist/coder.js.map +1 -1
  62. package/dist/content.d.ts +264 -201
  63. package/dist/content.js +1 -1
  64. package/dist/content.js.map +1 -1
  65. package/dist/index.css +260 -210
  66. package/dist/layouts.d.ts +20 -21
  67. package/dist/layouts.js +1 -1
  68. package/dist/layouts.js.map +1 -1
  69. package/dist/pages.js +1 -1
  70. package/dist/pages.js.map +1 -1
  71. package/dist/system.d.ts +10 -0
  72. package/dist/system.js +2 -0
  73. package/dist/system.js.map +1 -0
  74. package/dist/tslib.es6-Bb9zBh0L.js +2 -0
  75. package/dist/{tslib.es6-BBkx4Se1.js.map → tslib.es6-Bb9zBh0L.js.map} +1 -1
  76. package/dist/tslib.es6-Bd9lzVn6.js +2 -0
  77. package/dist/{tslib.es6-BF6ZLEXa.js.map → tslib.es6-Bd9lzVn6.js.map} +1 -1
  78. package/dist/tslib.es6-DwnOrHRg.js +2 -0
  79. package/dist/{tslib.es6-BOZCDgb8.js.map → tslib.es6-DwnOrHRg.js.map} +1 -1
  80. package/dist/views.js +1 -1
  81. package/dist/writer.d.ts +409 -77
  82. package/dist/writer.js +1 -1
  83. package/dist/writer.js.map +1 -1
  84. package/docs/.nojekyll +1 -0
  85. package/docs/assets/hierarchy.js +1 -0
  86. package/docs/assets/highlight.css +22 -0
  87. package/docs/assets/icons.js +18 -0
  88. package/docs/assets/icons.svg +1 -0
  89. package/docs/assets/main.js +60 -0
  90. package/docs/assets/navigation.js +1 -0
  91. package/docs/assets/search.js +1 -0
  92. package/docs/assets/style.css +1640 -0
  93. package/docs/functions/GuideCard.html +6 -0
  94. package/docs/hierarchy.html +1 -0
  95. package/docs/index.html +2 -0
  96. package/docs/interfaces/GuideCardProps.html +18 -0
  97. package/docs/modules.html +1 -0
  98. package/index.ts +0 -1
  99. package/package.json +10 -6
  100. package/project.json +677 -0
  101. package/rollup.config.js +30 -20
  102. package/src/brand/Button/Button.styles.tsx +0 -3
  103. package/src/brand/CTABanner/CTABanner.styles.tsx +2 -4
  104. package/src/brand/Footer/Footer.styles.tsx +0 -3
  105. package/src/coder/Code/Code.styles.tsx +132 -33
  106. package/src/coder/Code/Code.tsx +129 -38
  107. package/src/coder/Code/CodeLoader.tsx +3 -3
  108. package/src/coder/Code/annotations.tsx +28 -8
  109. package/src/coder/Code/highlight.ts +38 -0
  110. package/src/coder/Code/index.ts +2 -1
  111. package/src/coder/CodeCopy/CodeCopy.styles.tsx +13 -11
  112. package/src/coder/CodeCopy/CodeCopy.tsx +5 -3
  113. package/src/coder/CodeSample/CodeSample.tsx +83 -27
  114. package/src/coder/CodeTabs/CodeTabs.styles.tsx +111 -94
  115. package/src/coder/CodeTabs/CodeTabs.tsx +69 -51
  116. package/src/coder/CodeTheme/CodeTheme.tsx +89 -49
  117. package/src/coder/CodeTheme/index.ts +0 -1
  118. package/src/coder/CoderProvider.tsx +26 -0
  119. package/src/coder/index.ts +8 -4
  120. package/src/content/ContentDecoator.styles.tsx +113 -0
  121. package/src/content/ContentDecorator.tsx +17 -0
  122. package/src/content/GridDecorator.styles.tsx +67 -0
  123. package/src/content/GridDecorator.tsx +21 -0
  124. package/src/content/ReactContent.tsx +575 -0
  125. package/src/content/index.ts +10 -2
  126. package/src/icons/index.ts +0 -0
  127. package/src/kit/Loader/Loader.styles.tsx +53 -0
  128. package/src/kit/Loader/Loader.tsx +22 -0
  129. package/src/kit/index.ts +1 -0
  130. package/src/layouts/LayoutPrimary/LayoutPrimary.styles.tsx +270 -306
  131. package/src/layouts/LayoutPrimary/LayoutPrimary.tsx +171 -91
  132. package/src/layouts/LayoutPrimary/index.ts +0 -2
  133. package/src/layouts/index.ts +0 -7
  134. package/src/system/SearchButton/SearchButton.styles.tsx +86 -0
  135. package/src/system/SearchButton/SearchButton.tsx +116 -0
  136. package/src/system/SearchButton/index.ts +1 -0
  137. package/src/system/index.ts +1 -0
  138. package/src/writer/Anchor/Anchor.styles.tsx +11 -0
  139. package/src/{content → writer}/Anchor/Anchor.tsx +20 -22
  140. package/src/writer/Anchor/index.tsx +1 -0
  141. package/src/writer/Badge/Badge.styles.tsx +37 -27
  142. package/src/writer/Badge/Badge.tsx +34 -48
  143. package/src/writer/Banner/Banner.styles.tsx +91 -0
  144. package/src/writer/Banner/Banner.tsx +70 -0
  145. package/src/writer/Banner/index.ts +1 -0
  146. package/src/writer/Blockquote/Blockquote.styles.tsx +6 -4
  147. package/src/writer/Blockquote/Blockquote.tsx +5 -2
  148. package/src/writer/Breadcrumbs/Breadcrumbs.styles.ts +25 -25
  149. package/src/writer/Breadcrumbs/Breadcrumbs.tsx +18 -12
  150. package/src/writer/Button/Button.styles.tsx +137 -0
  151. package/src/writer/Button/Button.tsx +75 -0
  152. package/src/writer/Button/index.ts +2 -0
  153. package/src/writer/Callout/Callout.styles.tsx +35 -42
  154. package/src/writer/Callout/Callout.tsx +30 -15
  155. package/src/writer/Card/Card.styles.tsx +47 -0
  156. package/src/writer/Card/Card.tsx +69 -0
  157. package/src/writer/Card/index.ts +1 -0
  158. package/src/writer/Code/Code.styles.tsx +12 -11
  159. package/src/writer/Code/Code.tsx +6 -3
  160. package/src/writer/ColorSchemeButton/ColorSchemeButton.tsx +172 -0
  161. package/src/writer/ColorSchemeButton/index.ts +1 -0
  162. package/src/writer/Details/Details.styles.tsx +87 -98
  163. package/src/writer/Details/Details.tsx +65 -44
  164. package/src/writer/Example/index.tsx +5 -0
  165. package/src/writer/GuideCard/GuideCard.styles.tsx +100 -103
  166. package/src/writer/GuideCard/GuideCard.tsx +72 -37
  167. package/src/writer/Heading/Heading.styles.tsx +76 -60
  168. package/src/writer/Heading/Heading.tsx +92 -22
  169. package/src/writer/Hr/Hr.styles.tsx +3 -1
  170. package/src/writer/Hr/Hr.tsx +2 -5
  171. package/src/writer/Icon/Icon.tsx +48 -0
  172. package/src/writer/Icon/index.ts +1 -0
  173. package/src/writer/Image/Image.styles.tsx +9 -0
  174. package/src/writer/Image/Image.tsx +19 -0
  175. package/src/writer/Image/index.ts +1 -0
  176. package/src/writer/List/List.styles.tsx +47 -0
  177. package/src/writer/List/List.tsx +29 -0
  178. package/src/writer/List/index.ts +4 -0
  179. package/src/writer/NavLinks/NavLinks.styles.ts +26 -26
  180. package/src/writer/NavLinks/NavLinks.tsx +65 -18
  181. package/src/writer/Pre/Pre.styles.tsx +8 -6
  182. package/src/writer/Pre/Pre.tsx +3 -2
  183. package/src/writer/Steps/Steps.styles.tsx +27 -24
  184. package/src/writer/Steps/Steps.tsx +38 -8
  185. package/src/writer/Table/Table.styles.tsx +65 -34
  186. package/src/writer/Table/Table.tsx +121 -11
  187. package/src/writer/Table/index.ts +0 -11
  188. package/src/writer/Tabs/Tabs.styles.tsx +51 -55
  189. package/src/writer/Tabs/Tabs.tsx +30 -23
  190. package/src/writer/Text/Text.styles.tsx +66 -0
  191. package/src/writer/Text/Text.tsx +79 -0
  192. package/src/writer/Text/index.ts +3 -0
  193. package/src/writer/TocCard/TocCard.module.css +44 -0
  194. package/src/writer/TocCard/TocCard.tsx +42 -0
  195. package/src/writer/TocCard/index.ts +3 -0
  196. package/src/writer/UnderlineNav/Tabs.tsx +51 -0
  197. package/src/writer/UnderlineNav/TabsPrimary.styles.tsx +184 -0
  198. package/src/writer/UnderlineNav/TabsPrimary.tsx +209 -0
  199. package/src/writer/UnderlineNav/TabsSecondary.styles.tsx +77 -0
  200. package/src/writer/UnderlineNav/TabsSecondary.tsx +171 -0
  201. package/src/writer/UnderlineNav/UnderlineNav.styles.tsx +165 -31
  202. package/src/writer/UnderlineNav/UnderlineNav.tsx +257 -22
  203. package/src/writer/UnderlineNav/index.ts +2 -1
  204. package/src/writer/UnderlineNav/useValueChange.ts +60 -0
  205. package/src/writer/Update/Update.styles.tsx +33 -0
  206. package/src/writer/Update/Update.tsx +37 -0
  207. package/src/writer/Update/index.ts +1 -0
  208. package/src/writer/VideoGuide/VideoGuide.module.css +105 -0
  209. package/src/writer/VideoGuide/VideoGuide.tsx +75 -0
  210. package/src/writer/VideoGuide/index.ts +1 -0
  211. package/src/writer/index.ts +23 -1
  212. package/tsconfig.json +9 -3
  213. package/types.d.ts +50 -0
  214. package/writer.ts +1 -1
  215. package/dist/CTABanner-4FVIoaTR.js +0 -2
  216. package/dist/CTABanner-4FVIoaTR.js.map +0 -1
  217. package/dist/CTABanner-BQx2SLf8.js +0 -2
  218. package/dist/CTABanner-BQx2SLf8.js.map +0 -1
  219. package/dist/CTABanner-C6afsXoE.js +0 -2
  220. package/dist/CTABanner-C6afsXoE.js.map +0 -1
  221. package/dist/CTABanner-CEKs-Hb-.js +0 -2
  222. package/dist/CTABanner-CEKs-Hb-.js.map +0 -1
  223. package/dist/CTABanner-CUNcTr6s.js +0 -2
  224. package/dist/CTABanner-CUNcTr6s.js.map +0 -1
  225. package/dist/CTABanner-D02aIAsD.js +0 -2
  226. package/dist/CTABanner-D02aIAsD.js.map +0 -1
  227. package/dist/CTABanner-Dm3tUG3I.js +0 -2
  228. package/dist/CTABanner-Dm3tUG3I.js.map +0 -1
  229. package/dist/CTABanner-MCOcVowa.js +0 -2
  230. package/dist/CTABanner-MCOcVowa.js.map +0 -1
  231. package/dist/CTABanner-X6K49gSr.js +0 -2
  232. package/dist/CTABanner-X6K49gSr.js.map +0 -1
  233. package/dist/CodeSample-B9VUhTKF.js +0 -2
  234. package/dist/CodeSample-B9VUhTKF.js.map +0 -1
  235. package/dist/CodeSample-BSXeFy0x.js +0 -2
  236. package/dist/CodeSample-BSXeFy0x.js.map +0 -1
  237. package/dist/CodeSample-BwP208sQ.js +0 -2
  238. package/dist/CodeSample-BwP208sQ.js.map +0 -1
  239. package/dist/CodeSample-CK-CQYrV.js +0 -2
  240. package/dist/CodeSample-CK-CQYrV.js.map +0 -1
  241. package/dist/CodeSample-CUemtj_W.js +0 -2
  242. package/dist/CodeSample-CUemtj_W.js.map +0 -1
  243. package/dist/CodeSample-D0iKih-A.js +0 -2
  244. package/dist/CodeSample-D0iKih-A.js.map +0 -1
  245. package/dist/CodeSample-D33vTa6M.js +0 -2
  246. package/dist/CodeSample-D33vTa6M.js.map +0 -1
  247. package/dist/CodeSample-DUSx2KBt.js +0 -2
  248. package/dist/CodeSample-DUSx2KBt.js.map +0 -1
  249. package/dist/CodeSample-P4yxkHPW.js +0 -2
  250. package/dist/CodeSample-P4yxkHPW.js.map +0 -1
  251. package/dist/HomeView-ACBdUgyz.js +0 -2
  252. package/dist/HomeView-B0ATNUF1.js +0 -2
  253. package/dist/HomeView-CHSb4HL6.js +0 -2
  254. package/dist/HomeView-COJrg8Ju.js +0 -2
  255. package/dist/HomeView-COJrg8Ju.js.map +0 -1
  256. package/dist/HomeView-Cun4apuy.js +0 -2
  257. package/dist/HomeView-Cun4apuy.js.map +0 -1
  258. package/dist/HomeView-D4DXEOOn.js +0 -2
  259. package/dist/HomeView-D4DXEOOn.js.map +0 -1
  260. package/dist/HomeView-DaH1PSBB.js +0 -2
  261. package/dist/HomeView-DaH1PSBB.js.map +0 -1
  262. package/dist/HomeView-O_lj2c2t.js +0 -2
  263. package/dist/HomeView-O_lj2c2t.js.map +0 -1
  264. package/dist/HomeView-_Nu2RcOM.js +0 -2
  265. package/dist/HomeView-_Nu2RcOM.js.map +0 -1
  266. package/dist/UnderlineNav-3-KptDYD.js +0 -2
  267. package/dist/UnderlineNav-3-KptDYD.js.map +0 -1
  268. package/dist/UnderlineNav-BCyB0G5d.js +0 -2
  269. package/dist/UnderlineNav-BCyB0G5d.js.map +0 -1
  270. package/dist/UnderlineNav-BEhDJk0H.js +0 -2
  271. package/dist/UnderlineNav-BEhDJk0H.js.map +0 -1
  272. package/dist/UnderlineNav-BqZ2xAp7.js +0 -2
  273. package/dist/UnderlineNav-BqZ2xAp7.js.map +0 -1
  274. package/dist/UnderlineNav-C2-4Vyj8.js +0 -2
  275. package/dist/UnderlineNav-C2-4Vyj8.js.map +0 -1
  276. package/dist/UnderlineNav-Co08Gykm.js +0 -2
  277. package/dist/UnderlineNav-Co08Gykm.js.map +0 -1
  278. package/dist/UnderlineNav-DC3UVmnZ.js +0 -2
  279. package/dist/UnderlineNav-DC3UVmnZ.js.map +0 -1
  280. package/dist/UnderlineNav-DsRYwuGB.js +0 -2
  281. package/dist/UnderlineNav-DsRYwuGB.js.map +0 -1
  282. package/dist/UnderlineNav-FbclXKUW.js +0 -2
  283. package/dist/UnderlineNav-FbclXKUW.js.map +0 -1
  284. package/dist/_rollupPluginBabelHelpers-BEouSrrZ.js +0 -2
  285. package/dist/_rollupPluginBabelHelpers-BEouSrrZ.js.map +0 -1
  286. package/dist/_rollupPluginBabelHelpers-BHehKRBq.js +0 -2
  287. package/dist/_rollupPluginBabelHelpers-BHehKRBq.js.map +0 -1
  288. package/dist/_rollupPluginBabelHelpers-Bunpz22T.js +0 -2
  289. package/dist/_rollupPluginBabelHelpers-Bunpz22T.js.map +0 -1
  290. package/dist/_rollupPluginBabelHelpers-CVblpRvU.js +0 -2
  291. package/dist/_rollupPluginBabelHelpers-CVblpRvU.js.map +0 -1
  292. package/dist/_rollupPluginBabelHelpers-CxmswfqM.js +0 -2
  293. package/dist/_rollupPluginBabelHelpers-CxmswfqM.js.map +0 -1
  294. package/dist/_rollupPluginBabelHelpers-D0XU6lDu.js +0 -2
  295. package/dist/_rollupPluginBabelHelpers-D0XU6lDu.js.map +0 -1
  296. package/dist/_rollupPluginBabelHelpers-DQJTK9EO.js +0 -2
  297. package/dist/_rollupPluginBabelHelpers-DQJTK9EO.js.map +0 -1
  298. package/dist/_rollupPluginBabelHelpers-DuRQdJ01.js +0 -2
  299. package/dist/_rollupPluginBabelHelpers-DuRQdJ01.js.map +0 -1
  300. package/dist/_rollupPluginBabelHelpers-tRAa4O0f.js +0 -2
  301. package/dist/_rollupPluginBabelHelpers-tRAa4O0f.js.map +0 -1
  302. package/dist/index-B0FncPxO.js +0 -2
  303. package/dist/index-B0FncPxO.js.map +0 -1
  304. package/dist/index-BEm-xkm-.js +0 -2
  305. package/dist/index-BEm-xkm-.js.map +0 -1
  306. package/dist/index-BHwtxG27.js +0 -2
  307. package/dist/index-BHwtxG27.js.map +0 -1
  308. package/dist/index-BTcmIG47.js +0 -2
  309. package/dist/index-BTcmIG47.js.map +0 -1
  310. package/dist/index-BbIMmTvo.js +0 -2
  311. package/dist/index-BbIMmTvo.js.map +0 -1
  312. package/dist/index-CNkHt1r7.js +0 -2
  313. package/dist/index-CNkHt1r7.js.map +0 -1
  314. package/dist/index-D0XuyFm7.js +0 -2
  315. package/dist/index-D0XuyFm7.js.map +0 -1
  316. package/dist/index-DBspcqWq.js +0 -2
  317. package/dist/index-DBspcqWq.js.map +0 -1
  318. package/dist/index-DVBO4gYE.js +0 -2
  319. package/dist/index-DVBO4gYE.js.map +0 -1
  320. package/dist/tslib.es6-BBkx4Se1.js +0 -2
  321. package/dist/tslib.es6-BF6ZLEXa.js +0 -2
  322. package/dist/tslib.es6-BOZCDgb8.js +0 -2
  323. package/dist/tslib.es6-CNVK7Xcu.js +0 -2
  324. package/dist/tslib.es6-CNVK7Xcu.js.map +0 -1
  325. package/dist/tslib.es6-Cjl5tesf.js +0 -2
  326. package/dist/tslib.es6-Cjl5tesf.js.map +0 -1
  327. package/dist/tslib.es6-DEH7Dkgy.js +0 -2
  328. package/dist/tslib.es6-DEH7Dkgy.js.map +0 -1
  329. package/dist/tslib.es6-DTeJ7dWi.js +0 -2
  330. package/dist/tslib.es6-DTeJ7dWi.js.map +0 -1
  331. package/dist/tslib.es6-U9-f6pA7.js +0 -2
  332. package/dist/tslib.es6-U9-f6pA7.js.map +0 -1
  333. package/dist/tslib.es6-cb69JjeS.js +0 -2
  334. package/dist/tslib.es6-cb69JjeS.js.map +0 -1
  335. package/src/content/Anchor/Anchor.styles.tsx +0 -5
  336. package/src/content/Anchor/index.tsx +0 -3
  337. package/src/content/Content/Content.styles.tsx +0 -9
  338. package/src/content/Content/Content.tsx +0 -13
  339. package/src/content/Content/index.tsx +0 -3
  340. package/src/content/Content.tsx +0 -179
  341. package/src/content/Subtitle/Subtitle.styles.ts +0 -8
  342. package/src/content/Subtitle/Subtitle.tsx +0 -12
  343. package/src/content/Subtitle/index.tsx +0 -3
  344. package/src/layouts/Layout.styles.tsx +0 -155
  345. package/src/layouts/Layout.tsx +0 -119
  346. package/src/ui/Loader/Loader.styles.tsx +0 -54
  347. package/src/ui/Loader/Loader.tsx +0 -26
  348. package/src/ui/index.ts +0 -1
  349. package/src/writer/Icon/index.tsx +0 -355
  350. package/src/writer/Table/TableV2.styles.tsx +0 -117
  351. package/src/writer/Table/TableV2.tsx +0 -83
  352. /package/src/{ui → kit}/TODO.md +0 -0
@@ -0,0 +1,184 @@
1
+ import {css} from "@linaria/core"
2
+
3
+ export const TabsPrimaryHost = css`
4
+ @layer defaults {
5
+ [part="nav"] {
6
+ align-items: center;
7
+ display: flex;
8
+ height: 42px;
9
+ background-color: var(--xyd-underlinenav-bgcolor);
10
+ border-bottom: 1px solid var(--xyd-underlinenav-border-color);
11
+ z-index: 99;
12
+
13
+ &[data-kind="secondary"] {
14
+ border-bottom: none;
15
+ border-radius: 8px;
16
+ padding: 4px;
17
+ background-color: var(--xyd-tabs-bgcolor);
18
+ }
19
+ }
20
+
21
+ [part="list"] {
22
+ display: flex;
23
+ gap: 10px;
24
+ height: 100%;
25
+ color: var(--xyd-underlinenav-list-color);
26
+ list-style: none;
27
+ padding: 0;
28
+ white-space: nowrap;
29
+
30
+ [data-kind="secondary"] & {
31
+ gap: 4px;
32
+ }
33
+ }
34
+
35
+ [part="item"] {
36
+ height: 100%;
37
+ position: relative;
38
+
39
+ a, button {
40
+ height: 100%;
41
+ }
42
+
43
+ &[data-state="active"] {
44
+ a {
45
+ border-bottom-color: var(--xyd-underlinenav-color--active);
46
+ }
47
+
48
+ [data-kind="secondary"] & a {
49
+ border-bottom-color: transparent;
50
+ color: var(--xyd-tabs-color--active);
51
+ background-color: var(--xyd-tabs-bgcolor--active);
52
+ box-shadow: 0 1px 2px 0 var(--xyd-tabs-shadow-color--active);
53
+ }
54
+ }
55
+
56
+ &[data-state="inactive"] {
57
+ a, button {
58
+ color: unset;
59
+ }
60
+ }
61
+ }
62
+
63
+ [part="link"] {
64
+ display: inline-flex;
65
+ border-bottom: 3px solid transparent;
66
+ text-decoration: none;
67
+ height: 100%;
68
+ padding: 10px;
69
+ transition: all 0.3s ease;
70
+ cursor: pointer;
71
+
72
+ &:hover {
73
+ color: var(--xyd-underlinenav-color--active);
74
+ }
75
+
76
+ [data-kind="secondary"] & {
77
+ border-bottom: none;
78
+ padding: 5px 16px;
79
+ border-radius: 0.375rem;
80
+ color: var(--xyd-tabs-color);
81
+
82
+ &:hover {
83
+ color: var(--xyd-tabs-color--active);
84
+ }
85
+ }
86
+ }
87
+
88
+ [part="content"] {
89
+ position: relative;
90
+ overflow: hidden;
91
+
92
+ [data-kind="secondary"] & {
93
+ margin-top: 16px;
94
+ }
95
+ }
96
+ }
97
+ `;
98
+
99
+ export const TabsPrimaryContent = css`
100
+ @layer defaults {
101
+ position: relative;
102
+ width: 100%;
103
+
104
+ &[data-state="inactive"] {
105
+ display: none;
106
+ }
107
+
108
+ /* Only apply animations when parent has data-slide="true" */
109
+ [data-slide="true"] & {
110
+ /* Forward direction (left to right) */
111
+
112
+ &[data-direction="forward"][data-state="active"] {
113
+ position: relative;
114
+ animation: fadeInFromRight 0.4s cubic-bezier(0.16, 1, 0.3, 1);
115
+ }
116
+
117
+ &[data-direction="forward"][data-state="inactive"] {
118
+ position: absolute;
119
+ animation: fadeOutToLeft 0.4s cubic-bezier(0.16, 1, 0.3, 1);
120
+ }
121
+
122
+ /* Backward direction (right to left) */
123
+
124
+ &[data-direction="backward"][data-state="active"] {
125
+ position: relative;
126
+ animation: fadeInFromLeft 0.4s cubic-bezier(0.16, 1, 0.3, 1);
127
+ }
128
+
129
+ &[data-direction="backward"][data-state="inactive"] {
130
+ position: absolute;
131
+ animation: fadeOutToRight 0.4s cubic-bezier(0.16, 1, 0.3, 1);
132
+ }
133
+ }
134
+
135
+ @keyframes fadeInFromRight {
136
+ from {
137
+ opacity: 0;
138
+ transform: translateX(75px);
139
+ }
140
+ to {
141
+ opacity: 1;
142
+ transform: translateX(0);
143
+ }
144
+ }
145
+
146
+ @keyframes fadeOutToLeft {
147
+ from {
148
+ opacity: 1;
149
+ transform: translateX(0);
150
+ }
151
+ to {
152
+ opacity: 0;
153
+ transform: translateX(-75px);
154
+ }
155
+ }
156
+
157
+ @keyframes fadeInFromLeft {
158
+ from {
159
+ opacity: 0;
160
+ transform: translateX(-75px);
161
+ }
162
+ to {
163
+ opacity: 1;
164
+ transform: translateX(0);
165
+ }
166
+ }
167
+
168
+ @keyframes fadeOutToRight {
169
+ from {
170
+ opacity: 1;
171
+ transform: translateX(0);
172
+ }
173
+ to {
174
+ opacity: 0;
175
+ transform: translateX(75px);
176
+ }
177
+ }
178
+
179
+ [part="child"] {
180
+ padding: 20px;
181
+ transition: all 0.3s ease;
182
+ }
183
+ }
184
+ `;
@@ -0,0 +1,209 @@
1
+ import React, {useState, useRef, useEffect, createContext, useContext} from "react"
2
+ import {Tabs as RadixTabs} from "radix-ui"; // TODO: remove and use separation
3
+
4
+ import * as cn from "./TabsPrimary.styles"
5
+ import {useValueChange} from "./useValueChange";
6
+ import { Tabs } from "./Tabs";
7
+
8
+ /**
9
+ * Context for managing the navigation direction in the TabsPrimary component
10
+ */
11
+ const TabsPrimaryContext = createContext<{
12
+ direction: 'forward' | 'backward'
13
+ }>({
14
+ direction: 'forward'
15
+ });
16
+
17
+ /**
18
+ * Props for the TabsPrimary component
19
+ */
20
+ export interface TabsPrimaryProps {
21
+ /** Child elements to be rendered within the navigation */
22
+ children: React.ReactNode
23
+
24
+ /** The currently selected tab value */
25
+ value?: string
26
+
27
+ /** Callback function triggered when a tab is selected */
28
+ onChange?: (value: string) => void
29
+
30
+ /** Whether to enable sliding animation between tabs */
31
+ slide?: boolean
32
+
33
+ /** Additional CSS class name for the component */
34
+ className?: string
35
+ }
36
+
37
+ /**
38
+ * A navigation component that displays tabs with an underline indicator
39
+ *
40
+ * @category Component
41
+ */
42
+ export function TabsPrimary({
43
+ children,
44
+ value: controlledValue,
45
+ onChange,
46
+ slide = true,
47
+ className,
48
+ }: TabsPrimaryProps) {
49
+ const childrenArray = React.Children.toArray(children);
50
+ const navItems = childrenArray.filter(
51
+ child => {
52
+ return React.isValidElement(child) &&
53
+ (child.type === TabsPrimary.Item ||
54
+ (typeof child.type === 'function' && 'displayName' in child.type && child.type.displayName === "UnderlineNav.Item"))
55
+ }
56
+ );
57
+ const otherChildren = childrenArray.filter(
58
+ child => !React.isValidElement(child) ||
59
+ (child.type !== TabsPrimary.Item &&
60
+ !(typeof child.type === 'function' && 'displayName' in child.type && child.type.displayName === "UnderlineNav.Item"))
61
+ );
62
+
63
+ const [direction, value, handleValueChange] = useValueChange(
64
+ controlledValue,
65
+ onChange,
66
+ navItems
67
+ );
68
+
69
+ return (
70
+ <TabsPrimaryContext.Provider value={{direction}}>
71
+ <RadixTabs.Root value={value} onValueChange={handleValueChange}>
72
+ <xyd-tabs
73
+ className={`${cn.TabsPrimaryHost} ${className || ""}`}
74
+ >
75
+ <nav part="nav">
76
+ <RadixTabs.List asChild>
77
+ <ul part="list">
78
+ {navItems}
79
+ </ul>
80
+ </RadixTabs.List>
81
+ </nav>
82
+ <div
83
+ part="content"
84
+ data-slide={slide ? "true" : "false"}
85
+ >
86
+ {otherChildren}
87
+ </div>
88
+ </xyd-tabs>
89
+ </RadixTabs.Root>
90
+ </TabsPrimaryContext.Provider>
91
+ );
92
+ }
93
+
94
+ /**
95
+ * Props for the TabsPrimary.Item component
96
+ */
97
+ export interface TabsPrimaryItemProps {
98
+ /** Child elements to be rendered within the navigation item */
99
+ children: React.ReactNode
100
+
101
+ /** Unique identifier for the navigation item */
102
+ value: string
103
+
104
+ /** URL for the navigation item link */
105
+ href?: string
106
+
107
+ /** Custom component to render as the link element */
108
+ as?: React.ElementType
109
+
110
+ /** Whether this item should be active by default */
111
+ defaultActive?: boolean
112
+ }
113
+
114
+ /**
115
+ * Individual navigation item component
116
+ *
117
+ * @category Component
118
+ */
119
+ TabsPrimary.Item = function TabsPrimaryItem({children, value, href, as, defaultActive}: TabsPrimaryItemProps) {
120
+ const Link = as || _Link;
121
+ const controlByItem = typeof defaultActive === "boolean"
122
+ const [defaultActiveState, setDefaultActiveState] = useState(controlByItem ? (defaultActive ? "active" : "inactive") : undefined)
123
+
124
+ let activeProps = controlByItem && defaultActiveState != undefined
125
+ ? {"data-state": defaultActiveState}
126
+ : undefined
127
+
128
+ useEffect(() => {
129
+ if (!controlByItem) {
130
+ return
131
+ }
132
+
133
+ setDefaultActiveState(undefined)
134
+ }, [])
135
+
136
+ return (
137
+ <RadixTabs.Trigger value={value} asChild {...activeProps}>
138
+ <li part="item">
139
+ <Link part="link" href={href}>
140
+ {children}
141
+ </Link>
142
+ </li>
143
+ </RadixTabs.Trigger>
144
+ );
145
+ }
146
+
147
+ /**
148
+ * Props for the TabsPrimary.Content component
149
+ */
150
+ export interface TabsPrimaryContentProps {
151
+ /** Child elements to be rendered within the content area */
152
+ children: React.ReactNode
153
+
154
+ /** Unique identifier for the content section */
155
+ value: string
156
+
157
+ /** Whether this content should be active by default */
158
+ defaultActive?: boolean
159
+ }
160
+
161
+ /**
162
+ * Content section component for the TabsPrimary
163
+ *
164
+ * @category Component
165
+ */
166
+ TabsPrimary.Content = function TabsPrimaryContent({
167
+ children,
168
+ value,
169
+ defaultActive
170
+ }: TabsPrimaryContentProps) {
171
+ const {direction} = useContext(TabsPrimaryContext);
172
+
173
+ const controlByItem = typeof defaultActive === "boolean"
174
+ const [defaultActiveState, setDefaultActiveState] = useState(controlByItem ? (defaultActive ? "active" : "inactive") : undefined)
175
+
176
+ let activeProps = controlByItem && defaultActiveState != undefined
177
+ ? {"data-state": defaultActiveState}
178
+ : undefined
179
+
180
+ useEffect(() => {
181
+ if (!controlByItem) {
182
+ return
183
+ }
184
+
185
+ setDefaultActiveState(undefined)
186
+ }, [])
187
+
188
+ return (
189
+ <RadixTabs.Content
190
+ value={value}
191
+ forceMount={true}
192
+ asChild
193
+ {...activeProps}
194
+ >
195
+ <div
196
+ className={cn.TabsPrimaryContent}
197
+ data-direction={direction}
198
+ >
199
+ <div part="child">
200
+ {children}
201
+ </div>
202
+ </div>
203
+ </RadixTabs.Content>
204
+ );
205
+ }
206
+
207
+ function _Link({...props}) {
208
+ return <a {...props}>{props.children}</a>
209
+ }
@@ -0,0 +1,77 @@
1
+ import { css } from "@linaria/core";
2
+
3
+ export const TabsSecondaryHost = css`
4
+ @layer defaults {
5
+ display: block;
6
+ position: relative;
7
+ max-width: 100%;
8
+
9
+ [part="buttons"] {
10
+ display: flex;
11
+ align-items: center;
12
+ }
13
+
14
+ [part="arrow"] {
15
+ padding: 8px;
16
+ background-color: var(--xyd-tabs-arrow-bgcolor);
17
+ box-shadow: 0 1px 2px 0 var(--xyd-tabs-shadow-color--active);
18
+ }
19
+
20
+ [part="arrow-icon"] {
21
+ width: 16px;
22
+ height: 16px;
23
+ }
24
+
25
+ [part="scroller"] {
26
+ overflow-x: auto;
27
+ flex-grow: 1;
28
+ }
29
+
30
+ [part="scroller-container"] {
31
+ display: inline-flex;
32
+ gap: 4px;
33
+
34
+ border-radius: 8px;
35
+ background-color: var(--xyd-tabs-bgcolor);
36
+
37
+ padding: 4px;
38
+ margin-left: 4px;
39
+ }
40
+
41
+ [part="content"] {
42
+ margin-top: 16px;
43
+ }
44
+ }
45
+ `;
46
+
47
+ export const TabsSecondaryItem = css`
48
+ @layer defaults {
49
+ &[data-state="inactive"] {
50
+ a, button {
51
+ color: unset;
52
+ }
53
+ }
54
+
55
+ display: inline-block;
56
+ padding: 5px 16px;
57
+
58
+ border-radius: 0.375rem;
59
+ white-space: nowrap;
60
+
61
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
62
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
63
+ transition-duration: 300ms;
64
+
65
+ color: var(--xyd-tabs-color);
66
+
67
+ &:hover {
68
+ color: var(--xyd-tabs-color--active);
69
+ }
70
+
71
+ &[data-state="active"] {
72
+ color: var(--xyd-tabs-color--active);
73
+ background-color: var(--xyd-tabs-bgcolor--active);
74
+ box-shadow: 0 1px 2px 0 var(--xyd-tabs-shadow-color--active);
75
+ }
76
+ }
77
+ `
@@ -0,0 +1,171 @@
1
+ import React, { useState, useRef, useEffect } from 'react'
2
+ import { Tabs as RadixTabs } from "radix-ui"; // TODO: remove and use separation
3
+ import { ChevronLeft, ChevronRight } from "lucide-react"
4
+
5
+ import * as cn from "./TabsSecondary.styles";
6
+ import { useValueChange } from './useValueChange';
7
+ import { TabsPrimary } from './TabsPrimary';
8
+
9
+ export interface TabsSecondaryProps {
10
+ /** The currently selected tab value */
11
+ value?: string
12
+ children: React.ReactNode;
13
+ className?: string;
14
+ onChange?: (value: string) => void
15
+ }
16
+
17
+ export function TabsSecondary({ children, value: controlledValue, onChange, className }: TabsSecondaryProps) {
18
+ const [showLeftArrow, setShowLeftArrow] = useState(false)
19
+ const [showRightArrow, setShowRightArrow] = useState(false)
20
+ const scrollContainerRef = useRef<HTMLDivElement>(null)
21
+
22
+ const childrenArray = React.Children.toArray(children);
23
+ const navItems = childrenArray.filter(
24
+ child => {
25
+ return React.isValidElement(child) &&
26
+ (child.type === TabsSecondary.Item ||
27
+ (typeof child.type === 'function' && 'displayName' in child.type && child.type.displayName === "UnderlineNav.Item"))
28
+ }
29
+ );
30
+ const otherChildren = childrenArray.filter(
31
+ child => !React.isValidElement(child) ||
32
+ (child.type !== TabsSecondary.Item &&
33
+ !(typeof child.type === 'function' && 'displayName' in child.type && child.type.displayName === "UnderlineNav.Item"))
34
+ );
35
+
36
+ const [_, value, handleValueChange] = useValueChange(
37
+ controlledValue,
38
+ onChange,
39
+ navItems
40
+ );
41
+
42
+ const handleScroll = () => {
43
+ if (scrollContainerRef.current) {
44
+ const { scrollLeft, scrollWidth, clientWidth } = scrollContainerRef.current
45
+ setShowLeftArrow(scrollLeft > 0)
46
+ setShowRightArrow(scrollLeft < scrollWidth - clientWidth)
47
+ }
48
+ }
49
+
50
+ useEffect(() => {
51
+ handleScroll()
52
+ window.addEventListener('resize', handleScroll)
53
+ return () => window.removeEventListener('resize', handleScroll)
54
+ }, [])
55
+
56
+ const scroll = (direction: 'left' | 'right') => {
57
+ if (scrollContainerRef.current) {
58
+ const scrollAmount = direction === 'left' ? -200 : 200
59
+ scrollContainerRef.current.scrollBy({ left: scrollAmount, behavior: 'smooth' })
60
+ }
61
+ }
62
+
63
+ return (
64
+ <RadixTabs.Root asChild value={value} onValueChange={handleValueChange}>
65
+ <xyd-tabs
66
+ data-kind="secondary"
67
+ className={`${cn.TabsSecondaryHost} ${className || ""}`}
68
+ >
69
+ <div part="buttons">
70
+ {showLeftArrow && (
71
+ <button
72
+ onClick={() => scroll('left')}
73
+ part="arrow"
74
+ >
75
+ <ChevronLeft part="arrow-icon" />
76
+ </button>
77
+ )}
78
+
79
+ <div
80
+ ref={scrollContainerRef}
81
+ onScroll={handleScroll}
82
+ part="scroller"
83
+ >
84
+ <div
85
+ part="scroller-container"
86
+ >
87
+ <RadixTabs.List>
88
+ {navItems}
89
+ </RadixTabs.List>
90
+ </div>
91
+ </div>
92
+
93
+ {showRightArrow && (
94
+ <button
95
+ onClick={() => scroll('right')}
96
+ part="arrow"
97
+ >
98
+ <ChevronRight part="arrow-icon" />
99
+ </button>
100
+ )}
101
+ </div>
102
+
103
+ <div part="content">
104
+ {otherChildren}
105
+ </div>
106
+ </xyd-tabs>
107
+ </RadixTabs.Root>
108
+ )
109
+ }
110
+
111
+ /**
112
+ * Props for the TabsPrimary.Item component
113
+ */
114
+ export interface TabsSecondaryItemProps {
115
+ /** Child elements to be rendered within the navigation item */
116
+ children: React.ReactNode
117
+
118
+ /** Unique identifier for the navigation item */
119
+ value: string
120
+
121
+ /** URL for the navigation item link */
122
+ href?: string
123
+
124
+ /** Custom component to render as the link element */
125
+ as?: React.ElementType
126
+
127
+ /** Whether this item should be active by default */
128
+ defaultActive?: boolean
129
+ }
130
+
131
+ TabsSecondary.Item = function TabsPrimaryItem({ children, value, href, as, defaultActive }: TabsSecondaryItemProps) {
132
+ const Link = as || _Link;
133
+ const controlByItem = typeof defaultActive === "boolean"
134
+ const [defaultActiveState, setDefaultActiveState] = useState(controlByItem ? (defaultActive ? "active" : "inactive") : undefined)
135
+
136
+ let activeProps = controlByItem && defaultActiveState != undefined
137
+ ? { "data-state": defaultActiveState }
138
+ : undefined
139
+
140
+ useEffect(() => {
141
+ if (!controlByItem) {
142
+ return
143
+ }
144
+
145
+ setDefaultActiveState(undefined)
146
+ }, [])
147
+
148
+ return (
149
+ <RadixTabs.Trigger className={cn.TabsSecondaryItem} value={value} asChild {...activeProps}>
150
+ <div>
151
+ <Link href={href}>
152
+ {children}
153
+ </Link>
154
+ </div>
155
+ </RadixTabs.Trigger>
156
+ );
157
+ }
158
+
159
+ function _Link({ ...props }) {
160
+ return <a {...props}>{props.children}</a>
161
+ }
162
+
163
+
164
+ TabsSecondary.Content = function TabsContent({ children, value }) {
165
+ return <RadixTabs.Content asChild value={value}>
166
+ <div>
167
+ {children}
168
+ </div>
169
+ </RadixTabs.Content>
170
+ }
171
+