@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 @@
1
+ {"version":3,"file":"grouping.js","names":[],"sources":["../../src/engine/grouping.tsx"],"sourcesContent":["/**\n * GROUPING (CPO D45; V2 HEAD 9829bf1 kit/engine/grouping.tsx + the layout half of kit/engine/field-list.tsx) — the four\n * ways the Block Kit puts fields together, and the rules for nesting them.\n *\n * Group tabs Content · Media · Design · Settings top of a frame only (FieldList)\n * <FieldSection> ────────────────────────────────── a titled set of siblings: hairline above, 36px header,\n * Spacing Top 56 · Bottom 88 › no box, no left rule; collapsed = one-line summary\n * <FieldInset> Rating line a small object (≤3 simple fields): its label, then the\n * │ Stars [ 4.9 / 5 ] children behind ONE 1px --line inset line (D63). No tint,\n * │ Text [ 4.9 from 2,400+ reviews ] no box, no radius: never a box inside a line.\n * <FieldUnit> ┌ Shop cookware Primary › ┐ ONE compound control (button = label + link, image + alt)\n * └ /products ┘\n * Drill row [▣] Desktop › anything bigger, or anything one level deeper\n *\n * Nesting: section (level 1, spacing only) → inset (level 2, the inset line) → level 3+ always drills. Never two\n * containers in one level. Rhythm: field gap 16 · group gap 24, the same gap inside an inset; dense (form width ≤ 360px)\n * 12 · 20; document 20 · 32.\n * Columns (D63, `columnSpans`): side by side only for genuinely short fields (number, switch, select, date, colour, icon,\n * rating, text with max ≤ 24) AND only when the form is at least 420px wide (a container query). Everything else is full\n * width, so a text value never wraps in a cramped column.\n * `<BreakpointGroup>`: per-screen-size objects (desktop / tablet / phone) as ONE group with a segmented switcher.\n *\n * Port notes (kit vs V2): V2 token utilities carry the kit- prefix (text-fg-3 → text-kit-fg-3, bg-well →\n * bg-kit-well, border-field → border-kit-field-border); `motion/react` is `framer-motion`; V2's `scrollbar-none` and\n * `tabular` utilities are written out. V2's FieldList imports KitField directly; here it takes `renderField` so the\n * engine has no grouping ↔ kit-field import cycle.\n */\nimport * as React from \"react\";\nimport { IconChevronDown, IconChevronRight, IconDeviceDesktop, IconDeviceLaptop, IconDeviceMobile, IconDeviceTablet, IconMessage } from \"@tabler/icons-react\";\nimport { AnimatePresence, motion, useReducedMotion } from \"framer-motion\";\nimport { Segmented } from \"../ui/controls\";\nimport { Menu, MenuContent, MenuItem, MenuTrigger, Tooltip } from \"../ui/overlay\";\nimport { cn } from \"../lib/cn\";\nimport type { FieldGroup, FieldPath, FieldSchema, Fieldset } from \"../schema/types\";\nimport { KitSectionTitle, useForm, useKitEnv, type KitPeer } from \"../context\";\nimport { isObj, keyStartsWith, pathKey } from \"../lib/path\";\nimport { condCtx, isEmptyValue, isHidden } from \"../lib/schema\";\nimport { IssueDot } from \"./bits\";\nimport { PeerStack } from \"./field-shell\";\nimport { groupSummary } from \"./group-summary\";\nimport { KitIcon } from \"../lib/icons\";\nimport { columnSpans } from \"../lib/columns\";\nimport { isIconImage } from \"../lib/icon-image\";\nexport { columnSpans, isColumnField, SHORT_TEXT_MAX } from \"../lib/columns\";\n\nexport { groupSummary };\n\n\n/* ── Rhythm ─────────────────────────────────────────────────────────── */\n/** Gaps per host. `stack` = between sibling fields; `group` = before a section / after one; `gridY` = rows of a column grid.\n * An inset uses the same field gap as everything else (D63: one rhythm). */\nexport const RHYTHM = {\n panel: { tabs: \"pb-4 @max-[360px]:pb-3\", stack: \"gap-4 @max-[360px]:gap-3\", field: \"pt-4 @max-[360px]:pt-3\", group: \"pt-6 @max-[360px]:pt-5\", gridY: \"gap-y-4 @max-[360px]:gap-y-3\" },\n document: { tabs: \"pb-5\", stack: \"gap-5\", field: \"pt-5\", group: \"pt-8\", gridY: \"gap-y-5\" },\n} as const;\nexport const useRhythm = () => RHYTHM[useKitEnv().variant];\n\n/* ── Depth: how many visual containers the current field sits in ────── */\nconst InsetDepth = React.createContext(0);\n/** 0 at a frame's top level and inside sections; 1 inside an inset (or an expanded array row). */\nexport const useInsetDepth = () => React.useContext(InsetDepth);\n/** Mark children as sitting inside one container (array inline rows use this so objects inside them drill). */\nexport function InsetScope({ children }: { children: React.ReactNode }) {\n const d = React.useContext(InsetDepth);\n return <InsetDepth.Provider value={d + 1}>{children}</InsetDepth.Provider>;\n}\n\n/* ── Status of everything under a set of paths (errors, warnings, peers, comments) ── */\nexport function useGroupStatus(paths: FieldPath[]) {\n const form = useForm();\n const env = useKitEnv();\n let errors = 0;\n let warnings = 0;\n const peers: KitPeer[] = [];\n let comments = 0;\n const keys = paths.map(pathKey);\n for (const p of paths) {\n const r = form?.rollup(p) ?? { errors: 0, warnings: 0 };\n errors += r.errors;\n warnings += r.warnings;\n }\n for (const [k, list] of Object.entries(env.presence)) if (keys.some((g) => keyStartsWith(k, g))) for (const p of list) if (!peers.some((x) => x.name === p.name)) peers.push(p);\n for (const [k, n] of Object.entries(env.comments)) if (keys.some((g) => keyStartsWith(k, g))) comments += n;\n return { errors, warnings, peers, comments };\n}\nexport type GroupStatus = ReturnType<typeof useGroupStatus>;\n\n/** A field that animates its height in and out when a condition shows or hides it (D45). `space` = its top spacing. */\nexport const Appear = React.forwardRef<HTMLDivElement, { children: React.ReactNode; space?: string; className?: string }>(({ children, space, className }, ref) => {\n const reduce = useReducedMotion();\n const t = { duration: reduce ? 0 : 0.2, ease: [0.22, 1, 0.36, 1] as const };\n const el = React.useRef<HTMLDivElement | null>(null);\n /* clip only while the height moves: at rest focus rings, popovers and the section edge must not be cut off */\n const clip = (on: boolean) => {\n if (el.current) el.current.style.overflow = on ? \"hidden\" : \"\";\n };\n return (\n <motion.div\n ref={(n) => {\n el.current = n;\n if (typeof ref === \"function\") ref(n);\n else if (ref) ref.current = n;\n }}\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: \"auto\", opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={t}\n onAnimationStart={() => clip(true)}\n onAnimationComplete={() => clip(false)}\n className={cn(\"min-w-0\", className)}\n >\n <div className={space}>{children}</div>\n </motion.div>\n );\n});\nAppear.displayName = \"Appear\";\n\n/** Sibling fields that appear / disappear smoothly. `gapless`: the parent draws the gaps (grid, inset). */\nexport function AnimatedFields({ fields, render, gapless, space }: { fields: FieldSchema[]; render: (f: FieldSchema) => React.ReactNode; gapless?: boolean; space?: string }) {\n const rhythm = useRhythm();\n return (\n <AnimatePresence initial={false}>\n {fields.map((f, i) => (\n <Appear key={f.name} space={gapless || i === 0 ? undefined : space ?? rhythm.field}>\n {render(f)}\n </Appear>\n ))}\n </AnimatePresence>\n );\n}\n\n/* ── Header status: issue count, peers, comments (shown while collapsed) ── */\nfunction GroupBadges({ status }: { status: GroupStatus }) {\n const { errors, warnings, peers, comments } = status;\n return (\n <>\n {errors ? (\n <Tooltip content={`${errors} ${errors === 1 ? \"issue\" : \"issues\"} to fix inside`}>\n <span role=\"img\" aria-label={`${errors} ${errors === 1 ? \"issue\" : \"issues\"} to fix`} className=\"inline-flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full bg-kit-danger-soft px-1 text-kit-2xs font-medium tabular-nums text-kit-danger-fg\">\n {errors}\n </span>\n </Tooltip>\n ) : warnings ? (\n <IssueDot errors={0} warnings={warnings} />\n ) : null}\n {comments ? (\n <Tooltip content={`${comments} open ${comments === 1 ? \"comment\" : \"comments\"} inside`}>\n <span role=\"img\" aria-label={`${comments} open ${comments === 1 ? \"comment\" : \"comments\"}`} className=\"inline-flex h-4 shrink-0 items-center gap-0.5 rounded-kit-md px-0.5 text-kit-2xs tabular-nums text-kit-fg-3\">\n <IconMessage className=\"size-3\" stroke={1.75} aria-hidden />\n {comments}\n </span>\n </Tooltip>\n ) : null}\n {peers.length ? <PeerStack peers={peers} size={16} /> : null}\n </>\n );\n}\n\n/* ── Columns (D63): one rule for every host ───────────────────────────── */\n/**\n * Sibling fields, laid out by the D63 rule: a plain animated stack, or (when `columns` and at least one pair of short\n * neighbours) a grid that turns two-up only when the form is ≥ 420px wide. Used by sections, insets and array rows.\n */\nexport function FieldRun({ fields, render, columns = true, values }: { fields: FieldSchema[]; render: (f: FieldSchema) => React.ReactNode; columns?: boolean; values?: Record<string, unknown> }) {\n const rhythm = useRhythm();\n const icons = splitIcons(fields, values ?? {});\n if (icons)\n return (\n <div className=\"flex min-w-0 flex-col\">\n {icons.before.length ? <FieldRun fields={icons.before} render={render} columns={columns} /> : null}\n <div className={icons.before.length ? rhythm.field : undefined}>\n <IconGroup fields={icons.icons} render={render} />\n </div>\n {icons.after.length ? (\n <div className={rhythm.field}>\n <FieldRun fields={icons.after} render={render} columns={columns} />\n </div>\n ) : null}\n </div>\n );\n const spans = columns ? columnSpans(fields) : fields.map(() => false);\n if (!spans.some(Boolean))\n return (\n <div className=\"flex min-w-0 flex-col\">\n <AnimatedFields fields={fields} render={render} />\n </div>\n );\n return (\n <div data-slot=\"field-columns\" className={cn(\"grid min-w-0 grid-cols-1 gap-x-3 @[420px]:grid-cols-2\", rhythm.gridY)}>\n {fields.map((f, i) => (\n <div key={f.name} className={cn(\"min-w-0\", !spans[i] && \"@[420px]:col-span-2\")}>{render(f)}</div>\n ))}\n </div>\n );\n}\n\n/* ── Icons: two or more icon images, one \"Icons\" group where the first was ── */\n/**\n * A header with eight social icons would otherwise stack eight rows between its texts. A lone icon is just its row:\n * no heading for one. `isIconImage` is the same rule the image control draws the row by.\n */\nexport function splitIcons(fields: FieldSchema[], values: Record<string, unknown>): { before: FieldSchema[]; icons: FieldSchema[]; after: FieldSchema[] } | null {\n const icons = fields.filter((f) => isIconImage(f, values[f.name]));\n if (icons.length < 2) return null;\n const at = fields.indexOf(icons[0]);\n const rest = fields.filter((f) => !icons.includes(f));\n return { before: rest.slice(0, at), icons, after: rest.slice(at) };\n}\n\nexport function IconGroup({ fields, render }: { fields: FieldSchema[]; render: (f: FieldSchema) => React.ReactNode }) {\n const id = React.useId();\n return (\n <div role=\"group\" aria-labelledby={id} data-slot=\"kit-icon-group\" className=\"flex min-w-0 flex-col gap-1.5\">\n <p id={id} className=\"text-kit-xs font-medium text-kit-fg-3\">Icons</p>\n <div className=\"flex min-w-0 flex-col gap-2\">\n {fields.map((f) => (\n <div key={f.name} className=\"min-w-0\">{render(f)}</div>\n ))}\n </div>\n </div>\n );\n}\n\n/* ── <FieldSection>: a titled set of sibling fields ─────────────────── */\nexport interface FieldSectionProps {\n title: string;\n description?: string;\n /** collapsible header (default true). false = a static heading. */\n collapsible?: boolean;\n defaultOpen?: boolean;\n /** controlled */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** one-line summary shown while collapsed (\"Top 56 · Bottom 88\"); a string list renders as neutral chips */\n summary?: React.ReactNode;\n /** roll-up shown on the header while collapsed */\n status?: Partial<GroupStatus>;\n /** hairline above (off for the first item of a frame) */\n divider?: boolean;\n /** open the section when this turns true (e.g. a publish attempt found errors inside) */\n revealWhen?: boolean;\n disabled?: boolean;\n /** extra header control, outside the toggle (rare) */\n actions?: React.ReactNode;\n /** content above the fields, inside the body (e.g. a breakpoint switcher) */\n lead?: React.ReactNode;\n columns?: 1 | 2;\n /** leading glyph before the title (dense panels: the Design tab's section icons) */\n icon?: React.ReactNode;\n /** small mark right after the title, inside the toggle (e.g. a \"changed\" dot) */\n adornment?: React.ReactNode;\n className?: string;\n /** override the body's gap (dense rows) */\n bodyClassName?: string;\n children: React.ReactNode;\n}\n\nexport function FieldSection({\n title, description, collapsible = true, defaultOpen = true, open: openProp, onOpenChange, summary, status, divider = true, revealWhen,\n disabled, actions, lead, columns, icon, adornment, className, bodyClassName, children,\n}: FieldSectionProps) {\n const rhythm = useRhythm();\n const { variant } = useKitEnv();\n const id = React.useId();\n const [inner, setInner] = React.useState(defaultOpen);\n const open = !collapsible || (openProp ?? inner);\n const setOpen = (o: boolean) => {\n if (openProp === undefined) setInner(o);\n onOpenChange?.(o);\n };\n React.useEffect(() => {\n if (revealWhen && !open) setOpen(true);\n }, [revealWhen]); // eslint-disable-line react-hooks/exhaustive-deps\n const st: GroupStatus = { errors: 0, warnings: 0, peers: [], comments: 0, ...status };\n const titleCls = cn(\"min-w-0 truncate font-semibold text-kit-fg\", variant === \"document\" ? \"text-kit-base\" : \"text-kit-sm\", disabled && \"text-kit-fg-4\");\n const body = (\n <div id={`${id}-body`} className={cn(\"flex flex-col pb-2 pt-1\", rhythm.stack, bodyClassName)}>\n {description ? <p className=\"-mt-1 text-kit-xs leading-4 text-kit-fg-3\">{description}</p> : null}\n {lead}\n {columns === 2 ? <div className={cn(\"grid grid-cols-1 gap-x-3 @[420px]:grid-cols-2\", rhythm.gridY)}>{children}</div> : children}\n </div>\n );\n return (\n <section\n role=\"group\"\n aria-labelledby={`${id}-title`}\n data-group=\"section\"\n data-state={open ? \"open\" : \"closed\"}\n className={cn(\n \"group/section relative\",\n divider && \"border-t border-kit-line pt-1\",\n /* \"which group am I in\": a quiet edge in the gutter while focus is inside an open section (no rule at rest). D52: the\n same 1px line token as every other inset line (row groups, nested lists), never a darker 2px bar. */\n \"before:pointer-events-none before:absolute before:-left-2.5 before:bottom-2 before:top-11 before:w-px before:bg-transparent before:transition-colors before:duration-200 data-[state=open]:focus-within:before:bg-kit-line\",\n /* D63: inside an inset the inset's own line already says where you are; never two parallel lines */\n \"[&:has([data-group=inset]:focus-within)]:before:!bg-transparent\",\n className,\n )}\n >\n <div className=\"flex min-h-9 items-center gap-2\">\n {collapsible ? (\n <button\n type=\"button\"\n onClick={() => !disabled && setOpen(!open)}\n aria-expanded={open}\n aria-controls={open ? `${id}-body` : undefined}\n aria-disabled={disabled || undefined}\n className={cn(\n \"group/sh -mx-2 flex h-9 min-w-0 flex-1 items-center gap-2 rounded-kit-md px-2 text-left transition-colors\",\n disabled ? \"cursor-not-allowed\" : \"hover:bg-kit-hover\",\n )}\n >\n {icon ? <span aria-hidden className=\"flex shrink-0 text-kit-fg-3 [&_svg]:size-3.5\">{icon}</span> : null}\n <span id={`${id}-title`} className={titleCls}>{title}</span>\n {adornment}\n {!open && Array.isArray(summary) ? (\n <SummaryChips chips={summary as string[]} />\n ) : !open && summary ? (\n <span className=\"min-w-0 flex-1 truncate text-right text-kit-xs text-kit-fg-3\">{summary}</span>\n ) : (\n <span className=\"flex-1\" />\n )}\n {!open ? <GroupBadges status={st} /> : null}\n <IconChevronRight aria-hidden stroke={1.5} className={cn(\"size-4 shrink-0 text-kit-fg-3 transition-transform duration-200 group-hover/sh:text-kit-fg-2\", open && \"rotate-90\")} />\n </button>\n ) : (\n <h3 id={`${id}-title`} className={cn(titleCls, \"flex-1\")}>{title}</h3>\n )}\n {actions}\n </div>\n <KitSectionTitle.Provider value={title}>{collapsible ? <SectionBody open={open}>{body}</SectionBody> : body}</KitSectionTitle.Provider>\n </section>\n );\n}\n\n/** A collapsed section's summary as neutral chips (the schema editor's field settings): 2 chips, then \"+N\" with the rest\n * in its tooltip; none = a quiet \"Nothing set\". Colour stays for type and status, so these are --constraint chips. */\nfunction SummaryChips({ chips }: { chips: string[] }) {\n if (!chips.length) return <span className=\"min-w-0 flex-1 truncate text-right text-kit-xs text-kit-fg-3\">Nothing set</span>;\n const shown = chips.slice(0, 2);\n const rest = chips.slice(2);\n const chip = \"inline-flex h-5 min-w-0 shrink items-center rounded-[4px] bg-kit-constraint-bg px-1.5 text-kit-2xs font-medium text-kit-constraint-fg\";\n return (\n <span className=\"flex min-w-0 flex-1 items-center justify-end gap-1\">\n {shown.map((c) => (\n <span key={c} className={chip}>\n <span className=\"truncate\">{c}</span>\n </span>\n ))}\n {rest.length ? (\n <Tooltip content={rest.join(\" · \")}>\n <span className={cn(chip, \"shrink-0 tabular-nums\")}>+{rest.length}</span>\n </Tooltip>\n ) : null}\n </span>\n );\n}\n\n/**\n * The open / close motion of a section (D52: no jitter). Height only, 200ms, the same curve as conditional fields. The\n * body is clipped ONLY while the height moves, so focus rings, the gutter edge and popovers are never cut at rest and\n * nothing snaps when the clip comes off; no opacity flash on the content; instant with reduced motion.\n */\nfunction SectionBody({ open, children }: { open: boolean; children: React.ReactNode }) {\n const reduce = useReducedMotion();\n const el = React.useRef<HTMLDivElement | null>(null);\n const clip = (on: boolean) => {\n if (el.current) el.current.style.overflow = on ? \"hidden\" : \"\";\n };\n return (\n <AnimatePresence initial={false}>\n {open ? (\n <motion.div\n ref={el}\n initial={{ height: 0 }}\n animate={{ height: \"auto\" }}\n exit={{ height: 0 }}\n transition={{ duration: reduce ? 0 : 0.2, ease: [0.22, 1, 0.36, 1] }}\n onAnimationStart={() => clip(true)}\n onAnimationComplete={() => clip(false)}\n className=\"min-w-0\"\n >\n {children}\n </motion.div>\n ) : null}\n </AnimatePresence>\n );\n}\n\n/* ── <FieldInset>: a small object, inline ───────────────────────────── */\n/**\n * D63: the ONE way to show \"these fields belong together\" inside a form. The object's label sits above (the field shell);\n * the children sit behind a single 1px --line inset line, `ml-1.5 pl-3`. No tint, no ring, no radius, no padding box.\n * Children keep the form's own field gap. Short neighbours pair up on wide forms through `FieldRun`.\n */\nexport function FieldInset({\n children, labelledBy, label, className,\n}: { children: React.ReactNode; labelledBy?: string; label?: string; className?: string }) {\n return (\n <InsetScope>\n <div\n role=\"group\"\n aria-labelledby={labelledBy}\n aria-label={labelledBy ? undefined : label}\n data-group=\"inset\"\n className={cn(INSET_LINE, \"flex flex-col\", className)}\n >\n {children}\n </div>\n </InsetScope>\n );\n}\n/** The inset line every nested group uses (inline objects, expanded array rows). */\nexport const INSET_LINE = \"ml-1.5 min-w-0 border-l border-kit-line pl-3\";\n\n/* ── <FieldUnit>: one compound control (button = label + link, image + alt) ── */\n/**\n * Reads as ONE input: the field border, radius 6, the input focus treatment on the whole unit; rows inside are split by a\n * hairline and have no borders of their own. Use for values that only make sense together (founder rule: a button's\n * label and link are one unit).\n */\nexport const FieldUnit = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & { invalid?: boolean; disabled?: boolean }>(\n ({ invalid, disabled, className, children, ...rest }, ref) => (\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"field-unit\"\n data-invalid={invalid || undefined}\n aria-disabled={disabled || undefined}\n {...rest}\n className={cn(\n \"flex min-w-0 flex-col divide-y divide-kit-line-subtle rounded-kit-md border border-kit-field-border bg-kit-field-bg shadow-kit-field transition-[border-color,box-shadow] duration-150\",\n \"hover:border-kit-field-border-hover focus-within:border-kit-field-border-focus focus-within:shadow-kit-ring-field\",\n \"[&>*:first-child]:rounded-t-[5px] [&>*:last-child]:rounded-b-[5px]\",\n invalid && \"border-[var(--kit-field-invalid)] hover:border-[var(--kit-field-invalid)]\",\n disabled && \"pointer-events-none bg-kit-subtle opacity-60\",\n className,\n )}\n >\n {children}\n </div>\n ),\n);\nFieldUnit.displayName = \"FieldUnit\";\n\n/** One row of a unit: 36px, 8px side padding, no border (the unit draws the hairline between rows). */\nexport function FieldUnitRow({ className, children, ...rest }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div {...rest} className={cn(\"flex min-h-9 min-w-0 items-center gap-2 px-1\", className)}>\n {children}\n </div>\n );\n}\n\n/* ── Breakpoints: one group, one switcher ───────────────────────────── */\nconst BREAKPOINT_NAMES = [\"desktop\", \"laptop\", \"tablet\", \"mobile\", \"phone\"] as const;\nexport const isBreakpointName = (n: string) => (BREAKPOINT_NAMES as readonly string[]).includes(n.toLowerCase());\nconst BP_ICON: Record<string, React.ComponentType<{ className?: string; stroke?: number }>> = {\n desktop: IconDeviceDesktop, laptop: IconDeviceLaptop, tablet: IconDeviceTablet, mobile: IconDeviceMobile, phone: IconDeviceMobile,\n};\n/** An object field \"differs\" from the base breakpoint when it has an inherit switch that is off, or (without one) any value. */\nfunction overrides(f: FieldSchema, v: unknown): boolean {\n if (!isObj(v)) return false;\n const inherit = (f.fields ?? []).find((x) => x.type === \"boolean\" && /^(inherit|same|sameAs|useDesktop|inheritDesktop)/i.test(x.name));\n if (inherit) return v[inherit.name] === false;\n return (f.fields ?? []).some((x) => !isEmptyValue(v[x.name]));\n}\n\nexport type RenderField = (field: FieldSchema, path: FieldPath, parent: Record<string, unknown>) => React.ReactNode;\n\n/**\n * Per-screen-size settings as ONE group: the section header, then a segmented switcher (Desktop · Tablet · Phone) with a\n * dot on every size that has its own values; only the chosen size's fields show. Replaces three stacked groups.\n */\nexport function BreakpointGroup({\n set, members, basePath, memoryKey, divider, renderField,\n}: {\n set: Fieldset;\n members: FieldSchema[];\n basePath: FieldPath;\n memoryKey: string;\n divider?: boolean;\n renderField: RenderField;\n}) {\n const form = useForm()!;\n const rhythm = useRhythm();\n const [bp, setBp] = React.useState<string>(() => (form.memory.get(`${memoryKey}:bp`) as string | undefined) ?? members[0].name);\n const active = members.find((m) => m.name === bp) ?? members[0];\n const select = (n: string) => {\n setBp(n);\n form.memory.set(`${memoryKey}:bp`, n);\n };\n const [open, setOpen] = React.useState<boolean>(() => (form.memory.get(memoryKey) as boolean | undefined) ?? !set.collapsed);\n const status = useGroupStatus(members.map((m) => [...basePath, m.name]));\n const valueOf = (m: FieldSchema) => form.getAt([...basePath, m.name]);\n const differing = members.slice(1).filter((m) => overrides(m, valueOf(m)));\n const summary = differing.length ? `Own settings on ${differing.map((m) => m.title.toLowerCase()).join(\" and \")}` : `Same on every screen`;\n const activeValue = valueOf(active);\n const obj = isObj(activeValue) ? activeValue : {};\n const cc = condCtx(form, [...basePath, active.name]);\n const fields = (active.fields ?? []).filter((f) => !isHidden(f, obj, cc));\n const id = React.useId();\n const compactBp = members.length >= 4 && members.every((m) => BP_ICON[m.name.toLowerCase()] || m.icon);\n return (\n <FieldSection\n title={set.title}\n description={set.description}\n collapsible={set.collapsible !== false}\n open={open}\n onOpenChange={(o) => {\n setOpen(o);\n form.memory.set(memoryKey, o);\n }}\n summary={summary}\n status={status}\n divider={divider}\n revealWhen={form.showAllErrors && status.errors > 0}\n lead={\n <div className=\"flex flex-col gap-1.5\">\n {/* D46: up to three sizes show their names; four or more (desktop · laptop · tablet · phone) become a device\n switcher: the chosen size keeps its name, the others collapse to icons with a tooltip. Status dots sit on the icon. */}\n <Segmented\n aria-label={`${set.title}: screen size`}\n size=\"sm\"\n value={active.name}\n onChange={select}\n collapseInactive={compactBp}\n className=\"w-full [&>button]:flex-1\"\n items={members.map((m, i) => {\n const Icon = BP_ICON[m.name.toLowerCase()];\n const own = i > 0 && differing.includes(m);\n const errs = form.rollup([...basePath, m.name]).errors;\n const dot = errs ? <span aria-hidden className=\"size-1.5 rounded-full bg-kit-danger\" /> : own ? <span aria-hidden className=\"size-1.5 rounded-full bg-kit-accent\" /> : null;\n const sr = errs ? \", has issues\" : own ? \", has its own settings\" : \"\";\n const glyph = Icon ? <Icon stroke={1.5} /> : m.icon ? <KitIcon name={m.icon} /> : undefined;\n if (compactBp)\n return {\n value: m.name,\n name: `${m.title}${sr}`,\n tooltip: m.title,\n icon: (\n <span className=\"relative inline-flex\">\n {glyph}\n {dot ? <span className=\"absolute -right-1 -top-0.5 inline-flex\">{dot}</span> : null}\n </span>\n ),\n label: <span>{m.title}{sr ? <span className=\"sr-only\">{sr}</span> : null}</span>,\n };\n return {\n value: m.name,\n icon: glyph,\n label: (\n <span className=\"inline-flex items-center gap-1\">\n {m.title}\n {dot}\n {sr ? <span className=\"sr-only\">{sr}</span> : null}\n </span>\n ),\n };\n })}\n />\n {active.description ? <p className=\"text-kit-xs leading-4 text-kit-fg-3\">{active.title} · {active.description}</p> : null}\n </div>\n }\n >\n <div role=\"group\" aria-labelledby={`${id}-bp`} className=\"flex flex-col\">\n <span id={`${id}-bp`} className=\"sr-only\">{active.title} settings</span>\n <AnimatePresence initial={false} key={active.name}>\n {fields.map((f, i) => (\n <Appear key={f.name} space={i === 0 ? undefined : rhythm.field}>{renderField(f, [...basePath, active.name, f.name], obj)}</Appear>\n ))}\n </AnimatePresence>\n </div>\n </FieldSection>\n );\n}\n\n/* ══ Frame layout (V2 engine/field-list.tsx): group tabs → fieldsets → fields ══════════════════════════════════════ */\ntype ArrangedItem = { kind: \"field\"; field: FieldSchema } | { kind: \"set\"; set: Fieldset; fields: FieldSchema[] };\n/** What a frame renders: the arranged fields, with two or more loose icons gathered into one (`gatherIcons`). */\ntype Item = ArrangedItem | { kind: \"icons\"; fields: FieldSchema[] };\n\nconst ADVANCED: Fieldset = { name: \"__advanced\", title: \"Advanced\", description: \"Rarely-changed and developer settings\", collapsed: true };\nconst BREAKPOINTS: Fieldset = { name: \"__breakpoints\", title: \"Screen sizes\", layout: \"breakpoints\" };\n\n/** Fields in schema order, with each fieldset (and the auto \"Advanced\" / \"Screen sizes\" sets) placed at its first member. */\nexport function arrangeFields(fields: FieldSchema[], fieldsets: Fieldset[] = []): ArrangedItem[] {\n const items: ArrangedItem[] = [];\n const sets = new Map<string, Extract<ArrangedItem, { kind: \"set\" }>>();\n const adv: FieldSchema[] = [];\n /* D45: two or more sibling objects named for screen sizes (desktop · tablet · phone) become ONE breakpoint group */\n const bpCount = fields.filter((f) => !f.fieldset && !f.advanced && f.type === \"object\" && isBreakpointName(f.name)).length;\n for (const f of fields) {\n const auto = !f.fieldset && !f.advanced && bpCount >= 2 && f.type === \"object\" && isBreakpointName(f.name);\n const setName = f.fieldset ?? (auto ? BREAKPOINTS.name : undefined);\n if (setName) {\n let s = sets.get(setName);\n if (!s) {\n s = { kind: \"set\", set: auto ? BREAKPOINTS : fieldsets.find((x) => x.name === setName) ?? { name: setName, title: setName }, fields: [] };\n sets.set(setName, s);\n items.push(s);\n }\n s.fields.push(f);\n } else if (f.advanced) adv.push(f);\n else items.push({ kind: \"field\", field: f });\n }\n if (adv.length) items.push({ kind: \"set\", set: ADVANCED, fields: adv });\n return items;\n}\n\n/** The frame's loose icon fields (not those inside a fieldset) as one \"Icons\" item where the first was. @see splitIcons */\nfunction gatherIcons(items: ArrangedItem[], obj: Record<string, unknown>): Item[] {\n const loose = items.flatMap((it) => (it.kind === \"field\" ? [it.field] : []));\n const icons = loose.filter((f) => isIconImage(f, obj[f.name]));\n if (icons.length < 2) return items;\n const out: Item[] = [];\n for (const it of items) {\n if (it.kind !== \"field\" || !icons.includes(it.field)) out.push(it);\n else if (it.field === icons[0]) out.push({ kind: \"icons\", fields: icons });\n }\n return out;\n}\n\n/** The group a field without `group` belongs to: the one marked `default`, else the first. */\nexport const defaultGroup = (groups?: FieldGroup[]) => groups?.find((g) => g.default) ?? groups?.[0];\n\n/**\n * FieldList — lays out one frame's fields (CPO D45 grouping): group TABS (with error dots) at the top of the frame only,\n * FIELDSETS as <FieldSection> (hairline + 36px header, no box, collapsed = one-line summary), breakpoint objects as ONE\n * <BreakpointGroup> with a switcher, an auto \"Advanced\" section for `advanced` fields, and `hidden` conditions that\n * appear / disappear with a height animation.\n * Rhythm: label→control 6 · fields 16 · groups 24 (dense ≤360px: 12 · 20; document: 20 · 32).\n */\nexport function FieldList({\n fields,\n fieldsets,\n groups,\n basePath,\n memoryKey,\n renderField,\n}: {\n fields: FieldSchema[];\n fieldsets?: Fieldset[];\n groups?: FieldGroup[];\n basePath: FieldPath;\n /** where to remember the selected tab / open fieldsets */\n memoryKey: string;\n /** draws one field (the engine passes KitField) */\n renderField: RenderField;\n}) {\n const form = useForm()!;\n const env = useKitEnv();\n const raw = form.getAt(basePath);\n const obj = isObj(raw) ? raw : {};\n const cc = condCtx(form, basePath);\n const visible = fields.filter((f) => !isHidden(f, obj, cc));\n\n const usable = (groups ?? []).filter((g) => visible.some((f) => (f.group ?? defaultGroup(groups)?.name) === g.name));\n const tabs = usable.length >= 2;\n const allTab = tabs && env.variant === \"document\";\n const memTab = form.memory.get(`${memoryKey}:tab`) as string | undefined;\n const [tab, setTab] = React.useState<string>(memTab ?? (allTab ? \"__all\" : defaultGroup(usable)?.name ?? \"\"));\n const select = (t: string) => {\n setTab(t);\n form.memory.set(`${memoryKey}:tab`, t);\n };\n const validTabs = [...(allTab ? [\"__all\"] : []), ...usable.map((g) => g.name)];\n const active = validTabs.includes(tab) ? tab : validTabs[0] ?? \"\";\n const inTab = (f: FieldSchema) => !tabs || active === \"__all\" || (f.group ?? defaultGroup(groups)?.name) === active;\n const groupErrors = (g: string) =>\n visible.filter((f) => (f.group ?? defaultGroup(groups)?.name) === g).reduce((n, f) => n + form.rollup([...basePath, f.name]).errors, 0);\n\n const items = gatherIcons(arrangeFields(visible.filter(inTab), fieldsets), obj);\n const rhythm = useRhythm();\n /* D61 Show only changes: runs of unchanged fields fold into one quiet line (\"4 unchanged fields\") that opens in place */\n const review = env.review;\n const [openRuns, setOpenRuns] = React.useState<Set<string>>(() => new Set());\n const itemChanged = (it: Item) =>\n !review || (it.kind === \"field\" ? review.count([...basePath, it.field.name]) > 0 : it.fields.some((f) => review.count([...basePath, f.name]) > 0));\n type Seg = { kind: \"item\"; it: Item } | { kind: \"fold\"; key: string; items: Item[]; n: number };\n const segs: Seg[] = [];\n for (const it of items) {\n if (!review?.onlyChanges || itemChanged(it)) {\n segs.push({ kind: \"item\", it });\n continue;\n }\n const last = segs[segs.length - 1];\n const n = it.kind === \"field\" ? 1 : it.fields.length;\n if (last?.kind === \"fold\") {\n last.items.push(it);\n last.n += n;\n } else segs.push({ kind: \"fold\", key: `fold:${it.kind === \"field\" ? it.field.name : it.kind === \"set\" ? it.set.name : \"icons\"}`, items: [it], n });\n }\n /* what renders, in order: items, and one fold line per unchanged run (its items follow it while it is open) */\n const rows: ({ kind: \"item\"; it: Item } | Extract<Seg, { kind: \"fold\" }>)[] = segs.flatMap((sg) =>\n sg.kind === \"item\" ? [sg] : [sg, ...(openRuns.has(sg.key) ? sg.items.map((it) => ({ kind: \"item\" as const, it })) : [])],\n );\n const toggleRun = (key: string) =>\n setOpenRuns((o) => {\n const n = new Set(o);\n if (n.has(key)) n.delete(key);\n else n.add(key);\n return n;\n });\n return (\n <div className=\"flex flex-col\">\n {tabs ? (\n <div className={rhythm.tabs}>\n <GroupTabs\n id={memoryKey}\n value={active}\n onChange={select}\n items={[...(allTab ? [{ name: \"__all\", title: \"All fields\" }] : []), ...usable].map((g) => ({ value: g.name, label: g.title, icon: \"icon\" in g ? g.icon : undefined, errors: g.name === \"__all\" ? 0 : groupErrors(g.name) }))}\n />\n </div>\n ) : null}\n {/* keyed by tab: switching tabs swaps the list at once; only conditions inside a tab animate */}\n <AnimatePresence initial={false} key={active || \"all\"}>\n {rows.map((row, i) => {\n if (row.kind === \"fold\") {\n const open = openRuns.has(row.key);\n const label = `${row.n} unchanged ${row.n === 1 ? \"field\" : \"fields\"}`;\n return (\n <Appear key={row.key} space={i === 0 ? undefined : rhythm.field}>\n <button type=\"button\" aria-expanded={open} onClick={() => toggleRun(row.key)} className=\"flex w-full items-center gap-2 rounded-kit-md text-kit-xs text-kit-fg-3 outline-none hover:text-kit-fg-2 focus-visible:text-kit-fg\">\n <span aria-hidden className=\"h-px flex-1 bg-kit-line-subtle\" />\n {open ? `Hide ${label}` : label}\n <span aria-hidden className=\"h-px flex-1 bg-kit-line-subtle\" />\n </button>\n </Appear>\n );\n }\n const it = row.it;\n const prev = rows[i - 1];\n /* spacing: 16 between fields; 24 before a section that follows a field and after a section; sections that follow\n sections sit flush (their hairline is the separator) */\n const space = i === 0 ? undefined : it.kind === \"set\" ? (prev?.kind === \"item\" && prev.it.kind === \"set\" ? undefined : rhythm.group) : rhythm.field;\n return it.kind === \"field\" ? (\n <Appear key={it.field.name} space={space}>\n {renderField(it.field, [...basePath, it.field.name], obj)}\n </Appear>\n ) : it.kind === \"icons\" ? (\n <Appear key=\"icons\" space={space}>\n <IconGroup fields={it.fields} render={(f) => renderField(f, [...basePath, f.name], obj)} />\n </Appear>\n ) : (\n <Appear key={`set:${it.set.name}`} space={space}>\n <FieldsetSection set={it.set} fields={it.fields} basePath={basePath} obj={obj} memoryKey={`${memoryKey}:fs:${it.set.name}`} divider={i > 0} renderField={renderField} />\n </Appear>\n );\n })}\n </AnimatePresence>\n {items.length === 0 ? <p className=\"py-6 text-center text-kit-sm text-kit-fg-3\">No fields here yet.</p> : null}\n </div>\n );\n}\n\n/* ── Group tabs (underline, with error dots) ───────────────────────── */\nexport interface GroupTabItem {\n value: string;\n label: string;\n icon?: string;\n errors: number;\n}\nconst MORE_W = 72;\n/** Tabs that don't fit the width fold into a \"More\" menu, never clipped (V2 HEAD c896beb field-list.tsx GroupTabs). The\n * active tab always shows its label: when it sits in the fold it takes the last visible slot. */\nexport function GroupTabs({ id, value, onChange, items }: { id: string; value: string; onChange: (v: string) => void; items: GroupTabItem[] }) {\n const { variant } = useKitEnv();\n /* `id` is the memoryKey (\"root\" in every form): a NestedForm with groups in a dialog would share the panel's\n underline layoutId and animate across forms. useId scopes it to this tab strip (kit deviation, no DOM change). */\n const uid = React.useId();\n const gap = variant === \"document\" ? 20 : 16;\n const wrap = React.useRef<HTMLDivElement>(null);\n const measure = React.useRef<HTMLDivElement>(null);\n const [fit, setFit] = React.useState(items.length);\n const sig = items.map((t) => `${t.value}:${t.label}:${t.icon ?? \"\"}`).join(\"|\");\n React.useLayoutEffect(() => {\n const w = wrap.current;\n const m = measure.current;\n if (!w || !m) return;\n const run = () => {\n const widths = Array.from(m.querySelectorAll<HTMLElement>(\"[data-seg-value]\")).map((el) => el.offsetWidth);\n const room = w.clientWidth;\n if (!room || !widths.length) return;\n const total = widths.reduce((a, b) => a + b, 0) + gap * (widths.length - 1);\n if (total <= room) return setFit(widths.length);\n let used = 0;\n let k = 0;\n for (; k < widths.length; k++) {\n const next = used + (k ? gap : 0) + widths[k];\n if (next + gap + MORE_W > room) break;\n used = next;\n }\n setFit(Math.max(1, k));\n };\n run();\n if (typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver(run);\n ro.observe(w);\n return () => ro.disconnect();\n }, [sig, gap]);\n\n const toTab = (t: GroupTabItem) => ({\n value: t.value,\n icon: t.icon ? <KitIcon name={t.icon} className=\"size-3.5\" /> : undefined,\n label: (\n <span className=\"inline-flex items-center gap-1.5\" aria-label={t.errors ? `${t.label}, has errors` : undefined}>\n {t.label}\n {t.errors ? <span className=\"size-1.5 rounded-full bg-kit-danger\" aria-hidden /> : null}\n </span>\n ),\n });\n let shown = items.slice(0, fit);\n if (fit < items.length && !shown.some((t) => t.value === value)) {\n const act = items.find((t) => t.value === value);\n if (act) shown = [...shown.slice(0, Math.max(0, fit - 1)), act];\n }\n const rest = items.filter((t) => !shown.includes(t));\n return (\n <div ref={wrap} className=\"relative -mt-1 flex min-w-0 items-stretch\">\n {/* D12/D43: text tabs, 14px in every host, the active one in fg with the 1.5px underline — never a 12px whisper */}\n <Segmented\n variant=\"tabs\"\n bordered\n aria-label=\"Field groups\"\n size=\"md\"\n layoutId={`kit-tab-${uid}-${id}`}\n value={value}\n onChange={onChange}\n className={cn(\"min-w-0 flex-1\", variant === \"document\" ? \"gap-5\" : \"gap-4\")}\n items={shown.map(toTab)}\n />\n {rest.length ? (\n <span className=\"flex shrink-0 items-center border-b border-kit-line pl-2\">\n <Menu>\n <MenuTrigger\n render={\n <button type=\"button\" className=\"inline-flex h-8 items-center gap-1 text-kit-sm font-medium text-kit-fg-3 transition-colors hover:text-kit-fg-2 data-[popup-open]:text-kit-fg\" />\n }\n >\n More\n {rest.some((t) => t.errors) ? <span className=\"size-1.5 rounded-full bg-kit-danger\" aria-label=\"has errors\" /> : null}\n <IconChevronDown className=\"size-3.5\" stroke={1.5} aria-hidden />\n </MenuTrigger>\n <MenuContent align=\"end\">\n {rest.map((t) => (\n <MenuItem key={t.value} icon={t.icon ? <KitIcon name={t.icon} className=\"size-3.5\" /> : undefined} onClick={() => onChange(t.value)}>\n {t.label}\n {t.errors ? <span className=\"ml-1.5 inline-block size-1.5 rounded-full bg-kit-danger\" aria-label=\"has errors\" /> : null}\n </MenuItem>\n ))}\n </MenuContent>\n </Menu>\n {/* a host can still open a folded tab by its value (the schema preview jumps to a field in another tab) */}\n <span hidden>\n {rest.map((t) => (\n <button key={t.value} type=\"button\" tabIndex={-1} data-seg-value={t.value} onClick={() => onChange(t.value)} />\n ))}\n </span>\n </span>\n ) : null}\n {/* the measuring row: every tab at its natural width, never seen, never focused */}\n <div ref={measure} aria-hidden inert className=\"pointer-events-none invisible absolute left-0 top-0 flex whitespace-nowrap\">\n <Segmented variant=\"tabs\" size=\"md\" value=\"__measure\" onChange={() => {}} className={variant === \"document\" ? \"gap-5\" : \"gap-4\"} items={items.map(toTab)} />\n </div>\n </div>\n );\n}\n\n/* ── Fieldset → <FieldSection> (both hosts; the document only scales the rhythm) ── */\nexport function FieldsetSection({\n set, fields, basePath, obj, memoryKey, divider, renderField,\n}: { set: Fieldset; fields: FieldSchema[]; basePath: FieldPath; obj: Record<string, unknown>; memoryKey: string; divider: boolean; renderField: RenderField }) {\n const form = useForm()!;\n const env = useKitEnv();\n const breakpoints = set.layout === \"breakpoints\" && fields.length >= 2 && fields.every((f) => f.type === \"object\");\n const remembered = form.memory.get(memoryKey) as boolean | undefined;\n const [open, setOpen] = React.useState(remembered ?? !set.collapsed);\n const status = useGroupStatus(fields.map((f) => [...basePath, f.name]));\n if (breakpoints) return <BreakpointGroup set={set} members={fields} basePath={basePath} memoryKey={memoryKey} divider={divider} renderField={renderField} />;\n return (\n <FieldSection\n title={set.title}\n description={set.description}\n collapsible={set.collapsible !== false}\n open={open}\n onOpenChange={(o) => {\n setOpen(o);\n form.memory.set(memoryKey, o);\n }}\n summary={env.sectionSummary?.(set, obj) ?? (groupSummary(fields, obj) || \"Nothing set yet\")}\n status={status}\n divider={divider}\n revealWhen={form.showAllErrors && status.errors > 0}\n >\n {/* D63: `columns: 2` pairs short neighbours on a wide form only; long fields always take the full row */}\n <FieldRun fields={fields} columns={set.columns === 2} render={(f) => renderField(f, [...basePath, f.name], obj)} />\n </FieldSection>\n );\n}\n/** D41: a short field shares a 2-column row; a scale, slider, cards or radio select needs the full row. */\nexport const isShort = (f: FieldSchema) => [\"string\", \"number\", \"select\", \"color\", \"icon\", \"boolean\", \"date\", \"slug\", \"email\", \"url\", \"rating\"].includes(f.type) && !(f.type === \"select\" && (f.layout === \"cards\" || f.layout === \"radio\")) && !(f.type === \"number\" && (f.scale || f.layout === \"slider\"));\n"],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * ITEM LIST — arrays of one line each (CPO D47): feature lists, bullets, "what's included", key points
3
+ * (V2 HEAD 9829bf1 kit/engine/item-list.tsx).
4
+ * Each item is a row you type into directly: grip · auto-growing input (founder rule: the whole text shows) · ⋯.
5
+ * No drill frame, no expand. Keyboard: Enter adds the next item, Backspace on an empty row removes it, a multi-line
6
+ * paste becomes several items, ⌥↑ / ⌥↓ move the row, ↑ / ↓ at the edges of the text step between rows. None of these
7
+ * keys are printed on screen (D44); they live in aria labels and the ⋯ menu.
8
+ *
9
+ * Works for arrays of primitives (string / text / url / email / number) AND arrays of one-field objects
10
+ * (`[{ _key, text }]`), which read and write that one field and keep their `_key`.
11
+ *
12
+ * Kit deviation: V2 sorts with @dnd-kit, which is not on the kit's package allow-list. `useDragReorder` below is the
13
+ * kit's sortable: pointer drag on the grip (4px activation, siblings slide out of the way like dnd-kit's vertical
14
+ * strategy), and dnd-kit's KeyboardSensor + sortableKeyboardCoordinates on a focused grip: Space / Enter picks the row
15
+ * up, the arrow keys move it (siblings slide, nothing is written yet), Space / Enter / Tab drops it as ONE reorder
16
+ * (one undo step), Escape puts it back. `sort.a11y` is dnd-kit's accessibility markup (hidden instructions + a visually
17
+ * hidden `role="status"` live region), rendered where V2's DndContext rendered it: right after the sortable children.
18
+ */
19
+ import * as React from "react";
20
+ import type { FieldPath, FieldSchema } from "../schema/types";
21
+ export type ItemKind = "text" | "number" | "url" | "email";
22
+ export interface ItemListAdapter {
23
+ kind: ItemKind;
24
+ /** the text shown in the row */
25
+ read: (item: unknown) => string;
26
+ /** a new list item holding `value` (objects keep `prev`'s other keys and `_key`) */
27
+ write: (value: unknown, prev?: unknown) => unknown;
28
+ /** the stable key of an item, when it carries one (`_key` on objects) */
29
+ keyOf?: (item: unknown) => string | undefined;
30
+ /** the path of the editable value inside item `i` (canvas anchoring, issues) */
31
+ valuePath: (i: number) => FieldPath;
32
+ placeholder?: string;
33
+ }
34
+ /** dnd-kit's arrayMove, for callers that reorder lists. */
35
+ export declare const arrayMove: <T>(list: T[], from: number, to: number) => T[];
36
+ /**
37
+ * Sortable rows by id. `register(id)` goes on the element that moves, `handle(id)` on its grip. Pointer: drag past
38
+ * `distance` px to pick up; the row follows the pointer, siblings slide (list axis by one row, grid into the
39
+ * neighbour's rect), the drop commits ONE reorder.
40
+ * Keyboard on the grip (dnd-kit KeyboardSensor): Space / Enter picks up; ↑ / ↓ (← / → too in a grid, where ↑ / ↓ jump
41
+ * a row of tiles) move it one slot; Space / Enter / Tab drops it as ONE reorder; Escape (or leaving the grip) cancels
42
+ * with nothing written. Focus stays on the grip.
43
+ */
44
+ export declare function useDragReorder(ids: string[], onReorder: (from: number, to: number) => void, { axis, disabled, distance, rest, }?: {
45
+ axis?: "y" | "grid";
46
+ disabled?: boolean;
47
+ distance?: number;
48
+ /** the row style at rest: dnd-kit's disabledTransition (V2 object rows, chips), or none (V2 item-list rows) */
49
+ rest?: "dnd" | "none";
50
+ }): {
51
+ register: (id: string) => (el: HTMLElement | null) => void;
52
+ handle: (id: string) => {
53
+ ref: (el: HTMLElement | null) => void;
54
+ onPointerDown: (e: React.PointerEvent) => void;
55
+ onKeyDown: (e: React.KeyboardEvent) => void;
56
+ onBlur: () => void;
57
+ role: string;
58
+ "aria-pressed": boolean | undefined;
59
+ "aria-roledescription": string;
60
+ "aria-describedby": string;
61
+ "data-drag-handle": string;
62
+ };
63
+ style: (id: string) => React.CSSProperties | undefined;
64
+ active: string | null;
65
+ over: string | null;
66
+ a11y: import("react/jsx-runtime").JSX.Element | null;
67
+ };
68
+ /**
69
+ * One announcer for several sortable lists, as V2 has where ONE DndContext wraps them (a table's row groups): the
70
+ * lists under `SharedSortProvider value={value}` describe their grips with its instructions and announce into its live region, and `a11y`
71
+ * renders once where V2's DndContext rendered it (after its children).
72
+ */
73
+ export declare function useSharedSort(): {
74
+ value: {
75
+ id: string;
76
+ announce: React.Dispatch<React.SetStateAction<string>>;
77
+ };
78
+ a11y: import("react/jsx-runtime").JSX.Element;
79
+ };
80
+ export declare const SharedSortProvider: React.Provider<{
81
+ id: string;
82
+ announce: (message: string) => void;
83
+ } | null>;
84
+ export declare function ItemList({ field, path, list, readOnly, adapter, inputId, }: {
85
+ field: FieldSchema;
86
+ path: FieldPath;
87
+ list: unknown[];
88
+ readOnly: boolean;
89
+ adapter: ItemListAdapter;
90
+ /** the field label's `htmlFor` lands on the first row */
91
+ inputId?: string;
92
+ }): import("react/jsx-runtime").JSX.Element;
93
+ /**
94
+ * The grip slot of a list whose order the site's code sets (identity rule 36): V2 content/editor/page-sections.tsx:155,
95
+ * a lock where the grip was, not interactive.
96
+ */
97
+ export declare function OrderLockSlot({ className }: {
98
+ className?: string;
99
+ }): import("react/jsx-runtime").JSX.Element;