@dodlhuat/basix 1.1.1 → 1.2.1

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/README.md +706 -482
  2. package/css/accordion.scss +86 -87
  3. package/css/alert.scss +137 -137
  4. package/css/badge.scss +104 -0
  5. package/css/bottom-sheet.scss +192 -0
  6. package/css/breadcrumb.scss +158 -0
  7. package/css/button.scss +48 -0
  8. package/css/calendar.scss +957 -0
  9. package/css/card.scss +65 -65
  10. package/css/chart.scss +270 -157
  11. package/css/chat-bubbles.scss +134 -68
  12. package/css/chips.scss +109 -19
  13. package/css/colors.scss +32 -32
  14. package/css/context-menu.scss +182 -0
  15. package/css/datepicker.scss +336 -336
  16. package/css/defaults.scss +90 -90
  17. package/css/docs.scss +529 -0
  18. package/css/editor.scss +664 -461
  19. package/css/file-uploader.scss +1 -1
  20. package/css/flyout-menu.scss +361 -361
  21. package/css/form.scss +124 -0
  22. package/css/gallery.scss +65 -6
  23. package/css/grid.scss +41 -40
  24. package/css/group-picker.scss +345 -0
  25. package/css/guitar-chords.css +250 -250
  26. package/css/icons.scss +330 -330
  27. package/css/parameters.scss +3 -3
  28. package/css/placeholder.scss +33 -33
  29. package/css/popover.scss +206 -0
  30. package/css/progress.scss +76 -32
  31. package/css/properties.scss +51 -36
  32. package/css/push-menu.scss +302 -174
  33. package/css/reset.scss +39 -39
  34. package/css/scrollbar.scss +62 -5
  35. package/css/sidebar-nav.scss +92 -0
  36. package/css/spinner.scss +65 -65
  37. package/css/stepper.scss +248 -0
  38. package/css/style.css +4603 -273
  39. package/css/style.css.map +1 -1
  40. package/css/style.min.css +1 -1
  41. package/css/style.scss +51 -39
  42. package/css/table.scss +199 -199
  43. package/css/tabs.scss +154 -123
  44. package/css/timeline.scss +83 -38
  45. package/css/timepicker.scss +100 -5
  46. package/css/toast.scss +81 -81
  47. package/css/typography.scss +194 -161
  48. package/css/virtual-dropdown.scss +35 -29
  49. package/js/bottom-sheet.js +173 -0
  50. package/js/bottom-sheet.ts +222 -0
  51. package/js/calendar.js +532 -0
  52. package/js/calendar.ts +706 -0
  53. package/js/carousel.js +26 -13
  54. package/js/chart.js +573 -257
  55. package/js/chart.ts +692 -0
  56. package/js/code-viewer.js +10 -10
  57. package/js/code-viewer.ts +188 -188
  58. package/js/context-menu.js +212 -0
  59. package/js/context-menu.ts +252 -0
  60. package/js/datepicker.ts +627 -627
  61. package/js/docs-nav.js +204 -0
  62. package/js/dropdown.ts +179 -179
  63. package/js/editor.js +96 -38
  64. package/js/editor.ts +483 -425
  65. package/js/file-uploader.js +1 -0
  66. package/js/file-uploader.ts +1 -0
  67. package/js/flyout-menu.js +14 -14
  68. package/js/flyout-menu.ts +249 -249
  69. package/js/form-builder.js +106 -106
  70. package/js/gallery.js +13 -6
  71. package/js/gallery.ts +245 -236
  72. package/js/group-picker.js +342 -0
  73. package/js/group-picker.ts +447 -0
  74. package/js/guitar-chords.js +268 -268
  75. package/js/lazy-loader.js +121 -121
  76. package/js/modal.ts +166 -166
  77. package/js/popover.js +163 -0
  78. package/js/popover.ts +219 -0
  79. package/js/position.js +108 -0
  80. package/js/position.ts +111 -0
  81. package/js/push-menu.js +226 -113
  82. package/js/push-menu.ts +284 -145
  83. package/js/request.js +50 -50
  84. package/js/scroll.ts +47 -47
  85. package/js/scrollbar.js +13 -0
  86. package/js/scrollbar.ts +324 -307
  87. package/js/select.ts +216 -216
  88. package/js/sidebar-nav.js +41 -0
  89. package/js/sidebar-nav.ts +66 -0
  90. package/js/stepper.js +80 -0
  91. package/js/stepper.ts +104 -0
  92. package/js/table.ts +452 -452
  93. package/js/tabs.ts +279 -279
  94. package/js/theme.js +17 -6
  95. package/js/theme.ts +234 -224
  96. package/js/timepicker.js +21 -8
  97. package/js/toast.ts +137 -137
  98. package/js/tooltip.js +6 -60
  99. package/js/tooltip.ts +184 -251
  100. package/js/tsconfig.json +18 -18
  101. package/js/utils.ts +83 -83
  102. package/js/virtual-dropdown.js +25 -25
  103. package/js/virtual-dropdown.ts +365 -365
  104. package/package.json +39 -39
  105. package/fonts/Outfit-VariableFont_wght.woff +0 -0
  106. package/fonts/material-icons.woff2 +0 -0
  107. package/icons/activity-outline.svg +0 -1
  108. package/icons/alert-circle-outline.svg +0 -1
  109. package/icons/alert-triangle-outline.svg +0 -1
  110. package/icons/archive-outline.svg +0 -1
  111. package/icons/arrow-back-outline.svg +0 -1
  112. package/icons/arrow-circle-down-outline.svg +0 -1
  113. package/icons/arrow-circle-left-outline.svg +0 -1
  114. package/icons/arrow-circle-right-outline.svg +0 -1
  115. package/icons/arrow-circle-up-outline.svg +0 -1
  116. package/icons/arrow-down-outline.svg +0 -1
  117. package/icons/arrow-downward-outline.svg +0 -1
  118. package/icons/arrow-forward-outline.svg +0 -1
  119. package/icons/arrow-ios-back-outline.svg +0 -1
  120. package/icons/arrow-ios-downward-outline.svg +0 -1
  121. package/icons/arrow-ios-forward-outline.svg +0 -1
  122. package/icons/arrow-ios-upward-outline.svg +0 -1
  123. package/icons/arrow-left-outline.svg +0 -1
  124. package/icons/arrow-right-outline.svg +0 -1
  125. package/icons/arrow-up-outline.svg +0 -1
  126. package/icons/arrow-upward-outline.svg +0 -1
  127. package/icons/arrowhead-down-outline.svg +0 -1
  128. package/icons/arrowhead-left-outline.svg +0 -1
  129. package/icons/arrowhead-right-outline.svg +0 -1
  130. package/icons/arrowhead-up-outline.svg +0 -1
  131. package/icons/at-outline.svg +0 -1
  132. package/icons/attach-2-outline.svg +0 -1
  133. package/icons/attach-outline.svg +0 -1
  134. package/icons/award-outline.svg +0 -1
  135. package/icons/backspace-outline.svg +0 -1
  136. package/icons/bar-chart-2-outline.svg +0 -1
  137. package/icons/bar-chart-outline.svg +0 -1
  138. package/icons/battery-outline.svg +0 -1
  139. package/icons/behance-outline.svg +0 -1
  140. package/icons/bell-off-outline.svg +0 -1
  141. package/icons/bell-outline.svg +0 -1
  142. package/icons/bluetooth-outline.svg +0 -1
  143. package/icons/book-open-outline.svg +0 -1
  144. package/icons/book-outline.svg +0 -1
  145. package/icons/bookmark-outline.svg +0 -1
  146. package/icons/briefcase-outline.svg +0 -1
  147. package/icons/browser-outline.svg +0 -1
  148. package/icons/brush-outline.svg +0 -1
  149. package/icons/bulb-outline.svg +0 -1
  150. package/icons/calendar-outline.svg +0 -1
  151. package/icons/camera-outline.svg +0 -1
  152. package/icons/car-outline.svg +0 -1
  153. package/icons/cast-outline.svg +0 -1
  154. package/icons/charging-outline.svg +0 -1
  155. package/icons/checkmark-circle-2-outline.svg +0 -1
  156. package/icons/checkmark-circle-outline.svg +0 -1
  157. package/icons/checkmark-outline.svg +0 -1
  158. package/icons/checkmark-square-2-outline.svg +0 -1
  159. package/icons/checkmark-square-outline.svg +0 -1
  160. package/icons/chevron-down-outline.svg +0 -1
  161. package/icons/chevron-left-outline.svg +0 -1
  162. package/icons/chevron-right-outline.svg +0 -1
  163. package/icons/chevron-up-outline.svg +0 -1
  164. package/icons/clipboard-outline.svg +0 -1
  165. package/icons/clock-outline.svg +0 -1
  166. package/icons/close-circle-outline.svg +0 -1
  167. package/icons/close-outline.svg +0 -1
  168. package/icons/close-square-outline.svg +0 -1
  169. package/icons/cloud-download-outline.svg +0 -1
  170. package/icons/cloud-upload-outline.svg +0 -1
  171. package/icons/code-download-outline.svg +0 -1
  172. package/icons/code-outline.svg +0 -1
  173. package/icons/collapse-outline.svg +0 -1
  174. package/icons/color-palette-outline.svg +0 -1
  175. package/icons/color-picker-outline.svg +0 -1
  176. package/icons/compass-outline.svg +0 -1
  177. package/icons/copy-outline.svg +0 -1
  178. package/icons/corner-down-left-outline.svg +0 -1
  179. package/icons/corner-down-right-outline.svg +0 -1
  180. package/icons/corner-left-down-outline.svg +0 -1
  181. package/icons/corner-left-up-outline.svg +0 -1
  182. package/icons/corner-right-down-outline.svg +0 -1
  183. package/icons/corner-right-up-outline.svg +0 -1
  184. package/icons/corner-up-left-outline.svg +0 -1
  185. package/icons/corner-up-right-outline.svg +0 -1
  186. package/icons/credit-card-outline.svg +0 -1
  187. package/icons/crop-outline.svg +0 -1
  188. package/icons/cube-outline.svg +0 -1
  189. package/icons/diagonal-arrow-left-down-outline.svg +0 -1
  190. package/icons/diagonal-arrow-left-up-outline.svg +0 -1
  191. package/icons/diagonal-arrow-right-down-outline.svg +0 -1
  192. package/icons/diagonal-arrow-right-up-outline.svg +0 -1
  193. package/icons/done-all-outline.svg +0 -1
  194. package/icons/download-outline.svg +0 -1
  195. package/icons/droplet-off-outline.svg +0 -1
  196. package/icons/droplet-outline.svg +0 -1
  197. package/icons/edit-2-outline.svg +0 -1
  198. package/icons/edit-outline.svg +0 -1
  199. package/icons/email-outline.svg +0 -1
  200. package/icons/expand-outline.svg +0 -1
  201. package/icons/external-link-outline.svg +0 -1
  202. package/icons/eye-off-2-outline.svg +0 -1
  203. package/icons/eye-off-outline.svg +0 -1
  204. package/icons/eye-outline.svg +0 -1
  205. package/icons/facebook-outline.svg +0 -1
  206. package/icons/file-add-outline.svg +0 -1
  207. package/icons/file-outline.svg +0 -1
  208. package/icons/file-remove-outline.svg +0 -1
  209. package/icons/file-text-outline.svg +0 -1
  210. package/icons/film-outline.svg +0 -1
  211. package/icons/flag-outline.svg +0 -1
  212. package/icons/flash-off-outline.svg +0 -1
  213. package/icons/flash-outline.svg +0 -1
  214. package/icons/flip-2-outline.svg +0 -1
  215. package/icons/flip-outline.svg +0 -1
  216. package/icons/folder-add-outline.svg +0 -1
  217. package/icons/folder-outline.svg +0 -1
  218. package/icons/folder-remove-outline.svg +0 -1
  219. package/icons/funnel-outline.svg +0 -1
  220. package/icons/gift-outline.svg +0 -1
  221. package/icons/github-outline.svg +0 -1
  222. package/icons/globe-2-outline.svg +0 -1
  223. package/icons/globe-outline.svg +0 -1
  224. package/icons/google-outline.svg +0 -1
  225. package/icons/grid-outline.svg +0 -1
  226. package/icons/hard-drive-outline.svg +0 -1
  227. package/icons/hash-outline.svg +0 -1
  228. package/icons/headphones-outline.svg +0 -1
  229. package/icons/heart-outline.svg +0 -1
  230. package/icons/home-outline.svg +0 -1
  231. package/icons/image-outline.svg +0 -1
  232. package/icons/inbox-outline.svg +0 -1
  233. package/icons/info-outline.svg +0 -1
  234. package/icons/keypad-outline.svg +0 -1
  235. package/icons/layers-outline.svg +0 -1
  236. package/icons/layout-outline.svg +0 -1
  237. package/icons/link-2-outline.svg +0 -1
  238. package/icons/link-outline.svg +0 -1
  239. package/icons/linkedin-outline.svg +0 -1
  240. package/icons/list-outline.svg +0 -1
  241. package/icons/loader-outline.svg +0 -1
  242. package/icons/lock-outline.svg +0 -1
  243. package/icons/log-in-outline.svg +0 -1
  244. package/icons/log-out-outline.svg +0 -1
  245. package/icons/map-outline.svg +0 -1
  246. package/icons/maximize-outline.svg +0 -1
  247. package/icons/menu-2-outline.svg +0 -1
  248. package/icons/menu-arrow-outline.svg +0 -1
  249. package/icons/menu-outline.svg +0 -1
  250. package/icons/message-circle-outline.svg +0 -1
  251. package/icons/message-square-outline.svg +0 -1
  252. package/icons/mic-off-outline.svg +0 -1
  253. package/icons/mic-outline.svg +0 -1
  254. package/icons/minimize-outline.svg +0 -1
  255. package/icons/minus-circle-outline.svg +0 -1
  256. package/icons/minus-outline.svg +0 -1
  257. package/icons/minus-square-outline.svg +0 -1
  258. package/icons/monitor-outline.svg +0 -1
  259. package/icons/moon-outline.svg +0 -1
  260. package/icons/more-horizontal-outline.svg +0 -1
  261. package/icons/more-vertical-outline.svg +0 -1
  262. package/icons/move-outline.svg +0 -1
  263. package/icons/music-outline.svg +0 -1
  264. package/icons/navigation-2-outline.svg +0 -1
  265. package/icons/navigation-outline.svg +0 -1
  266. package/icons/npm-outline.svg +0 -1
  267. package/icons/options-2-outline.svg +0 -1
  268. package/icons/options-outline.svg +0 -1
  269. package/icons/pantone-outline.svg +0 -1
  270. package/icons/paper-plane-outline.svg +0 -1
  271. package/icons/pause-circle-outline.svg +0 -1
  272. package/icons/people-outline.svg +0 -1
  273. package/icons/percent-outline.svg +0 -1
  274. package/icons/person-add-outline.svg +0 -1
  275. package/icons/person-delete-outline.svg +0 -1
  276. package/icons/person-done-outline.svg +0 -1
  277. package/icons/person-outline.svg +0 -1
  278. package/icons/person-remove-outline.svg +0 -1
  279. package/icons/phone-call-outline.svg +0 -1
  280. package/icons/phone-missed-outline.svg +0 -1
  281. package/icons/phone-off-outline.svg +0 -1
  282. package/icons/phone-outline.svg +0 -1
  283. package/icons/pie-chart-outline.svg +0 -1
  284. package/icons/pin-outline.svg +0 -1
  285. package/icons/play-circle-outline.svg +0 -1
  286. package/icons/plus-circle-outline.svg +0 -1
  287. package/icons/plus-outline.svg +0 -1
  288. package/icons/plus-square-outline.svg +0 -1
  289. package/icons/power-outline.svg +0 -1
  290. package/icons/pricetags-outline.svg +0 -1
  291. package/icons/printer-outline.svg +0 -1
  292. package/icons/question-mark-circle-outline.svg +0 -1
  293. package/icons/question-mark-outline.svg +0 -1
  294. package/icons/radio-button-off-outline.svg +0 -1
  295. package/icons/radio-button-on-outline.svg +0 -1
  296. package/icons/radio-outline.svg +0 -1
  297. package/icons/recording-outline.svg +0 -1
  298. package/icons/refresh-outline.svg +0 -1
  299. package/icons/repeat-outline.svg +0 -1
  300. package/icons/rewind-left-outline.svg +0 -1
  301. package/icons/rewind-right-outline.svg +0 -1
  302. package/icons/save-outline.svg +0 -1
  303. package/icons/scissors-outline.svg +0 -1
  304. package/icons/search-outline.svg +0 -1
  305. package/icons/settings-2-outline.svg +0 -1
  306. package/icons/settings-outline.svg +0 -1
  307. package/icons/shake-outline.svg +0 -1
  308. package/icons/share-outline.svg +0 -1
  309. package/icons/shield-off-outline.svg +0 -1
  310. package/icons/shield-outline.svg +0 -1
  311. package/icons/shopping-bag-outline.svg +0 -1
  312. package/icons/shopping-cart-outline.svg +0 -1
  313. package/icons/shuffle-2-outline.svg +0 -1
  314. package/icons/shuffle-outline.svg +0 -1
  315. package/icons/skip-back-outline.svg +0 -1
  316. package/icons/skip-forward-outline.svg +0 -1
  317. package/icons/slash-outline.svg +0 -1
  318. package/icons/smartphone-outline.svg +0 -1
  319. package/icons/smiling-face-outline.svg +0 -1
  320. package/icons/speaker-outline.svg +0 -1
  321. package/icons/square-outline.svg +0 -1
  322. package/icons/star-outline.svg +0 -1
  323. package/icons/stop-circle-outline.svg +0 -1
  324. package/icons/sun-outline.svg +0 -1
  325. package/icons/swap-outline.svg +0 -1
  326. package/icons/sync-outline.svg +0 -1
  327. package/icons/text-outline.svg +0 -1
  328. package/icons/thermometer-minus-outline.svg +0 -1
  329. package/icons/thermometer-outline.svg +0 -1
  330. package/icons/thermometer-plus-outline.svg +0 -1
  331. package/icons/toggle-left-outline.svg +0 -1
  332. package/icons/toggle-right-outline.svg +0 -1
  333. package/icons/trash-2-outline.svg +0 -1
  334. package/icons/trash-outline.svg +0 -1
  335. package/icons/trending-down-outline.svg +0 -1
  336. package/icons/trending-up-outline.svg +0 -1
  337. package/icons/tv-outline.svg +0 -1
  338. package/icons/twitter-outline.svg +0 -1
  339. package/icons/umbrella-outline.svg +0 -1
  340. package/icons/undo-outline.svg +0 -1
  341. package/icons/unlock-outline.svg +0 -1
  342. package/icons/upload-outline.svg +0 -1
  343. package/icons/video-off-outline.svg +0 -1
  344. package/icons/video-outline.svg +0 -1
  345. package/icons/volume-down-outline.svg +0 -1
  346. package/icons/volume-mute-outline.svg +0 -1
  347. package/icons/volume-off-outline.svg +0 -1
  348. package/icons/volume-up-outline.svg +0 -1
  349. package/icons/wifi-off-outline.svg +0 -1
  350. package/icons/wifi-outline.svg +0 -1
  351. package/js/index.js +0 -718
  352. package/js/index.ts +0 -873
package/css/defaults.scss CHANGED
@@ -1,91 +1,91 @@
1
- @use "properties";
2
- @use "parameters" as *;
3
-
4
- html, body {
5
- overflow: auto;
6
- }
7
-
8
- body {
9
- position: relative;
10
- height: 100%;
11
- width: 100%;
12
- min-height: 100vh;
13
- }
14
-
15
- a {
16
- cursor: pointer;
17
- }
18
-
19
- .content {
20
- margin-left: calc(2 * $spacing);
21
- margin-right: calc(2 * $spacing);
22
- margin-top: calc($spacing * 4);
23
- }
24
-
25
- .hidden {
26
- display: none;
27
- }
28
-
29
- .float-right {
30
- float: right;
31
- }
32
-
33
- .float-left {
34
- float: left;
35
- }
36
-
37
- .block {
38
- display: block;
39
- width: 100%;
40
- }
41
-
42
- .vertical-align-center {
43
- align-items: center;
44
- display: flex;
45
- }
46
-
47
- .horizontal-align-center {
48
- text-align: center;
49
- }
50
-
51
- .center {
52
- align-items: center;
53
- justify-content: center;
54
- display: flex;
55
- }
56
-
57
- code.code {
58
- background: var(--divider);
59
- display: block;
60
- font-family: monospace;
61
- border-radius: $border-radius;
62
- font-size: calc($spacing * 1.3);
63
- margin: $spacing 0;
64
-
65
- .code-header {
66
- display: block;
67
- background: var(--disabled);
68
- border-top-left-radius: $border-radius;
69
- border-top-right-radius: $border-radius;
70
- padding: calc($spacing / 2) calc($spacing * 2);
71
- color: var(--primary-text);
72
- font-weight: bold;
73
- }
74
-
75
- .code-content {
76
- padding: calc($spacing * 2);
77
- white-space: break-spaces;
78
- }
79
- }
80
-
81
- .cursor-pointer {
82
- cursor: pointer;
83
- }
84
-
85
- .spacing-right {
86
- margin-right: $spacing;
87
- }
88
-
89
- .flex {
90
- display: flex;
1
+ @use "properties";
2
+ @use "parameters" as *;
3
+
4
+ html, body {
5
+ overflow: auto;
6
+ }
7
+
8
+ body {
9
+ position: relative;
10
+ height: 100%;
11
+ width: 100%;
12
+ min-height: 100vh;
13
+ }
14
+
15
+ a {
16
+ cursor: pointer;
17
+ }
18
+
19
+ .content {
20
+ margin-left: calc(2 * $spacing);
21
+ margin-right: calc(2 * $spacing);
22
+ margin-top: calc($spacing * 4);
23
+ }
24
+
25
+ .hidden {
26
+ display: none;
27
+ }
28
+
29
+ .float-right {
30
+ float: right;
31
+ }
32
+
33
+ .float-left {
34
+ float: left;
35
+ }
36
+
37
+ .block {
38
+ display: block;
39
+ width: 100%;
40
+ }
41
+
42
+ .vertical-align-center {
43
+ align-items: center;
44
+ display: flex;
45
+ }
46
+
47
+ .horizontal-align-center {
48
+ text-align: center;
49
+ }
50
+
51
+ .center {
52
+ align-items: center;
53
+ justify-content: center;
54
+ display: flex;
55
+ }
56
+
57
+ code.code {
58
+ background: var(--divider);
59
+ display: block;
60
+ font-family: monospace;
61
+ border-radius: $border-radius;
62
+ font-size: calc($spacing * 1.3);
63
+ margin: $spacing 0;
64
+
65
+ .code-header {
66
+ display: block;
67
+ background: var(--disabled);
68
+ border-top-left-radius: $border-radius;
69
+ border-top-right-radius: $border-radius;
70
+ padding: calc($spacing / 2) calc($spacing * 2);
71
+ color: var(--primary-text);
72
+ font-weight: bold;
73
+ }
74
+
75
+ .code-content {
76
+ padding: calc($spacing * 2);
77
+ white-space: break-spaces;
78
+ }
79
+ }
80
+
81
+ .cursor-pointer {
82
+ cursor: pointer;
83
+ }
84
+
85
+ .spacing-right {
86
+ margin-right: $spacing;
87
+ }
88
+
89
+ .flex {
90
+ display: flex;
91
91
  }
package/css/docs.scss ADDED
@@ -0,0 +1,529 @@
1
+ @use "parameters" as *;
2
+
3
+ // ── Sidebar content (logo + search) ──────────────────────────────────────────
4
+
5
+ .sidebar-nav {
6
+
7
+ .docs-sidebar-logo {
8
+ display: flex;
9
+ align-items: center;
10
+ gap: 0.5rem;
11
+ padding: 1.25rem 1rem;
12
+ border-bottom: 1px solid var(--divider);
13
+ font-weight: 700;
14
+ font-size: 1.1rem;
15
+ color: var(--primary-text);
16
+ text-decoration: none;
17
+ letter-spacing: -0.01em;
18
+
19
+ .docs-logo-badge {
20
+ font-size: 0.6rem;
21
+ font-weight: 700;
22
+ background: var(--accent-color);
23
+ color: #fff;
24
+ padding: 0.1rem 0.35rem;
25
+ border-radius: 0.25rem;
26
+ letter-spacing: 0.04em;
27
+ text-transform: uppercase;
28
+ }
29
+ }
30
+
31
+ .docs-sidebar-search {
32
+ padding: 0.75rem 1rem;
33
+ border-bottom: 1px solid var(--divider);
34
+
35
+ input {
36
+ width: 100%;
37
+ height: 2rem;
38
+ font-size: 0.8rem;
39
+ background: var(--secondary-background);
40
+ border: 1px solid var(--divider);
41
+ border-radius: $border-radius;
42
+ padding: 0 0.75rem;
43
+ color: var(--primary-text);
44
+ outline: none;
45
+
46
+ &::placeholder { color: var(--secondary-text); }
47
+ &:focus { border-color: var(--accent-color); }
48
+ }
49
+ }
50
+ }
51
+
52
+ .docs-nav {
53
+ flex: 1;
54
+ padding: 0.75rem 0 2rem;
55
+ overflow-y: auto;
56
+
57
+ ul {
58
+ list-style: none;
59
+ margin: 0;
60
+ padding: 0;
61
+ }
62
+
63
+ .docs-nav-section {
64
+ margin-bottom: 0.25rem;
65
+ }
66
+
67
+ .docs-nav-section-label {
68
+ font-size: 0.65rem;
69
+ font-weight: 700;
70
+ letter-spacing: 0.08em;
71
+ text-transform: uppercase;
72
+ color: var(--secondary-text);
73
+ padding: 0.85rem 1rem 0.3rem;
74
+ }
75
+
76
+ .docs-nav-item a {
77
+ display: block;
78
+ padding: 0.3rem 1rem 0.3rem 1.25rem;
79
+ font-size: 0.85rem;
80
+ color: var(--secondary-text);
81
+ text-decoration: none;
82
+ border-radius: 0;
83
+ transition: color 0.15s, background 0.15s;
84
+ border-left: 2px solid transparent;
85
+
86
+ &:hover {
87
+ color: var(--primary-text);
88
+ background: var(--secondary-background);
89
+ }
90
+
91
+ &.is-active {
92
+ color: var(--accent-color);
93
+ border-left-color: var(--accent-color);
94
+ background: color-mix(in srgb, var(--accent-color) 8%, transparent);
95
+ font-weight: 500;
96
+ }
97
+ }
98
+ }
99
+
100
+ .docs-topbar {
101
+ position: sticky;
102
+ top: 0;
103
+ height: 52px;
104
+ display: flex;
105
+ align-items: center;
106
+ justify-content: space-between;
107
+ padding: 0 2rem;
108
+ background: var(--primary-bg);
109
+ border-bottom: 1px solid var(--divider);
110
+ z-index: 90;
111
+ gap: 1rem;
112
+
113
+ .docs-breadcrumb {
114
+ display: flex;
115
+ align-items: center;
116
+ gap: 0.4rem;
117
+ font-size: 0.8rem;
118
+ color: var(--secondary-text);
119
+
120
+ a {
121
+ color: var(--secondary-text);
122
+ text-decoration: none;
123
+ &:hover { color: var(--primary-text); }
124
+ }
125
+
126
+ .sep { opacity: 0.4; }
127
+ .current { color: var(--primary-text); font-weight: 500; }
128
+ }
129
+
130
+ .docs-topbar-actions {
131
+ display: flex;
132
+ align-items: center;
133
+ gap: 0.5rem;
134
+ }
135
+ }
136
+
137
+ .docs-content {
138
+ flex: 1;
139
+ padding: 2.5rem 2rem 4rem;
140
+ max-width: 860px;
141
+
142
+ h1 {
143
+ font-size: 1.75rem;
144
+ font-weight: 700;
145
+ letter-spacing: -0.02em;
146
+ margin: 0 0 0.5rem;
147
+ }
148
+
149
+ .docs-lead {
150
+ font-size: 1rem;
151
+ color: var(--secondary-text);
152
+ margin: 0 0 1rem;
153
+ line-height: 1.6;
154
+ max-width: 600px;
155
+ }
156
+
157
+ .docs-import {
158
+ display: inline-flex;
159
+ align-items: center;
160
+ gap: 0.5rem;
161
+ margin: 0 0 2rem;
162
+ padding: 0.4rem 0.75rem;
163
+ background: var(--secondary-background);
164
+ border: 1px solid var(--divider);
165
+ border-radius: $border-radius;
166
+ font-size: 0.8rem;
167
+ font-family: ui-monospace, "Cascadia Code", "SF Mono", monospace;
168
+ color: var(--accent-color);
169
+
170
+ &::before {
171
+ content: 'import';
172
+ color: var(--secondary-text);
173
+ font-style: italic;
174
+ font-family: inherit;
175
+ }
176
+ }
177
+
178
+ h2 {
179
+ font-size: 1.1rem;
180
+ font-weight: 600;
181
+ margin: 2.5rem 0 1rem;
182
+ padding-bottom: 0.5rem;
183
+ border-bottom: 1px solid var(--divider);
184
+ }
185
+
186
+ h3 {
187
+ font-size: 0.95rem;
188
+ font-weight: 600;
189
+ margin: 1.75rem 0 0.75rem;
190
+ }
191
+
192
+ p { line-height: 1.7; margin: 0 0 1rem; }
193
+
194
+ code {
195
+ font-size: 0.8em;
196
+ background: var(--secondary-background);
197
+ border: 1px solid var(--divider);
198
+ border-radius: 0.25rem;
199
+ padding: 0.1em 0.35em;
200
+ }
201
+
202
+ .docs-demo {
203
+ background: var(--secondary-background);
204
+ border: 1px solid var(--divider);
205
+ border-radius: $border-radius;
206
+ padding: 2rem;
207
+ margin: 1rem 0;
208
+
209
+ h1 { font-size: 2rem; font-weight: 800; }
210
+ h2 { font-size: 1.625rem; font-weight: 750; border: none; padding: 0; margin-top: 0; }
211
+ h3 { font-size: 1.375rem; font-weight: 700; }
212
+ h4 { font-size: 1.125rem; font-weight: 700; }
213
+ h5 { font-size: 1rem; font-weight: 600; }
214
+
215
+ &.centered {
216
+ display: flex;
217
+ align-items: center;
218
+ justify-content: center;
219
+ flex-wrap: wrap;
220
+ gap: 0.75rem;
221
+ }
222
+ }
223
+
224
+ .docs-props-table {
225
+ width: 100%;
226
+ border-collapse: collapse;
227
+ font-size: 0.82rem;
228
+ margin: 1rem 0 2rem;
229
+
230
+ th {
231
+ text-align: left;
232
+ padding: 0.5rem 0.75rem;
233
+ background: var(--secondary-background);
234
+ border: 1px solid var(--divider);
235
+ font-weight: 600;
236
+ color: var(--secondary-text);
237
+ font-size: 0.75rem;
238
+ text-transform: uppercase;
239
+ letter-spacing: 0.05em;
240
+ }
241
+
242
+ td {
243
+ padding: 0.5rem 0.75rem;
244
+ border: 1px solid var(--divider);
245
+ vertical-align: top;
246
+
247
+ code {
248
+ font-size: 0.78em;
249
+ background: color-mix(in srgb, var(--accent-color) 10%, transparent);
250
+ border-color: color-mix(in srgb, var(--accent-color) 20%, transparent);
251
+ color: var(--accent-color);
252
+ }
253
+ }
254
+
255
+ tr:hover td { background: var(--secondary-background); }
256
+ }
257
+ }
258
+
259
+ // ── Landing page ─────────────────────────────────────────────────────────────
260
+
261
+ .landing-hero {
262
+ padding: 5rem 2rem 4rem;
263
+ text-align: center;
264
+ background: var(--primary-bg);
265
+ border-bottom: 1px solid var(--divider);
266
+
267
+ .landing-eyebrow {
268
+ display: inline-flex;
269
+ align-items: center;
270
+ gap: 0.4rem;
271
+ font-size: 0.7rem;
272
+ font-weight: 700;
273
+ letter-spacing: 0.1em;
274
+ text-transform: uppercase;
275
+ color: var(--accent-color);
276
+ background: color-mix(in srgb, var(--accent-color) 10%, transparent);
277
+ border: 1px solid color-mix(in srgb, var(--accent-color) 25%, transparent);
278
+ border-radius: 2rem;
279
+ padding: 0.25rem 0.75rem;
280
+ margin-bottom: 1.5rem;
281
+ }
282
+
283
+ h1 {
284
+ font-size: clamp(2.5rem, 6vw, 4rem);
285
+ font-weight: 800;
286
+ letter-spacing: -0.03em;
287
+ margin: 0 0 1rem;
288
+ line-height: 1.1;
289
+ }
290
+
291
+ .landing-tagline {
292
+ font-size: clamp(1rem, 2.5vw, 1.2rem);
293
+ color: var(--secondary-text);
294
+ max-width: 520px;
295
+ margin: 0 auto 2rem;
296
+ line-height: 1.6;
297
+ }
298
+
299
+ .landing-actions {
300
+ display: flex;
301
+ align-items: center;
302
+ justify-content: center;
303
+ gap: 0.75rem;
304
+ flex-wrap: wrap;
305
+ }
306
+
307
+ .landing-install {
308
+ display: inline-flex;
309
+ align-items: center;
310
+ gap: 0.5rem;
311
+ background: var(--secondary-background);
312
+ border: 1px solid var(--divider);
313
+ border-radius: $border-radius;
314
+ padding: 0.5rem 1rem;
315
+ font-size: 0.85rem;
316
+ font-family: monospace;
317
+ color: var(--primary-text);
318
+ cursor: pointer;
319
+ transition: border-color 0.15s;
320
+
321
+ &:hover { border-color: var(--accent-color); }
322
+
323
+ .install-prefix { color: var(--secondary-text); }
324
+ }
325
+ }
326
+
327
+ .landing-features {
328
+ display: grid;
329
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
330
+ gap: 0;
331
+ border-bottom: 1px solid var(--divider);
332
+
333
+ .feature-item {
334
+ padding: 1.5rem 2rem;
335
+ border-right: 1px solid var(--divider);
336
+
337
+ &:last-child { border-right: none; }
338
+
339
+ .feature-icon {
340
+ font-size: 1.25rem;
341
+ margin-bottom: 0.5rem;
342
+ svg {
343
+ width: 1em;
344
+ height: 1em;
345
+ display: block;
346
+ }
347
+ }
348
+
349
+ .feature-title {
350
+ font-weight: 600;
351
+ font-size: 0.9rem;
352
+ margin-bottom: 0.2rem;
353
+ }
354
+
355
+ .feature-desc {
356
+ font-size: 0.78rem;
357
+ color: var(--secondary-text);
358
+ line-height: 1.5;
359
+ }
360
+ }
361
+ }
362
+
363
+ .landing-section {
364
+ padding: 3.5rem 2rem;
365
+ max-width: 1100px;
366
+ margin: 0 auto;
367
+ width: 100%;
368
+
369
+ &-title {
370
+ font-size: 1.4rem;
371
+ font-weight: 700;
372
+ letter-spacing: -0.02em;
373
+ margin: 0 0 0.4rem;
374
+ }
375
+
376
+ &-sub {
377
+ color: var(--secondary-text);
378
+ font-size: 0.9rem;
379
+ margin: 0 0 2rem;
380
+ }
381
+ }
382
+
383
+ .component-grid {
384
+ display: grid;
385
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
386
+ gap: 1rem;
387
+ }
388
+
389
+ .component-card {
390
+ display: flex;
391
+ flex-direction: column;
392
+ gap: 0.5rem;
393
+ padding: 1.25rem 1.25rem 1rem;
394
+ border: 1px solid var(--divider);
395
+ border-radius: $border-radius * 2;
396
+ text-decoration: none;
397
+ color: var(--primary-text);
398
+ background: var(--primary-bg);
399
+ transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
400
+
401
+ &:hover {
402
+ border-color: var(--accent-color);
403
+ box-shadow: 0 4px 16px color-mix(in srgb, var(--accent-color) 15%, transparent);
404
+ transform: translateY(-1px);
405
+ }
406
+
407
+ .cc-icon {
408
+ font-size: 1.4rem;
409
+ line-height: 1;
410
+ margin-bottom: 0.25rem;
411
+ svg {
412
+ width: 1em;
413
+ height: 1em;
414
+ display: block;
415
+ }
416
+ }
417
+
418
+ .cc-name {
419
+ font-weight: 600;
420
+ font-size: 0.9rem;
421
+ }
422
+
423
+ .cc-desc {
424
+ font-size: 0.78rem;
425
+ color: var(--secondary-text);
426
+ line-height: 1.5;
427
+ }
428
+
429
+ .cc-count {
430
+ font-size: 0.7rem;
431
+ color: var(--secondary-text);
432
+ margin-top: auto;
433
+ padding-top: 0.5rem;
434
+ border-top: 1px solid var(--divider);
435
+ }
436
+ }
437
+
438
+ .landing-quickstart {
439
+ background: var(--secondary-background);
440
+ border-top: 1px solid var(--divider);
441
+ border-bottom: 1px solid var(--divider);
442
+ padding: 3.5rem 2rem;
443
+
444
+ .qs-inner {
445
+ max-width: 700px;
446
+ margin: 0 auto;
447
+ }
448
+
449
+ h2 {
450
+ font-size: 1.4rem;
451
+ font-weight: 700;
452
+ letter-spacing: -0.02em;
453
+ margin: 0 0 0.4rem;
454
+ }
455
+
456
+ p {
457
+ color: var(--secondary-text);
458
+ font-size: 0.9rem;
459
+ margin: 0 0 1.5rem;
460
+ }
461
+
462
+ .qs-steps {
463
+ display: flex;
464
+ flex-direction: column;
465
+ gap: 1rem;
466
+ }
467
+
468
+ .qs-step {
469
+ display: flex;
470
+ gap: 1rem;
471
+ align-items: flex-start;
472
+
473
+ .qs-num {
474
+ flex-shrink: 0;
475
+ width: 1.5rem;
476
+ height: 1.5rem;
477
+ background: var(--accent-color);
478
+ color: #fff;
479
+ border-radius: 50%;
480
+ font-size: 0.7rem;
481
+ font-weight: 700;
482
+ display: flex;
483
+ align-items: center;
484
+ justify-content: center;
485
+ margin-top: 0.1rem;
486
+ }
487
+
488
+ .qs-text {
489
+ flex: 1;
490
+
491
+ strong { display: block; font-size: 0.9rem; margin-bottom: 0.25rem; }
492
+ p { margin: 0; font-size: 0.82rem; }
493
+ code {
494
+ display: block;
495
+ background: var(--primary-bg);
496
+ border: 1px solid var(--divider);
497
+ border-radius: $border-radius;
498
+ padding: 0.5rem 0.75rem;
499
+ font-size: 0.8rem;
500
+ margin-top: 0.4rem;
501
+ font-family: monospace;
502
+ color: var(--primary-text);
503
+ }
504
+ }
505
+ }
506
+ }
507
+
508
+ .landing-footer {
509
+ padding: 1.5rem 2rem;
510
+ border-top: 1px solid var(--divider);
511
+ display: flex;
512
+ align-items: center;
513
+ justify-content: space-between;
514
+ font-size: 0.78rem;
515
+ color: var(--secondary-text);
516
+ gap: 1rem;
517
+ flex-wrap: wrap;
518
+
519
+ a {
520
+ color: var(--secondary-text);
521
+ text-decoration: none;
522
+ &:hover { color: var(--primary-text); }
523
+ }
524
+
525
+ .footer-links {
526
+ display: flex;
527
+ gap: 1.25rem;
528
+ }
529
+ }