@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,1024 @@
1
+ import { cn } from "../../lib/cn.js";
2
+ import { useKitServices } from "../../context.js";
3
+ import { Button, IconButton } from "../../ui/button.js";
4
+ import { Menu, MenuContent, MenuItem, MenuSeparator, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, Tooltip } from "../../ui/overlay.js";
5
+ import { eventKey } from "../../lib/key-event.js";
6
+ import { useCatalogComponents } from "./catalog.js";
7
+ import { ComponentPanel, closeComponentPanel, openComponentPanel, useComponentPanel } from "./component-panel.js";
8
+ import * as React from "react";
9
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ import { IconAdjustmentsHorizontal, IconAlertTriangle, IconArrowBarToDown, IconArrowBarToUp, IconArrowUpRight, IconCheck, IconComponents, IconCopy, IconDots, IconGripVertical, IconLayoutNavbarCollapse, IconLayoutNavbarExpand, IconLink, IconRefresh, IconReplace, IconRestore, IconTrash, IconUnlink } from "@tabler/icons-react";
11
+ //#region src/controls/rich-text/component-card.tsx
12
+ /**
13
+ * The embedded component card (V2 features/blocks/instance-card.tsx + instance-ui.tsx StateChip / MissingNote / dialogs),
14
+ * drawn when the host can look the component up (KitServices.useComponentInfo, component-services.ts):
15
+ *
16
+ * ┌ [icon] Inline CTA 🔗 2 places · ● Edited here ⋯ ┐ 36px strip
17
+ * ├ ⚠ The original "Product card" was deleted. … [Keep as a separate copy] [Remove] ┤ missing only
18
+ * │ the component itself, drawn live with this place's values (KitServices.ComponentPreview), else │
19
+ * │ its snapshot where this place shows exactly that, else its fields; at most 240px, faded │
20
+ * └──────────────────────────────────────────────────────────────────────────────┘
21
+ *
22
+ * Every state comes from the lookup or the stored copy: "Missing component" only when the library says there is no
23
+ * such component, the count only when the host measured it, "Edited here" only for overrides of fields the component
24
+ * has, "Detached" for a separate copy (V2 instances.ts `detached`), and "Shared version changed" only when the
25
+ * component's current version (`info.publishedAt`) differs from the one the copy was taken from.
26
+ *
27
+ * A separate copy is made through the host (`copyComponent`, which answers what readers see now) and written as ONE
28
+ * undo step (V2 detachNow: "Make a separate copy"); "Use shared version again" (V2 RelinkDialog) keeps this place's
29
+ * edits as overrides or drops them, also one step. A host without `copyComponent` offers neither.
30
+ *
31
+ * Deviation from V2: V2 shows "Shared version changed" on a LINKED instance after a breaking release (instances.ts
32
+ * `pending`). A linked instance here follows every publish of its component, so there is nothing to review; the
33
+ * notice is drawn on a separate copy instead, whose source moved on, and it opens "Use shared version again".
34
+ */
35
+ /** V2 NARROW: at or under this card width the scope chip shows its icon only. */
36
+ var NARROW = 480;
37
+ /** V2 PREVIEW_CAP: the preview at rest is at most this tall, faded when its content is taller. */
38
+ var PREVIEW_H = 240;
39
+ var placesShort = (n) => `${n} ${n === 1 ? "place" : "places"}`;
40
+ function useWidth(ref) {
41
+ const [w, setW] = React.useState(0);
42
+ React.useLayoutEffect(() => {
43
+ const el = ref.current;
44
+ if (!el) return;
45
+ setW(el.clientWidth);
46
+ if (typeof ResizeObserver === "undefined") return;
47
+ const ro = new ResizeObserver(() => setW(el.clientWidth));
48
+ ro.observe(el);
49
+ return () => ro.disconnect();
50
+ }, [ref]);
51
+ return w;
52
+ }
53
+ /** A stored value as one line of reading text, or null when it has none (lists, empty values, flags). */
54
+ function readable(v) {
55
+ if (typeof v === "number") return String(v);
56
+ if (typeof v === "string") {
57
+ if (v.startsWith("data:image/")) return "Image";
58
+ return (new DOMParser().parseFromString(v.replace(/<[^>]+>/g, " "), "text/html").body.textContent ?? "").replace(/\s+/g, " ").trim() || null;
59
+ }
60
+ if (v && typeof v === "object" && !Array.isArray(v)) {
61
+ const o = v;
62
+ return readable(o.label || o.text || o.title || o.altText || o.href || o.url || o.html);
63
+ }
64
+ return null;
65
+ }
66
+ var parseObj = (s) => {
67
+ try {
68
+ const v = s ? JSON.parse(s) : {};
69
+ return v && typeof v === "object" && !Array.isArray(v) ? v : {};
70
+ } catch {
71
+ return {};
72
+ }
73
+ };
74
+ /** True when `a` is a later instant than `b`; false when either is absent or unreadable (never a made-up "changed"). */
75
+ var laterThan = (a, b) => {
76
+ const x = a ? Date.parse(a) : NaN;
77
+ const y = b ? Date.parse(b) : NaN;
78
+ return Number.isFinite(x) && Number.isFinite(y) && x > y;
79
+ };
80
+ var same = (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b);
81
+ /**
82
+ * "Collapse preview", remembered per component (V2 instance-card): read before the first render, so a reload never
83
+ * draws the preview and then folds it away. Storage that is absent or throws reads as expanded.
84
+ */
85
+ function useCollapsed(ref) {
86
+ const key = ref ? `bcms:card-collapsed:${ref}` : null;
87
+ const [collapsed, setState] = React.useState(() => {
88
+ try {
89
+ return !!key && globalThis.localStorage?.getItem(key) === "1";
90
+ } catch {
91
+ return false;
92
+ }
93
+ });
94
+ return [collapsed, React.useCallback((next) => {
95
+ setState(next);
96
+ if (!key) return;
97
+ try {
98
+ if (next) globalThis.localStorage?.setItem(key, "1");
99
+ else globalThis.localStorage?.removeItem(key);
100
+ } catch {}
101
+ }, [key])];
102
+ }
103
+ function ComponentCard({ m, el, ctx, use, overrides, set }) {
104
+ const { copyComponent, toast, ComponentPreview, IconGlyph, componentVariantMember, ComponentSettings, openComponent, componentHref } = useKitServices();
105
+ const member = !m.detached && m.ref && m.variant ? componentVariantMember?.(m.ref, m.variant) : void 0;
106
+ const ref = member ?? m.ref;
107
+ const variant = member ? void 0 : m.variant;
108
+ const { info, loading, error } = use(ref ?? "");
109
+ const card = React.useRef(null);
110
+ const width = useWidth(card);
111
+ const narrow = !!width && width <= NARROW;
112
+ const [collapsed, setCollapsed] = useCollapsed(m.ref);
113
+ const [dialog, setDialog] = React.useState(null);
114
+ const [busy, setBusy] = React.useState(false);
115
+ const detached = !!m.detached;
116
+ const own = React.useMemo(() => parseObj(m.props), [m.props]);
117
+ const missing = !ref || !!info?.missing;
118
+ const name = info && !info.missing ? info.name : m.name || info?.name || "Block";
119
+ const fieldKeys = new Set((info?.fields ?? []).map((f) => f.key));
120
+ const edited = missing || detached ? 0 : Object.keys(overrides).filter((k) => fieldKeys.has(k)).length;
121
+ const places = info?.places;
122
+ const known = !!info || missing;
123
+ const changed = detached && !missing && laterThan(info?.publishedAt, m.sourcePublishedAt);
124
+ const state = detached ? `Detached${changed ? ", Shared version changed" : ""}` : missing ? "Missing block" : edited || m.variant ? "Edited here" : "Shared";
125
+ const requiredEmpty = !missing && !detached && (info?.fields ?? []).some((f) => f.required && blank(f.key in overrides ? overrides[f.key] : f.value));
126
+ const label = `${name} block${known ? `, ${state}` : ""}${known && !missing && !detached && places != null ? `, ${placesShort(places)}` : ""}${requiredEmpty ? `. ${REQUIRED_EMPTY}` : ""}`;
127
+ const rows = detached ? copyRows(own, info?.fields, m.variant) : previewRows(missing, info?.fields, overrides, variant);
128
+ const image = missing || detached || edited || variant ? null : info?.image || null;
129
+ const liveProps = React.useMemo(() => detached ? own : {
130
+ ...Object.fromEntries((info?.fields ?? []).flatMap((f) => f.value !== void 0 ? [[f.key, f.value]] : [])),
131
+ ...overrides
132
+ }, [
133
+ detached,
134
+ own,
135
+ info?.fields,
136
+ overrides
137
+ ]);
138
+ const live = ComponentPreview && ref && info && !missing && !variant ? {
139
+ Preview: ComponentPreview,
140
+ ref
141
+ } : null;
142
+ const preview = live ? /* @__PURE__ */ jsx(LivePreview, {
143
+ Preview: live.Preview,
144
+ componentId: live.ref,
145
+ title: name,
146
+ props: liveProps,
147
+ rows
148
+ }) : image || rows.length ? /* @__PURE__ */ jsx(PreviewWindow, {
149
+ image,
150
+ rows
151
+ }) : null;
152
+ const canCopy = !!copyComponent && !!m.ref && !ctx.readOnly;
153
+ const ro = !!ctx.readOnly;
154
+ const linked = !missing && !detached;
155
+ const open = useComponentPanel(el);
156
+ const editing = !!open;
157
+ const [cardEl, setCardEl] = React.useState(null);
158
+ const cardRef = React.useCallback((n) => {
159
+ card.current = n;
160
+ if (n) setCardEl(n);
161
+ }, []);
162
+ const openPanel = React.useCallback((focusKey) => openComponentPanel(el, focusKey ?? null), [el]);
163
+ const closePanel = React.useCallback(() => closeComponentPanel(el), [el]);
164
+ const focusCard = React.useCallback(() => requestAnimationFrame(() => card.current?.focus({ preventScroll: true })), []);
165
+ React.useEffect(() => () => closeComponentPanel(el), [el]);
166
+ const swappable = useCatalogComponents()?.components ?? [];
167
+ const [swapTo, setSwapTo] = React.useState(null);
168
+ const editAll = openComponent && m.ref && info && linked ? {
169
+ label: places != null && places > 1 ? `Edit for all ${places} places` : "Edit the shared block",
170
+ run: () => openComponent(m.ref)
171
+ } : void 0;
172
+ const href = m.ref ? componentHref?.(m.ref, m.id) : void 0;
173
+ const hasEdits = linked && (Object.keys(overrides).length > 0 || !!m.variant);
174
+ /**
175
+ * The change as ONE undo step (IslandCtx.step: the dock's toolbar Undo, this toast's Undo and ⌘Z in the body are one
176
+ * undo), and the toast that offers it back.
177
+ */
178
+ const commit = (patch, label, title, description) => {
179
+ const before = el.__rt;
180
+ const undo = ctx.step ? ctx.step(label, () => (set(patch, label, false), el), before) : (set(patch, label), () => ctx.undo?.() ? true : "Changes made after it come first. Press ⌘Z to undo them.");
181
+ toast?.(title, {
182
+ description,
183
+ action: {
184
+ label: "Undo",
185
+ onClick: () => {
186
+ const r = undo();
187
+ if (r !== true) ctx.notify("Nothing was undone", r);
188
+ }
189
+ }
190
+ });
191
+ };
192
+ /** V2 detachNow: this place keeps what readers see now and stops following the component, as one undo step. */
193
+ const detach = async (title) => {
194
+ if (!copyComponent || !m.ref || busy) return;
195
+ setBusy(true);
196
+ try {
197
+ const copy = await copyComponent(m.ref, {
198
+ overrides,
199
+ ...m.variant ? { variant: m.variant } : {}
200
+ });
201
+ commit((cur) => ({
202
+ id: cur.id,
203
+ ref: cur.ref,
204
+ ...cur.name !== void 0 || info?.name ? { name: cur.name ?? info?.name } : {},
205
+ ...cur.variant !== void 0 ? { variant: cur.variant } : {},
206
+ detached: true,
207
+ props: JSON.stringify(copy.props),
208
+ ...copy.blocks !== void 0 ? { blocks: copy.blocks } : {},
209
+ ...copy.sourcePublishedAt ? { sourcePublishedAt: copy.sourcePublishedAt } : {},
210
+ ...cur.extra !== void 0 ? { extra: cur.extra } : {}
211
+ }), "Make a separate copy", title, "It keeps its content and no longer follows the shared block.");
212
+ } catch (e) {
213
+ ctx.notify("This place couldn't keep its own copy", e instanceof Error ? e.message : String(e));
214
+ } finally {
215
+ setBusy(false);
216
+ }
217
+ };
218
+ /** V2 instanceOps.relink: keep = what differs from the component becomes overrides; reset = the component's content. */
219
+ const relink = (mode) => {
220
+ const kept = copyEdits(m, own, info?.fields);
221
+ const n = Object.keys(kept).length;
222
+ commit((cur) => ({
223
+ id: cur.id,
224
+ ref: cur.ref,
225
+ ...cur.name !== void 0 ? { name: info?.name ?? cur.name } : {},
226
+ ...mode === "keep" && Object.keys(kept).length ? { overrides: JSON.stringify(kept) } : {},
227
+ ...mode === "keep" && cur.variant !== void 0 ? { variant: cur.variant } : {},
228
+ ...cur.extra !== void 0 ? { extra: cur.extra } : {}
229
+ }), "Use shared version again", `${name} is shared again`, mode === "keep" && n ? `${n} ${n === 1 ? "edit" : "edits"} kept here.` : "It shows the block's content.");
230
+ };
231
+ /** V2 instanceOps.resetAll: this place's overrides and its layout go, as one undo step. */
232
+ const resetAll = () => commit((cur) => {
233
+ const { variant: _v, ...rest } = cur;
234
+ return {
235
+ ...rest,
236
+ overrides: "{}"
237
+ };
238
+ }, "Reset all edits here", `Back to the shared ${name}`, "This place shows the block's content again.");
239
+ /**
240
+ * V2 instanceOps.swap, once the new component's fields are known (SwapResolver): this place's edits stay only where the
241
+ * new component declares a field with that key; everything else is the new component's own content. One undo step.
242
+ */
243
+ const swap = (to, next) => {
244
+ const keys = new Set((next.fields ?? []).map((f) => f.key));
245
+ const kept = Object.fromEntries(Object.entries(detached ? own : overrides).filter(([k]) => keys.has(k)));
246
+ const n = Object.keys(kept).length;
247
+ commit((cur) => ({
248
+ id: cur.id,
249
+ ref: to.id,
250
+ name: next.name || to.name,
251
+ overrides: JSON.stringify(kept),
252
+ ...cur.extra !== void 0 ? { extra: cur.extra } : {}
253
+ }), `Swap to ${to.name}`, `Swapped to ${to.name}`, n ? `Kept ${n} ${n === 1 ? "edit" : "edits"} made here.` : "It shows the block's own content.");
254
+ };
255
+ const copyLink = () => {
256
+ if (!href) return;
257
+ navigator.clipboard?.writeText(href).catch(() => {});
258
+ toast?.success("Link copied", { description: `Opens this page scrolled to the ${name}.` });
259
+ };
260
+ /** The panel's form writes this place: overrides (or the layout) as one undo step each, through the island's model. */
261
+ const onOverrides = (next) => {
262
+ const changed = [.../* @__PURE__ */ new Set([...Object.keys(next), ...Object.keys(overrides)])].find((k) => !same(next[k], overrides[k]));
263
+ set({ overrides: JSON.stringify(next) }, changed ? `Edit ${changed}` : "Edit block properties");
264
+ };
265
+ const onVariant = (variant) => set((cur) => {
266
+ const { variant: _v, ...rest } = cur;
267
+ return variant ? {
268
+ ...rest,
269
+ variant
270
+ } : rest;
271
+ }, "Change layout");
272
+ /** V2 instance card keys, on the focused card itself (fields and the portalled panel keep their own). */
273
+ const onKeyDown = (e) => {
274
+ if (e.defaultPrevented || e.target !== card.current) return;
275
+ const mod = e.metaKey || e.ctrlKey;
276
+ const k = eventKey(e);
277
+ if (mod && k === "z") {
278
+ e.preventDefault();
279
+ e.stopPropagation();
280
+ if (e.shiftKey) ctx.redo?.();
281
+ else ctx.undo?.();
282
+ return;
283
+ }
284
+ if (e.key === "Enter" || e.key === " ") {
285
+ e.preventDefault();
286
+ openPanel();
287
+ return;
288
+ }
289
+ if (e.key === "Escape") {
290
+ e.preventDefault();
291
+ e.stopPropagation();
292
+ if (editing) closePanel();
293
+ else ctx.exit(el);
294
+ return;
295
+ }
296
+ if (ro) return;
297
+ if (mod && k === "d" && ctx.duplicate) {
298
+ e.preventDefault();
299
+ e.stopPropagation();
300
+ ctx.duplicate(el);
301
+ } else if (e.altKey && (e.key === "ArrowUp" || e.key === "ArrowDown") && ctx.move) {
302
+ e.preventDefault();
303
+ ctx.move(el, e.key === "ArrowUp" ? -1 : 1);
304
+ focusCard();
305
+ } else if (e.key === "Backspace" || e.key === "Delete") {
306
+ e.preventDefault();
307
+ ctx.remove(el);
308
+ }
309
+ };
310
+ const chip = (compact) => detached ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(DetachedChip, {
311
+ name,
312
+ compact
313
+ }), changed ? /* @__PURE__ */ jsx(ChangedChip, {
314
+ name,
315
+ compact,
316
+ onReview: canCopy ? () => setDialog("relink") : void 0
317
+ }) : null] }) : known ? /* @__PURE__ */ jsx(StateChip, {
318
+ missing,
319
+ places,
320
+ edited,
321
+ layout: !!m.variant,
322
+ requiredEmpty,
323
+ compact
324
+ }) : null;
325
+ return /* @__PURE__ */ jsxs("div", {
326
+ ref: cardRef,
327
+ role: "group",
328
+ tabIndex: 0,
329
+ "aria-label": label,
330
+ "aria-roledescription": "component",
331
+ "aria-haspopup": "dialog",
332
+ "aria-expanded": editing,
333
+ "aria-busy": busy || void 0,
334
+ "data-instance-card": "",
335
+ "data-rt-isolate": "",
336
+ "data-state": detached ? "detached" : missing ? "missing" : known ? "linked" : void 0,
337
+ onKeyDown,
338
+ onClick: (e) => {
339
+ if (!e.currentTarget.contains(e.target) || e.target.closest("button,a,[role=menuitem],[role=note],[role=alert]")) return;
340
+ openPanel(propKeyAt(e.currentTarget, e.clientX, e.clientY));
341
+ },
342
+ className: cn("group/inst relative cursor-pointer rounded-kit-lg border bg-kit-control-bg text-left focus-visible:outline-offset-2 transition-colors duration-150 motion-reduce:transition-none", editing ? "border-transparent shadow-[0_0_0_2px_var(--kit-accent)]" : missing && !detached ? "border-kit-warning-line" : "border-kit-line hover:border-kit-line-strong"),
343
+ children: [
344
+ /* @__PURE__ */ jsxs("div", {
345
+ className: "flex h-9 select-none items-center gap-1.5 pl-1 pr-1",
346
+ children: [
347
+ ro || !ctx.drag ? /* @__PURE__ */ jsx("span", { className: "w-1" }) : /* @__PURE__ */ jsx(Tooltip, {
348
+ content: "Drag to move",
349
+ children: /* @__PURE__ */ jsx("button", {
350
+ type: "button",
351
+ "aria-label": `Move ${name}`,
352
+ tabIndex: -1,
353
+ onPointerDown: (e) => ctx.drag?.(el, e),
354
+ className: "flex h-7 w-4 shrink-0 cursor-grab touch-none pointer-coarse:size-11 items-center justify-center rounded-kit-sm text-kit-fg-4 opacity-0 transition-opacity duration-150 hover:text-kit-fg-2 active:cursor-grabbing motion-reduce:transition-none group-hover/inst:opacity-100 group-focus-within/inst:opacity-100 pointer-coarse:opacity-100 [&_svg]:size-3.5",
355
+ children: /* @__PURE__ */ jsx(IconGripVertical, { stroke: 1.5 })
356
+ })
357
+ }),
358
+ info?.icon && IconGlyph ? /* @__PURE__ */ jsx("span", {
359
+ "aria-hidden": true,
360
+ className: "flex size-[15px] shrink-0 text-kit-fg-2 [&_svg]:size-full",
361
+ children: /* @__PURE__ */ jsx(IconGlyph, {
362
+ name: info.icon,
363
+ className: "size-[15px]"
364
+ })
365
+ }) : /* @__PURE__ */ jsx(IconComponents, {
366
+ size: 15,
367
+ stroke: 1.5,
368
+ className: "shrink-0 text-kit-fg-2",
369
+ "aria-hidden": true
370
+ }),
371
+ /* @__PURE__ */ jsx("span", {
372
+ className: "min-w-0 shrink truncate text-kit-sm font-medium text-kit-fg",
373
+ children: name
374
+ }),
375
+ chip(narrow),
376
+ /* @__PURE__ */ jsx("span", { className: "flex-1" }),
377
+ /* @__PURE__ */ jsxs(Menu, { children: [/* @__PURE__ */ jsx(MenuTrigger, { render: /* @__PURE__ */ jsx(IconButton, {
378
+ size: "sm",
379
+ className: "shrink-0",
380
+ label: `${name} actions`,
381
+ children: /* @__PURE__ */ jsx(IconDots, { stroke: 1.5 })
382
+ }) }), /* @__PURE__ */ jsxs(MenuContent, {
383
+ align: "end",
384
+ className: "w-64",
385
+ children: [
386
+ ComponentSettings ? /* @__PURE__ */ jsx(MenuItem, {
387
+ icon: /* @__PURE__ */ jsx(IconAdjustmentsHorizontal, { stroke: 1.5 }),
388
+ onClick: () => openPanel(),
389
+ children: "Edit properties"
390
+ }) : null,
391
+ editAll ? /* @__PURE__ */ jsx(MenuItem, {
392
+ icon: /* @__PURE__ */ jsx(IconArrowUpRight, { stroke: 1.5 }),
393
+ onClick: editAll.run,
394
+ children: editAll.label
395
+ }) : null,
396
+ !ro && hasEdits ? /* @__PURE__ */ jsx(MenuItem, {
397
+ icon: /* @__PURE__ */ jsx(IconRestore, { stroke: 1.5 }),
398
+ onClick: resetAll,
399
+ children: "Reset all edits here"
400
+ }) : null,
401
+ canCopy && info && !missing && !detached ? /* @__PURE__ */ jsx(MenuItem, {
402
+ icon: /* @__PURE__ */ jsx(IconUnlink, { stroke: 1.5 }),
403
+ disabled: busy,
404
+ onClick: () => setDialog("detach"),
405
+ children: "Make a separate copy"
406
+ }) : null,
407
+ canCopy && missing && !detached ? /* @__PURE__ */ jsx(MenuItem, {
408
+ icon: /* @__PURE__ */ jsx(IconUnlink, { stroke: 1.5 }),
409
+ disabled: busy,
410
+ onClick: () => void detach("Kept as a separate copy"),
411
+ children: "Keep as a separate copy"
412
+ }) : null,
413
+ canCopy && info && !missing && detached ? /* @__PURE__ */ jsx(MenuItem, {
414
+ icon: /* @__PURE__ */ jsx(IconLink, { stroke: 1.5 }),
415
+ onClick: () => setDialog("relink"),
416
+ children: "Use shared version again"
417
+ }) : null,
418
+ !ro && swappable.length ? /* @__PURE__ */ jsxs(MenuSub, { children: [/* @__PURE__ */ jsx(MenuSubTrigger, {
419
+ icon: /* @__PURE__ */ jsx(IconReplace, { stroke: 1.5 }),
420
+ children: "Swap block"
421
+ }), /* @__PURE__ */ jsx(MenuSubContent, {
422
+ className: "max-h-[320px] w-60 overflow-y-auto",
423
+ children: swappable.map((c) => {
424
+ const on = c.id === m.ref;
425
+ return /* @__PURE__ */ jsx(MenuItem, {
426
+ icon: /* @__PURE__ */ jsx(IconComponents, { stroke: 1.5 }),
427
+ disabled: on || !!swapTo,
428
+ onClick: () => setSwapTo(c),
429
+ children: /* @__PURE__ */ jsxs("span", {
430
+ className: "flex w-full items-center justify-between gap-2",
431
+ children: [/* @__PURE__ */ jsx("span", {
432
+ className: "truncate",
433
+ children: c.name
434
+ }), on ? /* @__PURE__ */ jsx(IconCheck, {
435
+ className: "size-3.5 shrink-0 text-kit-fg-2",
436
+ stroke: 2,
437
+ "aria-label": "Current"
438
+ }) : null]
439
+ })
440
+ }, c.id);
441
+ })
442
+ })] }) : null,
443
+ preview ? /* @__PURE__ */ jsx(MenuItem, {
444
+ icon: collapsed ? /* @__PURE__ */ jsx(IconLayoutNavbarExpand, { stroke: 1.5 }) : /* @__PURE__ */ jsx(IconLayoutNavbarCollapse, { stroke: 1.5 }),
445
+ onClick: () => setCollapsed(!collapsed),
446
+ children: collapsed ? "Show preview" : "Collapse preview"
447
+ }) : null,
448
+ /* @__PURE__ */ jsx(MenuSeparator, {}),
449
+ !ro && ctx.duplicate ? /* @__PURE__ */ jsx(MenuItem, {
450
+ icon: /* @__PURE__ */ jsx(IconCopy, { stroke: 1.5 }),
451
+ shortcut: "⌘D",
452
+ onClick: () => ctx.duplicate?.(el),
453
+ children: "Duplicate"
454
+ }) : null,
455
+ !ro && ctx.move ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(MenuItem, {
456
+ icon: /* @__PURE__ */ jsx(IconArrowBarToUp, { stroke: 1.5 }),
457
+ shortcut: "⌥↑",
458
+ disabled: !el.previousElementSibling,
459
+ onClick: () => ctx.move?.(el, -1),
460
+ children: "Move up"
461
+ }), /* @__PURE__ */ jsx(MenuItem, {
462
+ icon: /* @__PURE__ */ jsx(IconArrowBarToDown, { stroke: 1.5 }),
463
+ shortcut: "⌥↓",
464
+ disabled: !el.nextElementSibling,
465
+ onClick: () => ctx.move?.(el, 1),
466
+ children: "Move down"
467
+ })] }) : null,
468
+ href ? /* @__PURE__ */ jsx(MenuItem, {
469
+ icon: /* @__PURE__ */ jsx(IconLink, { stroke: 1.5 }),
470
+ onClick: copyLink,
471
+ children: "Copy link"
472
+ }) : null,
473
+ !ro ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(MenuSeparator, {}), /* @__PURE__ */ jsx(MenuItem, {
474
+ danger: true,
475
+ icon: /* @__PURE__ */ jsx(IconTrash, { stroke: 1.5 }),
476
+ shortcut: "⌫",
477
+ onClick: () => ctx.remove(el),
478
+ children: "Remove"
479
+ })] }) : null
480
+ ]
481
+ })] })
482
+ ]
483
+ }),
484
+ error ? /* @__PURE__ */ jsxs("div", {
485
+ role: "alert",
486
+ className: "flex items-center gap-2 border-t border-kit-line-subtle px-3 py-2.5 text-kit-sm text-kit-fg-2",
487
+ children: [/* @__PURE__ */ jsx(IconAlertTriangle, {
488
+ className: "size-4 shrink-0 text-kit-warning-fg",
489
+ stroke: 1.5,
490
+ "aria-hidden": true
491
+ }), /* @__PURE__ */ jsx("span", {
492
+ className: "min-w-0 flex-1",
493
+ children: error
494
+ })]
495
+ }) : null,
496
+ missing && !detached && !loading ? /* @__PURE__ */ jsxs("div", {
497
+ className: "flex flex-wrap items-center gap-2 border-t border-kit-line-subtle px-3 py-2.5 text-kit-sm",
498
+ role: "note",
499
+ children: [
500
+ /* @__PURE__ */ jsx(IconAlertTriangle, {
501
+ className: "size-4 shrink-0 text-kit-warning-fg",
502
+ stroke: 1.5,
503
+ "aria-hidden": true
504
+ }),
505
+ /* @__PURE__ */ jsxs("span", {
506
+ className: "min-w-0 flex-1 text-kit-fg-2",
507
+ children: [
508
+ "The original “",
509
+ name,
510
+ "” was deleted. Readers see nothing in this place."
511
+ ]
512
+ }),
513
+ ctx.readOnly ? null : /* @__PURE__ */ jsxs("span", {
514
+ className: "flex shrink-0 items-center gap-1.5",
515
+ children: [canCopy ? /* @__PURE__ */ jsx(Button, {
516
+ size: "xs",
517
+ variant: "secondary",
518
+ loading: busy,
519
+ onClick: () => void detach("Kept as a separate copy"),
520
+ children: "Keep as a separate copy"
521
+ }) : null, /* @__PURE__ */ jsx(Button, {
522
+ size: "xs",
523
+ variant: "danger-ghost",
524
+ onClick: () => ctx.remove(el),
525
+ children: "Remove"
526
+ })]
527
+ })
528
+ ]
529
+ }) : null,
530
+ collapsed ? null : preview,
531
+ canCopy ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(DetachDialog, {
532
+ open: dialog === "detach",
533
+ name,
534
+ places,
535
+ onClose: () => setDialog(null),
536
+ onConfirm: () => {
537
+ setDialog(null);
538
+ detach(`Separate copy of ${name}`);
539
+ }
540
+ }), /* @__PURE__ */ jsx(RelinkDialog, {
541
+ open: dialog === "relink",
542
+ name,
543
+ kept: Object.keys(copyEdits(m, own, info?.fields)).length,
544
+ onClose: () => setDialog(null),
545
+ onConfirm: (mode) => {
546
+ setDialog(null);
547
+ relink(mode);
548
+ }
549
+ })] }) : null,
550
+ swapTo ? /* @__PURE__ */ jsx(SwapResolver, {
551
+ use,
552
+ to: swapTo,
553
+ onReady: (next) => {
554
+ setSwapTo(null);
555
+ swap(swapTo, next);
556
+ },
557
+ onFail: (why) => {
558
+ setSwapTo(null);
559
+ ctx.notify(`Couldn't swap to ${swapTo.name}`, why);
560
+ }
561
+ }) : null,
562
+ open ? /* @__PURE__ */ jsx(ComponentPanel, {
563
+ name,
564
+ chip: chip(false),
565
+ anchor: cardEl,
566
+ open,
567
+ editAll,
568
+ onClose: closePanel,
569
+ focusBack: focusCard,
570
+ settings: {
571
+ componentId: m.ref ?? "",
572
+ overrides,
573
+ ...m.variant ? { variant: m.variant } : {},
574
+ ...detached ? { detached: { props: own } } : {},
575
+ readOnly: ro || detached || missing,
576
+ onOverrides,
577
+ onVariant
578
+ }
579
+ }) : null
580
+ ]
581
+ });
582
+ }
583
+ /**
584
+ * A separate copy's EDITS, which it keeps as overrides when it follows the component again: its values that differ from
585
+ * the snapshot taken when the copy was made, never from the component as it is now (a republish since is not an edit
586
+ * of this place; the owner saw "2 fields stay as they are" with nothing edited).
587
+ *
588
+ * A copy made here stores that snapshot: its values (`props`) with the blocks drawn from them (`blocks`), and no
589
+ * surface edits a copy's values afterwards, so it has no edits. Copy markup from V2 stores no snapshot (no `blocks`):
590
+ * its values that differ from the component's, on fields the component has (V2 instanceOps.relink).
591
+ */
592
+ function copyEdits(m, own, fields) {
593
+ const out = {};
594
+ if (m.blocks !== void 0) return out;
595
+ for (const f of fields ?? []) if (f.key in own && !same(own[f.key], f.value)) out[f.key] = own[f.key];
596
+ return out;
597
+ }
598
+ var REQUIRED_EMPTY = "Required field empty.";
599
+ /** Nothing an author would call filled in: no value, blank text, an empty list. */
600
+ var blank = (v) => v == null || typeof v === "string" && !v.trim() || Array.isArray(v) && v.length === 0;
601
+ /** V2 StateChip: 13px, neutral, not a pill; the missing chip is the one tinted state. */
602
+ function StateChip({ missing, places, edited, layout, requiredEmpty, compact }) {
603
+ const base = CHIP;
604
+ if (missing) return /* @__PURE__ */ jsx(Tooltip, {
605
+ content: "The block was deleted. Readers see nothing in this place.",
606
+ children: /* @__PURE__ */ jsxs("span", {
607
+ className: cn(base, "bg-kit-warning-soft px-1.5 text-kit-warning-fg"),
608
+ children: [/* @__PURE__ */ jsx(IconAlertTriangle, {
609
+ className: "size-3.5 shrink-0",
610
+ stroke: 1.5,
611
+ "aria-hidden": true
612
+ }), compact ? /* @__PURE__ */ jsx("span", {
613
+ className: "sr-only",
614
+ children: "Missing block"
615
+ }) : "Missing block"]
616
+ })
617
+ });
618
+ const count = places ? placesShort(places) : null;
619
+ const tip = `Changes here apply only to this place. Edit the block to change ${places && places > 1 ? `all ${places}` : "it everywhere"}.${edited ? ` ${edited} ${edited === 1 ? "field" : "fields"} edited here.` : ""}${layout ? " Its layout is set here." : ""}${requiredEmpty ? ` ${REQUIRED_EMPTY}` : ""}`;
620
+ return /* @__PURE__ */ jsx(Tooltip, {
621
+ content: tip,
622
+ children: /* @__PURE__ */ jsxs("span", {
623
+ className: cn(base, "px-1 text-kit-fg-2"),
624
+ tabIndex: -1,
625
+ children: [
626
+ requiredEmpty ? /* @__PURE__ */ jsx("span", {
627
+ "data-required-empty": true,
628
+ className: "size-1.5 shrink-0 rounded-full bg-kit-danger-fg",
629
+ "aria-hidden": true
630
+ }) : null,
631
+ /* @__PURE__ */ jsx(IconLink, {
632
+ className: "size-3.5 shrink-0",
633
+ stroke: 1.5,
634
+ "aria-hidden": true
635
+ }),
636
+ compact ? /* @__PURE__ */ jsxs("span", {
637
+ className: "sr-only",
638
+ children: ["Shared", count ? `, ${count}` : ""]
639
+ }) : count ?? "Shared",
640
+ !compact && count ? /* @__PURE__ */ jsx("span", {
641
+ className: "sr-only",
642
+ children: ", shared"
643
+ }) : null,
644
+ edited || layout ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
645
+ className: "ml-1 size-1.5 shrink-0 rounded-full bg-kit-accent",
646
+ "aria-hidden": true
647
+ }), compact ? /* @__PURE__ */ jsx("span", {
648
+ className: "sr-only",
649
+ children: ", edited here"
650
+ }) : /* @__PURE__ */ jsx("span", { children: "Edited here" })] }) : null
651
+ ]
652
+ })
653
+ });
654
+ }
655
+ var CHIP = "inline-flex h-6 shrink-0 items-center gap-1 rounded-kit-md text-[13px] leading-none whitespace-nowrap";
656
+ /** V2 StateChip, detached: fg-3, the unlink glyph. */
657
+ function DetachedChip({ name, compact }) {
658
+ return /* @__PURE__ */ jsx(Tooltip, {
659
+ content: `A separate copy. Changes to ${name} don't reach it.`,
660
+ children: /* @__PURE__ */ jsxs("span", {
661
+ className: cn(CHIP, "px-1 text-kit-fg-3"),
662
+ tabIndex: -1,
663
+ children: [/* @__PURE__ */ jsx(IconUnlink, {
664
+ className: "size-3.5 shrink-0",
665
+ stroke: 1.5,
666
+ "aria-hidden": true
667
+ }), compact ? /* @__PURE__ */ jsx("span", {
668
+ className: "sr-only",
669
+ children: "Detached"
670
+ }) : "Detached"]
671
+ })
672
+ });
673
+ }
674
+ /** V2 StateChip, update: a quiet button that opens the way back to the shared version. */
675
+ function ChangedChip({ name, compact, onReview }) {
676
+ return /* @__PURE__ */ jsx(Tooltip, {
677
+ content: `${name} changed since this copy was made.`,
678
+ children: /* @__PURE__ */ jsxs("button", {
679
+ type: "button",
680
+ onClick: onReview,
681
+ disabled: !onReview,
682
+ className: cn(CHIP, "px-1 text-kit-fg-2 hover:bg-kit-hover hover:text-kit-fg disabled:hover:bg-transparent"),
683
+ children: [/* @__PURE__ */ jsx(IconRefresh, {
684
+ className: "size-3.5 shrink-0",
685
+ stroke: 1.5,
686
+ "aria-hidden": true
687
+ }), compact ? /* @__PURE__ */ jsx("span", {
688
+ className: "sr-only",
689
+ children: "Shared version changed"
690
+ }) : "Shared version changed"]
691
+ })
692
+ });
693
+ }
694
+ /** V2 useInstanceDialogs "detach": confirm before this place stops following the component. */
695
+ function DetachDialog({ open, name, places, onClose, onConfirm }) {
696
+ const others = places != null ? places - 1 : null;
697
+ return /* @__PURE__ */ jsx(Modal, {
698
+ open,
699
+ onOpenChange: (o) => !o && onClose(),
700
+ children: /* @__PURE__ */ jsxs(ModalContent, {
701
+ size: "sm",
702
+ children: [
703
+ /* @__PURE__ */ jsx(ModalHeader, {
704
+ title: `Make a separate copy of ${name}?`,
705
+ description: "This place keeps its current content and stops following the shared block."
706
+ }),
707
+ others != null ? /* @__PURE__ */ jsx(ModalBody, {
708
+ className: "pt-2 text-kit-sm text-kit-fg-2",
709
+ children: others > 0 ? `The other ${others === 1 ? "place stays" : `${others} places stay`} shared.` : "No other place uses it."
710
+ }) : null,
711
+ /* @__PURE__ */ jsxs(ModalFooter, { children: [/* @__PURE__ */ jsx(Button, {
712
+ variant: "ghost",
713
+ onClick: onClose,
714
+ children: "Cancel"
715
+ }), /* @__PURE__ */ jsx(Button, {
716
+ variant: "primary",
717
+ autoFocus: true,
718
+ onClick: onConfirm,
719
+ children: "Make a copy"
720
+ })] })
721
+ ]
722
+ })
723
+ });
724
+ }
725
+ /** V2 RelinkDialog: keep this place's edits as overrides, or take the component's content. */
726
+ function RelinkDialog({ open, name, kept, onClose, onConfirm }) {
727
+ const [mode, setMode] = React.useState("keep");
728
+ React.useEffect(() => {
729
+ if (open) setMode("keep");
730
+ }, [open]);
731
+ const rows = [{
732
+ v: "keep",
733
+ title: "Keep my edits here",
734
+ line: kept ? `${kept} ${kept === 1 ? "field stays" : "fields stay"} as ${kept === 1 ? "it is" : "they are"}; everything else follows ${name} again.` : `Nothing differs, so it simply follows ${name} again.`
735
+ }, {
736
+ v: "reset",
737
+ title: `Use ${name}'s content`,
738
+ line: "Drops the edits made here. Undo is one click away."
739
+ }];
740
+ return /* @__PURE__ */ jsx(Modal, {
741
+ open,
742
+ onOpenChange: (o) => !o && onClose(),
743
+ children: /* @__PURE__ */ jsxs(ModalContent, {
744
+ size: "sm",
745
+ children: [
746
+ /* @__PURE__ */ jsx(ModalHeader, {
747
+ title: `Use the shared ${name} again?`,
748
+ description: "This place follows the shared block again."
749
+ }),
750
+ /* @__PURE__ */ jsx(ModalBody, {
751
+ className: "pt-3",
752
+ children: /* @__PURE__ */ jsx("div", {
753
+ role: "radiogroup",
754
+ "aria-label": "Use shared version again",
755
+ className: "flex flex-col divide-y divide-kit-line overflow-hidden rounded-kit-lg border border-kit-line",
756
+ onKeyDown: (e) => {
757
+ if (![
758
+ "ArrowUp",
759
+ "ArrowDown",
760
+ "ArrowLeft",
761
+ "ArrowRight"
762
+ ].includes(e.key)) return;
763
+ e.preventDefault();
764
+ const next = mode === "keep" ? "reset" : "keep";
765
+ setMode(next);
766
+ e.currentTarget.querySelector(`[data-mode="${next}"]`)?.focus();
767
+ },
768
+ children: rows.map((row) => /* @__PURE__ */ jsxs("button", {
769
+ type: "button",
770
+ role: "radio",
771
+ "data-mode": row.v,
772
+ tabIndex: mode === row.v ? 0 : -1,
773
+ "aria-checked": mode === row.v,
774
+ onClick: () => setMode(row.v),
775
+ className: cn("flex min-h-14 items-start gap-3 px-3 py-2.5 text-left transition-colors hover:bg-kit-hover", mode === row.v && "bg-kit-subtle"),
776
+ children: [/* @__PURE__ */ jsx("span", {
777
+ className: cn("mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-full border", mode === row.v ? "border-kit-control-checked" : "border-kit-line-strong"),
778
+ children: mode === row.v ? /* @__PURE__ */ jsx("span", { className: "size-2 rounded-full bg-kit-fg" }) : null
779
+ }), /* @__PURE__ */ jsxs("span", {
780
+ className: "min-w-0",
781
+ children: [/* @__PURE__ */ jsx("span", {
782
+ className: "block text-kit-sm font-medium text-kit-fg",
783
+ children: row.title
784
+ }), /* @__PURE__ */ jsx("span", {
785
+ className: "block text-kit-xs text-kit-fg-3",
786
+ children: row.line
787
+ })]
788
+ })]
789
+ }, row.v))
790
+ })
791
+ }),
792
+ /* @__PURE__ */ jsxs(ModalFooter, { children: [/* @__PURE__ */ jsx(Button, {
793
+ variant: "ghost",
794
+ onClick: onClose,
795
+ children: "Cancel"
796
+ }), /* @__PURE__ */ jsx(Button, {
797
+ variant: "primary",
798
+ onClick: () => onConfirm(mode),
799
+ children: "Use shared version"
800
+ })] })
801
+ ]
802
+ })
803
+ });
804
+ }
805
+ /**
806
+ * What the window lists when there is no picture: each field's value as this place shows it (its override, else the
807
+ * component's own), then the layout this place draws it in. A missing component has only what this place stored: its
808
+ * overrides, named by their keys, and its layout.
809
+ */
810
+ /** A choice field's value as its option's label (BUG-8: a select whose values are ids listed the id); others as they are. */
811
+ function chosen(f, v) {
812
+ if (!f.options) return v;
813
+ const label = (x) => f.options.find((o) => o.value === x)?.label ?? x;
814
+ return Array.isArray(v) ? v.map(label).join(", ") : label(v);
815
+ }
816
+ function previewRows(missing, fields, overrides, variant) {
817
+ const out = [];
818
+ if (missing || !fields) for (const [key, v] of Object.entries(overrides)) {
819
+ const text = readable(v);
820
+ if (text) out.push({
821
+ key,
822
+ label: key,
823
+ text
824
+ });
825
+ }
826
+ else for (const f of fields) {
827
+ const text = readable(chosen(f, f.key in overrides ? overrides[f.key] : f.value));
828
+ if (text) out.push({
829
+ key: f.key,
830
+ label: f.label,
831
+ text
832
+ });
833
+ }
834
+ if (variant) out.push({
835
+ key: "__variant",
836
+ label: "Layout",
837
+ text: variant
838
+ });
839
+ return out;
840
+ }
841
+ /**
842
+ * A separate copy's values (V2 `props`) in the component's field order. A field the copy doesn't hold draws the
843
+ * component's value for it, as V2's renderer does for a copy (it draws the def with `props`, defaults for the rest);
844
+ * a value the component no longer has a field for follows, under its key. Then its layout.
845
+ */
846
+ function copyRows(own, fields, variant) {
847
+ const out = [];
848
+ const push = (key, label, v) => {
849
+ const text = readable(v);
850
+ if (text) out.push({
851
+ key,
852
+ label,
853
+ text
854
+ });
855
+ };
856
+ for (const f of fields ?? []) push(f.key, f.label, chosen(f, f.key in own ? own[f.key] : f.value));
857
+ for (const [key, v] of Object.entries(own)) if (!fields?.some((f) => f.key === key)) push(key, key, v);
858
+ if (variant) out.push({
859
+ key: "__variant",
860
+ label: "Layout",
861
+ text: variant
862
+ });
863
+ return out;
864
+ }
865
+ /**
866
+ * The preview's frame: under the card's header, capped at PREVIEW_H (its top border inside, as V2's CappedPreview).
867
+ * The cap lifts instantly on hover: a height animation is layout work every frame (canvas revamp V937).
868
+ */
869
+ var PREVIEW_CHROME = "group/cap relative max-h-[240px] overflow-hidden rounded-b-kit-lg border-t border-kit-line-subtle";
870
+ /**
871
+ * V2 instance-card CappedPreview: at most 240px, faded at its foot when the content is taller; hover shows its full
872
+ * height. Measured a frame after each resize, so a frame or picture that sizes itself late is read once settled.
873
+ */
874
+ function CappedPreview({ live, children }) {
875
+ const inner = React.useRef(null);
876
+ const [tall, setTall] = React.useState(false);
877
+ const [site, setSite] = React.useState(false);
878
+ React.useLayoutEffect(() => {
879
+ const el = inner.current;
880
+ if (!el) return;
881
+ let raf = 0;
882
+ const measure = () => {
883
+ cancelAnimationFrame(raf);
884
+ raf = requestAnimationFrame(() => {
885
+ setTall(el.offsetHeight > 241);
886
+ setSite(!!el.querySelector("iframe"));
887
+ });
888
+ };
889
+ measure();
890
+ const ro = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
891
+ ro?.observe(el);
892
+ const mo = typeof MutationObserver === "undefined" ? null : new MutationObserver(measure);
893
+ mo?.observe(el, {
894
+ childList: true,
895
+ subtree: true
896
+ });
897
+ return () => {
898
+ ro?.disconnect();
899
+ mo?.disconnect();
900
+ cancelAnimationFrame(raf);
901
+ };
902
+ }, []);
903
+ return /* @__PURE__ */ jsxs("div", {
904
+ "data-instance-preview": "",
905
+ "data-live": live ? "" : void 0,
906
+ "data-tall": tall ? "" : void 0,
907
+ "data-site": site ? "" : void 0,
908
+ className: cn(PREVIEW_CHROME, site ? "bg-kit-site-paper" : "bg-kit-subtle", tall && "can-hover:hover:max-h-[2400px]"),
909
+ children: [/* @__PURE__ */ jsx("div", {
910
+ ref: inner,
911
+ children
912
+ }), tall ? /* @__PURE__ */ jsx("div", {
913
+ "aria-hidden": true,
914
+ className: cn("pointer-events-none absolute inset-x-0 bottom-0 h-6 bg-gradient-to-b from-transparent transition-opacity duration-150 ease-out can-hover:group-hover/cap:opacity-0 motion-reduce:transition-none", site ? "to-kit-site-paper" : "to-kit-subtle")
915
+ }) : null]
916
+ });
917
+ }
918
+ function PreviewWindow({ image, rows }) {
919
+ return /* @__PURE__ */ jsx(CappedPreview, { children: /* @__PURE__ */ jsx(PreviewBody, {
920
+ image,
921
+ rows
922
+ }) });
923
+ }
924
+ /**
925
+ * The component drawn live by the host (KitServices.ComponentPreview), mounted once the card is on screen. Its height is
926
+ * reserved from the start (PREVIEW_H), so the card never moves while it loads; where the host cannot draw it, the values
927
+ * are listed under the reason.
928
+ */
929
+ function LivePreview({ Preview, componentId, title, props, rows }) {
930
+ const box = React.useRef(null);
931
+ const [seen, setSeen] = React.useState(() => typeof IntersectionObserver === "undefined");
932
+ React.useEffect(() => {
933
+ const el = box.current;
934
+ if (seen || !el) return;
935
+ const io = new IntersectionObserver((entries) => {
936
+ if (entries.some((e) => e.isIntersecting)) setSeen(true);
937
+ });
938
+ io.observe(el);
939
+ return () => io.disconnect();
940
+ }, [seen]);
941
+ return /* @__PURE__ */ jsx(CappedPreview, {
942
+ live: true,
943
+ children: /* @__PURE__ */ jsx("div", {
944
+ ref: box,
945
+ children: seen ? /* @__PURE__ */ jsx(Preview, {
946
+ componentId,
947
+ title,
948
+ props,
949
+ fallback: (reason) => /* @__PURE__ */ jsx(PreviewBody, {
950
+ image: null,
951
+ rows,
952
+ note: reason
953
+ })
954
+ }) : /* @__PURE__ */ jsx("div", {
955
+ "aria-hidden": true,
956
+ style: { height: PREVIEW_H }
957
+ })
958
+ })
959
+ });
960
+ }
961
+ function PreviewBody({ image, rows, note }) {
962
+ const [loaded, setLoaded] = React.useState(!image);
963
+ return /* @__PURE__ */ jsx("div", {
964
+ style: !loaded ? { height: PREVIEW_H } : void 0,
965
+ children: image ? /* @__PURE__ */ jsx("img", {
966
+ src: image,
967
+ alt: "",
968
+ className: "block h-auto w-full",
969
+ draggable: false,
970
+ onLoad: () => setLoaded(true),
971
+ onError: () => setLoaded(true)
972
+ }) : /* @__PURE__ */ jsxs(Fragment, { children: [note ? /* @__PURE__ */ jsx("p", {
973
+ className: "px-4 pt-3 text-kit-xs text-kit-fg-3",
974
+ children: note
975
+ }) : null, /* @__PURE__ */ jsx("dl", {
976
+ className: "flex flex-col gap-3 px-4 py-3.5",
977
+ children: rows.map((r) => /* @__PURE__ */ jsxs("div", {
978
+ "data-prop-key": r.key === "__variant" ? void 0 : r.key,
979
+ className: "min-w-0",
980
+ children: [/* @__PURE__ */ jsx("dt", {
981
+ className: "truncate text-kit-xs text-kit-fg-3",
982
+ children: r.label
983
+ }), /* @__PURE__ */ jsx("dd", {
984
+ className: "mt-0.5 line-clamp-3 text-kit-sm text-kit-fg",
985
+ children: r.text
986
+ })]
987
+ }, r.key))
988
+ })] })
989
+ });
990
+ }
991
+ /** The listed value (`data-prop-key`) under a point of the card, else null. */
992
+ function propKeyAt(root, x, y) {
993
+ for (const row of root.querySelectorAll("[data-prop-key]")) {
994
+ const r = row.getBoundingClientRect();
995
+ if (x >= r.left && x <= r.right && y >= r.top && y <= r.bottom) return row.dataset.propKey ?? null;
996
+ }
997
+ return null;
998
+ }
999
+ /**
1000
+ * Swap component: the new component's fields come from the same lookup the card reads (KitServices.useComponentInfo, a
1001
+ * hook, so it is asked from a component of its own). Answers once, when they are known.
1002
+ */
1003
+ function SwapResolver({ use, to, onReady, onFail }) {
1004
+ const { info, error } = use(to.id);
1005
+ const done = React.useRef(false);
1006
+ React.useEffect(() => {
1007
+ if (done.current) return;
1008
+ if (error) {
1009
+ done.current = true;
1010
+ onFail(error);
1011
+ } else if (info?.missing) {
1012
+ done.current = true;
1013
+ onFail("The library has no such block.");
1014
+ } else if (info) {
1015
+ done.current = true;
1016
+ onReady(info);
1017
+ }
1018
+ });
1019
+ return null;
1020
+ }
1021
+ //#endregion
1022
+ export { ComponentCard };
1023
+
1024
+ //# sourceMappingURL=component-card.js.map