@bettercms-ai/kit 0.1.1 → 2.0.0

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 (1100) hide show
  1. package/README.md +22 -16
  2. package/dist/_virtual/_rolldown/runtime.js +13 -0
  3. package/dist/adapters/dock-values.d.ts +28 -0
  4. package/dist/adapters/dock-values.js +41 -0
  5. package/dist/adapters/dock-values.js.map +1 -0
  6. package/dist/adapters/icons.d.ts +15 -0
  7. package/dist/adapters/icons.js +27 -0
  8. package/dist/adapters/icons.js.map +1 -0
  9. package/dist/adapters/lossy.d.ts +326 -0
  10. package/dist/adapters/lossy.js +414 -0
  11. package/dist/adapters/lossy.js.map +1 -0
  12. package/dist/adapters/prod-types.d.ts +546 -0
  13. package/dist/adapters/prod-types.js +714 -0
  14. package/dist/adapters/prod-types.js.map +1 -0
  15. package/dist/adapters/schema.d.ts +154 -0
  16. package/dist/adapters/schema.js +3020 -0
  17. package/dist/adapters/schema.js.map +1 -0
  18. package/dist/adapters/values.d.ts +221 -0
  19. package/dist/adapters/values.js +623 -0
  20. package/dist/adapters/values.js.map +1 -0
  21. package/dist/brand/logo.d.ts +17 -0
  22. package/dist/brand/logo.js +96 -0
  23. package/dist/brand/logo.js.map +1 -0
  24. package/dist/context.d.ts +359 -0
  25. package/dist/context.js +217 -0
  26. package/dist/context.js.map +1 -0
  27. package/dist/controls/button.d.ts +72 -0
  28. package/dist/controls/button.js +578 -0
  29. package/dist/controls/button.js.map +1 -0
  30. package/dist/controls/c1.d.ts +11 -0
  31. package/dist/controls/c1.js +24 -0
  32. package/dist/controls/c1.js.map +1 -0
  33. package/dist/controls/c2.d.ts +10 -0
  34. package/dist/controls/c2.js +19 -0
  35. package/dist/controls/c2.js.map +1 -0
  36. package/dist/controls/choice.d.ts +44 -0
  37. package/dist/controls/choice.js +463 -0
  38. package/dist/controls/choice.js.map +1 -0
  39. package/dist/controls/code-register.d.ts +1 -0
  40. package/dist/controls/code-register.js +8 -0
  41. package/dist/controls/code-register.js.map +1 -0
  42. package/dist/controls/code.d.ts +42 -0
  43. package/dist/controls/code.js +397 -0
  44. package/dist/controls/code.js.map +1 -0
  45. package/dist/controls/color.d.ts +5 -0
  46. package/dist/controls/color.js +130 -0
  47. package/dist/controls/color.js.map +1 -0
  48. package/dist/controls/component-services.d.ts +156 -0
  49. package/dist/controls/component-services.js +7 -0
  50. package/dist/controls/component-services.js.map +1 -0
  51. package/dist/controls/date-register.d.ts +1 -0
  52. package/dist/controls/date-register.js +9 -0
  53. package/dist/controls/date-register.js.map +1 -0
  54. package/dist/controls/date-zone.d.ts +104 -0
  55. package/dist/controls/date-zone.js +278 -0
  56. package/dist/controls/date-zone.js.map +1 -0
  57. package/dist/controls/date.d.ts +7 -0
  58. package/dist/controls/date.js +466 -0
  59. package/dist/controls/date.js.map +1 -0
  60. package/dist/controls/form-picker-register.d.ts +1 -0
  61. package/dist/controls/form-picker-register.js +19 -0
  62. package/dist/controls/form-picker-register.js.map +1 -0
  63. package/dist/controls/form-picker.d.ts +43 -0
  64. package/dist/controls/form-picker.js +85 -0
  65. package/dist/controls/form-picker.js.map +1 -0
  66. package/dist/controls/icon-register.d.ts +1 -0
  67. package/dist/controls/icon-register.js +8 -0
  68. package/dist/controls/icon-register.js.map +1 -0
  69. package/dist/controls/icon.d.ts +40 -0
  70. package/dist/controls/icon.js +360 -0
  71. package/dist/controls/icon.js.map +1 -0
  72. package/dist/controls/index.d.ts +5 -0
  73. package/dist/controls/index.js +38 -0
  74. package/dist/controls/index.js.map +1 -0
  75. package/dist/controls/json-register.d.ts +1 -0
  76. package/dist/controls/json-register.js +8 -0
  77. package/dist/controls/json-register.js.map +1 -0
  78. package/dist/controls/json.d.ts +2 -0
  79. package/dist/controls/json.js +82 -0
  80. package/dist/controls/json.js.map +1 -0
  81. package/dist/controls/link.d.ts +260 -0
  82. package/dist/controls/link.js +1186 -0
  83. package/dist/controls/link.js.map +1 -0
  84. package/dist/controls/location-register.d.ts +1 -0
  85. package/dist/controls/location-register.js +8 -0
  86. package/dist/controls/location-register.js.map +1 -0
  87. package/dist/controls/location.d.ts +16 -0
  88. package/dist/controls/location.js +221 -0
  89. package/dist/controls/location.js.map +1 -0
  90. package/dist/controls/media-register.d.ts +1 -0
  91. package/dist/controls/media-register.js +12 -0
  92. package/dist/controls/media-register.js.map +1 -0
  93. package/dist/controls/media-services.d.ts +46 -0
  94. package/dist/controls/media-services.js +0 -0
  95. package/dist/controls/media.d.ts +104 -0
  96. package/dist/controls/media.js +1396 -0
  97. package/dist/controls/media.js.map +1 -0
  98. package/dist/controls/number.d.ts +22 -0
  99. package/dist/controls/number.js +196 -0
  100. package/dist/controls/number.js.map +1 -0
  101. package/dist/controls/reference-register.d.ts +1 -0
  102. package/dist/controls/reference-register.js +10 -0
  103. package/dist/controls/reference-register.js.map +1 -0
  104. package/dist/controls/reference-services.d.ts +58 -0
  105. package/dist/controls/reference-services.js +0 -0
  106. package/dist/controls/reference.d.ts +23 -0
  107. package/dist/controls/reference.js +777 -0
  108. package/dist/controls/reference.js.map +1 -0
  109. package/dist/controls/rich-text/blocks.d.ts +49 -0
  110. package/dist/controls/rich-text/blocks.js +1859 -0
  111. package/dist/controls/rich-text/blocks.js.map +1 -0
  112. package/dist/controls/rich-text/catalog.d.ts +101 -0
  113. package/dist/controls/rich-text/catalog.js +623 -0
  114. package/dist/controls/rich-text/catalog.js.map +1 -0
  115. package/dist/controls/rich-text/codec.d.ts +64 -0
  116. package/dist/controls/rich-text/codec.js +34 -0
  117. package/dist/controls/rich-text/codec.js.map +1 -0
  118. package/dist/controls/rich-text/component-card.d.ts +14 -0
  119. package/dist/controls/rich-text/component-card.js +1024 -0
  120. package/dist/controls/rich-text/component-card.js.map +1 -0
  121. package/dist/controls/rich-text/component-panel.d.ts +47 -0
  122. package/dist/controls/rich-text/component-panel.js +141 -0
  123. package/dist/controls/rich-text/component-panel.js.map +1 -0
  124. package/dist/controls/rich-text/control.d.ts +20 -0
  125. package/dist/controls/rich-text/control.js +296 -0
  126. package/dist/controls/rich-text/control.js.map +1 -0
  127. package/dist/controls/rich-text/dom.d.ts +233 -0
  128. package/dist/controls/rich-text/dom.js +1019 -0
  129. package/dist/controls/rich-text/dom.js.map +1 -0
  130. package/dist/controls/rich-text/editor.d.ts +57 -0
  131. package/dist/controls/rich-text/editor.js +1630 -0
  132. package/dist/controls/rich-text/editor.js.map +1 -0
  133. package/dist/controls/rich-text/floating.d.ts +28 -0
  134. package/dist/controls/rich-text/floating.js +154 -0
  135. package/dist/controls/rich-text/floating.js.map +1 -0
  136. package/dist/controls/rich-text/index.d.ts +1 -0
  137. package/dist/controls/rich-text/index.js +12 -0
  138. package/dist/controls/rich-text/index.js.map +1 -0
  139. package/dist/controls/rich-text/link-form.d.ts +13 -0
  140. package/dist/controls/rich-text/link-form.js +147 -0
  141. package/dist/controls/rich-text/link-form.js.map +1 -0
  142. package/dist/controls/rich-text/markdown.d.ts +6 -0
  143. package/dist/controls/rich-text/markdown.js +181 -0
  144. package/dist/controls/rich-text/markdown.js.map +1 -0
  145. package/dist/controls/rich-text/ops.d.ts +35 -0
  146. package/dist/controls/rich-text/ops.js +316 -0
  147. package/dist/controls/rich-text/ops.js.map +1 -0
  148. package/dist/controls/rich-text/plain.d.ts +17 -0
  149. package/dist/controls/rich-text/plain.js +44 -0
  150. package/dist/controls/rich-text/plain.js.map +1 -0
  151. package/dist/controls/rich-text/toolbar.d.ts +89 -0
  152. package/dist/controls/rich-text/toolbar.js +343 -0
  153. package/dist/controls/rich-text/toolbar.js.map +1 -0
  154. package/dist/controls/scale.d.ts +56 -0
  155. package/dist/controls/scale.js +563 -0
  156. package/dist/controls/scale.js.map +1 -0
  157. package/dist/controls/slot-register.d.ts +1 -0
  158. package/dist/controls/slot-register.js +16 -0
  159. package/dist/controls/slot-register.js.map +1 -0
  160. package/dist/controls/slot-services.d.ts +122 -0
  161. package/dist/controls/slot-services.js +155 -0
  162. package/dist/controls/slot-services.js.map +1 -0
  163. package/dist/controls/slot.d.ts +33 -0
  164. package/dist/controls/slot.js +366 -0
  165. package/dist/controls/slot.js.map +1 -0
  166. package/dist/controls/table/index.d.ts +1 -0
  167. package/dist/controls/table/index.js +12 -0
  168. package/dist/controls/table/index.js.map +1 -0
  169. package/dist/controls/table/prod.d.ts +21 -0
  170. package/dist/controls/table/prod.js +79 -0
  171. package/dist/controls/table/prod.js.map +1 -0
  172. package/dist/controls/table/refs.d.ts +50 -0
  173. package/dist/controls/table/refs.js +79 -0
  174. package/dist/controls/table/refs.js.map +1 -0
  175. package/dist/controls/table/stored.d.ts +15 -0
  176. package/dist/controls/table/stored.js +44 -0
  177. package/dist/controls/table/stored.js.map +1 -0
  178. package/dist/controls/table/table-editor.d.ts +103 -0
  179. package/dist/controls/table/table-editor.js +2725 -0
  180. package/dist/controls/table/table-editor.js.map +1 -0
  181. package/dist/controls/table/table-link.d.ts +24 -0
  182. package/dist/controls/table/table-link.js +180 -0
  183. package/dist/controls/table/table-link.js.map +1 -0
  184. package/dist/controls/table/table.d.ts +9 -0
  185. package/dist/controls/table/table.js +103 -0
  186. package/dist/controls/table/table.js.map +1 -0
  187. package/dist/controls/text.d.ts +17 -0
  188. package/dist/controls/text.js +322 -0
  189. package/dist/controls/text.js.map +1 -0
  190. package/dist/controls/unknown-value.d.ts +17 -0
  191. package/dist/controls/unknown-value.js +66 -0
  192. package/dist/controls/unknown-value.js.map +1 -0
  193. package/dist/core/core.d.ts +63 -0
  194. package/dist/core/core.js +171 -0
  195. package/dist/core/core.js.map +1 -0
  196. package/dist/core/facets.d.ts +347 -0
  197. package/dist/core/facets.js +334 -0
  198. package/dist/core/facets.js.map +1 -0
  199. package/dist/core/index.d.ts +3 -0
  200. package/dist/core/index.js +3 -0
  201. package/dist/engine/array.d.ts +101 -0
  202. package/dist/engine/array.js +906 -0
  203. package/dist/engine/array.js.map +1 -0
  204. package/dist/engine/bits.d.ts +24 -0
  205. package/dist/engine/bits.js +60 -0
  206. package/dist/engine/bits.js.map +1 -0
  207. package/dist/engine/breadcrumb.d.ts +45 -0
  208. package/dist/engine/breadcrumb.js +63 -0
  209. package/dist/engine/breadcrumb.js.map +1 -0
  210. package/dist/engine/expand.d.ts +66 -0
  211. package/dist/engine/expand.js +153 -0
  212. package/dist/engine/expand.js.map +1 -0
  213. package/dist/engine/field-list.d.ts +20 -0
  214. package/dist/engine/field-list.js +19 -0
  215. package/dist/engine/field-list.js.map +1 -0
  216. package/dist/engine/field-shell.d.ts +49 -0
  217. package/dist/engine/field-shell.js +988 -0
  218. package/dist/engine/field-shell.js.map +1 -0
  219. package/dist/engine/frame.d.ts +122 -0
  220. package/dist/engine/frame.js +601 -0
  221. package/dist/engine/frame.js.map +1 -0
  222. package/dist/engine/group-summary.d.ts +5 -0
  223. package/dist/engine/group-summary.js +70 -0
  224. package/dist/engine/group-summary.js.map +1 -0
  225. package/dist/engine/grouping.d.ts +238 -0
  226. package/dist/engine/grouping.js +996 -0
  227. package/dist/engine/grouping.js.map +1 -0
  228. package/dist/engine/item-list.d.ts +99 -0
  229. package/dist/engine/item-list.js +725 -0
  230. package/dist/engine/item-list.js.map +1 -0
  231. package/dist/engine/kit-field.d.ts +72 -0
  232. package/dist/engine/kit-field.js +558 -0
  233. package/dist/engine/kit-field.js.map +1 -0
  234. package/dist/engine/schema-form.d.ts +116 -0
  235. package/dist/engine/schema-form.js +462 -0
  236. package/dist/engine/schema-form.js.map +1 -0
  237. package/dist/engine/slot.d.ts +13 -0
  238. package/dist/engine/slot.js +216 -0
  239. package/dist/engine/slot.js.map +1 -0
  240. package/dist/index.d.ts +45 -3139
  241. package/dist/index.js +47 -2036
  242. package/dist/index.js.map +1 -0
  243. package/dist/kit.css +75 -0
  244. package/dist/lib/cn.d.ts +4 -0
  245. package/dist/lib/cn.js +56 -0
  246. package/dist/lib/cn.js.map +1 -0
  247. package/dist/lib/columns.d.ts +14 -0
  248. package/dist/lib/columns.js +30 -0
  249. package/dist/lib/columns.js.map +1 -0
  250. package/dist/lib/frames.d.ts +36 -0
  251. package/dist/lib/frames.js +214 -0
  252. package/dist/lib/frames.js.map +1 -0
  253. package/dist/lib/icon-image.d.ts +10 -0
  254. package/dist/lib/icon-image.js +8 -0
  255. package/dist/lib/icon-image.js.map +1 -0
  256. package/dist/lib/icons.d.ts +16 -0
  257. package/dist/lib/icons.js +173 -0
  258. package/dist/lib/icons.js.map +1 -0
  259. package/dist/lib/input-modality.d.ts +11 -0
  260. package/dist/lib/input-modality.js +47 -0
  261. package/dist/lib/input-modality.js.map +1 -0
  262. package/dist/lib/key-event.d.ts +11 -0
  263. package/dist/lib/key-event.js +16 -0
  264. package/dist/lib/key-event.js.map +1 -0
  265. package/dist/lib/path.d.ts +29 -0
  266. package/dist/lib/path.js +66 -0
  267. package/dist/lib/path.js.map +1 -0
  268. package/dist/lib/schema.d.ts +80 -0
  269. package/dist/lib/schema.js +384 -0
  270. package/dist/lib/schema.js.map +1 -0
  271. package/dist/lib/utils.d.ts +7 -0
  272. package/dist/lib/utils.js +37 -0
  273. package/dist/lib/utils.js.map +1 -0
  274. package/dist/lib/validate.d.ts +30 -0
  275. package/dist/lib/validate.js +224 -0
  276. package/dist/lib/validate.js.map +1 -0
  277. package/dist/library/analysis.d.ts +23 -0
  278. package/dist/library/analysis.js +160 -0
  279. package/dist/library/analysis.js.map +1 -0
  280. package/dist/library/catalog.d.ts +57 -0
  281. package/dist/library/catalog.js +307 -0
  282. package/dist/library/catalog.js.map +1 -0
  283. package/dist/library/coreNotes.d.ts +8 -0
  284. package/dist/library/coreNotes.js +111 -0
  285. package/dist/library/coreNotes.js.map +1 -0
  286. package/dist/library/coverage.d.ts +40 -0
  287. package/dist/library/coverage.js +59 -0
  288. package/dist/library/coverage.js.map +1 -0
  289. package/dist/library/entries/advanced.entries.d.ts +2 -0
  290. package/dist/library/entries/advanced.entries.js +6579 -0
  291. package/dist/library/entries/advanced.entries.js.map +1 -0
  292. package/dist/library/entries/commerce.entries.d.ts +2 -0
  293. package/dist/library/entries/commerce.entries.js +4140 -0
  294. package/dist/library/entries/commerce.entries.js.map +1 -0
  295. package/dist/library/entries/company.entries.d.ts +2 -0
  296. package/dist/library/entries/company.entries.js +2731 -0
  297. package/dist/library/entries/company.entries.js.map +1 -0
  298. package/dist/library/entries/conversion.entries.d.ts +2 -0
  299. package/dist/library/entries/conversion.entries.js +3707 -0
  300. package/dist/library/entries/conversion.entries.js.map +1 -0
  301. package/dist/library/entries/data.entries.d.ts +7 -0
  302. package/dist/library/entries/data.entries.js +4613 -0
  303. package/dist/library/entries/data.entries.js.map +1 -0
  304. package/dist/library/entries/events.entries.d.ts +2 -0
  305. package/dist/library/entries/events.entries.js +3428 -0
  306. package/dist/library/entries/events.entries.js.map +1 -0
  307. package/dist/library/entries/features.entries.d.ts +2 -0
  308. package/dist/library/entries/features.entries.js +3157 -0
  309. package/dist/library/entries/features.entries.js.map +1 -0
  310. package/dist/library/entries/heroes.entries.d.ts +2 -0
  311. package/dist/library/entries/heroes.entries.js +3401 -0
  312. package/dist/library/entries/heroes.entries.js.map +1 -0
  313. package/dist/library/entries/index.d.ts +3 -0
  314. package/dist/library/entries/index.js +35 -0
  315. package/dist/library/entries/index.js.map +1 -0
  316. package/dist/library/entries/listings.entries.d.ts +2 -0
  317. package/dist/library/entries/listings.entries.js +2976 -0
  318. package/dist/library/entries/listings.entries.js.map +1 -0
  319. package/dist/library/entries/longform.entries.d.ts +2 -0
  320. package/dist/library/entries/longform.entries.js +4227 -0
  321. package/dist/library/entries/longform.entries.js.map +1 -0
  322. package/dist/library/entries/media.entries.d.ts +2 -0
  323. package/dist/library/entries/media.entries.js +2781 -0
  324. package/dist/library/entries/media.entries.js.map +1 -0
  325. package/dist/library/entries/navigation.entries.d.ts +2 -0
  326. package/dist/library/entries/navigation.entries.js +4011 -0
  327. package/dist/library/entries/navigation.entries.js.map +1 -0
  328. package/dist/library/entries/pricing.entries.d.ts +2 -0
  329. package/dist/library/entries/pricing.entries.js +2383 -0
  330. package/dist/library/entries/pricing.entries.js.map +1 -0
  331. package/dist/library/entries/social-proof.entries.d.ts +2 -0
  332. package/dist/library/entries/social-proof.entries.js +2297 -0
  333. package/dist/library/entries/social-proof.entries.js.map +1 -0
  334. package/dist/library/examples/bento.d.ts +92 -0
  335. package/dist/library/examples/bento.js +201 -0
  336. package/dist/library/examples/bento.js.map +1 -0
  337. package/dist/library/examples/blocks.d.ts +14 -0
  338. package/dist/library/examples/blocks.js +313 -0
  339. package/dist/library/examples/blocks.js.map +1 -0
  340. package/dist/library/examples/faq.d.ts +28 -0
  341. package/dist/library/examples/faq.js +230 -0
  342. package/dist/library/examples/faq.js.map +1 -0
  343. package/dist/library/examples/hero.d.ts +43 -0
  344. package/dist/library/examples/hero.js +222 -0
  345. package/dist/library/examples/hero.js.map +1 -0
  346. package/dist/library/examples/index.d.ts +36 -0
  347. package/dist/library/examples/index.js +109 -0
  348. package/dist/library/examples/index.js.map +1 -0
  349. package/dist/library/examples/journalStory.d.ts +93 -0
  350. package/dist/library/examples/journalStory.js +338 -0
  351. package/dist/library/examples/journalStory.js.map +1 -0
  352. package/dist/library/examples/megaMenu.d.ts +134 -0
  353. package/dist/library/examples/megaMenu.js +442 -0
  354. package/dist/library/examples/megaMenu.js.map +1 -0
  355. package/dist/library/examples/pricing.d.ts +103 -0
  356. package/dist/library/examples/pricing.js +479 -0
  357. package/dist/library/examples/pricing.js.map +1 -0
  358. package/dist/library/examples/tabs.d.ts +87 -0
  359. package/dist/library/examples/tabs.js +180 -0
  360. package/dist/library/examples/tabs.js.map +1 -0
  361. package/dist/library/export.d.ts +42 -0
  362. package/dist/library/export.js +80 -0
  363. package/dist/library/export.js.map +1 -0
  364. package/dist/library/index.d.ts +13 -0
  365. package/dist/library/index.js +6 -0
  366. package/dist/library/kit-catalog.json +1510 -0
  367. package/dist/library/types.d.ts +42 -0
  368. package/dist/library/types.js +0 -0
  369. package/dist/schema/adapters.d.ts +28 -0
  370. package/dist/schema/adapters.js +492 -0
  371. package/dist/schema/adapters.js.map +1 -0
  372. package/dist/schema/help.d.ts +27 -0
  373. package/dist/schema/help.js +56 -0
  374. package/dist/schema/help.js.map +1 -0
  375. package/dist/schema/scale.d.ts +69 -0
  376. package/dist/schema/scale.js +250 -0
  377. package/dist/schema/scale.js.map +1 -0
  378. package/dist/schema/sources.d.ts +103 -0
  379. package/dist/schema/sources.js +65 -0
  380. package/dist/schema/sources.js.map +1 -0
  381. package/dist/schema/table.d.ts +319 -0
  382. package/dist/schema/table.js +1199 -0
  383. package/dist/schema/table.js.map +1 -0
  384. package/dist/schema/types.d.ts +297 -0
  385. package/dist/schema/types.js +14 -0
  386. package/dist/schema/types.js.map +1 -0
  387. package/dist/styles.css +2 -0
  388. package/dist/table/table-view.d.ts +14 -0
  389. package/dist/table/table-view.js +140 -0
  390. package/dist/table/table-view.js.map +1 -0
  391. package/dist/table/table.css +73 -0
  392. package/dist/testing/corpus.d.ts +63 -0
  393. package/dist/testing/corpus.js +129 -0
  394. package/dist/testing/corpus.js.map +1 -0
  395. package/dist/testing/test-form.d.ts +11 -0
  396. package/dist/testing/test-form.js +38 -0
  397. package/dist/testing/test-form.js.map +1 -0
  398. package/dist/theme.css +345 -0
  399. package/dist/theme.d.ts +20 -1504
  400. package/dist/theme.js +43 -4126
  401. package/dist/theme.js.map +1 -0
  402. package/dist/tokens.css +542 -0
  403. package/dist/types.d.ts +17 -0
  404. package/dist/types.js +0 -0
  405. package/dist/ui/action-tray.d.ts +54 -0
  406. package/dist/ui/action-tray.js +154 -0
  407. package/dist/ui/action-tray.js.map +1 -0
  408. package/dist/ui/autocomplete.d.ts +30 -0
  409. package/dist/ui/autocomplete.js +139 -0
  410. package/dist/ui/autocomplete.js.map +1 -0
  411. package/dist/ui/button.d.ts +57 -0
  412. package/dist/ui/button.js +201 -0
  413. package/dist/ui/button.js.map +1 -0
  414. package/dist/ui/choice-switch.d.ts +36 -0
  415. package/dist/ui/choice-switch.js +57 -0
  416. package/dist/ui/choice-switch.js.map +1 -0
  417. package/dist/ui/controls.d.ts +83 -0
  418. package/dist/ui/controls.js +331 -0
  419. package/dist/ui/controls.js.map +1 -0
  420. package/dist/ui/display.d.ts +163 -0
  421. package/dist/ui/display.js +455 -0
  422. package/dist/ui/display.js.map +1 -0
  423. package/dist/ui/expanded-editor-modal.d.ts +26 -0
  424. package/dist/ui/expanded-editor-modal.js +140 -0
  425. package/dist/ui/expanded-editor-modal.js.map +1 -0
  426. package/dist/ui/field-context.d.ts +12 -0
  427. package/dist/ui/field-context.js +23 -0
  428. package/dist/ui/field-context.js.map +1 -0
  429. package/dist/ui/floating-panel.d.ts +152 -0
  430. package/dist/ui/floating-panel.js +928 -0
  431. package/dist/ui/floating-panel.js.map +1 -0
  432. package/dist/ui/index.d.ts +16 -0
  433. package/dist/ui/index.js +18 -0
  434. package/dist/ui/input.d.ts +78 -0
  435. package/dist/ui/input.js +250 -0
  436. package/dist/ui/input.js.map +1 -0
  437. package/dist/ui/mode-bar.d.ts +31 -0
  438. package/dist/ui/mode-bar.js +65 -0
  439. package/dist/ui/mode-bar.js.map +1 -0
  440. package/dist/ui/overlay.d.ts +195 -0
  441. package/dist/ui/overlay.js +697 -0
  442. package/dist/ui/overlay.js.map +1 -0
  443. package/dist/ui/path-crumbs.d.ts +90 -0
  444. package/dist/ui/path-crumbs.js +566 -0
  445. package/dist/ui/path-crumbs.js.map +1 -0
  446. package/dist/ui/presence.d.ts +16 -0
  447. package/dist/ui/presence.js +65 -0
  448. package/dist/ui/presence.js.map +1 -0
  449. package/dist/ui/select.d.ts +66 -0
  450. package/dist/ui/select.js +407 -0
  451. package/dist/ui/select.js.map +1 -0
  452. package/dist/ui/shortcut-hint.d.ts +14 -0
  453. package/dist/ui/shortcut-hint.js +35 -0
  454. package/dist/ui/shortcut-hint.js.map +1 -0
  455. package/dist/ui/spinner.d.ts +24 -0
  456. package/dist/ui/spinner.js +42 -0
  457. package/dist/ui/spinner.js.map +1 -0
  458. package/dist/ui/split-button.d.ts +32 -0
  459. package/dist/ui/split-button.js +60 -0
  460. package/dist/ui/split-button.js.map +1 -0
  461. package/dist/ui/surfaces.d.ts +23 -0
  462. package/dist/ui/surfaces.js +26 -0
  463. package/dist/ui/surfaces.js.map +1 -0
  464. package/dist/ui/tab.d.ts +38 -0
  465. package/dist/ui/tab.js +87 -0
  466. package/dist/ui/tab.js.map +1 -0
  467. package/dist/ui/toast.d.ts +20 -0
  468. package/dist/ui/toast.js +115 -0
  469. package/dist/ui/toast.js.map +1 -0
  470. package/dist/ui/tooltip-root.d.ts +13 -0
  471. package/dist/ui/tooltip-root.js +77 -0
  472. package/dist/ui/tooltip-root.js.map +1 -0
  473. package/dist/ui/variants.d.ts +15 -0
  474. package/dist/ui/variants.js +14 -0
  475. package/dist/ui/variants.js.map +1 -0
  476. package/package.json +76 -50
  477. package/LICENSE +0 -21
  478. package/dist/_chunks-cjs/_visual-editing.js +0 -5898
  479. package/dist/_chunks-cjs/refractor.js +0 -22
  480. package/dist/_chunks-es/_visual-editing.mjs +0 -5904
  481. package/dist/_chunks-es/refractor.mjs +0 -25
  482. package/dist/_color.d.mts +0 -119
  483. package/dist/_color.d.ts +0 -119
  484. package/dist/_color.js +0 -1412
  485. package/dist/_color.mjs +0 -1411
  486. package/dist/_visual-editing.d.mts +0 -1126
  487. package/dist/_visual-editing.d.ts +0 -1126
  488. package/dist/_visual-editing.js +0 -30
  489. package/dist/_visual-editing.mjs +0 -30
  490. package/dist/index.d.mts +0 -3140
  491. package/dist/index.mjs +0 -2044
  492. package/dist/theme.d.mts +0 -1506
  493. package/dist/theme.mjs +0 -4126
  494. package/exports/_visual-editing.ts +0 -31
  495. package/exports/index.ts +0 -1
  496. package/exports/theme.ts +0 -1
  497. package/src/color/index.d.mts +0 -119
  498. package/src/color/index.mjs +0 -1411
  499. package/src/core/__workshop__/constants.ts +0 -293
  500. package/src/core/_compat.ts +0 -264
  501. package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
  502. package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
  503. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  504. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
  505. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
  506. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
  507. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  508. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
  509. package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
  510. package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
  511. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  512. package/src/core/components/autocomplete/autocomplete.tsx +0 -767
  513. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -45
  514. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  515. package/src/core/components/autocomplete/constants.ts +0 -28
  516. package/src/core/components/autocomplete/index.ts +0 -2
  517. package/src/core/components/autocomplete/types.ts +0 -108
  518. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
  519. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
  520. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  521. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -51
  522. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -133
  523. package/src/core/components/breadcrumbs/index.ts +0 -1
  524. package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
  525. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  526. package/src/core/components/dialog/__workshop__/index.ts +0 -19
  527. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  528. package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
  529. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
  530. package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
  531. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  532. package/src/core/components/dialog/__workshop__/props.tsx +0 -75
  533. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  534. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  535. package/src/core/components/dialog/dialog.tsx +0 -430
  536. package/src/core/components/dialog/dialogContext.ts +0 -20
  537. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  538. package/src/core/components/dialog/index.ts +0 -4
  539. package/src/core/components/dialog/styles.ts +0 -77
  540. package/src/core/components/dialog/useDialog.ts +0 -11
  541. package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
  542. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  543. package/src/core/components/hotkeys/hotkeys.test.tsx +0 -42
  544. package/src/core/components/hotkeys/hotkeys.tsx +0 -66
  545. package/src/core/components/hotkeys/index.ts +0 -1
  546. package/src/core/components/index.ts +0 -9
  547. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  548. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
  549. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
  550. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
  551. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  552. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
  553. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  554. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  555. package/src/core/components/menu/__workshop__/index.ts +0 -89
  556. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  557. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -58
  558. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  559. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
  560. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  561. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
  562. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  563. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  564. package/src/core/components/menu/helpers.ts +0 -82
  565. package/src/core/components/menu/index.ts +0 -5
  566. package/src/core/components/menu/menu.spacing.test.tsx +0 -63
  567. package/src/core/components/menu/menu.test.tsx +0 -125
  568. package/src/core/components/menu/menu.tsx +0 -178
  569. package/src/core/components/menu/menuButton.tsx +0 -268
  570. package/src/core/components/menu/menuContext.ts +0 -18
  571. package/src/core/components/menu/menuDivider.ts +0 -23
  572. package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -63
  573. package/src/core/components/menu/menuGroup.tsx +0 -233
  574. package/src/core/components/menu/menuItem.spacing.test.tsx +0 -59
  575. package/src/core/components/menu/menuItem.tsx +0 -197
  576. package/src/core/components/menu/useMenu.ts +0 -21
  577. package/src/core/components/menu/useMenuController.ts +0 -231
  578. package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
  579. package/src/core/components/skeleton/__workshop__/index.ts +0 -11
  580. package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
  581. package/src/core/components/skeleton/index.ts +0 -2
  582. package/src/core/components/skeleton/skeleton.tsx +0 -57
  583. package/src/core/components/skeleton/styles.ts +0 -50
  584. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  585. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  586. package/src/core/components/tab/__workshop__/index.ts +0 -14
  587. package/src/core/components/tab/index.ts +0 -3
  588. package/src/core/components/tab/tab.tsx +0 -101
  589. package/src/core/components/tab/tabList.test.tsx +0 -48
  590. package/src/core/components/tab/tabList.tsx +0 -70
  591. package/src/core/components/tab/tabPanel.tsx +0 -39
  592. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  593. package/src/core/components/toast/__workshop__/index.ts +0 -19
  594. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  595. package/src/core/components/toast/index.ts +0 -4
  596. package/src/core/components/toast/styles.ts +0 -77
  597. package/src/core/components/toast/toast.test.tsx +0 -101
  598. package/src/core/components/toast/toast.tsx +0 -198
  599. package/src/core/components/toast/toastContext.ts +0 -7
  600. package/src/core/components/toast/toastLayer.tsx +0 -51
  601. package/src/core/components/toast/toastProvider.tsx +0 -113
  602. package/src/core/components/toast/toastState.ts +0 -6
  603. package/src/core/components/toast/types.ts +0 -26
  604. package/src/core/components/toast/useToast.ts +0 -25
  605. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  606. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  607. package/src/core/components/tree/__workshop__/index.ts +0 -21
  608. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  609. package/src/core/components/tree/helpers.ts +0 -105
  610. package/src/core/components/tree/index.ts +0 -4
  611. package/src/core/components/tree/style.ts +0 -105
  612. package/src/core/components/tree/tree.test.tsx +0 -55
  613. package/src/core/components/tree/tree.tsx +0 -240
  614. package/src/core/components/tree/treeContext.ts +0 -10
  615. package/src/core/components/tree/treeGroup.tsx +0 -28
  616. package/src/core/components/tree/treeItem.test.tsx +0 -65
  617. package/src/core/components/tree/treeItem.tsx +0 -224
  618. package/src/core/components/tree/types.ts +0 -25
  619. package/src/core/components/tree/useTree.ts +0 -17
  620. package/src/core/constants.ts +0 -79
  621. package/src/core/helpers/animation.ts +0 -27
  622. package/src/core/helpers/element.ts +0 -55
  623. package/src/core/helpers/focus.ts +0 -100
  624. package/src/core/helpers/index.ts +0 -4
  625. package/src/core/helpers/scroll.ts +0 -15
  626. package/src/core/hooks/index.ts +0 -12
  627. package/src/core/hooks/useArrayProp.ts +0 -17
  628. package/src/core/hooks/useClickOutside.test.tsx +0 -482
  629. package/src/core/hooks/useClickOutside.ts +0 -118
  630. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -115
  631. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  632. package/src/core/hooks/useCustomValidity.ts +0 -13
  633. package/src/core/hooks/useDelayed.test.ts +0 -88
  634. package/src/core/hooks/useDelayedState.ts +0 -36
  635. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
  636. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  637. package/src/core/hooks/useElementRect/index.ts +0 -1
  638. package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
  639. package/src/core/hooks/useElementSize.ts +0 -19
  640. package/src/core/hooks/useForwardedRef.ts +0 -19
  641. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  642. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  643. package/src/core/hooks/useMatchMedia.ts +0 -28
  644. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
  645. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  646. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  647. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
  648. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  649. package/src/core/hooks/useMounted.ts +0 -15
  650. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -56
  651. package/src/core/hooks/usePrefersDark.test.tsx +0 -19
  652. package/src/core/hooks/usePrefersDark.ts +0 -16
  653. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  654. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -19
  655. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  656. package/src/core/index.ts +0 -10
  657. package/src/core/lib/createGlobalScopedContext.ts +0 -36
  658. package/src/core/lib/globalScope.ts +0 -19
  659. package/src/core/lib/isRecord.ts +0 -3
  660. package/src/core/middleware/origin.ts +0 -47
  661. package/src/core/observers/elementSizeObserver.ts +0 -116
  662. package/src/core/observers/index.ts +0 -2
  663. package/src/core/observers/resizeObserver.ts +0 -9
  664. package/src/core/primitives/_selectable/index.ts +0 -1
  665. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  666. package/src/core/primitives/_selectable/style.ts +0 -115
  667. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  668. package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
  669. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  670. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  671. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
  672. package/src/core/primitives/avatar/avatar.tsx +0 -200
  673. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  674. package/src/core/primitives/avatar/avatarStack.tsx +0 -100
  675. package/src/core/primitives/avatar/index.ts +0 -4
  676. package/src/core/primitives/avatar/styles.ts +0 -167
  677. package/src/core/primitives/avatar/types.ts +0 -17
  678. package/src/core/primitives/badge/__workshop__/index.ts +0 -19
  679. package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
  680. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
  681. package/src/core/primitives/badge/badge.test.tsx +0 -16
  682. package/src/core/primitives/badge/badge.tsx +0 -70
  683. package/src/core/primitives/badge/index.ts +0 -1
  684. package/src/core/primitives/badge/styles.ts +0 -20
  685. package/src/core/primitives/badge/types.ts +0 -8
  686. package/src/core/primitives/box/__workshop__/asComponent.tsx +0 -31
  687. package/src/core/primitives/box/__workshop__/index.ts +0 -24
  688. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  689. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  690. package/src/core/primitives/box/box.test.tsx +0 -142
  691. package/src/core/primitives/box/box.tsx +0 -154
  692. package/src/core/primitives/box/index.ts +0 -1
  693. package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
  694. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  695. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
  696. package/src/core/primitives/button/__workshop__/index.ts +0 -59
  697. package/src/core/primitives/button/__workshop__/labelUploadButton.tsx +0 -36
  698. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  699. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  700. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  701. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  702. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  703. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
  704. package/src/core/primitives/button/button.test.tsx +0 -82
  705. package/src/core/primitives/button/button.tsx +0 -210
  706. package/src/core/primitives/button/index.ts +0 -1
  707. package/src/core/primitives/button/styles.ts +0 -117
  708. package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
  709. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  710. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  711. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  712. package/src/core/primitives/card/__workshop__/index.ts +0 -18
  713. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
  714. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
  715. package/src/core/primitives/card/__workshop__/props.tsx +0 -53
  716. package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
  717. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  718. package/src/core/primitives/card/card.tsx +0 -128
  719. package/src/core/primitives/card/index.ts +0 -2
  720. package/src/core/primitives/card/styles.ts +0 -147
  721. package/src/core/primitives/card/types.ts +0 -11
  722. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  723. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
  724. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
  725. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  726. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
  727. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  728. package/src/core/primitives/checkbox/index.ts +0 -1
  729. package/src/core/primitives/checkbox/styles.ts +0 -128
  730. package/src/core/primitives/code/__workshop__/index.ts +0 -19
  731. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
  732. package/src/core/primitives/code/__workshop__/props.tsx +0 -21
  733. package/src/core/primitives/code/code.tsx +0 -55
  734. package/src/core/primitives/code/index.ts +0 -1
  735. package/src/core/primitives/code/refractor.tsx +0 -20
  736. package/src/core/primitives/code/styles.ts +0 -77
  737. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  738. package/src/core/primitives/container/__workshop__/index.ts +0 -8
  739. package/src/core/primitives/container/container.tsx +0 -54
  740. package/src/core/primitives/container/index.ts +0 -2
  741. package/src/core/primitives/container/styles.ts +0 -23
  742. package/src/core/primitives/container/types.ts +0 -6
  743. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  744. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  745. package/src/core/primitives/flex/__workshop__/index.ts +0 -11
  746. package/src/core/primitives/flex/flex.tsx +0 -64
  747. package/src/core/primitives/flex/index.ts +0 -1
  748. package/src/core/primitives/grid/__workshop__/index.ts +0 -10
  749. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  750. package/src/core/primitives/grid/grid.test.tsx +0 -80
  751. package/src/core/primitives/grid/grid.tsx +0 -74
  752. package/src/core/primitives/grid/index.ts +0 -1
  753. package/src/core/primitives/heading/__workshop__/index.ts +0 -19
  754. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  755. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
  756. package/src/core/primitives/heading/heading.tsx +0 -88
  757. package/src/core/primitives/heading/index.ts +0 -1
  758. package/src/core/primitives/heading/styles.ts +0 -64
  759. package/src/core/primitives/heading/types.ts +0 -7
  760. package/src/core/primitives/index.ts +0 -27
  761. package/src/core/primitives/inline/__workshop__/index.ts +0 -8
  762. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
  763. package/src/core/primitives/inline/index.ts +0 -1
  764. package/src/core/primitives/inline/inline.test.tsx +0 -51
  765. package/src/core/primitives/inline/inline.tsx +0 -63
  766. package/src/core/primitives/inline/styles.ts +0 -32
  767. package/src/core/primitives/inline/types.ts +0 -6
  768. package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
  769. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  770. package/src/core/primitives/kbd/index.ts +0 -1
  771. package/src/core/primitives/kbd/kbd.tsx +0 -69
  772. package/src/core/primitives/label/__workshop__/index.ts +0 -19
  773. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
  774. package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
  775. package/src/core/primitives/label/index.ts +0 -1
  776. package/src/core/primitives/label/label.tsx +0 -87
  777. package/src/core/primitives/label/styles.ts +0 -45
  778. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  779. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  780. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  781. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  782. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  783. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  784. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
  785. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
  786. package/src/core/primitives/popover/__workshop__/index.ts +0 -49
  787. package/src/core/primitives/popover/constants.ts +0 -22
  788. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  789. package/src/core/primitives/popover/helpers.ts +0 -31
  790. package/src/core/primitives/popover/index.ts +0 -2
  791. package/src/core/primitives/popover/popover.tsx +0 -511
  792. package/src/core/primitives/popover/popoverCard.tsx +0 -166
  793. package/src/core/primitives/popover/types.ts +0 -7
  794. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  795. package/src/core/primitives/radio/__workshop__/index.ts +0 -11
  796. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  797. package/src/core/primitives/radio/index.ts +0 -1
  798. package/src/core/primitives/radio/radio.tsx +0 -51
  799. package/src/core/primitives/radio/styles.ts +0 -117
  800. package/src/core/primitives/select/__workshop__/index.ts +0 -11
  801. package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
  802. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  803. package/src/core/primitives/select/index.ts +0 -1
  804. package/src/core/primitives/select/select.test.tsx +0 -52
  805. package/src/core/primitives/select/select.tsx +0 -94
  806. package/src/core/primitives/select/styles.ts +0 -166
  807. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  808. package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
  809. package/src/core/primitives/spinner/index.ts +0 -1
  810. package/src/core/primitives/spinner/spinner.tsx +0 -46
  811. package/src/core/primitives/stack/__workshop__/index.ts +0 -14
  812. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  813. package/src/core/primitives/stack/index.ts +0 -1
  814. package/src/core/primitives/stack/stack.test.tsx +0 -57
  815. package/src/core/primitives/stack/stack.tsx +0 -57
  816. package/src/core/primitives/stack/styles.ts +0 -32
  817. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  818. package/src/core/primitives/switch/__workshop__/index.ts +0 -11
  819. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  820. package/src/core/primitives/switch/index.ts +0 -1
  821. package/src/core/primitives/switch/styles.ts +0 -173
  822. package/src/core/primitives/switch/switch.tsx +0 -68
  823. package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
  824. package/src/core/primitives/text/__workshop__/example.tsx +0 -39
  825. package/src/core/primitives/text/__workshop__/index.ts +0 -24
  826. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
  827. package/src/core/primitives/text/index.ts +0 -1
  828. package/src/core/primitives/text/styles.ts +0 -74
  829. package/src/core/primitives/text/text.tsx +0 -89
  830. package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
  831. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
  832. package/src/core/primitives/textArea/index.ts +0 -1
  833. package/src/core/primitives/textArea/textArea.tsx +0 -120
  834. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  835. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  836. package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
  837. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
  838. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  839. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  840. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  841. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  842. package/src/core/primitives/textInput/index.ts +0 -1
  843. package/src/core/primitives/textInput/textInput.test.tsx +0 -48
  844. package/src/core/primitives/textInput/textInput.tsx +0 -395
  845. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  846. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
  847. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  848. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
  849. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  850. package/src/core/primitives/tooltip/constants.ts +0 -23
  851. package/src/core/primitives/tooltip/index.ts +0 -2
  852. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -452
  853. package/src/core/primitives/tooltip/tooltip.tsx +0 -495
  854. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -109
  855. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  856. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  857. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  858. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -10
  859. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  860. package/src/core/primitives/types.ts +0 -179
  861. package/src/core/styles/border/borderStyle.ts +0 -56
  862. package/src/core/styles/border/index.ts +0 -2
  863. package/src/core/styles/border/types.ts +0 -10
  864. package/src/core/styles/box/boxStyle.ts +0 -69
  865. package/src/core/styles/box/index.ts +0 -2
  866. package/src/core/styles/box/types.ts +0 -11
  867. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  868. package/src/core/styles/card/index.ts +0 -1
  869. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  870. package/src/core/styles/flex/flexStyle.ts +0 -70
  871. package/src/core/styles/flex/index.ts +0 -3
  872. package/src/core/styles/flex/types.ts +0 -25
  873. package/src/core/styles/focusRing/index.ts +0 -25
  874. package/src/core/styles/font/codeFontStyle.ts +0 -13
  875. package/src/core/styles/font/headingFontStyle.ts +0 -13
  876. package/src/core/styles/font/index.ts +0 -6
  877. package/src/core/styles/font/labelFontStyle.ts +0 -13
  878. package/src/core/styles/font/responsiveFont.ts +0 -103
  879. package/src/core/styles/font/textAlignStyle.ts +0 -19
  880. package/src/core/styles/font/textFontStyle.ts +0 -13
  881. package/src/core/styles/font/types.ts +0 -35
  882. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  883. package/src/core/styles/grid/gridStyle.ts +0 -108
  884. package/src/core/styles/grid/index.ts +0 -3
  885. package/src/core/styles/grid/types.ts +0 -37
  886. package/src/core/styles/helpers.ts +0 -72
  887. package/src/core/styles/index.ts +0 -5
  888. package/src/core/styles/input/index.ts +0 -2
  889. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  890. package/src/core/styles/input/textInputStyle.ts +0 -263
  891. package/src/core/styles/internal.ts +0 -12
  892. package/src/core/styles/margin/index.ts +0 -2
  893. package/src/core/styles/margin/marginStyle.ts +0 -21
  894. package/src/core/styles/margin/marginsStyle.test.ts +0 -33
  895. package/src/core/styles/margin/types.ts +0 -9
  896. package/src/core/styles/padding/index.ts +0 -2
  897. package/src/core/styles/padding/paddingStyle.test.ts +0 -33
  898. package/src/core/styles/padding/paddingStyle.ts +0 -21
  899. package/src/core/styles/padding/types.ts +0 -12
  900. package/src/core/styles/radius/index.ts +0 -2
  901. package/src/core/styles/radius/radiusStyle.ts +0 -23
  902. package/src/core/styles/radius/types.ts +0 -8
  903. package/src/core/styles/shadow/index.ts +0 -2
  904. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  905. package/src/core/styles/shadow/types.ts +0 -6
  906. package/src/core/styles/types.ts +0 -8
  907. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  908. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  909. package/src/core/theme/__workshop__/build/story.tsx +0 -465
  910. package/src/core/theme/__workshop__/canvas.tsx +0 -352
  911. package/src/core/theme/__workshop__/color.tsx +0 -62
  912. package/src/core/theme/__workshop__/debug/story.tsx +0 -408
  913. package/src/core/theme/__workshop__/index.ts +0 -39
  914. package/src/core/theme/__workshop__/layer.tsx +0 -78
  915. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  916. package/src/core/theme/index.ts +0 -5
  917. package/src/core/theme/theme.test.tsx +0 -73
  918. package/src/core/theme/themeColorProvider.tsx +0 -29
  919. package/src/core/theme/themeContext.ts +0 -10
  920. package/src/core/theme/themeProvider.tsx +0 -62
  921. package/src/core/theme/types.ts +0 -12
  922. package/src/core/theme/useRootTheme.ts +0 -17
  923. package/src/core/theme/useTheme.ts +0 -16
  924. package/src/core/types/avatar.ts +0 -14
  925. package/src/core/types/badge.ts +0 -12
  926. package/src/core/types/box.ts +0 -19
  927. package/src/core/types/button.ts +0 -21
  928. package/src/core/types/card.ts +0 -6
  929. package/src/core/types/component.ts +0 -32
  930. package/src/core/types/dialog.ts +0 -4
  931. package/src/core/types/flex.ts +0 -30
  932. package/src/core/types/grid.ts +0 -14
  933. package/src/core/types/gridItem.ts +0 -29
  934. package/src/core/types/index.ts +0 -15
  935. package/src/core/types/placement.ts +0 -18
  936. package/src/core/types/popover.ts +0 -4
  937. package/src/core/types/radius.ts +0 -4
  938. package/src/core/types/selectable.ts +0 -6
  939. package/src/core/types/text.ts +0 -4
  940. package/src/core/utils/arrow/arrow.tsx +0 -123
  941. package/src/core/utils/arrow/cmds.ts +0 -91
  942. package/src/core/utils/arrow/index.ts +0 -1
  943. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
  944. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  945. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -100
  946. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  947. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  948. package/src/core/utils/boundaryElement/index.ts +0 -3
  949. package/src/core/utils/boundaryElement/types.ts +0 -7
  950. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  951. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -21
  952. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  953. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
  954. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
  955. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  956. package/src/core/utils/elementQuery/helpers.ts +0 -27
  957. package/src/core/utils/elementQuery/index.ts +0 -1
  958. package/src/core/utils/errorBoundary.tsx +0 -48
  959. package/src/core/utils/getElementRef.ts +0 -26
  960. package/src/core/utils/index.ts +0 -9
  961. package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
  962. package/src/core/utils/layer/__workshop__/index.ts +0 -24
  963. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
  964. package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
  965. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
  966. package/src/core/utils/layer/getLayerContext.test.ts +0 -30
  967. package/src/core/utils/layer/getLayerContext.ts +0 -21
  968. package/src/core/utils/layer/index.ts +0 -4
  969. package/src/core/utils/layer/layer.test.tsx +0 -108
  970. package/src/core/utils/layer/layer.tsx +0 -98
  971. package/src/core/utils/layer/layerContext.ts +0 -7
  972. package/src/core/utils/layer/layerProvider.tsx +0 -111
  973. package/src/core/utils/layer/types.ts +0 -9
  974. package/src/core/utils/layer/useLayer.ts +0 -26
  975. package/src/core/utils/portal/__workshop__/index.ts +0 -14
  976. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  977. package/src/core/utils/portal/index.ts +0 -4
  978. package/src/core/utils/portal/portal.test.tsx +0 -103
  979. package/src/core/utils/portal/portal.ts +0 -32
  980. package/src/core/utils/portal/portalContext.ts +0 -31
  981. package/src/core/utils/portal/portalProvider.tsx +0 -47
  982. package/src/core/utils/portal/types.ts +0 -9
  983. package/src/core/utils/portal/usePortal.ts +0 -25
  984. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  985. package/src/core/utils/srOnly/index.ts +0 -1
  986. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  987. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
  988. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
  989. package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
  990. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
  991. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
  992. package/src/core/utils/virtualList/index.ts +0 -1
  993. package/src/core/utils/virtualList/virtualList.tsx +0 -200
  994. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
  995. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
  996. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -22
  997. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
  998. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
  999. package/src/theme/build/_deprecated/color/color.test.ts +0 -63
  1000. package/src/theme/build/_deprecated/color/defaults.ts +0 -390
  1001. package/src/theme/build/_deprecated/color/factory.ts +0 -142
  1002. package/src/theme/build/_deprecated/color/index.ts +0 -1
  1003. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
  1004. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
  1005. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
  1006. package/src/theme/build/buildColorTheme.test.ts +0 -183
  1007. package/src/theme/build/buildColorTheme.ts +0 -499
  1008. package/src/theme/build/buildTheme.test.ts +0 -87
  1009. package/src/theme/build/buildTheme.ts +0 -36
  1010. package/src/theme/build/colorToken/colorToken.ts +0 -19
  1011. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  1012. package/src/theme/build/colorToken/index.ts +0 -2
  1013. package/src/theme/build/colorToken/types.ts +0 -6
  1014. package/src/theme/build/index.ts +0 -3
  1015. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  1016. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  1017. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  1018. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  1019. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
  1020. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  1021. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  1022. package/src/theme/build/lib/color-fns/index.ts +0 -6
  1023. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  1024. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  1025. package/src/theme/build/lib/color-fns/types.ts +0 -28
  1026. package/src/theme/build/lib/isRecord.ts +0 -3
  1027. package/src/theme/build/lib/lazy.ts +0 -30
  1028. package/src/theme/build/lib/utils.ts +0 -19
  1029. package/src/theme/build/merge.ts +0 -26
  1030. package/src/theme/build/mixThemeColor.test.ts +0 -21
  1031. package/src/theme/build/mixThemeColor.ts +0 -53
  1032. package/src/theme/build/renderColorTheme.ts +0 -532
  1033. package/src/theme/build/renderColorValue.ts +0 -85
  1034. package/src/theme/build/resolveColorTokens.ts +0 -268
  1035. package/src/theme/build/theme.test.ts +0 -27
  1036. package/src/theme/config/helpers.ts +0 -55
  1037. package/src/theme/config/index.ts +0 -4
  1038. package/src/theme/config/system.ts +0 -115
  1039. package/src/theme/config/tokens/color/index.ts +0 -1
  1040. package/src/theme/config/tokens/color/types.ts +0 -133
  1041. package/src/theme/config/tokens/index.ts +0 -4
  1042. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  1043. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  1044. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
  1045. package/src/theme/config/tokens/parseTokenValue.ts +0 -133
  1046. package/src/theme/config/tokens/types.ts +0 -53
  1047. package/src/theme/config/types.ts +0 -46
  1048. package/src/theme/defaults/colorPalette.ts +0 -5
  1049. package/src/theme/defaults/colorTokens.ts +0 -648
  1050. package/src/theme/defaults/config.ts +0 -84
  1051. package/src/theme/defaults/fonts.ts +0 -227
  1052. package/src/theme/getScopedTheme.ts +0 -98
  1053. package/src/theme/index.ts +0 -5
  1054. package/src/theme/system/avatar.ts +0 -14
  1055. package/src/theme/system/color/_constants.ts +0 -45
  1056. package/src/theme/system/color/_helpers.ts +0 -24
  1057. package/src/theme/system/color/_system.ts +0 -40
  1058. package/src/theme/system/color/avatar.ts +0 -15
  1059. package/src/theme/system/color/badge.ts +0 -16
  1060. package/src/theme/system/color/button.ts +0 -17
  1061. package/src/theme/system/color/color.ts +0 -34
  1062. package/src/theme/system/color/index.ts +0 -13
  1063. package/src/theme/system/color/input.ts +0 -25
  1064. package/src/theme/system/color/kbd.ts +0 -8
  1065. package/src/theme/system/color/selectable.ts +0 -12
  1066. package/src/theme/system/color/shadow.ts +0 -7
  1067. package/src/theme/system/color/state.ts +0 -43
  1068. package/src/theme/system/color/syntax.ts +0 -41
  1069. package/src/theme/system/css.ts +0 -14
  1070. package/src/theme/system/focusRing.ts +0 -7
  1071. package/src/theme/system/font.ts +0 -52
  1072. package/src/theme/system/index.ts +0 -11
  1073. package/src/theme/system/input.ts +0 -33
  1074. package/src/theme/system/layer.ts +0 -8
  1075. package/src/theme/system/shadow.ts +0 -19
  1076. package/src/theme/system/styles.ts +0 -13
  1077. package/src/theme/system/theme.ts +0 -138
  1078. package/src/theme/system/v0/avatar.ts +0 -10
  1079. package/src/theme/system/v0/color/_generic.ts +0 -35
  1080. package/src/theme/system/v0/color/_system.ts +0 -17
  1081. package/src/theme/system/v0/color/base.ts +0 -21
  1082. package/src/theme/system/v0/color/button.ts +0 -42
  1083. package/src/theme/system/v0/color/card.ts +0 -19
  1084. package/src/theme/system/v0/color/color.ts +0 -40
  1085. package/src/theme/system/v0/color/index.ts +0 -11
  1086. package/src/theme/system/v0/color/input.ts +0 -34
  1087. package/src/theme/system/v0/color/muted.ts +0 -26
  1088. package/src/theme/system/v0/color/selectable.ts +0 -31
  1089. package/src/theme/system/v0/color/solid.ts +0 -26
  1090. package/src/theme/system/v0/color/spot.ts +0 -13
  1091. package/src/theme/system/v0/index.ts +0 -3
  1092. package/src/theme/system/v0/input.ts +0 -23
  1093. package/src/theme/versioning/getTheme_v2.ts +0 -57
  1094. package/src/theme/versioning/index.ts +0 -5
  1095. package/src/theme/versioning/is_v0.ts +0 -6
  1096. package/src/theme/versioning/is_v2.ts +0 -6
  1097. package/src/theme/versioning/themeColor_v0_v2.ts +0 -243
  1098. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
  1099. package/src/theme/versioning/v0_v2.ts +0 -94
  1100. package/src/theme/versioning/v2_v0.ts +0 -135
@@ -0,0 +1,35 @@
1
+ import * as React from "react";
2
+ import { Fragment, jsx } from "react/jsx-runtime";
3
+ //#region src/ui/shortcut-hint.tsx
4
+ var ShortcutHintsContext = React.createContext(false);
5
+ var current = false;
6
+ function ShortcutHintsProvider({ on = false, children }) {
7
+ React.useLayoutEffect(() => {
8
+ current = on;
9
+ if (typeof document !== "undefined") document.documentElement.dataset.shortcutHints = on ? "on" : "off";
10
+ }, [on]);
11
+ return /* @__PURE__ */ jsx(ShortcutHintsContext.Provider, {
12
+ value: on,
13
+ children
14
+ });
15
+ }
16
+ function useShortcutHints() {
17
+ return React.useContext(ShortcutHintsContext);
18
+ }
19
+ /** Non-hook read for toasts and other imperative call sites. */
20
+ function shortcutHintsOn() {
21
+ return current;
22
+ }
23
+ function ShortcutHint({ as = "span", children, ...rest }) {
24
+ if (!useShortcutHints()) return null;
25
+ if (as === "fragment") return /* @__PURE__ */ jsx(Fragment, { children });
26
+ return /* @__PURE__ */ jsx(as, {
27
+ "data-hint": "shortcuts",
28
+ ...rest,
29
+ children
30
+ });
31
+ }
32
+ //#endregion
33
+ export { ShortcutHint, ShortcutHintsProvider, shortcutHintsOn, useShortcutHints };
34
+
35
+ //# sourceMappingURL=shortcut-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcut-hint.js","names":[],"sources":["../../src/ui/shortcut-hint.tsx"],"sourcesContent":["import * as React from \"react\";\n\n/* D44: keyboard-shortcut hints are OFF by default (founder: \"genuinely irritating\").\n Account > Preferences > \"Show keyboard hints\" turns them back on; the host passes that preference to\n <ShortcutHintsProvider on={...}>.\n - <ShortcutHint>…</ShortcutHint> renders nothing while off (use it for every new inline hint strip).\n - `as` keeps the wrapper element when the hint needs one (span by default; `fragment` for none).\n - For markup you cannot wrap, add data-hint=\"shortcuts\": the provider mirrors the switch on\n <html data-shortcut-hints=\"on|off\"> and the stylesheet hides it while off.\n - For strings (toasts, placeholders) use useShortcutHints() / shortcutHintsOn().\n NOT hints (always shown): menu shortcut columns, the command palette's key labels, the help sheet. */\n\nconst ShortcutHintsContext = React.createContext(false);\nlet current = false;\n\nexport function ShortcutHintsProvider({ on = false, children }: { on?: boolean; children: React.ReactNode }) {\n React.useLayoutEffect(() => {\n current = on;\n if (typeof document !== \"undefined\") document.documentElement.dataset.shortcutHints = on ? \"on\" : \"off\";\n }, [on]);\n return <ShortcutHintsContext.Provider value={on}>{children}</ShortcutHintsContext.Provider>;\n}\n\nexport function useShortcutHints() {\n return React.useContext(ShortcutHintsContext);\n}\n\n/** Non-hook read for toasts and other imperative call sites. */\nexport function shortcutHintsOn() {\n return current;\n}\n\ntype Props = React.HTMLAttributes<HTMLElement> & { as?: \"span\" | \"div\" | \"p\" | \"li\" | \"fragment\"; children: React.ReactNode };\n\nexport function ShortcutHint({ as = \"span\", children, ...rest }: Props) {\n const on = useShortcutHints();\n if (!on) return null;\n if (as === \"fragment\") return <>{children}</>;\n const Tag = as as \"span\";\n return (\n <Tag data-hint=\"shortcuts\" {...rest}>\n {children}\n </Tag>\n );\n}\n"],"mappings":";;;AAYA,IAAM,uBAAuB,MAAM,cAAc,KAAK;AACtD,IAAI,UAAU;AAEd,SAAgB,sBAAsB,EAAE,KAAK,OAAO,YAAyD;CAC3G,MAAM,sBAAsB;EAC1B,UAAU;EACV,IAAI,OAAO,aAAa,aAAa,SAAS,gBAAgB,QAAQ,gBAAgB,KAAK,OAAO;CACpG,GAAG,CAAC,EAAE,CAAC;CACP,OAAO,oBAAC,qBAAqB,UAAtB;EAA+B,OAAO;EAAK;CAAwC,CAAA;AAC5F;AAEA,SAAgB,mBAAmB;CACjC,OAAO,MAAM,WAAW,oBAAoB;AAC9C;;AAGA,SAAgB,kBAAkB;CAChC,OAAO;AACT;AAIA,SAAgB,aAAa,EAAE,KAAK,QAAQ,UAAU,GAAG,QAAe;CAEtE,IAAI,CADO,iBACN,GAAI,OAAO;CAChB,IAAI,OAAO,YAAY,OAAO,oBAAA,UAAA,EAAG,SAAW,CAAA;CAE5C,OACE,oBAAC,IAAD;EAAK,aAAU;EAAY,GAAI;EAC5B;CACE,CAAA;AAET"}
@@ -0,0 +1,24 @@
1
+ import * as React from "react";
2
+ declare const sizes: {
3
+ readonly xs: "size-3";
4
+ readonly sm: "size-3.5";
5
+ readonly md: "size-4";
6
+ readonly lg: "size-5";
7
+ };
8
+ declare const tones: {
9
+ readonly current: "";
10
+ readonly muted: "text-kit-fg-3";
11
+ readonly accent: "text-kit-accent";
12
+ readonly info: "text-kit-info";
13
+ };
14
+ export interface SpinnerProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> {
15
+ /** 12 · 14 · 16 (default) · 20 */
16
+ size?: keyof typeof sizes;
17
+ variant?: "icon" | "ring";
18
+ /** icon colour; the ring keeps V2's line-strong / fg-2 pair */
19
+ tone?: keyof typeof tones;
20
+ /** set → role="status" named by it; unset → aria-hidden */
21
+ label?: string;
22
+ }
23
+ export declare function Spinner({ size, variant, tone, label, className, ...rest }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
24
+ export {};
@@ -0,0 +1,42 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { IconLoader2 } from "@tabler/icons-react";
5
+ //#region src/ui/spinner.tsx
6
+ var sizes = {
7
+ xs: "size-3",
8
+ sm: "size-3.5",
9
+ md: "size-4",
10
+ lg: "size-5"
11
+ };
12
+ var tones = {
13
+ current: "",
14
+ muted: "text-kit-fg-3",
15
+ accent: "text-kit-accent",
16
+ info: "text-kit-info"
17
+ };
18
+ function Spinner({ size = "md", variant = "icon", tone = "current", label, className, ...rest }) {
19
+ const a11y = label ? {
20
+ role: "status",
21
+ "aria-label": label
22
+ } : { "aria-hidden": true };
23
+ const spin = "animate-spin motion-reduce:animate-none";
24
+ if (variant === "ring") return /* @__PURE__ */ jsx("span", {
25
+ ...a11y,
26
+ ...rest,
27
+ className: cn("inline-block shrink-0 rounded-full border-2 border-kit-line-strong border-t-kit-fg-2", sizes[size], spin, className)
28
+ });
29
+ return /* @__PURE__ */ jsx("span", {
30
+ ...a11y,
31
+ ...rest,
32
+ className: cn("inline-flex shrink-0", tones[tone], className),
33
+ children: /* @__PURE__ */ jsx(IconLoader2, {
34
+ "aria-hidden": true,
35
+ className: cn(sizes[size], spin)
36
+ })
37
+ });
38
+ }
39
+ //#endregion
40
+ export { Spinner };
41
+
42
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","names":[],"sources":["../../src/ui/spinner.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { IconLoader2 } from \"@tabler/icons-react\";\nimport { cn } from \"../lib/cn\";\n\n/* ── Spinner ─────────────────────────────────────────────────────────────\n V2 has no Spinner component, only the pattern (kit-ports-spec.md §1):\n • icon: tabler IconLoader2 + animate-spin (button.tsx:73 and ~25 call sites; size-4 text-fg-3 the most common)\n • ring: size-5 border-2 border-line-strong border-t-fg-2 (schema/index.tsx:355, the Suspense panel fallback)\n Decorative by default (the host says what is loading, e.g. Button's aria-busy); `label` makes it a polite status. */\nconst sizes = { xs: \"size-3\", sm: \"size-3.5\", md: \"size-4\", lg: \"size-5\" } as const;\nconst tones = { current: \"\", muted: \"text-kit-fg-3\", accent: \"text-kit-accent\", info: \"text-kit-info\" } as const;\n\nexport interface SpinnerProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"children\"> {\n /** 12 · 14 · 16 (default) · 20 */\n size?: keyof typeof sizes;\n variant?: \"icon\" | \"ring\";\n /** icon colour; the ring keeps V2's line-strong / fg-2 pair */\n tone?: keyof typeof tones;\n /** set → role=\"status\" named by it; unset → aria-hidden */\n label?: string;\n}\n\nexport function Spinner({ size = \"md\", variant = \"icon\", tone = \"current\", label, className, ...rest }: SpinnerProps) {\n const a11y = label ? { role: \"status\", \"aria-label\": label } : { \"aria-hidden\": true };\n const spin = \"animate-spin motion-reduce:animate-none\";\n if (variant === \"ring\") {\n return (\n <span\n {...a11y}\n {...rest}\n className={cn(\"inline-block shrink-0 rounded-full border-2 border-kit-line-strong border-t-kit-fg-2\", sizes[size], spin, className)}\n />\n );\n }\n return (\n <span {...a11y} {...rest} className={cn(\"inline-flex shrink-0\", tones[tone], className)}>\n <IconLoader2 aria-hidden className={cn(sizes[size], spin)} />\n </span>\n );\n}\n"],"mappings":";;;;;AASA,IAAM,QAAQ;CAAE,IAAI;CAAU,IAAI;CAAY,IAAI;CAAU,IAAI;AAAS;AACzE,IAAM,QAAQ;CAAE,SAAS;CAAI,OAAO;CAAiB,QAAQ;CAAmB,MAAM;AAAgB;AAYtG,SAAgB,QAAQ,EAAE,OAAO,MAAM,UAAU,QAAQ,OAAO,WAAW,OAAO,WAAW,GAAG,QAAsB;CACpH,MAAM,OAAO,QAAQ;EAAE,MAAM;EAAU,cAAc;CAAM,IAAI,EAAE,eAAe,KAAK;CACrF,MAAM,OAAO;CACb,IAAI,YAAY,QACd,OACE,oBAAC,QAAD;EACE,GAAI;EACJ,GAAI;EACJ,WAAW,GAAG,wFAAwF,MAAM,OAAO,MAAM,SAAS;CACnI,CAAA;CAGL,OACE,oBAAC,QAAD;EAAM,GAAI;EAAM,GAAI;EAAM,WAAW,GAAG,wBAAwB,MAAM,OAAO,SAAS;EACpF,UAAA,oBAAC,aAAD;GAAa,eAAA;GAAY,WAAW,GAAG,MAAM,OAAO,IAAI;EAAI,CAAA;CACxD,CAAA;AAEV"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * SPLIT BUTTON: one action plus its menu, as ONE visual unit (founder, D57: one element per job).
3
+ *
4
+ * <SplitButton label="Publish" icon={<IconFileUpload />} onClick={publish} menuLabel="More publish options">
5
+ * <MenuItem …>Schedule…</MenuItem>
6
+ * </SplitButton>
7
+ *
8
+ * - Two segments, same height, a 1px divider between them, rounded on the outer edge only.
9
+ * - Each segment is its own button with its own keyboard focus ring (the global :focus-visible outline).
10
+ * - The chevron segment carries aria-haspopup="menu" and `menuLabel`. No children → no chevron (the primary stands alone).
11
+ * - Tokens only (D56): the primary variant is bg-inverse / fg-inverse; secondary is the bordered control.
12
+ */
13
+ import * as React from "react";
14
+ export interface SplitButtonProps {
15
+ label: React.ReactNode;
16
+ icon?: React.ReactNode;
17
+ onClick?: () => void;
18
+ /** Menu items for the chevron segment. Omit (or pass nothing renderable) to hide the chevron. */
19
+ children?: React.ReactNode;
20
+ /** Accessible name of the chevron segment. */
21
+ menuLabel?: string;
22
+ variant?: "primary" | "secondary";
23
+ size?: "sm" | "md";
24
+ disabled?: boolean;
25
+ /** Menu placement (footers open upward). */
26
+ side?: "top" | "bottom";
27
+ menuClassName?: string;
28
+ /** The menu opened or closed (a caller that reads data only while the menu is open). */
29
+ onMenuOpenChange?: (open: boolean) => void;
30
+ className?: string;
31
+ }
32
+ export declare const SplitButton: React.ForwardRefExoticComponent<SplitButtonProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,60 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import { buttonVariants } from "./button.js";
3
+ import { Menu, MenuContent, MenuTrigger } from "./overlay.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { IconChevronDown } from "@tabler/icons-react";
7
+ //#region src/ui/split-button.tsx
8
+ /**
9
+ * SPLIT BUTTON: one action plus its menu, as ONE visual unit (founder, D57: one element per job).
10
+ *
11
+ * <SplitButton label="Publish" icon={<IconFileUpload />} onClick={publish} menuLabel="More publish options">
12
+ * <MenuItem …>Schedule…</MenuItem>
13
+ * </SplitButton>
14
+ *
15
+ * - Two segments, same height, a 1px divider between them, rounded on the outer edge only.
16
+ * - Each segment is its own button with its own keyboard focus ring (the global :focus-visible outline).
17
+ * - The chevron segment carries aria-haspopup="menu" and `menuLabel`. No children → no chevron (the primary stands alone).
18
+ * - Tokens only (D56): the primary variant is bg-inverse / fg-inverse; secondary is the bordered control.
19
+ */
20
+ var SplitButton = React.forwardRef(function SplitButton({ label, icon, onClick, children, menuLabel = "More options", variant = "primary", size = "md", disabled, side = "top", menuClassName, onMenuOpenChange, className }, ref) {
21
+ const hasMenu = React.Children.toArray(children).some(Boolean);
22
+ const divider = variant === "primary" ? "before:bg-kit-fg-inverse/25" : "before:bg-kit-line-strong";
23
+ return /* @__PURE__ */ jsxs("div", {
24
+ ref,
25
+ role: "group",
26
+ "data-slot": "split-button",
27
+ className: cn("inline-flex shrink-0 items-stretch", className),
28
+ children: [/* @__PURE__ */ jsxs("button", {
29
+ type: "button",
30
+ disabled,
31
+ onClick,
32
+ className: cn(buttonVariants({
33
+ variant,
34
+ size
35
+ }), hasMenu && "rounded-r-none", "pl-2.5 pr-3"),
36
+ children: [icon, label]
37
+ }), hasMenu ? /* @__PURE__ */ jsxs(Menu, {
38
+ onOpenChange: onMenuOpenChange,
39
+ children: [/* @__PURE__ */ jsx(MenuTrigger, {
40
+ disabled,
41
+ "aria-label": menuLabel,
42
+ "aria-haspopup": "menu",
43
+ className: cn(buttonVariants({
44
+ variant,
45
+ size
46
+ }), "relative rounded-l-none px-0", size === "sm" ? "w-7" : "w-8", variant === "secondary" && "border-l-0", "before:absolute before:inset-y-1.5 before:left-0 before:w-px before:content-['']", divider),
47
+ children: /* @__PURE__ */ jsx(IconChevronDown, { stroke: 1.75 })
48
+ }), /* @__PURE__ */ jsx(MenuContent, {
49
+ align: "end",
50
+ side,
51
+ className: cn("w-60", menuClassName),
52
+ children
53
+ })]
54
+ }) : null]
55
+ });
56
+ });
57
+ //#endregion
58
+ export { SplitButton };
59
+
60
+ //# sourceMappingURL=split-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-button.js","names":[],"sources":["../../src/ui/split-button.tsx"],"sourcesContent":["/**\n * SPLIT BUTTON: one action plus its menu, as ONE visual unit (founder, D57: one element per job).\n *\n * <SplitButton label=\"Publish\" icon={<IconFileUpload />} onClick={publish} menuLabel=\"More publish options\">\n * <MenuItem …>Schedule…</MenuItem>\n * </SplitButton>\n *\n * - Two segments, same height, a 1px divider between them, rounded on the outer edge only.\n * - Each segment is its own button with its own keyboard focus ring (the global :focus-visible outline).\n * - The chevron segment carries aria-haspopup=\"menu\" and `menuLabel`. No children → no chevron (the primary stands alone).\n * - Tokens only (D56): the primary variant is bg-inverse / fg-inverse; secondary is the bordered control.\n */\nimport * as React from \"react\";\nimport { IconChevronDown } from \"@tabler/icons-react\";\nimport { cn } from \"../lib/cn\";\nimport { buttonVariants } from \"./button\";\nimport { Menu, MenuContent, MenuTrigger } from \"./overlay\";\n\nexport interface SplitButtonProps {\n label: React.ReactNode;\n icon?: React.ReactNode;\n onClick?: () => void;\n /** Menu items for the chevron segment. Omit (or pass nothing renderable) to hide the chevron. */\n children?: React.ReactNode;\n /** Accessible name of the chevron segment. */\n menuLabel?: string;\n variant?: \"primary\" | \"secondary\";\n size?: \"sm\" | \"md\";\n disabled?: boolean;\n /** Menu placement (footers open upward). */\n side?: \"top\" | \"bottom\";\n menuClassName?: string;\n /** The menu opened or closed (a caller that reads data only while the menu is open). */\n onMenuOpenChange?: (open: boolean) => void;\n className?: string;\n}\n\nexport const SplitButton = React.forwardRef<HTMLDivElement, SplitButtonProps>(function SplitButton(\n { label, icon, onClick, children, menuLabel = \"More options\", variant = \"primary\", size = \"md\", disabled, side = \"top\", menuClassName, onMenuOpenChange, className },\n ref,\n) {\n const hasMenu = React.Children.toArray(children).some(Boolean);\n const divider = variant === \"primary\" ? \"before:bg-kit-fg-inverse/25\" : \"before:bg-kit-line-strong\";\n return (\n <div ref={ref} role=\"group\" data-slot=\"split-button\" className={cn(\"inline-flex shrink-0 items-stretch\", className)}>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={onClick}\n className={cn(buttonVariants({ variant, size }), hasMenu && \"rounded-r-none\", \"pl-2.5 pr-3\")}\n >\n {icon}\n {label}\n </button>\n {hasMenu ? (\n <Menu onOpenChange={onMenuOpenChange}>\n <MenuTrigger\n disabled={disabled}\n aria-label={menuLabel}\n aria-haspopup=\"menu\"\n className={cn(\n buttonVariants({ variant, size }),\n \"relative rounded-l-none px-0\",\n size === \"sm\" ? \"w-7\" : \"w-8\",\n variant === \"secondary\" && \"border-l-0\",\n // the 1px divider between the segments (inset top and bottom, like the production control)\n \"before:absolute before:inset-y-1.5 before:left-0 before:w-px before:content-['']\",\n divider,\n )}\n >\n <IconChevronDown stroke={1.75} />\n </MenuTrigger>\n <MenuContent align=\"end\" side={side} className={cn(\"w-60\", menuClassName)}>\n {children}\n </MenuContent>\n </Menu>\n ) : null}\n </div>\n );\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqCA,IAAa,cAAc,MAAM,WAA6C,SAAS,YACrF,EAAE,OAAO,MAAM,SAAS,UAAU,YAAY,gBAAgB,UAAU,WAAW,OAAO,MAAM,UAAU,OAAO,OAAO,eAAe,kBAAkB,aACzJ,KACA;CACA,MAAM,UAAU,MAAM,SAAS,QAAQ,QAAQ,CAAC,CAAC,KAAK,OAAO;CAC7D,MAAM,UAAU,YAAY,YAAY,gCAAgC;CACxE,OACE,qBAAC,OAAD;EAAU;EAAK,MAAK;EAAQ,aAAU;EAAe,WAAW,GAAG,sCAAsC,SAAS;EAAlH,UAAA,CACE,qBAAC,UAAD;GACE,MAAK;GACK;GACD;GACT,WAAW,GAAG,eAAe;IAAE;IAAS;GAAK,CAAC,GAAG,WAAW,kBAAkB,aAAa;GAJ7F,UAAA,CAMG,MACA,KACK;EACP,CAAA,GAAA,UACC,qBAAC,MAAD;GAAM,cAAc;GAApB,UAAA,CACE,oBAAC,aAAD;IACY;IACV,cAAY;IACZ,iBAAc;IACd,WAAW,GACT,eAAe;KAAE;KAAS;IAAK,CAAC,GAChC,gCACA,SAAS,OAAO,QAAQ,OACxB,YAAY,eAAe,cAE3B,oFACA,OACF;IAEA,UAAA,oBAAC,iBAAD,EAAiB,QAAQ,KAAO,CAAA;GACrB,CAAA,GACb,oBAAC,aAAD;IAAa,OAAM;IAAY;IAAM,WAAW,GAAG,QAAQ,aAAa;IACrE;GACU,CAAA,CACT;EACJ,CAAA,IAAA,IACD;;AAET,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * V2's floating-surface recipes (src/styles/index.css .glass, .glass-ink, .bg-tray, --surface-raised, --floating-line),
3
+ * as class strings. kit.css has no tokens for these yet, so the V2 values are written out here, light and dark
4
+ * (`[.dark_&]` = the app is dark). Each one is a single constant so the integrator can swap it for a kit token later.
5
+ *
6
+ * Portalled layers render outside [data-kit-scope], where every --kit-* value is undefined. Every layer root here
7
+ * therefore carries KIT_SCOPE (data-kit-scope) itself.
8
+ */
9
+ export declare const KIT_SCOPE: {
10
+ readonly "data-kit-scope": "";
11
+ };
12
+ /** .glass: popovers, menus, hover cards. */
13
+ export declare const GLASS = "bg-kit-surface border-kit-line shadow-[0_1px_2px_rgb(16_16_16/0.04),0_8px_24px_-6px_rgb(16_16_16/0.12)] [.dark_&]:bg-[#252528] [.dark_&]:border-kit-line-strong [.dark_&]:shadow-[inset_0_1px_0_oklch(1_0_0/0.04),0_12px_32px_-8px_oklch(0.12_0.01_286/0.5)]";
14
+ /** .glass-ink: tooltips (ink is dark in both themes). */
15
+ export declare const INK = "bg-[#1c1c1e] text-[#f5f5f5] shadow-[0_10px_28px_-8px_rgb(0_0_0/0.35)] [.dark_&]:bg-[#3d3d40] [.dark_&]:text-[#ececef] [.dark_&]:shadow-[inset_0_1px_0_oklch(1_0_0/0.06),0_0_0_1px_rgb(255_255_255/0.12),0_14px_36px_-8px_oklch(0.12_0.01_286/0.55)]";
16
+ /** --ink-active: the kbd chip on ink. */
17
+ export declare const INK_ACTIVE = "bg-[rgb(255_255_255/0.15)] [.dark_&]:bg-[rgb(255_255_255/0.13)]";
18
+ /** --surface-raised: dialogs, sheets, expanded editors. */
19
+ export declare const SURFACE_RAISED = "bg-[var(--kit-surface-raised)]";
20
+ /** --floating-line: the edge of modals, sheets, expanded editors (= line; dark = line-strong). */
21
+ export declare const FLOATING_LINE = "border-kit-line [.dark_&]:border-kit-line-strong";
22
+ /** .bg-tray + --tray-line: the action tray under a dialog. */
23
+ export declare const TRAY = "bg-kit-surface bg-[linear-gradient(180deg,rgb(216_216_216/0)_16.105%,rgb(216_216_216/0.6)_123.57%)] border-[#ededed] [.dark_&]:bg-[linear-gradient(180deg,oklch(0.32_0.005_286/0)_16.105%,oklch(0.32_0.005_286/0.6)_123.57%)] [.dark_&]:border-[#3a3a3d]";
@@ -0,0 +1,26 @@
1
+ //#region src/ui/surfaces.ts
2
+ /**
3
+ * V2's floating-surface recipes (src/styles/index.css .glass, .glass-ink, .bg-tray, --surface-raised, --floating-line),
4
+ * as class strings. kit.css has no tokens for these yet, so the V2 values are written out here, light and dark
5
+ * (`[.dark_&]` = the app is dark). Each one is a single constant so the integrator can swap it for a kit token later.
6
+ *
7
+ * Portalled layers render outside [data-kit-scope], where every --kit-* value is undefined. Every layer root here
8
+ * therefore carries KIT_SCOPE (data-kit-scope) itself.
9
+ */
10
+ var KIT_SCOPE = { "data-kit-scope": "" };
11
+ /** .glass: popovers, menus, hover cards. */
12
+ var GLASS = "bg-kit-surface border-kit-line shadow-[0_1px_2px_rgb(16_16_16/0.04),0_8px_24px_-6px_rgb(16_16_16/0.12)] [.dark_&]:bg-[#252528] [.dark_&]:border-kit-line-strong [.dark_&]:shadow-[inset_0_1px_0_oklch(1_0_0/0.04),0_12px_32px_-8px_oklch(0.12_0.01_286/0.5)]";
13
+ /** .glass-ink: tooltips (ink is dark in both themes). */
14
+ var INK = "bg-[#1c1c1e] text-[#f5f5f5] shadow-[0_10px_28px_-8px_rgb(0_0_0/0.35)] [.dark_&]:bg-[#3d3d40] [.dark_&]:text-[#ececef] [.dark_&]:shadow-[inset_0_1px_0_oklch(1_0_0/0.06),0_0_0_1px_rgb(255_255_255/0.12),0_14px_36px_-8px_oklch(0.12_0.01_286/0.55)]";
15
+ /** --ink-active: the kbd chip on ink. */
16
+ var INK_ACTIVE = "bg-[rgb(255_255_255/0.15)] [.dark_&]:bg-[rgb(255_255_255/0.13)]";
17
+ /** --surface-raised: dialogs, sheets, expanded editors. */
18
+ var SURFACE_RAISED = "bg-[var(--kit-surface-raised)]";
19
+ /** --floating-line: the edge of modals, sheets, expanded editors (= line; dark = line-strong). */
20
+ var FLOATING_LINE = "border-kit-line [.dark_&]:border-kit-line-strong";
21
+ /** .bg-tray + --tray-line: the action tray under a dialog. */
22
+ var TRAY = "bg-kit-surface bg-[linear-gradient(180deg,rgb(216_216_216/0)_16.105%,rgb(216_216_216/0.6)_123.57%)] border-[#ededed] [.dark_&]:bg-[linear-gradient(180deg,oklch(0.32_0.005_286/0)_16.105%,oklch(0.32_0.005_286/0.6)_123.57%)] [.dark_&]:border-[#3a3a3d]";
23
+ //#endregion
24
+ export { FLOATING_LINE, GLASS, INK, INK_ACTIVE, KIT_SCOPE, SURFACE_RAISED, TRAY };
25
+
26
+ //# sourceMappingURL=surfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surfaces.js","names":[],"sources":["../../src/ui/surfaces.ts"],"sourcesContent":["/**\n * V2's floating-surface recipes (src/styles/index.css .glass, .glass-ink, .bg-tray, --surface-raised, --floating-line),\n * as class strings. kit.css has no tokens for these yet, so the V2 values are written out here, light and dark\n * (`[.dark_&]` = the app is dark). Each one is a single constant so the integrator can swap it for a kit token later.\n *\n * Portalled layers render outside [data-kit-scope], where every --kit-* value is undefined. Every layer root here\n * therefore carries KIT_SCOPE (data-kit-scope) itself.\n */\nexport const KIT_SCOPE = { \"data-kit-scope\": \"\" } as const;\n\n/** .glass: popovers, menus, hover cards. */\nexport const GLASS =\n \"bg-kit-surface border-kit-line shadow-[0_1px_2px_rgb(16_16_16/0.04),0_8px_24px_-6px_rgb(16_16_16/0.12)] [.dark_&]:bg-[#252528] [.dark_&]:border-kit-line-strong [.dark_&]:shadow-[inset_0_1px_0_oklch(1_0_0/0.04),0_12px_32px_-8px_oklch(0.12_0.01_286/0.5)]\";\n\n/** .glass-ink: tooltips (ink is dark in both themes). */\nexport const INK =\n \"bg-[#1c1c1e] text-[#f5f5f5] shadow-[0_10px_28px_-8px_rgb(0_0_0/0.35)] [.dark_&]:bg-[#3d3d40] [.dark_&]:text-[#ececef] [.dark_&]:shadow-[inset_0_1px_0_oklch(1_0_0/0.06),0_0_0_1px_rgb(255_255_255/0.12),0_14px_36px_-8px_oklch(0.12_0.01_286/0.55)]\";\n\n/** --ink-active: the kbd chip on ink. */\nexport const INK_ACTIVE = \"bg-[rgb(255_255_255/0.15)] [.dark_&]:bg-[rgb(255_255_255/0.13)]\";\n\n/** --surface-raised: dialogs, sheets, expanded editors. */\nexport const SURFACE_RAISED = \"bg-[var(--kit-surface-raised)]\";\n\n/** --floating-line: the edge of modals, sheets, expanded editors (= line; dark = line-strong). */\nexport const FLOATING_LINE = \"border-kit-line [.dark_&]:border-kit-line-strong\";\n\n/** .bg-tray + --tray-line: the action tray under a dialog. */\nexport const TRAY =\n \"bg-kit-surface bg-[linear-gradient(180deg,rgb(216_216_216/0)_16.105%,rgb(216_216_216/0.6)_123.57%)] border-[#ededed] [.dark_&]:bg-[linear-gradient(180deg,oklch(0.32_0.005_286/0)_16.105%,oklch(0.32_0.005_286/0.6)_123.57%)] [.dark_&]:border-[#3a3a3d]\";\n"],"mappings":";;;;;;;;;AAQA,IAAa,YAAY,EAAE,kBAAkB,GAAG;;AAGhD,IAAa,QACX;;AAGF,IAAa,MACX;;AAGF,IAAa,aAAa;;AAG1B,IAAa,iBAAiB;;AAG9B,IAAa,gBAAgB;;AAG7B,IAAa,OACX"}
@@ -0,0 +1,38 @@
1
+ import * as React from "react";
2
+ export interface TabsProps<T extends string> {
3
+ value?: T;
4
+ defaultValue?: T;
5
+ onValueChange?: (value: T) => void;
6
+ className?: string;
7
+ children: React.ReactNode;
8
+ }
9
+ export declare function Tabs<T extends string>({ value, defaultValue, onValueChange, className, children }: TabsProps<T>): import("react/jsx-runtime").JSX.Element;
10
+ export interface TabListProps {
11
+ "aria-label"?: string;
12
+ size?: "sm" | "md";
13
+ /** draw a hairline under the whole tab row (the underline then sits on it) */
14
+ bordered?: boolean;
15
+ /** framer layoutId for the underline; defaults to one per list */
16
+ layoutId?: string;
17
+ className?: string;
18
+ children: React.ReactNode;
19
+ }
20
+ export declare function TabList({ "aria-label": ariaLabel, size, bordered, layoutId, className, children }: TabListProps): import("react/jsx-runtime").JSX.Element;
21
+ export interface TabProps<T extends string> {
22
+ value: T;
23
+ icon?: React.ReactNode;
24
+ /** a muted tabular count after the label; pass it here, never baked into the label */
25
+ count?: number;
26
+ disabled?: boolean;
27
+ className?: string;
28
+ children?: React.ReactNode;
29
+ }
30
+ export declare function Tab<T extends string>({ value, icon, count, disabled, className, children }: TabProps<T>): import("react/jsx-runtime").JSX.Element;
31
+ export interface TabPanelProps<T extends string> {
32
+ value: T;
33
+ /** keep the inactive panel in the DOM (hidden); V2 renders only the active one */
34
+ keepMounted?: boolean;
35
+ className?: string;
36
+ children: React.ReactNode;
37
+ }
38
+ export declare function TabPanel<T extends string>({ value, keepMounted, className, children }: TabPanelProps<T>): import("react/jsx-runtime").JSX.Element;
package/dist/ui/tab.js ADDED
@@ -0,0 +1,87 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import * as React from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { motion, useReducedMotion } from "framer-motion";
5
+ import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
6
+ //#region src/ui/tab.tsx
7
+ var PILL_SPRING = {
8
+ type: "spring",
9
+ stiffness: 520,
10
+ damping: 42
11
+ };
12
+ var ListLookContext = React.createContext({
13
+ size: "md",
14
+ bordered: false,
15
+ layoutId: "kit-tab"
16
+ });
17
+ function Tabs({ value, defaultValue, onValueChange, className, children }) {
18
+ return /* @__PURE__ */ jsx(Tabs$1.Root, {
19
+ value,
20
+ defaultValue,
21
+ onValueChange: (v) => onValueChange?.(v),
22
+ className,
23
+ children
24
+ });
25
+ }
26
+ function TabList({ "aria-label": ariaLabel, size = "md", bordered = false, layoutId, className, children }) {
27
+ const id = React.useId();
28
+ const look = React.useMemo(() => ({
29
+ size,
30
+ bordered,
31
+ layoutId: layoutId ?? `tab-${id}`
32
+ }), [
33
+ size,
34
+ bordered,
35
+ layoutId,
36
+ id
37
+ ]);
38
+ return /* @__PURE__ */ jsx(ListLookContext.Provider, {
39
+ value: look,
40
+ children: /* @__PURE__ */ jsx(Tabs$1.List, {
41
+ "aria-label": ariaLabel,
42
+ activateOnFocus: true,
43
+ loopFocus: true,
44
+ className: cn("inline-flex items-center gap-5", bordered && "border-b border-kit-line", className),
45
+ children
46
+ })
47
+ });
48
+ }
49
+ function Tab({ value, icon, count, disabled, className, children }) {
50
+ const { size, bordered, layoutId } = React.useContext(ListLookContext);
51
+ const reduceMotion = useReducedMotion();
52
+ return /* @__PURE__ */ jsx(Tabs$1.Tab, {
53
+ value,
54
+ disabled,
55
+ className: cn("group relative inline-flex items-center justify-center gap-1.5 whitespace-nowrap font-medium tracking-[-0.01em] transition-colors duration-150 disabled:opacity-40 data-[disabled]:opacity-40 [&_svg]:size-4", size === "sm" ? "h-7 text-kit-xs [&_svg]:size-3.5" : "h-8 text-kit-sm", "text-kit-fg-3 not-data-[active]:hover:text-kit-fg-2 data-[active]:text-kit-fg", className),
56
+ render: (props, state) => /* @__PURE__ */ jsxs("button", {
57
+ ...props,
58
+ children: [
59
+ icon,
60
+ props.children,
61
+ typeof count === "number" ? /* @__PURE__ */ jsx("span", {
62
+ className: "text-kit-xs font-normal tabular-nums text-kit-fg-4 group-data-[active]:text-kit-fg-2",
63
+ children: count
64
+ }) : null,
65
+ state.active ? /* @__PURE__ */ jsx(motion.span, {
66
+ layoutId,
67
+ transition: reduceMotion ? { duration: 0 } : PILL_SPRING,
68
+ "data-tab-indicator": "",
69
+ className: cn("absolute inset-x-0 h-[1.5px] rounded-full bg-kit-fg", bordered ? "-bottom-px" : "bottom-0")
70
+ }) : null
71
+ ]
72
+ }),
73
+ children
74
+ });
75
+ }
76
+ function TabPanel({ value, keepMounted, className, children }) {
77
+ return /* @__PURE__ */ jsx(Tabs$1.Panel, {
78
+ value,
79
+ keepMounted,
80
+ className,
81
+ children
82
+ });
83
+ }
84
+ //#endregion
85
+ export { Tab, TabList, TabPanel, Tabs };
86
+
87
+ //# sourceMappingURL=tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.js","names":[],"sources":["../../src/ui/tab.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { motion, useReducedMotion } from \"framer-motion\";\nimport { cn } from \"../lib/cn\";\n\n/* ── Tabs ────────────────────────────────────────────────────────────────\n Real tabs (tablist + tab + tabpanel with aria-controls / aria-labelledby) in the look of V2's\n Segmented variant=\"tabs\" (controls.tsx:179-273): quiet text tabs, muted tabular count, a 1.5px underline that springs\n between tabs (layoutId, stiffness 520 / damping 42, instant under reduced motion). Selection follows focus and the\n arrows wrap, as V2's onKey does. kit-ports-spec.md §3. Segmented stays the tabs look for rows that have no panels. */\nconst PILL_SPRING = { type: \"spring\", stiffness: 520, damping: 42 } as const;\n\ntype ListLook = { size: \"sm\" | \"md\"; bordered: boolean; layoutId: string };\nconst ListLookContext = React.createContext<ListLook>({ size: \"md\", bordered: false, layoutId: \"kit-tab\" });\n\nexport interface TabsProps<T extends string> {\n value?: T;\n defaultValue?: T;\n onValueChange?: (value: T) => void;\n className?: string;\n children: React.ReactNode;\n}\n\nexport function Tabs<T extends string>({ value, defaultValue, onValueChange, className, children }: TabsProps<T>) {\n return (\n <TabsPrimitive.Root value={value} defaultValue={defaultValue} onValueChange={(v) => onValueChange?.(v as T)} className={className}>\n {children}\n </TabsPrimitive.Root>\n );\n}\n\nexport interface TabListProps {\n \"aria-label\"?: string;\n size?: \"sm\" | \"md\";\n /** draw a hairline under the whole tab row (the underline then sits on it) */\n bordered?: boolean;\n /** framer layoutId for the underline; defaults to one per list */\n layoutId?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nexport function TabList({ \"aria-label\": ariaLabel, size = \"md\", bordered = false, layoutId, className, children }: TabListProps) {\n const id = React.useId();\n const look = React.useMemo(() => ({ size, bordered, layoutId: layoutId ?? `tab-${id}` }), [size, bordered, layoutId, id]);\n return (\n <ListLookContext.Provider value={look}>\n <TabsPrimitive.List\n aria-label={ariaLabel}\n activateOnFocus\n loopFocus\n className={cn(\"inline-flex items-center gap-5\", bordered && \"border-b border-kit-line\", className)}\n >\n {children}\n </TabsPrimitive.List>\n </ListLookContext.Provider>\n );\n}\n\nexport interface TabProps<T extends string> {\n value: T;\n icon?: React.ReactNode;\n /** a muted tabular count after the label; pass it here, never baked into the label */\n count?: number;\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function Tab<T extends string>({ value, icon, count, disabled, className, children }: TabProps<T>) {\n const { size, bordered, layoutId } = React.useContext(ListLookContext);\n const reduceMotion = useReducedMotion();\n return (\n <TabsPrimitive.Tab\n value={value}\n disabled={disabled}\n className={cn(\n \"group relative inline-flex items-center justify-center gap-1.5 whitespace-nowrap font-medium tracking-[-0.01em] transition-colors duration-150 disabled:opacity-40 data-[disabled]:opacity-40 [&_svg]:size-4\",\n size === \"sm\" ? \"h-7 text-kit-xs [&_svg]:size-3.5\" : \"h-8 text-kit-sm\",\n \"text-kit-fg-3 not-data-[active]:hover:text-kit-fg-2 data-[active]:text-kit-fg\",\n className,\n )}\n render={(props, state) => (\n <button {...props}>\n {icon}\n {props.children}\n {typeof count === \"number\" ? (\n <span className=\"text-kit-xs font-normal tabular-nums text-kit-fg-4 group-data-[active]:text-kit-fg-2\">{count}</span>\n ) : null}\n {state.active ? (\n <motion.span\n layoutId={layoutId}\n transition={reduceMotion ? { duration: 0 } : PILL_SPRING}\n data-tab-indicator=\"\"\n className={cn(\"absolute inset-x-0 h-[1.5px] rounded-full bg-kit-fg\", bordered ? \"-bottom-px\" : \"bottom-0\")}\n />\n ) : null}\n </button>\n )}\n >\n {children}\n </TabsPrimitive.Tab>\n );\n}\n\nexport interface TabPanelProps<T extends string> {\n value: T;\n /** keep the inactive panel in the DOM (hidden); V2 renders only the active one */\n keepMounted?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport function TabPanel<T extends string>({ value, keepMounted, className, children }: TabPanelProps<T>) {\n return (\n <TabsPrimitive.Panel value={value} keepMounted={keepMounted} className={className}>\n {children}\n </TabsPrimitive.Panel>\n );\n}\n"],"mappings":";;;;;;AAUA,IAAM,cAAc;CAAE,MAAM;CAAU,WAAW;CAAK,SAAS;AAAG;AAGlE,IAAM,kBAAkB,MAAM,cAAwB;CAAE,MAAM;CAAM,UAAU;CAAO,UAAU;AAAU,CAAC;AAU1G,SAAgB,KAAuB,EAAE,OAAO,cAAc,eAAe,WAAW,YAA0B;CAChH,OACE,oBAAC,OAAc,MAAf;EAA2B;EAAqB;EAAc,gBAAgB,MAAM,gBAAgB,CAAM;EAAc;EACrH;CACiB,CAAA;AAExB;AAaA,SAAgB,QAAQ,EAAE,cAAc,WAAW,OAAO,MAAM,WAAW,OAAO,UAAU,WAAW,YAA0B;CAC/H,MAAM,KAAK,MAAM,MAAM;CACvB,MAAM,OAAO,MAAM,eAAe;EAAE;EAAM;EAAU,UAAU,YAAY,OAAO;CAAK,IAAI;EAAC;EAAM;EAAU;EAAU;CAAE,CAAC;CACxH,OACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO;EAC/B,UAAA,oBAAC,OAAc,MAAf;GACE,cAAY;GACZ,iBAAA;GACA,WAAA;GACA,WAAW,GAAG,kCAAkC,YAAY,4BAA4B,SAAS;GAEhG;EACiB,CAAA;CACI,CAAA;AAE9B;AAYA,SAAgB,IAAsB,EAAE,OAAO,MAAM,OAAO,UAAU,WAAW,YAAyB;CACxG,MAAM,EAAE,MAAM,UAAU,aAAa,MAAM,WAAW,eAAe;CACrE,MAAM,eAAe,iBAAiB;CACtC,OACE,oBAAC,OAAc,KAAf;EACS;EACG;EACV,WAAW,GACT,gNACA,SAAS,OAAO,qCAAqC,mBACrD,iFACA,SACF;EACA,SAAS,OAAO,UACd,qBAAC,UAAD;GAAQ,GAAI;GAAZ,UAAA;IACG;IACA,MAAM;IACN,OAAO,UAAU,WAChB,oBAAC,QAAD;KAAM,WAAU;KAAwF,UAAA;IAAY,CAAA,IAClH;IACH,MAAM,SACL,oBAAC,OAAO,MAAR;KACY;KACV,YAAY,eAAe,EAAE,UAAU,EAAE,IAAI;KAC7C,sBAAmB;KACnB,WAAW,GAAG,uDAAuD,WAAW,eAAe,UAAU;IAC1G,CAAA,IACC;GACE;;EAGT;CACgB,CAAA;AAEvB;AAUA,SAAgB,SAA2B,EAAE,OAAO,aAAa,WAAW,YAA8B;CACxG,OACE,oBAAC,OAAc,OAAf;EAA4B;EAAoB;EAAwB;EACrE;CACkB,CAAA;AAEzB"}
@@ -0,0 +1,20 @@
1
+ import type { KitToast, KitToastOptions } from "../context";
2
+ export declare const kitToastManager: import("@base-ui/react").ToastManager<any>;
3
+ /** KitServices.toast backed by kitToastManager, plus V2's other sonner calls. */
4
+ export declare const kitToast: KitToast & {
5
+ error: (message: string, opts?: KitToastOptions) => void;
6
+ warning: (message: string, opts?: KitToastOptions) => void;
7
+ info: (message: string, opts?: KitToastOptions) => void;
8
+ /** stays until dismissed or updated; returns its id */
9
+ loading: (message: string, opts?: KitToastOptions) => string;
10
+ dismiss: (id?: string) => void;
11
+ };
12
+ export interface KitToasterProps {
13
+ /** toasts kept on screen (sonner visibleToasts) */
14
+ limit?: number;
15
+ /** ms before a toast closes; a toast's own `duration` wins; loading toasts stay */
16
+ timeout?: number;
17
+ className?: string;
18
+ }
19
+ /** Mount once per document, at the root. Its layer carries KIT_SCOPE (a portal sits outside every kit island). */
20
+ export declare function KitToaster({ limit, timeout, className }: KitToasterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,115 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import { KIT_SCOPE } from "./surfaces.js";
3
+ import { Spinner } from "./spinner.js";
4
+ import "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { Toast } from "@base-ui/react/toast";
7
+ //#region src/ui/toast.tsx
8
+ var kitToastManager = Toast.createToastManager();
9
+ var seq = 0;
10
+ function add(type, message, opts = {}) {
11
+ const id = `kit-toast-${++seq}`;
12
+ const { action } = opts;
13
+ return kitToastManager.add({
14
+ id,
15
+ type,
16
+ title: message,
17
+ description: opts.description,
18
+ timeout: opts.duration,
19
+ priority: type === "error" ? "high" : "low",
20
+ data: { icon: opts.icon },
21
+ actionProps: action ? {
22
+ children: action.label,
23
+ onClick: () => (action.onClick(), kitToastManager.close(id))
24
+ } : void 0
25
+ });
26
+ }
27
+ /** KitServices.toast backed by kitToastManager, plus V2's other sonner calls. */
28
+ var kitToast = Object.assign((message, opts) => void add("default", message, opts), {
29
+ success: (message, opts) => void add("success", message, opts),
30
+ error: (message, opts) => void add("error", message, opts),
31
+ warning: (message, opts) => void add("warning", message, opts),
32
+ info: (message, opts) => void add("info", message, opts),
33
+ loading: (message, opts) => add("loading", message, opts),
34
+ dismiss: (id) => kitToastManager.close(id)
35
+ });
36
+ function SonnerGlyph({ viewBox, d }) {
37
+ return /* @__PURE__ */ jsx("svg", {
38
+ viewBox,
39
+ fill: "currentColor",
40
+ width: "16",
41
+ height: "16",
42
+ "data-toast-glyph": "",
43
+ children: /* @__PURE__ */ jsx("path", {
44
+ fillRule: "evenodd",
45
+ d,
46
+ clipRule: "evenodd"
47
+ })
48
+ });
49
+ }
50
+ var TYPE_ICON = {
51
+ success: /* @__PURE__ */ jsx(SonnerGlyph, {
52
+ viewBox: "0 0 20 20",
53
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z"
54
+ }),
55
+ warning: /* @__PURE__ */ jsx(SonnerGlyph, {
56
+ viewBox: "0 0 24 24",
57
+ d: "M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z"
58
+ }),
59
+ info: /* @__PURE__ */ jsx(SonnerGlyph, {
60
+ viewBox: "0 0 20 20",
61
+ d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z"
62
+ }),
63
+ error: /* @__PURE__ */ jsx(SonnerGlyph, {
64
+ viewBox: "0 0 20 20",
65
+ d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z"
66
+ }),
67
+ loading: /* @__PURE__ */ jsx(Spinner, { size: "md" })
68
+ };
69
+ var VIEWPORT = "fixed bottom-[var(--toast-offset-bottom,16px)] right-4 z-[var(--z-toast,500)] w-[356px] outline-none max-[600px]:left-4 max-[600px]:w-auto";
70
+ var ROOT = cn("[--gap:8px] [--scale:calc(1-var(--toast-index)*0.05)] [--height:var(--toast-frontmost-height,var(--toast-height))]", "[--offset-y:calc(var(--toast-offset-y)*-1+var(--toast-index)*var(--gap)*-1+var(--toast-swipe-movement-y))]", "absolute bottom-0 right-0 z-[calc(1000-var(--toast-index))] w-full origin-bottom select-none", "h-[var(--height)] [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-var(--toast-index)*var(--gap)))_scale(var(--scale))]", "data-[expanded]:h-[var(--toast-height)] data-[expanded]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]", "data-[starting-style]:opacity-0 data-[starting-style]:[transform:translateY(100%)]", "data-[ending-style]:opacity-0 data-[limited]:opacity-0", "[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(100%)]", "data-[ending-style]:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+100%))]", "data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+100%))_translateY(var(--offset-y))]", "[transition:transform_400ms_ease,opacity_400ms,height_400ms,box-shadow_200ms]", "after:absolute after:left-0 after:top-full after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']", "flex items-center rounded-kit-xl border border-kit-tray-line bg-kit-surface-raised bg-clip-padding p-4 font-sans text-kit-sm text-kit-fg shadow-[0_4px_12px_rgba(0,0,0,0.1)] [.dark_&]:border-kit-line-strong");
71
+ var CONTENT = "flex min-w-0 flex-1 items-center gap-1.5 transition-opacity duration-[400ms] data-[behind]:opacity-0 data-[expanded]:opacity-100";
72
+ var ACTION = "ml-auto inline-flex h-6 shrink-0 cursor-pointer items-center rounded-kit-md bg-kit-inverse px-2 text-kit-xs font-medium text-kit-fg-inverse hover:bg-kit-inverse-hover [transition:opacity_400ms,box-shadow_200ms,background-color_150ms]";
73
+ function KitToastItem({ toast }) {
74
+ const icon = toast.data?.icon ?? TYPE_ICON[toast.type ?? ""];
75
+ return /* @__PURE__ */ jsx(Toast.Root, {
76
+ toast,
77
+ className: ROOT,
78
+ children: /* @__PURE__ */ jsxs(Toast.Content, {
79
+ className: CONTENT,
80
+ children: [
81
+ icon ? /* @__PURE__ */ jsx("span", {
82
+ "aria-hidden": true,
83
+ className: "flex size-4 shrink-0 items-center [&_svg]:size-4",
84
+ children: icon
85
+ }) : null,
86
+ /* @__PURE__ */ jsxs("div", {
87
+ className: "min-w-0 flex-1",
88
+ children: [/* @__PURE__ */ jsx(Toast.Title, { className: "font-medium leading-[1.5]" }), toast.description ? /* @__PURE__ */ jsx(Toast.Description, { className: "leading-[1.4] text-kit-fg-2" }) : null]
89
+ }),
90
+ toast.actionProps ? /* @__PURE__ */ jsx(Toast.Action, { className: ACTION }) : null
91
+ ]
92
+ })
93
+ });
94
+ }
95
+ function KitToastList() {
96
+ const { toasts } = Toast.useToastManager();
97
+ return toasts.map((t) => /* @__PURE__ */ jsx(KitToastItem, { toast: t }, t.id));
98
+ }
99
+ /** Mount once per document, at the root. Its layer carries KIT_SCOPE (a portal sits outside every kit island). */
100
+ function KitToaster({ limit = 3, timeout = 4e3, className }) {
101
+ return /* @__PURE__ */ jsx(Toast.Provider, {
102
+ toastManager: kitToastManager,
103
+ limit,
104
+ timeout,
105
+ children: /* @__PURE__ */ jsx(Toast.Portal, { children: /* @__PURE__ */ jsx(Toast.Viewport, {
106
+ ...KIT_SCOPE,
107
+ className: cn(VIEWPORT, className),
108
+ children: /* @__PURE__ */ jsx(KitToastList, {})
109
+ }) })
110
+ });
111
+ }
112
+ //#endregion
113
+ export { KitToaster, kitToast, kitToastManager };
114
+
115
+ //# sourceMappingURL=toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.js","names":[],"sources":["../../src/ui/toast.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Toast } from \"@base-ui/react/toast\";\nimport type { KitToast, KitToastOptions } from \"../context\";\nimport { cn } from \"../lib/cn\";\nimport { Spinner } from \"./spinner\";\nimport { KIT_SCOPE } from \"./surfaces\";\n\n/* ── Toast ───────────────────────────────────────────────────────────────\n V2's toaster (app/root.tsx:24-46: sonner bottom-right, 16px offsets, gap 8, the --toast-offset-bottom lift an\n ActionTray with clearToasts writes) rebuilt on Base UI Toast. kit-ports-spec.md §4.\n Kit code never mounts this on its own: it calls KitServices.toast. A host without a toaster of its own mounts\n <KitToaster /> once and passes `toast: kitToast`; a host with one (the dashboard's sonner) keeps it, so nothing\n renders twice.\n The success / error / warning / info glyphs are sonner's own SVG paths (sonner 2.0.8 dist/index.mjs:43-90), copied\n verbatim. sonner is MIT licensed, Copyright (c) 2023 Emil Kowalski (https://github.com/emilkowalski/sonner). */\n\nexport const kitToastManager = Toast.createToastManager();\n\ntype ToastType = \"default\" | \"success\" | \"error\" | \"warning\" | \"info\" | \"loading\";\nlet seq = 0;\n\nfunction add(type: ToastType, message: string, opts: KitToastOptions = {}): string {\n const id = `kit-toast-${++seq}`;\n const { action } = opts;\n return kitToastManager.add({\n id,\n type,\n title: message,\n description: opts.description,\n timeout: opts.duration,\n priority: type === \"error\" ? \"high\" : \"low\",\n data: { icon: opts.icon },\n // sonner closes the toast when its action runs; so does this\n actionProps: action ? { children: action.label, onClick: () => (action.onClick(), kitToastManager.close(id)) } : undefined,\n });\n}\n\n/** KitServices.toast backed by kitToastManager, plus V2's other sonner calls. */\nexport const kitToast: KitToast & {\n error: (message: string, opts?: KitToastOptions) => void;\n warning: (message: string, opts?: KitToastOptions) => void;\n info: (message: string, opts?: KitToastOptions) => void;\n /** stays until dismissed or updated; returns its id */\n loading: (message: string, opts?: KitToastOptions) => string;\n dismiss: (id?: string) => void;\n} = Object.assign((message: string, opts?: KitToastOptions) => void add(\"default\", message, opts), {\n success: (message: string, opts?: KitToastOptions) => void add(\"success\", message, opts),\n error: (message: string, opts?: KitToastOptions) => void add(\"error\", message, opts),\n warning: (message: string, opts?: KitToastOptions) => void add(\"warning\", message, opts),\n info: (message: string, opts?: KitToastOptions) => void add(\"info\", message, opts),\n loading: (message: string, opts?: KitToastOptions) => add(\"loading\", message, opts),\n dismiss: (id?: string) => kitToastManager.close(id),\n});\n\n/* sonner's type glyphs, drawn in the toast's text colour (V2 runs without richColors), at the 16px icon slot */\nfunction SonnerGlyph({ viewBox, d }: { viewBox: string; d: string }) {\n return (\n <svg viewBox={viewBox} fill=\"currentColor\" width=\"16\" height=\"16\" data-toast-glyph=\"\">\n <path fillRule=\"evenodd\" d={d} clipRule=\"evenodd\" />\n </svg>\n );\n}\nconst TYPE_ICON: Partial<Record<string, React.ReactNode>> = {\n success: (\n <SonnerGlyph\n viewBox=\"0 0 20 20\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\"\n />\n ),\n warning: (\n <SonnerGlyph\n viewBox=\"0 0 24 24\"\n d=\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\"\n />\n ),\n info: (\n <SonnerGlyph\n viewBox=\"0 0 20 20\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\"\n />\n ),\n error: (\n <SonnerGlyph\n viewBox=\"0 0 20 20\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\"\n />\n ),\n loading: <Spinner size=\"md\" />,\n};\n\n/* Viewport: bottom-right, 16px from the edges; the bottom offset follows an ActionTray's --toast-offset-bottom lift.\n Under 600px it spans the width less 16px a side (sonner's mobile layout). */\nconst VIEWPORT =\n \"fixed bottom-[var(--toast-offset-bottom,16px)] right-4 z-[var(--z-toast,500)] w-[356px] outline-none max-[600px]:left-4 max-[600px]:w-auto\";\n\n/* sonner's motion in Base UI's stacked-toast variables: 400ms transform/opacity/height; enter and exit 100% down;\n collapsed, each toast behind the front lifts gap × index, shrinks 5% per index and takes the front toast's height;\n hovered or focused, the stack opens to full heights 8px apart. Reduced motion collapses it (kit base rule). */\nconst ROOT = cn(\n \"[--gap:8px] [--scale:calc(1-var(--toast-index)*0.05)] [--height:var(--toast-frontmost-height,var(--toast-height))]\",\n \"[--offset-y:calc(var(--toast-offset-y)*-1+var(--toast-index)*var(--gap)*-1+var(--toast-swipe-movement-y))]\",\n \"absolute bottom-0 right-0 z-[calc(1000-var(--toast-index))] w-full origin-bottom select-none\",\n \"h-[var(--height)] [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-var(--toast-index)*var(--gap)))_scale(var(--scale))]\",\n \"data-[expanded]:h-[var(--toast-height)] data-[expanded]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]\",\n \"data-[starting-style]:opacity-0 data-[starting-style]:[transform:translateY(100%)]\",\n \"data-[ending-style]:opacity-0 data-[limited]:opacity-0\",\n \"[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(100%)]\",\n \"data-[ending-style]:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+100%))]\",\n \"data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+100%))_translateY(var(--offset-y))]\",\n \"[transition:transform_400ms_ease,opacity_400ms,height_400ms,box-shadow_200ms]\",\n // the hover bridge between stacked toasts, so the stack stays open while the pointer crosses a gap\n \"after:absolute after:left-0 after:top-full after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']\",\n // V2's effective look: --surface-raised, tray-line edge (line-strong in dark), 12px radius, sonner's own shadow\n \"flex items-center rounded-kit-xl border border-kit-tray-line bg-kit-surface-raised bg-clip-padding p-4 font-sans text-kit-sm text-kit-fg shadow-[0_4px_12px_rgba(0,0,0,0.1)] [.dark_&]:border-kit-line-strong\",\n);\n/* the toasts behind the front hide their content while the stack is collapsed (sonner data-front=false > * opacity 0) */\nconst CONTENT = \"flex min-w-0 flex-1 items-center gap-1.5 transition-opacity duration-[400ms] data-[behind]:opacity-0 data-[expanded]:opacity-100\";\nconst ACTION =\n \"ml-auto inline-flex h-6 shrink-0 cursor-pointer items-center rounded-kit-md bg-kit-inverse px-2 text-kit-xs font-medium text-kit-fg-inverse hover:bg-kit-inverse-hover [transition:opacity_400ms,box-shadow_200ms,background-color_150ms]\";\n\nfunction KitToastItem({ toast }: { toast: Toast.Root.ToastObject }) {\n const icon = (toast.data as { icon?: React.ReactNode } | undefined)?.icon ?? TYPE_ICON[toast.type ?? \"\"];\n return (\n <Toast.Root toast={toast} className={ROOT}>\n <Toast.Content className={CONTENT}>\n {icon ? (\n <span aria-hidden className=\"flex size-4 shrink-0 items-center [&_svg]:size-4\">\n {icon}\n </span>\n ) : null}\n <div className=\"min-w-0 flex-1\">\n <Toast.Title className=\"font-medium leading-[1.5]\" />\n {toast.description ? <Toast.Description className=\"leading-[1.4] text-kit-fg-2\" /> : null}\n </div>\n {toast.actionProps ? <Toast.Action className={ACTION} /> : null}\n </Toast.Content>\n </Toast.Root>\n );\n}\n\nfunction KitToastList() {\n const { toasts } = Toast.useToastManager();\n return toasts.map((t) => <KitToastItem key={t.id} toast={t} />);\n}\n\nexport interface KitToasterProps {\n /** toasts kept on screen (sonner visibleToasts) */\n limit?: number;\n /** ms before a toast closes; a toast's own `duration` wins; loading toasts stay */\n timeout?: number;\n className?: string;\n}\n\n/** Mount once per document, at the root. Its layer carries KIT_SCOPE (a portal sits outside every kit island). */\nexport function KitToaster({ limit = 3, timeout = 4000, className }: KitToasterProps) {\n return (\n <Toast.Provider toastManager={kitToastManager} limit={limit} timeout={timeout}>\n <Toast.Portal>\n <Toast.Viewport {...KIT_SCOPE} className={cn(VIEWPORT, className)}>\n <KitToastList />\n </Toast.Viewport>\n </Toast.Portal>\n </Toast.Provider>\n );\n}\n"],"mappings":";;;;;;;AAgBA,IAAa,kBAAkB,MAAM,mBAAmB;AAGxD,IAAI,MAAM;AAEV,SAAS,IAAI,MAAiB,SAAiB,OAAwB,CAAC,GAAW;CACjF,MAAM,KAAK,aAAa,EAAE;CAC1B,MAAM,EAAE,WAAW;CACnB,OAAO,gBAAgB,IAAI;EACzB;EACA;EACA,OAAO;EACP,aAAa,KAAK;EAClB,SAAS,KAAK;EACd,UAAU,SAAS,UAAU,SAAS;EACtC,MAAM,EAAE,MAAM,KAAK,KAAK;EAExB,aAAa,SAAS;GAAE,UAAU,OAAO;GAAO,gBAAgB,OAAO,QAAQ,GAAG,gBAAgB,MAAM,EAAE;EAAG,IAAI,KAAA;CACnH,CAAC;AACH;;AAGA,IAAa,WAOT,OAAO,QAAQ,SAAiB,SAA2B,KAAK,IAAI,WAAW,SAAS,IAAI,GAAG;CACjG,UAAU,SAAiB,SAA2B,KAAK,IAAI,WAAW,SAAS,IAAI;CACvF,QAAQ,SAAiB,SAA2B,KAAK,IAAI,SAAS,SAAS,IAAI;CACnF,UAAU,SAAiB,SAA2B,KAAK,IAAI,WAAW,SAAS,IAAI;CACvF,OAAO,SAAiB,SAA2B,KAAK,IAAI,QAAQ,SAAS,IAAI;CACjF,UAAU,SAAiB,SAA2B,IAAI,WAAW,SAAS,IAAI;CAClF,UAAU,OAAgB,gBAAgB,MAAM,EAAE;AACpD,CAAC;AAGD,SAAS,YAAY,EAAE,SAAS,KAAqC;CACnE,OACE,oBAAC,OAAD;EAAc;EAAS,MAAK;EAAe,OAAM;EAAK,QAAO;EAAK,oBAAiB;EACjF,UAAA,oBAAC,QAAD;GAAM,UAAS;GAAa;GAAG,UAAS;EAAW,CAAA;CAChD,CAAA;AAET;AACA,IAAM,YAAsD;CAC1D,SACE,oBAAC,aAAD;EACE,SAAQ;EACR,GAAE;CACH,CAAA;CAEH,SACE,oBAAC,aAAD;EACE,SAAQ;EACR,GAAE;CACH,CAAA;CAEH,MACE,oBAAC,aAAD;EACE,SAAQ;EACR,GAAE;CACH,CAAA;CAEH,OACE,oBAAC,aAAD;EACE,SAAQ;EACR,GAAE;CACH,CAAA;CAEH,SAAS,oBAAC,SAAD,EAAS,MAAK,KAAM,CAAA;AAC/B;AAIA,IAAM,WACJ;AAKF,IAAM,OAAO,GACX,sHACA,8GACA,gGACA,6KACA,6IACA,sFACA,0DACA,uGACA,oHACA,iJACA,iFAEA,6GAEA,+MACF;AAEA,IAAM,UAAU;AAChB,IAAM,SACJ;AAEF,SAAS,aAAa,EAAE,SAA4C;CAClE,MAAM,OAAQ,MAAM,MAAiD,QAAQ,UAAU,MAAM,QAAQ;CACrG,OACE,oBAAC,MAAM,MAAP;EAAmB;EAAO,WAAW;EACnC,UAAA,qBAAC,MAAM,SAAP;GAAe,WAAW;GAA1B,UAAA;IACG,OACC,oBAAC,QAAD;KAAM,eAAA;KAAY,WAAU;KACzB,UAAA;IACG,CAAA,IACJ;IACJ,qBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,oBAAC,MAAM,OAAP,EAAa,WAAU,4BAA6B,CAAA,GACnD,MAAM,cAAc,oBAAC,MAAM,aAAP,EAAmB,WAAU,8BAA+B,CAAA,IAAI,IAClF;;IACJ,MAAM,cAAc,oBAAC,MAAM,QAAP,EAAc,WAAW,OAAS,CAAA,IAAI;GAC9C;;CACL,CAAA;AAEhB;AAEA,SAAS,eAAe;CACtB,MAAM,EAAE,WAAW,MAAM,gBAAgB;CACzC,OAAO,OAAO,KAAK,MAAM,oBAAC,cAAD,EAAyB,OAAO,EAAI,GAAjB,EAAE,EAAe,CAAC;AAChE;;AAWA,SAAgB,WAAW,EAAE,QAAQ,GAAG,UAAU,KAAM,aAA8B;CACpF,OACE,oBAAC,MAAM,UAAP;EAAgB,cAAc;EAAwB;EAAgB;EACpE,UAAA,oBAAC,MAAM,QAAP,EAAA,UACE,oBAAC,MAAM,UAAP;GAAgB,GAAI;GAAW,WAAW,GAAG,UAAU,SAAS;GAC9D,UAAA,oBAAC,cAAD,CAAe,CAAA;EACD,CAAA,EACJ,CAAA;CACA,CAAA;AAEpB"}
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
3
+ export declare const MODAL_LAYER = "data-kit-modal-layer";
4
+ /** Drop-in for Tooltip.Root (controlled or not) that closes itself when a modal layer opens. */
5
+ export declare function TooltipRoot({ open: openProp, defaultOpen, onOpenChange, ...props }: TooltipPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
6
+ /** The ink tooltip surface (V2 overlay.tsx:42: .glass-ink, radius 6, 8×4 padding, 12/500, 1.45 leading, wraps, fades in
7
+ * 160ms on a delayed open). The --kit-z-tooltip layer sits on the positioner, the element Base UI places. */
8
+ export declare const TOOLTIP_POPUP_CLASS = "flex max-w-[min(280px,calc(100vw-16px))] items-start gap-2 rounded-kit-md glass-ink px-2 py-1 text-kit-xs font-medium leading-[1.45] data-[open]:not-data-[instant]:animate-kit-fade-in";
9
+ /** Portal → positioner (6px offset, 8px collision padding, --kit-z-tooltip, its own kit scope) → ink popup (role="tooltip", as V2's). */
10
+ export declare function TooltipLayer({ side, children, }: {
11
+ side?: "top" | "bottom" | "left" | "right";
12
+ children: React.ReactNode;
13
+ }): import("react/jsx-runtime").JSX.Element;