@ketvietlab/design-system 0.1.9 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +92 -6
  2. package/dist/atlas/README.md +35 -0
  3. package/dist/atlas/adapter.schema.json +78 -0
  4. package/dist/atlas/profile.json +43 -0
  5. package/dist/atlas-cli.d.ts +3 -0
  6. package/dist/atlas-cli.d.ts.map +1 -0
  7. package/dist/atlas-cli.js +213 -0
  8. package/dist/atlas-cli.js.map +1 -0
  9. package/dist/catalogue/catalogue.css +198 -5
  10. package/dist/catalogue/groups.d.ts +11 -0
  11. package/dist/catalogue/groups.d.ts.map +1 -0
  12. package/dist/catalogue/groups.js +47 -0
  13. package/dist/catalogue/groups.js.map +1 -0
  14. package/dist/catalogue/index.d.ts +16 -17
  15. package/dist/catalogue/index.d.ts.map +1 -1
  16. package/dist/catalogue/index.js +39 -751
  17. package/dist/catalogue/index.js.map +1 -1
  18. package/dist/catalogue/inventory-policy.json +560 -0
  19. package/dist/catalogue/inventory.css +574 -0
  20. package/dist/catalogue/inventory.d.ts +16 -0
  21. package/dist/catalogue/inventory.d.ts.map +1 -0
  22. package/dist/catalogue/inventory.generated.d.ts +42 -0
  23. package/dist/catalogue/inventory.generated.d.ts.map +1 -0
  24. package/dist/catalogue/inventory.generated.js +3 -0
  25. package/dist/catalogue/inventory.generated.js.map +1 -0
  26. package/dist/catalogue/inventory.generated.json +9993 -0
  27. package/dist/catalogue/inventory.js +48 -0
  28. package/dist/catalogue/inventory.js.map +1 -0
  29. package/dist/catalogue/registry.d.ts +12 -0
  30. package/dist/catalogue/registry.d.ts.map +1 -0
  31. package/dist/catalogue/registry.js +134 -0
  32. package/dist/catalogue/registry.js.map +1 -0
  33. package/dist/catalogue/specimens.d.ts +15 -0
  34. package/dist/catalogue/specimens.d.ts.map +1 -0
  35. package/dist/catalogue/specimens.js +1186 -0
  36. package/dist/catalogue/specimens.js.map +1 -0
  37. package/dist/catalogue/styles.css +1 -0
  38. package/dist/contract/index.d.ts.map +1 -1
  39. package/dist/contract/index.js +64 -18
  40. package/dist/contract/index.js.map +1 -1
  41. package/dist/data-display/data-grid/index.d.ts +22 -0
  42. package/dist/data-display/data-grid/index.d.ts.map +1 -0
  43. package/dist/data-display/data-grid/index.js +15 -0
  44. package/dist/data-display/data-grid/index.js.map +1 -0
  45. package/dist/data-display/data-grid/styles.css +49 -0
  46. package/dist/data-display/resource-list/index.d.ts +22 -0
  47. package/dist/data-display/resource-list/index.d.ts.map +1 -0
  48. package/dist/data-display/resource-list/index.js +21 -0
  49. package/dist/data-display/resource-list/index.js.map +1 -0
  50. package/dist/data-display/resource-list/styles.css +39 -0
  51. package/dist/data-display/tree/index.d.ts +33 -0
  52. package/dist/data-display/tree/index.d.ts.map +1 -0
  53. package/dist/data-display/tree/index.js +21 -0
  54. package/dist/data-display/tree/index.js.map +1 -0
  55. package/dist/data-display/tree/styles.css +45 -0
  56. package/dist/data-operations/inline-edit/index.d.ts +19 -0
  57. package/dist/data-operations/inline-edit/index.d.ts.map +1 -0
  58. package/dist/data-operations/inline-edit/index.js +5 -0
  59. package/dist/data-operations/inline-edit/index.js.map +1 -0
  60. package/dist/data-operations/inline-edit/styles.css +34 -0
  61. package/dist/data-operations/list-controls/index.d.ts +67 -0
  62. package/dist/data-operations/list-controls/index.d.ts.map +1 -0
  63. package/dist/data-operations/list-controls/index.js +35 -0
  64. package/dist/data-operations/list-controls/index.js.map +1 -0
  65. package/dist/data-operations/list-controls/styles.css +82 -0
  66. package/dist/forms/combobox/index.d.ts +39 -0
  67. package/dist/forms/combobox/index.d.ts.map +1 -0
  68. package/dist/forms/combobox/index.js +23 -0
  69. package/dist/forms/combobox/index.js.map +1 -0
  70. package/dist/forms/combobox/styles.css +76 -0
  71. package/dist/forms/date-time/index.d.ts +25 -0
  72. package/dist/forms/date-time/index.d.ts.map +1 -0
  73. package/dist/forms/date-time/index.js +15 -0
  74. package/dist/forms/date-time/index.js.map +1 -0
  75. package/dist/forms/date-time/styles.css +25 -0
  76. package/dist/forms/relation-picker/index.d.ts +12 -0
  77. package/dist/forms/relation-picker/index.d.ts.map +1 -0
  78. package/dist/forms/relation-picker/index.js +13 -0
  79. package/dist/forms/relation-picker/index.js.map +1 -0
  80. package/dist/forms/relation-picker/styles.css +5 -0
  81. package/dist/forms/scalar-fields/index.d.ts +24 -0
  82. package/dist/forms/scalar-fields/index.d.ts.map +1 -0
  83. package/dist/forms/scalar-fields/index.js +23 -0
  84. package/dist/forms/scalar-fields/index.js.map +1 -0
  85. package/dist/forms/scalar-fields/styles.css +52 -0
  86. package/dist/forms/shared.d.ts +19 -0
  87. package/dist/forms/shared.d.ts.map +1 -0
  88. package/dist/forms/shared.js +9 -0
  89. package/dist/forms/shared.js.map +1 -0
  90. package/dist/forms/upload/index.d.ts +20 -0
  91. package/dist/forms/upload/index.d.ts.map +1 -0
  92. package/dist/forms/upload/index.js +11 -0
  93. package/dist/forms/upload/index.js.map +1 -0
  94. package/dist/forms/upload/styles.css +21 -0
  95. package/dist/foundations/reset.css +4 -0
  96. package/dist/foundations/tokens.css +31 -4
  97. package/dist/index.d.ts +78 -35
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +43 -19
  100. package/dist/index.js.map +1 -1
  101. package/dist/interactions/dialog/index.d.ts +25 -0
  102. package/dist/interactions/dialog/index.d.ts.map +1 -0
  103. package/dist/interactions/dialog/index.js +10 -0
  104. package/dist/interactions/dialog/index.js.map +1 -0
  105. package/dist/interactions/dialog/styles.css +11 -0
  106. package/dist/interactions/menu/index.d.ts +27 -0
  107. package/dist/interactions/menu/index.d.ts.map +1 -0
  108. package/dist/interactions/menu/index.js +13 -0
  109. package/dist/interactions/menu/index.js.map +1 -0
  110. package/dist/interactions/menu/styles.css +85 -0
  111. package/dist/interactions/popover/index.d.ts +15 -0
  112. package/dist/interactions/popover/index.d.ts.map +1 -0
  113. package/dist/interactions/popover/index.js +4 -0
  114. package/dist/interactions/popover/index.js.map +1 -0
  115. package/dist/interactions/popover/styles.css +47 -0
  116. package/dist/interactions/skeleton/index.d.ts +7 -0
  117. package/dist/interactions/skeleton/index.d.ts.map +1 -0
  118. package/dist/interactions/skeleton/index.js +5 -0
  119. package/dist/interactions/skeleton/index.js.map +1 -0
  120. package/dist/interactions/skeleton/styles.css +32 -0
  121. package/dist/interactions/spinner/index.d.ts +7 -0
  122. package/dist/interactions/spinner/index.d.ts.map +1 -0
  123. package/dist/interactions/spinner/index.js +4 -0
  124. package/dist/interactions/spinner/index.js.map +1 -0
  125. package/dist/interactions/spinner/styles.css +38 -0
  126. package/dist/interactions/toast/index.d.ts +16 -0
  127. package/dist/interactions/toast/index.d.ts.map +1 -0
  128. package/dist/interactions/toast/index.js +13 -0
  129. package/dist/interactions/toast/index.js.map +1 -0
  130. package/dist/interactions/toast/styles.css +64 -0
  131. package/dist/interactions/tooltip/index.d.ts +9 -0
  132. package/dist/interactions/tooltip/index.d.ts.map +1 -0
  133. package/dist/interactions/tooltip/index.js +4 -0
  134. package/dist/interactions/tooltip/index.js.map +1 -0
  135. package/dist/interactions/tooltip/styles.css +65 -0
  136. package/dist/layouts/app-navigation/index.d.ts +63 -0
  137. package/dist/layouts/app-navigation/index.d.ts.map +1 -0
  138. package/dist/layouts/app-navigation/index.js +50 -0
  139. package/dist/layouts/app-navigation/index.js.map +1 -0
  140. package/dist/layouts/app-navigation/styles.css +331 -0
  141. package/dist/layouts/app-navigation.d.ts +2 -0
  142. package/dist/layouts/app-navigation.d.ts.map +1 -0
  143. package/dist/layouts/app-navigation.js +2 -0
  144. package/dist/layouts/app-navigation.js.map +1 -0
  145. package/dist/layouts/flat/styles.css +74 -0
  146. package/dist/layouts/flat.css +1 -74
  147. package/dist/layouts/grouped/styles.css +131 -0
  148. package/dist/layouts/grouped.css +1 -126
  149. package/dist/layouts/index.d.ts +1 -69
  150. package/dist/layouts/index.d.ts.map +1 -1
  151. package/dist/layouts/index.js +1 -68
  152. package/dist/layouts/index.js.map +1 -1
  153. package/dist/layouts/layout/index.d.ts +70 -0
  154. package/dist/layouts/layout/index.d.ts.map +1 -0
  155. package/dist/layouts/layout/index.js +71 -0
  156. package/dist/layouts/layout/index.js.map +1 -0
  157. package/dist/layouts/layout/styles.css +369 -0
  158. package/dist/layouts/layouts.css +1 -369
  159. package/dist/layouts/shell/index.d.ts +27 -0
  160. package/dist/layouts/shell/index.d.ts.map +1 -0
  161. package/dist/layouts/shell/index.js +24 -0
  162. package/dist/layouts/shell/index.js.map +1 -0
  163. package/dist/layouts/shell/styles.css +168 -0
  164. package/dist/layouts/shell.css +1 -168
  165. package/dist/layouts/shell.d.ts +1 -26
  166. package/dist/layouts/shell.d.ts.map +1 -1
  167. package/dist/layouts/shell.js +1 -23
  168. package/dist/layouts/shell.js.map +1 -1
  169. package/dist/patterns/board-page/index.d.ts +16 -0
  170. package/dist/patterns/board-page/index.d.ts.map +1 -0
  171. package/dist/patterns/board-page/index.js +30 -0
  172. package/dist/patterns/board-page/index.js.map +1 -0
  173. package/dist/patterns/board-page/styles.css +164 -0
  174. package/dist/patterns/board-page.d.ts +1 -13
  175. package/dist/patterns/board-page.d.ts.map +1 -1
  176. package/dist/patterns/board-page.js +1 -27
  177. package/dist/patterns/board-page.js.map +1 -1
  178. package/dist/patterns/dashboard-page/index.d.ts +15 -0
  179. package/dist/patterns/dashboard-page/index.d.ts.map +1 -0
  180. package/dist/patterns/dashboard-page/index.js +27 -0
  181. package/dist/patterns/dashboard-page/index.js.map +1 -0
  182. package/dist/patterns/dashboard-page/styles.css +169 -0
  183. package/dist/patterns/dashboard-page.d.ts +1 -12
  184. package/dist/patterns/dashboard-page.d.ts.map +1 -1
  185. package/dist/patterns/dashboard-page.js +1 -24
  186. package/dist/patterns/dashboard-page.js.map +1 -1
  187. package/dist/patterns/data-table/index.d.ts +74 -0
  188. package/dist/patterns/data-table/index.d.ts.map +1 -0
  189. package/dist/patterns/data-table/index.js +60 -0
  190. package/dist/patterns/data-table/index.js.map +1 -0
  191. package/dist/patterns/data-table/styles.css +269 -0
  192. package/dist/patterns/data-table.d.ts +1 -73
  193. package/dist/patterns/data-table.d.ts.map +1 -1
  194. package/dist/patterns/data-table.js +1 -59
  195. package/dist/patterns/data-table.js.map +1 -1
  196. package/dist/patterns/form-page/index.d.ts +8 -0
  197. package/dist/patterns/form-page/index.d.ts.map +1 -0
  198. package/dist/patterns/form-page/index.js +22 -0
  199. package/dist/patterns/form-page/index.js.map +1 -0
  200. package/dist/patterns/form-page/styles.css +237 -0
  201. package/dist/patterns/form-page.d.ts +1 -7
  202. package/dist/patterns/form-page.d.ts.map +1 -1
  203. package/dist/patterns/form-page.js +1 -21
  204. package/dist/patterns/form-page.js.map +1 -1
  205. package/dist/patterns/list-chrome/index.d.ts +80 -0
  206. package/dist/patterns/list-chrome/index.d.ts.map +1 -0
  207. package/dist/patterns/list-chrome/index.js +45 -0
  208. package/dist/patterns/list-chrome/index.js.map +1 -0
  209. package/dist/patterns/list-chrome/styles.css +245 -0
  210. package/dist/patterns/list-chrome.d.ts +1 -79
  211. package/dist/patterns/list-chrome.d.ts.map +1 -1
  212. package/dist/patterns/list-chrome.js +1 -44
  213. package/dist/patterns/list-chrome.js.map +1 -1
  214. package/dist/patterns/list-page/index.d.ts +31 -0
  215. package/dist/patterns/list-page/index.d.ts.map +1 -0
  216. package/dist/patterns/list-page/index.js +41 -0
  217. package/dist/patterns/list-page/index.js.map +1 -0
  218. package/dist/patterns/list-page/responsive.css +140 -0
  219. package/dist/patterns/list-page/styles.css +228 -0
  220. package/dist/patterns/list-page.d.ts +1 -30
  221. package/dist/patterns/list-page.d.ts.map +1 -1
  222. package/dist/patterns/list-page.js +1 -40
  223. package/dist/patterns/list-page.js.map +1 -1
  224. package/dist/patterns/modal-sheet/index.d.ts +16 -0
  225. package/dist/patterns/modal-sheet/index.d.ts.map +1 -0
  226. package/dist/patterns/modal-sheet/index.js +15 -0
  227. package/dist/patterns/modal-sheet/index.js.map +1 -0
  228. package/dist/patterns/modal-sheet/styles.css +219 -0
  229. package/dist/patterns/modal-sheet.d.ts +1 -15
  230. package/dist/patterns/modal-sheet.d.ts.map +1 -1
  231. package/dist/patterns/modal-sheet.js +1 -14
  232. package/dist/patterns/modal-sheet.js.map +1 -1
  233. package/dist/patterns/page-shell/index.d.ts +24 -0
  234. package/dist/patterns/page-shell/index.d.ts.map +1 -0
  235. package/dist/patterns/page-shell/index.js +11 -0
  236. package/dist/patterns/page-shell/index.js.map +1 -0
  237. package/dist/patterns/page-shell.d.ts +1 -23
  238. package/dist/patterns/page-shell.d.ts.map +1 -1
  239. package/dist/patterns/page-shell.js +1 -10
  240. package/dist/patterns/page-shell.js.map +1 -1
  241. package/dist/patterns/patterns.css +12 -2247
  242. package/dist/patterns/pipeline/index.d.ts +29 -0
  243. package/dist/patterns/pipeline/index.d.ts.map +1 -0
  244. package/dist/patterns/pipeline/index.js +26 -0
  245. package/dist/patterns/pipeline/index.js.map +1 -0
  246. package/dist/patterns/pipeline/styles.css +168 -0
  247. package/dist/patterns/pipeline.d.ts +1 -28
  248. package/dist/patterns/pipeline.d.ts.map +1 -1
  249. package/dist/patterns/pipeline.js +1 -25
  250. package/dist/patterns/pipeline.js.map +1 -1
  251. package/dist/patterns/record-form/index.d.ts +18 -0
  252. package/dist/patterns/record-form/index.d.ts.map +1 -0
  253. package/dist/patterns/record-form/index.js +14 -0
  254. package/dist/patterns/record-form/index.js.map +1 -0
  255. package/dist/patterns/record-form/styles.css +175 -0
  256. package/dist/patterns/record-form.d.ts +1 -17
  257. package/dist/patterns/record-form.d.ts.map +1 -1
  258. package/dist/patterns/record-form.js +1 -13
  259. package/dist/patterns/record-form.js.map +1 -1
  260. package/dist/patterns/record-page/index.d.ts +31 -0
  261. package/dist/patterns/record-page/index.d.ts.map +1 -0
  262. package/dist/patterns/record-page/index.js +29 -0
  263. package/dist/patterns/record-page/index.js.map +1 -0
  264. package/dist/patterns/record-page/styles.css +228 -0
  265. package/dist/patterns/record-page.d.ts +1 -30
  266. package/dist/patterns/record-page.d.ts.map +1 -1
  267. package/dist/patterns/record-page.js +1 -28
  268. package/dist/patterns/record-page.js.map +1 -1
  269. package/dist/patterns/workspace-page/index.d.ts +23 -0
  270. package/dist/patterns/workspace-page/index.d.ts.map +1 -0
  271. package/dist/patterns/workspace-page/index.js +26 -0
  272. package/dist/patterns/workspace-page/index.js.map +1 -0
  273. package/dist/patterns/workspace-page/styles.css +9 -0
  274. package/dist/patterns/workspace-page.d.ts +1 -22
  275. package/dist/patterns/workspace-page.d.ts.map +1 -1
  276. package/dist/patterns/workspace-page.js +1 -25
  277. package/dist/patterns/workspace-page.js.map +1 -1
  278. package/dist/primitives/actions/index.d.ts +36 -0
  279. package/dist/primitives/actions/index.d.ts.map +1 -0
  280. package/dist/primitives/actions/index.js +10 -0
  281. package/dist/primitives/actions/index.js.map +1 -0
  282. package/dist/primitives/actions/styles.css +149 -0
  283. package/dist/primitives/actions.d.ts +1 -35
  284. package/dist/primitives/actions.d.ts.map +1 -1
  285. package/dist/primitives/actions.js +1 -9
  286. package/dist/primitives/actions.js.map +1 -1
  287. package/dist/primitives/feedback/index.d.ts +19 -0
  288. package/dist/primitives/feedback/index.d.ts.map +1 -0
  289. package/dist/primitives/feedback/index.js +21 -0
  290. package/dist/primitives/feedback/index.js.map +1 -0
  291. package/dist/primitives/feedback/styles.css +117 -0
  292. package/dist/primitives/feedback.d.ts +1 -18
  293. package/dist/primitives/feedback.d.ts.map +1 -1
  294. package/dist/primitives/feedback.js +1 -22
  295. package/dist/primitives/feedback.js.map +1 -1
  296. package/dist/primitives/field/index.d.ts +35 -0
  297. package/dist/primitives/field/index.d.ts.map +1 -0
  298. package/dist/primitives/field/index.js +34 -0
  299. package/dist/primitives/field/index.js.map +1 -0
  300. package/dist/primitives/field/native-control.d.ts +4 -0
  301. package/dist/primitives/field/native-control.d.ts.map +1 -0
  302. package/dist/primitives/field/native-control.js +12 -0
  303. package/dist/primitives/field/native-control.js.map +1 -0
  304. package/dist/primitives/field/styles.css +160 -0
  305. package/dist/primitives/field.d.ts +1 -34
  306. package/dist/primitives/field.d.ts.map +1 -1
  307. package/dist/primitives/field.js +1 -41
  308. package/dist/primitives/field.js.map +1 -1
  309. package/dist/primitives/navigation/index.d.ts +36 -0
  310. package/dist/primitives/navigation/index.d.ts.map +1 -0
  311. package/dist/primitives/navigation/index.js +19 -0
  312. package/dist/primitives/navigation/index.js.map +1 -0
  313. package/dist/primitives/{navigation.css → navigation/styles.css} +51 -0
  314. package/dist/primitives/navigation.d.ts +1 -25
  315. package/dist/primitives/navigation.d.ts.map +1 -1
  316. package/dist/primitives/navigation.js +1 -15
  317. package/dist/primitives/navigation.js.map +1 -1
  318. package/dist/primitives/primitives.css +4 -570
  319. package/dist/primitives/progress/index.d.ts +10 -0
  320. package/dist/primitives/progress/index.d.ts.map +1 -0
  321. package/dist/primitives/progress/index.js +13 -0
  322. package/dist/primitives/progress/index.js.map +1 -0
  323. package/dist/primitives/progress.d.ts +1 -9
  324. package/dist/primitives/progress.d.ts.map +1 -1
  325. package/dist/primitives/progress.js +1 -12
  326. package/dist/primitives/progress.js.map +1 -1
  327. package/dist/primitives/status/index.d.ts +27 -0
  328. package/dist/primitives/status/index.d.ts.map +1 -0
  329. package/dist/primitives/status/index.js +16 -0
  330. package/dist/primitives/status/index.js.map +1 -0
  331. package/dist/primitives/status/styles.css +114 -0
  332. package/dist/primitives/status.d.ts +1 -26
  333. package/dist/primitives/status.d.ts.map +1 -1
  334. package/dist/primitives/status.js +1 -15
  335. package/dist/primitives/status.js.map +1 -1
  336. package/dist/record/activity/index.d.ts +26 -0
  337. package/dist/record/activity/index.d.ts.map +1 -0
  338. package/dist/record/activity/index.js +33 -0
  339. package/dist/record/activity/index.js.map +1 -0
  340. package/dist/record/activity/styles.css +38 -0
  341. package/dist/record/composition/index.d.ts +33 -0
  342. package/dist/record/composition/index.d.ts.map +1 -0
  343. package/dist/record/composition/index.js +10 -0
  344. package/dist/record/composition/index.js.map +1 -0
  345. package/dist/record/composition/styles.css +30 -0
  346. package/dist/record/display/index.d.ts +37 -0
  347. package/dist/record/display/index.d.ts.map +1 -0
  348. package/dist/record/display/index.js +23 -0
  349. package/dist/record/display/index.js.map +1 -0
  350. package/dist/record/display/styles.css +63 -0
  351. package/dist/record/formatted-values/index.d.ts +19 -0
  352. package/dist/record/formatted-values/index.d.ts.map +1 -0
  353. package/dist/record/formatted-values/index.js +21 -0
  354. package/dist/record/formatted-values/index.js.map +1 -0
  355. package/dist/record/formatted-values/styles.css +8 -0
  356. package/dist/record/media/index.d.ts +31 -0
  357. package/dist/record/media/index.d.ts.map +1 -0
  358. package/dist/record/media/index.js +19 -0
  359. package/dist/record/media/index.js.map +1 -0
  360. package/dist/record/media/styles.css +38 -0
  361. package/dist/runtime/auto.d.ts +2 -0
  362. package/dist/runtime/auto.d.ts.map +1 -0
  363. package/dist/runtime/auto.js +5 -0
  364. package/dist/runtime/auto.js.map +1 -0
  365. package/dist/runtime/index.d.ts +9 -0
  366. package/dist/runtime/index.d.ts.map +1 -0
  367. package/dist/runtime/index.js +369 -0
  368. package/dist/runtime/index.js.map +1 -0
  369. package/dist/styles.css +47 -8
  370. package/package.json +9 -2
  371. /package/dist/primitives/{progress.css → progress/styles.css} +0 -0
@@ -1,126 +1 @@
1
- /* Grey canvas and chrome, white working groups, and a single boundary per group. */
2
- @layer ket.app {
3
- [data-kv-design-system][data-presentation="grouped"] {
4
- --kv-page-bg: light-dark(#f6f6f7, var(--kv-ref-bg-main));
5
- --kv-app-bg: light-dark(#f6f6f7, var(--kv-ref-bg-app));
6
- --kv-sidebar-bg: light-dark(#f7f5f5, var(--kv-ref-bg-sidebar));
7
- --kv-nav-selected: light-dark(#eef0fb, var(--kv-ref-nav-selected));
8
- --kv-nav-selected-hover: light-dark(#dde2f7, var(--kv-ref-nav-selected-hover));
9
- --kv-panel-bg-subtle: light-dark(#f6f6f7, var(--kv-ref-surface-0));
10
- --kv-surface-raised: light-dark(#fafafb, var(--kv-ref-surface-2));
11
- --kv-surface-hover: light-dark(#f0f1f3, var(--kv-ref-surface-3));
12
- --kv-panel-border: light-dark(#e2e4e8, var(--kv-ref-border-subtle));
13
- --kv-sidebar-border: light-dark(#e9e7e8, rgb(255 255 255 / 7%));
14
- --kv-table-header-bg: light-dark(#f0f1f3, #282d34);
15
- --kv-table-row-hover: light-dark(#f6f6f7, rgb(255 255 255 / 2.7%));
16
- --kv-input-bg-hover: light-dark(#f6f6f7, #252b32);
17
- --kv-interactive-hover: light-dark(#f6f6f7, var(--kv-ref-control-hover));
18
- --kv-interactive-active: light-dark(#f0f1f3, var(--kv-ref-control-active));
19
- --kv-interactive-disabled: light-dark(#f0f1f3, var(--kv-ref-control-disabled));
20
- /* Rebind inherited aliases at the presentation boundary. */
21
- --kv-page-content-bg: var(--kv-page-bg);
22
- --kv-panel-divider: var(--kv-panel-border);
23
- --kv-table-border: var(--kv-panel-border);
24
- --kv-right-rail-border: var(--kv-sidebar-border);
25
- --kv-color-canvas: var(--kv-page-bg);
26
- --kv-color-canvas-raised: var(--kv-panel-bg-subtle);
27
- --kv-color-surface-subtle: var(--kv-surface-raised);
28
- --kv-color-surface-hover: var(--kv-surface-hover);
29
- --kv-color-line: var(--kv-panel-border);
30
- }
31
-
32
- [data-kv-design-system][data-presentation="grouped"] :is([data-ui="app-main"], [data-ui="modal-layer"]) {
33
- color-scheme: light;
34
- --kv-page-chrome-bg: var(--kv-page-bg);
35
- color: var(--kv-text-main);
36
- }
37
-
38
- [data-kv-design-system][data-presentation="grouped"] [data-ui="app-main"] {
39
- --kv-page-padding-x: var(--kv-space-3);
40
- background: var(--kv-page-bg);
41
- }
42
-
43
- [data-kv-design-system][data-presentation="grouped"]
44
- :is([data-ui="list-page"], [data-ui="record-page"], [data-pattern="workspace"])
45
- > :is([data-ui$="-context"], [data-ui$="-header"], [data-ui$="-navigation"], [data-ui$="-toolbar"]) {
46
- padding-inline: var(--kv-page-padding-x);
47
- }
48
-
49
- @media (max-width: 42rem) {
50
- [data-kv-design-system][data-presentation="grouped"]
51
- :is([data-ui="list-page-body"], [data-ui="list-page-footer"]) {
52
- margin-inline: var(--kv-page-padding-x);
53
- }
54
- }
55
-
56
- [data-kv-design-system][data-presentation="grouped"]
57
- :is([data-ui="dashboard-page-body"], [data-ui="board-page-body"], [data-ui="record-page-body"]) {
58
- padding: var(--kv-space-3) var(--kv-page-padding-x);
59
- gap: var(--kv-space-2);
60
- }
61
-
62
- [data-kv-design-system][data-presentation="grouped"]
63
- :is([data-ui="dashboard-page-body"], [data-ui="board-page-body"], [data-ui="record-page-body"])
64
- > [data-ui="stack"],
65
- [data-kv-design-system][data-presentation="grouped"] [data-ui="app-main"] [data-ui="grid"],
66
- [data-kv-design-system][data-presentation="grouped"]
67
- [data-ui="section-body"]
68
- > [data-ui="stack"]:has(> [data-ui="content-card"]) {
69
- gap: var(--kv-space-2);
70
- }
71
-
72
- [data-kv-design-system][data-presentation="grouped"]
73
- :is([data-ui="surface"], [data-ui="metric"], [data-ui="content-card"]) {
74
- padding: var(--kv-space-3);
75
- }
76
-
77
- [data-kv-design-system][data-presentation="grouped"] [data-ui="surface-head"] {
78
- padding: 0;
79
- margin-bottom: var(--kv-space-3);
80
- }
81
-
82
- [data-kv-design-system][data-presentation="grouped"] [data-ui="table-scroll"][data-framed="false"] {
83
- width: auto;
84
- margin-inline: 0;
85
- }
86
-
87
- [data-kv-design-system][data-presentation="grouped"]
88
- [data-ui="surface"][data-padding="none"]
89
- > [data-ui="surface-head"] {
90
- padding: 0;
91
- margin-bottom: var(--kv-space-3);
92
- }
93
-
94
- [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] {
95
- padding: var(--kv-space-3);
96
- }
97
-
98
- [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] > [data-ui="stack"] {
99
- gap: var(--kv-space-3);
100
- }
101
-
102
- [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] {
103
- background: var(--kv-panel-bg);
104
- }
105
-
106
- /* The context column already owns its white background. */
107
- [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] [data-ui="metric"] {
108
- padding: 0;
109
- min-height: 0;
110
- border: 0;
111
- border-radius: 0;
112
- background: transparent;
113
- }
114
-
115
- [data-kv-design-system][data-presentation="grouped"] [data-ui="surface"] [data-ui="disclosure"] {
116
- border: 0;
117
- border-radius: 0;
118
- background: transparent;
119
- }
120
-
121
- [data-kv-design-system][data-presentation="grouped"]
122
- [data-ui="surface"]
123
- :is([data-ui="disclosure-summary"], [data-ui="disclosure-body"]) {
124
- padding-inline: 0;
125
- }
126
- }
1
+ @import "./grouped/styles.css";
@@ -1,70 +1,2 @@
1
- import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
2
- import type { Tone } from '../primitives/status.tsx';
3
- export declare const HOOKS: readonly ['stack', 'inline', 'grid', 'surface', 'surface-head', 'surface-title', 'surface-actions', 'disclosure', 'disclosure-summary', 'disclosure-body', 'section', 'section-head', 'section-eyebrow', 'section-title', 'section-description', 'section-actions', 'section-body', 'content-card', 'card-head', 'card-title', 'card-summary', 'card-body', 'card-meta', 'card-actions', 'metric', 'metric-icon', 'metric-label', 'metric-value', 'metric-detail'];
4
- export { AppShell, Page, PageHeader, RecordCanvas, RecordSection } from './shell.tsx';
5
- export declare const Stack: (props: {
6
- items: readonly JSXChild[];
7
- gap?: 'compact' | 'default' | 'loose';
8
- }) => TemplateResult;
9
- export declare const Inline: (props: {
10
- items: readonly JSXChild[];
11
- }) => TemplateResult;
12
- export declare const Grid: (props: {
13
- items: readonly JSXChild[];
14
- columns?: 2 | 3 | 4;
15
- }) => TemplateResult;
16
- export declare const Surface: (props: {
17
- body: JSXChild;
18
- title?: string;
19
- actions?: JSXChild;
20
- tone?: 'default' | 'subtle' | 'raised';
21
- padding?: 'none' | 'compact' | 'default';
22
- }) => TemplateResult;
23
- /** Native, keyboard-accessible progressive disclosure for dense secondary detail. */
24
- export declare const Disclosure: (props: {
25
- summary: string;
26
- body: JSXChild;
27
- open?: boolean;
28
- }) => TemplateResult;
29
- export declare const Section: (props: {
30
- title: string;
31
- body: JSXChild;
32
- description?: string | null;
33
- eyebrow?: string | null;
34
- actions?: JSXChild;
35
- }) => TemplateResult;
36
- export declare const ContentCard: (props: {
37
- title: string;
38
- summary?: string | null;
39
- body?: JSXChild;
40
- meta?: JSXChild;
41
- actions?: JSXChild;
42
- href?: string | null;
43
- selected?: boolean;
44
- }) => TemplateResult;
45
- /**
46
- * One number, with the context that makes it mean something.
47
- *
48
- * `tone` colours a dot beside the label and nothing else. The number itself stays
49
- * in the page's ink: a KPI row is read by comparing figures, and four differently
50
- * coloured figures are compared by colour instead. The dot is drawn only when a
51
- * tone is passed, so a metric that has no state to report does not grow a grey
52
- * bullet that means nothing.
53
- *
54
- * `href` makes the whole card the link rather than the label, because the card is
55
- * what the pointer is already over. There is nothing else inside a metric to
56
- * click, which is exactly why `ContentCard` does the opposite.
57
- */
58
- export declare const Metric: (props: {
59
- label: string;
60
- value: string | number;
61
- detail?: string | null;
62
- tone?: Tone;
63
- /**
64
- * A glyph naming the quantity, in a tile beside it. Decorative: the label is
65
- * the name of the number, so this is hidden from assistive technology.
66
- */
67
- icon?: JSXChild;
68
- href?: string | null;
69
- }) => TemplateResult;
1
+ export * from './layout/index.tsx';
70
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/design-system/src/layouts/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/design-system/src/layouts/index.tsx"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -1,69 +1,2 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
2
- import { each } from '@ketvietlab/ketjs-view';
3
- export const HOOKS = [
4
- 'stack',
5
- 'inline',
6
- 'grid',
7
- 'surface',
8
- 'surface-head',
9
- 'surface-title',
10
- 'surface-actions',
11
- 'disclosure',
12
- 'disclosure-summary',
13
- 'disclosure-body',
14
- 'section',
15
- 'section-head',
16
- 'section-eyebrow',
17
- 'section-title',
18
- 'section-description',
19
- 'section-actions',
20
- 'section-body',
21
- 'content-card',
22
- 'card-head',
23
- 'card-title',
24
- 'card-summary',
25
- 'card-body',
26
- 'card-meta',
27
- 'card-actions',
28
- 'metric',
29
- 'metric-icon',
30
- 'metric-label',
31
- 'metric-value',
32
- 'metric-detail',
33
- ];
34
- export { AppShell, Page, PageHeader, RecordCanvas, RecordSection } from './shell.js';
35
- const Items = (props) => (_jsx(_Fragment, { children: each(props.items, (_, index) => index, (item) => (typeof item === 'string' || typeof item === 'number' ? _jsx("span", { children: item }) : _jsx(_Fragment, { children: item }))) }));
36
- export const Stack = (props) => (_jsx("div", { "data-ui": "stack", "data-gap": props.gap ?? 'default', children: _jsx(Items, { items: props.items }) }));
37
- export const Inline = (props) => (_jsx("div", { "data-ui": "inline", children: _jsx(Items, { items: props.items }) }));
38
- export const Grid = (props) => (_jsx("div", { "data-ui": "grid", "data-columns": String(props.columns ?? 3), children: _jsx(Items, { items: props.items }) }));
39
- export const Surface = (props) => (_jsxs("div", { "data-ui": "surface", "data-tone": props.tone ?? 'default', "data-padding": props.padding ?? 'default', "data-has-heading": props.title ? 'true' : null, children: [props.title && (_jsxs("header", { "data-ui": "surface-head", children: [_jsx("h2", { "data-ui": "surface-title", children: props.title }), props.actions !== undefined && _jsx("div", { "data-ui": "surface-actions", children: props.actions })] })), props.body] }));
40
- /** Native, keyboard-accessible progressive disclosure for dense secondary detail. */
41
- export const Disclosure = (props) => (_jsxs("details", { "data-ui": "disclosure", open: props.open === true ? true : undefined, children: [_jsx("summary", { "data-ui": "disclosure-summary", children: props.summary }), _jsx("div", { "data-ui": "disclosure-body", children: props.body })] }));
42
- export const Section = (props) => (_jsxs("section", { "data-ui": "section", children: [_jsxs("header", { "data-ui": "section-head", children: [_jsxs("div", { children: [!!props.eyebrow && _jsx("p", { "data-ui": "section-eyebrow", children: props.eyebrow }), _jsx("h2", { "data-ui": "section-title", children: props.title }), !!props.description && _jsx("p", { "data-ui": "section-description", children: props.description })] }), props.actions !== undefined && _jsx("div", { "data-ui": "section-actions", children: props.actions })] }), _jsx("div", { "data-ui": "section-body", children: props.body })] }));
43
- export const ContentCard = (props) => (_jsxs("article", { "data-ui": "content-card", "data-interactive": String(!!props.href), "data-selected": String(props.selected === true), children: [_jsxs("header", { "data-ui": "card-head", children: [_jsx("h3", { "data-ui": "card-title", children: props.href ? _jsx("a", { href: props.href, children: props.title }) : props.title }), !!props.summary && _jsx("p", { "data-ui": "card-summary", children: props.summary })] }), props.body !== undefined && _jsx("div", { "data-ui": "card-body", children: props.body }), props.meta !== undefined && _jsx("div", { "data-ui": "card-meta", children: props.meta }), props.actions !== undefined && _jsx("div", { "data-ui": "card-actions", children: props.actions })] }));
44
- /**
45
- * One number, with the context that makes it mean something.
46
- *
47
- * `tone` colours a dot beside the label and nothing else. The number itself stays
48
- * in the page's ink: a KPI row is read by comparing figures, and four differently
49
- * coloured figures are compared by colour instead. The dot is drawn only when a
50
- * tone is passed, so a metric that has no state to report does not grow a grey
51
- * bullet that means nothing.
52
- *
53
- * `href` makes the whole card the link rather than the label, because the card is
54
- * what the pointer is already over. There is nothing else inside a metric to
55
- * click, which is exactly why `ContentCard` does the opposite.
56
- */
57
- export const Metric = (props) => {
58
- const attributes = {
59
- 'data-ui': 'metric',
60
- 'data-tone': props.tone ?? 'neutral',
61
- // One marker to a card, never two. The dot reports state for a metric that
62
- // has no glyph; where there is a glyph, the glyph is already the thing the
63
- // eye lands on, and a coloured bullet beside the label competes with it.
64
- 'data-dot': String(props.tone !== undefined && props.icon === undefined),
65
- };
66
- const body = (_jsxs(_Fragment, { children: [props.icon !== undefined && (_jsx("span", { "data-ui": "metric-icon", "aria-hidden": "true", children: props.icon })), _jsx("p", { "data-ui": "metric-label", children: props.label }), _jsx("p", { "data-ui": "metric-value", children: String(props.value) }), !!props.detail && _jsx("p", { "data-ui": "metric-detail", children: props.detail })] }));
67
- return props.href ? (_jsx("a", { ...attributes, "data-interactive": "true", href: props.href, children: body })) : (_jsx("article", { ...attributes, "data-interactive": "false", children: body }));
68
- };
1
+ export * from './layout/index.js';
69
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/design-system/src/layouts/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/design-system/src/layouts/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAoB,CAAA"}
@@ -0,0 +1,70 @@
1
+ import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
2
+ import type { Tone } from '../../primitives/status.tsx';
3
+ export declare const HOOKS: readonly ['stack', 'inline', 'grid', 'surface', 'surface-head', 'surface-title', 'surface-actions', 'disclosure', 'disclosure-summary', 'disclosure-body', 'section', 'section-head', 'section-eyebrow', 'section-title', 'section-description', 'section-actions', 'section-body', 'content-card', 'card-head', 'card-title', 'card-summary', 'card-body', 'card-meta', 'card-actions', 'metric', 'metric-icon', 'metric-label', 'metric-value', 'metric-detail'];
4
+ export { AppShell, Page, PageHeader, RecordCanvas, RecordSection } from '../shell.tsx';
5
+ export declare const Stack: (props: {
6
+ items: readonly JSXChild[];
7
+ gap?: 'compact' | 'default' | 'loose';
8
+ }) => TemplateResult;
9
+ export declare const Inline: (props: {
10
+ items: readonly JSXChild[];
11
+ }) => TemplateResult;
12
+ export declare const Grid: (props: {
13
+ items: readonly JSXChild[];
14
+ columns?: 2 | 3 | 4;
15
+ }) => TemplateResult;
16
+ export declare const Surface: (props: {
17
+ body: JSXChild;
18
+ title?: string;
19
+ actions?: JSXChild;
20
+ tone?: 'default' | 'subtle' | 'raised';
21
+ padding?: 'none' | 'compact' | 'default';
22
+ }) => TemplateResult;
23
+ /** Native, keyboard-accessible progressive disclosure for dense secondary detail. */
24
+ export declare const Disclosure: (props: {
25
+ summary: string;
26
+ body: JSXChild;
27
+ open?: boolean;
28
+ }) => TemplateResult;
29
+ export declare const Section: (props: {
30
+ title: string;
31
+ body: JSXChild;
32
+ description?: string | null;
33
+ eyebrow?: string | null;
34
+ actions?: JSXChild;
35
+ }) => TemplateResult;
36
+ export declare const ContentCard: (props: {
37
+ title: string;
38
+ summary?: string | null;
39
+ body?: JSXChild;
40
+ meta?: JSXChild;
41
+ actions?: JSXChild;
42
+ href?: string | null;
43
+ selected?: boolean;
44
+ }) => TemplateResult;
45
+ /**
46
+ * One number, with the context that makes it mean something.
47
+ *
48
+ * `tone` colours a dot beside the label and nothing else. The number itself stays
49
+ * in the page's ink: a KPI row is read by comparing figures, and four differently
50
+ * coloured figures are compared by colour instead. The dot is drawn only when a
51
+ * tone is passed, so a metric that has no state to report does not grow a grey
52
+ * bullet that means nothing.
53
+ *
54
+ * `href` makes the whole card the link rather than the label, because the card is
55
+ * what the pointer is already over. There is nothing else inside a metric to
56
+ * click, which is exactly why `ContentCard` does the opposite.
57
+ */
58
+ export declare const Metric: (props: {
59
+ label: string;
60
+ value: string | number;
61
+ detail?: string | null;
62
+ tone?: Tone;
63
+ /**
64
+ * A glyph naming the quantity, in a tile beside it. Decorative: the label is
65
+ * the name of the number, so this is hidden from assistive technology.
66
+ */
67
+ icon?: JSXChild;
68
+ href?: string | null;
69
+ }) => TemplateResult;
70
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/layouts/layout/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
2
+ import { each } from '@ketvietlab/ketjs-view';
3
+ export const HOOKS = [
4
+ 'stack',
5
+ 'inline',
6
+ 'grid',
7
+ 'surface',
8
+ 'surface-head',
9
+ 'surface-title',
10
+ 'surface-actions',
11
+ 'disclosure',
12
+ 'disclosure-summary',
13
+ 'disclosure-body',
14
+ 'section',
15
+ 'section-head',
16
+ 'section-eyebrow',
17
+ 'section-title',
18
+ 'section-description',
19
+ 'section-actions',
20
+ 'section-body',
21
+ 'content-card',
22
+ 'card-head',
23
+ 'card-title',
24
+ 'card-summary',
25
+ 'card-body',
26
+ 'card-meta',
27
+ 'card-actions',
28
+ 'metric',
29
+ 'metric-icon',
30
+ 'metric-label',
31
+ 'metric-value',
32
+ 'metric-detail',
33
+ ];
34
+ export { AppShell, Page, PageHeader, RecordCanvas, RecordSection } from '../shell.js';
35
+ const Items = (props) => (_jsx(_Fragment, { children: each(props.items, (_, index) => index,
36
+ // biome-ignore lint/complexity/noUselessFragments: `each` requires a TemplateResult callback.
37
+ (item) => (typeof item === 'string' || typeof item === 'number' ? _jsx("span", { children: item }) : _jsx(_Fragment, { children: item }))) }));
38
+ export const Stack = (props) => (_jsx("div", { "data-ui": "stack", "data-gap": props.gap ?? 'default', children: _jsx(Items, { items: props.items }) }));
39
+ export const Inline = (props) => (_jsx("div", { "data-ui": "inline", children: _jsx(Items, { items: props.items }) }));
40
+ export const Grid = (props) => (_jsx("div", { "data-ui": "grid", "data-columns": String(props.columns ?? 3), children: _jsx(Items, { items: props.items }) }));
41
+ export const Surface = (props) => (_jsxs("div", { "data-ui": "surface", "data-tone": props.tone ?? 'default', "data-padding": props.padding ?? 'default', "data-has-heading": props.title ? 'true' : null, children: [props.title && (_jsxs("header", { "data-ui": "surface-head", children: [_jsx("h2", { "data-ui": "surface-title", children: props.title }), props.actions !== undefined && _jsx("div", { "data-ui": "surface-actions", children: props.actions })] })), props.body] }));
42
+ /** Native, keyboard-accessible progressive disclosure for dense secondary detail. */
43
+ export const Disclosure = (props) => (_jsxs("details", { "data-ui": "disclosure", open: props.open === true ? true : undefined, children: [_jsx("summary", { "data-ui": "disclosure-summary", children: props.summary }), _jsx("div", { "data-ui": "disclosure-body", children: props.body })] }));
44
+ export const Section = (props) => (_jsxs("section", { "data-ui": "section", children: [_jsxs("header", { "data-ui": "section-head", children: [_jsxs("div", { children: [!!props.eyebrow && _jsx("p", { "data-ui": "section-eyebrow", children: props.eyebrow }), _jsx("h2", { "data-ui": "section-title", children: props.title }), !!props.description && _jsx("p", { "data-ui": "section-description", children: props.description })] }), props.actions !== undefined && _jsx("div", { "data-ui": "section-actions", children: props.actions })] }), _jsx("div", { "data-ui": "section-body", children: props.body })] }));
45
+ export const ContentCard = (props) => (_jsxs("article", { "data-ui": "content-card", "data-interactive": String(!!props.href), "data-selected": String(props.selected === true), children: [_jsxs("header", { "data-ui": "card-head", children: [_jsx("h3", { "data-ui": "card-title", children: props.href ? _jsx("a", { href: props.href, children: props.title }) : props.title }), !!props.summary && _jsx("p", { "data-ui": "card-summary", children: props.summary })] }), props.body !== undefined && _jsx("div", { "data-ui": "card-body", children: props.body }), props.meta !== undefined && _jsx("div", { "data-ui": "card-meta", children: props.meta }), props.actions !== undefined && _jsx("div", { "data-ui": "card-actions", children: props.actions })] }));
46
+ /**
47
+ * One number, with the context that makes it mean something.
48
+ *
49
+ * `tone` colours a dot beside the label and nothing else. The number itself stays
50
+ * in the page's ink: a KPI row is read by comparing figures, and four differently
51
+ * coloured figures are compared by colour instead. The dot is drawn only when a
52
+ * tone is passed, so a metric that has no state to report does not grow a grey
53
+ * bullet that means nothing.
54
+ *
55
+ * `href` makes the whole card the link rather than the label, because the card is
56
+ * what the pointer is already over. There is nothing else inside a metric to
57
+ * click, which is exactly why `ContentCard` does the opposite.
58
+ */
59
+ export const Metric = (props) => {
60
+ const attributes = {
61
+ 'data-ui': 'metric',
62
+ 'data-tone': props.tone ?? 'neutral',
63
+ // One marker to a card, never two. The dot reports state for a metric that
64
+ // has no glyph; where there is a glyph, the glyph is already the thing the
65
+ // eye lands on, and a coloured bullet beside the label competes with it.
66
+ 'data-dot': String(props.tone !== undefined && props.icon === undefined),
67
+ };
68
+ const body = (_jsxs(_Fragment, { children: [props.icon !== undefined && (_jsx("span", { "data-ui": "metric-icon", "aria-hidden": "true", children: props.icon })), _jsx("p", { "data-ui": "metric-label", children: props.label }), _jsx("p", { "data-ui": "metric-value", children: String(props.value) }), !!props.detail && _jsx("p", { "data-ui": "metric-detail", children: props.detail })] }));
69
+ return props.href ? (_jsx("a", { ...attributes, "data-interactive": "true", href: props.href, children: body })) : (_jsx("article", { ...attributes, "data-interactive": "false", children: body }));
70
+ };
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/layouts/layout/index.tsx"],"names":[],"mappings":"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"}