@bettercms-ai/kit 0.1.1 → 1.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 (947) hide show
  1. package/_virtual/_rolldown/runtime.js +13 -0
  2. package/adapters/icons.d.ts +15 -0
  3. package/adapters/icons.js +27 -0
  4. package/adapters/icons.js.map +1 -0
  5. package/adapters/lossy.d.ts +267 -0
  6. package/adapters/lossy.js +233 -0
  7. package/adapters/lossy.js.map +1 -0
  8. package/adapters/prod-types.d.ts +468 -0
  9. package/adapters/prod-types.js +646 -0
  10. package/adapters/prod-types.js.map +1 -0
  11. package/adapters/schema.d.ts +115 -0
  12. package/adapters/schema.js +2203 -0
  13. package/adapters/schema.js.map +1 -0
  14. package/adapters/values.d.ts +200 -0
  15. package/adapters/values.js +553 -0
  16. package/adapters/values.js.map +1 -0
  17. package/brand/logo.d.ts +17 -0
  18. package/brand/logo.js +9 -0
  19. package/brand/logo.js.map +1 -0
  20. package/context.d.ts +269 -0
  21. package/context.js +214 -0
  22. package/context.js.map +1 -0
  23. package/controls/button.d.ts +58 -0
  24. package/controls/button.js +507 -0
  25. package/controls/button.js.map +1 -0
  26. package/controls/c1.d.ts +11 -0
  27. package/controls/c1.js +24 -0
  28. package/controls/c1.js.map +1 -0
  29. package/controls/c2.d.ts +10 -0
  30. package/controls/c2.js +19 -0
  31. package/controls/c2.js.map +1 -0
  32. package/controls/choice.d.ts +39 -0
  33. package/controls/choice.js +410 -0
  34. package/controls/choice.js.map +1 -0
  35. package/controls/code-register.d.ts +1 -0
  36. package/controls/code-register.js +8 -0
  37. package/controls/code-register.js.map +1 -0
  38. package/controls/code.d.ts +42 -0
  39. package/controls/code.js +396 -0
  40. package/controls/code.js.map +1 -0
  41. package/controls/color.d.ts +5 -0
  42. package/controls/color.js +130 -0
  43. package/controls/color.js.map +1 -0
  44. package/controls/component-services.d.ts +114 -0
  45. package/controls/date-register.d.ts +1 -0
  46. package/controls/date-register.js +9 -0
  47. package/controls/date-register.js.map +1 -0
  48. package/controls/date-zone.d.ts +104 -0
  49. package/controls/date-zone.js +272 -0
  50. package/controls/date-zone.js.map +1 -0
  51. package/controls/date.d.ts +7 -0
  52. package/controls/date.js +458 -0
  53. package/controls/date.js.map +1 -0
  54. package/controls/form-picker-register.d.ts +1 -0
  55. package/controls/form-picker-register.js +19 -0
  56. package/controls/form-picker-register.js.map +1 -0
  57. package/controls/form-picker.d.ts +43 -0
  58. package/controls/form-picker.js +83 -0
  59. package/controls/form-picker.js.map +1 -0
  60. package/controls/icon-register.d.ts +1 -0
  61. package/controls/icon-register.js +8 -0
  62. package/controls/icon-register.js.map +1 -0
  63. package/controls/icon.d.ts +38 -0
  64. package/controls/icon.js +355 -0
  65. package/controls/icon.js.map +1 -0
  66. package/controls/index.d.ts +5 -0
  67. package/controls/index.js +37 -0
  68. package/controls/index.js.map +1 -0
  69. package/controls/json-register.d.ts +1 -0
  70. package/controls/json-register.js +8 -0
  71. package/controls/json-register.js.map +1 -0
  72. package/controls/json.d.ts +2 -0
  73. package/controls/json.js +72 -0
  74. package/controls/json.js.map +1 -0
  75. package/controls/link.d.ts +260 -0
  76. package/controls/link.js +1186 -0
  77. package/controls/link.js.map +1 -0
  78. package/controls/location-register.d.ts +1 -0
  79. package/controls/location-register.js +8 -0
  80. package/controls/location-register.js.map +1 -0
  81. package/controls/location.d.ts +16 -0
  82. package/controls/location.js +197 -0
  83. package/controls/location.js.map +1 -0
  84. package/controls/media-register.d.ts +1 -0
  85. package/controls/media-register.js +12 -0
  86. package/controls/media-register.js.map +1 -0
  87. package/controls/media-services.d.ts +40 -0
  88. package/controls/media.d.ts +73 -0
  89. package/controls/media.js +1076 -0
  90. package/controls/media.js.map +1 -0
  91. package/controls/number.d.ts +22 -0
  92. package/controls/number.js +195 -0
  93. package/controls/number.js.map +1 -0
  94. package/controls/reference-register.d.ts +1 -0
  95. package/controls/reference-register.js +10 -0
  96. package/controls/reference-register.js.map +1 -0
  97. package/controls/reference-services.d.ts +54 -0
  98. package/controls/reference.d.ts +23 -0
  99. package/controls/reference.js +761 -0
  100. package/controls/reference.js.map +1 -0
  101. package/controls/rich-text/blocks.d.ts +28 -0
  102. package/controls/rich-text/blocks.js +1532 -0
  103. package/controls/rich-text/blocks.js.map +1 -0
  104. package/controls/rich-text/catalog.d.ts +98 -0
  105. package/controls/rich-text/catalog.js +613 -0
  106. package/controls/rich-text/catalog.js.map +1 -0
  107. package/controls/rich-text/codec.d.ts +56 -0
  108. package/controls/rich-text/codec.js +32 -0
  109. package/controls/rich-text/codec.js.map +1 -0
  110. package/controls/rich-text/component-card.d.ts +14 -0
  111. package/controls/rich-text/component-card.js +706 -0
  112. package/controls/rich-text/component-card.js.map +1 -0
  113. package/controls/rich-text/control.d.ts +21 -0
  114. package/controls/rich-text/control.js +254 -0
  115. package/controls/rich-text/control.js.map +1 -0
  116. package/controls/rich-text/dom.d.ts +190 -0
  117. package/controls/rich-text/dom.js +690 -0
  118. package/controls/rich-text/dom.js.map +1 -0
  119. package/controls/rich-text/editor.d.ts +50 -0
  120. package/controls/rich-text/editor.js +1530 -0
  121. package/controls/rich-text/editor.js.map +1 -0
  122. package/controls/rich-text/floating.d.ts +23 -0
  123. package/controls/rich-text/floating.js +137 -0
  124. package/controls/rich-text/floating.js.map +1 -0
  125. package/controls/rich-text/index.d.ts +1 -0
  126. package/controls/rich-text/index.js +12 -0
  127. package/controls/rich-text/index.js.map +1 -0
  128. package/controls/rich-text/link-form.d.ts +13 -0
  129. package/controls/rich-text/link-form.js +111 -0
  130. package/controls/rich-text/link-form.js.map +1 -0
  131. package/controls/rich-text/markdown.d.ts +6 -0
  132. package/controls/rich-text/markdown.js +179 -0
  133. package/controls/rich-text/markdown.js.map +1 -0
  134. package/controls/rich-text/ops.d.ts +35 -0
  135. package/controls/rich-text/ops.js +314 -0
  136. package/controls/rich-text/ops.js.map +1 -0
  137. package/controls/rich-text/toolbar.d.ts +85 -0
  138. package/controls/rich-text/toolbar.js +338 -0
  139. package/controls/rich-text/toolbar.js.map +1 -0
  140. package/controls/scale.d.ts +56 -0
  141. package/controls/scale.js +563 -0
  142. package/controls/scale.js.map +1 -0
  143. package/controls/slot-register.d.ts +1 -0
  144. package/controls/slot-register.js +16 -0
  145. package/controls/slot-register.js.map +1 -0
  146. package/controls/slot-services.d.ts +97 -0
  147. package/controls/slot-services.js +38 -0
  148. package/controls/slot-services.js.map +1 -0
  149. package/controls/slot.d.ts +33 -0
  150. package/controls/slot.js +348 -0
  151. package/controls/slot.js.map +1 -0
  152. package/controls/table/index.d.ts +1 -0
  153. package/controls/table/index.js +12 -0
  154. package/controls/table/index.js.map +1 -0
  155. package/controls/table/prod.d.ts +21 -0
  156. package/controls/table/prod.js +79 -0
  157. package/controls/table/prod.js.map +1 -0
  158. package/controls/table/refs.d.ts +50 -0
  159. package/controls/table/refs.js +68 -0
  160. package/controls/table/refs.js.map +1 -0
  161. package/controls/table/stored.d.ts +15 -0
  162. package/controls/table/stored.js +44 -0
  163. package/controls/table/stored.js.map +1 -0
  164. package/controls/table/table-editor.d.ts +103 -0
  165. package/controls/table/table-editor.js +2722 -0
  166. package/controls/table/table-editor.js.map +1 -0
  167. package/controls/table/table-link.d.ts +24 -0
  168. package/controls/table/table-link.js +180 -0
  169. package/controls/table/table-link.js.map +1 -0
  170. package/controls/table/table.d.ts +9 -0
  171. package/controls/table/table.js +103 -0
  172. package/controls/table/table.js.map +1 -0
  173. package/controls/text.d.ts +17 -0
  174. package/controls/text.js +287 -0
  175. package/controls/text.js.map +1 -0
  176. package/engine/array.d.ts +101 -0
  177. package/engine/array.js +893 -0
  178. package/engine/array.js.map +1 -0
  179. package/engine/bits.d.ts +24 -0
  180. package/engine/bits.js +60 -0
  181. package/engine/bits.js.map +1 -0
  182. package/engine/breadcrumb.d.ts +45 -0
  183. package/engine/breadcrumb.js +87 -0
  184. package/engine/breadcrumb.js.map +1 -0
  185. package/engine/expand.d.ts +68 -0
  186. package/engine/expand.js +170 -0
  187. package/engine/expand.js.map +1 -0
  188. package/engine/field-list.d.ts +20 -0
  189. package/engine/field-list.js +19 -0
  190. package/engine/field-list.js.map +1 -0
  191. package/engine/field-shell.d.ts +49 -0
  192. package/engine/field-shell.js +860 -0
  193. package/engine/field-shell.js.map +1 -0
  194. package/engine/frame.d.ts +120 -0
  195. package/engine/frame.js +599 -0
  196. package/engine/frame.js.map +1 -0
  197. package/engine/group-summary.d.ts +4 -0
  198. package/engine/group-summary.js +66 -0
  199. package/engine/group-summary.js.map +1 -0
  200. package/engine/grouping.d.ts +224 -0
  201. package/engine/grouping.js +824 -0
  202. package/engine/grouping.js.map +1 -0
  203. package/engine/item-list.d.ts +89 -0
  204. package/engine/item-list.js +703 -0
  205. package/engine/item-list.js.map +1 -0
  206. package/engine/kit-field.d.ts +72 -0
  207. package/engine/kit-field.js +523 -0
  208. package/engine/kit-field.js.map +1 -0
  209. package/engine/schema-form.d.ts +91 -0
  210. package/engine/schema-form.js +320 -0
  211. package/engine/schema-form.js.map +1 -0
  212. package/engine/slot.d.ts +13 -0
  213. package/engine/slot.js +226 -0
  214. package/engine/slot.js.map +1 -0
  215. package/index.d.ts +46 -0
  216. package/index.js +55 -0
  217. package/index.js.map +1 -0
  218. package/kit.css +56 -0
  219. package/lib/cn.d.ts +4 -0
  220. package/lib/cn.js +53 -0
  221. package/lib/cn.js.map +1 -0
  222. package/lib/columns.d.ts +14 -0
  223. package/lib/columns.js +27 -0
  224. package/lib/columns.js.map +1 -0
  225. package/lib/frames.d.ts +36 -0
  226. package/lib/frames.js +214 -0
  227. package/lib/frames.js.map +1 -0
  228. package/lib/icons.d.ts +16 -0
  229. package/lib/icons.js +172 -0
  230. package/lib/icons.js.map +1 -0
  231. package/lib/path.d.ts +29 -0
  232. package/lib/path.js +64 -0
  233. package/lib/path.js.map +1 -0
  234. package/lib/schema.d.ts +49 -0
  235. package/lib/schema.js +287 -0
  236. package/lib/schema.js.map +1 -0
  237. package/lib/utils.d.ts +7 -0
  238. package/lib/utils.js +37 -0
  239. package/lib/utils.js.map +1 -0
  240. package/lib/validate.d.ts +20 -0
  241. package/lib/validate.js +150 -0
  242. package/lib/validate.js.map +1 -0
  243. package/package.json +31 -59
  244. package/schema/adapters.d.ts +28 -0
  245. package/schema/adapters.js +493 -0
  246. package/schema/adapters.js.map +1 -0
  247. package/schema/help.d.ts +25 -0
  248. package/schema/help.js +54 -0
  249. package/schema/help.js.map +1 -0
  250. package/schema/scale.d.ts +69 -0
  251. package/schema/scale.js +250 -0
  252. package/schema/scale.js.map +1 -0
  253. package/schema/sources.d.ts +103 -0
  254. package/schema/sources.js +65 -0
  255. package/schema/sources.js.map +1 -0
  256. package/schema/table.d.ts +319 -0
  257. package/schema/table.js +1198 -0
  258. package/schema/table.js.map +1 -0
  259. package/schema/types.d.ts +269 -0
  260. package/schema/types.js +14 -0
  261. package/schema/types.js.map +1 -0
  262. package/types.d.ts +17 -0
  263. package/ui/action-tray.d.ts +54 -0
  264. package/ui/action-tray.js +153 -0
  265. package/ui/action-tray.js.map +1 -0
  266. package/ui/button.d.ts +57 -0
  267. package/ui/button.js +202 -0
  268. package/ui/button.js.map +1 -0
  269. package/ui/choice-switch.d.ts +36 -0
  270. package/ui/choice-switch.js +57 -0
  271. package/ui/choice-switch.js.map +1 -0
  272. package/ui/controls.d.ts +83 -0
  273. package/ui/controls.js +319 -0
  274. package/ui/controls.js.map +1 -0
  275. package/ui/display.d.ts +156 -0
  276. package/ui/display.js +444 -0
  277. package/ui/display.js.map +1 -0
  278. package/ui/expanded-editor-modal.d.ts +26 -0
  279. package/ui/expanded-editor-modal.js +140 -0
  280. package/ui/expanded-editor-modal.js.map +1 -0
  281. package/ui/field-context.d.ts +12 -0
  282. package/ui/field-context.js +23 -0
  283. package/ui/field-context.js.map +1 -0
  284. package/ui/floating-panel.d.ts +152 -0
  285. package/ui/floating-panel.js +912 -0
  286. package/ui/floating-panel.js.map +1 -0
  287. package/ui/index.d.ts +12 -0
  288. package/ui/index.js +13 -0
  289. package/ui/input.d.ts +78 -0
  290. package/ui/input.js +250 -0
  291. package/ui/input.js.map +1 -0
  292. package/ui/mode-bar.d.ts +31 -0
  293. package/ui/mode-bar.js +65 -0
  294. package/ui/mode-bar.js.map +1 -0
  295. package/ui/overlay.d.ts +123 -0
  296. package/ui/overlay.js +378 -0
  297. package/ui/overlay.js.map +1 -0
  298. package/ui/path-crumbs.d.ts +90 -0
  299. package/ui/path-crumbs.js +532 -0
  300. package/ui/path-crumbs.js.map +1 -0
  301. package/ui/presence.d.ts +16 -0
  302. package/ui/presence.js +65 -0
  303. package/ui/presence.js.map +1 -0
  304. package/ui/select.d.ts +66 -0
  305. package/ui/select.js +405 -0
  306. package/ui/select.js.map +1 -0
  307. package/ui/shortcut-hint.d.ts +14 -0
  308. package/ui/shortcut-hint.js +35 -0
  309. package/ui/shortcut-hint.js.map +1 -0
  310. package/ui/surfaces.d.ts +23 -0
  311. package/ui/surfaces.js +26 -0
  312. package/ui/surfaces.js.map +1 -0
  313. package/ui/tooltip-root.d.ts +12 -0
  314. package/ui/tooltip-root.js +76 -0
  315. package/ui/tooltip-root.js.map +1 -0
  316. package/ui/variants.d.ts +15 -0
  317. package/ui/variants.js +14 -0
  318. package/ui/variants.js.map +1 -0
  319. package/LICENSE +0 -21
  320. package/README.md +0 -27
  321. package/dist/_chunks-cjs/_visual-editing.js +0 -5898
  322. package/dist/_chunks-cjs/refractor.js +0 -22
  323. package/dist/_chunks-es/_visual-editing.mjs +0 -5904
  324. package/dist/_chunks-es/refractor.mjs +0 -25
  325. package/dist/_color.d.mts +0 -119
  326. package/dist/_color.d.ts +0 -119
  327. package/dist/_color.js +0 -1412
  328. package/dist/_color.mjs +0 -1411
  329. package/dist/_visual-editing.d.mts +0 -1126
  330. package/dist/_visual-editing.d.ts +0 -1126
  331. package/dist/_visual-editing.js +0 -30
  332. package/dist/_visual-editing.mjs +0 -30
  333. package/dist/index.d.mts +0 -3140
  334. package/dist/index.d.ts +0 -3140
  335. package/dist/index.js +0 -2036
  336. package/dist/index.mjs +0 -2044
  337. package/dist/theme.d.mts +0 -1506
  338. package/dist/theme.d.ts +0 -1506
  339. package/dist/theme.js +0 -4126
  340. package/dist/theme.mjs +0 -4126
  341. package/exports/_visual-editing.ts +0 -31
  342. package/exports/index.ts +0 -1
  343. package/exports/theme.ts +0 -1
  344. package/src/color/index.d.mts +0 -119
  345. package/src/color/index.mjs +0 -1411
  346. package/src/core/__workshop__/constants.ts +0 -293
  347. package/src/core/_compat.ts +0 -264
  348. package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
  349. package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
  350. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  351. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
  352. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
  353. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
  354. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  355. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
  356. package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
  357. package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
  358. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  359. package/src/core/components/autocomplete/autocomplete.tsx +0 -767
  360. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -45
  361. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  362. package/src/core/components/autocomplete/constants.ts +0 -28
  363. package/src/core/components/autocomplete/index.ts +0 -2
  364. package/src/core/components/autocomplete/types.ts +0 -108
  365. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
  366. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
  367. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  368. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -51
  369. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -133
  370. package/src/core/components/breadcrumbs/index.ts +0 -1
  371. package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
  372. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  373. package/src/core/components/dialog/__workshop__/index.ts +0 -19
  374. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  375. package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
  376. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
  377. package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
  378. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  379. package/src/core/components/dialog/__workshop__/props.tsx +0 -75
  380. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  381. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  382. package/src/core/components/dialog/dialog.tsx +0 -430
  383. package/src/core/components/dialog/dialogContext.ts +0 -20
  384. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  385. package/src/core/components/dialog/index.ts +0 -4
  386. package/src/core/components/dialog/styles.ts +0 -77
  387. package/src/core/components/dialog/useDialog.ts +0 -11
  388. package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
  389. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  390. package/src/core/components/hotkeys/hotkeys.test.tsx +0 -42
  391. package/src/core/components/hotkeys/hotkeys.tsx +0 -66
  392. package/src/core/components/hotkeys/index.ts +0 -1
  393. package/src/core/components/index.ts +0 -9
  394. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  395. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
  396. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
  397. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
  398. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  399. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
  400. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  401. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  402. package/src/core/components/menu/__workshop__/index.ts +0 -89
  403. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  404. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -58
  405. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  406. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
  407. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  408. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
  409. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  410. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  411. package/src/core/components/menu/helpers.ts +0 -82
  412. package/src/core/components/menu/index.ts +0 -5
  413. package/src/core/components/menu/menu.spacing.test.tsx +0 -63
  414. package/src/core/components/menu/menu.test.tsx +0 -125
  415. package/src/core/components/menu/menu.tsx +0 -178
  416. package/src/core/components/menu/menuButton.tsx +0 -268
  417. package/src/core/components/menu/menuContext.ts +0 -18
  418. package/src/core/components/menu/menuDivider.ts +0 -23
  419. package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -63
  420. package/src/core/components/menu/menuGroup.tsx +0 -233
  421. package/src/core/components/menu/menuItem.spacing.test.tsx +0 -59
  422. package/src/core/components/menu/menuItem.tsx +0 -197
  423. package/src/core/components/menu/useMenu.ts +0 -21
  424. package/src/core/components/menu/useMenuController.ts +0 -231
  425. package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
  426. package/src/core/components/skeleton/__workshop__/index.ts +0 -11
  427. package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
  428. package/src/core/components/skeleton/index.ts +0 -2
  429. package/src/core/components/skeleton/skeleton.tsx +0 -57
  430. package/src/core/components/skeleton/styles.ts +0 -50
  431. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  432. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  433. package/src/core/components/tab/__workshop__/index.ts +0 -14
  434. package/src/core/components/tab/index.ts +0 -3
  435. package/src/core/components/tab/tab.tsx +0 -101
  436. package/src/core/components/tab/tabList.test.tsx +0 -48
  437. package/src/core/components/tab/tabList.tsx +0 -70
  438. package/src/core/components/tab/tabPanel.tsx +0 -39
  439. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  440. package/src/core/components/toast/__workshop__/index.ts +0 -19
  441. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  442. package/src/core/components/toast/index.ts +0 -4
  443. package/src/core/components/toast/styles.ts +0 -77
  444. package/src/core/components/toast/toast.test.tsx +0 -101
  445. package/src/core/components/toast/toast.tsx +0 -198
  446. package/src/core/components/toast/toastContext.ts +0 -7
  447. package/src/core/components/toast/toastLayer.tsx +0 -51
  448. package/src/core/components/toast/toastProvider.tsx +0 -113
  449. package/src/core/components/toast/toastState.ts +0 -6
  450. package/src/core/components/toast/types.ts +0 -26
  451. package/src/core/components/toast/useToast.ts +0 -25
  452. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  453. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  454. package/src/core/components/tree/__workshop__/index.ts +0 -21
  455. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  456. package/src/core/components/tree/helpers.ts +0 -105
  457. package/src/core/components/tree/index.ts +0 -4
  458. package/src/core/components/tree/style.ts +0 -105
  459. package/src/core/components/tree/tree.test.tsx +0 -55
  460. package/src/core/components/tree/tree.tsx +0 -240
  461. package/src/core/components/tree/treeContext.ts +0 -10
  462. package/src/core/components/tree/treeGroup.tsx +0 -28
  463. package/src/core/components/tree/treeItem.test.tsx +0 -65
  464. package/src/core/components/tree/treeItem.tsx +0 -224
  465. package/src/core/components/tree/types.ts +0 -25
  466. package/src/core/components/tree/useTree.ts +0 -17
  467. package/src/core/constants.ts +0 -79
  468. package/src/core/helpers/animation.ts +0 -27
  469. package/src/core/helpers/element.ts +0 -55
  470. package/src/core/helpers/focus.ts +0 -100
  471. package/src/core/helpers/index.ts +0 -4
  472. package/src/core/helpers/scroll.ts +0 -15
  473. package/src/core/hooks/index.ts +0 -12
  474. package/src/core/hooks/useArrayProp.ts +0 -17
  475. package/src/core/hooks/useClickOutside.test.tsx +0 -482
  476. package/src/core/hooks/useClickOutside.ts +0 -118
  477. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -115
  478. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  479. package/src/core/hooks/useCustomValidity.ts +0 -13
  480. package/src/core/hooks/useDelayed.test.ts +0 -88
  481. package/src/core/hooks/useDelayedState.ts +0 -36
  482. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
  483. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  484. package/src/core/hooks/useElementRect/index.ts +0 -1
  485. package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
  486. package/src/core/hooks/useElementSize.ts +0 -19
  487. package/src/core/hooks/useForwardedRef.ts +0 -19
  488. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  489. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  490. package/src/core/hooks/useMatchMedia.ts +0 -28
  491. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
  492. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  493. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  494. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
  495. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  496. package/src/core/hooks/useMounted.ts +0 -15
  497. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -56
  498. package/src/core/hooks/usePrefersDark.test.tsx +0 -19
  499. package/src/core/hooks/usePrefersDark.ts +0 -16
  500. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
  501. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -19
  502. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  503. package/src/core/index.ts +0 -10
  504. package/src/core/lib/createGlobalScopedContext.ts +0 -36
  505. package/src/core/lib/globalScope.ts +0 -19
  506. package/src/core/lib/isRecord.ts +0 -3
  507. package/src/core/middleware/origin.ts +0 -47
  508. package/src/core/observers/elementSizeObserver.ts +0 -116
  509. package/src/core/observers/index.ts +0 -2
  510. package/src/core/observers/resizeObserver.ts +0 -9
  511. package/src/core/primitives/_selectable/index.ts +0 -1
  512. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  513. package/src/core/primitives/_selectable/style.ts +0 -115
  514. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  515. package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
  516. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  517. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  518. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
  519. package/src/core/primitives/avatar/avatar.tsx +0 -200
  520. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  521. package/src/core/primitives/avatar/avatarStack.tsx +0 -100
  522. package/src/core/primitives/avatar/index.ts +0 -4
  523. package/src/core/primitives/avatar/styles.ts +0 -167
  524. package/src/core/primitives/avatar/types.ts +0 -17
  525. package/src/core/primitives/badge/__workshop__/index.ts +0 -19
  526. package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
  527. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
  528. package/src/core/primitives/badge/badge.test.tsx +0 -16
  529. package/src/core/primitives/badge/badge.tsx +0 -70
  530. package/src/core/primitives/badge/index.ts +0 -1
  531. package/src/core/primitives/badge/styles.ts +0 -20
  532. package/src/core/primitives/badge/types.ts +0 -8
  533. package/src/core/primitives/box/__workshop__/asComponent.tsx +0 -31
  534. package/src/core/primitives/box/__workshop__/index.ts +0 -24
  535. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  536. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  537. package/src/core/primitives/box/box.test.tsx +0 -142
  538. package/src/core/primitives/box/box.tsx +0 -154
  539. package/src/core/primitives/box/index.ts +0 -1
  540. package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
  541. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  542. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
  543. package/src/core/primitives/button/__workshop__/index.ts +0 -59
  544. package/src/core/primitives/button/__workshop__/labelUploadButton.tsx +0 -36
  545. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  546. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  547. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  548. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  549. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  550. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
  551. package/src/core/primitives/button/button.test.tsx +0 -82
  552. package/src/core/primitives/button/button.tsx +0 -210
  553. package/src/core/primitives/button/index.ts +0 -1
  554. package/src/core/primitives/button/styles.ts +0 -117
  555. package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
  556. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  557. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  558. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  559. package/src/core/primitives/card/__workshop__/index.ts +0 -18
  560. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
  561. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
  562. package/src/core/primitives/card/__workshop__/props.tsx +0 -53
  563. package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
  564. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  565. package/src/core/primitives/card/card.tsx +0 -128
  566. package/src/core/primitives/card/index.ts +0 -2
  567. package/src/core/primitives/card/styles.ts +0 -147
  568. package/src/core/primitives/card/types.ts +0 -11
  569. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  570. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
  571. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
  572. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  573. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
  574. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  575. package/src/core/primitives/checkbox/index.ts +0 -1
  576. package/src/core/primitives/checkbox/styles.ts +0 -128
  577. package/src/core/primitives/code/__workshop__/index.ts +0 -19
  578. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
  579. package/src/core/primitives/code/__workshop__/props.tsx +0 -21
  580. package/src/core/primitives/code/code.tsx +0 -55
  581. package/src/core/primitives/code/index.ts +0 -1
  582. package/src/core/primitives/code/refractor.tsx +0 -20
  583. package/src/core/primitives/code/styles.ts +0 -77
  584. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  585. package/src/core/primitives/container/__workshop__/index.ts +0 -8
  586. package/src/core/primitives/container/container.tsx +0 -54
  587. package/src/core/primitives/container/index.ts +0 -2
  588. package/src/core/primitives/container/styles.ts +0 -23
  589. package/src/core/primitives/container/types.ts +0 -6
  590. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  591. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  592. package/src/core/primitives/flex/__workshop__/index.ts +0 -11
  593. package/src/core/primitives/flex/flex.tsx +0 -64
  594. package/src/core/primitives/flex/index.ts +0 -1
  595. package/src/core/primitives/grid/__workshop__/index.ts +0 -10
  596. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  597. package/src/core/primitives/grid/grid.test.tsx +0 -80
  598. package/src/core/primitives/grid/grid.tsx +0 -74
  599. package/src/core/primitives/grid/index.ts +0 -1
  600. package/src/core/primitives/heading/__workshop__/index.ts +0 -19
  601. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  602. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
  603. package/src/core/primitives/heading/heading.tsx +0 -88
  604. package/src/core/primitives/heading/index.ts +0 -1
  605. package/src/core/primitives/heading/styles.ts +0 -64
  606. package/src/core/primitives/heading/types.ts +0 -7
  607. package/src/core/primitives/index.ts +0 -27
  608. package/src/core/primitives/inline/__workshop__/index.ts +0 -8
  609. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
  610. package/src/core/primitives/inline/index.ts +0 -1
  611. package/src/core/primitives/inline/inline.test.tsx +0 -51
  612. package/src/core/primitives/inline/inline.tsx +0 -63
  613. package/src/core/primitives/inline/styles.ts +0 -32
  614. package/src/core/primitives/inline/types.ts +0 -6
  615. package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
  616. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  617. package/src/core/primitives/kbd/index.ts +0 -1
  618. package/src/core/primitives/kbd/kbd.tsx +0 -69
  619. package/src/core/primitives/label/__workshop__/index.ts +0 -19
  620. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
  621. package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
  622. package/src/core/primitives/label/index.ts +0 -1
  623. package/src/core/primitives/label/label.tsx +0 -87
  624. package/src/core/primitives/label/styles.ts +0 -45
  625. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  626. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  627. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  628. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  629. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  630. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  631. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
  632. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
  633. package/src/core/primitives/popover/__workshop__/index.ts +0 -49
  634. package/src/core/primitives/popover/constants.ts +0 -22
  635. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  636. package/src/core/primitives/popover/helpers.ts +0 -31
  637. package/src/core/primitives/popover/index.ts +0 -2
  638. package/src/core/primitives/popover/popover.tsx +0 -511
  639. package/src/core/primitives/popover/popoverCard.tsx +0 -166
  640. package/src/core/primitives/popover/types.ts +0 -7
  641. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  642. package/src/core/primitives/radio/__workshop__/index.ts +0 -11
  643. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  644. package/src/core/primitives/radio/index.ts +0 -1
  645. package/src/core/primitives/radio/radio.tsx +0 -51
  646. package/src/core/primitives/radio/styles.ts +0 -117
  647. package/src/core/primitives/select/__workshop__/index.ts +0 -11
  648. package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
  649. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  650. package/src/core/primitives/select/index.ts +0 -1
  651. package/src/core/primitives/select/select.test.tsx +0 -52
  652. package/src/core/primitives/select/select.tsx +0 -94
  653. package/src/core/primitives/select/styles.ts +0 -166
  654. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  655. package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
  656. package/src/core/primitives/spinner/index.ts +0 -1
  657. package/src/core/primitives/spinner/spinner.tsx +0 -46
  658. package/src/core/primitives/stack/__workshop__/index.ts +0 -14
  659. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  660. package/src/core/primitives/stack/index.ts +0 -1
  661. package/src/core/primitives/stack/stack.test.tsx +0 -57
  662. package/src/core/primitives/stack/stack.tsx +0 -57
  663. package/src/core/primitives/stack/styles.ts +0 -32
  664. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  665. package/src/core/primitives/switch/__workshop__/index.ts +0 -11
  666. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  667. package/src/core/primitives/switch/index.ts +0 -1
  668. package/src/core/primitives/switch/styles.ts +0 -173
  669. package/src/core/primitives/switch/switch.tsx +0 -68
  670. package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
  671. package/src/core/primitives/text/__workshop__/example.tsx +0 -39
  672. package/src/core/primitives/text/__workshop__/index.ts +0 -24
  673. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
  674. package/src/core/primitives/text/index.ts +0 -1
  675. package/src/core/primitives/text/styles.ts +0 -74
  676. package/src/core/primitives/text/text.tsx +0 -89
  677. package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
  678. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
  679. package/src/core/primitives/textArea/index.ts +0 -1
  680. package/src/core/primitives/textArea/textArea.tsx +0 -120
  681. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  682. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  683. package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
  684. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
  685. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  686. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  687. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  688. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  689. package/src/core/primitives/textInput/index.ts +0 -1
  690. package/src/core/primitives/textInput/textInput.test.tsx +0 -48
  691. package/src/core/primitives/textInput/textInput.tsx +0 -395
  692. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  693. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
  694. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  695. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
  696. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  697. package/src/core/primitives/tooltip/constants.ts +0 -23
  698. package/src/core/primitives/tooltip/index.ts +0 -2
  699. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -452
  700. package/src/core/primitives/tooltip/tooltip.tsx +0 -495
  701. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -109
  702. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  703. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  704. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  705. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -10
  706. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  707. package/src/core/primitives/types.ts +0 -179
  708. package/src/core/styles/border/borderStyle.ts +0 -56
  709. package/src/core/styles/border/index.ts +0 -2
  710. package/src/core/styles/border/types.ts +0 -10
  711. package/src/core/styles/box/boxStyle.ts +0 -69
  712. package/src/core/styles/box/index.ts +0 -2
  713. package/src/core/styles/box/types.ts +0 -11
  714. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  715. package/src/core/styles/card/index.ts +0 -1
  716. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  717. package/src/core/styles/flex/flexStyle.ts +0 -70
  718. package/src/core/styles/flex/index.ts +0 -3
  719. package/src/core/styles/flex/types.ts +0 -25
  720. package/src/core/styles/focusRing/index.ts +0 -25
  721. package/src/core/styles/font/codeFontStyle.ts +0 -13
  722. package/src/core/styles/font/headingFontStyle.ts +0 -13
  723. package/src/core/styles/font/index.ts +0 -6
  724. package/src/core/styles/font/labelFontStyle.ts +0 -13
  725. package/src/core/styles/font/responsiveFont.ts +0 -103
  726. package/src/core/styles/font/textAlignStyle.ts +0 -19
  727. package/src/core/styles/font/textFontStyle.ts +0 -13
  728. package/src/core/styles/font/types.ts +0 -35
  729. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  730. package/src/core/styles/grid/gridStyle.ts +0 -108
  731. package/src/core/styles/grid/index.ts +0 -3
  732. package/src/core/styles/grid/types.ts +0 -37
  733. package/src/core/styles/helpers.ts +0 -72
  734. package/src/core/styles/index.ts +0 -5
  735. package/src/core/styles/input/index.ts +0 -2
  736. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  737. package/src/core/styles/input/textInputStyle.ts +0 -263
  738. package/src/core/styles/internal.ts +0 -12
  739. package/src/core/styles/margin/index.ts +0 -2
  740. package/src/core/styles/margin/marginStyle.ts +0 -21
  741. package/src/core/styles/margin/marginsStyle.test.ts +0 -33
  742. package/src/core/styles/margin/types.ts +0 -9
  743. package/src/core/styles/padding/index.ts +0 -2
  744. package/src/core/styles/padding/paddingStyle.test.ts +0 -33
  745. package/src/core/styles/padding/paddingStyle.ts +0 -21
  746. package/src/core/styles/padding/types.ts +0 -12
  747. package/src/core/styles/radius/index.ts +0 -2
  748. package/src/core/styles/radius/radiusStyle.ts +0 -23
  749. package/src/core/styles/radius/types.ts +0 -8
  750. package/src/core/styles/shadow/index.ts +0 -2
  751. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  752. package/src/core/styles/shadow/types.ts +0 -6
  753. package/src/core/styles/types.ts +0 -8
  754. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  755. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  756. package/src/core/theme/__workshop__/build/story.tsx +0 -465
  757. package/src/core/theme/__workshop__/canvas.tsx +0 -352
  758. package/src/core/theme/__workshop__/color.tsx +0 -62
  759. package/src/core/theme/__workshop__/debug/story.tsx +0 -408
  760. package/src/core/theme/__workshop__/index.ts +0 -39
  761. package/src/core/theme/__workshop__/layer.tsx +0 -78
  762. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  763. package/src/core/theme/index.ts +0 -5
  764. package/src/core/theme/theme.test.tsx +0 -73
  765. package/src/core/theme/themeColorProvider.tsx +0 -29
  766. package/src/core/theme/themeContext.ts +0 -10
  767. package/src/core/theme/themeProvider.tsx +0 -62
  768. package/src/core/theme/types.ts +0 -12
  769. package/src/core/theme/useRootTheme.ts +0 -17
  770. package/src/core/theme/useTheme.ts +0 -16
  771. package/src/core/types/avatar.ts +0 -14
  772. package/src/core/types/badge.ts +0 -12
  773. package/src/core/types/box.ts +0 -19
  774. package/src/core/types/button.ts +0 -21
  775. package/src/core/types/card.ts +0 -6
  776. package/src/core/types/component.ts +0 -32
  777. package/src/core/types/dialog.ts +0 -4
  778. package/src/core/types/flex.ts +0 -30
  779. package/src/core/types/grid.ts +0 -14
  780. package/src/core/types/gridItem.ts +0 -29
  781. package/src/core/types/index.ts +0 -15
  782. package/src/core/types/placement.ts +0 -18
  783. package/src/core/types/popover.ts +0 -4
  784. package/src/core/types/radius.ts +0 -4
  785. package/src/core/types/selectable.ts +0 -6
  786. package/src/core/types/text.ts +0 -4
  787. package/src/core/utils/arrow/arrow.tsx +0 -123
  788. package/src/core/utils/arrow/cmds.ts +0 -91
  789. package/src/core/utils/arrow/index.ts +0 -1
  790. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
  791. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  792. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -100
  793. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  794. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  795. package/src/core/utils/boundaryElement/index.ts +0 -3
  796. package/src/core/utils/boundaryElement/types.ts +0 -7
  797. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  798. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -21
  799. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  800. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
  801. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
  802. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  803. package/src/core/utils/elementQuery/helpers.ts +0 -27
  804. package/src/core/utils/elementQuery/index.ts +0 -1
  805. package/src/core/utils/errorBoundary.tsx +0 -48
  806. package/src/core/utils/getElementRef.ts +0 -26
  807. package/src/core/utils/index.ts +0 -9
  808. package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
  809. package/src/core/utils/layer/__workshop__/index.ts +0 -24
  810. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
  811. package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
  812. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
  813. package/src/core/utils/layer/getLayerContext.test.ts +0 -30
  814. package/src/core/utils/layer/getLayerContext.ts +0 -21
  815. package/src/core/utils/layer/index.ts +0 -4
  816. package/src/core/utils/layer/layer.test.tsx +0 -108
  817. package/src/core/utils/layer/layer.tsx +0 -98
  818. package/src/core/utils/layer/layerContext.ts +0 -7
  819. package/src/core/utils/layer/layerProvider.tsx +0 -111
  820. package/src/core/utils/layer/types.ts +0 -9
  821. package/src/core/utils/layer/useLayer.ts +0 -26
  822. package/src/core/utils/portal/__workshop__/index.ts +0 -14
  823. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  824. package/src/core/utils/portal/index.ts +0 -4
  825. package/src/core/utils/portal/portal.test.tsx +0 -103
  826. package/src/core/utils/portal/portal.ts +0 -32
  827. package/src/core/utils/portal/portalContext.ts +0 -31
  828. package/src/core/utils/portal/portalProvider.tsx +0 -47
  829. package/src/core/utils/portal/types.ts +0 -9
  830. package/src/core/utils/portal/usePortal.ts +0 -25
  831. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  832. package/src/core/utils/srOnly/index.ts +0 -1
  833. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  834. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
  835. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
  836. package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
  837. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
  838. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
  839. package/src/core/utils/virtualList/index.ts +0 -1
  840. package/src/core/utils/virtualList/virtualList.tsx +0 -200
  841. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
  842. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
  843. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -22
  844. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
  845. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
  846. package/src/theme/build/_deprecated/color/color.test.ts +0 -63
  847. package/src/theme/build/_deprecated/color/defaults.ts +0 -390
  848. package/src/theme/build/_deprecated/color/factory.ts +0 -142
  849. package/src/theme/build/_deprecated/color/index.ts +0 -1
  850. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
  851. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
  852. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
  853. package/src/theme/build/buildColorTheme.test.ts +0 -183
  854. package/src/theme/build/buildColorTheme.ts +0 -499
  855. package/src/theme/build/buildTheme.test.ts +0 -87
  856. package/src/theme/build/buildTheme.ts +0 -36
  857. package/src/theme/build/colorToken/colorToken.ts +0 -19
  858. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  859. package/src/theme/build/colorToken/index.ts +0 -2
  860. package/src/theme/build/colorToken/types.ts +0 -6
  861. package/src/theme/build/index.ts +0 -3
  862. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  863. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  864. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  865. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  866. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
  867. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  868. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  869. package/src/theme/build/lib/color-fns/index.ts +0 -6
  870. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  871. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  872. package/src/theme/build/lib/color-fns/types.ts +0 -28
  873. package/src/theme/build/lib/isRecord.ts +0 -3
  874. package/src/theme/build/lib/lazy.ts +0 -30
  875. package/src/theme/build/lib/utils.ts +0 -19
  876. package/src/theme/build/merge.ts +0 -26
  877. package/src/theme/build/mixThemeColor.test.ts +0 -21
  878. package/src/theme/build/mixThemeColor.ts +0 -53
  879. package/src/theme/build/renderColorTheme.ts +0 -532
  880. package/src/theme/build/renderColorValue.ts +0 -85
  881. package/src/theme/build/resolveColorTokens.ts +0 -268
  882. package/src/theme/build/theme.test.ts +0 -27
  883. package/src/theme/config/helpers.ts +0 -55
  884. package/src/theme/config/index.ts +0 -4
  885. package/src/theme/config/system.ts +0 -115
  886. package/src/theme/config/tokens/color/index.ts +0 -1
  887. package/src/theme/config/tokens/color/types.ts +0 -133
  888. package/src/theme/config/tokens/index.ts +0 -4
  889. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
  890. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  891. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
  892. package/src/theme/config/tokens/parseTokenValue.ts +0 -133
  893. package/src/theme/config/tokens/types.ts +0 -53
  894. package/src/theme/config/types.ts +0 -46
  895. package/src/theme/defaults/colorPalette.ts +0 -5
  896. package/src/theme/defaults/colorTokens.ts +0 -648
  897. package/src/theme/defaults/config.ts +0 -84
  898. package/src/theme/defaults/fonts.ts +0 -227
  899. package/src/theme/getScopedTheme.ts +0 -98
  900. package/src/theme/index.ts +0 -5
  901. package/src/theme/system/avatar.ts +0 -14
  902. package/src/theme/system/color/_constants.ts +0 -45
  903. package/src/theme/system/color/_helpers.ts +0 -24
  904. package/src/theme/system/color/_system.ts +0 -40
  905. package/src/theme/system/color/avatar.ts +0 -15
  906. package/src/theme/system/color/badge.ts +0 -16
  907. package/src/theme/system/color/button.ts +0 -17
  908. package/src/theme/system/color/color.ts +0 -34
  909. package/src/theme/system/color/index.ts +0 -13
  910. package/src/theme/system/color/input.ts +0 -25
  911. package/src/theme/system/color/kbd.ts +0 -8
  912. package/src/theme/system/color/selectable.ts +0 -12
  913. package/src/theme/system/color/shadow.ts +0 -7
  914. package/src/theme/system/color/state.ts +0 -43
  915. package/src/theme/system/color/syntax.ts +0 -41
  916. package/src/theme/system/css.ts +0 -14
  917. package/src/theme/system/focusRing.ts +0 -7
  918. package/src/theme/system/font.ts +0 -52
  919. package/src/theme/system/index.ts +0 -11
  920. package/src/theme/system/input.ts +0 -33
  921. package/src/theme/system/layer.ts +0 -8
  922. package/src/theme/system/shadow.ts +0 -19
  923. package/src/theme/system/styles.ts +0 -13
  924. package/src/theme/system/theme.ts +0 -138
  925. package/src/theme/system/v0/avatar.ts +0 -10
  926. package/src/theme/system/v0/color/_generic.ts +0 -35
  927. package/src/theme/system/v0/color/_system.ts +0 -17
  928. package/src/theme/system/v0/color/base.ts +0 -21
  929. package/src/theme/system/v0/color/button.ts +0 -42
  930. package/src/theme/system/v0/color/card.ts +0 -19
  931. package/src/theme/system/v0/color/color.ts +0 -40
  932. package/src/theme/system/v0/color/index.ts +0 -11
  933. package/src/theme/system/v0/color/input.ts +0 -34
  934. package/src/theme/system/v0/color/muted.ts +0 -26
  935. package/src/theme/system/v0/color/selectable.ts +0 -31
  936. package/src/theme/system/v0/color/solid.ts +0 -26
  937. package/src/theme/system/v0/color/spot.ts +0 -13
  938. package/src/theme/system/v0/index.ts +0 -3
  939. package/src/theme/system/v0/input.ts +0 -23
  940. package/src/theme/versioning/getTheme_v2.ts +0 -57
  941. package/src/theme/versioning/index.ts +0 -5
  942. package/src/theme/versioning/is_v0.ts +0 -6
  943. package/src/theme/versioning/is_v2.ts +0 -6
  944. package/src/theme/versioning/themeColor_v0_v2.ts +0 -243
  945. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
  946. package/src/theme/versioning/v0_v2.ts +0 -94
  947. package/src/theme/versioning/v2_v0.ts +0 -135
@@ -0,0 +1,824 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import { isObj, keyStartsWith, pathKey } from "../lib/path.js";
3
+ import { KitIcon } from "../lib/icons.js";
4
+ import { useForm, useKitEnv } from "../context.js";
5
+ import { Segmented } from "../ui/controls.js";
6
+ import { Menu, MenuContent, MenuItem, MenuTrigger, Tooltip } from "../ui/overlay.js";
7
+ import { isEmptyValue, isHidden } from "../lib/schema.js";
8
+ import { IssueDot } from "./bits.js";
9
+ import { PeerStack } from "./field-shell.js";
10
+ import { groupSummary } from "./group-summary.js";
11
+ import { columnSpans } from "../lib/columns.js";
12
+ import * as React from "react";
13
+ import { IconChevronDown, IconChevronRight, IconDeviceDesktop, IconDeviceLaptop, IconDeviceMobile, IconDeviceTablet, IconMessage } from "@tabler/icons-react";
14
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
+ import { AnimatePresence, motion, useReducedMotion } from "framer-motion";
16
+ //#region src/kit/engine/grouping.tsx
17
+ /**
18
+ * GROUPING (CPO D45; V2 HEAD 9829bf1 kit/engine/grouping.tsx + the layout half of kit/engine/field-list.tsx) — the four
19
+ * ways the Block Kit puts fields together, and the rules for nesting them.
20
+ *
21
+ * Group tabs Content · Media · Design · Settings top of a frame only (FieldList)
22
+ * <FieldSection> ────────────────────────────────── a titled set of siblings: hairline above, 36px header,
23
+ * Spacing Top 56 · Bottom 88 › no box, no left rule; collapsed = one-line summary
24
+ * <FieldInset> Rating line a small object (≤3 simple fields): its label, then the
25
+ * │ Stars [ 4.9 / 5 ] children behind ONE 1px --line inset line (D63). No tint,
26
+ * │ Text [ 4.9 from 2,400+ reviews ] no box, no radius: never a box inside a line.
27
+ * <FieldUnit> ┌ Shop cookware Primary › ┐ ONE compound control (button = label + link, image + alt)
28
+ * └ /products ┘
29
+ * Drill row [▣] Desktop › anything bigger, or anything one level deeper
30
+ *
31
+ * Nesting: section (level 1, spacing only) → inset (level 2, the inset line) → level 3+ always drills. Never two
32
+ * containers in one level. Rhythm: field gap 16 · group gap 24, the same gap inside an inset; dense (form width ≤ 360px)
33
+ * 12 · 20; document 20 · 32.
34
+ * Columns (D63, `columnSpans`): side by side only for genuinely short fields (number, switch, select, date, colour, icon,
35
+ * rating, text with max ≤ 24) AND only when the form is at least 420px wide (a container query). Everything else is full
36
+ * width, so a text value never wraps in a cramped column.
37
+ * `<BreakpointGroup>`: per-screen-size objects (desktop / tablet / phone) as ONE group with a segmented switcher.
38
+ *
39
+ * Port notes (kit vs V2): V2 token utilities carry the kit- prefix (text-fg-3 → text-kit-fg-3, bg-well →
40
+ * bg-kit-well, border-field → border-kit-field-border); `motion/react` is `framer-motion`; V2's `scrollbar-none` and
41
+ * `tabular` utilities are written out. V2's FieldList imports KitField directly; here it takes `renderField` so the
42
+ * engine has no grouping ↔ kit-field import cycle.
43
+ */
44
+ /** Gaps per host. `stack` = between sibling fields; `group` = before a section / after one; `gridY` = rows of a column grid.
45
+ * An inset uses the same field gap as everything else (D63: one rhythm). */
46
+ var RHYTHM = {
47
+ panel: {
48
+ tabs: "pb-4 @max-[360px]:pb-3",
49
+ stack: "gap-4 @max-[360px]:gap-3",
50
+ field: "pt-4 @max-[360px]:pt-3",
51
+ group: "pt-6 @max-[360px]:pt-5",
52
+ gridY: "gap-y-4 @max-[360px]:gap-y-3"
53
+ },
54
+ document: {
55
+ tabs: "pb-5",
56
+ stack: "gap-5",
57
+ field: "pt-5",
58
+ group: "pt-8",
59
+ gridY: "gap-y-5"
60
+ }
61
+ };
62
+ var useRhythm = () => RHYTHM[useKitEnv().variant];
63
+ var InsetDepth = React.createContext(0);
64
+ /** 0 at a frame's top level and inside sections; 1 inside an inset (or an expanded array row). */
65
+ var useInsetDepth = () => React.useContext(InsetDepth);
66
+ /** Mark children as sitting inside one container (array inline rows use this so objects inside them drill). */
67
+ function InsetScope({ children }) {
68
+ const d = React.useContext(InsetDepth);
69
+ return /* @__PURE__ */ jsx(InsetDepth.Provider, {
70
+ value: d + 1,
71
+ children
72
+ });
73
+ }
74
+ function useGroupStatus(paths) {
75
+ const form = useForm();
76
+ const env = useKitEnv();
77
+ let errors = 0;
78
+ let warnings = 0;
79
+ const peers = [];
80
+ let comments = 0;
81
+ const keys = paths.map(pathKey);
82
+ for (const p of paths) {
83
+ const r = form?.rollup(p) ?? {
84
+ errors: 0,
85
+ warnings: 0
86
+ };
87
+ errors += r.errors;
88
+ warnings += r.warnings;
89
+ }
90
+ for (const [k, list] of Object.entries(env.presence)) if (keys.some((g) => keyStartsWith(k, g))) {
91
+ for (const p of list) if (!peers.some((x) => x.name === p.name)) peers.push(p);
92
+ }
93
+ for (const [k, n] of Object.entries(env.comments)) if (keys.some((g) => keyStartsWith(k, g))) comments += n;
94
+ return {
95
+ errors,
96
+ warnings,
97
+ peers,
98
+ comments
99
+ };
100
+ }
101
+ /** A field that animates its height in and out when a condition shows or hides it (D45). `space` = its top spacing. */
102
+ var Appear = React.forwardRef(({ children, space, className }, ref) => {
103
+ const t = {
104
+ duration: useReducedMotion() ? 0 : .2,
105
+ ease: [
106
+ .22,
107
+ 1,
108
+ .36,
109
+ 1
110
+ ]
111
+ };
112
+ const el = React.useRef(null);
113
+ const clip = (on) => {
114
+ if (el.current) el.current.style.overflow = on ? "hidden" : "";
115
+ };
116
+ return /* @__PURE__ */ jsx(motion.div, {
117
+ ref: (n) => {
118
+ el.current = n;
119
+ if (typeof ref === "function") ref(n);
120
+ else if (ref) ref.current = n;
121
+ },
122
+ initial: {
123
+ height: 0,
124
+ opacity: 0
125
+ },
126
+ animate: {
127
+ height: "auto",
128
+ opacity: 1
129
+ },
130
+ exit: {
131
+ height: 0,
132
+ opacity: 0
133
+ },
134
+ transition: t,
135
+ onAnimationStart: () => clip(true),
136
+ onAnimationComplete: () => clip(false),
137
+ className: cn("min-w-0", className),
138
+ children: /* @__PURE__ */ jsx("div", {
139
+ className: space,
140
+ children
141
+ })
142
+ });
143
+ });
144
+ Appear.displayName = "Appear";
145
+ /** Sibling fields that appear / disappear smoothly. `gapless`: the parent draws the gaps (grid, inset). */
146
+ function AnimatedFields({ fields, render, gapless, space }) {
147
+ const rhythm = useRhythm();
148
+ return /* @__PURE__ */ jsx(AnimatePresence, {
149
+ initial: false,
150
+ children: fields.map((f, i) => /* @__PURE__ */ jsx(Appear, {
151
+ space: gapless || i === 0 ? void 0 : space ?? rhythm.field,
152
+ children: render(f)
153
+ }, f.name))
154
+ });
155
+ }
156
+ function GroupBadges({ status }) {
157
+ const { errors, warnings, peers, comments } = status;
158
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
159
+ errors ? /* @__PURE__ */ jsx(Tooltip, {
160
+ content: `${errors} ${errors === 1 ? "issue" : "issues"} to fix inside`,
161
+ children: /* @__PURE__ */ jsx("span", {
162
+ role: "img",
163
+ "aria-label": `${errors} ${errors === 1 ? "issue" : "issues"} to fix`,
164
+ className: "inline-flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full bg-kit-danger-soft px-1 text-kit-2xs font-medium tabular-nums text-kit-danger-fg",
165
+ children: errors
166
+ })
167
+ }) : warnings ? /* @__PURE__ */ jsx(IssueDot, {
168
+ errors: 0,
169
+ warnings
170
+ }) : null,
171
+ comments ? /* @__PURE__ */ jsx(Tooltip, {
172
+ content: `${comments} open ${comments === 1 ? "comment" : "comments"} inside`,
173
+ children: /* @__PURE__ */ jsxs("span", {
174
+ role: "img",
175
+ "aria-label": `${comments} open ${comments === 1 ? "comment" : "comments"}`,
176
+ className: "inline-flex h-4 shrink-0 items-center gap-0.5 rounded-kit-md px-0.5 text-kit-2xs tabular-nums text-kit-fg-3",
177
+ children: [/* @__PURE__ */ jsx(IconMessage, {
178
+ className: "size-3",
179
+ stroke: 1.75,
180
+ "aria-hidden": true
181
+ }), comments]
182
+ })
183
+ }) : null,
184
+ peers.length ? /* @__PURE__ */ jsx(PeerStack, {
185
+ peers,
186
+ size: 16
187
+ }) : null
188
+ ] });
189
+ }
190
+ /**
191
+ * Sibling fields, laid out by the D63 rule: a plain animated stack, or (when `columns` and at least one pair of short
192
+ * neighbours) a grid that turns two-up only when the form is ≥ 420px wide. Used by sections, insets and array rows.
193
+ */
194
+ function FieldRun({ fields, render, columns = true }) {
195
+ const rhythm = useRhythm();
196
+ const spans = columns ? columnSpans(fields) : fields.map(() => false);
197
+ if (!spans.some(Boolean)) return /* @__PURE__ */ jsx("div", {
198
+ className: "flex min-w-0 flex-col",
199
+ children: /* @__PURE__ */ jsx(AnimatedFields, {
200
+ fields,
201
+ render
202
+ })
203
+ });
204
+ return /* @__PURE__ */ jsx("div", {
205
+ "data-slot": "field-columns",
206
+ className: cn("grid min-w-0 grid-cols-1 gap-x-3 @[420px]:grid-cols-2", rhythm.gridY),
207
+ children: fields.map((f, i) => /* @__PURE__ */ jsx("div", {
208
+ className: cn("min-w-0", !spans[i] && "@[420px]:col-span-2"),
209
+ children: render(f)
210
+ }, f.name))
211
+ });
212
+ }
213
+ function FieldSection({ title, description, collapsible = true, defaultOpen = true, open: openProp, onOpenChange, summary, status, divider = true, revealWhen, disabled, actions, lead, columns, icon, adornment, className, bodyClassName, children }) {
214
+ const rhythm = useRhythm();
215
+ const { variant } = useKitEnv();
216
+ const id = React.useId();
217
+ const [inner, setInner] = React.useState(defaultOpen);
218
+ const open = !collapsible || (openProp ?? inner);
219
+ const setOpen = (o) => {
220
+ if (openProp === void 0) setInner(o);
221
+ onOpenChange?.(o);
222
+ };
223
+ React.useEffect(() => {
224
+ if (revealWhen && !open) setOpen(true);
225
+ }, [revealWhen]);
226
+ const st = {
227
+ errors: 0,
228
+ warnings: 0,
229
+ peers: [],
230
+ comments: 0,
231
+ ...status
232
+ };
233
+ const titleCls = cn("shrink-0 font-semibold text-kit-fg", variant === "document" ? "text-kit-base" : "text-kit-sm", disabled && "text-kit-fg-4");
234
+ const body = /* @__PURE__ */ jsxs("div", {
235
+ id: `${id}-body`,
236
+ className: cn("flex flex-col pb-2 pt-1", rhythm.stack, bodyClassName),
237
+ children: [
238
+ description ? /* @__PURE__ */ jsx("p", {
239
+ className: "-mt-1 text-kit-xs leading-4 text-kit-fg-3",
240
+ children: description
241
+ }) : null,
242
+ lead,
243
+ columns === 2 ? /* @__PURE__ */ jsx("div", {
244
+ className: cn("grid grid-cols-1 gap-x-3 @[420px]:grid-cols-2", rhythm.gridY),
245
+ children
246
+ }) : children
247
+ ]
248
+ });
249
+ return /* @__PURE__ */ jsxs("section", {
250
+ role: "group",
251
+ "aria-labelledby": `${id}-title`,
252
+ "data-group": "section",
253
+ "data-state": open ? "open" : "closed",
254
+ className: cn("group/section relative", divider && "border-t border-kit-line pt-1", "before:pointer-events-none before:absolute before:-left-2.5 before:bottom-2 before:top-11 before:w-px before:bg-transparent before:transition-colors before:duration-200 data-[state=open]:focus-within:before:bg-kit-line", "[&:has([data-group=inset]:focus-within)]:before:!bg-transparent", className),
255
+ children: [/* @__PURE__ */ jsxs("div", {
256
+ className: "flex min-h-9 items-center gap-2",
257
+ children: [collapsible ? /* @__PURE__ */ jsxs("button", {
258
+ type: "button",
259
+ onClick: () => !disabled && setOpen(!open),
260
+ "aria-expanded": open,
261
+ "aria-controls": open ? `${id}-body` : void 0,
262
+ "aria-disabled": disabled || void 0,
263
+ className: cn("group/sh -mx-2 flex h-9 min-w-0 flex-1 items-center gap-2 rounded-kit-md px-2 text-left transition-colors", disabled ? "cursor-not-allowed" : "hover:bg-kit-hover"),
264
+ children: [
265
+ icon ? /* @__PURE__ */ jsx("span", {
266
+ "aria-hidden": true,
267
+ className: "flex shrink-0 text-kit-fg-3 [&_svg]:size-3.5",
268
+ children: icon
269
+ }) : null,
270
+ /* @__PURE__ */ jsx("span", {
271
+ id: `${id}-title`,
272
+ className: titleCls,
273
+ children: title
274
+ }),
275
+ adornment,
276
+ !open && summary ? /* @__PURE__ */ jsx("span", {
277
+ className: "min-w-0 flex-1 truncate text-right text-kit-xs text-kit-fg-3",
278
+ children: summary
279
+ }) : /* @__PURE__ */ jsx("span", { className: "flex-1" }),
280
+ !open ? /* @__PURE__ */ jsx(GroupBadges, { status: st }) : null,
281
+ /* @__PURE__ */ jsx(IconChevronRight, {
282
+ "aria-hidden": true,
283
+ stroke: 1.5,
284
+ className: cn("size-4 shrink-0 text-kit-fg-3 transition-transform duration-200 group-hover/sh:text-kit-fg-2", open && "rotate-90")
285
+ })
286
+ ]
287
+ }) : /* @__PURE__ */ jsx("h3", {
288
+ id: `${id}-title`,
289
+ className: cn(titleCls, "flex-1"),
290
+ children: title
291
+ }), actions]
292
+ }), collapsible ? /* @__PURE__ */ jsx(SectionBody, {
293
+ open,
294
+ children: body
295
+ }) : body]
296
+ });
297
+ }
298
+ /**
299
+ * The open / close motion of a section (D52: no jitter). Height only, 200ms, the same curve as conditional fields. The
300
+ * body is clipped ONLY while the height moves, so focus rings, the gutter edge and popovers are never cut at rest and
301
+ * nothing snaps when the clip comes off; no opacity flash on the content; instant with reduced motion.
302
+ */
303
+ function SectionBody({ open, children }) {
304
+ const reduce = useReducedMotion();
305
+ const el = React.useRef(null);
306
+ const clip = (on) => {
307
+ if (el.current) el.current.style.overflow = on ? "hidden" : "";
308
+ };
309
+ return /* @__PURE__ */ jsx(AnimatePresence, {
310
+ initial: false,
311
+ children: open ? /* @__PURE__ */ jsx(motion.div, {
312
+ ref: el,
313
+ initial: { height: 0 },
314
+ animate: { height: "auto" },
315
+ exit: { height: 0 },
316
+ transition: {
317
+ duration: reduce ? 0 : .2,
318
+ ease: [
319
+ .22,
320
+ 1,
321
+ .36,
322
+ 1
323
+ ]
324
+ },
325
+ onAnimationStart: () => clip(true),
326
+ onAnimationComplete: () => clip(false),
327
+ className: "min-w-0",
328
+ children
329
+ }) : null
330
+ });
331
+ }
332
+ /**
333
+ * D63: the ONE way to show "these fields belong together" inside a form. The object's label sits above (the field shell);
334
+ * the children sit behind a single 1px --line inset line, `ml-1.5 pl-3`. No tint, no ring, no radius, no padding box.
335
+ * Children keep the form's own field gap. Short neighbours pair up on wide forms through `FieldRun`.
336
+ */
337
+ function FieldInset({ children, labelledBy, label, className }) {
338
+ return /* @__PURE__ */ jsx(InsetScope, { children: /* @__PURE__ */ jsx("div", {
339
+ role: "group",
340
+ "aria-labelledby": labelledBy,
341
+ "aria-label": labelledBy ? void 0 : label,
342
+ "data-group": "inset",
343
+ className: cn(INSET_LINE, "flex flex-col", className),
344
+ children
345
+ }) });
346
+ }
347
+ /** The inset line every nested group uses (inline objects, expanded array rows). */
348
+ var INSET_LINE = "ml-1.5 min-w-0 border-l border-kit-line pl-3";
349
+ /**
350
+ * Reads as ONE input: the field border, radius 6, the input focus treatment on the whole unit; rows inside are split by a
351
+ * hairline and have no borders of their own. Use for values that only make sense together (founder rule: a button's
352
+ * label and link are one unit).
353
+ */
354
+ var FieldUnit = React.forwardRef(({ invalid, disabled, className, children, ...rest }, ref) => /* @__PURE__ */ jsx("div", {
355
+ ref,
356
+ role: "group",
357
+ "data-slot": "field-unit",
358
+ "data-invalid": invalid || void 0,
359
+ "aria-disabled": disabled || void 0,
360
+ ...rest,
361
+ className: cn("flex min-w-0 flex-col divide-y divide-kit-line-subtle rounded-kit-md border border-kit-field-border bg-kit-field-bg shadow-kit-field transition-[border-color,box-shadow] duration-150", "hover:border-kit-field-border-hover focus-within:border-kit-field-border-focus focus-within:shadow-kit-ring-field", "[&>*:first-child]:rounded-t-[5px] [&>*:last-child]:rounded-b-[5px]", invalid && "border-[var(--kit-field-invalid)] hover:border-[var(--kit-field-invalid)]", disabled && "pointer-events-none bg-kit-subtle opacity-60", className),
362
+ children
363
+ }));
364
+ FieldUnit.displayName = "FieldUnit";
365
+ /** One row of a unit: 36px, 8px side padding, no border (the unit draws the hairline between rows). */
366
+ function FieldUnitRow({ className, children, ...rest }) {
367
+ return /* @__PURE__ */ jsx("div", {
368
+ ...rest,
369
+ className: cn("flex min-h-9 min-w-0 items-center gap-2 px-1", className),
370
+ children
371
+ });
372
+ }
373
+ var BREAKPOINT_NAMES = [
374
+ "desktop",
375
+ "laptop",
376
+ "tablet",
377
+ "mobile",
378
+ "phone"
379
+ ];
380
+ var isBreakpointName = (n) => BREAKPOINT_NAMES.includes(n.toLowerCase());
381
+ var BP_ICON = {
382
+ desktop: IconDeviceDesktop,
383
+ laptop: IconDeviceLaptop,
384
+ tablet: IconDeviceTablet,
385
+ mobile: IconDeviceMobile,
386
+ phone: IconDeviceMobile
387
+ };
388
+ /** An object field "differs" from the base breakpoint when it has an inherit switch that is off, or (without one) any value. */
389
+ function overrides(f, v) {
390
+ if (!isObj(v)) return false;
391
+ const inherit = (f.fields ?? []).find((x) => x.type === "boolean" && /^(inherit|same|sameAs|useDesktop|inheritDesktop)/i.test(x.name));
392
+ if (inherit) return v[inherit.name] === false;
393
+ return (f.fields ?? []).some((x) => !isEmptyValue(v[x.name]));
394
+ }
395
+ /**
396
+ * Per-screen-size settings as ONE group: the section header, then a segmented switcher (Desktop · Tablet · Phone) with a
397
+ * dot on every size that has its own values; only the chosen size's fields show. Replaces three stacked groups.
398
+ */
399
+ function BreakpointGroup({ set, members, basePath, memoryKey, divider, renderField }) {
400
+ const form = useForm();
401
+ const rhythm = useRhythm();
402
+ const [bp, setBp] = React.useState(() => form.memory.get(`${memoryKey}:bp`) ?? members[0].name);
403
+ const active = members.find((m) => m.name === bp) ?? members[0];
404
+ const select = (n) => {
405
+ setBp(n);
406
+ form.memory.set(`${memoryKey}:bp`, n);
407
+ };
408
+ const [open, setOpen] = React.useState(() => form.memory.get(memoryKey) ?? !set.collapsed);
409
+ const status = useGroupStatus(members.map((m) => [...basePath, m.name]));
410
+ const valueOf = (m) => form.getAt([...basePath, m.name]);
411
+ const differing = members.slice(1).filter((m) => overrides(m, valueOf(m)));
412
+ const summary = differing.length ? `Own settings on ${differing.map((m) => m.title.toLowerCase()).join(" and ")}` : `Same on every screen`;
413
+ const activeValue = valueOf(active);
414
+ const obj = isObj(activeValue) ? activeValue : {};
415
+ const fields = (active.fields ?? []).filter((f) => !isHidden(f, obj));
416
+ const id = React.useId();
417
+ const compactBp = members.length >= 4 && members.every((m) => BP_ICON[m.name.toLowerCase()] || m.icon);
418
+ return /* @__PURE__ */ jsx(FieldSection, {
419
+ title: set.title,
420
+ description: set.description,
421
+ collapsible: set.collapsible !== false,
422
+ open,
423
+ onOpenChange: (o) => {
424
+ setOpen(o);
425
+ form.memory.set(memoryKey, o);
426
+ },
427
+ summary,
428
+ status,
429
+ divider,
430
+ revealWhen: form.showAllErrors && status.errors > 0,
431
+ lead: /* @__PURE__ */ jsxs("div", {
432
+ className: "flex flex-col gap-1.5",
433
+ children: [/* @__PURE__ */ jsx(Segmented, {
434
+ "aria-label": `${set.title}: screen size`,
435
+ size: "sm",
436
+ value: active.name,
437
+ onChange: select,
438
+ collapseInactive: compactBp,
439
+ className: "w-full [&>button]:flex-1",
440
+ items: members.map((m, i) => {
441
+ const Icon = BP_ICON[m.name.toLowerCase()];
442
+ const own = i > 0 && differing.includes(m);
443
+ const errs = form.rollup([...basePath, m.name]).errors;
444
+ const dot = errs ? /* @__PURE__ */ jsx("span", {
445
+ "aria-hidden": true,
446
+ className: "size-1.5 rounded-full bg-kit-danger"
447
+ }) : own ? /* @__PURE__ */ jsx("span", {
448
+ "aria-hidden": true,
449
+ className: "size-1.5 rounded-full bg-kit-accent"
450
+ }) : null;
451
+ const sr = errs ? ", has issues" : own ? ", has its own settings" : "";
452
+ const glyph = Icon ? /* @__PURE__ */ jsx(Icon, { stroke: 1.5 }) : m.icon ? /* @__PURE__ */ jsx(KitIcon, { name: m.icon }) : void 0;
453
+ if (compactBp) return {
454
+ value: m.name,
455
+ name: `${m.title}${sr}`,
456
+ tooltip: m.title,
457
+ icon: /* @__PURE__ */ jsxs("span", {
458
+ className: "relative inline-flex",
459
+ children: [glyph, dot ? /* @__PURE__ */ jsx("span", {
460
+ className: "absolute -right-1 -top-0.5 inline-flex",
461
+ children: dot
462
+ }) : null]
463
+ }),
464
+ label: /* @__PURE__ */ jsxs("span", { children: [m.title, sr ? /* @__PURE__ */ jsx("span", {
465
+ className: "sr-only",
466
+ children: sr
467
+ }) : null] })
468
+ };
469
+ return {
470
+ value: m.name,
471
+ icon: glyph,
472
+ label: /* @__PURE__ */ jsxs("span", {
473
+ className: "inline-flex items-center gap-1",
474
+ children: [
475
+ m.title,
476
+ dot,
477
+ sr ? /* @__PURE__ */ jsx("span", {
478
+ className: "sr-only",
479
+ children: sr
480
+ }) : null
481
+ ]
482
+ })
483
+ };
484
+ })
485
+ }), active.description ? /* @__PURE__ */ jsxs("p", {
486
+ className: "text-kit-xs leading-4 text-kit-fg-3",
487
+ children: [
488
+ active.title,
489
+ " · ",
490
+ active.description
491
+ ]
492
+ }) : null]
493
+ }),
494
+ children: /* @__PURE__ */ jsxs("div", {
495
+ role: "group",
496
+ "aria-labelledby": `${id}-bp`,
497
+ className: "flex flex-col",
498
+ children: [/* @__PURE__ */ jsxs("span", {
499
+ id: `${id}-bp`,
500
+ className: "sr-only",
501
+ children: [active.title, " settings"]
502
+ }), /* @__PURE__ */ jsx(AnimatePresence, {
503
+ initial: false,
504
+ children: fields.map((f, i) => /* @__PURE__ */ jsx(Appear, {
505
+ space: i === 0 ? void 0 : rhythm.field,
506
+ children: renderField(f, [
507
+ ...basePath,
508
+ active.name,
509
+ f.name
510
+ ], obj)
511
+ }, f.name))
512
+ }, active.name)]
513
+ })
514
+ });
515
+ }
516
+ var ADVANCED = {
517
+ name: "__advanced",
518
+ title: "Advanced",
519
+ description: "Rarely-changed and developer settings",
520
+ collapsed: true
521
+ };
522
+ var BREAKPOINTS = {
523
+ name: "__breakpoints",
524
+ title: "Screen sizes",
525
+ layout: "breakpoints"
526
+ };
527
+ /** Fields in schema order, with each fieldset (and the auto "Advanced" / "Screen sizes" sets) placed at its first member. */
528
+ function arrangeFields(fields, fieldsets = []) {
529
+ const items = [];
530
+ const sets = /* @__PURE__ */ new Map();
531
+ const adv = [];
532
+ const bpCount = fields.filter((f) => !f.fieldset && !f.advanced && f.type === "object" && isBreakpointName(f.name)).length;
533
+ for (const f of fields) {
534
+ const auto = !f.fieldset && !f.advanced && bpCount >= 2 && f.type === "object" && isBreakpointName(f.name);
535
+ const setName = f.fieldset ?? (auto ? BREAKPOINTS.name : void 0);
536
+ if (setName) {
537
+ let s = sets.get(setName);
538
+ if (!s) {
539
+ s = {
540
+ kind: "set",
541
+ set: auto ? BREAKPOINTS : fieldsets.find((x) => x.name === setName) ?? {
542
+ name: setName,
543
+ title: setName
544
+ },
545
+ fields: []
546
+ };
547
+ sets.set(setName, s);
548
+ items.push(s);
549
+ }
550
+ s.fields.push(f);
551
+ } else if (f.advanced) adv.push(f);
552
+ else items.push({
553
+ kind: "field",
554
+ field: f
555
+ });
556
+ }
557
+ if (adv.length) items.push({
558
+ kind: "set",
559
+ set: ADVANCED,
560
+ fields: adv
561
+ });
562
+ return items;
563
+ }
564
+ /** The group a field without `group` belongs to: the one marked `default`, else the first. */
565
+ var defaultGroup = (groups) => groups?.find((g) => g.default) ?? groups?.[0];
566
+ /**
567
+ * FieldList — lays out one frame's fields (CPO D45 grouping): group TABS (with error dots) at the top of the frame only,
568
+ * FIELDSETS as <FieldSection> (hairline + 36px header, no box, collapsed = one-line summary), breakpoint objects as ONE
569
+ * <BreakpointGroup> with a switcher, an auto "Advanced" section for `advanced` fields, and `hidden` conditions that
570
+ * appear / disappear with a height animation.
571
+ * Rhythm: label→control 6 · fields 16 · groups 24 (dense ≤360px: 12 · 20; document: 20 · 32).
572
+ */
573
+ function FieldList({ fields, fieldsets, groups, basePath, memoryKey, renderField }) {
574
+ const form = useForm();
575
+ const env = useKitEnv();
576
+ const raw = form.getAt(basePath);
577
+ const obj = isObj(raw) ? raw : {};
578
+ const visible = fields.filter((f) => !isHidden(f, obj));
579
+ const usable = (groups ?? []).filter((g) => visible.some((f) => (f.group ?? defaultGroup(groups)?.name) === g.name));
580
+ const tabs = usable.length >= 2;
581
+ const allTab = tabs && env.variant === "document";
582
+ const memTab = form.memory.get(`${memoryKey}:tab`);
583
+ const [tab, setTab] = React.useState(memTab ?? (allTab ? "__all" : defaultGroup(usable)?.name ?? ""));
584
+ const select = (t) => {
585
+ setTab(t);
586
+ form.memory.set(`${memoryKey}:tab`, t);
587
+ };
588
+ const validTabs = [...allTab ? ["__all"] : [], ...usable.map((g) => g.name)];
589
+ const active = validTabs.includes(tab) ? tab : validTabs[0] ?? "";
590
+ const inTab = (f) => !tabs || active === "__all" || (f.group ?? defaultGroup(groups)?.name) === active;
591
+ const groupErrors = (g) => visible.filter((f) => (f.group ?? defaultGroup(groups)?.name) === g).reduce((n, f) => n + form.rollup([...basePath, f.name]).errors, 0);
592
+ const items = arrangeFields(visible.filter(inTab), fieldsets);
593
+ const rhythm = useRhythm();
594
+ return /* @__PURE__ */ jsxs("div", {
595
+ className: "flex flex-col",
596
+ children: [
597
+ tabs ? /* @__PURE__ */ jsx("div", {
598
+ className: rhythm.tabs,
599
+ children: /* @__PURE__ */ jsx(GroupTabs, {
600
+ id: memoryKey,
601
+ value: active,
602
+ onChange: select,
603
+ items: [...allTab ? [{
604
+ name: "__all",
605
+ title: "All fields"
606
+ }] : [], ...usable].map((g) => ({
607
+ value: g.name,
608
+ label: g.title,
609
+ icon: "icon" in g ? g.icon : void 0,
610
+ errors: g.name === "__all" ? 0 : groupErrors(g.name)
611
+ }))
612
+ })
613
+ }) : null,
614
+ /* @__PURE__ */ jsx(AnimatePresence, {
615
+ initial: false,
616
+ children: items.map((it, i) => {
617
+ const prev = items[i - 1];
618
+ const space = i === 0 ? void 0 : it.kind === "set" ? prev?.kind === "set" ? void 0 : rhythm.group : rhythm.field;
619
+ return it.kind === "field" ? /* @__PURE__ */ jsx(Appear, {
620
+ space,
621
+ children: renderField(it.field, [...basePath, it.field.name], obj)
622
+ }, it.field.name) : /* @__PURE__ */ jsx(Appear, {
623
+ space,
624
+ children: /* @__PURE__ */ jsx(FieldsetSection, {
625
+ set: it.set,
626
+ fields: it.fields,
627
+ basePath,
628
+ obj,
629
+ memoryKey: `${memoryKey}:fs:${it.set.name}`,
630
+ divider: i > 0,
631
+ renderField
632
+ })
633
+ }, `set:${it.set.name}`);
634
+ })
635
+ }, active || "all"),
636
+ items.length === 0 ? /* @__PURE__ */ jsx("p", {
637
+ className: "py-6 text-center text-kit-sm text-kit-fg-3",
638
+ children: "No fields here yet."
639
+ }) : null
640
+ ]
641
+ });
642
+ }
643
+ var MORE_W = 72;
644
+ /** Tabs that don't fit the width fold into a "More" menu, never clipped (V2 HEAD c896beb field-list.tsx GroupTabs). The
645
+ * active tab always shows its label: when it sits in the fold it takes the last visible slot. */
646
+ function GroupTabs({ id, value, onChange, items }) {
647
+ const { variant } = useKitEnv();
648
+ const uid = React.useId();
649
+ const gap = variant === "document" ? 20 : 16;
650
+ const wrap = React.useRef(null);
651
+ const measure = React.useRef(null);
652
+ const [fit, setFit] = React.useState(items.length);
653
+ const sig = items.map((t) => `${t.value}:${t.label}:${t.icon ?? ""}`).join("|");
654
+ React.useLayoutEffect(() => {
655
+ const w = wrap.current;
656
+ const m = measure.current;
657
+ if (!w || !m) return;
658
+ const run = () => {
659
+ const widths = Array.from(m.querySelectorAll("[data-seg-value]")).map((el) => el.offsetWidth);
660
+ const room = w.clientWidth;
661
+ if (!room || !widths.length) return;
662
+ if (widths.reduce((a, b) => a + b, 0) + gap * (widths.length - 1) <= room) return setFit(widths.length);
663
+ let used = 0;
664
+ let k = 0;
665
+ for (; k < widths.length; k++) {
666
+ const next = used + (k ? gap : 0) + widths[k];
667
+ if (next + gap + MORE_W > room) break;
668
+ used = next;
669
+ }
670
+ setFit(Math.max(1, k));
671
+ };
672
+ run();
673
+ if (typeof ResizeObserver === "undefined") return;
674
+ const ro = new ResizeObserver(run);
675
+ ro.observe(w);
676
+ return () => ro.disconnect();
677
+ }, [sig, gap]);
678
+ const toTab = (t) => ({
679
+ value: t.value,
680
+ icon: t.icon ? /* @__PURE__ */ jsx(KitIcon, {
681
+ name: t.icon,
682
+ className: "size-3.5"
683
+ }) : void 0,
684
+ label: /* @__PURE__ */ jsxs("span", {
685
+ className: "inline-flex items-center gap-1.5",
686
+ "aria-label": t.errors ? `${t.label}, has errors` : void 0,
687
+ children: [t.label, t.errors ? /* @__PURE__ */ jsx("span", {
688
+ className: "size-1.5 rounded-full bg-kit-danger",
689
+ "aria-hidden": true
690
+ }) : null]
691
+ })
692
+ });
693
+ let shown = items.slice(0, fit);
694
+ if (fit < items.length && !shown.some((t) => t.value === value)) {
695
+ const act = items.find((t) => t.value === value);
696
+ if (act) shown = [...shown.slice(0, Math.max(0, fit - 1)), act];
697
+ }
698
+ const rest = items.filter((t) => !shown.includes(t));
699
+ return /* @__PURE__ */ jsxs("div", {
700
+ ref: wrap,
701
+ className: "relative -mt-1 flex min-w-0 items-stretch",
702
+ children: [
703
+ /* @__PURE__ */ jsx(Segmented, {
704
+ variant: "tabs",
705
+ bordered: true,
706
+ "aria-label": "Field groups",
707
+ size: "md",
708
+ layoutId: `kit-tab-${uid}-${id}`,
709
+ value,
710
+ onChange,
711
+ className: cn("min-w-0 flex-1", variant === "document" ? "gap-5" : "gap-4"),
712
+ items: shown.map(toTab)
713
+ }),
714
+ rest.length ? /* @__PURE__ */ jsxs("span", {
715
+ className: "flex shrink-0 items-center border-b border-kit-line pl-2",
716
+ children: [/* @__PURE__ */ jsxs(Menu, { children: [/* @__PURE__ */ jsxs(MenuTrigger, {
717
+ render: /* @__PURE__ */ jsx("button", {
718
+ type: "button",
719
+ className: "inline-flex h-8 items-center gap-1 text-kit-sm font-medium text-kit-fg-3 transition-colors hover:text-kit-fg-2 data-[popup-open]:text-kit-fg"
720
+ }),
721
+ children: [
722
+ "More",
723
+ rest.some((t) => t.errors) ? /* @__PURE__ */ jsx("span", {
724
+ className: "size-1.5 rounded-full bg-kit-danger",
725
+ "aria-label": "has errors"
726
+ }) : null,
727
+ /* @__PURE__ */ jsx(IconChevronDown, {
728
+ className: "size-3.5",
729
+ stroke: 1.5,
730
+ "aria-hidden": true
731
+ })
732
+ ]
733
+ }), /* @__PURE__ */ jsx(MenuContent, {
734
+ align: "end",
735
+ children: rest.map((t) => /* @__PURE__ */ jsxs(MenuItem, {
736
+ icon: t.icon ? /* @__PURE__ */ jsx(KitIcon, {
737
+ name: t.icon,
738
+ className: "size-3.5"
739
+ }) : void 0,
740
+ onClick: () => onChange(t.value),
741
+ children: [t.label, t.errors ? /* @__PURE__ */ jsx("span", {
742
+ className: "ml-1.5 inline-block size-1.5 rounded-full bg-kit-danger",
743
+ "aria-label": "has errors"
744
+ }) : null]
745
+ }, t.value))
746
+ })] }), /* @__PURE__ */ jsx("span", {
747
+ hidden: true,
748
+ children: rest.map((t) => /* @__PURE__ */ jsx("button", {
749
+ type: "button",
750
+ tabIndex: -1,
751
+ "data-seg-value": t.value,
752
+ onClick: () => onChange(t.value)
753
+ }, t.value))
754
+ })]
755
+ }) : null,
756
+ /* @__PURE__ */ jsx("div", {
757
+ ref: measure,
758
+ "aria-hidden": true,
759
+ inert: true,
760
+ className: "pointer-events-none invisible absolute left-0 top-0 flex whitespace-nowrap",
761
+ children: /* @__PURE__ */ jsx(Segmented, {
762
+ variant: "tabs",
763
+ size: "md",
764
+ value: "__measure",
765
+ onChange: () => {},
766
+ className: variant === "document" ? "gap-5" : "gap-4",
767
+ items: items.map(toTab)
768
+ })
769
+ })
770
+ ]
771
+ });
772
+ }
773
+ function FieldsetSection({ set, fields, basePath, obj, memoryKey, divider, renderField }) {
774
+ const form = useForm();
775
+ const breakpoints = set.layout === "breakpoints" && fields.length >= 2 && fields.every((f) => f.type === "object");
776
+ const remembered = form.memory.get(memoryKey);
777
+ const [open, setOpen] = React.useState(remembered ?? !set.collapsed);
778
+ const status = useGroupStatus(fields.map((f) => [...basePath, f.name]));
779
+ if (breakpoints) return /* @__PURE__ */ jsx(BreakpointGroup, {
780
+ set,
781
+ members: fields,
782
+ basePath,
783
+ memoryKey,
784
+ divider,
785
+ renderField
786
+ });
787
+ return /* @__PURE__ */ jsx(FieldSection, {
788
+ title: set.title,
789
+ description: set.description,
790
+ collapsible: set.collapsible !== false,
791
+ open,
792
+ onOpenChange: (o) => {
793
+ setOpen(o);
794
+ form.memory.set(memoryKey, o);
795
+ },
796
+ summary: groupSummary(fields, obj) || "Nothing set yet",
797
+ status,
798
+ divider,
799
+ revealWhen: form.showAllErrors && status.errors > 0,
800
+ children: /* @__PURE__ */ jsx(FieldRun, {
801
+ fields,
802
+ columns: set.columns === 2,
803
+ render: (f) => renderField(f, [...basePath, f.name], obj)
804
+ })
805
+ });
806
+ }
807
+ /** D41: a short field shares a 2-column row; a scale, slider, cards or radio select needs the full row. */
808
+ var isShort = (f) => [
809
+ "string",
810
+ "number",
811
+ "select",
812
+ "color",
813
+ "icon",
814
+ "boolean",
815
+ "date",
816
+ "slug",
817
+ "email",
818
+ "url",
819
+ "rating"
820
+ ].includes(f.type) && !(f.type === "select" && (f.layout === "cards" || f.layout === "radio")) && !(f.type === "number" && (f.scale || f.layout === "slider"));
821
+ //#endregion
822
+ export { AnimatedFields, Appear, BreakpointGroup, FieldInset, FieldList, FieldRun, FieldSection, FieldUnit, FieldUnitRow, FieldsetSection, GroupTabs, INSET_LINE, InsetScope, RHYTHM, arrangeFields, defaultGroup, isBreakpointName, isShort, useGroupStatus, useInsetDepth, useRhythm };
823
+
824
+ //# sourceMappingURL=grouping.js.map