@xyd-js/components 0.1.0-build.168

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 (314) 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 +1369 -0
  6. package/LICENSE +21 -0
  7. package/README.md +3 -0
  8. package/TODO.md +1 -0
  9. package/coder.ts +1 -0
  10. package/content.ts +1 -0
  11. package/dist/Button-BLA2ghHZ.js +2 -0
  12. package/dist/Button-BLA2ghHZ.js.map +1 -0
  13. package/dist/Button-BTJ2hIal.js +2 -0
  14. package/dist/Button-BTJ2hIal.js.map +1 -0
  15. package/dist/Button-r4BCrEjy.js +2 -0
  16. package/dist/Button-r4BCrEjy.js.map +1 -0
  17. package/dist/CodeSample-BZ5tvyWY.js +2 -0
  18. package/dist/CodeSample-BZ5tvyWY.js.map +1 -0
  19. package/dist/CodeSample-BqXDbWdi.js +2 -0
  20. package/dist/CodeSample-BqXDbWdi.js.map +1 -0
  21. package/dist/CodeSample-Cqv86IdN.js +2 -0
  22. package/dist/CodeSample-Cqv86IdN.js.map +1 -0
  23. package/dist/Icon--77MqplU.js +2 -0
  24. package/dist/Icon--77MqplU.js.map +1 -0
  25. package/dist/Icon-DbNmvK_Q.js +2 -0
  26. package/dist/Icon-DbNmvK_Q.js.map +1 -0
  27. package/dist/Icon-uVIU1LW6.js +2 -0
  28. package/dist/Icon-uVIU1LW6.js.map +1 -0
  29. package/dist/PageFirstSlide-BDNmCTiJ.js +2 -0
  30. package/dist/PageFirstSlide-BDNmCTiJ.js.map +1 -0
  31. package/dist/PageFirstSlide-BpZ42bEU.js +2 -0
  32. package/dist/PageFirstSlide-BpZ42bEU.js.map +1 -0
  33. package/dist/PageFirstSlide-CqxiyK57.js +2 -0
  34. package/dist/PageFirstSlide-CqxiyK57.js.map +1 -0
  35. package/dist/TabsAnalytics-B_JYpawG.js +2 -0
  36. package/dist/TabsAnalytics-B_JYpawG.js.map +1 -0
  37. package/dist/TabsAnalytics-DAOfTZgv.js +2 -0
  38. package/dist/TabsAnalytics-DAOfTZgv.js.map +1 -0
  39. package/dist/TabsAnalytics-Dhyadlbu.js +2 -0
  40. package/dist/TabsAnalytics-Dhyadlbu.js.map +1 -0
  41. package/dist/Update-53fEhmjh.js +2 -0
  42. package/dist/Update-53fEhmjh.js.map +1 -0
  43. package/dist/Update-CFi6uapq.js +2 -0
  44. package/dist/Update-CFi6uapq.js.map +1 -0
  45. package/dist/Update-CiMIOgZi.js +2 -0
  46. package/dist/Update-CiMIOgZi.js.map +1 -0
  47. package/dist/VideoGuide-C0K9fFar.js +2 -0
  48. package/dist/VideoGuide-C0K9fFar.js.map +1 -0
  49. package/dist/VideoGuide-CJYkuLst.js +2 -0
  50. package/dist/VideoGuide-CJYkuLst.js.map +1 -0
  51. package/dist/VideoGuide-DBY-EyxG.js +2 -0
  52. package/dist/VideoGuide-DBY-EyxG.js.map +1 -0
  53. package/dist/_rollupPluginBabelHelpers-CvhQFv1t.js +4 -0
  54. package/dist/_rollupPluginBabelHelpers-CvhQFv1t.js.map +1 -0
  55. package/dist/_rollupPluginBabelHelpers-DSwDY1Dm.js +4 -0
  56. package/dist/_rollupPluginBabelHelpers-DSwDY1Dm.js.map +1 -0
  57. package/dist/_rollupPluginBabelHelpers-Dc-ocx4G.js +4 -0
  58. package/dist/_rollupPluginBabelHelpers-Dc-ocx4G.js.map +1 -0
  59. package/dist/coder/themes/classic.css +57 -0
  60. package/dist/coder/themes/classic.d.ts +96 -0
  61. package/dist/coder/themes/classic.js +2 -0
  62. package/dist/coder/themes/classic.js.map +1 -0
  63. package/dist/coder/themes/cosmo.css +64 -0
  64. package/dist/coder/themes/cosmo.d.ts +96 -0
  65. package/dist/coder/themes/cosmo.js +2 -0
  66. package/dist/coder/themes/cosmo.js.map +1 -0
  67. package/dist/coder.d.ts +94 -0
  68. package/dist/coder.js +2 -0
  69. package/dist/coder.js.map +1 -0
  70. package/dist/content.d.ts +411 -0
  71. package/dist/content.js +2 -0
  72. package/dist/content.js.map +1 -0
  73. package/dist/index.css +282 -0
  74. package/dist/index.d.ts +2 -0
  75. package/dist/index.js +2 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/layouts.d.ts +33 -0
  78. package/dist/layouts.js +2 -0
  79. package/dist/layouts.js.map +1 -0
  80. package/dist/pages.d.ts +176 -0
  81. package/dist/pages.js +2 -0
  82. package/dist/pages.js.map +1 -0
  83. package/dist/system.d.ts +45 -0
  84. package/dist/system.js +2 -0
  85. package/dist/system.js.map +1 -0
  86. package/dist/useUXClick-DK3cTAMR.js +2 -0
  87. package/dist/useUXClick-DK3cTAMR.js.map +1 -0
  88. package/dist/useUXClick-DO6qBcRy.js +2 -0
  89. package/dist/useUXClick-DO6qBcRy.js.map +1 -0
  90. package/dist/useUXClick-NwpsiuK9.js +2 -0
  91. package/dist/useUXClick-NwpsiuK9.js.map +1 -0
  92. package/dist/useUXEvents-CJtgGV4R.js +2 -0
  93. package/dist/useUXEvents-CJtgGV4R.js.map +1 -0
  94. package/dist/useUXEvents-Cxgl7xb-.js +2 -0
  95. package/dist/useUXEvents-Cxgl7xb-.js.map +1 -0
  96. package/dist/useUXEvents-XqAGxoEj.js +2 -0
  97. package/dist/useUXEvents-XqAGxoEj.js.map +1 -0
  98. package/dist/useUXScrollDepth-3rk3Z95r.js +2 -0
  99. package/dist/useUXScrollDepth-3rk3Z95r.js.map +1 -0
  100. package/dist/useUXScrollDepth-BwK-XOBg.js +2 -0
  101. package/dist/useUXScrollDepth-BwK-XOBg.js.map +1 -0
  102. package/dist/useUXScrollDepth-DKre7PBz.js +2 -0
  103. package/dist/useUXScrollDepth-DKre7PBz.js.map +1 -0
  104. package/dist/uxsdk.d.ts +53 -0
  105. package/dist/uxsdk.js +2 -0
  106. package/dist/uxsdk.js.map +1 -0
  107. package/dist/views.d.ts +18 -0
  108. package/dist/views.js +2 -0
  109. package/dist/views.js.map +1 -0
  110. package/dist/writer.d.ts +580 -0
  111. package/dist/writer.js +2 -0
  112. package/dist/writer.js.map +1 -0
  113. package/docs/.nojekyll +1 -0
  114. package/docs/assets/hierarchy.js +1 -0
  115. package/docs/assets/highlight.css +22 -0
  116. package/docs/assets/icons.js +18 -0
  117. package/docs/assets/icons.svg +1 -0
  118. package/docs/assets/main.js +60 -0
  119. package/docs/assets/navigation.js +1 -0
  120. package/docs/assets/search.js +1 -0
  121. package/docs/assets/style.css +1640 -0
  122. package/docs/functions/GuideCard.html +6 -0
  123. package/docs/hierarchy.html +1 -0
  124. package/docs/index.html +2 -0
  125. package/docs/interfaces/GuideCardProps.html +18 -0
  126. package/docs/modules.html +1 -0
  127. package/index.ts +0 -0
  128. package/layouts.ts +1 -0
  129. package/output.txt +13 -0
  130. package/package.json +81 -0
  131. package/pages.ts +1 -0
  132. package/postcss.config.cjs +5 -0
  133. package/rollup.config.js +195 -0
  134. package/src/coder/Code/Code.styles.tsx +151 -0
  135. package/src/coder/Code/Code.tsx +171 -0
  136. package/src/coder/Code/CodeLoader.tsx +10 -0
  137. package/src/coder/Code/annotations.tsx +51 -0
  138. package/src/coder/Code/highlight.ts +208 -0
  139. package/src/coder/Code/index.ts +16 -0
  140. package/src/coder/CodeCopy/CodeCopy.styles.tsx +21 -0
  141. package/src/coder/CodeCopy/CodeCopy.tsx +36 -0
  142. package/src/coder/CodeCopy/index.ts +7 -0
  143. package/src/coder/CodeSample/CodeSample.tsx +118 -0
  144. package/src/coder/CodeSample/CodeSampleAnalytics.tsx +112 -0
  145. package/src/coder/CodeSample/index.ts +11 -0
  146. package/src/coder/CodeSample/withLocalStored.tsx +50 -0
  147. package/src/coder/CodeTabs/CodeTabs.styles.tsx +126 -0
  148. package/src/coder/CodeTabs/CodeTabs.tsx +128 -0
  149. package/src/coder/CodeTabs/index.ts +6 -0
  150. package/src/coder/CodeTheme/CodeTheme.tsx +126 -0
  151. package/src/coder/CodeTheme/index.ts +7 -0
  152. package/src/coder/CoderProvider.tsx +26 -0
  153. package/src/coder/README.md +1 -0
  154. package/src/coder/hooks/highlight.ts +182 -0
  155. package/src/coder/index.ts +37 -0
  156. package/src/coder/themes/classic.css +57 -0
  157. package/src/coder/themes/classic.ts +270 -0
  158. package/src/coder/themes/cosmo.css +64 -0
  159. package/src/coder/themes/cosmo.ts +264 -0
  160. package/src/content/AppearanceDecorator.styles.tsx +11 -0
  161. package/src/content/ContentDecoator.styles.tsx +180 -0
  162. package/src/content/ContentDecorator.tsx +17 -0
  163. package/src/content/GridDecorator.styles.tsx +86 -0
  164. package/src/content/GridDecorator.tsx +23 -0
  165. package/src/content/ReactContent.tsx +671 -0
  166. package/src/content/TODO.md +1 -0
  167. package/src/content/index.ts +13 -0
  168. package/src/kit/Loader/Loader.styles.tsx +53 -0
  169. package/src/kit/Loader/Loader.tsx +22 -0
  170. package/src/kit/TODO.md +2 -0
  171. package/src/kit/index.ts +1 -0
  172. package/src/layouts/LayoutPrimary/LayoutPrimary.styles.tsx +325 -0
  173. package/src/layouts/LayoutPrimary/LayoutPrimary.tsx +252 -0
  174. package/src/layouts/LayoutPrimary/index.ts +3 -0
  175. package/src/layouts/index.ts +6 -0
  176. package/src/pages/PageBlogHome/PageBlogHome.styles.tsx +67 -0
  177. package/src/pages/PageBlogHome/PageBlogHome.tsx +64 -0
  178. package/src/pages/PageBlogHome/index.ts +3 -0
  179. package/src/pages/PageBlogHome/types.ts +35 -0
  180. package/src/pages/PageBlogPost/PageBlogPost.styles.tsx +4 -0
  181. package/src/pages/PageBlogPost/PageBlogPost.tsx +9 -0
  182. package/src/pages/PageBlogPost/index.ts +3 -0
  183. package/src/pages/PageFirstSlide/PageFirstSlide.styles.tsx +134 -0
  184. package/src/pages/PageFirstSlide/PageFirstSlide.tsx +56 -0
  185. package/src/pages/PageFirstSlide/index.ts +1 -0
  186. package/src/pages/PageFirstSlide/types.ts +67 -0
  187. package/src/pages/PageHome/PageHome.styles.tsx +51 -0
  188. package/src/pages/PageHome/PageHome.tsx +62 -0
  189. package/src/pages/PageHome/index.ts +3 -0
  190. package/src/pages/PageHome/types.ts +79 -0
  191. package/src/pages/index.ts +7 -0
  192. package/src/system/Baseline/Baseline.styles.tsx +128 -0
  193. package/src/system/Baseline/Baseline.tsx +40 -0
  194. package/src/system/Baseline/bun.svg +1 -0
  195. package/src/system/Baseline/check.svg +1 -0
  196. package/src/system/Baseline/index.ts +1 -0
  197. package/src/system/Baseline/logo.svg +1 -0
  198. package/src/system/Baseline/node.svg +7 -0
  199. package/src/system/Baseline/npm.svg +5 -0
  200. package/src/system/Baseline/pnpm.svg +1 -0
  201. package/src/system/Footer/Footer.styles.tsx +213 -0
  202. package/src/system/Footer/Footer.tsx +105 -0
  203. package/src/system/Footer/index.ts +1 -0
  204. package/src/system/SearchButton/SearchButton.styles.tsx +89 -0
  205. package/src/system/SearchButton/SearchButton.tsx +118 -0
  206. package/src/system/SearchButton/index.ts +1 -0
  207. package/src/system/index.ts +3 -0
  208. package/src/utils/useStyle.ts +19 -0
  209. package/src/uxsdk/const.ts +1 -0
  210. package/src/uxsdk/index.ts +21 -0
  211. package/src/uxsdk/useUXClick.ts +21 -0
  212. package/src/uxsdk/useUXEvents.ts +105 -0
  213. package/src/uxsdk/useUXScrollDepth.ts +49 -0
  214. package/src/uxsdk/useUXUnreachableElementTracker.ts +100 -0
  215. package/src/views/HomeView/HomeView.styles.tsx +37 -0
  216. package/src/views/HomeView/HomeView.tsx +34 -0
  217. package/src/views/HomeView/index.ts +3 -0
  218. package/src/writer/Anchor/Anchor.styles.tsx +26 -0
  219. package/src/writer/Anchor/Anchor.tsx +51 -0
  220. package/src/writer/Anchor/index.tsx +1 -0
  221. package/src/writer/Badge/Badge.styles.tsx +44 -0
  222. package/src/writer/Badge/Badge.tsx +47 -0
  223. package/src/writer/Badge/index.ts +7 -0
  224. package/src/writer/Banner/Banner.styles.tsx +111 -0
  225. package/src/writer/Banner/Banner.tsx +151 -0
  226. package/src/writer/Banner/index.ts +1 -0
  227. package/src/writer/Blockquote/Blockquote.styles.tsx +20 -0
  228. package/src/writer/Blockquote/Blockquote.tsx +38 -0
  229. package/src/writer/Blockquote/index.ts +7 -0
  230. package/src/writer/BlogCard/BlogCard.styles.tsx +4 -0
  231. package/src/writer/BlogCard/BlogCard.tsx +9 -0
  232. package/src/writer/BlogCard/index.ts +3 -0
  233. package/src/writer/Breadcrumbs/Breadcrumbs.styles.ts +24 -0
  234. package/src/writer/Breadcrumbs/Breadcrumbs.tsx +57 -0
  235. package/src/writer/Breadcrumbs/index.ts +7 -0
  236. package/src/writer/Button/Button.styles.tsx +149 -0
  237. package/src/writer/Button/Button.tsx +82 -0
  238. package/src/writer/Button/index.ts +2 -0
  239. package/src/writer/Callout/Callout.styles.tsx +102 -0
  240. package/src/writer/Callout/Callout.tsx +166 -0
  241. package/src/writer/Callout/index.tsx +3 -0
  242. package/src/writer/Card/Card.styles.tsx +110 -0
  243. package/src/writer/Card/Card.tsx +94 -0
  244. package/src/writer/Card/index.ts +1 -0
  245. package/src/writer/Code/Code.styles.tsx +16 -0
  246. package/src/writer/Code/Code.tsx +16 -0
  247. package/src/writer/Code/index.ts +3 -0
  248. package/src/writer/ColorSchemeButton/ColorSchemeButton.tsx +191 -0
  249. package/src/writer/ColorSchemeButton/index.ts +1 -0
  250. package/src/writer/Details/Details.styles.tsx +101 -0
  251. package/src/writer/Details/Details.tsx +168 -0
  252. package/src/writer/Details/DetailsProps.tsx +34 -0
  253. package/src/writer/Details/index.ts +6 -0
  254. package/src/writer/GuideCard/GuideCard.styles.tsx +129 -0
  255. package/src/writer/GuideCard/GuideCard.tsx +123 -0
  256. package/src/writer/GuideCard/index.ts +1 -0
  257. package/src/writer/Heading/Heading.styles.tsx +93 -0
  258. package/src/writer/Heading/Heading.tsx +123 -0
  259. package/src/writer/Heading/index.ts +7 -0
  260. package/src/writer/Hr/Hr.styles.tsx +7 -0
  261. package/src/writer/Hr/Hr.tsx +10 -0
  262. package/src/writer/Hr/index.ts +3 -0
  263. package/src/writer/Icon/Icon.styles.tsx +15 -0
  264. package/src/writer/Icon/Icon.tsx +99 -0
  265. package/src/writer/Icon/index.ts +1 -0
  266. package/src/writer/IconSocial/IconSocial.tsx +107 -0
  267. package/src/writer/IconSocial/index.ts +1 -0
  268. package/src/writer/Image/Image.styles.tsx +9 -0
  269. package/src/writer/Image/Image.tsx +35 -0
  270. package/src/writer/Image/index.ts +1 -0
  271. package/src/writer/List/List.styles.tsx +47 -0
  272. package/src/writer/List/List.tsx +29 -0
  273. package/src/writer/List/index.ts +4 -0
  274. package/src/writer/NavLinks/NavLinks.styles.ts +32 -0
  275. package/src/writer/NavLinks/NavLinks.tsx +95 -0
  276. package/src/writer/NavLinks/index.ts +7 -0
  277. package/src/writer/Pre/Pre.styles.tsx +13 -0
  278. package/src/writer/Pre/Pre.tsx +14 -0
  279. package/src/writer/Pre/index.ts +3 -0
  280. package/src/writer/README.md +1 -0
  281. package/src/writer/Steps/Steps.styles.tsx +91 -0
  282. package/src/writer/Steps/Steps.tsx +75 -0
  283. package/src/writer/Steps/index.ts +5 -0
  284. package/src/writer/Table/Table.styles.tsx +100 -0
  285. package/src/writer/Table/Table.tsx +158 -0
  286. package/src/writer/Table/index.ts +3 -0
  287. package/src/writer/Tabs/Tabs.tsx +67 -0
  288. package/src/writer/Tabs/TabsAnalytics.tsx +25 -0
  289. package/src/writer/Tabs/TabsPrimary.styles.tsx +187 -0
  290. package/src/writer/Tabs/TabsPrimary.tsx +215 -0
  291. package/src/writer/Tabs/TabsProps.tsx +13 -0
  292. package/src/writer/Tabs/TabsSecondary.styles.tsx +78 -0
  293. package/src/writer/Tabs/TabsSecondary.tsx +176 -0
  294. package/src/writer/Tabs/index.ts +2 -0
  295. package/src/writer/Tabs/useValueChange.ts +84 -0
  296. package/src/writer/Text/Text.styles.tsx +66 -0
  297. package/src/writer/Text/Text.tsx +79 -0
  298. package/src/writer/Text/index.ts +3 -0
  299. package/src/writer/TocCard/TocCard.module.css +44 -0
  300. package/src/writer/TocCard/TocCard.tsx +42 -0
  301. package/src/writer/TocCard/index.ts +3 -0
  302. package/src/writer/Update/Update.styles.tsx +33 -0
  303. package/src/writer/Update/Update.tsx +37 -0
  304. package/src/writer/Update/index.ts +1 -0
  305. package/src/writer/VideoGuide/VideoGuide.module.css +105 -0
  306. package/src/writer/VideoGuide/VideoGuide.tsx +75 -0
  307. package/src/writer/VideoGuide/index.ts +1 -0
  308. package/src/writer/index.ts +53 -0
  309. package/system.ts +1 -0
  310. package/tsconfig.json +46 -0
  311. package/types.d.ts +52 -0
  312. package/uxsdk.ts +1 -0
  313. package/views.ts +2 -0
  314. package/writer.ts +1 -0
@@ -0,0 +1,149 @@
1
+ import { css } from "@linaria/core";
2
+
3
+ export const ButtonHost = css`
4
+ @layer defaults {
5
+ display: inline-flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ border-radius: var(--xyd-button-border-radius, 6px);
9
+ border: 1px solid transparent;
10
+ font-weight: var(--xyd-font-weight-medium);
11
+ transition: all 0.2s ease;
12
+ cursor: pointer;
13
+ user-select: none;
14
+ white-space: nowrap;
15
+ gap: 8px;
16
+
17
+ &[data-size="xs"] {
18
+ height: 24px;
19
+ padding: 0 8px;
20
+ gap: 4px;
21
+
22
+ font-size: var(--xyd-font-size-xsmall);
23
+ line-height: var(--xyd-line-height-xsmall);
24
+
25
+ p {
26
+ font-size: var(--xyd-font-size-xsmall);
27
+ line-height: var(--xyd-line-height-xsmall);
28
+ }
29
+ }
30
+
31
+ &[data-size="sm"] {
32
+ height: 28px;
33
+ padding: 0 12px;
34
+ gap: 6px;
35
+
36
+ font-size: var(--xyd-font-size-xsmall);
37
+ line-height: var(--xyd-line-height-xsmall);
38
+
39
+ p {
40
+ font-size: var(--xyd-font-size-xsmall);
41
+ line-height: var(--xyd-line-height-xsmall);
42
+ }
43
+ }
44
+
45
+ &[data-size="md"] {
46
+ height: 36px;
47
+ padding: 0 16px;
48
+ gap: 8px;
49
+
50
+ font-size: var(--xyd-font-size-small);
51
+ line-height: var(--xyd-line-height-small);
52
+
53
+ p {
54
+ font-size: var(--xyd-font-size-small);
55
+ line-height: var(--xyd-line-height-small);
56
+ }
57
+ }
58
+
59
+ &[data-size="lg"] {
60
+ height: 44px;
61
+ padding: 0 20px;
62
+ gap: 10px;
63
+
64
+ font-size: var(--xyd-font-size-medium);
65
+ line-height: var(--xyd-line-height-medium);
66
+
67
+ p {
68
+ font-size: var(--xyd-font-size-medium);
69
+ line-height: var(--xyd-line-height-medium);
70
+ }
71
+ }
72
+
73
+ &[data-kind="primary"] {
74
+ background-color: var(--xyd-button-primary-bg);
75
+ color: var(--xyd-button-primary-color);
76
+ border-color: var(--xyd-button-primary-border);
77
+
78
+ &:hover:not(:disabled):not([aria-disabled="true"]) {
79
+ background-color: var(--xyd-button-primary-bg-hover);
80
+ border-color: var(--xyd-button-primary-border-hover);
81
+ }
82
+ }
83
+
84
+ &[data-kind="secondary"] {
85
+ background-color: var(--xyd-button-secondary-bg);
86
+ color: var(--xyd-button-secondary-color);
87
+ border-color: var(--xyd-button-secondary-border);
88
+
89
+ &:hover:not(:disabled):not([aria-disabled="true"]) {
90
+ background-color: var(--xyd-button-secondary-bg-hover);
91
+ border-color: var(--xyd-button-secondary-border-hover);
92
+ }
93
+ }
94
+
95
+ &[data-kind="tertiary"] {
96
+ background-color: var(--xyd-button-tertiary-bg);
97
+ color: var(--xyd-button-tertiary-color);
98
+ border-color: var(--xyd-button-tertiary-border);
99
+
100
+ &:hover:not(:disabled):not([aria-disabled="true"]) {
101
+ background-color: var(--xyd-button-tertiary-bg-hover);
102
+ border-color: var(--xyd-button-tertiary-border-hover);
103
+ }
104
+ }
105
+
106
+ &[data-theme="ghost"] {
107
+ background-color: unset;
108
+ border: unset;
109
+ padding: 0;
110
+
111
+ &:hover {
112
+ background-color: unset;
113
+ border: unset;
114
+
115
+ svg {
116
+ color: var(--dark60)
117
+ }
118
+ }
119
+
120
+ svg {
121
+ color: var(--dark48)
122
+ }
123
+ }
124
+
125
+ &:disabled,
126
+ &[aria-disabled="true"] {
127
+ opacity: 0.5;
128
+ cursor: not-allowed;
129
+ }
130
+
131
+ [part="content"] {
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ }
136
+
137
+ [part="icon"] {
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: center;
141
+ flex-shrink: 0;
142
+ }
143
+ &:not([data-theme="ghost"]) [part="icon"] svg {
144
+ width: 16px !important;
145
+ height: 16px !important;
146
+ }
147
+ }
148
+ `;
149
+
@@ -0,0 +1,82 @@
1
+ import React from "react";
2
+
3
+ import {Icon} from "../Icon/Icon"
4
+
5
+ import * as cn from "./Button.styles";
6
+
7
+ export interface ButtonProps {
8
+ children?: React.ReactNode;
9
+ kind?: "primary" | "secondary" | "tertiary" | undefined
10
+ theme?: "ghost";
11
+ size?: "xs" | "sm" | "md" | "lg";
12
+ className?: string;
13
+ onClick?: () => void;
14
+ disabled?: boolean;
15
+ icon?: React.ReactElement | string;
16
+ iconPosition?: "left" | "right";
17
+ href?: string;
18
+ }
19
+
20
+ export function Button({
21
+ children,
22
+ kind = "primary",
23
+ theme,
24
+ size = "md",
25
+ className,
26
+ onClick,
27
+ disabled = false,
28
+ icon,
29
+ iconPosition = "left",
30
+ href
31
+ }: ButtonProps) {
32
+ let Component = href ? "a" : "button"
33
+
34
+ let hrefProps = {}
35
+
36
+ if (href && !disabled) {
37
+ hrefProps = {
38
+ href,
39
+ target: outsideLink(href) ? "_blank" : undefined,
40
+ }
41
+ }
42
+
43
+ if (theme === "ghost") {
44
+ kind = undefined as any
45
+ }
46
+
47
+ return (
48
+ <Component
49
+ className={`${cn.ButtonHost} ${className || ''}`}
50
+ data-button={true}
51
+ data-kind={kind}
52
+ data-size={size}
53
+ data-theme={theme}
54
+ data-has-icon={!!icon}
55
+ data-icon-position={iconPosition}
56
+ onClick={onClick}
57
+ disabled={disabled}
58
+ aria-disabled={disabled ? "true" : undefined}
59
+ {...hrefProps}
60
+ >
61
+ {icon && iconPosition === "left" && (
62
+ <span part="icon">
63
+ {typeof icon === "string" ? <Icon name={icon} /> : icon}
64
+ </span>
65
+ )}
66
+ {
67
+ children ? <span part="content">
68
+ {children}
69
+ </span> : null
70
+ }
71
+ {icon && iconPosition === "right" && (
72
+ <span part="icon">
73
+ {typeof icon === "string" ? <Icon name={icon} /> : icon}
74
+ </span>
75
+ )}
76
+ </Component>
77
+ );
78
+ }
79
+
80
+ function outsideLink(href: string) {
81
+ return href.startsWith("http") || href.startsWith("//")
82
+ }
@@ -0,0 +1,2 @@
1
+ export { Button } from "./Button";
2
+ export type { ButtonProps } from "./Button";
@@ -0,0 +1,102 @@
1
+ import { css } from "@linaria/core";
2
+
3
+ export const CalloutHost = css`
4
+ @layer defaults {
5
+ display: inline-flex;
6
+ align-items: center;
7
+ position: relative;
8
+ width: 100%;
9
+ min-width: 275px;
10
+ padding: 8px 12px;
11
+ border-radius: 8px;
12
+ text-align: center;
13
+ border: 1px solid var(--xyd-callout-border-color);
14
+ background-color: var(--xyd-callout-bgcolor);
15
+ overflow: auto;
16
+
17
+ code {
18
+ background: var(--white);
19
+ }
20
+
21
+ /* Common callout styles */
22
+ &[data-kind] {
23
+ --callout-border-color: color-mix(in srgb, var(--callout-color) 30%, transparent);
24
+ --callout-bgcolor: color-mix(in srgb, var(--callout-color-muted) 10%, transparent);
25
+ border-color: var(--callout-border-color);
26
+ background-color: var(--callout-bgcolor);
27
+
28
+ p {
29
+ color: var(--callout-color-active);
30
+ }
31
+
32
+ a {
33
+ color: var(--text-primary);
34
+ text-decoration: underline;
35
+ text-decoration-color: var(--callout-color-active);
36
+ text-underline-offset: 4px;
37
+ text-decoration-thickness: 1px;
38
+ font-weight: var(--xyd-font-weight--semibold);
39
+
40
+ &:hover {
41
+ text-decoration-thickness: 2px;
42
+ }
43
+ }
44
+
45
+ [part="icon"] {
46
+ svg {
47
+ color: var(--callout-color-active);
48
+ fill: var(--callout-color-active);
49
+ }
50
+ }
51
+ }
52
+
53
+ &[data-kind="tip"] {
54
+ --callout-color: var(--xyd-text-color--success);
55
+ --callout-color-muted: var(--xyd-text-color--success--muted);
56
+ --callout-color-active: var(--xyd-text-color--success--active);
57
+ }
58
+
59
+ &[data-kind="check"] {
60
+ --callout-color: var(--xyd-text-color--success);
61
+ --callout-color-muted: var(--xyd-text-color--success--muted);
62
+ --callout-color-active: var(--xyd-text-color--success--active);
63
+ }
64
+
65
+ &[data-kind="warning"] {
66
+ --callout-color: var(--xyd-text-color--warn);
67
+ --callout-color-muted: var(--xyd-text-color--warn--muted);
68
+ --callout-color-active: var(--xyd-text-color--warn--active);
69
+ }
70
+
71
+ &[data-kind="note"] {
72
+ --callout-color: var(--xyd-text-color--info);
73
+ --callout-color-muted: var(--xyd-text-color--info--muted);
74
+ --callout-color-active: var(--xyd-text-color--info--active);
75
+ }
76
+
77
+ &[data-kind="danger"] {
78
+ --callout-color: var(--xyd-text-color--error);
79
+ --callout-color-muted: var(--xyd-text-color--error--muted);
80
+ --callout-color-active: var(--xyd-text-color--error--active);
81
+ }
82
+
83
+ [part="icon"] {
84
+ display: inline-flex;
85
+ margin-right: 14px;
86
+ flex: 0 0 auto;
87
+ align-self: flex-start;
88
+ color: var(--xyd-callout-icon-color);
89
+ margin-top: 2px;
90
+ }
91
+
92
+ [part="message"] {
93
+ color: var(--xyd-callout-message-color);
94
+ text-align: left;
95
+ flex: 1 1 auto;
96
+ }
97
+
98
+ [part="message-body"] {
99
+ }
100
+
101
+ }
102
+ `;
@@ -0,0 +1,166 @@
1
+ import React from "react"
2
+
3
+ import * as cn from "./Callout.styles";
4
+
5
+ /**
6
+ * Props for the Callout component
7
+ */
8
+ export interface CalloutProps {
9
+ /** Additional CSS class name to be applied to the callout */
10
+ className?: string;
11
+
12
+ /** Content to be displayed inside the callout */
13
+ children: React.ReactNode;
14
+
15
+ kind?: "warning" | "note" | "tip" | "check" | "danger"
16
+ }
17
+
18
+ /**
19
+ * A Callout component that displays important information or notices in a visually distinct way.
20
+ * It includes an info icon and a message area for content.
21
+ *
22
+ * @category Component
23
+ */
24
+ export function Callout({ className, children, kind }: CalloutProps) {
25
+ let icon
26
+
27
+ switch (kind) {
28
+ case "tip":
29
+ icon = <$BulbIcon />
30
+ break
31
+ case "check":
32
+ icon = <$CheckIcon />
33
+ break
34
+ case "warning":
35
+ icon = <$WarningIcon />
36
+ break
37
+ case "danger":
38
+ icon = <$DangerIcon />
39
+ break
40
+ case "note":
41
+ icon = <$NoteIcon />
42
+ break
43
+ default:
44
+ icon = <$IconInfo />
45
+ break
46
+ }
47
+
48
+ return <xyd-callout
49
+ data-kind={kind}
50
+ className={`${cn.CalloutHost} ${className || ''}`}
51
+ >
52
+ <div part="icon">
53
+ {icon}
54
+ </div>
55
+ <div part="message">
56
+ <div part="message-body">
57
+ {children}
58
+ </div>
59
+ </div>
60
+ </xyd-callout>
61
+ }
62
+
63
+ function $IconInfo() {
64
+ return <svg
65
+ xmlns="http://www.w3.org/2000/svg"
66
+ width="24"
67
+ height="24"
68
+ fill="currentColor"
69
+ viewBox="0 0 24 24"
70
+ >
71
+ <path d="M13 12a1 1 0 1 0-2 0v4a1 1 0 1 0 2 0v-4Zm-1-2.5A1.25 1.25 0 1 0 12 7a1.25 1.25 0 0 0 0 2.5Z" />
72
+ <path
73
+ fillRule="evenodd"
74
+ d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"
75
+ clipRule="evenodd"
76
+ />
77
+ </svg>
78
+ }
79
+
80
+ function $BulbIcon() {
81
+ return <svg
82
+ xmlns="http://www.w3.org/2000/svg"
83
+ width="24"
84
+ height="24"
85
+ viewBox="0 0 24 24"
86
+ >
87
+ <g
88
+ fill="none"
89
+ stroke="currentColor"
90
+ strokeLinecap="round"
91
+ strokeLinejoin="round"
92
+ strokeWidth={1.5}
93
+ >
94
+ <path d="M17.252 12.49c-.284 2.365-1.833 3.31-2.502 3.996c-.67.688-.55.825-.505 1.834a.916.916 0 0 1-.916.971h-2.658a.92.92 0 0 1-.917-.971c0-.99.092-1.22-.504-1.834c-.76-.76-2.548-1.833-2.548-4.784a5.307 5.307 0 1 1 10.55.788" />
95
+ <path d="M10.46 19.236v1.512c0 .413.23.752.513.752h2.053c.285 0 .514-.34.514-.752v-1.512m-2.32-10.54a2.227 2.227 0 0 0-2.226 2.227m10.338.981h1.834m-3.68-6.012l1.301-1.301M18.486 17l1.301 1.3M12 2.377V3.86m-6.76.73l1.292 1.302M4.24 18.3L5.532 17m-.864-5.096H2.835" />
96
+ </g>
97
+ </svg>
98
+ }
99
+
100
+ function $CheckIcon() {
101
+ return <svg
102
+ xmlns="http://www.w3.org/2000/svg"
103
+ width={24}
104
+ height={24}
105
+ viewBox="0 0 24 24"
106
+ >
107
+ <path
108
+ fill="currentColor"
109
+ d="m9.55 18l-5.7-5.7l1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4z"
110
+ />
111
+ </svg>
112
+ }
113
+
114
+ function $WarningIcon() {
115
+ return <svg
116
+ xmlns="http://www.w3.org/2000/svg"
117
+ width={24}
118
+ height={24}
119
+ viewBox="-2 -3 24 24"
120
+ >
121
+ <path
122
+ fill="currentColor"
123
+ d="m12.8 1.613l6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.2 3.2 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096m-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.1 1.1 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2a1 1 0 0 1 0 2m0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1"
124
+ />
125
+ </svg>
126
+ }
127
+
128
+ function $DangerIcon() {
129
+ return <svg
130
+ xmlns="http://www.w3.org/2000/svg"
131
+ width={24}
132
+ height={24}
133
+ viewBox="0 0 24 24"
134
+ >
135
+ <path
136
+ fill="none"
137
+ stroke="currentColor"
138
+ strokeLinecap="round"
139
+ strokeLinejoin="round"
140
+ strokeWidth={1.5}
141
+ d="M20.5 15.8V8.2a1.91 1.91 0 0 0-.944-1.645l-6.612-3.8a1.88 1.88 0 0 0-1.888 0l-6.612 3.8A1.9 1.9 0 0 0 3.5 8.2v7.602a1.91 1.91 0 0 0 .944 1.644l6.612 3.8a1.88 1.88 0 0 0 1.888 0l6.612-3.8A1.9 1.9 0 0 0 20.5 15.8M12 7.627v5.5m0 3.246v-.5"
142
+ />
143
+ </svg>
144
+ }
145
+
146
+ function $NoteIcon() {
147
+ return <svg
148
+ xmlns="http://www.w3.org/2000/svg"
149
+ width={24}
150
+ height={24}
151
+ viewBox="0 0 24 24"
152
+ >
153
+ <g className="pin-outline">
154
+ <g
155
+ fill="currentColor"
156
+ fillRule="evenodd"
157
+ className="Vector"
158
+ clipRule="evenodd"
159
+ >
160
+ <path d="M12 16.143a1 1 0 0 1 1 1V21a1 1 0 0 1-2 0v-3.857a1 1 0 0 1 1-1" />
161
+ <path d="M8.447 4.223q0 .01.007.033c.05.17.12.344.198.51c.262.549.53 1.246.53 2.027v3.85c0 1.03-.442 1.97-1.109 2.666c-.49.512-.873.979-1.169 1.391c-.114.16-.133.269-.135.321a.25.25 0 0 0 .052.16c.089.126.352.319.83.319h4.985a1 1 0 1 1 0 2H7.652c-.987 0-1.93-.403-2.468-1.17c-.58-.827-.556-1.887.095-2.795c.355-.495.8-1.035 1.35-1.61c.358-.373.553-.833.553-1.282v-3.85c0-.335-.118-.71-.336-1.168a5.5 5.5 0 0 1-.31-.805c-.265-.898.081-1.68.664-2.168C7.736 2.204 8.455 2 9.124 2h3.512a1 1 0 1 1 0 2H9.124c-.303 0-.536.099-.64.186a.2.2 0 0 0-.037.037m-.005.007" />
162
+ <path d="M15.553 4.223a3.5 3.5 0 0 1-.206.543c-.26.549-.529 1.246-.529 2.027v3.85c0 1.03.442 1.97 1.109 2.666c.49.512.873.979 1.169 1.391c.114.16.133.269.135.321a.25.25 0 0 1-.052.16c-.089.126-.352.319-.83.319h-4.985a1 1 0 1 0 0 2h4.985c.986 0 1.928-.403 2.467-1.17c.58-.827.556-1.887-.095-2.795c-.355-.495-.8-1.035-1.35-1.61c-.358-.373-.553-.833-.553-1.282v-3.85c0-.335.118-.71.335-1.168c.116-.243.226-.515.311-.805c.265-.898-.081-1.68-.664-2.168C16.264 2.204 15.545 2 14.876 2h-3.512a1 1 0 1 0 0 2h3.512c.303 0 .536.099.64.186q.029.026.037.037m.005.007" />
163
+ </g>
164
+ </g>
165
+ </svg>
166
+ }
@@ -0,0 +1,3 @@
1
+ export {Callout} from "./Callout"
2
+
3
+ export type {CalloutProps} from "./Callout"
@@ -0,0 +1,110 @@
1
+ import { css } from "@linaria/core"
2
+
3
+ export const CardHost = css`
4
+ --card-shadow-atom-color: color-mix(
5
+ in srgb,
6
+ var(--black) 10%,
7
+ transparent 90%
8
+ );
9
+ --card-shadow: 0 1px 3px 0 var(--card-shadow-atom-color), 0 1px 2px -1px var(--card-shadow-atom-color);
10
+ --card-ring-offset-shadow: 0 0 var(--black);
11
+ --card-ring-shadow: 0 0 var(--black);
12
+
13
+ box-shadow: var(--card-ring-offset-shadow, 0 0 var(--black)), var(--card-ring-shadow, 0 0 var(--black)), var(--card-shadow);
14
+ /* box-shadow: 0 1px 2px 0 var(--xyd-card-shadow-color); */
15
+
16
+ border-radius: 8px;
17
+ background-color: var(--xyd-card-bgcolor);
18
+ flex-direction: column;
19
+ display: flex;
20
+ overflow: hidden;
21
+ position: relative;
22
+ height: 100%;
23
+
24
+ /* &[data-shadow="md"] {
25
+ box-shadow: 0 5px 40px var(--xyd-card-shadow-color);
26
+ } */
27
+
28
+ &:hover {
29
+ --card-shadow: 0 10px 15px -3px var(--card-shadow-atom-color), 0 4px 6px -4px var(--card-shadow-atom-color);
30
+ box-shadow: var(--card-ring-offset-shadow, 0 0 var(--black)), var(--card-ring-shadow, 0 0 var(--black)), var(--card-shadow);
31
+ }
32
+
33
+ [part="image-container"] {
34
+ border-bottom: 2px solid var(--xyd-card-border-color);
35
+ height: 200px;
36
+ /* overflow: hidden; */
37
+ position: relative;
38
+ transition: transform 0.1s ease-in;
39
+
40
+ &:hover {
41
+ transform: scale(1.02);
42
+ }
43
+
44
+ [part="bg"] {
45
+ background-size: cover;
46
+ background-repeat: no-repeat;
47
+ position: relative;
48
+ height: 100%;
49
+ }
50
+
51
+ [part="bg-shadow"] {
52
+ --card-gradient-from: hsla(0, 0%, 4%, 0) var(--xyd-gradient-from-position);
53
+ --card-gradient-to: hsla(0, 0%, 4%, .2) var(--xyd-gradient-to-position);
54
+ --card-gradient-stops: var(--card-gradient-from), hsla(0, 0%, 4%, .1) var(--xyd-gradient-via-position), var(--card-gradient-to);
55
+ background-repeat: no-repeat;
56
+ background-size: cover;
57
+ height: 100%;
58
+ position: absolute;
59
+ top: 0;
60
+ width: 100%;
61
+ background-image: linear-gradient(to bottom, var(--card-gradient-stops));
62
+ pointer-events: none;
63
+ }
64
+ img {
65
+ width: 100%;
66
+ height: 100%;
67
+ object-fit: cover;
68
+ margin-bottom: -4px;
69
+ }
70
+ }
71
+
72
+ [part="author-link"] {
73
+ --card-shadow: 0 4px 6px -1px var(--card-shadow-atom-color), 0 2px 4px -2px var(--card-shadow-atom-color);
74
+ --card-bg-opacity: 1;
75
+
76
+ box-shadow: var(--card-ring-offset-shadow, 0 0 var(--black)), var(--card-ring-shadow, 0 0 var(--black)), var(--card-shadow);
77
+ background-color: rgb(245 245 245 / var(--card-bg-opacity));
78
+ border-width: 1px;
79
+ border-color: var(--dark8);
80
+ border-radius: 9999px;
81
+ overflow: hidden;
82
+ width: 4rem;
83
+ height: 4rem;
84
+ z-index: 2;
85
+ left: 1.25rem;
86
+ bottom: -2rem;
87
+ position: absolute;
88
+
89
+ img {
90
+ width: 100%;
91
+ height: 100%;
92
+ display: block;
93
+ max-width: 100%;
94
+ }
95
+ }
96
+
97
+ [part="body"] {
98
+ /* padding: 16px; */
99
+
100
+ padding: 50px 1.25rem;
101
+
102
+ [part="header"] {
103
+ margin-right: 4px;
104
+ align-items: center;
105
+ justify-content: space-between;
106
+ /* margin-bottom: 12px; */
107
+ display: flex;
108
+ }
109
+ }
110
+ `