@ketvietlab/design-system 0.1.8 → 0.1.12

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 (361) hide show
  1. package/README.md +42 -3
  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 +554 -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 +9743 -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 +127 -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 +1146 -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 +62 -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/tokens.css +31 -4
  96. package/dist/index.d.ts +76 -35
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +42 -19
  99. package/dist/index.js.map +1 -1
  100. package/dist/interactions/dialog/index.d.ts +25 -0
  101. package/dist/interactions/dialog/index.d.ts.map +1 -0
  102. package/dist/interactions/dialog/index.js +10 -0
  103. package/dist/interactions/dialog/index.js.map +1 -0
  104. package/dist/interactions/dialog/styles.css +11 -0
  105. package/dist/interactions/menu/index.d.ts +27 -0
  106. package/dist/interactions/menu/index.d.ts.map +1 -0
  107. package/dist/interactions/menu/index.js +13 -0
  108. package/dist/interactions/menu/index.js.map +1 -0
  109. package/dist/interactions/menu/styles.css +82 -0
  110. package/dist/interactions/popover/index.d.ts +15 -0
  111. package/dist/interactions/popover/index.d.ts.map +1 -0
  112. package/dist/interactions/popover/index.js +4 -0
  113. package/dist/interactions/popover/index.js.map +1 -0
  114. package/dist/interactions/popover/styles.css +47 -0
  115. package/dist/interactions/skeleton/index.d.ts +7 -0
  116. package/dist/interactions/skeleton/index.d.ts.map +1 -0
  117. package/dist/interactions/skeleton/index.js +5 -0
  118. package/dist/interactions/skeleton/index.js.map +1 -0
  119. package/dist/interactions/skeleton/styles.css +32 -0
  120. package/dist/interactions/spinner/index.d.ts +7 -0
  121. package/dist/interactions/spinner/index.d.ts.map +1 -0
  122. package/dist/interactions/spinner/index.js +4 -0
  123. package/dist/interactions/spinner/index.js.map +1 -0
  124. package/dist/interactions/spinner/styles.css +38 -0
  125. package/dist/interactions/toast/index.d.ts +16 -0
  126. package/dist/interactions/toast/index.d.ts.map +1 -0
  127. package/dist/interactions/toast/index.js +13 -0
  128. package/dist/interactions/toast/index.js.map +1 -0
  129. package/dist/interactions/toast/styles.css +64 -0
  130. package/dist/interactions/tooltip/index.d.ts +9 -0
  131. package/dist/interactions/tooltip/index.d.ts.map +1 -0
  132. package/dist/interactions/tooltip/index.js +4 -0
  133. package/dist/interactions/tooltip/index.js.map +1 -0
  134. package/dist/interactions/tooltip/styles.css +65 -0
  135. package/dist/layouts/flat/styles.css +74 -0
  136. package/dist/layouts/flat.css +1 -74
  137. package/dist/layouts/grouped/styles.css +126 -0
  138. package/dist/layouts/grouped.css +1 -126
  139. package/dist/layouts/index.d.ts +1 -69
  140. package/dist/layouts/index.d.ts.map +1 -1
  141. package/dist/layouts/index.js +1 -68
  142. package/dist/layouts/index.js.map +1 -1
  143. package/dist/layouts/layout/index.d.ts +70 -0
  144. package/dist/layouts/layout/index.d.ts.map +1 -0
  145. package/dist/layouts/layout/index.js +71 -0
  146. package/dist/layouts/layout/index.js.map +1 -0
  147. package/dist/layouts/layout/styles.css +369 -0
  148. package/dist/layouts/layouts.css +1 -369
  149. package/dist/layouts/shell/index.d.ts +27 -0
  150. package/dist/layouts/shell/index.d.ts.map +1 -0
  151. package/dist/layouts/shell/index.js +24 -0
  152. package/dist/layouts/shell/index.js.map +1 -0
  153. package/dist/layouts/shell/styles.css +168 -0
  154. package/dist/layouts/shell.css +1 -168
  155. package/dist/layouts/shell.d.ts +1 -26
  156. package/dist/layouts/shell.d.ts.map +1 -1
  157. package/dist/layouts/shell.js +1 -23
  158. package/dist/layouts/shell.js.map +1 -1
  159. package/dist/patterns/board-page/index.d.ts +16 -0
  160. package/dist/patterns/board-page/index.d.ts.map +1 -0
  161. package/dist/patterns/board-page/index.js +30 -0
  162. package/dist/patterns/board-page/index.js.map +1 -0
  163. package/dist/patterns/board-page/styles.css +164 -0
  164. package/dist/patterns/board-page.d.ts +1 -13
  165. package/dist/patterns/board-page.d.ts.map +1 -1
  166. package/dist/patterns/board-page.js +1 -27
  167. package/dist/patterns/board-page.js.map +1 -1
  168. package/dist/patterns/dashboard-page/index.d.ts +15 -0
  169. package/dist/patterns/dashboard-page/index.d.ts.map +1 -0
  170. package/dist/patterns/dashboard-page/index.js +27 -0
  171. package/dist/patterns/dashboard-page/index.js.map +1 -0
  172. package/dist/patterns/dashboard-page/styles.css +169 -0
  173. package/dist/patterns/dashboard-page.d.ts +1 -12
  174. package/dist/patterns/dashboard-page.d.ts.map +1 -1
  175. package/dist/patterns/dashboard-page.js +1 -24
  176. package/dist/patterns/dashboard-page.js.map +1 -1
  177. package/dist/patterns/data-table/index.d.ts +74 -0
  178. package/dist/patterns/data-table/index.d.ts.map +1 -0
  179. package/dist/patterns/data-table/index.js +60 -0
  180. package/dist/patterns/data-table/index.js.map +1 -0
  181. package/dist/patterns/data-table/styles.css +269 -0
  182. package/dist/patterns/data-table.d.ts +1 -73
  183. package/dist/patterns/data-table.d.ts.map +1 -1
  184. package/dist/patterns/data-table.js +1 -59
  185. package/dist/patterns/data-table.js.map +1 -1
  186. package/dist/patterns/form-page/index.d.ts +8 -0
  187. package/dist/patterns/form-page/index.d.ts.map +1 -0
  188. package/dist/patterns/form-page/index.js +22 -0
  189. package/dist/patterns/form-page/index.js.map +1 -0
  190. package/dist/patterns/form-page/styles.css +237 -0
  191. package/dist/patterns/form-page.d.ts +1 -7
  192. package/dist/patterns/form-page.d.ts.map +1 -1
  193. package/dist/patterns/form-page.js +1 -21
  194. package/dist/patterns/form-page.js.map +1 -1
  195. package/dist/patterns/list-chrome/index.d.ts +80 -0
  196. package/dist/patterns/list-chrome/index.d.ts.map +1 -0
  197. package/dist/patterns/list-chrome/index.js +45 -0
  198. package/dist/patterns/list-chrome/index.js.map +1 -0
  199. package/dist/patterns/list-chrome/styles.css +245 -0
  200. package/dist/patterns/list-chrome.d.ts +1 -79
  201. package/dist/patterns/list-chrome.d.ts.map +1 -1
  202. package/dist/patterns/list-chrome.js +1 -44
  203. package/dist/patterns/list-chrome.js.map +1 -1
  204. package/dist/patterns/list-page/index.d.ts +31 -0
  205. package/dist/patterns/list-page/index.d.ts.map +1 -0
  206. package/dist/patterns/list-page/index.js +41 -0
  207. package/dist/patterns/list-page/index.js.map +1 -0
  208. package/dist/patterns/list-page/responsive.css +140 -0
  209. package/dist/patterns/list-page/styles.css +228 -0
  210. package/dist/patterns/list-page.d.ts +1 -30
  211. package/dist/patterns/list-page.d.ts.map +1 -1
  212. package/dist/patterns/list-page.js +1 -40
  213. package/dist/patterns/list-page.js.map +1 -1
  214. package/dist/patterns/modal-sheet/index.d.ts +16 -0
  215. package/dist/patterns/modal-sheet/index.d.ts.map +1 -0
  216. package/dist/patterns/modal-sheet/index.js +15 -0
  217. package/dist/patterns/modal-sheet/index.js.map +1 -0
  218. package/dist/patterns/modal-sheet/styles.css +219 -0
  219. package/dist/patterns/modal-sheet.d.ts +1 -15
  220. package/dist/patterns/modal-sheet.d.ts.map +1 -1
  221. package/dist/patterns/modal-sheet.js +1 -14
  222. package/dist/patterns/modal-sheet.js.map +1 -1
  223. package/dist/patterns/page-shell/index.d.ts +24 -0
  224. package/dist/patterns/page-shell/index.d.ts.map +1 -0
  225. package/dist/patterns/page-shell/index.js +11 -0
  226. package/dist/patterns/page-shell/index.js.map +1 -0
  227. package/dist/patterns/page-shell.d.ts +1 -23
  228. package/dist/patterns/page-shell.d.ts.map +1 -1
  229. package/dist/patterns/page-shell.js +1 -10
  230. package/dist/patterns/page-shell.js.map +1 -1
  231. package/dist/patterns/patterns.css +12 -2247
  232. package/dist/patterns/pipeline/index.d.ts +29 -0
  233. package/dist/patterns/pipeline/index.d.ts.map +1 -0
  234. package/dist/patterns/pipeline/index.js +26 -0
  235. package/dist/patterns/pipeline/index.js.map +1 -0
  236. package/dist/patterns/pipeline/styles.css +168 -0
  237. package/dist/patterns/pipeline.d.ts +1 -28
  238. package/dist/patterns/pipeline.d.ts.map +1 -1
  239. package/dist/patterns/pipeline.js +1 -25
  240. package/dist/patterns/pipeline.js.map +1 -1
  241. package/dist/patterns/record-form/index.d.ts +18 -0
  242. package/dist/patterns/record-form/index.d.ts.map +1 -0
  243. package/dist/patterns/record-form/index.js +14 -0
  244. package/dist/patterns/record-form/index.js.map +1 -0
  245. package/dist/patterns/record-form/styles.css +175 -0
  246. package/dist/patterns/record-form.d.ts +1 -17
  247. package/dist/patterns/record-form.d.ts.map +1 -1
  248. package/dist/patterns/record-form.js +1 -13
  249. package/dist/patterns/record-form.js.map +1 -1
  250. package/dist/patterns/record-page/index.d.ts +31 -0
  251. package/dist/patterns/record-page/index.d.ts.map +1 -0
  252. package/dist/patterns/record-page/index.js +29 -0
  253. package/dist/patterns/record-page/index.js.map +1 -0
  254. package/dist/patterns/record-page/styles.css +228 -0
  255. package/dist/patterns/record-page.d.ts +1 -30
  256. package/dist/patterns/record-page.d.ts.map +1 -1
  257. package/dist/patterns/record-page.js +1 -28
  258. package/dist/patterns/record-page.js.map +1 -1
  259. package/dist/patterns/workspace-page/index.d.ts +23 -0
  260. package/dist/patterns/workspace-page/index.d.ts.map +1 -0
  261. package/dist/patterns/workspace-page/index.js +26 -0
  262. package/dist/patterns/workspace-page/index.js.map +1 -0
  263. package/dist/patterns/workspace-page/styles.css +9 -0
  264. package/dist/patterns/workspace-page.d.ts +1 -22
  265. package/dist/patterns/workspace-page.d.ts.map +1 -1
  266. package/dist/patterns/workspace-page.js +1 -25
  267. package/dist/patterns/workspace-page.js.map +1 -1
  268. package/dist/primitives/actions/index.d.ts +36 -0
  269. package/dist/primitives/actions/index.d.ts.map +1 -0
  270. package/dist/primitives/actions/index.js +10 -0
  271. package/dist/primitives/actions/index.js.map +1 -0
  272. package/dist/primitives/actions/styles.css +149 -0
  273. package/dist/primitives/actions.d.ts +1 -35
  274. package/dist/primitives/actions.d.ts.map +1 -1
  275. package/dist/primitives/actions.js +1 -9
  276. package/dist/primitives/actions.js.map +1 -1
  277. package/dist/primitives/feedback/index.d.ts +19 -0
  278. package/dist/primitives/feedback/index.d.ts.map +1 -0
  279. package/dist/primitives/feedback/index.js +21 -0
  280. package/dist/primitives/feedback/index.js.map +1 -0
  281. package/dist/primitives/feedback/styles.css +117 -0
  282. package/dist/primitives/feedback.d.ts +1 -18
  283. package/dist/primitives/feedback.d.ts.map +1 -1
  284. package/dist/primitives/feedback.js +1 -22
  285. package/dist/primitives/feedback.js.map +1 -1
  286. package/dist/primitives/field/index.d.ts +35 -0
  287. package/dist/primitives/field/index.d.ts.map +1 -0
  288. package/dist/primitives/field/index.js +34 -0
  289. package/dist/primitives/field/index.js.map +1 -0
  290. package/dist/primitives/field/native-control.d.ts +4 -0
  291. package/dist/primitives/field/native-control.d.ts.map +1 -0
  292. package/dist/primitives/field/native-control.js +12 -0
  293. package/dist/primitives/field/native-control.js.map +1 -0
  294. package/dist/primitives/field/styles.css +160 -0
  295. package/dist/primitives/field.d.ts +1 -34
  296. package/dist/primitives/field.d.ts.map +1 -1
  297. package/dist/primitives/field.js +1 -41
  298. package/dist/primitives/field.js.map +1 -1
  299. package/dist/primitives/navigation/index.d.ts +26 -0
  300. package/dist/primitives/navigation/index.d.ts.map +1 -0
  301. package/dist/primitives/navigation/index.js +16 -0
  302. package/dist/primitives/navigation/index.js.map +1 -0
  303. package/dist/primitives/navigation.d.ts +1 -25
  304. package/dist/primitives/navigation.d.ts.map +1 -1
  305. package/dist/primitives/navigation.js +1 -15
  306. package/dist/primitives/navigation.js.map +1 -1
  307. package/dist/primitives/primitives.css +4 -570
  308. package/dist/primitives/progress/index.d.ts +10 -0
  309. package/dist/primitives/progress/index.d.ts.map +1 -0
  310. package/dist/primitives/progress/index.js +13 -0
  311. package/dist/primitives/progress/index.js.map +1 -0
  312. package/dist/primitives/progress.d.ts +1 -9
  313. package/dist/primitives/progress.d.ts.map +1 -1
  314. package/dist/primitives/progress.js +1 -12
  315. package/dist/primitives/progress.js.map +1 -1
  316. package/dist/primitives/status/index.d.ts +27 -0
  317. package/dist/primitives/status/index.d.ts.map +1 -0
  318. package/dist/primitives/status/index.js +16 -0
  319. package/dist/primitives/status/index.js.map +1 -0
  320. package/dist/primitives/status/styles.css +114 -0
  321. package/dist/primitives/status.d.ts +1 -26
  322. package/dist/primitives/status.d.ts.map +1 -1
  323. package/dist/primitives/status.js +1 -15
  324. package/dist/primitives/status.js.map +1 -1
  325. package/dist/record/activity/index.d.ts +26 -0
  326. package/dist/record/activity/index.d.ts.map +1 -0
  327. package/dist/record/activity/index.js +33 -0
  328. package/dist/record/activity/index.js.map +1 -0
  329. package/dist/record/activity/styles.css +38 -0
  330. package/dist/record/composition/index.d.ts +33 -0
  331. package/dist/record/composition/index.d.ts.map +1 -0
  332. package/dist/record/composition/index.js +10 -0
  333. package/dist/record/composition/index.js.map +1 -0
  334. package/dist/record/composition/styles.css +30 -0
  335. package/dist/record/display/index.d.ts +37 -0
  336. package/dist/record/display/index.d.ts.map +1 -0
  337. package/dist/record/display/index.js +23 -0
  338. package/dist/record/display/index.js.map +1 -0
  339. package/dist/record/display/styles.css +63 -0
  340. package/dist/record/formatted-values/index.d.ts +19 -0
  341. package/dist/record/formatted-values/index.d.ts.map +1 -0
  342. package/dist/record/formatted-values/index.js +21 -0
  343. package/dist/record/formatted-values/index.js.map +1 -0
  344. package/dist/record/formatted-values/styles.css +8 -0
  345. package/dist/record/media/index.d.ts +31 -0
  346. package/dist/record/media/index.d.ts.map +1 -0
  347. package/dist/record/media/index.js +19 -0
  348. package/dist/record/media/index.js.map +1 -0
  349. package/dist/record/media/styles.css +38 -0
  350. package/dist/runtime/auto.d.ts +2 -0
  351. package/dist/runtime/auto.d.ts.map +1 -0
  352. package/dist/runtime/auto.js +5 -0
  353. package/dist/runtime/auto.js.map +1 -0
  354. package/dist/runtime/index.d.ts +9 -0
  355. package/dist/runtime/index.d.ts.map +1 -0
  356. package/dist/runtime/index.js +205 -0
  357. package/dist/runtime/index.js.map +1 -0
  358. package/dist/styles.css +46 -8
  359. package/package.json +8 -2
  360. /package/dist/primitives/{navigation.css → navigation/styles.css} +0 -0
  361. /package/dist/primitives/{progress.css → progress/styles.css} +0 -0
@@ -0,0 +1,82 @@
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
+ min-height: var(--kv-control-height);
9
+ padding: 0 var(--kv-space-3);
10
+ border: 1px solid var(--kv-border-default);
11
+ border-radius: var(--kv-radius-sm);
12
+ background: var(--kv-interactive-bg);
13
+ color: var(--kv-text-secondary);
14
+ font-size: var(--kv-text-sm);
15
+ font-weight: var(--kv-weight-medium);
16
+ cursor: pointer;
17
+ list-style: none;
18
+ }
19
+
20
+ :where([data-kv-design-system]) [data-ui="menu-trigger"]::-webkit-details-marker {
21
+ display: none;
22
+ }
23
+
24
+ :where([data-kv-design-system]) [data-ui="menu-panel"] {
25
+ position: absolute;
26
+ z-index: var(--kv-layer-menu);
27
+ top: calc(100% + var(--kv-space-1));
28
+ left: 0;
29
+ display: grid;
30
+ min-width: 13rem;
31
+ padding: var(--kv-space-1);
32
+ border: 1px solid var(--kv-border-default);
33
+ border-radius: var(--kv-radius-md);
34
+ background: var(--kv-panel-bg);
35
+ box-shadow: var(--kv-shadow-popover);
36
+ }
37
+
38
+ :where([data-kv-design-system]) [data-ui="menu"][data-align="end"] [data-ui="menu-panel"] {
39
+ right: 0;
40
+ left: auto;
41
+ }
42
+
43
+ :where([data-kv-design-system]) [data-ui="menu-item"] {
44
+ display: flex;
45
+ width: 100%;
46
+ min-height: var(--kv-control-height);
47
+ align-items: center;
48
+ gap: var(--kv-space-2);
49
+ padding: var(--kv-space-2) var(--kv-space-3);
50
+ border: 0;
51
+ border-radius: var(--kv-radius-sm);
52
+ background: transparent;
53
+ color: var(--kv-text-main);
54
+ font: inherit;
55
+ text-align: left;
56
+ text-decoration: none;
57
+ cursor: pointer;
58
+ }
59
+
60
+ :where([data-kv-design-system]) [data-ui="menu-item"]:hover {
61
+ background: var(--kv-interactive-hover);
62
+ }
63
+
64
+ :where([data-kv-design-system]) [data-ui="menu-item"][aria-disabled="true"] {
65
+ color: var(--kv-text-disabled);
66
+ cursor: not-allowed;
67
+ }
68
+
69
+ :where([data-kv-design-system]) [data-ui="menu-item"][data-destructive="true"] {
70
+ color: var(--kv-danger);
71
+ }
72
+
73
+ :where([data-kv-design-system]) [data-ui="menu-item-copy"] {
74
+ display: grid;
75
+ gap: var(--kv-space-0-5);
76
+ }
77
+
78
+ :where([data-kv-design-system]) [data-ui="menu-item-copy"] small {
79
+ color: var(--kv-text-muted);
80
+ font-size: var(--kv-text-xs);
81
+ }
82
+ }
@@ -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,74 @@
1
+ /* Opt-in white, unframed workspace. Sidebar appearance is independent. */
2
+ @layer ket.app {
3
+ [data-kv-design-system][data-presentation="flat"] :is([data-ui="app-main"], [data-ui="modal-layer"]) {
4
+ color-scheme: light;
5
+ --kv-page-bg: var(--kv-ref-white);
6
+ --kv-page-chrome-bg: var(--kv-ref-white);
7
+ --kv-page-content-bg: var(--kv-ref-white);
8
+ --kv-panel-bg: var(--kv-ref-white);
9
+ --kv-panel-bg-subtle: var(--kv-ref-white);
10
+ --kv-table-bg: var(--kv-ref-white);
11
+ --kv-table-header-bg: var(--kv-ref-white);
12
+ --kv-table-row-bg: var(--kv-ref-white);
13
+ color: var(--kv-text-main);
14
+ }
15
+
16
+ [data-kv-design-system][data-presentation="flat"] [data-ui="app-main"] {
17
+ background: var(--kv-ref-white);
18
+ }
19
+
20
+ [data-kv-design-system][data-presentation="flat"]
21
+ :is([data-ui="app-main"], [data-ui="modal-layer"])
22
+ :is(
23
+ [data-ui="surface"],
24
+ [data-ui="metric"],
25
+ [data-ui="content-card"],
26
+ [data-ui="table-scroll"],
27
+ [data-ui="disclosure"],
28
+ [data-ui="notice"],
29
+ [data-ui="list-page-footer"]
30
+ ) {
31
+ border: 0;
32
+ border-radius: 0;
33
+ background: transparent;
34
+ box-shadow: none;
35
+ }
36
+
37
+ [data-kv-design-system][data-presentation="flat"]
38
+ :is([data-ui="app-main"], [data-ui="modal-layer"])
39
+ :is([data-ui="surface"], [data-ui="metric"], [data-ui="content-card"], [data-ui="notice"]) {
40
+ padding: 0;
41
+ }
42
+
43
+ [data-kv-design-system][data-presentation="flat"] [data-ui="surface"] {
44
+ overflow: visible;
45
+ }
46
+
47
+ [data-kv-design-system][data-presentation="flat"] [data-ui="surface"] > [data-ui="surface-head"] {
48
+ padding: 0;
49
+ margin-bottom: var(--kv-space-5);
50
+ }
51
+
52
+ [data-kv-design-system][data-presentation="flat"] [data-ui="metric"] {
53
+ min-height: 0;
54
+ }
55
+
56
+ [data-kv-design-system][data-presentation="flat"] [data-ui="content-card"] {
57
+ padding-block: var(--kv-space-3);
58
+ }
59
+
60
+ [data-kv-design-system][data-presentation="flat"] [data-ui="card-title"] a:hover {
61
+ text-decoration: underline;
62
+ }
63
+
64
+ [data-kv-design-system][data-presentation="flat"]
65
+ :is([data-ui="disclosure-summary"], [data-ui="disclosure-body"]) {
66
+ padding-inline: 0;
67
+ }
68
+
69
+ [data-kv-design-system][data-presentation="flat"] [data-ui="modal-sheet"] {
70
+ border: 0;
71
+ border-radius: 0;
72
+ box-shadow: none;
73
+ }
74
+ }
@@ -1,74 +1 @@
1
- /* Opt-in white, unframed workspace. Sidebar appearance is independent. */
2
- @layer ket.app {
3
- [data-kv-design-system][data-presentation="flat"] :is([data-ui="app-main"], [data-ui="modal-layer"]) {
4
- color-scheme: light;
5
- --kv-page-bg: var(--kv-ref-white);
6
- --kv-page-chrome-bg: var(--kv-ref-white);
7
- --kv-page-content-bg: var(--kv-ref-white);
8
- --kv-panel-bg: var(--kv-ref-white);
9
- --kv-panel-bg-subtle: var(--kv-ref-white);
10
- --kv-table-bg: var(--kv-ref-white);
11
- --kv-table-header-bg: var(--kv-ref-white);
12
- --kv-table-row-bg: var(--kv-ref-white);
13
- color: var(--kv-text-main);
14
- }
15
-
16
- [data-kv-design-system][data-presentation="flat"] [data-ui="app-main"] {
17
- background: var(--kv-ref-white);
18
- }
19
-
20
- [data-kv-design-system][data-presentation="flat"]
21
- :is([data-ui="app-main"], [data-ui="modal-layer"])
22
- :is(
23
- [data-ui="surface"],
24
- [data-ui="metric"],
25
- [data-ui="content-card"],
26
- [data-ui="table-scroll"],
27
- [data-ui="disclosure"],
28
- [data-ui="notice"],
29
- [data-ui="list-page-footer"]
30
- ) {
31
- border: 0;
32
- border-radius: 0;
33
- background: transparent;
34
- box-shadow: none;
35
- }
36
-
37
- [data-kv-design-system][data-presentation="flat"]
38
- :is([data-ui="app-main"], [data-ui="modal-layer"])
39
- :is([data-ui="surface"], [data-ui="metric"], [data-ui="content-card"], [data-ui="notice"]) {
40
- padding: 0;
41
- }
42
-
43
- [data-kv-design-system][data-presentation="flat"] [data-ui="surface"] {
44
- overflow: visible;
45
- }
46
-
47
- [data-kv-design-system][data-presentation="flat"] [data-ui="surface"] > [data-ui="surface-head"] {
48
- padding: 0;
49
- margin-bottom: var(--kv-space-5);
50
- }
51
-
52
- [data-kv-design-system][data-presentation="flat"] [data-ui="metric"] {
53
- min-height: 0;
54
- }
55
-
56
- [data-kv-design-system][data-presentation="flat"] [data-ui="content-card"] {
57
- padding-block: var(--kv-space-3);
58
- }
59
-
60
- [data-kv-design-system][data-presentation="flat"] [data-ui="card-title"] a:hover {
61
- text-decoration: underline;
62
- }
63
-
64
- [data-kv-design-system][data-presentation="flat"]
65
- :is([data-ui="disclosure-summary"], [data-ui="disclosure-body"]) {
66
- padding-inline: 0;
67
- }
68
-
69
- [data-kv-design-system][data-presentation="flat"] [data-ui="modal-sheet"] {
70
- border: 0;
71
- border-radius: 0;
72
- box-shadow: none;
73
- }
74
- }
1
+ @import "./flat/styles.css";