@askrjs/themes 0.0.8 → 0.0.10

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 (479) hide show
  1. package/README.md +19 -13
  2. package/THEMING.md +24 -18
  3. package/dist/components/_internal/block-layout.d.ts +49 -0
  4. package/dist/components/_internal/block-layout.js +210 -0
  5. package/dist/components/_internal/block-layout.js.map +1 -0
  6. package/dist/components/_internal/jsx.js.map +1 -1
  7. package/dist/components/_internal/style.js +25 -1
  8. package/dist/components/_internal/style.js.map +1 -1
  9. package/dist/components/alert/alert.js +2 -2
  10. package/dist/components/alert/alert.js.map +1 -1
  11. package/dist/components/alert/alert.types.d.ts +0 -1
  12. package/dist/components/aside/aside.d.ts +7 -0
  13. package/dist/components/aside/aside.js +16 -0
  14. package/dist/components/aside/aside.js.map +1 -0
  15. package/dist/components/aside/aside.types.d.ts +6 -0
  16. package/dist/components/aside/index.d.ts +2 -0
  17. package/dist/components/aspect-ratio/aspect-ratio.js +1 -1
  18. package/dist/components/aspect-ratio/aspect-ratio.js.map +1 -1
  19. package/dist/components/badge/index.d.ts +1 -2
  20. package/dist/components/block/block.d.ts +2 -3
  21. package/dist/components/block/block.js +16 -46
  22. package/dist/components/block/block.js.map +1 -1
  23. package/dist/components/block/block.types.d.ts +13 -23
  24. package/dist/components/block/index.d.ts +3 -3
  25. package/dist/components/brand/brand.d.ts +9 -0
  26. package/dist/components/brand/brand.js +49 -0
  27. package/dist/components/brand/brand.js.map +1 -0
  28. package/dist/components/brand/brand.types.d.ts +31 -0
  29. package/dist/components/brand/index.d.ts +2 -0
  30. package/dist/components/card/card.d.ts +3 -3
  31. package/dist/components/card/card.js +6 -11
  32. package/dist/components/card/card.js.map +1 -1
  33. package/dist/components/card/card.types.d.ts +10 -12
  34. package/dist/components/card/index.d.ts +2 -2
  35. package/dist/components/catalog.d.ts +156 -0
  36. package/dist/components/catalog.js +723 -0
  37. package/dist/components/catalog.js.map +1 -0
  38. package/dist/components/container/container.d.ts +2 -3
  39. package/dist/components/container/container.js +8 -71
  40. package/dist/components/container/container.js.map +1 -1
  41. package/dist/components/container/container.types.d.ts +5 -24
  42. package/dist/components/container/index.d.ts +2 -3
  43. package/dist/components/empty-state/empty-state.js +34 -28
  44. package/dist/components/empty-state/empty-state.js.map +1 -1
  45. package/dist/components/empty-state/empty-state.types.d.ts +3 -6
  46. package/dist/components/field/field.js +4 -2
  47. package/dist/components/field/field.js.map +1 -1
  48. package/dist/components/field/field.types.d.ts +1 -0
  49. package/dist/components/footer/footer.d.ts +13 -0
  50. package/dist/components/footer/footer.js +86 -0
  51. package/dist/components/footer/footer.js.map +1 -0
  52. package/dist/components/footer/footer.types.d.ts +37 -0
  53. package/dist/components/footer/index.d.ts +2 -0
  54. package/dist/components/grid/grid.d.ts +7 -0
  55. package/dist/components/grid/grid.js +76 -0
  56. package/dist/components/grid/grid.js.map +1 -0
  57. package/dist/components/grid/grid.types.d.ts +19 -0
  58. package/dist/components/grid/index.d.ts +2 -0
  59. package/dist/components/header/header.js +9 -6
  60. package/dist/components/header/header.js.map +1 -1
  61. package/dist/components/header/header.types.d.ts +5 -5
  62. package/dist/components/header/index.d.ts +2 -0
  63. package/dist/components/main/index.d.ts +2 -0
  64. package/dist/components/main/main.d.ts +7 -0
  65. package/dist/components/main/main.js +17 -0
  66. package/dist/components/main/main.js.map +1 -0
  67. package/dist/components/main/main.types.d.ts +6 -0
  68. package/dist/components/nav/index.d.ts +2 -2
  69. package/dist/components/nav/nav.d.ts +8 -6
  70. package/dist/components/nav/nav.js +93 -58
  71. package/dist/components/nav/nav.js.map +1 -1
  72. package/dist/components/nav/nav.types.d.ts +16 -20
  73. package/dist/components/navbar/index.d.ts +4 -5
  74. package/dist/components/navbar/navbar.d.ts +3 -38
  75. package/dist/components/navbar/navbar.js +102 -198
  76. package/dist/components/navbar/navbar.js.map +1 -1
  77. package/dist/components/navbar/navbar.types.d.ts +14 -24
  78. package/dist/components/page/index.d.ts +2 -0
  79. package/dist/components/page/page.d.ts +7 -0
  80. package/dist/components/page/page.js +22 -0
  81. package/dist/components/page/page.js.map +1 -0
  82. package/dist/components/page/page.types.d.ts +6 -0
  83. package/dist/components/page-header/index.d.ts +2 -0
  84. package/dist/components/page-header/page-header.d.ts +7 -0
  85. package/dist/components/page-header/page-header.js +37 -0
  86. package/dist/components/page-header/page-header.js.map +1 -0
  87. package/dist/components/page-header/page-header.types.d.ts +10 -0
  88. package/dist/components/section/index.d.ts +2 -3
  89. package/dist/components/section/section.d.ts +2 -3
  90. package/dist/components/section/section.js +7 -30
  91. package/dist/components/section/section.js.map +1 -1
  92. package/dist/components/section/section.types.d.ts +3 -20
  93. package/dist/components/separator/index.d.ts +1 -2
  94. package/dist/components/sidebar/index.d.ts +2 -0
  95. package/dist/components/sidebar/sidebar.d.ts +17 -2
  96. package/dist/components/sidebar/sidebar.js +115 -211
  97. package/dist/components/sidebar/sidebar.js.map +1 -1
  98. package/dist/components/sidebar/sidebar.types.d.ts +21 -23
  99. package/dist/components/skeleton/index.d.ts +1 -2
  100. package/dist/components/skeleton/skeleton.js +12 -1
  101. package/dist/components/skeleton/skeleton.js.map +1 -1
  102. package/dist/components/skeleton/skeleton.types.d.ts +2 -0
  103. package/dist/components/spinner/index.d.ts +1 -1
  104. package/dist/components/spinner/spinner.js +6 -3
  105. package/dist/components/spinner/spinner.js.map +1 -1
  106. package/dist/components/spinner/spinner.types.d.ts +3 -1
  107. package/dist/components/stat/index.d.ts +2 -0
  108. package/dist/components/stat/stat.d.ts +10 -0
  109. package/dist/components/stat/stat.js +52 -0
  110. package/dist/components/stat/stat.js.map +1 -0
  111. package/dist/components/stat/stat.types.d.ts +24 -0
  112. package/dist/components/text/index.d.ts +2 -0
  113. package/dist/components/text/text.d.ts +7 -0
  114. package/dist/components/text/text.js +28 -0
  115. package/dist/components/text/text.js.map +1 -0
  116. package/dist/components/text/text.types.d.ts +26 -0
  117. package/dist/components/theme/theme.js +97 -18
  118. package/dist/components/theme/theme.js.map +1 -1
  119. package/dist/components/toolbar/index.d.ts +2 -0
  120. package/dist/components/toolbar/toolbar.d.ts +7 -0
  121. package/dist/components/toolbar/toolbar.js +30 -0
  122. package/dist/components/toolbar/toolbar.js.map +1 -0
  123. package/dist/components/toolbar/toolbar.types.d.ts +9 -0
  124. package/dist/components.d.ts +60 -0
  125. package/dist/components.js +35 -0
  126. package/dist/controls.d.ts +2 -2
  127. package/dist/controls.js +3 -3
  128. package/dist/core.d.ts +36 -0
  129. package/dist/core.js +19 -0
  130. package/dist/navs.d.ts +3 -15
  131. package/dist/navs.js +2 -8
  132. package/dist/overlays.d.ts +2 -2
  133. package/dist/overlays.js +2 -2
  134. package/dist/surfaces.d.ts +10 -8
  135. package/dist/surfaces.js +6 -4
  136. package/dist/themes/default/index.css +3691 -3959
  137. package/package.json +239 -73
  138. package/src/components/_internal/block-layout.ts +354 -0
  139. package/src/components/_internal/jsx.ts +18 -6
  140. package/src/components/_internal/style.ts +42 -4
  141. package/src/components/alert/alert.tsx +1 -2
  142. package/src/components/alert/alert.types.ts +0 -1
  143. package/src/components/aside/aside.tsx +12 -0
  144. package/src/components/aside/aside.types.ts +3 -0
  145. package/src/components/aside/index.ts +2 -0
  146. package/src/components/aspect-ratio/aspect-ratio.tsx +1 -1
  147. package/src/components/badge/index.ts +0 -1
  148. package/src/components/block/block.a11y.ts +0 -6
  149. package/src/components/block/block.tsx +40 -56
  150. package/src/components/block/block.types.ts +59 -41
  151. package/src/components/block/index.ts +1 -10
  152. package/src/components/brand/brand.tsx +61 -0
  153. package/src/components/brand/brand.types.ts +39 -0
  154. package/src/components/brand/index.ts +2 -0
  155. package/src/components/card/card.tsx +6 -18
  156. package/src/components/card/card.types.ts +9 -11
  157. package/src/components/card/index.ts +2 -3
  158. package/src/components/catalog.tsx +713 -0
  159. package/src/components/container/container.a11y.ts +0 -5
  160. package/src/components/container/container.tsx +18 -128
  161. package/src/components/container/container.types.ts +3 -32
  162. package/src/components/container/index.ts +1 -8
  163. package/src/components/empty-state/empty-state.tsx +17 -35
  164. package/src/components/empty-state/empty-state.types.ts +3 -5
  165. package/src/components/field/field.tsx +3 -1
  166. package/src/components/field/field.types.ts +1 -0
  167. package/src/components/footer/footer.tsx +88 -0
  168. package/src/components/footer/footer.types.ts +40 -0
  169. package/src/components/footer/index.ts +10 -0
  170. package/src/components/grid/grid.tsx +113 -0
  171. package/src/components/grid/grid.types.ts +20 -0
  172. package/src/components/grid/index.ts +2 -0
  173. package/src/components/header/header.tsx +10 -7
  174. package/src/components/header/header.types.ts +4 -4
  175. package/src/components/header/index.ts +1 -2
  176. package/src/components/main/index.ts +2 -0
  177. package/src/components/main/main.tsx +12 -0
  178. package/src/components/main/main.types.ts +3 -0
  179. package/src/components/nav/index.ts +7 -9
  180. package/src/components/nav/nav.tsx +153 -110
  181. package/src/components/nav/nav.types.ts +26 -27
  182. package/src/components/navbar/index.ts +4 -11
  183. package/src/components/navbar/navbar.tsx +104 -251
  184. package/src/components/navbar/navbar.types.ts +16 -42
  185. package/src/components/page/index.ts +2 -0
  186. package/src/components/page/page.tsx +17 -0
  187. package/src/components/page/page.types.ts +3 -0
  188. package/src/components/page-header/index.ts +2 -0
  189. package/src/components/page-header/page-header.tsx +29 -0
  190. package/src/components/page-header/page-header.types.ts +7 -0
  191. package/src/components/section/index.ts +1 -7
  192. package/src/components/section/section.a11y.ts +0 -1
  193. package/src/components/section/section.tsx +9 -35
  194. package/src/components/section/section.types.ts +2 -22
  195. package/src/components/separator/index.ts +4 -9
  196. package/src/components/sidebar/index.ts +27 -5
  197. package/src/components/sidebar/sidebar.tsx +145 -317
  198. package/src/components/sidebar/sidebar.types.ts +21 -28
  199. package/src/components/skeleton/index.ts +1 -2
  200. package/src/components/skeleton/skeleton.tsx +33 -1
  201. package/src/components/skeleton/skeleton.types.ts +2 -0
  202. package/src/components/spinner/index.ts +1 -1
  203. package/src/components/spinner/spinner.tsx +7 -2
  204. package/src/components/spinner/spinner.types.ts +3 -0
  205. package/src/components/stat/index.ts +2 -0
  206. package/src/components/stat/stat.tsx +47 -0
  207. package/src/components/stat/stat.types.ts +24 -0
  208. package/src/components/text/index.ts +2 -0
  209. package/src/components/text/text.tsx +39 -0
  210. package/src/components/text/text.types.ts +35 -0
  211. package/src/components/theme/theme.tsx +163 -21
  212. package/src/components/toolbar/index.ts +2 -0
  213. package/src/components/toolbar/toolbar.tsx +24 -0
  214. package/src/components/toolbar/toolbar.types.ts +6 -0
  215. package/src/components.ts +289 -0
  216. package/src/controls.ts +69 -2
  217. package/src/core.ts +42 -0
  218. package/src/navs.ts +9 -24
  219. package/src/overlays.ts +101 -59
  220. package/src/parity.ts +125 -0
  221. package/src/surfaces.ts +60 -13
  222. package/src/themes/default/index.css +11 -14
  223. package/src/themes/default/styles/actions/button-group.css +6 -6
  224. package/src/themes/default/styles/actions/button.css +98 -60
  225. package/src/themes/default/styles/actions/toggle-group.css +61 -25
  226. package/src/themes/default/styles/base/text.css +87 -0
  227. package/src/themes/default/styles/base/typography.css +24 -117
  228. package/src/themes/default/styles/base/utilities.css +0 -250
  229. package/src/themes/default/styles/disclosure/accordion.css +35 -28
  230. package/src/themes/default/styles/display/alert.css +7 -7
  231. package/src/themes/default/styles/display/avatar.css +7 -1
  232. package/src/themes/default/styles/display/badge.css +10 -10
  233. package/src/themes/default/styles/display/card.css +10 -47
  234. package/src/themes/default/styles/display/catalog.css +753 -0
  235. package/src/themes/default/styles/display/coverage.css +30 -305
  236. package/src/themes/default/styles/display/progress-circle.css +2 -0
  237. package/src/themes/default/styles/display/scroll-area.css +29 -24
  238. package/src/themes/default/styles/display/spinner.css +38 -1
  239. package/src/themes/default/styles/display/stat.css +21 -0
  240. package/src/themes/default/styles/display/table.css +39 -12
  241. package/src/themes/default/styles/display/virtual-list.css +24 -13
  242. package/src/themes/default/styles/display/virtual-table.css +58 -36
  243. package/src/themes/default/styles/forms/checkbox.css +12 -21
  244. package/src/themes/default/styles/forms/input-group.css +2 -1
  245. package/src/themes/default/styles/forms/input.css +11 -12
  246. package/src/themes/default/styles/forms/radio-group.css +44 -27
  247. package/src/themes/default/styles/forms/select.css +33 -35
  248. package/src/themes/default/styles/forms/slider.css +61 -47
  249. package/src/themes/default/styles/forms/switch.css +18 -23
  250. package/src/themes/default/styles/forms/textarea.css +12 -12
  251. package/src/themes/default/styles/layout/block.css +96 -12
  252. package/src/themes/default/styles/layout/grid.css +78 -0
  253. package/src/themes/default/styles/layout/layout.css +502 -772
  254. package/src/themes/default/styles/layout/patterns.css +0 -155
  255. package/src/themes/default/styles/navigation/nav.css +104 -154
  256. package/src/themes/default/styles/overlays/alert-dialog.css +2 -2
  257. package/src/themes/default/styles/overlays/dialog.css +76 -22
  258. package/src/themes/default/styles/overlays/dropdown.css +108 -31
  259. package/src/themes/default/styles/overlays/hover-card.css +39 -17
  260. package/src/themes/default/styles/overlays/menubar.css +223 -0
  261. package/src/themes/default/styles/overlays/popover.css +69 -23
  262. package/src/themes/default/styles/overlays/toast.css +91 -33
  263. package/src/themes/default/styles/overlays/tooltip.css +88 -14
  264. package/src/themes/default/styles/shell/brand.css +48 -0
  265. package/src/themes/default/styles/shell/footer.css +72 -0
  266. package/src/themes/default/styles/shell/header.css +7 -50
  267. package/src/themes/default/styles/shell/navbar.css +226 -453
  268. package/src/themes/default/styles/shell/sidebar.css +243 -829
  269. package/src/themes/default/tokens.css +145 -98
  270. package/templates/theme/index.css +11 -14
  271. package/templates/theme/styles/actions/button-group.css +6 -6
  272. package/templates/theme/styles/actions/button.css +98 -60
  273. package/templates/theme/styles/actions/toggle-group.css +61 -25
  274. package/templates/theme/styles/base/text.css +87 -0
  275. package/templates/theme/styles/base/typography.css +24 -117
  276. package/templates/theme/styles/disclosure/accordion.css +35 -28
  277. package/templates/theme/styles/display/alert.css +7 -7
  278. package/templates/theme/styles/display/avatar.css +7 -1
  279. package/templates/theme/styles/display/badge.css +10 -10
  280. package/templates/theme/styles/display/card.css +10 -47
  281. package/templates/theme/styles/display/catalog.css +753 -0
  282. package/templates/theme/styles/display/coverage.css +30 -305
  283. package/templates/theme/styles/display/scroll-area.css +29 -24
  284. package/templates/theme/styles/display/spinner.css +38 -1
  285. package/templates/theme/styles/display/stat.css +21 -0
  286. package/templates/theme/styles/display/table.css +39 -12
  287. package/templates/theme/styles/display/virtual-list.css +24 -13
  288. package/templates/theme/styles/display/virtual-table.css +58 -36
  289. package/templates/theme/styles/forms/checkbox.css +12 -21
  290. package/templates/theme/styles/forms/input.css +11 -12
  291. package/templates/theme/styles/forms/radio-group.css +44 -27
  292. package/templates/theme/styles/forms/select.css +33 -35
  293. package/templates/theme/styles/forms/slider.css +61 -47
  294. package/templates/theme/styles/forms/switch.css +18 -23
  295. package/templates/theme/styles/forms/textarea.css +12 -12
  296. package/templates/theme/styles/layout/block.css +96 -12
  297. package/templates/theme/styles/layout/grid.css +78 -0
  298. package/templates/theme/styles/layout/layout.css +676 -1
  299. package/templates/theme/styles/layout/patterns.css +0 -155
  300. package/templates/theme/styles/navigation/nav.css +104 -154
  301. package/templates/theme/styles/overlays/alert-dialog.css +2 -2
  302. package/templates/theme/styles/overlays/dialog.css +76 -22
  303. package/templates/theme/styles/overlays/dropdown.css +108 -31
  304. package/templates/theme/styles/overlays/hover-card.css +39 -17
  305. package/templates/theme/styles/overlays/menubar.css +223 -0
  306. package/templates/theme/styles/overlays/popover.css +69 -23
  307. package/templates/theme/styles/overlays/toast.css +80 -33
  308. package/templates/theme/styles/overlays/tooltip.css +88 -14
  309. package/templates/theme/styles/shell/brand.css +48 -0
  310. package/templates/theme/styles/shell/footer.css +72 -0
  311. package/templates/theme/styles/shell/header.css +7 -50
  312. package/templates/theme/styles/shell/navbar.css +226 -453
  313. package/templates/theme/styles/shell/sidebar.css +197 -779
  314. package/templates/theme/tokens.css +145 -98
  315. package/dist/components/_internal/box-layout.js +0 -116
  316. package/dist/components/_internal/box-layout.js.map +0 -1
  317. package/dist/components/_internal/layout.d.ts +0 -9
  318. package/dist/components/_internal/layout.js +0 -147
  319. package/dist/components/_internal/layout.js.map +0 -1
  320. package/dist/components/badge/badge.a11y.d.ts +0 -17
  321. package/dist/components/block/block.a11y.d.ts +0 -20
  322. package/dist/components/box/box.a11y.d.ts +0 -14
  323. package/dist/components/box/box.d.ts +0 -9
  324. package/dist/components/box/box.js +0 -36
  325. package/dist/components/box/box.js.map +0 -1
  326. package/dist/components/box/box.types.d.ts +0 -72
  327. package/dist/components/box/index.d.ts +0 -3
  328. package/dist/components/breadcrumb/breadcrumb.a11y.d.ts +0 -17
  329. package/dist/components/breadcrumb/breadcrumb.a11y.js +0 -15
  330. package/dist/components/breadcrumb/breadcrumb.a11y.js.map +0 -1
  331. package/dist/components/breadcrumb/breadcrumb.d.ts +0 -18
  332. package/dist/components/breadcrumb/breadcrumb.js +0 -113
  333. package/dist/components/breadcrumb/breadcrumb.js.map +0 -1
  334. package/dist/components/breadcrumb/breadcrumb.types.d.ts +0 -65
  335. package/dist/components/breadcrumb/index.d.ts +0 -3
  336. package/dist/components/container/container.a11y.d.ts +0 -19
  337. package/dist/components/flex/flex.a11y.d.ts +0 -22
  338. package/dist/components/flex/flex.d.ts +0 -9
  339. package/dist/components/flex/flex.js +0 -115
  340. package/dist/components/flex/flex.js.map +0 -1
  341. package/dist/components/flex/flex.types.d.ts +0 -42
  342. package/dist/components/flex/index.d.ts +0 -3
  343. package/dist/components/header/header.a11y.d.ts +0 -14
  344. package/dist/components/header/header.a11y.js +0 -12
  345. package/dist/components/header/header.a11y.js.map +0 -1
  346. package/dist/components/inline/index.d.ts +0 -8
  347. package/dist/components/inline/index.js +0 -13
  348. package/dist/components/inline/index.js.map +0 -1
  349. package/dist/components/list-group/index.d.ts +0 -2
  350. package/dist/components/list-group/list-group.d.ts +0 -9
  351. package/dist/components/list-group/list-group.js +0 -43
  352. package/dist/components/list-group/list-group.js.map +0 -1
  353. package/dist/components/list-group/list-group.types.d.ts +0 -32
  354. package/dist/components/navbar/navbar-panel.js +0 -42
  355. package/dist/components/navbar/navbar-panel.js.map +0 -1
  356. package/dist/components/navbar/navbar.context.js +0 -13
  357. package/dist/components/navbar/navbar.context.js.map +0 -1
  358. package/dist/components/navbar/navbar.render.js +0 -26
  359. package/dist/components/navbar/navbar.render.js.map +0 -1
  360. package/dist/components/navbar/navbar.shared.js +0 -18
  361. package/dist/components/navbar/navbar.shared.js.map +0 -1
  362. package/dist/components/pagination/index.d.ts +0 -2
  363. package/dist/components/pagination/pagination.d.ts +0 -11
  364. package/dist/components/pagination/pagination.js +0 -95
  365. package/dist/components/pagination/pagination.js.map +0 -1
  366. package/dist/components/pagination/pagination.types.d.ts +0 -40
  367. package/dist/components/section/section.a11y.d.ts +0 -15
  368. package/dist/components/separator/separator.a11y.d.ts +0 -17
  369. package/dist/components/separator/separator.a11y.js +0 -15
  370. package/dist/components/separator/separator.a11y.js.map +0 -1
  371. package/dist/components/shell/index.d.ts +0 -3
  372. package/dist/components/shell/shell-nav.types.d.ts +0 -7
  373. package/dist/components/shell/shell-panel.js +0 -54
  374. package/dist/components/shell/shell-panel.js.map +0 -1
  375. package/dist/components/shell/shell-responsive.js +0 -118
  376. package/dist/components/shell/shell-responsive.js.map +0 -1
  377. package/dist/components/shell/shell.a11y.d.ts +0 -23
  378. package/dist/components/shell/shell.a11y.js +0 -23
  379. package/dist/components/shell/shell.a11y.js.map +0 -1
  380. package/dist/components/shell/shell.d.ts +0 -13
  381. package/dist/components/shell/shell.js +0 -69
  382. package/dist/components/shell/shell.js.map +0 -1
  383. package/dist/components/shell/shell.types.d.ts +0 -58
  384. package/dist/components/sidebar/sidebar-panel.d.ts +0 -7
  385. package/dist/components/sidebar/sidebar-panel.js +0 -49
  386. package/dist/components/sidebar/sidebar-panel.js.map +0 -1
  387. package/dist/components/sidebar/sidebar-toggle.d.ts +0 -7
  388. package/dist/components/sidebar/sidebar-toggle.js +0 -8
  389. package/dist/components/sidebar/sidebar-toggle.js.map +0 -1
  390. package/dist/components/sidebar/sidebar.context.js +0 -21
  391. package/dist/components/sidebar/sidebar.context.js.map +0 -1
  392. package/dist/components/sidebar/sidebar.shared.js +0 -12
  393. package/dist/components/sidebar/sidebar.shared.js.map +0 -1
  394. package/dist/components/skeleton/skeleton.a11y.d.ts +0 -16
  395. package/dist/components/spacer/index.d.ts +0 -3
  396. package/dist/components/spacer/spacer.a11y.d.ts +0 -17
  397. package/dist/components/spacer/spacer.d.ts +0 -8
  398. package/dist/components/spacer/spacer.js +0 -49
  399. package/dist/components/spacer/spacer.js.map +0 -1
  400. package/dist/components/spacer/spacer.types.d.ts +0 -26
  401. package/dist/components/stack/index.d.ts +0 -3
  402. package/dist/components/stack/stack.a11y.d.ts +0 -18
  403. package/dist/components/stack/stack.d.ts +0 -8
  404. package/dist/components/stack/stack.js +0 -16
  405. package/dist/components/stack/stack.js.map +0 -1
  406. package/dist/components/stack/stack.types.d.ts +0 -22
  407. package/dist/feedback.d.ts +0 -5
  408. package/dist/feedback.js +0 -4
  409. package/dist/layouts.d.ts +0 -25
  410. package/dist/layouts.js +0 -11
  411. package/dist/shells.d.ts +0 -16
  412. package/dist/shells.js +0 -11
  413. package/src/components/_internal/box-layout.ts +0 -164
  414. package/src/components/_internal/layout.ts +0 -211
  415. package/src/components/box/box.a11y.ts +0 -11
  416. package/src/components/box/box.tsx +0 -38
  417. package/src/components/box/box.types.ts +0 -76
  418. package/src/components/box/index.ts +0 -11
  419. package/src/components/breadcrumb/breadcrumb.a11y.ts +0 -15
  420. package/src/components/breadcrumb/breadcrumb.tsx +0 -123
  421. package/src/components/breadcrumb/breadcrumb.types.ts +0 -74
  422. package/src/components/breadcrumb/index.ts +0 -24
  423. package/src/components/flex/flex.a11y.ts +0 -19
  424. package/src/components/flex/flex.tsx +0 -162
  425. package/src/components/flex/flex.types.ts +0 -51
  426. package/src/components/flex/index.ts +0 -16
  427. package/src/components/inline/index.tsx +0 -28
  428. package/src/components/list-group/index.ts +0 -7
  429. package/src/components/list-group/list-group.tsx +0 -74
  430. package/src/components/list-group/list-group.types.ts +0 -32
  431. package/src/components/navbar/navbar-panel.tsx +0 -62
  432. package/src/components/navbar/navbar.context.ts +0 -22
  433. package/src/components/navbar/navbar.render.tsx +0 -32
  434. package/src/components/navbar/navbar.shared.ts +0 -21
  435. package/src/components/pagination/index.ts +0 -8
  436. package/src/components/pagination/pagination.tsx +0 -158
  437. package/src/components/pagination/pagination.types.ts +0 -41
  438. package/src/components/shell/index.ts +0 -16
  439. package/src/components/shell/shell-nav.types.ts +0 -3
  440. package/src/components/shell/shell-panel.tsx +0 -85
  441. package/src/components/shell/shell-responsive.tsx +0 -246
  442. package/src/components/shell/shell.a11y.ts +0 -20
  443. package/src/components/shell/shell.tsx +0 -74
  444. package/src/components/shell/shell.types.ts +0 -71
  445. package/src/components/sidebar/sidebar-panel.tsx +0 -67
  446. package/src/components/sidebar/sidebar-toggle.tsx +0 -5
  447. package/src/components/sidebar/sidebar.context.ts +0 -40
  448. package/src/components/sidebar/sidebar.shared.ts +0 -12
  449. package/src/components/spacer/index.ts +0 -9
  450. package/src/components/spacer/spacer.a11y.ts +0 -14
  451. package/src/components/spacer/spacer.tsx +0 -61
  452. package/src/components/spacer/spacer.types.ts +0 -31
  453. package/src/components/stack/index.ts +0 -3
  454. package/src/components/stack/stack.a11y.ts +0 -15
  455. package/src/components/stack/stack.tsx +0 -13
  456. package/src/components/stack/stack.types.ts +0 -22
  457. package/src/feedback.ts +0 -6
  458. package/src/layouts.ts +0 -19
  459. package/src/shells.ts +0 -13
  460. package/src/themes/default/styles/actions/toggle.css +0 -50
  461. package/src/themes/default/styles/disclosure/collapsible.css +0 -58
  462. package/src/themes/default/styles/display/list-group.css +0 -84
  463. package/src/themes/default/styles/forms/form.css +0 -5
  464. package/src/themes/default/styles/layout/responsive-layout.css +0 -230
  465. package/src/themes/default/styles/navigation/breadcrumb.css +0 -45
  466. package/src/themes/default/styles/navigation/menu.css +0 -203
  467. package/src/themes/default/styles/navigation/menubar.css +0 -255
  468. package/src/themes/default/styles/navigation/pagination.css +0 -91
  469. package/src/themes/default/styles/shell/theme.css +0 -37
  470. package/templates/theme/styles/actions/toggle.css +0 -50
  471. package/templates/theme/styles/disclosure/collapsible.css +0 -58
  472. package/templates/theme/styles/display/list-group.css +0 -84
  473. package/templates/theme/styles/forms/form.css +0 -5
  474. package/templates/theme/styles/layout/responsive-layout.css +0 -230
  475. package/templates/theme/styles/navigation/breadcrumb.css +0 -45
  476. package/templates/theme/styles/navigation/menu.css +0 -203
  477. package/templates/theme/styles/navigation/menubar.css +0 -255
  478. package/templates/theme/styles/navigation/pagination.css +0 -91
  479. package/templates/theme/styles/shell/theme.css +0 -37
@@ -1,246 +0,0 @@
1
- import { For } from "@askrjs/askr/control";
2
- import { resource } from "@askrjs/askr/resources";
3
- import type { JSXElement } from "@askrjs/askr/foundations";
4
- import { isJsxElement, toChildArray } from "../_internal/jsx";
5
-
6
- export type ShellResponsivePanelProps = {
7
- active: boolean;
8
- collapseLabel: string;
9
- onClose: () => void;
10
- open: boolean;
11
- panelId?: string;
12
- };
13
-
14
- let shellScrollLockCount = 0;
15
- let shellScrollLockPreviousValue: string | null = null;
16
-
17
- function acquireShellScrollLock(): void {
18
- if (typeof document === "undefined") return;
19
-
20
- const body = document.body;
21
- if (shellScrollLockCount === 0) {
22
- shellScrollLockPreviousValue = body.getAttribute("data-shell-scroll-lock");
23
- }
24
-
25
- shellScrollLockCount += 1;
26
- body.setAttribute("data-shell-scroll-lock", "true");
27
- }
28
-
29
- function releaseShellScrollLock(): void {
30
- if (typeof document === "undefined" || shellScrollLockCount === 0) return;
31
-
32
- shellScrollLockCount -= 1;
33
- if (shellScrollLockCount > 0) return;
34
-
35
- const body = document.body;
36
- if (shellScrollLockPreviousValue === null) {
37
- body.removeAttribute("data-shell-scroll-lock");
38
- } else {
39
- body.setAttribute("data-shell-scroll-lock", shellScrollLockPreviousValue);
40
- }
41
-
42
- shellScrollLockPreviousValue = null;
43
- }
44
-
45
- export function isShellPanelChild(child: unknown, panelComponent: unknown): child is JSXElement {
46
- return isJsxElement(child) && child.type === panelComponent;
47
- }
48
-
49
- export function renderKeyedShellChildren(children: unknown, keyPrefix: string): JSX.Element {
50
- const childList = toChildArray(children);
51
- const needsKeying = childList.some((child) => isJsxElement(child) && child.key == null);
52
- const keyedChildren = needsKeying
53
- ? childList.map((child, index) => {
54
- if (!isJsxElement(child) || child.key != null) {
55
- return child;
56
- }
57
-
58
- return {
59
- ...child,
60
- key: `${keyPrefix}-${index}`,
61
- };
62
- })
63
- : childList;
64
-
65
- return (
66
- <For
67
- each={() => keyedChildren}
68
- by={(child, index) =>
69
- isJsxElement(child) && child.key != null ? String(child.key) : `${keyPrefix}-${index}`
70
- }
71
- >
72
- {(child) => child as never}
73
- </For>
74
- );
75
- }
76
-
77
- export function renderKeyedShellPanelChildren(
78
- children: unknown,
79
- keyPrefix: string,
80
- panelProps: ShellResponsivePanelProps,
81
- ): JSX.Element {
82
- const childList = toChildArray(children);
83
- const needsPanelProps = childList.some((child) => {
84
- if (!isJsxElement(child)) {
85
- return false;
86
- }
87
-
88
- const props = child.props as Record<string, unknown> | undefined;
89
-
90
- return (
91
- props?.active !== panelProps.active ||
92
- props?.collapseLabel !== panelProps.collapseLabel ||
93
- props?.onClose !== panelProps.onClose ||
94
- props?.open !== panelProps.open ||
95
- props?.panelId !== panelProps.panelId
96
- );
97
- });
98
- const keyedChildren = needsPanelProps
99
- ? childList.map((child, index) => {
100
- if (!isJsxElement(child)) {
101
- return child;
102
- }
103
-
104
- const props = child.props as Record<string, unknown> | undefined;
105
-
106
- if (
107
- props?.active === panelProps.active &&
108
- props?.collapseLabel === panelProps.collapseLabel &&
109
- props?.onClose === panelProps.onClose &&
110
- props?.open === panelProps.open &&
111
- props?.panelId === panelProps.panelId
112
- ) {
113
- return child;
114
- }
115
-
116
- return {
117
- ...child,
118
- key: child.key != null ? child.key : `${keyPrefix}-${index}`,
119
- props: {
120
- ...props,
121
- active: panelProps.active,
122
- collapseLabel: panelProps.collapseLabel,
123
- onClose: panelProps.onClose,
124
- open: panelProps.open,
125
- panelId: panelProps.panelId,
126
- },
127
- };
128
- })
129
- : childList;
130
-
131
- return (
132
- <For
133
- each={() => keyedChildren}
134
- by={(child, index) =>
135
- isJsxElement(child) && child.key != null ? String(child.key) : `${keyPrefix}-${index}`
136
- }
137
- >
138
- {(child) => child as never}
139
- </For>
140
- );
141
- }
142
-
143
- export function ShellResponsiveWatcher<TBreakpoint extends string>(props: {
144
- breakpoint: TBreakpoint;
145
- isCollapsed: (breakpoint: TBreakpoint) => boolean;
146
- onExpand: () => void;
147
- onResize: (nextCollapsed: boolean) => void;
148
- }): JSX.Element | null {
149
- const { breakpoint, isCollapsed, onExpand, onResize } = props;
150
-
151
- resource(
152
- ({ signal }: { signal: AbortSignal }) => {
153
- const updateCollapsedState = () => {
154
- const nextCollapsed = isCollapsed(breakpoint);
155
- onResize(nextCollapsed);
156
-
157
- if (!nextCollapsed) {
158
- onExpand();
159
- }
160
- };
161
-
162
- updateCollapsedState();
163
-
164
- if (typeof window === "undefined") {
165
- return null;
166
- }
167
-
168
- window.addEventListener("resize", updateCollapsedState);
169
- signal.addEventListener(
170
- "abort",
171
- () => {
172
- window.removeEventListener("resize", updateCollapsedState);
173
- },
174
- { once: true },
175
- );
176
-
177
- return null;
178
- },
179
- [breakpoint],
180
- );
181
-
182
- return null;
183
- }
184
-
185
- export function ShellPanelWatcher(props: {
186
- contentId?: string;
187
- onClose: () => void;
188
- open: boolean;
189
- panelSlot: string;
190
- }): JSX.Element | null {
191
- const { contentId, onClose, open, panelSlot } = props;
192
-
193
- resource(
194
- ({ signal }: { signal: AbortSignal }) => {
195
- if (!open || typeof window === "undefined") {
196
- releaseShellScrollLock();
197
- return null;
198
- }
199
-
200
- const onKeyDown = (event: KeyboardEvent) => {
201
- if (event.key !== "Escape") {
202
- return;
203
- }
204
-
205
- event.preventDefault();
206
- onClose();
207
- };
208
-
209
- window.addEventListener("keydown", onKeyDown);
210
-
211
- const focusFrame =
212
- typeof window.requestAnimationFrame === "function"
213
- ? window.requestAnimationFrame(() => {
214
- const content =
215
- (typeof contentId === "string" ? document.getElementById(contentId) : null) ??
216
- document.querySelector<HTMLElement>(
217
- `[data-slot="${panelSlot}"][data-state="open"]`,
218
- );
219
-
220
- content?.focus({ preventScroll: true });
221
- })
222
- : undefined;
223
-
224
- acquireShellScrollLock();
225
-
226
- signal.addEventListener(
227
- "abort",
228
- () => {
229
- window.removeEventListener("keydown", onKeyDown);
230
-
231
- if (focusFrame !== undefined && typeof window.cancelAnimationFrame === "function") {
232
- window.cancelAnimationFrame(focusFrame);
233
- }
234
-
235
- releaseShellScrollLock();
236
- },
237
- { once: true },
238
- );
239
-
240
- return null;
241
- },
242
- [open],
243
- );
244
-
245
- return null;
246
- }
@@ -1,20 +0,0 @@
1
- export const SHELL_A11Y_CONTRACT = {
2
- DATA_ATTRIBUTES: {
3
- slot: "data-slot" as const,
4
- layout: "data-ak-layout" as const,
5
- variant: "data-variant" as const,
6
- gap: "data-gap" as const,
7
- },
8
- SLOT_VALUES: {
9
- root: "shell" as const,
10
- nav: "shell-nav" as const,
11
- main: "shell-main" as const,
12
- },
13
- VARIANT_VALUES: {
14
- sidebar: "sidebar" as const,
15
- topbar: "topbar" as const,
16
- rail: "rail" as const,
17
- },
18
- } as const;
19
-
20
- export type ShellA11yContract = typeof SHELL_A11Y_CONTRACT;
@@ -1,74 +0,0 @@
1
- import { Slot } from "@askrjs/askr/foundations";
2
- import { classes } from "../_internal/classes";
3
- import { mergeProps } from "../_internal/merge-props";
4
- import type {
5
- ShellAsChildProps,
6
- ShellDivProps,
7
- ShellMainAsChildProps,
8
- ShellMainDivProps,
9
- ShellMainMainProps,
10
- ShellNavAsChildProps,
11
- ShellNavDivProps,
12
- } from "./shell.types";
13
-
14
- export function Shell(props: ShellDivProps): JSX.Element;
15
- export function Shell(props: ShellAsChildProps): JSX.Element;
16
- export function Shell(props: ShellDivProps | ShellAsChildProps) {
17
- const { asChild, children, class: className, variant = "sidebar", ref, ...rest } = props;
18
-
19
- const finalProps = mergeProps(rest, {
20
- ref,
21
- class: classes("shell", className),
22
- "data-slot": "shell",
23
- "data-ak-layout": "true",
24
- "data-variant": variant,
25
- });
26
-
27
- if (asChild) {
28
- return <Slot asChild {...finalProps} children={children as JSX.Element} />;
29
- }
30
-
31
- return <div {...finalProps}>{children}</div>;
32
- }
33
-
34
- export function ShellNav(props: ShellNavDivProps): JSX.Element;
35
- export function ShellNav(props: ShellNavAsChildProps): JSX.Element;
36
- export function ShellNav(props: ShellNavDivProps | ShellNavAsChildProps) {
37
- const { asChild, children, class: className, ref, ...rest } = props;
38
- const finalProps = mergeProps(rest, {
39
- ref,
40
- class: classes("shell-nav", className),
41
- "data-slot": "shell-nav",
42
- "data-ak-layout": "true",
43
- });
44
-
45
- if (asChild) {
46
- return <Slot asChild {...finalProps} children={children as JSX.Element} />;
47
- }
48
-
49
- return <div {...finalProps}>{children}</div>;
50
- }
51
-
52
- export function ShellMain(props: ShellMainMainProps): JSX.Element;
53
- export function ShellMain(props: ShellMainDivProps): JSX.Element;
54
- export function ShellMain(props: ShellMainAsChildProps): JSX.Element;
55
- export function ShellMain(props: ShellMainMainProps | ShellMainDivProps | ShellMainAsChildProps) {
56
- const as = "as" in props ? props.as : "main";
57
- const { asChild, children, class: className, ref, ...rest } = props;
58
- const finalProps = mergeProps(rest, {
59
- ref,
60
- class: classes("shell-main", className),
61
- "data-slot": "shell-main",
62
- "data-ak-layout": "true",
63
- });
64
-
65
- if (asChild) {
66
- return <Slot asChild {...finalProps} children={children as JSX.Element} />;
67
- }
68
-
69
- if (as === "div") {
70
- return <div {...finalProps}>{children}</div>;
71
- }
72
-
73
- return <main {...finalProps}>{children}</main>;
74
- }
@@ -1,71 +0,0 @@
1
- import type { JSXElement } from "@askrjs/askr/foundations";
2
- import type { Ref } from "@askrjs/askr/foundations/utilities";
3
-
4
- export type ShellVariant = "sidebar" | "topbar" | "rail";
5
-
6
- export type ShellOwnProps = {
7
- variant?: ShellVariant;
8
- class?: string;
9
- children?: unknown;
10
- };
11
-
12
- export type ShellDivProps = Omit<JSX.IntrinsicElements["div"], "children" | "ref"> &
13
- ShellOwnProps & {
14
- asChild?: false;
15
- ref?: Ref<HTMLDivElement>;
16
- };
17
-
18
- export type ShellAsChildProps = Omit<ShellOwnProps, "as"> & {
19
- asChild: true;
20
- children: JSXElement;
21
- ref?: Ref<unknown>;
22
- };
23
-
24
- export type ShellProps = ShellDivProps | ShellAsChildProps;
25
-
26
- export type ShellNavOwnProps = {
27
- class?: string;
28
- children?: unknown;
29
- };
30
-
31
- export type ShellNavDivProps = Omit<JSX.IntrinsicElements["div"], "children" | "ref"> &
32
- ShellNavOwnProps & {
33
- asChild?: false;
34
- ref?: Ref<HTMLDivElement>;
35
- };
36
-
37
- export type ShellNavAsChildProps = Omit<ShellNavOwnProps, "as"> & {
38
- asChild: true;
39
- children: JSXElement;
40
- ref?: Ref<unknown>;
41
- };
42
-
43
- export type ShellNavProps = ShellNavDivProps | ShellNavAsChildProps;
44
-
45
- export type ShellMainOwnProps = {
46
- as?: "main" | "div";
47
- class?: string;
48
- children?: unknown;
49
- };
50
-
51
- export type ShellMainMainProps = Omit<JSX.IntrinsicElements["main"], "children" | "ref"> &
52
- ShellMainOwnProps & {
53
- as?: "main";
54
- asChild?: false;
55
- ref?: Ref<HTMLElement>;
56
- };
57
-
58
- export type ShellMainDivProps = Omit<JSX.IntrinsicElements["div"], "children" | "ref"> &
59
- ShellMainOwnProps & {
60
- as: "div";
61
- asChild?: false;
62
- ref?: Ref<HTMLDivElement>;
63
- };
64
-
65
- export type ShellMainAsChildProps = Omit<ShellMainOwnProps, "as"> & {
66
- asChild: true;
67
- children: JSXElement;
68
- ref?: Ref<unknown>;
69
- };
70
-
71
- export type ShellMainProps = ShellMainMainProps | ShellMainDivProps | ShellMainAsChildProps;
@@ -1,67 +0,0 @@
1
- import { readContext } from "@askrjs/askr";
2
- import { renderShellPanel } from "../shell/shell-panel";
3
- import { SidebarResponsiveContext } from "./sidebar.context";
4
- import type { SidebarPanelProps } from "./sidebar.types";
5
-
6
- const DEFAULT_SIDEBAR_RESPONSIVE_CONTEXT = {
7
- active: () => false,
8
- collapseLabel: () => "Menu",
9
- closePanel: () => undefined,
10
- iconCollapsed: () => false,
11
- isRailCollapsible: () => false,
12
- orientation: () => "vertical" as const,
13
- panelId: () => undefined,
14
- panelOpen: () => false,
15
- togglePanel: () => undefined,
16
- toggleRail: () => undefined,
17
- };
18
-
19
- export function SidebarPanel(props: SidebarPanelProps): JSX.Element | null {
20
- const {
21
- active: activeProp,
22
- brand,
23
- children,
24
- class: className,
25
- collapseLabel: collapseLabelProp,
26
- onClose,
27
- open: openProp,
28
- panelId: panelIdProp,
29
- ref,
30
- ...rest
31
- } = props;
32
- const needsResponsiveContext =
33
- activeProp === undefined ||
34
- collapseLabelProp === undefined ||
35
- onClose === undefined ||
36
- openProp === undefined ||
37
- panelIdProp === undefined;
38
- const responsive = needsResponsiveContext
39
- ? (() => {
40
- try {
41
- return readContext(SidebarResponsiveContext);
42
- } catch {
43
- return DEFAULT_SIDEBAR_RESPONSIVE_CONTEXT;
44
- }
45
- })()
46
- : DEFAULT_SIDEBAR_RESPONSIVE_CONTEXT;
47
- const active = activeProp ?? responsive.active();
48
- const open = openProp ?? responsive.panelOpen();
49
- const panelId = panelIdProp ?? responsive.panelId();
50
- const collapseLabel = collapseLabelProp ?? responsive.collapseLabel();
51
- const closePanel = onClose ?? responsive.closePanel;
52
-
53
- return renderShellPanel({
54
- active,
55
- brand,
56
- children,
57
- className,
58
- collapseLabel,
59
- dataOrientation: responsive.orientation(),
60
- onClose: closePanel,
61
- open,
62
- panelId,
63
- prefix: "sidebar",
64
- ref,
65
- rest,
66
- });
67
- }
@@ -1,5 +0,0 @@
1
- import type { SidebarToggleProps } from "./sidebar.types";
2
-
3
- export function SidebarToggle(_props: SidebarToggleProps): null {
4
- return null;
5
- }
@@ -1,40 +0,0 @@
1
- import { defineContext } from "@askrjs/askr";
2
-
3
- export type SidebarContextValue = {
4
- orientation: () => "vertical";
5
- };
6
-
7
- export type SidebarResponsiveContextValue = {
8
- active: () => boolean;
9
- collapseLabel: () => string;
10
- closePanel: () => void;
11
- iconCollapsed: () => boolean;
12
- isRailCollapsible: () => boolean;
13
- orientation: () => "vertical";
14
- panelId: () => string | undefined;
15
- panelOpen: () => boolean;
16
- togglePanel: () => void;
17
- toggleRail: () => void;
18
- };
19
-
20
- const defaultOrientation = () => "vertical" as const;
21
-
22
- const defaultResponsiveContext: SidebarResponsiveContextValue = {
23
- active: () => false,
24
- collapseLabel: () => "Menu",
25
- closePanel: () => undefined,
26
- iconCollapsed: () => false,
27
- isRailCollapsible: () => false,
28
- orientation: defaultOrientation,
29
- panelId: () => undefined,
30
- panelOpen: () => false,
31
- togglePanel: () => undefined,
32
- toggleRail: () => undefined,
33
- };
34
-
35
- export const SidebarContext = defineContext<SidebarContextValue>({
36
- orientation: defaultOrientation,
37
- });
38
-
39
- export const SidebarResponsiveContext =
40
- defineContext<SidebarResponsiveContextValue>(defaultResponsiveContext);
@@ -1,12 +0,0 @@
1
- import { NAVBAR_COLLAPSE_BREAKPOINTS, isNavbarCollapsed } from "../navbar/navbar.shared";
2
- import type { CollapseBreakpoint, Collapsible } from "../shell/shell-nav.types";
3
-
4
- export { NAVBAR_COLLAPSE_BREAKPOINTS, isNavbarCollapsed };
5
-
6
- export function resolveSidebarCollapsible(collapsible: Collapsible | undefined): Collapsible {
7
- return collapsible ?? "none";
8
- }
9
-
10
- export function isSidebarCollapsed(breakpoint: CollapseBreakpoint): boolean {
11
- return isNavbarCollapsed(breakpoint);
12
- }
@@ -1,9 +0,0 @@
1
- export { Spacer } from "./spacer";
2
- export { SPACER_A11Y_CONTRACT, type SpacerA11yContract } from "./spacer.a11y";
3
- export type {
4
- SpacerProps,
5
- SpacerOwnProps,
6
- SpacerAxis,
7
- SpacerNativeProps,
8
- SpacerAsChildProps,
9
- } from "./spacer.types";
@@ -1,14 +0,0 @@
1
- export const SPACER_A11Y_CONTRACT = {
2
- DATA_ATTRIBUTES: {
3
- slot: "data-slot" as const,
4
- axis: "data-axis" as const,
5
- grow: "data-grow" as const,
6
- shrink: "data-shrink" as const,
7
- basis: "data-basis" as const,
8
- },
9
- SLOT_VALUES: {
10
- root: "spacer" as const,
11
- },
12
- } as const;
13
-
14
- export type SpacerA11yContract = typeof SPACER_A11Y_CONTRACT;
@@ -1,61 +0,0 @@
1
- import { Slot } from "@askrjs/askr/foundations";
2
- import { mergeProps } from "../_internal/merge-props";
3
- import { isCssLength, mergeLayoutStyles } from "../_internal/layout";
4
- import { styleDeclarationsToClass } from "../_internal/style";
5
- import { isJsxElement, toChildArray } from "../_internal/jsx";
6
- import type { SpacerAsChildProps, SpacerNativeProps } from "./spacer.types";
7
-
8
- export function Spacer(props: SpacerNativeProps): JSX.Element;
9
- export function Spacer(props: SpacerAsChildProps): JSX.Element;
10
- export function Spacer(props: SpacerNativeProps | SpacerAsChildProps) {
11
- const { asChild, children, grow, shrink, basis, axis, ref, style: userStyle, ...rest } = props;
12
-
13
- const layoutStyle: Record<string, string | number> = {};
14
-
15
- if (axis === "inline") {
16
- if (shrink !== undefined && shrink !== 0) {
17
- layoutStyle.flexShrink = shrink;
18
- }
19
- if (isCssLength(basis)) layoutStyle.width = basis!;
20
- } else if (axis === "block") {
21
- if (shrink !== undefined && shrink !== 0) {
22
- layoutStyle.flexShrink = shrink;
23
- }
24
- if (isCssLength(basis)) layoutStyle.height = basis!;
25
- } else {
26
- if (grow !== undefined && grow !== 1) {
27
- layoutStyle.flexGrow = grow;
28
- }
29
- if (shrink !== undefined && shrink !== 1) {
30
- layoutStyle.flexShrink = shrink;
31
- }
32
- if (isCssLength(basis)) {
33
- layoutStyle.flexBasis = basis!;
34
- }
35
- }
36
-
37
- const layoutClass = styleDeclarationsToClass(mergeLayoutStyles(layoutStyle, userStyle));
38
-
39
- const finalProps = mergeProps(rest, {
40
- ref,
41
- "data-slot": "spacer",
42
- "data-axis": axis,
43
- ...(layoutClass ? { class: layoutClass } : {}),
44
- });
45
- const keyedChildren = toChildArray(children).map((child, index) => {
46
- if (!isJsxElement(child) || child.key != null) {
47
- return child;
48
- }
49
-
50
- return {
51
- ...child,
52
- key: `spacer-${index}`,
53
- };
54
- });
55
-
56
- if (asChild) {
57
- return <Slot asChild {...finalProps} children={children} />;
58
- }
59
-
60
- return <div {...finalProps}>{keyedChildren}</div>;
61
- }
@@ -1,31 +0,0 @@
1
- import type { JSXElement } from "@askrjs/askr/foundations";
2
- import type { Ref } from "@askrjs/askr/foundations/utilities";
3
-
4
- export type SpacerAxis = "inline" | "block";
5
-
6
- export type SpacerOwnProps = {
7
- /** flex-grow factor (default 1 when no axis is set). */
8
- grow?: number;
9
- /** flex-shrink factor (default 1 when no axis is set, 0 when axis is set). */
10
- shrink?: number;
11
- /** CSS flex-basis / width (axis=inline) / height (axis=block) value. */
12
- basis?: string;
13
- /** When set, renders a fixed space along the given axis instead of a flex-grow spacer. */
14
- axis?: SpacerAxis;
15
- children?: unknown;
16
- };
17
-
18
- export type SpacerNativeProps = Omit<JSX.IntrinsicElements["div"], "children" | "ref"> &
19
- SpacerOwnProps & {
20
- asChild?: false;
21
- ref?: Ref<HTMLDivElement>;
22
- };
23
-
24
- export type SpacerAsChildProps = SpacerOwnProps & {
25
- asChild: true;
26
- children: JSXElement;
27
- ref?: Ref<unknown>;
28
- style?: JSX.IntrinsicElements["div"]["style"];
29
- };
30
-
31
- export type SpacerProps = SpacerNativeProps | SpacerAsChildProps;
@@ -1,3 +0,0 @@
1
- export { Stack } from "./stack";
2
- export { STACK_A11Y_CONTRACT, type StackA11yContract } from "./stack.a11y";
3
- export type { StackProps, StackOwnProps, StackDivProps, StackAsChildProps } from "./stack.types";
@@ -1,15 +0,0 @@
1
- export const STACK_A11Y_CONTRACT = {
2
- DATA_ATTRIBUTES: {
3
- slot: "data-slot" as const,
4
- layout: "data-ak-layout" as const,
5
- gap: "data-gap" as const,
6
- align: "data-align" as const,
7
- justify: "data-justify" as const,
8
- wrap: "data-wrap" as const,
9
- },
10
- SLOT_VALUES: {
11
- root: "stack" as const,
12
- },
13
- } as const;
14
-
15
- export type StackA11yContract = typeof STACK_A11Y_CONTRACT;
@@ -1,13 +0,0 @@
1
- import { Flex } from "../flex";
2
- import type { StackAsChildProps, StackDivProps } from "./stack.types";
3
-
4
- export function Stack(props: StackDivProps): JSX.Element;
5
- export function Stack(props: StackAsChildProps): JSX.Element;
6
- export function Stack(props: StackDivProps | StackAsChildProps) {
7
- const { children, ...rest } = props;
8
- return (
9
- <Flex {...(rest as Record<string, unknown>)} data-slot="stack" direction="column">
10
- {children}
11
- </Flex>
12
- );
13
- }