@xyd-js/components 0.1.0-xyd.5 → 0.1.0-xyd.52

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 (530) 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 +378 -0
  6. package/LICENSE +21 -0
  7. package/TODO.md +1 -0
  8. package/content.ts +0 -2
  9. package/dist/CTABanner-4mVtgtg1.js +2 -0
  10. package/dist/CTABanner-4mVtgtg1.js.map +1 -0
  11. package/dist/CTABanner-8awHx3iq.js +2 -0
  12. package/dist/CTABanner-8awHx3iq.js.map +1 -0
  13. package/dist/CTABanner-BW4YN4-n.js +2 -0
  14. package/dist/CTABanner-BW4YN4-n.js.map +1 -0
  15. package/dist/CTABanner-C-6auNiO.js +2 -0
  16. package/dist/CTABanner-C-6auNiO.js.map +1 -0
  17. package/dist/CTABanner-CUwluXcM.js +2 -0
  18. package/dist/CTABanner-CUwluXcM.js.map +1 -0
  19. package/dist/CTABanner-CV8B6kGd.js +2 -0
  20. package/dist/CTABanner-CV8B6kGd.js.map +1 -0
  21. package/dist/CTABanner-CYq6zqzK.js +2 -0
  22. package/dist/CTABanner-CYq6zqzK.js.map +1 -0
  23. package/dist/CTABanner-CmOPCiBU.js +2 -0
  24. package/dist/CTABanner-CmOPCiBU.js.map +1 -0
  25. package/dist/CTABanner-DW0jn0tm.js +2 -0
  26. package/dist/CTABanner-DW0jn0tm.js.map +1 -0
  27. package/dist/CTABanner-D_vBSERH.js +2 -0
  28. package/dist/CTABanner-D_vBSERH.js.map +1 -0
  29. package/dist/CTABanner-RYtzotAc.js +2 -0
  30. package/dist/CTABanner-RYtzotAc.js.map +1 -0
  31. package/dist/CTABanner-d0dU_3UV.js +2 -0
  32. package/dist/CTABanner-d0dU_3UV.js.map +1 -0
  33. package/dist/CTABanner-f-kYjXeS.js +2 -0
  34. package/dist/CTABanner-f-kYjXeS.js.map +1 -0
  35. package/dist/CTABanner-hl7edywo.js +2 -0
  36. package/dist/CTABanner-hl7edywo.js.map +1 -0
  37. package/dist/CTABanner-kg01fEFO.js +2 -0
  38. package/dist/CTABanner-kg01fEFO.js.map +1 -0
  39. package/dist/CTABanner-yKuWX36F.js +2 -0
  40. package/dist/CTABanner-yKuWX36F.js.map +1 -0
  41. package/dist/CTABanner-zHhZFxmC.js +2 -0
  42. package/dist/CTABanner-zHhZFxmC.js.map +1 -0
  43. package/dist/CodeSample-60eygvma.js +2 -0
  44. package/dist/CodeSample-60eygvma.js.map +1 -0
  45. package/dist/CodeSample-BOwTybu7.js +2 -0
  46. package/dist/CodeSample-BOwTybu7.js.map +1 -0
  47. package/dist/CodeSample-BabNvAXq.js +2 -0
  48. package/dist/CodeSample-BabNvAXq.js.map +1 -0
  49. package/dist/CodeSample-BeKAECzE.js +2 -0
  50. package/dist/CodeSample-BeKAECzE.js.map +1 -0
  51. package/dist/CodeSample-Bmj6O9cO.js +2 -0
  52. package/dist/CodeSample-Bmj6O9cO.js.map +1 -0
  53. package/dist/CodeSample-By1h0pjl.js +2 -0
  54. package/dist/CodeSample-By1h0pjl.js.map +1 -0
  55. package/dist/CodeSample-C1A9mpxa.js +2 -0
  56. package/dist/CodeSample-C1A9mpxa.js.map +1 -0
  57. package/dist/CodeSample-C8UmShST.js +2 -0
  58. package/dist/CodeSample-C8UmShST.js.map +1 -0
  59. package/dist/CodeSample-CirMT2VK.js +2 -0
  60. package/dist/CodeSample-CirMT2VK.js.map +1 -0
  61. package/dist/CodeSample-D1cQIpZA.js +2 -0
  62. package/dist/CodeSample-D1cQIpZA.js.map +1 -0
  63. package/dist/CodeSample-D8oms9v4.js +2 -0
  64. package/dist/CodeSample-D8oms9v4.js.map +1 -0
  65. package/dist/CodeSample-DAYrHZ42.js +2 -0
  66. package/dist/CodeSample-DAYrHZ42.js.map +1 -0
  67. package/dist/CodeSample-DV4gehAY.js +2 -0
  68. package/dist/CodeSample-DV4gehAY.js.map +1 -0
  69. package/dist/CodeSample-DkfSxkpp.js +2 -0
  70. package/dist/CodeSample-DkfSxkpp.js.map +1 -0
  71. package/dist/CodeSample-VlH3bfzC.js +2 -0
  72. package/dist/CodeSample-VlH3bfzC.js.map +1 -0
  73. package/dist/CodeSample-dW2vKCd1.js +2 -0
  74. package/dist/CodeSample-dW2vKCd1.js.map +1 -0
  75. package/dist/CodeSample-vnPcdu-x.js +2 -0
  76. package/dist/CodeSample-vnPcdu-x.js.map +1 -0
  77. package/dist/HomeView-B9Ve1Kuh.js +2 -0
  78. package/dist/HomeView-B9Ve1Kuh.js.map +1 -0
  79. package/dist/HomeView-CH5Po1Ed.js +2 -0
  80. package/dist/HomeView-CH5Po1Ed.js.map +1 -0
  81. package/dist/HomeView-CL0kAYj1.js +2 -0
  82. package/dist/HomeView-CL0kAYj1.js.map +1 -0
  83. package/dist/HomeView-CMvkJdJa.js +2 -0
  84. package/dist/HomeView-CMvkJdJa.js.map +1 -0
  85. package/dist/HomeView-CQK9q_tO.js +2 -0
  86. package/dist/HomeView-CQK9q_tO.js.map +1 -0
  87. package/dist/HomeView-CTDZ19B3.js +2 -0
  88. package/dist/HomeView-CTDZ19B3.js.map +1 -0
  89. package/dist/HomeView-CU-l-tLg.js +2 -0
  90. package/dist/HomeView-CU-l-tLg.js.map +1 -0
  91. package/dist/HomeView-CWNvXmSg.js +2 -0
  92. package/dist/HomeView-CWNvXmSg.js.map +1 -0
  93. package/dist/HomeView-CdyaQH15.js +2 -0
  94. package/dist/HomeView-CdyaQH15.js.map +1 -0
  95. package/dist/HomeView-CzlycqNf.js +2 -0
  96. package/dist/HomeView-CzlycqNf.js.map +1 -0
  97. package/dist/HomeView-D0NBPUfo.js +2 -0
  98. package/dist/HomeView-D0NBPUfo.js.map +1 -0
  99. package/dist/HomeView-D8G2HjcZ.js +2 -0
  100. package/dist/HomeView-D8G2HjcZ.js.map +1 -0
  101. package/dist/HomeView-DGW10Fml.js +2 -0
  102. package/dist/HomeView-DGW10Fml.js.map +1 -0
  103. package/dist/HomeView-DgQI-VH2.js +2 -0
  104. package/dist/HomeView-DgQI-VH2.js.map +1 -0
  105. package/dist/HomeView-FTlkTnsT.js +2 -0
  106. package/dist/HomeView-FTlkTnsT.js.map +1 -0
  107. package/dist/HomeView-hSpU5kot.js +2 -0
  108. package/dist/HomeView-hSpU5kot.js.map +1 -0
  109. package/dist/HomeView-vZozpVGs.js +2 -0
  110. package/dist/HomeView-vZozpVGs.js.map +1 -0
  111. package/dist/Icon-B2OPWMtK.js +2 -0
  112. package/dist/Icon-B2OPWMtK.js.map +1 -0
  113. package/dist/Icon-BRAhu_Eb.js +2 -0
  114. package/dist/Icon-BRAhu_Eb.js.map +1 -0
  115. package/dist/Icon-C822nO1R.js +2 -0
  116. package/dist/Icon-C822nO1R.js.map +1 -0
  117. package/dist/Icon-CEm2iFxX.js +2 -0
  118. package/dist/Icon-CEm2iFxX.js.map +1 -0
  119. package/dist/Icon-CINO4Gs-.js +2 -0
  120. package/dist/Icon-CINO4Gs-.js.map +1 -0
  121. package/dist/Icon-CNvRfLaE.js +2 -0
  122. package/dist/Icon-CNvRfLaE.js.map +1 -0
  123. package/dist/Icon-CWAF56rs.js +2 -0
  124. package/dist/Icon-CWAF56rs.js.map +1 -0
  125. package/dist/Icon-CzVtM54u.js +2 -0
  126. package/dist/Icon-CzVtM54u.js.map +1 -0
  127. package/dist/Icon-D-fnSCsP.js +2 -0
  128. package/dist/Icon-D-fnSCsP.js.map +1 -0
  129. package/dist/Icon-D4gOtCv9.js +2 -0
  130. package/dist/Icon-D4gOtCv9.js.map +1 -0
  131. package/dist/Icon-DP1qesF5.js +2 -0
  132. package/dist/Icon-DP1qesF5.js.map +1 -0
  133. package/dist/Icon-DQdRqDU9.js +2 -0
  134. package/dist/Icon-DQdRqDU9.js.map +1 -0
  135. package/dist/Icon-Dogc3o95.js +2 -0
  136. package/dist/Icon-Dogc3o95.js.map +1 -0
  137. package/dist/Icon-FVBVv2mV.js +2 -0
  138. package/dist/Icon-FVBVv2mV.js.map +1 -0
  139. package/dist/Icon-KY6ULovn.js +2 -0
  140. package/dist/Icon-KY6ULovn.js.map +1 -0
  141. package/dist/Icon-XgHKz5VO.js +2 -0
  142. package/dist/Icon-XgHKz5VO.js.map +1 -0
  143. package/dist/Icon-sBVn0l7I.js +2 -0
  144. package/dist/Icon-sBVn0l7I.js.map +1 -0
  145. package/dist/Text-B-0yh8la.js +2 -0
  146. package/dist/Text-B-0yh8la.js.map +1 -0
  147. package/dist/Text-BCFz4JU-.js +2 -0
  148. package/dist/Text-BCFz4JU-.js.map +1 -0
  149. package/dist/Text-BNiddUr4.js +2 -0
  150. package/dist/Text-BNiddUr4.js.map +1 -0
  151. package/dist/Text-Bf364_Q8.js +2 -0
  152. package/dist/Text-Bf364_Q8.js.map +1 -0
  153. package/dist/Text-Bxe0mzUL.js +2 -0
  154. package/dist/Text-Bxe0mzUL.js.map +1 -0
  155. package/dist/Text-CfVL9URz.js +2 -0
  156. package/dist/Text-CfVL9URz.js.map +1 -0
  157. package/dist/Text-ChiAdn4X.js +2 -0
  158. package/dist/Text-ChiAdn4X.js.map +1 -0
  159. package/dist/Text-D5uguhzM.js +2 -0
  160. package/dist/Text-D5uguhzM.js.map +1 -0
  161. package/dist/Text-D9DhNy4J.js +2 -0
  162. package/dist/Text-D9DhNy4J.js.map +1 -0
  163. package/dist/Text-DFWZt4lj.js +2 -0
  164. package/dist/Text-DFWZt4lj.js.map +1 -0
  165. package/dist/Text-DGY59P42.js +2 -0
  166. package/dist/Text-DGY59P42.js.map +1 -0
  167. package/dist/Text-DfXk3ZuK.js +2 -0
  168. package/dist/Text-DfXk3ZuK.js.map +1 -0
  169. package/dist/Text-DwHGYbrw.js +2 -0
  170. package/dist/Text-DwHGYbrw.js.map +1 -0
  171. package/dist/Text-DxqdnsZ5.js +2 -0
  172. package/dist/Text-DxqdnsZ5.js.map +1 -0
  173. package/dist/Text-K_2YR6jw.js +2 -0
  174. package/dist/Text-K_2YR6jw.js.map +1 -0
  175. package/dist/Text-XHfscYPw.js +2 -0
  176. package/dist/Text-XHfscYPw.js.map +1 -0
  177. package/dist/Text-b8fT0OYO.js +2 -0
  178. package/dist/Text-b8fT0OYO.js.map +1 -0
  179. package/dist/Update-48mkPPHi.js +2 -0
  180. package/dist/Update-48mkPPHi.js.map +1 -0
  181. package/dist/Update-6IvrCbUn.js +2 -0
  182. package/dist/Update-6IvrCbUn.js.map +1 -0
  183. package/dist/Update-B31SkKLO.js +2 -0
  184. package/dist/Update-B31SkKLO.js.map +1 -0
  185. package/dist/Update-BDC6jF5Q.js +2 -0
  186. package/dist/Update-BDC6jF5Q.js.map +1 -0
  187. package/dist/Update-BdhhXj2D.js +2 -0
  188. package/dist/Update-BdhhXj2D.js.map +1 -0
  189. package/dist/Update-BzuP6PUF.js +2 -0
  190. package/dist/Update-BzuP6PUF.js.map +1 -0
  191. package/dist/Update-C-w0Og8S.js +2 -0
  192. package/dist/Update-C-w0Og8S.js.map +1 -0
  193. package/dist/Update-CRZyUhwE.js +2 -0
  194. package/dist/Update-CRZyUhwE.js.map +1 -0
  195. package/dist/Update-Cmw6WVrs.js +2 -0
  196. package/dist/Update-Cmw6WVrs.js.map +1 -0
  197. package/dist/Update-D5pUmk9V.js +2 -0
  198. package/dist/Update-D5pUmk9V.js.map +1 -0
  199. package/dist/Update-D7tzid9y.js +2 -0
  200. package/dist/Update-D7tzid9y.js.map +1 -0
  201. package/dist/Update-DDQewhuu.js +2 -0
  202. package/dist/Update-DDQewhuu.js.map +1 -0
  203. package/dist/Update-DPeHa_01.js +2 -0
  204. package/dist/Update-DPeHa_01.js.map +1 -0
  205. package/dist/Update-DUFcLP3-.js +2 -0
  206. package/dist/Update-DUFcLP3-.js.map +1 -0
  207. package/dist/Update-DbvzJGdB.js +2 -0
  208. package/dist/Update-DbvzJGdB.js.map +1 -0
  209. package/dist/Update-SFXhorqS.js +2 -0
  210. package/dist/Update-SFXhorqS.js.map +1 -0
  211. package/dist/Update-b8FT7xsG.js +2 -0
  212. package/dist/Update-b8FT7xsG.js.map +1 -0
  213. package/dist/VideoGuide-B0uoxh7k.js +2 -0
  214. package/dist/VideoGuide-B0uoxh7k.js.map +1 -0
  215. package/dist/VideoGuide-BELHPOmy.js +2 -0
  216. package/dist/VideoGuide-BELHPOmy.js.map +1 -0
  217. package/dist/VideoGuide-BPpz9He-.js +2 -0
  218. package/dist/VideoGuide-BPpz9He-.js.map +1 -0
  219. package/dist/VideoGuide-CMURpSE8.js +2 -0
  220. package/dist/VideoGuide-CMURpSE8.js.map +1 -0
  221. package/dist/VideoGuide-CXGDgkuc.js +2 -0
  222. package/dist/VideoGuide-CXGDgkuc.js.map +1 -0
  223. package/dist/VideoGuide-CXL3G2yS.js +2 -0
  224. package/dist/VideoGuide-CXL3G2yS.js.map +1 -0
  225. package/dist/VideoGuide-Cdi9zWS2.js +2 -0
  226. package/dist/VideoGuide-Cdi9zWS2.js.map +1 -0
  227. package/dist/VideoGuide-CrW6tvqB.js +2 -0
  228. package/dist/VideoGuide-CrW6tvqB.js.map +1 -0
  229. package/dist/VideoGuide-D6TRphry.js +2 -0
  230. package/dist/VideoGuide-D6TRphry.js.map +1 -0
  231. package/dist/VideoGuide-DkMriANN.js +2 -0
  232. package/dist/VideoGuide-DkMriANN.js.map +1 -0
  233. package/dist/VideoGuide-Ds1vQrb7.js +2 -0
  234. package/dist/VideoGuide-Ds1vQrb7.js.map +1 -0
  235. package/dist/VideoGuide-Dyf3clMb.js +2 -0
  236. package/dist/VideoGuide-Dyf3clMb.js.map +1 -0
  237. package/dist/VideoGuide-QouYMQx_.js +2 -0
  238. package/dist/VideoGuide-QouYMQx_.js.map +1 -0
  239. package/dist/VideoGuide-ZBarZs4D.js +2 -0
  240. package/dist/VideoGuide-ZBarZs4D.js.map +1 -0
  241. package/dist/VideoGuide-oYwuE6Lg.js +2 -0
  242. package/dist/VideoGuide-oYwuE6Lg.js.map +1 -0
  243. package/dist/VideoGuide-qcVqW6Su.js +2 -0
  244. package/dist/VideoGuide-qcVqW6Su.js.map +1 -0
  245. package/dist/VideoGuide-yyBprKvP.js +2 -0
  246. package/dist/VideoGuide-yyBprKvP.js.map +1 -0
  247. package/dist/_rollupPluginBabelHelpers-B1yJb5Rh.js +4 -0
  248. package/dist/_rollupPluginBabelHelpers-B1yJb5Rh.js.map +1 -0
  249. package/dist/_rollupPluginBabelHelpers-BaNafudn.js +4 -0
  250. package/dist/_rollupPluginBabelHelpers-BaNafudn.js.map +1 -0
  251. package/dist/_rollupPluginBabelHelpers-BuF1bLAd.js +4 -0
  252. package/dist/_rollupPluginBabelHelpers-BuF1bLAd.js.map +1 -0
  253. package/dist/_rollupPluginBabelHelpers-C10TYBta.js +4 -0
  254. package/dist/_rollupPluginBabelHelpers-C10TYBta.js.map +1 -0
  255. package/dist/_rollupPluginBabelHelpers-CV-SOB7x.js +4 -0
  256. package/dist/_rollupPluginBabelHelpers-CV-SOB7x.js.map +1 -0
  257. package/dist/_rollupPluginBabelHelpers-CVesZFRP.js +4 -0
  258. package/dist/_rollupPluginBabelHelpers-CVesZFRP.js.map +1 -0
  259. package/dist/_rollupPluginBabelHelpers-Ch3Y817m.js +4 -0
  260. package/dist/_rollupPluginBabelHelpers-Ch3Y817m.js.map +1 -0
  261. package/dist/_rollupPluginBabelHelpers-CxxbOh5W.js +4 -0
  262. package/dist/_rollupPluginBabelHelpers-CxxbOh5W.js.map +1 -0
  263. package/dist/_rollupPluginBabelHelpers-D19Us8SI.js +4 -0
  264. package/dist/_rollupPluginBabelHelpers-D19Us8SI.js.map +1 -0
  265. package/dist/_rollupPluginBabelHelpers-D2-m_SFt.js +4 -0
  266. package/dist/_rollupPluginBabelHelpers-D2-m_SFt.js.map +1 -0
  267. package/dist/_rollupPluginBabelHelpers-D5TiGB2z.js +4 -0
  268. package/dist/_rollupPluginBabelHelpers-D5TiGB2z.js.map +1 -0
  269. package/dist/_rollupPluginBabelHelpers-D6C3DhAR.js +4 -0
  270. package/dist/_rollupPluginBabelHelpers-D6C3DhAR.js.map +1 -0
  271. package/dist/_rollupPluginBabelHelpers-IYA2a-lX.js +4 -0
  272. package/dist/_rollupPluginBabelHelpers-IYA2a-lX.js.map +1 -0
  273. package/dist/_rollupPluginBabelHelpers-IZwOU41g.js +4 -0
  274. package/dist/_rollupPluginBabelHelpers-IZwOU41g.js.map +1 -0
  275. package/dist/_rollupPluginBabelHelpers-PCuXrt2F.js +4 -0
  276. package/dist/_rollupPluginBabelHelpers-PCuXrt2F.js.map +1 -0
  277. package/dist/_rollupPluginBabelHelpers-k3SPIMH4.js +4 -0
  278. package/dist/_rollupPluginBabelHelpers-k3SPIMH4.js.map +1 -0
  279. package/dist/_rollupPluginBabelHelpers-mdhlT6e0.js +4 -0
  280. package/dist/_rollupPluginBabelHelpers-mdhlT6e0.js.map +1 -0
  281. package/dist/brand.d.ts +9 -9
  282. package/dist/brand.js +1 -1
  283. package/dist/brand.js.map +1 -1
  284. package/dist/coder/themes/cosmo-light.js.map +1 -1
  285. package/dist/coder.d.ts +33 -9
  286. package/dist/coder.js +1 -1
  287. package/dist/coder.js.map +1 -1
  288. package/dist/content.d.ts +260 -171
  289. package/dist/content.js +1 -1
  290. package/dist/content.js.map +1 -1
  291. package/dist/index.css +267 -137
  292. package/dist/layouts.d.ts +23 -14
  293. package/dist/layouts.js +1 -1
  294. package/dist/layouts.js.map +1 -1
  295. package/dist/pages.js +1 -1
  296. package/dist/pages.js.map +1 -1
  297. package/dist/system.d.ts +10 -0
  298. package/dist/system.js +2 -0
  299. package/dist/system.js.map +1 -0
  300. package/dist/tslib.es6-2HddmpXk.js +2 -0
  301. package/dist/{tslib.es6-BS8I3nP0.js.map → tslib.es6-2HddmpXk.js.map} +1 -1
  302. package/dist/tslib.es6-B3WQO7bC.js +2 -0
  303. package/dist/{tslib.es6-DNz-U5oh.js.map → tslib.es6-B3WQO7bC.js.map} +1 -1
  304. package/dist/tslib.es6-B4LqmUlh.js +2 -0
  305. package/dist/{tslib.es6-BJOaQ_lJ.js.map → tslib.es6-B4LqmUlh.js.map} +1 -1
  306. package/dist/tslib.es6-BJtAe2Ef.js +2 -0
  307. package/dist/tslib.es6-BJtAe2Ef.js.map +1 -0
  308. package/dist/tslib.es6-BUCTXb7p.js +2 -0
  309. package/dist/tslib.es6-BUCTXb7p.js.map +1 -0
  310. package/dist/tslib.es6-BVagjPgu.js +2 -0
  311. package/dist/tslib.es6-BVagjPgu.js.map +1 -0
  312. package/dist/tslib.es6-Baxakhew.js +2 -0
  313. package/dist/tslib.es6-Baxakhew.js.map +1 -0
  314. package/dist/tslib.es6-BeaYjpg4.js +2 -0
  315. package/dist/tslib.es6-BeaYjpg4.js.map +1 -0
  316. package/dist/tslib.es6-C5x7jiZr.js +2 -0
  317. package/dist/tslib.es6-C5x7jiZr.js.map +1 -0
  318. package/dist/tslib.es6-CGuo9hNf.js +2 -0
  319. package/dist/tslib.es6-CGuo9hNf.js.map +1 -0
  320. package/dist/tslib.es6-CaUFBY2d.js +2 -0
  321. package/dist/tslib.es6-CaUFBY2d.js.map +1 -0
  322. package/dist/tslib.es6-CiOfWANY.js +2 -0
  323. package/dist/tslib.es6-CiOfWANY.js.map +1 -0
  324. package/dist/tslib.es6-D6Dmrhuy.js +2 -0
  325. package/dist/tslib.es6-D6Dmrhuy.js.map +1 -0
  326. package/dist/tslib.es6-DS8w8jUy.js +2 -0
  327. package/dist/tslib.es6-DS8w8jUy.js.map +1 -0
  328. package/dist/tslib.es6-DhpaRs87.js +2 -0
  329. package/dist/tslib.es6-DhpaRs87.js.map +1 -0
  330. package/dist/tslib.es6-Y3-sJK9A.js +2 -0
  331. package/dist/tslib.es6-Y3-sJK9A.js.map +1 -0
  332. package/dist/tslib.es6-iVzSobQR.js +2 -0
  333. package/dist/tslib.es6-iVzSobQR.js.map +1 -0
  334. package/dist/views.js +1 -1
  335. package/dist/writer.d.ts +427 -53
  336. package/dist/writer.js +1 -1
  337. package/dist/writer.js.map +1 -1
  338. package/docs/.nojekyll +1 -0
  339. package/docs/assets/hierarchy.js +1 -0
  340. package/docs/assets/highlight.css +22 -0
  341. package/docs/assets/icons.js +18 -0
  342. package/docs/assets/icons.svg +1 -0
  343. package/docs/assets/main.js +60 -0
  344. package/docs/assets/navigation.js +1 -0
  345. package/docs/assets/search.js +1 -0
  346. package/docs/assets/style.css +1640 -0
  347. package/docs/functions/GuideCard.html +6 -0
  348. package/docs/hierarchy.html +1 -0
  349. package/docs/index.html +2 -0
  350. package/docs/interfaces/GuideCardProps.html +18 -0
  351. package/docs/modules.html +1 -0
  352. package/index.ts +0 -1
  353. package/package.json +16 -20
  354. package/project.json +677 -0
  355. package/rollup.config.js +32 -3
  356. package/src/brand/Button/Button.styles.tsx +28 -0
  357. package/src/brand/Button/Button.tsx +3 -35
  358. package/src/brand/CTABanner/CTABanner.styles.tsx +80 -0
  359. package/src/brand/CTABanner/CTABanner.tsx +34 -112
  360. package/src/brand/Footer/Footer.styles.tsx +18 -0
  361. package/src/brand/Footer/Footer.tsx +4 -24
  362. package/src/brand/TODO.md +1 -0
  363. package/src/coder/Code/Code.styles.tsx +134 -35
  364. package/src/coder/Code/Code.tsx +131 -43
  365. package/src/coder/Code/CodeLoader.tsx +10 -0
  366. package/src/coder/Code/annotations.tsx +28 -8
  367. package/src/coder/Code/highlight.ts +38 -0
  368. package/src/coder/Code/index.ts +6 -2
  369. package/src/coder/CodeCopy/{CodeCopy.style.tsx → CodeCopy.styles.tsx} +6 -6
  370. package/src/coder/CodeCopy/CodeCopy.tsx +6 -6
  371. package/src/coder/CodeSample/CodeSample.tsx +87 -19
  372. package/src/coder/CodeTabs/CodeTabs.styles.tsx +98 -66
  373. package/src/coder/CodeTabs/CodeTabs.tsx +78 -47
  374. package/src/coder/CodeTheme/CodeTheme.tsx +89 -48
  375. package/src/coder/CodeTheme/index.ts +0 -1
  376. package/src/coder/CoderProvider.tsx +26 -0
  377. package/src/coder/hooks/highlight.ts +182 -0
  378. package/src/coder/index.ts +11 -7
  379. package/src/content/ContentDecoator.styles.tsx +113 -0
  380. package/src/content/ContentDecorator.tsx +17 -0
  381. package/src/content/GridDecorator.styles.tsx +67 -0
  382. package/src/content/GridDecorator.tsx +21 -0
  383. package/src/content/ReactContent.tsx +575 -0
  384. package/src/content/index.ts +10 -2
  385. package/src/icons/index.ts +0 -0
  386. package/src/kit/Loader/Loader.styles.tsx +53 -0
  387. package/src/kit/Loader/Loader.tsx +22 -0
  388. package/src/kit/TODO.md +2 -0
  389. package/src/kit/index.ts +1 -0
  390. package/src/layouts/LayoutPrimary/LayoutPrimary.styles.tsx +305 -0
  391. package/src/layouts/LayoutPrimary/LayoutPrimary.tsx +237 -0
  392. package/src/layouts/LayoutPrimary/index.ts +3 -0
  393. package/src/layouts/index.ts +2 -3
  394. package/src/pages/HomePage/HomePage.styles.tsx +16 -0
  395. package/src/pages/HomePage/HomePage.tsx +7 -21
  396. package/src/pages/TODO.md +1 -0
  397. package/src/system/SearchButton/SearchButton.styles.tsx +86 -0
  398. package/src/system/SearchButton/SearchButton.tsx +116 -0
  399. package/src/system/SearchButton/index.ts +1 -0
  400. package/src/system/index.ts +1 -0
  401. package/src/utils/useStyle.ts +19 -0
  402. package/src/views/HomeView/HomeView.styles.tsx +37 -0
  403. package/src/views/HomeView/HomeView.tsx +5 -45
  404. package/src/views/TODO.md +1 -0
  405. package/src/writer/Anchor/Anchor.styles.tsx +11 -0
  406. package/src/writer/Anchor/Anchor.tsx +51 -0
  407. package/src/writer/Anchor/index.tsx +1 -0
  408. package/src/writer/Badge/Badge.styles.tsx +39 -28
  409. package/src/writer/Badge/Badge.tsx +37 -20
  410. package/src/writer/Banner/Banner.styles.tsx +91 -0
  411. package/src/writer/Banner/Banner.tsx +70 -0
  412. package/src/writer/Banner/index.ts +1 -0
  413. package/src/writer/Blockquote/Blockquote.styles.tsx +4 -4
  414. package/src/writer/Blockquote/Blockquote.tsx +6 -3
  415. package/src/writer/Breadcrumbs/Breadcrumbs.styles.ts +22 -21
  416. package/src/writer/Breadcrumbs/Breadcrumbs.tsx +19 -13
  417. package/src/writer/Button/Button.styles.tsx +137 -0
  418. package/src/writer/Button/Button.tsx +75 -0
  419. package/src/writer/Button/index.ts +2 -0
  420. package/src/writer/Callout/Callout.styles.tsx +29 -40
  421. package/src/writer/Callout/Callout.tsx +31 -16
  422. package/src/writer/Card/Card.styles.tsx +47 -0
  423. package/src/writer/Card/Card.tsx +69 -0
  424. package/src/writer/Card/index.ts +1 -0
  425. package/src/writer/Code/Code.styles.tsx +10 -11
  426. package/src/writer/Code/Code.tsx +7 -4
  427. package/src/writer/ColorSchemeButton/ColorSchemeButton.tsx +172 -0
  428. package/src/writer/ColorSchemeButton/index.ts +1 -0
  429. package/src/writer/Details/Details.styles.tsx +85 -68
  430. package/src/writer/Details/Details.tsx +83 -46
  431. package/src/writer/Example/index.tsx +5 -0
  432. package/src/writer/GuideCard/GuideCard.styles.tsx +108 -107
  433. package/src/writer/GuideCard/GuideCard.tsx +72 -37
  434. package/src/writer/Heading/Heading.styles.tsx +69 -49
  435. package/src/writer/Heading/Heading.tsx +92 -22
  436. package/src/writer/Hr/Hr.styles.tsx +5 -5
  437. package/src/writer/Hr/Hr.tsx +3 -6
  438. package/src/writer/Icon/Icon.tsx +48 -0
  439. package/src/writer/Icon/index.ts +1 -0
  440. package/src/writer/Image/Image.styles.tsx +9 -0
  441. package/src/writer/Image/Image.tsx +19 -0
  442. package/src/writer/Image/index.ts +1 -0
  443. package/src/writer/List/List.styles.tsx +47 -0
  444. package/src/writer/List/List.tsx +29 -0
  445. package/src/writer/List/index.ts +4 -0
  446. package/src/writer/NavLinks/NavLinks.styles.ts +23 -23
  447. package/src/writer/NavLinks/NavLinks.tsx +66 -19
  448. package/src/writer/Pre/Pre.styles.tsx +5 -5
  449. package/src/writer/Pre/Pre.tsx +4 -3
  450. package/src/writer/Steps/Steps.styles.tsx +14 -12
  451. package/src/writer/Steps/Steps.tsx +39 -10
  452. package/src/writer/Table/Table.styles.tsx +62 -30
  453. package/src/writer/Table/Table.tsx +121 -11
  454. package/src/writer/Table/index.ts +0 -7
  455. package/src/writer/Tabs/Tabs.styles.tsx +63 -70
  456. package/src/writer/Tabs/Tabs.tsx +31 -29
  457. package/src/writer/Text/Text.styles.tsx +66 -0
  458. package/src/writer/Text/Text.tsx +79 -0
  459. package/src/writer/Text/index.ts +3 -0
  460. package/src/writer/TocCard/TocCard.module.css +44 -0
  461. package/src/writer/TocCard/TocCard.tsx +42 -0
  462. package/src/writer/TocCard/index.ts +3 -0
  463. package/src/writer/UnderlineNav/Tabs.tsx +51 -0
  464. package/src/writer/UnderlineNav/TabsPrimary.styles.tsx +184 -0
  465. package/src/writer/UnderlineNav/TabsPrimary.tsx +209 -0
  466. package/src/writer/UnderlineNav/TabsSecondary.styles.tsx +77 -0
  467. package/src/writer/UnderlineNav/TabsSecondary.tsx +171 -0
  468. package/src/writer/UnderlineNav/UnderlineNav.styles.tsx +181 -45
  469. package/src/writer/UnderlineNav/UnderlineNav.tsx +258 -23
  470. package/src/writer/UnderlineNav/index.ts +2 -1
  471. package/src/writer/UnderlineNav/useValueChange.ts +60 -0
  472. package/src/writer/Update/Update.styles.tsx +33 -0
  473. package/src/writer/Update/Update.tsx +37 -0
  474. package/src/writer/Update/index.ts +1 -0
  475. package/src/writer/VideoGuide/VideoGuide.module.css +105 -0
  476. package/src/writer/VideoGuide/VideoGuide.tsx +75 -0
  477. package/src/writer/VideoGuide/index.ts +1 -0
  478. package/src/writer/index.ts +23 -1
  479. package/tsconfig.json +11 -6
  480. package/types.d.ts +50 -0
  481. package/writer.ts +1 -1
  482. package/dist/CTABanner-B-metiuR.js +0 -2
  483. package/dist/CTABanner-B-metiuR.js.map +0 -1
  484. package/dist/CTABanner-BytLRAOg.js +0 -2
  485. package/dist/CTABanner-BytLRAOg.js.map +0 -1
  486. package/dist/CTABanner-hcWUnRIm.js +0 -2
  487. package/dist/CTABanner-hcWUnRIm.js.map +0 -1
  488. package/dist/CodeSample-Bkdm9TLb.js +0 -2
  489. package/dist/CodeSample-Bkdm9TLb.js.map +0 -1
  490. package/dist/CodeSample-Bt6WJOYx.js +0 -2
  491. package/dist/CodeSample-Bt6WJOYx.js.map +0 -1
  492. package/dist/CodeSample-D-bGz40b.js +0 -2
  493. package/dist/CodeSample-D-bGz40b.js.map +0 -1
  494. package/dist/HomeView-C70Vzl0K.js +0 -2
  495. package/dist/HomeView-C70Vzl0K.js.map +0 -1
  496. package/dist/HomeView-DA0hRPl2.js +0 -2
  497. package/dist/HomeView-DA0hRPl2.js.map +0 -1
  498. package/dist/HomeView-sbl_99l1.js +0 -2
  499. package/dist/HomeView-sbl_99l1.js.map +0 -1
  500. package/dist/UnderlineNav-3vpnAIF7.js +0 -2
  501. package/dist/UnderlineNav-3vpnAIF7.js.map +0 -1
  502. package/dist/UnderlineNav-CnSXtQ0o.js +0 -2
  503. package/dist/UnderlineNav-CnSXtQ0o.js.map +0 -1
  504. package/dist/UnderlineNav-hAt4ieuk.js +0 -2
  505. package/dist/UnderlineNav-hAt4ieuk.js.map +0 -1
  506. package/dist/_rollupPluginBabelHelpers-CdarGYFF.js +0 -2
  507. package/dist/_rollupPluginBabelHelpers-CdarGYFF.js.map +0 -1
  508. package/dist/_rollupPluginBabelHelpers-DNCsaSlj.js +0 -2
  509. package/dist/_rollupPluginBabelHelpers-DNCsaSlj.js.map +0 -1
  510. package/dist/_rollupPluginBabelHelpers-Dyp77Dty.js +0 -2
  511. package/dist/_rollupPluginBabelHelpers-Dyp77Dty.js.map +0 -1
  512. package/dist/index-Bj8cSv3b.js +0 -2
  513. package/dist/index-Bj8cSv3b.js.map +0 -1
  514. package/dist/index-ByyyJDhj.js +0 -2
  515. package/dist/index-ByyyJDhj.js.map +0 -1
  516. package/dist/index-DcT-QJgO.js +0 -2
  517. package/dist/index-DcT-QJgO.js.map +0 -1
  518. package/dist/tslib.es6-BJOaQ_lJ.js +0 -2
  519. package/dist/tslib.es6-BS8I3nP0.js +0 -2
  520. package/dist/tslib.es6-DNz-U5oh.js +0 -2
  521. package/src/content/Anchor/Anchor.tsx +0 -63
  522. package/src/content/Anchor/index.tsx +0 -3
  523. package/src/content/Content/Content.tsx +0 -21
  524. package/src/content/Content/index.tsx +0 -3
  525. package/src/content/Content.tsx +0 -171
  526. package/src/content/Subtitle/Subtitle.tsx +0 -21
  527. package/src/content/Subtitle/index.tsx +0 -3
  528. package/src/layouts/Layout.styles.tsx +0 -151
  529. package/src/layouts/Layout.tsx +0 -121
  530. package/src/writer/Icon/index.tsx +0 -342
@@ -0,0 +1,66 @@
1
+ import { css } from "@linaria/core";
2
+
3
+ export const TextHost = css`
4
+ @layer defaults {
5
+ display: inline-block;
6
+ margin: 0;
7
+
8
+ &[data-size="xsmall"] {
9
+ font-size: var(--xyd-font-size-xsmall);
10
+ line-height: var(--xyd-line-height-xsmall);
11
+ }
12
+ &[data-size="small"] {
13
+ font-size: var(--xyd-font-size-small);
14
+ line-height: var(--xyd-line-height-small);
15
+ }
16
+ &[data-size="medium"] {
17
+ font-size: var(--xyd-font-size-medium);
18
+ line-height: var(--xyd-line-height-medium);
19
+ }
20
+ &[data-size="large"] {
21
+ font-size: var(--xyd-font-size-large);
22
+ line-height: var(--xyd-line-height-large);
23
+ }
24
+ &[data-size="xlarge"] {
25
+ font-size: var(--xyd-font-size-xlarge);
26
+ line-height: var(--xyd-line-height-xlarge);
27
+ }
28
+ &[data-size="xxlarge"] {
29
+ font-size: var(--xyd-font-size-xxlarge);
30
+ line-height: var(--xyd-line-height-xxlarge);
31
+ }
32
+
33
+ &[data-kind="default"] {
34
+ color: var(--xyd-text-color--default);
35
+ }
36
+ &[data-kind="ghost"] {
37
+ color: var(--xyd-text-color--ghost);
38
+ }
39
+ &[data-kind="success"] {
40
+ color: var(--xyd-text-color--success);
41
+ }
42
+ &[data-kind="warn"] {
43
+ color: var(--xyd-text-color--warn);
44
+ }
45
+ &[data-kind="error"] {
46
+ color: var(--xyd-text-color--error);
47
+ }
48
+ &[data-kind="primary"] {
49
+ color: var(--xyd-text-color--primary);
50
+ }
51
+ &[data-kind="secondary"] {
52
+ color: var(--xyd-text-color--secondary);
53
+ }
54
+
55
+ &[data-weight="normal"] {
56
+ font-weight: var(--xyd-font-weight-normal);
57
+ }
58
+ &[data-weight="bold"] {
59
+ font-weight: var(--xyd-font-weight-medium);
60
+ }
61
+ &[data-weight="extra-bold"] {
62
+ font-weight: var(--xyd-font-weight-semibold);
63
+ }
64
+ }
65
+ `;
66
+
@@ -0,0 +1,79 @@
1
+ import React from "react"
2
+
3
+ import * as cn from "./Text.styles";
4
+
5
+ /**
6
+ * Available font sizes for the Text component
7
+ */
8
+ export type TextFontSizes = "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
9
+
10
+ /**
11
+ * Available text styles/kinds for the Text component
12
+ */
13
+ export type TextKindTypes = "default" | "ghost" | "success" | "warn" | "error" | "primary" | "secondary";
14
+
15
+ /**
16
+ * Available font weights for the Text component
17
+ */
18
+ export type TextFontWeights = "normal" | "bold" | "extra-bold";
19
+
20
+ /**
21
+ * Props for the Text component
22
+ */
23
+ export interface TextProps {
24
+ /** Font size of the text */
25
+ size?: TextFontSizes
26
+
27
+ /** Visual style/kind of the text */
28
+ kind?: TextKindTypes
29
+
30
+ /** Font weight of the text */
31
+ weight?: TextFontWeights
32
+
33
+ /** Content to be rendered inside the text component */
34
+ children?: React.ReactNode
35
+
36
+ /** Additional CSS class name */
37
+ className?: string
38
+
39
+ /** HTML id attribute */
40
+ id?: string
41
+
42
+ /** Click event handler */
43
+ onClick?: () => void
44
+
45
+ /** HTML tag to render the text as */
46
+ as?: "span" | "p"
47
+ }
48
+
49
+ /**
50
+ * A flexible text component that supports different sizes, styles, and weights.
51
+ *
52
+ * @category Component
53
+ */
54
+ export function Text({
55
+ size = "medium",
56
+ kind = "default",
57
+ weight = "normal",
58
+ children,
59
+ className,
60
+ id,
61
+ onClick,
62
+ as = "p"
63
+ }: TextProps) {
64
+ const Tag = as || "p";
65
+
66
+ return (
67
+ <Tag
68
+ className={`${cn.TextHost} ${className || ''}`}
69
+ data-size={size}
70
+ data-kind={kind}
71
+ data-weight={weight}
72
+ onClick={onClick}
73
+ id={id}
74
+ >
75
+ {children}
76
+ </Tag>
77
+ )
78
+ }
79
+
@@ -0,0 +1,3 @@
1
+ export {
2
+ Text
3
+ } from "./Text";
@@ -0,0 +1,44 @@
1
+ @layer defaults {
2
+ .TocCardHost {
3
+ display: block;
4
+ max-width: 250px;
5
+
6
+ [part="container"] {
7
+ }
8
+
9
+ [part="description"] {
10
+ color: var(--xyd-toccard-color);
11
+ letter-spacing: 0;
12
+ }
13
+
14
+ [part="link"] {
15
+ display: block;
16
+ border: 1px solid var(--xyd-toccard-border-color);
17
+ border-radius: 6px;
18
+ padding: 8px 16px 12px;
19
+ text-decoration: none;
20
+
21
+ &:hover {
22
+ border-color: var(--xyd-toccard-border-color--active);
23
+ }
24
+ }
25
+
26
+ [part="title-container"] {
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: space-between;
30
+ }
31
+
32
+ [part="title"] {
33
+ color: var(--xyd-toccard-title-color);
34
+ margin-bottom: 2px;
35
+ }
36
+
37
+ [part="link-icon"] {
38
+ width: 1em;
39
+ height: 1em;
40
+ object-fit: contain;
41
+ color: var(--xyd-toccard-icon-color);
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,42 @@
1
+ import React from "react";
2
+
3
+ import cn from "./TocCard.module.css";
4
+ import { Icon } from "writer";
5
+
6
+ interface TocCardProps {
7
+ title: string;
8
+ description: string;
9
+ href: string;
10
+ className?: string;
11
+ icon?: string;
12
+ as?: React.ElementType;
13
+ }
14
+
15
+ export function TocCard({ title, description, href, className, icon, as }: TocCardProps) {
16
+ const Link = as || $Link;
17
+
18
+ return <xyd-toccard
19
+ className={`${cn.TocCardHost} ${className || ""}`}
20
+ >
21
+ <div part="container">
22
+ <Link
23
+ part="link"
24
+ href={href}
25
+ target="_blank"
26
+ rel="noreferrer"
27
+ >
28
+ <div part="title-container">
29
+ <div part="title">{title}</div>
30
+ {icon && <Icon name={icon} size={16} />}
31
+ </div>
32
+ <div part="description">
33
+ {description}
34
+ </div>
35
+ </Link>
36
+ </div>
37
+ </xyd-toccard>
38
+ }
39
+
40
+ function $Link({ children, href, ...props }: React.ComponentProps<'a'>) {
41
+ return <a href={href} {...props}>{children}</a>
42
+ }
@@ -0,0 +1,3 @@
1
+ export {
2
+ TocCard
3
+ } from "./TocCard";
@@ -0,0 +1,51 @@
1
+ import React, { createContext, useContext } from "react"
2
+
3
+ import { TabsPrimary, TabsPrimaryProps } from "./TabsPrimary"
4
+ import { TabsSecondary, TabsSecondaryProps } from "./TabsSecondary";
5
+
6
+ interface TabsPropsCommon {
7
+ kind?: 'secondary' | null
8
+ }
9
+ // TODO: in the future unify the TabsPrimary and TabsSecondary components?
10
+ type TabsProps<T> = T & TabsPropsCommon
11
+
12
+ const TabsContext = createContext<TabsPropsCommon>({
13
+ kind: null
14
+ })
15
+
16
+ export function Tabs(props: TabsProps<TabsSecondaryProps | TabsPrimaryProps>) {
17
+ if (props.kind === 'secondary') {
18
+ return (
19
+ <TabsContext value={{ kind: 'secondary' }}>
20
+ <TabsSecondary {...props} />
21
+ </TabsContext>
22
+ )
23
+ }
24
+
25
+ return (
26
+ <TabsContext value={{}}>
27
+ <TabsPrimary {...props} />
28
+ </TabsContext>
29
+ )
30
+ }
31
+
32
+
33
+ Tabs.Item = function TabsItem(props: any) {
34
+ const { kind } = useContext(TabsContext)
35
+
36
+ if (kind === 'secondary') {
37
+ return <TabsSecondary.Item {...props} />
38
+ }
39
+
40
+ return <TabsPrimary.Item {...props} />
41
+ }
42
+
43
+ Tabs.Content = function TabsContent(props: any) {
44
+ const { kind } = useContext(TabsContext)
45
+
46
+ if (kind === 'secondary') {
47
+ return <TabsSecondary.Content {...props} />
48
+ }
49
+
50
+ return <TabsPrimary.Content {...props} />
51
+ }
@@ -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
+ }