@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
@@ -0,0 +1,85 @@
1
+ @layer ket.app {
2
+ :where([data-kv-design-system]) [data-ui="menu"] {
3
+ position: relative;
4
+ display: inline-block;
5
+ }
6
+
7
+ :where([data-kv-design-system]) [data-ui="menu-trigger"] {
8
+ display: inline-flex;
9
+ min-height: var(--kv-control-height);
10
+ align-items: center;
11
+ justify-content: center;
12
+ padding: 0 var(--kv-space-3);
13
+ border: 1px solid var(--kv-border-default);
14
+ border-radius: var(--kv-radius-sm);
15
+ background: var(--kv-interactive-bg);
16
+ color: var(--kv-text-secondary);
17
+ font-size: var(--kv-text-sm);
18
+ font-weight: var(--kv-weight-medium);
19
+ cursor: pointer;
20
+ list-style: none;
21
+ }
22
+
23
+ :where([data-kv-design-system]) [data-ui="menu-trigger"]::-webkit-details-marker {
24
+ display: none;
25
+ }
26
+
27
+ :where([data-kv-design-system]) [data-ui="menu-panel"] {
28
+ position: absolute;
29
+ z-index: var(--kv-layer-menu);
30
+ top: calc(100% + var(--kv-space-1));
31
+ left: 0;
32
+ display: grid;
33
+ min-width: 13rem;
34
+ padding: var(--kv-space-1);
35
+ border: 1px solid var(--kv-border-default);
36
+ border-radius: var(--kv-radius-md);
37
+ background: var(--kv-panel-bg);
38
+ box-shadow: var(--kv-shadow-popover);
39
+ }
40
+
41
+ :where([data-kv-design-system]) [data-ui="menu"][data-align="end"] [data-ui="menu-panel"] {
42
+ right: 0;
43
+ left: auto;
44
+ }
45
+
46
+ :where([data-kv-design-system]) [data-ui="menu-item"] {
47
+ display: flex;
48
+ width: 100%;
49
+ min-height: var(--kv-control-height);
50
+ align-items: center;
51
+ gap: var(--kv-space-2);
52
+ padding: var(--kv-space-2) var(--kv-space-3);
53
+ border: 0;
54
+ border-radius: var(--kv-radius-sm);
55
+ background: transparent;
56
+ color: var(--kv-text-main);
57
+ font: inherit;
58
+ text-align: left;
59
+ text-decoration: none;
60
+ cursor: pointer;
61
+ }
62
+
63
+ :where([data-kv-design-system]) [data-ui="menu-item"]:hover {
64
+ background: var(--kv-interactive-hover);
65
+ }
66
+
67
+ :where([data-kv-design-system]) [data-ui="menu-item"][aria-disabled="true"] {
68
+ color: var(--kv-text-disabled);
69
+ cursor: not-allowed;
70
+ }
71
+
72
+ :where([data-kv-design-system]) [data-ui="menu-item"][data-destructive="true"] {
73
+ color: var(--kv-danger);
74
+ }
75
+
76
+ :where([data-kv-design-system]) [data-ui="menu-item-copy"] {
77
+ display: grid;
78
+ gap: var(--kv-space-0-5);
79
+ }
80
+
81
+ :where([data-kv-design-system]) [data-ui="menu-item-copy"] small {
82
+ color: var(--kv-text-muted);
83
+ font-size: var(--kv-text-xs);
84
+ }
85
+ }
@@ -0,0 +1,15 @@
1
+ import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
2
+ export declare const HOOKS: readonly ['popover', 'popover-trigger', 'popover-panel', 'popover-close'];
3
+ export type PopoverProps = {
4
+ id: string;
5
+ label: string;
6
+ trigger: JSXChild;
7
+ body: JSXChild;
8
+ open: boolean;
9
+ openHref: string;
10
+ closeHref: string;
11
+ closeLabel: string;
12
+ placement?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
13
+ };
14
+ export declare const Popover: (props: PopoverProps) => TemplateResult;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/interactions/popover/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEtE,eAAO,MAAM,KAAK,YAAI,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,CAAU,CAAA;AAE9F,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,QAAQ,CAAA;IACjB,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAA;CACpE,CAAA;AAED,eAAO,MAAM,OAAO,UAAW,YAAY,KAAG,cA0B7C,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
2
+ export const HOOKS = ['popover', 'popover-trigger', 'popover-panel', 'popover-close'];
3
+ export const Popover = (props) => (_jsxs("span", { "data-ui": "popover", "data-open": String(props.open), "data-placement": props.placement ?? 'bottom-start', children: [_jsx("a", { "data-ui": "popover-trigger", href: props.open ? props.closeHref : props.openHref, "aria-haspopup": "dialog", "aria-expanded": String(props.open), "aria-controls": `${props.id}-panel`, children: props.trigger }), props.open && (_jsxs("aside", { "data-ui": "popover-panel", id: `${props.id}-panel`, role: "dialog", "aria-label": props.label, tabindex: "-1", children: [_jsx("a", { "data-ui": "popover-close", href: props.closeHref, "aria-label": props.closeLabel, children: "\u00D7" }), props.body] }))] }));
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/interactions/popover/index.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,CAAU,CAAA;AAc9F,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAkB,EAAE,CAAC,CAC9D,2BAAc,SAAS,eAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAkB,KAAK,CAAC,SAAS,IAAI,cAAc,aACtG,uBACU,iBAAiB,EACzB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,mBACrC,QAAQ,mBACP,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,mBAClB,GAAG,KAAK,CAAC,EAAE,QAAQ,YAEjC,KAAK,CAAC,OAAO,GACZ,EACH,KAAK,CAAC,IAAI,IAAI,CACb,4BACU,eAAe,EACvB,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,QAAQ,EACvB,IAAI,EAAC,QAAQ,gBACD,KAAK,CAAC,KAAK,EACvB,QAAQ,EAAC,IAAI,aAEb,uBAAW,eAAe,EAAC,IAAI,EAAE,KAAK,CAAC,SAAS,gBAAc,KAAK,CAAC,UAAU,uBAE1E,EACH,KAAK,CAAC,IAAI,IACL,CACT,IACI,CACR,CAAA"}
@@ -0,0 +1,47 @@
1
+ @layer ket.app {
2
+ :where([data-kv-design-system]) [data-ui="popover"] {
3
+ position: relative;
4
+ display: inline-flex;
5
+ }
6
+
7
+ :where([data-kv-design-system]) [data-ui="popover-trigger"] {
8
+ display: inline-flex;
9
+ color: inherit;
10
+ text-decoration: none;
11
+ }
12
+
13
+ :where([data-kv-design-system]) [data-ui="popover-panel"] {
14
+ position: absolute;
15
+ z-index: var(--kv-layer-popover);
16
+ top: calc(100% + var(--kv-space-2));
17
+ left: 0;
18
+ width: min(20rem, calc(100vw - var(--kv-space-8)));
19
+ padding: var(--kv-space-4);
20
+ border: 1px solid var(--kv-border-default);
21
+ border-radius: var(--kv-radius-md);
22
+ background: var(--kv-panel-bg);
23
+ box-shadow: var(--kv-shadow-popover);
24
+ }
25
+
26
+ :where([data-kv-design-system]) [data-ui="popover-panel"][data-runtime-positioned="true"] {
27
+ position: fixed;
28
+ }
29
+
30
+ :where([data-kv-design-system]) [data-ui="popover"][data-placement$="end"] [data-ui="popover-panel"] {
31
+ right: 0;
32
+ left: auto;
33
+ }
34
+
35
+ :where([data-kv-design-system]) [data-ui="popover"][data-placement^="top"] [data-ui="popover-panel"] {
36
+ top: auto;
37
+ bottom: calc(100% + var(--kv-space-2));
38
+ }
39
+
40
+ :where([data-kv-design-system]) [data-ui="popover-close"] {
41
+ position: absolute;
42
+ top: var(--kv-space-2);
43
+ right: var(--kv-space-2);
44
+ color: var(--kv-text-muted);
45
+ text-decoration: none;
46
+ }
47
+ }
@@ -0,0 +1,7 @@
1
+ import type { TemplateResult } from '@ketvietlab/ketjs-view';
2
+ export declare const HOOKS: readonly ['skeleton', 'skeleton-line'];
3
+ export declare const Skeleton: (props: {
4
+ label: string;
5
+ lines?: number;
6
+ }) => TemplateResult;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/interactions/skeleton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,eAAO,MAAM,KAAK,YAAI,UAAU,EAAE,eAAe,CAAU,CAAA;AAE3D,eAAO,MAAM,QAAQ,UAAW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,cAUnE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "@ketvietlab/ketjs-view/jsx-runtime";
2
+ import { each } from '@ketvietlab/ketjs-view';
3
+ export const HOOKS = ['skeleton', 'skeleton-line'];
4
+ export const Skeleton = (props) => (_jsx("div", { "data-ui": "skeleton", role: "status", "aria-label": props.label, children: each(Array.from({ length: Math.max(1, props.lines ?? 3) }), (_, index) => index, (_, index) => (_jsx("span", { "data-ui": "skeleton-line", "data-line": String(index + 1) }))) }));
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/interactions/skeleton/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAG7C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,eAAe,CAAU,CAAA;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAwC,EAAkB,EAAE,CAAC,CACpF,yBAAa,UAAU,EAAC,IAAI,EAAC,QAAQ,gBAAa,KAAK,CAAC,KAAK,YAC1D,IAAI,CACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,EACrD,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EACnB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACZ,0BAAc,eAAe,eAAY,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAI,CAC/D,CACF,GACG,CACP,CAAA"}
@@ -0,0 +1,32 @@
1
+ @layer ket.app {
2
+ :where([data-kv-design-system]) [data-ui="skeleton"] {
3
+ display: grid;
4
+ gap: var(--kv-space-2);
5
+ }
6
+
7
+ :where([data-kv-design-system]) [data-ui="skeleton-line"] {
8
+ height: 0.7rem;
9
+ border-radius: var(--kv-radius-xs);
10
+ background: linear-gradient(
11
+ 90deg,
12
+ var(--kv-color-surface-subtle),
13
+ var(--kv-color-line),
14
+ var(--kv-color-surface-subtle)
15
+ );
16
+ background-size: 200% 100%;
17
+ animation: kv-skeleton-shimmer 1.5s var(--kv-ease-default) infinite;
18
+ }
19
+
20
+ :where([data-kv-design-system]) [data-ui="skeleton-line"][data-line="2"] {
21
+ width: 82%;
22
+ }
23
+ :where([data-kv-design-system]) [data-ui="skeleton-line"][data-line="3"] {
24
+ width: 58%;
25
+ }
26
+
27
+ @keyframes kv-skeleton-shimmer {
28
+ to {
29
+ background-position: -200% 0;
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,7 @@
1
+ import type { TemplateResult } from '@ketvietlab/ketjs-view';
2
+ export declare const HOOKS: readonly ['spinner', 'visually-hidden'];
3
+ export declare const Spinner: (props: {
4
+ label: string;
5
+ size?: 'small' | 'default' | 'large';
6
+ }) => TemplateResult;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/interactions/spinner/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,eAAO,MAAM,KAAK,YAAI,SAAS,EAAE,iBAAiB,CAAU,CAAA;AAE5D,eAAO,MAAM,OAAO,UAAW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;CAAE,KAAG,cAIxF,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "@ketvietlab/ketjs-view/jsx-runtime";
2
+ export const HOOKS = ['spinner', 'visually-hidden'];
3
+ export const Spinner = (props) => (_jsx("span", { "data-ui": "spinner", "data-size": props.size ?? 'default', role: "status", children: _jsx("span", { "data-ui": "visually-hidden", children: props.label }) }));
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/interactions/spinner/index.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAU,CAAA;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAA8D,EAAkB,EAAE,CAAC,CACzG,0BAAc,SAAS,eAAY,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,EAAC,QAAQ,YACvE,0BAAc,iBAAiB,YAAE,KAAK,CAAC,KAAK,GAAQ,GAC/C,CACR,CAAA"}
@@ -0,0 +1,38 @@
1
+ @layer ket.app {
2
+ :where([data-kv-design-system]) [data-ui="spinner"] {
3
+ display: inline-block;
4
+ width: 1rem;
5
+ height: 1rem;
6
+ border: 2px solid currentcolor;
7
+ border-right-color: transparent;
8
+ border-radius: 50%;
9
+ animation: kv-spinner-spin var(--kv-duration-slow) linear infinite;
10
+ }
11
+
12
+ :where([data-kv-design-system]) [data-ui="spinner"][data-size="small"] {
13
+ width: 0.75rem;
14
+ height: 0.75rem;
15
+ }
16
+ :where([data-kv-design-system]) [data-ui="spinner"][data-size="large"] {
17
+ width: 1.5rem;
18
+ height: 1.5rem;
19
+ border-width: 3px;
20
+ }
21
+
22
+ :where([data-kv-design-system]) [data-ui="visually-hidden"] {
23
+ position: absolute;
24
+ width: 1px;
25
+ height: 1px;
26
+ padding: 0;
27
+ overflow: hidden;
28
+ clip: rect(0, 0, 0, 0);
29
+ white-space: nowrap;
30
+ border: 0;
31
+ }
32
+
33
+ @keyframes kv-spinner-spin {
34
+ to {
35
+ transform: rotate(360deg);
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,16 @@
1
+ import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
2
+ import type { Tone } from '../../primitives/status/index.tsx';
3
+ export declare const HOOKS: readonly ['toast-region', 'toast', 'toast-copy', 'toast-title', 'toast-message', 'toast-actions'];
4
+ export type ToastProps = {
5
+ id: string;
6
+ title: string;
7
+ message?: string;
8
+ tone?: Tone;
9
+ actions?: JSXChild;
10
+ };
11
+ export declare const Toast: (props: ToastProps) => TemplateResult;
12
+ export declare const ToastRegion: (props: {
13
+ label: string;
14
+ toasts: readonly ToastProps[];
15
+ }) => TemplateResult;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/interactions/toast/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAA;AAE7D,eAAO,MAAM,KAAK,YAChB,cAAc,EACd,OAAO,EACP,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,CACP,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,OAAO,CAAC,EAAE,QAAQ,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,KAAK,UAAW,UAAU,KAAG,cAYzC,CAAA;AAED,eAAO,MAAM,WAAW,UAAW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,KAAG,cAUrF,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
2
+ import { each } from '@ketvietlab/ketjs-view';
3
+ export const HOOKS = [
4
+ 'toast-region',
5
+ 'toast',
6
+ 'toast-copy',
7
+ 'toast-title',
8
+ 'toast-message',
9
+ 'toast-actions',
10
+ ];
11
+ export const Toast = (props) => (_jsxs("article", { "data-ui": "toast", "data-tone": props.tone ?? 'neutral', role: props.tone === 'danger' ? 'alert' : 'status', children: [_jsxs("div", { "data-ui": "toast-copy", children: [_jsx("strong", { "data-ui": "toast-title", children: props.title }), props.message && _jsx("p", { "data-ui": "toast-message", children: props.message })] }), props.actions !== undefined && _jsx("div", { "data-ui": "toast-actions", children: props.actions })] }));
12
+ export const ToastRegion = (props) => (_jsx("section", { "data-ui": "toast-region", "aria-label": props.label, "aria-live": "polite", "aria-relevant": "additions text", children: each(props.toasts, (toast) => toast.id, (toast) => (_jsx(Toast, { ...toast }))) }));
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/interactions/toast/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAI7C,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,cAAc;IACd,OAAO;IACP,YAAY;IACZ,aAAa;IACb,eAAe;IACf,eAAe;CACP,CAAA;AAUV,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAkB,EAAE,CAAC,CAC1D,8BACU,OAAO,eACJ,KAAK,CAAC,IAAI,IAAI,SAAS,EAClC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,aAElD,0BAAa,YAAY,aACvB,4BAAgB,aAAa,YAAE,KAAK,CAAC,KAAK,GAAU,EACnD,KAAK,CAAC,OAAO,IAAI,uBAAW,eAAe,YAAE,KAAK,CAAC,OAAO,GAAK,IAC5D,EACL,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,yBAAa,eAAe,YAAE,KAAK,CAAC,OAAO,GAAO,IAC1E,CACX,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuD,EAAkB,EAAE,CAAC,CACtG,6BAAiB,cAAc,gBAAa,KAAK,CAAC,KAAK,eAAY,QAAQ,mBAAe,gBAAgB,YACvG,IAAI,CACH,KAAK,CAAC,MAAM,EACZ,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EACnB,CAAC,KAAK,EAAE,EAAE,CAAC,CACT,KAAC,KAAK,OAAK,KAAK,GAAI,CACrB,CACF,GACO,CACX,CAAA"}
@@ -0,0 +1,64 @@
1
+ @layer ket.app {
2
+ :where([data-kv-design-system]) [data-ui="toast-region"] {
3
+ position: fixed;
4
+ z-index: var(--kv-layer-toast);
5
+ right: var(--kv-space-5);
6
+ bottom: var(--kv-space-5);
7
+ display: grid;
8
+ width: min(24rem, calc(100vw - var(--kv-space-8)));
9
+ gap: var(--kv-space-2);
10
+ pointer-events: none;
11
+ }
12
+
13
+ :where([data-kv-design-system]) [data-ui="toast"] {
14
+ display: grid;
15
+ grid-template-columns: minmax(0, 1fr) auto;
16
+ align-items: start;
17
+ gap: var(--kv-space-3);
18
+ padding: var(--kv-space-3) var(--kv-space-4);
19
+ border: 1px solid var(--kv-border-default);
20
+ border-left: 3px solid var(--kv-text-muted);
21
+ border-radius: var(--kv-radius-md);
22
+ background: var(--kv-panel-bg);
23
+ box-shadow: var(--kv-shadow-popover);
24
+ pointer-events: auto;
25
+ }
26
+
27
+ :where([data-kv-design-system]) [data-ui="toast"][data-tone="positive"] {
28
+ border-left-color: var(--kv-positive);
29
+ }
30
+ :where([data-kv-design-system]) [data-ui="toast"][data-tone="warning"] {
31
+ border-left-color: var(--kv-warning);
32
+ }
33
+ :where([data-kv-design-system]) [data-ui="toast"][data-tone="danger"] {
34
+ border-left-color: var(--kv-danger);
35
+ }
36
+ :where([data-kv-design-system]) [data-ui="toast"][data-tone="info"] {
37
+ border-left-color: var(--kv-info);
38
+ }
39
+
40
+ :where([data-kv-design-system]) [data-ui="toast-copy"] {
41
+ display: grid;
42
+ gap: var(--kv-space-1);
43
+ }
44
+ :where([data-kv-design-system]) [data-ui="toast-title"] {
45
+ font-size: var(--kv-text-sm);
46
+ }
47
+ :where([data-kv-design-system]) [data-ui="toast-message"] {
48
+ margin: 0;
49
+ color: var(--kv-text-secondary);
50
+ font-size: var(--kv-text-sm);
51
+ }
52
+ :where([data-kv-design-system]) [data-ui="toast-actions"] {
53
+ min-width: 0;
54
+ }
55
+
56
+ @media (max-width: 42rem) {
57
+ :where([data-kv-design-system]) [data-ui="toast-region"] {
58
+ right: var(--kv-space-4);
59
+ bottom: max(var(--kv-space-4), env(safe-area-inset-bottom));
60
+ left: var(--kv-space-4);
61
+ width: auto;
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,9 @@
1
+ import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
2
+ export declare const HOOKS: readonly ['tooltip', 'tooltip-trigger', 'tooltip-content'];
3
+ export declare const Tooltip: (props: {
4
+ id: string;
5
+ text: string;
6
+ trigger: JSXChild;
7
+ placement?: 'top' | 'right' | 'bottom' | 'left';
8
+ }) => TemplateResult;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/interactions/tooltip/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEtE,eAAO,MAAM,KAAK,YAAI,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,CAAU,CAAA;AAE/E,eAAO,MAAM,OAAO,UAAW;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,QAAQ,CAAA;IACjB,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;CAChD,KAAG,cASH,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
2
+ export const HOOKS = ['tooltip', 'tooltip-trigger', 'tooltip-content'];
3
+ export const Tooltip = (props) => (_jsxs("span", { "data-ui": "tooltip", "data-placement": props.placement ?? 'top', children: [_jsx("span", { "data-ui": "tooltip-trigger", "aria-describedby": props.id, children: props.trigger }), _jsx("span", { "data-ui": "tooltip-content", id: props.id, role: "tooltip", children: props.text })] }));
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/interactions/tooltip/index.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,CAAU,CAAA;AAE/E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAKvB,EAAkB,EAAE,CAAC,CACpB,2BAAc,SAAS,oBAAiB,KAAK,CAAC,SAAS,IAAI,KAAK,aAC9D,0BAAc,iBAAiB,sBAAmB,KAAK,CAAC,EAAE,YACvD,KAAK,CAAC,OAAO,GACT,EACP,0BAAc,iBAAiB,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAC,SAAS,YACzD,KAAK,CAAC,IAAI,GACN,IACF,CACR,CAAA"}
@@ -0,0 +1,65 @@
1
+ @layer ket.app {
2
+ :where([data-kv-design-system]) [data-ui="tooltip"] {
3
+ position: relative;
4
+ display: inline-flex;
5
+ }
6
+
7
+ :where([data-kv-design-system]) [data-ui="tooltip-trigger"] {
8
+ display: inline-flex;
9
+ }
10
+
11
+ :where([data-kv-design-system]) [data-ui="tooltip-content"] {
12
+ position: absolute;
13
+ z-index: var(--kv-layer-popover);
14
+ bottom: calc(100% + var(--kv-space-2));
15
+ left: 50%;
16
+ width: max-content;
17
+ max-width: 16rem;
18
+ padding: var(--kv-space-1-5) var(--kv-space-2);
19
+ border-radius: var(--kv-radius-sm);
20
+ opacity: 0;
21
+ background: var(--kv-text-main);
22
+ color: var(--kv-panel-bg);
23
+ font-size: var(--kv-text-xs);
24
+ pointer-events: none;
25
+ transform: translate(-50%, var(--kv-space-1));
26
+ transition:
27
+ opacity var(--kv-motion-fast),
28
+ transform var(--kv-motion-fast);
29
+ }
30
+
31
+ :where([data-kv-design-system]) [data-ui="tooltip"][data-placement="bottom"] [data-ui="tooltip-content"] {
32
+ top: calc(100% + var(--kv-space-2));
33
+ bottom: auto;
34
+ transform: translate(-50%, calc(-1 * var(--kv-space-1)));
35
+ }
36
+
37
+ :where([data-kv-design-system]) [data-ui="tooltip"][data-placement="left"] [data-ui="tooltip-content"] {
38
+ top: 50%;
39
+ right: calc(100% + var(--kv-space-2));
40
+ bottom: auto;
41
+ left: auto;
42
+ transform: translate(var(--kv-space-1), -50%);
43
+ }
44
+
45
+ :where([data-kv-design-system]) [data-ui="tooltip"][data-placement="right"] [data-ui="tooltip-content"] {
46
+ top: 50%;
47
+ bottom: auto;
48
+ left: calc(100% + var(--kv-space-2));
49
+ transform: translate(calc(-1 * var(--kv-space-1)), -50%);
50
+ }
51
+
52
+ :where([data-kv-design-system]) [data-ui="tooltip"]:is(:hover, :focus-within) [data-ui="tooltip-content"] {
53
+ opacity: 1;
54
+ transform: translate(-50%, 0);
55
+ }
56
+
57
+ :where([data-kv-design-system])
58
+ [data-ui="tooltip"][data-placement="left"]:is(:hover, :focus-within)
59
+ [data-ui="tooltip-content"],
60
+ :where([data-kv-design-system])
61
+ [data-ui="tooltip"][data-placement="right"]:is(:hover, :focus-within)
62
+ [data-ui="tooltip-content"] {
63
+ transform: translate(0, -50%);
64
+ }
65
+ }
@@ -0,0 +1,63 @@
1
+ import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
2
+ export declare const HOOKS: readonly ['app-navigation', 'navigation-trigger', 'navigation-trigger-icon', 'navigation-trigger-identity', 'navigation-trigger-label', 'navigation-layer', 'navigation-backdrop', 'navigation-drawer', 'navigation-header', 'navigation-identity', 'navigation-context', 'navigation-close', 'navigation-groups', 'navigation-group', 'navigation-group-label', 'navigation-items', 'navigation-item', 'navigation-branch', 'navigation-branch-trigger', 'navigation-children', 'navigation-item-leading', 'navigation-item-copy', 'navigation-item-label', 'navigation-item-description', 'navigation-item-count', 'navigation-footer'];
3
+ type NavigationItemBase = {
4
+ id: string;
5
+ label: string;
6
+ leading?: JSXChild;
7
+ description?: string;
8
+ count?: number;
9
+ };
10
+ export type NavigationItemData = NavigationItemBase & ({
11
+ href: string;
12
+ active?: boolean;
13
+ children?: never;
14
+ expanded?: never;
15
+ } | {
16
+ href?: never;
17
+ active?: never;
18
+ children: readonly NavigationItemData[];
19
+ expanded?: boolean;
20
+ });
21
+ export type NavigationGroupData = {
22
+ id: string;
23
+ label?: string;
24
+ items: readonly NavigationItemData[];
25
+ };
26
+ export type AppNavigationProps = {
27
+ id: string;
28
+ label: string;
29
+ identity: JSXChild;
30
+ groups: readonly NavigationGroupData[];
31
+ context?: JSXChild;
32
+ footer?: JSXChild;
33
+ menuLabel?: string;
34
+ closeLabel?: string;
35
+ open?: boolean;
36
+ };
37
+ export declare const NavigationTrigger: (props: {
38
+ controls: string;
39
+ label: string;
40
+ identity: JSXChild;
41
+ open?: boolean;
42
+ }) => TemplateResult;
43
+ export declare const NavigationHeader: (props: {
44
+ identity: JSXChild;
45
+ context?: JSXChild;
46
+ closeLabel: string;
47
+ }) => TemplateResult;
48
+ export declare const NavigationItem: (props: NavigationItemData) => TemplateResult;
49
+ export declare const NavigationGroup: (props: NavigationGroupData & {
50
+ branchGroup?: string;
51
+ }) => TemplateResult;
52
+ export declare const NavigationDrawer: (props: {
53
+ id: string;
54
+ label: string;
55
+ identity: JSXChild;
56
+ groups: readonly NavigationGroupData[];
57
+ context?: JSXChild;
58
+ footer?: JSXChild;
59
+ closeLabel: string;
60
+ }) => TemplateResult;
61
+ export declare const AppNavigation: (props: AppNavigationProps) => TemplateResult;
62
+ export {};
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/layouts/app-navigation/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
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
+ 'app-navigation',
5
+ 'navigation-trigger',
6
+ 'navigation-trigger-icon',
7
+ 'navigation-trigger-identity',
8
+ 'navigation-trigger-label',
9
+ 'navigation-layer',
10
+ 'navigation-backdrop',
11
+ 'navigation-drawer',
12
+ 'navigation-header',
13
+ 'navigation-identity',
14
+ 'navigation-context',
15
+ 'navigation-close',
16
+ 'navigation-groups',
17
+ 'navigation-group',
18
+ 'navigation-group-label',
19
+ 'navigation-items',
20
+ 'navigation-item',
21
+ 'navigation-branch',
22
+ 'navigation-branch-trigger',
23
+ 'navigation-children',
24
+ 'navigation-item-leading',
25
+ 'navigation-item-copy',
26
+ 'navigation-item-label',
27
+ 'navigation-item-description',
28
+ 'navigation-item-count',
29
+ 'navigation-footer',
30
+ ];
31
+ export const NavigationTrigger = (props) => (_jsxs("summary", { "data-ui": "navigation-trigger", "aria-controls": props.controls, "data-open": props.open === true ? 'true' : 'false', children: [_jsxs("span", { "data-ui": "navigation-trigger-icon", "aria-hidden": "true", children: [_jsx("span", {}), _jsx("span", {}), _jsx("span", {})] }), _jsx("span", { "data-ui": "navigation-trigger-identity", children: props.identity }), _jsx("span", { "data-ui": "navigation-trigger-label", children: props.label })] }));
32
+ export const NavigationHeader = (props) => (_jsxs("header", { "data-ui": "navigation-header", children: [_jsxs("div", { children: [_jsx("div", { "data-ui": "navigation-identity", children: props.identity }), props.context !== undefined && _jsx("div", { "data-ui": "navigation-context", children: props.context })] }), _jsx("button", { "data-ui": "navigation-close", type: "button", "aria-label": props.closeLabel, children: _jsx("span", { "aria-hidden": "true" }) })] }));
33
+ const NavigationItemContent = (props) => (_jsxs(_Fragment, { children: [props.item.leading !== undefined && (_jsx("span", { "data-ui": "navigation-item-leading", "aria-hidden": "true", children: props.item.leading })), _jsxs("span", { "data-ui": "navigation-item-copy", children: [_jsx("span", { "data-ui": "navigation-item-label", children: props.item.label }), props.item.description !== undefined && (_jsx("span", { "data-ui": "navigation-item-description", children: props.item.description }))] }), props.item.count !== undefined && (_jsx("span", { "data-ui": "navigation-item-count", children: String(props.item.count) }))] }));
34
+ const hasActiveItem = (item) => item.active === true || item.children?.some(hasActiveItem) === true;
35
+ const renderNavigationItem = (props, branchGroup, level) => {
36
+ if (props.children !== undefined) {
37
+ const open = props.expanded === true || hasActiveItem(props);
38
+ return (_jsxs("details", { "data-ui": "navigation-branch", "data-level": String(level), name: branchGroup, open: open, children: [_jsx("summary", { "data-ui": "navigation-branch-trigger", children: _jsx(NavigationItemContent, { item: props }) }), _jsx("div", { "data-ui": "navigation-children", "data-level": String(level + 1), children: each(props.children, (item) => item.id, (item) => renderNavigationItem(item, `${props.id}-branches`, level + 1)) })] }));
39
+ }
40
+ return (_jsx("a", { "data-ui": "navigation-item", "data-active": props.active === true ? 'true' : null, "data-level": String(level), href: props.href, "aria-current": props.active === true ? 'page' : null, children: _jsx(NavigationItemContent, { item: props }) }));
41
+ };
42
+ export const NavigationItem = (props) => (_jsx(_Fragment, { children: renderNavigationItem(props, `${props.id}-root-branches`, 1) }));
43
+ export const NavigationGroup = (props) => (_jsxs("section", { "data-ui": "navigation-group", "aria-labelledby": props.label ? `${props.id}-label` : null, children: [props.label !== undefined && (_jsx("h2", { "data-ui": "navigation-group-label", id: `${props.id}-label`, children: props.label })), _jsx("div", { "data-ui": "navigation-items", children: each(props.items, (item) => item.id, (item) => renderNavigationItem(item, props.branchGroup ?? `${props.id}-branches`, 1)) })] }));
44
+ export const NavigationDrawer = (props) => (_jsxs("div", { "data-ui": "navigation-layer", children: [_jsx("button", { "data-ui": "navigation-backdrop", type: "button", "aria-label": props.closeLabel, tabIndex: -1 }), _jsxs("div", { "data-ui": "navigation-drawer", id: props.id, "data-navigation-label": props.label, tabIndex: -1, children: [_jsx(NavigationHeader, { identity: props.identity, context: props.context, closeLabel: props.closeLabel }), _jsx("nav", { "data-ui": "navigation-groups", "aria-label": props.label, children: each(props.groups, (group) => group.id, (group) => (_jsx(NavigationGroup, { ...group, id: `${props.id}-${group.id}`, branchGroup: `${props.id}-branches` }))) }), props.footer !== undefined && _jsx("footer", { "data-ui": "navigation-footer", children: props.footer })] })] }));
45
+ export const AppNavigation = (props) => {
46
+ const drawerId = `${props.id}-drawer`;
47
+ const closeLabel = props.closeLabel ?? 'Close navigation';
48
+ return (_jsxs("details", { "data-ui": "app-navigation", "data-navigation-id": props.id, open: props.open === true, children: [_jsx(NavigationTrigger, { controls: drawerId, label: props.menuLabel ?? 'Menu', identity: props.identity, open: props.open }), _jsx(NavigationDrawer, { id: drawerId, label: props.label, identity: props.identity, groups: props.groups, context: props.context, footer: props.footer, closeLabel: closeLabel })] }));
49
+ };
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/layouts/app-navigation/index.tsx"],"names":[],"mappings":"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"}