@womp/kookie-ui 0.19.0 → 0.20.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 (298) hide show
  1. package/codemods/type-0.20.py +73 -0
  2. package/components.css +1003 -2360
  3. package/dist/cjs/components/_internal/base-menu.props.d.ts +2 -2
  4. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  5. package/dist/cjs/components/_internal/base-menu.props.js.map +2 -2
  6. package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -1
  7. package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
  8. package/dist/cjs/components/_internal/base-menu.utils.js.map +2 -2
  9. package/dist/cjs/components/_internal/menu-context.d.ts +5 -2
  10. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  11. package/dist/cjs/components/_internal/menu-context.js +1 -1
  12. package/dist/cjs/components/_internal/menu-context.js.map +2 -2
  13. package/dist/cjs/components/alert-dialog.js +1 -1
  14. package/dist/cjs/components/alert-dialog.js.map +2 -2
  15. package/dist/cjs/components/badge.js +1 -1
  16. package/dist/cjs/components/badge.js.map +2 -2
  17. package/dist/cjs/components/blockquote.js +1 -1
  18. package/dist/cjs/components/blockquote.js.map +2 -2
  19. package/dist/cjs/components/blockquote.props.d.ts +2 -2
  20. package/dist/cjs/components/blockquote.props.js +1 -1
  21. package/dist/cjs/components/blockquote.props.js.map +2 -2
  22. package/dist/cjs/components/button.js +1 -1
  23. package/dist/cjs/components/button.js.map +2 -2
  24. package/dist/cjs/components/chatbar.js +1 -1
  25. package/dist/cjs/components/chatbar.js.map +2 -2
  26. package/dist/cjs/components/checkbox-group.js +1 -1
  27. package/dist/cjs/components/checkbox-group.js.map +2 -2
  28. package/dist/cjs/components/code.js +1 -1
  29. package/dist/cjs/components/code.js.map +2 -2
  30. package/dist/cjs/components/code.props.d.ts +2 -2
  31. package/dist/cjs/components/code.props.js +1 -1
  32. package/dist/cjs/components/code.props.js.map +2 -2
  33. package/dist/cjs/components/combobox.js +1 -1
  34. package/dist/cjs/components/combobox.js.map +2 -2
  35. package/dist/cjs/components/combobox.props.d.ts +1 -1
  36. package/dist/cjs/components/combobox.props.js +1 -1
  37. package/dist/cjs/components/combobox.props.js.map +2 -2
  38. package/dist/cjs/components/context-menu.js +1 -1
  39. package/dist/cjs/components/context-menu.js.map +2 -2
  40. package/dist/cjs/components/context-menu.props.js +1 -1
  41. package/dist/cjs/components/context-menu.props.js.map +2 -2
  42. package/dist/cjs/components/data-list.js +1 -1
  43. package/dist/cjs/components/data-list.js.map +2 -2
  44. package/dist/cjs/components/dialog.js +1 -1
  45. package/dist/cjs/components/dialog.js.map +2 -2
  46. package/dist/cjs/components/dropdown-menu.js +1 -1
  47. package/dist/cjs/components/dropdown-menu.js.map +2 -2
  48. package/dist/cjs/components/dropdown-menu.props.js +1 -1
  49. package/dist/cjs/components/dropdown-menu.props.js.map +2 -2
  50. package/dist/cjs/components/heading.js +1 -1
  51. package/dist/cjs/components/heading.js.map +2 -2
  52. package/dist/cjs/components/heading.props.d.ts +2 -2
  53. package/dist/cjs/components/heading.props.js +1 -1
  54. package/dist/cjs/components/heading.props.js.map +2 -2
  55. package/dist/cjs/components/icon-button.js +1 -1
  56. package/dist/cjs/components/icon-button.js.map +2 -2
  57. package/dist/cjs/components/index.js +3 -3
  58. package/dist/cjs/components/index.js.map +3 -3
  59. package/dist/cjs/components/kbd.js +1 -1
  60. package/dist/cjs/components/kbd.js.map +2 -2
  61. package/dist/cjs/components/kbd.props.d.ts +1 -1
  62. package/dist/cjs/components/kbd.props.js +1 -1
  63. package/dist/cjs/components/kbd.props.js.map +2 -2
  64. package/dist/cjs/components/link.js +1 -1
  65. package/dist/cjs/components/link.js.map +2 -2
  66. package/dist/cjs/components/link.props.d.ts +2 -2
  67. package/dist/cjs/components/link.props.js +1 -1
  68. package/dist/cjs/components/link.props.js.map +2 -2
  69. package/dist/cjs/components/message-scroller.js +1 -1
  70. package/dist/cjs/components/message-scroller.js.map +2 -2
  71. package/dist/cjs/components/notice.js +1 -1
  72. package/dist/cjs/components/notice.js.map +2 -2
  73. package/dist/cjs/components/radio-group.js +1 -1
  74. package/dist/cjs/components/radio-group.js.map +2 -2
  75. package/dist/cjs/components/sheet.js +1 -1
  76. package/dist/cjs/components/sheet.js.map +2 -2
  77. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  78. package/dist/cjs/components/sidebar.js +1 -1
  79. package/dist/cjs/components/sidebar.js.map +3 -3
  80. package/dist/cjs/components/text.js +1 -1
  81. package/dist/cjs/components/text.js.map +2 -2
  82. package/dist/cjs/components/text.props.d.ts +2 -2
  83. package/dist/cjs/components/text.props.js +1 -1
  84. package/dist/cjs/components/text.props.js.map +2 -2
  85. package/dist/cjs/components/theme-panel.js +2 -2
  86. package/dist/cjs/components/theme-panel.js.map +2 -2
  87. package/dist/cjs/components/toggle-button.js +1 -1
  88. package/dist/cjs/components/toggle-button.js.map +2 -2
  89. package/dist/cjs/components/toggle-icon-button.js +1 -1
  90. package/dist/cjs/components/toggle-icon-button.js.map +2 -2
  91. package/dist/cjs/components/toolbar.js +1 -1
  92. package/dist/cjs/components/toolbar.js.map +2 -2
  93. package/dist/cjs/components/tooltip.js +1 -1
  94. package/dist/cjs/components/tooltip.js.map +2 -2
  95. package/dist/cjs/components/virtual-menu.d.ts +2 -1
  96. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  97. package/dist/cjs/components/virtual-menu.js +1 -1
  98. package/dist/cjs/components/virtual-menu.js.map +2 -2
  99. package/dist/cjs/index.js +3 -3
  100. package/dist/cjs/index.js.map +3 -3
  101. package/dist/cjs/props/index.js +1 -1
  102. package/dist/cjs/props/index.js.map +2 -2
  103. package/dist/cjs/props/weight.prop.d.ts +1 -1
  104. package/dist/cjs/props/weight.prop.d.ts.map +1 -1
  105. package/dist/cjs/props/weight.prop.js +1 -1
  106. package/dist/cjs/props/weight.prop.js.map +2 -2
  107. package/dist/esm/chunk-2WSD2H23.js +2 -0
  108. package/dist/esm/chunk-2WSD2H23.js.map +7 -0
  109. package/dist/esm/{chunk-JZSXHYUU.js → chunk-33IRPFDK.js} +2 -2
  110. package/dist/esm/{chunk-32ATKZAP.js → chunk-3E6ADI2F.js} +2 -2
  111. package/dist/esm/{chunk-JBC6DT2X.js → chunk-74SNS4VY.js} +2 -2
  112. package/dist/esm/chunk-CD324U6G.js +2 -0
  113. package/dist/esm/chunk-CD324U6G.js.map +7 -0
  114. package/dist/esm/{chunk-DIR22XIX.js → chunk-CNMFVJNC.js} +2 -2
  115. package/dist/esm/{chunk-UUHTK35B.js → chunk-EUHAZKWY.js} +2 -2
  116. package/dist/esm/chunk-F7HK2QLM.js +2 -0
  117. package/dist/esm/{chunk-5AHQJB6H.js.map → chunk-F7HK2QLM.js.map} +2 -2
  118. package/dist/esm/{chunk-MZR6YBE7.js → chunk-GDACOD53.js} +2 -2
  119. package/dist/esm/chunk-GTXRD4FZ.js +2 -0
  120. package/dist/esm/{chunk-UUV5UNYL.js.map → chunk-GTXRD4FZ.js.map} +3 -3
  121. package/dist/esm/{chunk-BUBV3C6C.js → chunk-HJ6ACBXW.js} +2 -2
  122. package/dist/esm/{chunk-XTE22CXV.js → chunk-HJZNHNLX.js} +2 -2
  123. package/dist/esm/chunk-HK7RJPQ2.js +2 -0
  124. package/dist/esm/chunk-HK7RJPQ2.js.map +7 -0
  125. package/dist/esm/{chunk-IXNJFV4O.js → chunk-HVXXJZC2.js} +2 -2
  126. package/dist/esm/{chunk-GYB7PAGB.js → chunk-IND2NZIN.js} +2 -2
  127. package/dist/esm/{chunk-UZQO4APP.js → chunk-JDMJC76O.js} +2 -2
  128. package/dist/esm/{chunk-PUQXBW2K.js → chunk-JH55M4I2.js} +2 -2
  129. package/dist/esm/{chunk-N77QJUTO.js → chunk-JOB6FH3D.js} +2 -2
  130. package/dist/esm/chunk-JOB6FH3D.js.map +7 -0
  131. package/dist/esm/{chunk-GIIMBBVM.js → chunk-MLXFZDFU.js} +2 -2
  132. package/dist/esm/{chunk-GYNRAVCL.js → chunk-NEK7F746.js} +2 -2
  133. package/dist/esm/chunk-NTGRWJEG.js +2 -0
  134. package/dist/esm/{chunk-EVTNB4TB.js.map → chunk-NTGRWJEG.js.map} +2 -2
  135. package/dist/esm/{chunk-KDKL3HXD.js → chunk-O7IPBLC7.js} +2 -2
  136. package/dist/esm/{chunk-K6Y2SM5N.js → chunk-OLSTITVY.js} +2 -2
  137. package/dist/esm/{chunk-X3D3JR64.js → chunk-Q6GUADLO.js} +2 -2
  138. package/dist/esm/{chunk-YVHRWMSZ.js → chunk-QETAAJJV.js} +2 -2
  139. package/dist/esm/chunk-QEYOXQK5.js +2 -0
  140. package/dist/esm/{chunk-PDBVZAUJ.js.map → chunk-QEYOXQK5.js.map} +2 -2
  141. package/dist/esm/chunk-R372ULQC.js +2 -0
  142. package/dist/esm/chunk-R372ULQC.js.map +7 -0
  143. package/dist/esm/chunk-RDS3AJWW.js +2 -0
  144. package/dist/esm/chunk-RDS3AJWW.js.map +7 -0
  145. package/dist/esm/{chunk-6XNQ5XD3.js → chunk-SKOF4A27.js} +2 -2
  146. package/dist/esm/{chunk-BINUV3ME.js → chunk-TBWKDBUF.js} +2 -2
  147. package/dist/esm/{chunk-MAI7FEU7.js → chunk-TLZMLJTI.js} +2 -2
  148. package/dist/esm/{chunk-MAI7FEU7.js.map → chunk-TLZMLJTI.js.map} +2 -2
  149. package/dist/esm/{chunk-CR2BSCFM.js → chunk-UNH3FGU4.js} +2 -2
  150. package/dist/esm/{chunk-L2IIIELE.js → chunk-WBGKTN35.js} +2 -2
  151. package/dist/esm/chunk-WSKA5MZZ.js +2 -0
  152. package/dist/esm/chunk-WSKA5MZZ.js.map +7 -0
  153. package/dist/esm/chunk-XDAQXNBQ.js +2 -0
  154. package/dist/esm/chunk-XDAQXNBQ.js.map +7 -0
  155. package/dist/esm/{chunk-63ASTOS2.js → chunk-XDV2SDJ3.js} +2 -2
  156. package/dist/esm/{chunk-G6PO4QKW.js → chunk-XPT5ELKO.js} +2 -2
  157. package/dist/esm/{chunk-2XQECQF2.js → chunk-XXHIMGBY.js} +2 -2
  158. package/dist/esm/{chunk-JRIBL4WJ.js → chunk-ZRHXFYAE.js} +2 -2
  159. package/dist/esm/components/_internal/base-menu.props.d.ts +2 -2
  160. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  161. package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -1
  162. package/dist/esm/components/_internal/base-menu.utils.js +1 -1
  163. package/dist/esm/components/_internal/menu-context.d.ts +5 -2
  164. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  165. package/dist/esm/components/_internal/menu-context.js +1 -1
  166. package/dist/esm/components/alert-dialog.js +1 -1
  167. package/dist/esm/components/badge.js +1 -1
  168. package/dist/esm/components/blockquote.js +1 -1
  169. package/dist/esm/components/blockquote.props.d.ts +2 -2
  170. package/dist/esm/components/blockquote.props.js +1 -1
  171. package/dist/esm/components/button.js +1 -1
  172. package/dist/esm/components/chatbar.js +1 -1
  173. package/dist/esm/components/checkbox-group.js +1 -1
  174. package/dist/esm/components/code.js +1 -1
  175. package/dist/esm/components/code.props.d.ts +2 -2
  176. package/dist/esm/components/code.props.js +1 -1
  177. package/dist/esm/components/combobox.js +1 -1
  178. package/dist/esm/components/combobox.props.d.ts +1 -1
  179. package/dist/esm/components/combobox.props.js +1 -1
  180. package/dist/esm/components/context-menu.js +1 -1
  181. package/dist/esm/components/context-menu.props.js +1 -1
  182. package/dist/esm/components/data-list.js +1 -1
  183. package/dist/esm/components/dialog.js +1 -1
  184. package/dist/esm/components/dropdown-menu.js +1 -1
  185. package/dist/esm/components/dropdown-menu.props.js +1 -1
  186. package/dist/esm/components/heading.js +1 -1
  187. package/dist/esm/components/heading.props.d.ts +2 -2
  188. package/dist/esm/components/heading.props.js +1 -1
  189. package/dist/esm/components/icon-button.js +1 -1
  190. package/dist/esm/components/index.js +1 -1
  191. package/dist/esm/components/kbd.js +1 -1
  192. package/dist/esm/components/kbd.props.d.ts +1 -1
  193. package/dist/esm/components/kbd.props.js +1 -1
  194. package/dist/esm/components/link.js +1 -1
  195. package/dist/esm/components/link.props.d.ts +2 -2
  196. package/dist/esm/components/link.props.js +1 -1
  197. package/dist/esm/components/message-scroller.js +1 -1
  198. package/dist/esm/components/notice.js +1 -1
  199. package/dist/esm/components/radio-group.js +1 -1
  200. package/dist/esm/components/sheet.js +1 -1
  201. package/dist/esm/components/sidebar.d.ts.map +1 -1
  202. package/dist/esm/components/sidebar.js +1 -1
  203. package/dist/esm/components/text.js +1 -1
  204. package/dist/esm/components/text.props.d.ts +2 -2
  205. package/dist/esm/components/text.props.js +1 -1
  206. package/dist/esm/components/theme-panel.js +1 -1
  207. package/dist/esm/components/toggle-button.js +1 -1
  208. package/dist/esm/components/toggle-icon-button.js +1 -1
  209. package/dist/esm/components/toolbar.js +1 -1
  210. package/dist/esm/components/tooltip.js +1 -1
  211. package/dist/esm/components/virtual-menu.d.ts +2 -1
  212. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  213. package/dist/esm/components/virtual-menu.js +1 -1
  214. package/dist/esm/index.js +1 -1
  215. package/dist/esm/props/index.js +1 -1
  216. package/dist/esm/props/weight.prop.d.ts +1 -1
  217. package/dist/esm/props/weight.prop.d.ts.map +1 -1
  218. package/dist/esm/props/weight.prop.js +1 -1
  219. package/package.json +1 -1
  220. package/src/components/_internal/base-menu.css +120 -114
  221. package/src/components/_internal/base-menu.props.ts +1 -1
  222. package/src/components/_internal/base-menu.utils.tsx +2 -1
  223. package/src/components/_internal/base-sidebar-menu.css +8 -38
  224. package/src/components/_internal/menu-context.tsx +9 -4
  225. package/src/components/avatar.css +3 -3
  226. package/src/components/badge.css +3 -3
  227. package/src/components/blockquote.props.tsx +1 -1
  228. package/src/components/code.css +10 -32
  229. package/src/components/code.props.tsx +1 -1
  230. package/src/components/combobox.css +0 -9
  231. package/src/components/combobox.props.tsx +1 -1
  232. package/src/components/heading.css +9 -29
  233. package/src/components/heading.props.tsx +1 -1
  234. package/src/components/kbd.css +1 -29
  235. package/src/components/kbd.props.tsx +1 -1
  236. package/src/components/link.props.tsx +1 -1
  237. package/src/components/notice.css +10 -13
  238. package/src/components/select.css +19 -134
  239. package/src/components/sidebar.css +82 -123
  240. package/src/components/sidebar.tsx +1 -3
  241. package/src/components/slider.css +2 -2
  242. package/src/components/table.css +24 -11
  243. package/src/components/text.css +0 -20
  244. package/src/components/text.props.tsx +1 -1
  245. package/src/components/virtual-menu.tsx +3 -1
  246. package/src/props/weight.prop.ts +2 -1
  247. package/src/styles/tokens/radius.css +12 -0
  248. package/src/styles/tokens/typography.css +21 -49
  249. package/src/styles/utilities/font-weight.css +0 -20
  250. package/styles.css +1034 -2503
  251. package/tokens/base.css +23 -45
  252. package/tokens.css +23 -45
  253. package/utilities.css +0 -90
  254. package/dist/esm/chunk-5AHQJB6H.js +0 -2
  255. package/dist/esm/chunk-ABQHBDM4.js +0 -2
  256. package/dist/esm/chunk-ABQHBDM4.js.map +0 -7
  257. package/dist/esm/chunk-B72RMGWZ.js +0 -2
  258. package/dist/esm/chunk-B72RMGWZ.js.map +0 -7
  259. package/dist/esm/chunk-EUSKAXHP.js +0 -2
  260. package/dist/esm/chunk-EUSKAXHP.js.map +0 -7
  261. package/dist/esm/chunk-EVTNB4TB.js +0 -2
  262. package/dist/esm/chunk-FD2TR343.js +0 -2
  263. package/dist/esm/chunk-FD2TR343.js.map +0 -7
  264. package/dist/esm/chunk-FTGD2SZ6.js +0 -2
  265. package/dist/esm/chunk-FTGD2SZ6.js.map +0 -7
  266. package/dist/esm/chunk-G3U6OHVA.js +0 -2
  267. package/dist/esm/chunk-G3U6OHVA.js.map +0 -7
  268. package/dist/esm/chunk-N77QJUTO.js.map +0 -7
  269. package/dist/esm/chunk-PDBVZAUJ.js +0 -2
  270. package/dist/esm/chunk-UUV5UNYL.js +0 -2
  271. package/dist/esm/chunk-ZMFZYXLB.js +0 -2
  272. package/dist/esm/chunk-ZMFZYXLB.js.map +0 -7
  273. /package/dist/esm/{chunk-JZSXHYUU.js.map → chunk-33IRPFDK.js.map} +0 -0
  274. /package/dist/esm/{chunk-32ATKZAP.js.map → chunk-3E6ADI2F.js.map} +0 -0
  275. /package/dist/esm/{chunk-JBC6DT2X.js.map → chunk-74SNS4VY.js.map} +0 -0
  276. /package/dist/esm/{chunk-DIR22XIX.js.map → chunk-CNMFVJNC.js.map} +0 -0
  277. /package/dist/esm/{chunk-UUHTK35B.js.map → chunk-EUHAZKWY.js.map} +0 -0
  278. /package/dist/esm/{chunk-MZR6YBE7.js.map → chunk-GDACOD53.js.map} +0 -0
  279. /package/dist/esm/{chunk-BUBV3C6C.js.map → chunk-HJ6ACBXW.js.map} +0 -0
  280. /package/dist/esm/{chunk-XTE22CXV.js.map → chunk-HJZNHNLX.js.map} +0 -0
  281. /package/dist/esm/{chunk-IXNJFV4O.js.map → chunk-HVXXJZC2.js.map} +0 -0
  282. /package/dist/esm/{chunk-GYB7PAGB.js.map → chunk-IND2NZIN.js.map} +0 -0
  283. /package/dist/esm/{chunk-UZQO4APP.js.map → chunk-JDMJC76O.js.map} +0 -0
  284. /package/dist/esm/{chunk-PUQXBW2K.js.map → chunk-JH55M4I2.js.map} +0 -0
  285. /package/dist/esm/{chunk-GIIMBBVM.js.map → chunk-MLXFZDFU.js.map} +0 -0
  286. /package/dist/esm/{chunk-GYNRAVCL.js.map → chunk-NEK7F746.js.map} +0 -0
  287. /package/dist/esm/{chunk-KDKL3HXD.js.map → chunk-O7IPBLC7.js.map} +0 -0
  288. /package/dist/esm/{chunk-K6Y2SM5N.js.map → chunk-OLSTITVY.js.map} +0 -0
  289. /package/dist/esm/{chunk-X3D3JR64.js.map → chunk-Q6GUADLO.js.map} +0 -0
  290. /package/dist/esm/{chunk-YVHRWMSZ.js.map → chunk-QETAAJJV.js.map} +0 -0
  291. /package/dist/esm/{chunk-6XNQ5XD3.js.map → chunk-SKOF4A27.js.map} +0 -0
  292. /package/dist/esm/{chunk-BINUV3ME.js.map → chunk-TBWKDBUF.js.map} +0 -0
  293. /package/dist/esm/{chunk-CR2BSCFM.js.map → chunk-UNH3FGU4.js.map} +0 -0
  294. /package/dist/esm/{chunk-L2IIIELE.js.map → chunk-WBGKTN35.js.map} +0 -0
  295. /package/dist/esm/{chunk-63ASTOS2.js.map → chunk-XDV2SDJ3.js.map} +0 -0
  296. /package/dist/esm/{chunk-G6PO4QKW.js.map → chunk-XPT5ELKO.js.map} +0 -0
  297. /package/dist/esm/{chunk-2XQECQF2.js.map → chunk-XXHIMGBY.js.map} +0 -0
  298. /package/dist/esm/{chunk-JRIBL4WJ.js.map → chunk-ZRHXFYAE.js.map} +0 -0
package/tokens/base.css CHANGED
@@ -282,53 +282,36 @@
282
282
  --default-font-family-sans: var(--font-sans);
283
283
  --default-font-family-mono: var(--font-mono);
284
284
  --default-font-family-serif: var(--font-serif);
285
- --font-size-0: calc(10px * var(--scale));
286
285
  --font-size-1: calc(12px * var(--scale));
287
286
  --font-size-2: calc(14px * var(--scale));
288
287
  --font-size-3: calc(16px * var(--scale));
289
288
  --font-size-4: calc(18px * var(--scale));
290
289
  --font-size-5: calc(20px * var(--scale));
291
290
  --font-size-6: calc(24px * var(--scale));
292
- --font-size-7: calc(28px * var(--scale));
293
- --font-size-8: calc(35px * var(--scale));
294
- --font-size-9: calc(60px * var(--scale));
295
- --font-size-10: calc(72px * var(--scale));
296
- --font-size-11: calc(86px * var(--scale));
297
- --font-size-12: calc(104px * var(--scale));
298
- --font-weight-thin: 100;
299
- --font-weight-extralight: 200;
300
- --font-weight-light: 300;
291
+ --font-size-7: calc(32px * var(--scale));
292
+ --font-size-8: calc(44px * var(--scale));
293
+ --font-size-9: calc(64px * var(--scale));
301
294
  --font-weight-regular: 400;
302
295
  --font-weight-medium: 500;
303
296
  --font-weight-semibold: 600;
304
- --font-weight-bold: 700;
305
- --font-weight-extrabold: 800;
306
- --line-height-0: calc(12px * var(--scale));
307
297
  --line-height-1: calc(16px * var(--scale));
308
298
  --line-height-2: calc(20px * var(--scale));
309
299
  --line-height-3: calc(24px * var(--scale));
310
300
  --line-height-4: calc(26px * var(--scale));
311
301
  --line-height-5: calc(28px * var(--scale));
312
- --line-height-6: calc(30px * var(--scale));
313
- --line-height-7: calc(36px * var(--scale));
314
- --line-height-8: calc(40px * var(--scale));
315
- --line-height-9: calc(60px * var(--scale));
316
- --line-height-10: calc(76px * var(--scale));
317
- --line-height-11: calc(90px * var(--scale));
318
- --line-height-12: calc(108px * var(--scale));
319
- --letter-spacing-0: 0.005em;
320
- --letter-spacing-1: 0.0025em;
302
+ --line-height-6: calc(32px * var(--scale));
303
+ --line-height-7: calc(40px * var(--scale));
304
+ --line-height-8: calc(52px * var(--scale));
305
+ --line-height-9: calc(70px * var(--scale));
306
+ --letter-spacing-1: 0em;
321
307
  --letter-spacing-2: 0em;
322
308
  --letter-spacing-3: 0em;
323
- --letter-spacing-4: -0.0025em;
324
- --letter-spacing-5: -0.005em;
325
- --letter-spacing-6: -0.00625em;
326
- --letter-spacing-7: -0.0075em;
327
- --letter-spacing-8: -0.01em;
309
+ --letter-spacing-4: -0.005em;
310
+ --letter-spacing-5: -0.0075em;
311
+ --letter-spacing-6: -0.01em;
312
+ --letter-spacing-7: -0.015em;
313
+ --letter-spacing-8: -0.02em;
328
314
  --letter-spacing-9: -0.025em;
329
- --letter-spacing-10: -0.03em;
330
- --letter-spacing-11: -0.035em;
331
- --letter-spacing-12: -0.04em;
332
315
  --default-font-size: var(--font-size-3);
333
316
  --default-font-style: normal;
334
317
  --default-font-weight: var(--font-weight-regular);
@@ -341,20 +324,8 @@
341
324
  --heading-leading-trim-start: var(--default-leading-trim-start);
342
325
  --heading-leading-trim-end: var(--default-leading-trim-end);
343
326
  --heading-letter-spacing: 0em;
344
- --heading-line-height-0: calc(12px * var(--scale));
345
- --heading-line-height-1: calc(16px * var(--scale));
346
- --heading-line-height-2: calc(18px * var(--scale));
347
- --heading-line-height-3: calc(22px * var(--scale));
348
- --heading-line-height-4: calc(24px * var(--scale));
349
- --heading-line-height-5: calc(26px * var(--scale));
350
- --heading-line-height-6: calc(30px * var(--scale));
351
- --heading-line-height-7: calc(36px * var(--scale));
352
- --heading-line-height-8: calc(40px * var(--scale));
353
- --heading-line-height-9: calc(60px * var(--scale));
354
- --heading-line-height-10: calc(76px * var(--scale));
355
- --heading-line-height-11: calc(90px * var(--scale));
356
- --heading-line-height-12: calc(108px * var(--scale));
357
- --code-font-size-adjust: 0.95;
327
+ --heading-font-weight: var(--font-weight-medium);
328
+ --mono-scale: 0.925;
358
329
  --code-font-style: normal;
359
330
  --code-font-weight: inherit;
360
331
  --code-letter-spacing: -0.007em;
@@ -364,7 +335,6 @@
364
335
  --code-padding-right: 0.25em;
365
336
  --strong-font-size-adjust: 1;
366
337
  --strong-font-style: inherit;
367
- --heading-font-weight: var(--font-weight-bold);
368
338
  --strong-font-weight: var(--font-weight-medium);
369
339
  --strong-letter-spacing: 0em;
370
340
  --em-font-size-adjust: 1.18;
@@ -1360,6 +1330,10 @@
1360
1330
  --radius-control-2: var(--radius-2);
1361
1331
  --radius-control-3: var(--radius-3);
1362
1332
  --radius-control-4: var(--radius-4);
1333
+ --radius-row-1: var(--radius-control-1);
1334
+ --radius-row-2: var(--radius-control-2);
1335
+ --radius-row-3: var(--radius-control-3);
1336
+ --radius-row-4: var(--radius-control-4);
1363
1337
  --radius-surface-1: calc(10px * var(--scale) * var(--radius-surface-factor));
1364
1338
  --radius-surface-2: calc(16px * var(--scale) * var(--radius-surface-factor));
1365
1339
  --radius-surface-3: calc(22px * var(--scale) * var(--radius-surface-factor));
@@ -1397,6 +1371,10 @@
1397
1371
  --radius-control-2: calc(var(--control-height-2) / 2);
1398
1372
  --radius-control-3: calc(var(--control-height-3) / 2);
1399
1373
  --radius-control-4: calc(var(--control-height-4) / 2);
1374
+ --radius-row-1: calc((var(--line-height-1) + 2 * var(--row-inset-1)) / 2);
1375
+ --radius-row-2: calc((var(--line-height-2) + 2 * var(--row-inset-2)) / 2);
1376
+ --radius-row-3: calc((var(--line-height-3) + 2 * var(--row-inset-3)) / 2);
1377
+ --radius-row-4: calc((var(--line-height-4) + 2 * var(--row-inset-4)) / 2);
1400
1378
  }
1401
1379
  .rt-SurfaceNest:where(.rt-r-size-1) {
1402
1380
  --kui-sf-radius: var(--radius-surface-1);
package/tokens.css CHANGED
@@ -3628,53 +3628,36 @@
3628
3628
  --default-font-family-sans: var(--font-sans);
3629
3629
  --default-font-family-mono: var(--font-mono);
3630
3630
  --default-font-family-serif: var(--font-serif);
3631
- --font-size-0: calc(10px * var(--scale));
3632
3631
  --font-size-1: calc(12px * var(--scale));
3633
3632
  --font-size-2: calc(14px * var(--scale));
3634
3633
  --font-size-3: calc(16px * var(--scale));
3635
3634
  --font-size-4: calc(18px * var(--scale));
3636
3635
  --font-size-5: calc(20px * var(--scale));
3637
3636
  --font-size-6: calc(24px * var(--scale));
3638
- --font-size-7: calc(28px * var(--scale));
3639
- --font-size-8: calc(35px * var(--scale));
3640
- --font-size-9: calc(60px * var(--scale));
3641
- --font-size-10: calc(72px * var(--scale));
3642
- --font-size-11: calc(86px * var(--scale));
3643
- --font-size-12: calc(104px * var(--scale));
3644
- --font-weight-thin: 100;
3645
- --font-weight-extralight: 200;
3646
- --font-weight-light: 300;
3637
+ --font-size-7: calc(32px * var(--scale));
3638
+ --font-size-8: calc(44px * var(--scale));
3639
+ --font-size-9: calc(64px * var(--scale));
3647
3640
  --font-weight-regular: 400;
3648
3641
  --font-weight-medium: 500;
3649
3642
  --font-weight-semibold: 600;
3650
- --font-weight-bold: 700;
3651
- --font-weight-extrabold: 800;
3652
- --line-height-0: calc(12px * var(--scale));
3653
3643
  --line-height-1: calc(16px * var(--scale));
3654
3644
  --line-height-2: calc(20px * var(--scale));
3655
3645
  --line-height-3: calc(24px * var(--scale));
3656
3646
  --line-height-4: calc(26px * var(--scale));
3657
3647
  --line-height-5: calc(28px * var(--scale));
3658
- --line-height-6: calc(30px * var(--scale));
3659
- --line-height-7: calc(36px * var(--scale));
3660
- --line-height-8: calc(40px * var(--scale));
3661
- --line-height-9: calc(60px * var(--scale));
3662
- --line-height-10: calc(76px * var(--scale));
3663
- --line-height-11: calc(90px * var(--scale));
3664
- --line-height-12: calc(108px * var(--scale));
3665
- --letter-spacing-0: 0.005em;
3666
- --letter-spacing-1: 0.0025em;
3648
+ --line-height-6: calc(32px * var(--scale));
3649
+ --line-height-7: calc(40px * var(--scale));
3650
+ --line-height-8: calc(52px * var(--scale));
3651
+ --line-height-9: calc(70px * var(--scale));
3652
+ --letter-spacing-1: 0em;
3667
3653
  --letter-spacing-2: 0em;
3668
3654
  --letter-spacing-3: 0em;
3669
- --letter-spacing-4: -0.0025em;
3670
- --letter-spacing-5: -0.005em;
3671
- --letter-spacing-6: -0.00625em;
3672
- --letter-spacing-7: -0.0075em;
3673
- --letter-spacing-8: -0.01em;
3655
+ --letter-spacing-4: -0.005em;
3656
+ --letter-spacing-5: -0.0075em;
3657
+ --letter-spacing-6: -0.01em;
3658
+ --letter-spacing-7: -0.015em;
3659
+ --letter-spacing-8: -0.02em;
3674
3660
  --letter-spacing-9: -0.025em;
3675
- --letter-spacing-10: -0.03em;
3676
- --letter-spacing-11: -0.035em;
3677
- --letter-spacing-12: -0.04em;
3678
3661
  --default-font-size: var(--font-size-3);
3679
3662
  --default-font-style: normal;
3680
3663
  --default-font-weight: var(--font-weight-regular);
@@ -3687,20 +3670,8 @@
3687
3670
  --heading-leading-trim-start: var(--default-leading-trim-start);
3688
3671
  --heading-leading-trim-end: var(--default-leading-trim-end);
3689
3672
  --heading-letter-spacing: 0em;
3690
- --heading-line-height-0: calc(12px * var(--scale));
3691
- --heading-line-height-1: calc(16px * var(--scale));
3692
- --heading-line-height-2: calc(18px * var(--scale));
3693
- --heading-line-height-3: calc(22px * var(--scale));
3694
- --heading-line-height-4: calc(24px * var(--scale));
3695
- --heading-line-height-5: calc(26px * var(--scale));
3696
- --heading-line-height-6: calc(30px * var(--scale));
3697
- --heading-line-height-7: calc(36px * var(--scale));
3698
- --heading-line-height-8: calc(40px * var(--scale));
3699
- --heading-line-height-9: calc(60px * var(--scale));
3700
- --heading-line-height-10: calc(76px * var(--scale));
3701
- --heading-line-height-11: calc(90px * var(--scale));
3702
- --heading-line-height-12: calc(108px * var(--scale));
3703
- --code-font-size-adjust: 0.95;
3673
+ --heading-font-weight: var(--font-weight-medium);
3674
+ --mono-scale: 0.925;
3704
3675
  --code-font-style: normal;
3705
3676
  --code-font-weight: inherit;
3706
3677
  --code-letter-spacing: -0.007em;
@@ -3710,7 +3681,6 @@
3710
3681
  --code-padding-right: 0.25em;
3711
3682
  --strong-font-size-adjust: 1;
3712
3683
  --strong-font-style: inherit;
3713
- --heading-font-weight: var(--font-weight-bold);
3714
3684
  --strong-font-weight: var(--font-weight-medium);
3715
3685
  --strong-letter-spacing: 0em;
3716
3686
  --em-font-size-adjust: 1.18;
@@ -4706,6 +4676,10 @@
4706
4676
  --radius-control-2: var(--radius-2);
4707
4677
  --radius-control-3: var(--radius-3);
4708
4678
  --radius-control-4: var(--radius-4);
4679
+ --radius-row-1: var(--radius-control-1);
4680
+ --radius-row-2: var(--radius-control-2);
4681
+ --radius-row-3: var(--radius-control-3);
4682
+ --radius-row-4: var(--radius-control-4);
4709
4683
  --radius-surface-1: calc(10px * var(--scale) * var(--radius-surface-factor));
4710
4684
  --radius-surface-2: calc(16px * var(--scale) * var(--radius-surface-factor));
4711
4685
  --radius-surface-3: calc(22px * var(--scale) * var(--radius-surface-factor));
@@ -4743,6 +4717,10 @@
4743
4717
  --radius-control-2: calc(var(--control-height-2) / 2);
4744
4718
  --radius-control-3: calc(var(--control-height-3) / 2);
4745
4719
  --radius-control-4: calc(var(--control-height-4) / 2);
4720
+ --radius-row-1: calc((var(--line-height-1) + 2 * var(--row-inset-1)) / 2);
4721
+ --radius-row-2: calc((var(--line-height-2) + 2 * var(--row-inset-2)) / 2);
4722
+ --radius-row-3: calc((var(--line-height-3) + 2 * var(--row-inset-3)) / 2);
4723
+ --radius-row-4: calc((var(--line-height-4) + 2 * var(--row-inset-4)) / 2);
4746
4724
  }
4747
4725
  .rt-SurfaceNest:where(.rt-r-size-1) {
4748
4726
  --kui-sf-radius: var(--radius-surface-1);
package/utilities.css CHANGED
@@ -13198,15 +13198,6 @@
13198
13198
  max-width: var(--max-width-xl);
13199
13199
  }
13200
13200
  }
13201
- .rt-r-weight-thin {
13202
- font-weight: var(--font-weight-thin);
13203
- }
13204
- .rt-r-weight-extralight {
13205
- font-weight: var(--font-weight-extralight);
13206
- }
13207
- .rt-r-weight-light {
13208
- font-weight: var(--font-weight-light);
13209
- }
13210
13201
  .rt-r-weight-regular {
13211
13202
  font-weight: var(--font-weight-regular);
13212
13203
  }
@@ -13216,22 +13207,7 @@
13216
13207
  .rt-r-weight-semibold {
13217
13208
  font-weight: var(--font-weight-semibold);
13218
13209
  }
13219
- .rt-r-weight-bold {
13220
- font-weight: var(--font-weight-bold);
13221
- }
13222
- .rt-r-weight-extrabold {
13223
- font-weight: var(--font-weight-extrabold);
13224
- }
13225
13210
  @media (min-width: 520px) {
13226
- .xs\:rt-r-weight-thin {
13227
- font-weight: var(--font-weight-thin);
13228
- }
13229
- .xs\:rt-r-weight-extralight {
13230
- font-weight: var(--font-weight-extralight);
13231
- }
13232
- .xs\:rt-r-weight-light {
13233
- font-weight: var(--font-weight-light);
13234
- }
13235
13211
  .xs\:rt-r-weight-regular {
13236
13212
  font-weight: var(--font-weight-regular);
13237
13213
  }
@@ -13241,23 +13217,8 @@
13241
13217
  .xs\:rt-r-weight-semibold {
13242
13218
  font-weight: var(--font-weight-semibold);
13243
13219
  }
13244
- .xs\:rt-r-weight-bold {
13245
- font-weight: var(--font-weight-bold);
13246
- }
13247
- .xs\:rt-r-weight-extrabold {
13248
- font-weight: var(--font-weight-extrabold);
13249
- }
13250
13220
  }
13251
13221
  @media (min-width: 768px) {
13252
- .sm\:rt-r-weight-thin {
13253
- font-weight: var(--font-weight-thin);
13254
- }
13255
- .sm\:rt-r-weight-extralight {
13256
- font-weight: var(--font-weight-extralight);
13257
- }
13258
- .sm\:rt-r-weight-light {
13259
- font-weight: var(--font-weight-light);
13260
- }
13261
13222
  .sm\:rt-r-weight-regular {
13262
13223
  font-weight: var(--font-weight-regular);
13263
13224
  }
@@ -13267,23 +13228,8 @@
13267
13228
  .sm\:rt-r-weight-semibold {
13268
13229
  font-weight: var(--font-weight-semibold);
13269
13230
  }
13270
- .sm\:rt-r-weight-bold {
13271
- font-weight: var(--font-weight-bold);
13272
- }
13273
- .sm\:rt-r-weight-extrabold {
13274
- font-weight: var(--font-weight-extrabold);
13275
- }
13276
13231
  }
13277
13232
  @media (min-width: 1024px) {
13278
- .md\:rt-r-weight-thin {
13279
- font-weight: var(--font-weight-thin);
13280
- }
13281
- .md\:rt-r-weight-extralight {
13282
- font-weight: var(--font-weight-extralight);
13283
- }
13284
- .md\:rt-r-weight-light {
13285
- font-weight: var(--font-weight-light);
13286
- }
13287
13233
  .md\:rt-r-weight-regular {
13288
13234
  font-weight: var(--font-weight-regular);
13289
13235
  }
@@ -13293,23 +13239,8 @@
13293
13239
  .md\:rt-r-weight-semibold {
13294
13240
  font-weight: var(--font-weight-semibold);
13295
13241
  }
13296
- .md\:rt-r-weight-bold {
13297
- font-weight: var(--font-weight-bold);
13298
- }
13299
- .md\:rt-r-weight-extrabold {
13300
- font-weight: var(--font-weight-extrabold);
13301
- }
13302
13242
  }
13303
13243
  @media (min-width: 1280px) {
13304
- .lg\:rt-r-weight-thin {
13305
- font-weight: var(--font-weight-thin);
13306
- }
13307
- .lg\:rt-r-weight-extralight {
13308
- font-weight: var(--font-weight-extralight);
13309
- }
13310
- .lg\:rt-r-weight-light {
13311
- font-weight: var(--font-weight-light);
13312
- }
13313
13244
  .lg\:rt-r-weight-regular {
13314
13245
  font-weight: var(--font-weight-regular);
13315
13246
  }
@@ -13319,23 +13250,8 @@
13319
13250
  .lg\:rt-r-weight-semibold {
13320
13251
  font-weight: var(--font-weight-semibold);
13321
13252
  }
13322
- .lg\:rt-r-weight-bold {
13323
- font-weight: var(--font-weight-bold);
13324
- }
13325
- .lg\:rt-r-weight-extrabold {
13326
- font-weight: var(--font-weight-extrabold);
13327
- }
13328
13253
  }
13329
13254
  @media (min-width: 1640px) {
13330
- .xl\:rt-r-weight-thin {
13331
- font-weight: var(--font-weight-thin);
13332
- }
13333
- .xl\:rt-r-weight-extralight {
13334
- font-weight: var(--font-weight-extralight);
13335
- }
13336
- .xl\:rt-r-weight-light {
13337
- font-weight: var(--font-weight-light);
13338
- }
13339
13255
  .xl\:rt-r-weight-regular {
13340
13256
  font-weight: var(--font-weight-regular);
13341
13257
  }
@@ -13345,12 +13261,6 @@
13345
13261
  .xl\:rt-r-weight-semibold {
13346
13262
  font-weight: var(--font-weight-semibold);
13347
13263
  }
13348
- .xl\:rt-r-weight-bold {
13349
- font-weight: var(--font-weight-bold);
13350
- }
13351
- .xl\:rt-r-weight-extrabold {
13352
- font-weight: var(--font-weight-extrabold);
13353
- }
13354
13264
  }
13355
13265
  .rt-r-lt-normal::before,
13356
13266
  .rt-r-lt-end::before,
@@ -1,2 +0,0 @@
1
- import{a as t}from"./chunk-FD2TR343.js";import{a as p}from"./chunk-WYADYDPN.js";import{a as s}from"./chunk-ZE2KAVXW.js";import{b as e}from"./chunk-ZWZGUBL4.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{c as r}from"./chunk-34KVYDF6.js";var f=["0","1","2","3","4","5","6","7","8","9","10","11","12"],n={...o,size:{type:"enum",className:"rt-r-size",values:f,responsive:!0},...t,...r,...e,...s,...p};export{n as a};
2
- //# sourceMappingURL=chunk-5AHQJB6H.js.map
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-NZJGC6ZW.js";var e=["0","1","2","3","4","5","6","7","8","9","10","11","12"],r=["raised","soft"],a={...s,size:{type:"enum",className:"rt-r-size",values:e,responsive:!0},variant:{type:"enum",className:"rt-variant",values:r,default:"raised"}};export{a};
2
- //# sourceMappingURL=chunk-ABQHBDM4.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/kbd.props.tsx"],
4
- "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nconst variants = ['raised', 'soft'] as const;\n\nconst kbdPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n responsive: true,\n },\n variant: {\n type: 'enum',\n className: 'rt-variant',\n values: variants,\n default: 'raised',\n },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n};\n\nexport { kbdPropDefs };\n"],
5
- "mappings": "wCAIA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EAC3EC,EAAW,CAAC,SAAU,MAAM,EAE5BC,EAAc,CAClB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQH,EACR,WAAY,EACd,EACA,QAAS,CACP,KAAM,OACN,UAAW,aACX,OAAQC,EACR,QAAS,QACX,CACF",
6
- "names": ["sizes", "variants", "kbdPropDefs", "asChildPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as o}from"./chunk-KNQBAOMV.js";import{a as p}from"./chunk-FD2TR343.js";import{a as t}from"./chunk-WYADYDPN.js";import{a as s}from"./chunk-ZE2KAVXW.js";import{a as e}from"./chunk-NZJGC6ZW.js";import{d as r}from"./chunk-34KVYDF6.js";var n=["0","1","2","3","4","5","6","7","8","9","10","11","12"],i=["auto","always","hover","none"],D={...e,size:{type:"enum",className:"rt-r-size",values:n,responsive:!0},...p,...o,...s,...t,underline:{type:"enum",className:"rt-underline",values:i,default:"auto"},...r};export{D as a};
2
- //# sourceMappingURL=chunk-B72RMGWZ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/link.props.tsx"],
4
- "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef } from '../props/color.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nconst underline = ['auto', 'always', 'hover', 'none'] as const;\n\nconst linkPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n responsive: true,\n },\n ...weightPropDef,\n ...leadingTrimPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n underline: { type: 'enum', className: 'rt-underline', values: underline, default: 'auto' },\n ...accentColorPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n underline: PropDef<(typeof underline)[number]>;\n};\n\nexport { linkPropDefs };\n"],
5
- "mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EAC3EC,EAAY,CAAC,OAAQ,SAAU,QAAS,MAAM,EAE9CC,EAAe,CACnB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQH,EACR,WAAY,EACd,EACA,GAAGI,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,UAAW,CAAE,KAAM,OAAQ,UAAW,eAAgB,OAAQN,EAAW,QAAS,MAAO,EACzF,GAAGO,CACL",
6
- "names": ["sizes", "underline", "linkPropDefs", "asChildPropDef", "weightPropDef", "leadingTrimPropDef", "truncatePropDef", "textWrapPropDef", "accentColorPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-NZJGC6ZW.js";import{c as e}from"./chunk-34KVYDF6.js";var t=["1","2"],r=["cascade","drill-down"],o={size:{type:"enum",className:"rt-r-size",values:t,default:"2",responsive:!0},...e},i={...o,submenuBehavior:{type:"enum",values:r,default:"cascade",responsive:!0}},u=o,a={...s,...e,shortcut:{type:"string"}},f={...e,shortcut:{type:"string"}},c={...e};export{r as a,i as b,u as c,a as d,f as e,c as f};
2
- //# sourceMappingURL=chunk-EUSKAXHP.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/base-menu.props.ts"],
4
- "sourcesContent": ["import { asChildPropDef } from '../../props/as-child.prop.js';\nimport { colorPropDef } from '../../props/color.prop.js';\n\nimport type { PropDef } from '../../props/prop-def.js';\n\nconst contentSizes = ['1', '2'] as const;\nconst submenuBehaviors = ['cascade', 'drill-down'] as const;\n\n// Base props shared between Content and SubContent\nconst baseMenuSharedPropDefs = {\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: contentSizes,\n default: '2',\n responsive: true,\n },\n ...colorPropDef,\n} satisfies {\n size: PropDef<(typeof contentSizes)[number]>;\n};\n\n// Content-specific props (includes submenuBehavior)\nconst baseMenuContentPropDefs = {\n ...baseMenuSharedPropDefs,\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior: {\n type: 'enum',\n values: submenuBehaviors,\n default: 'cascade',\n responsive: true,\n },\n} satisfies {\n size: PropDef<(typeof contentSizes)[number]>;\n submenuBehavior: PropDef<(typeof submenuBehaviors)[number]>;\n};\n\n// SubContent props (no submenuBehavior)\nconst baseMenuSubContentPropDefs = baseMenuSharedPropDefs;\n\nconst baseMenuItemPropDefs = {\n ...asChildPropDef,\n ...colorPropDef,\n shortcut: { type: 'string' },\n} satisfies {\n shortcut: PropDef<string>;\n};\n\nconst baseMenuCheckboxItemPropDefs = {\n ...colorPropDef,\n shortcut: { type: 'string' },\n} satisfies {\n shortcut: PropDef<string>;\n};\n\nconst baseMenuRadioItemPropDefs = {\n ...colorPropDef,\n};\n\nexport {\n baseMenuContentPropDefs,\n baseMenuSubContentPropDefs,\n baseMenuItemPropDefs,\n baseMenuCheckboxItemPropDefs,\n baseMenuRadioItemPropDefs,\n submenuBehaviors,\n};\n"],
5
- "mappings": "gFAKA,IAAMA,EAAe,CAAC,IAAK,GAAG,EACxBC,EAAmB,CAAC,UAAW,YAAY,EAG3CC,EAAyB,CAC7B,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQF,EACR,QAAS,IACT,WAAY,EACd,EACA,GAAGG,CACL,EAKMC,EAA0B,CAC9B,GAAGF,EAOH,gBAAiB,CACf,KAAM,OACN,OAAQD,EACR,QAAS,UACT,WAAY,EACd,CACF,EAMMI,EAA6BH,EAE7BI,EAAuB,CAC3B,GAAGC,EACH,GAAGJ,EACH,SAAU,CAAE,KAAM,QAAS,CAC7B,EAIMK,EAA+B,CACnC,GAAGL,EACH,SAAU,CAAE,KAAM,QAAS,CAC7B,EAIMM,EAA4B,CAChC,GAAGN,CACL",
6
- "names": ["contentSizes", "submenuBehaviors", "baseMenuSharedPropDefs", "colorPropDef", "baseMenuContentPropDefs", "baseMenuSubContentPropDefs", "baseMenuItemPropDefs", "asChildPropDef", "baseMenuCheckboxItemPropDefs", "baseMenuRadioItemPropDefs"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as t}from"./chunk-G2CKYO2I.js";import{a as m}from"./chunk-AXUDFYLY.js";import{a as p}from"./chunk-KNQBAOMV.js";import{a as i}from"./chunk-FD2TR343.js";import{a as s}from"./chunk-WYADYDPN.js";import{a as f}from"./chunk-ZE2KAVXW.js";import{b as e}from"./chunk-ZWZGUBL4.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{c as r}from"./chunk-34KVYDF6.js";var a=["h1","h2","h3","h4","h5","h6"],n=["0","1","2","3","4","5","6","7","8","9","10","11","12"],g={as:{type:"enum",values:a,default:"h1"},...o,size:{type:"enum",className:"rt-r-size",values:n,default:"6",responsive:!0},...m,...i,...t,...p,...f,...s,...r,...e};export{g as a};
2
- //# sourceMappingURL=chunk-EVTNB4TB.js.map
@@ -1,2 +0,0 @@
1
- var e=["thin","extralight","light","regular","medium","semibold","bold","extrabold"],t={weight:{type:"enum",className:"rt-r-weight",values:e,responsive:!0}};export{t as a};
2
- //# sourceMappingURL=chunk-FD2TR343.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/props/weight.prop.ts"],
4
- "sourcesContent": ["import type { PropDef } from './prop-def.js';\n\nconst weights = ['thin', 'extralight', 'light', 'regular', 'medium', 'semibold', 'bold', 'extrabold'] as const;\n\nconst weightPropDef = {\n weight: {\n type: 'enum',\n className: 'rt-r-weight',\n values: weights,\n responsive: true,\n },\n} satisfies {\n weight: PropDef<(typeof weights)[number]>;\n};\n\nexport { weightPropDef };\n"],
5
- "mappings": "AAEA,IAAMA,EAAU,CAAC,OAAQ,aAAc,QAAS,UAAW,SAAU,WAAY,OAAQ,WAAW,EAE9FC,EAAgB,CACpB,OAAQ,CACN,KAAM,OACN,UAAW,cACX,OAAQD,EACR,WAAY,EACd,CACF",
6
- "names": ["weights", "weightPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as c}from"./chunk-DIR22XIX.js";import{b as p}from"./chunk-TBZO22XK.js";import*as a from"react";import l from"classnames";var i=["xl","lg","md","sm","xs","initial"];function m(e,t,o){if(e==null)return o;if(typeof e!="object")return e;let s=e;for(let r=i.indexOf(t);r<i.length;r++){let n=s[i[r]];if(n!==void 0)return n}return o}function A(e,t){let o=typeof e=="object"&&e!==null,{breakpoint:s}=p(o);return m(e,s,t)}var d={1:8,2:12,3:12};function B(e){return-(d[e]??d[2])}var f={"\u2318":"Meta",cmd:"Meta",command:"Meta",meta:"Meta","\u2325":"Alt",option:"Alt",opt:"Alt",alt:"Alt","\u21E7":"Shift",shift:"Shift","\u2303":"Control",ctrl:"Control",control:"Control","\u232B":"Backspace","\u2326":"Delete","\u23CE":"Enter","\u21B5":"Enter","\u238B":"Escape",esc:"Escape","\u21E5":"Tab","\u2191":"ArrowUp","\u2193":"ArrowDown","\u2190":"ArrowLeft","\u2192":"ArrowRight"},u=new Map;function S(e){let t=u.get(e);if(t!==void 0)return t||void 0;let r=(e.match(/[⌘⌥⇧⌃]|[^\s+⌘⌥⇧⌃]+/gu)??[]).map(n=>f[n]??f[n.toLowerCase()]??(n.length===1?n.toUpperCase():n)).join("+");return u.set(e,r),r||void 0}function k({shortcut:e,className:t}){return a.createElement("div",{"aria-hidden":!0,className:l("rt-BaseMenuShortcut",t)},a.createElement(c,{size:"1"},e))}export{m as a,A as b,B as c,S as d,k as e};
2
- //# sourceMappingURL=chunk-FTGD2SZ6.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/base-menu.utils.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport { Kbd } from '../kbd.js';\nimport { useBreakpoint } from '../../hooks/use-breakpoint.js';\n\nimport type { Breakpoint, Responsive } from '../../props/prop-def.js';\n\nconst BREAKPOINTS_DESCENDING: Breakpoint[] = ['xl', 'lg', 'md', 'sm', 'xs', 'initial'];\n\n/**\n * Resolves a responsive value for the given breakpoint, falling back through\n * the smaller breakpoints when the current one is not set.\n */\nfunction resolveResponsiveValue<T>(\n value: T | Partial<Record<Breakpoint, T>> | undefined,\n currentBreakpoint: Breakpoint,\n defaultValue: T,\n): T {\n if (value === undefined || value === null) return defaultValue;\n if (typeof value !== 'object') return value;\n\n const map = value as Partial<Record<Breakpoint, T>>;\n for (let i = BREAKPOINTS_DESCENDING.indexOf(currentBreakpoint); i < BREAKPOINTS_DESCENDING.length; i++) {\n const resolved = map[BREAKPOINTS_DESCENDING[i]];\n if (resolved !== undefined) return resolved;\n }\n return defaultValue;\n}\n\n/**\n * Resolves a possibly responsive value against the current viewport. Only a\n * responsive object subscribes to breakpoint changes; a plain value costs\n * nothing.\n */\nfunction useResolvedResponsiveValue<T>(value: Responsive<T> | undefined, defaultValue: T): T {\n const isResponsive = typeof value === 'object' && value !== null;\n const { breakpoint } = useBreakpoint(isResponsive);\n return resolveResponsiveValue(value as T | Partial<Record<Breakpoint, T>> | undefined, breakpoint, defaultValue);\n}\n\n/** Content padding per menu size, in px (see base-menu.css). */\nconst CONTENT_PADDING: Record<string, number> = { '1': 8, '2': 12, '3': 12 };\n\n/**\n * Offset that lines the first item of a menu up with its anchor: the pointer\n * for a context menu, or the sub trigger for a submenu. It cancels the content\n * padding.\n */\nfunction getMenuAlignOffset(size: string): number {\n return -(CONTENT_PADDING[size] ?? CONTENT_PADDING['2']);\n}\n\nconst KEY_SYMBOLS: Record<string, string> = {\n '\u2318': 'Meta',\n cmd: 'Meta',\n command: 'Meta',\n meta: 'Meta',\n '\u2325': 'Alt',\n option: 'Alt',\n opt: 'Alt',\n alt: 'Alt',\n '\u21E7': 'Shift',\n shift: 'Shift',\n '\u2303': 'Control',\n ctrl: 'Control',\n control: 'Control',\n '\u232B': 'Backspace',\n '\u2326': 'Delete',\n '\u23CE': 'Enter',\n '\u21B5': 'Enter',\n '\u238B': 'Escape',\n esc: 'Escape',\n '\u21E5': 'Tab',\n '\u2191': 'ArrowUp',\n '\u2193': 'ArrowDown',\n '\u2190': 'ArrowLeft',\n '\u2192': 'ArrowRight',\n};\n\nconst ariaKeyShortcutsCache = new Map<string, string>();\n\n/**\n * Converts a display shortcut such as \"\u2318 \u21E7 P\" or \"Ctrl+S\" into the\n * `aria-keyshortcuts` format (\"Meta+Shift+P\", \"Control+S\").\n */\nfunction toAriaKeyShortcuts(shortcut: string): string | undefined {\n const cached = ariaKeyShortcutsCache.get(shortcut);\n if (cached !== undefined) return cached || undefined;\n\n // Modifier symbols are tokens of their own (\"\u2318\u21E7P\"); otherwise split on \"+\" and spaces.\n const tokens = shortcut.match(/[\u2318\u2325\u21E7\u2303]|[^\\s+\u2318\u2325\u21E7\u2303]+/gu) ?? [];\n const keys = tokens.map((token) => {\n const mapped = KEY_SYMBOLS[token] ?? KEY_SYMBOLS[token.toLowerCase()];\n return mapped ?? (token.length === 1 ? token.toUpperCase() : token);\n });\n const result = keys.join('+');\n ariaKeyShortcutsCache.set(shortcut, result);\n return result || undefined;\n}\n\n/**\n * The keyboard shortcut hint at the end of a menu item. It is hidden from\n * assistive technology because the item exposes it through\n * `aria-keyshortcuts` instead of reading it as part of the item name.\n */\nfunction MenuShortcut({ shortcut, className }: { shortcut: string; className?: string }) {\n return (\n <div aria-hidden className={classNames('rt-BaseMenuShortcut', className)}>\n <Kbd size=\"1\">{shortcut}</Kbd>\n </div>\n );\n}\n\nexport {\n resolveResponsiveValue,\n useResolvedResponsiveValue,\n getMenuAlignOffset,\n toAriaKeyShortcuts,\n MenuShortcut,\n};\n"],
5
- "mappings": "gFAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aAOvB,IAAMC,EAAuC,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,SAAS,EAMrF,SAASC,EACPC,EACAC,EACAC,EACG,CACH,GAA2BF,GAAU,KAAM,OAAOE,EAClD,GAAI,OAAOF,GAAU,SAAU,OAAOA,EAEtC,IAAMG,EAAMH,EACZ,QAASI,EAAIN,EAAuB,QAAQG,CAAiB,EAAGG,EAAIN,EAAuB,OAAQM,IAAK,CACtG,IAAMC,EAAWF,EAAIL,EAAuBM,CAAC,CAAC,EAC9C,GAAIC,IAAa,OAAW,OAAOA,CACrC,CACA,OAAOH,CACT,CAOA,SAASI,EAA8BN,EAAkCE,EAAoB,CAC3F,IAAMK,EAAe,OAAOP,GAAU,UAAYA,IAAU,KACtD,CAAE,WAAAQ,CAAW,EAAIC,EAAcF,CAAY,EACjD,OAAOR,EAAuBC,EAAyDQ,EAAYN,CAAY,CACjH,CAGA,IAAMQ,EAA0C,CAAE,EAAK,EAAG,EAAK,GAAI,EAAK,EAAG,EAO3E,SAASC,EAAmBC,EAAsB,CAChD,MAAO,EAAEF,EAAgBE,CAAI,GAAKF,EAAgB,CAAG,EACvD,CAEA,IAAMG,EAAsC,CAC1C,SAAK,OACL,IAAK,OACL,QAAS,OACT,KAAM,OACN,SAAK,MACL,OAAQ,MACR,IAAK,MACL,IAAK,MACL,SAAK,QACL,MAAO,QACP,SAAK,UACL,KAAM,UACN,QAAS,UACT,SAAK,YACL,SAAK,SACL,SAAK,QACL,SAAK,QACL,SAAK,SACL,IAAK,SACL,SAAK,MACL,SAAK,UACL,SAAK,YACL,SAAK,YACL,SAAK,YACP,EAEMC,EAAwB,IAAI,IAMlC,SAASC,EAAmBC,EAAsC,CAChE,IAAMC,EAASH,EAAsB,IAAIE,CAAQ,EACjD,GAAIC,IAAW,OAAW,OAAOA,GAAU,OAQ3C,IAAMC,GALSF,EAAS,MAAM,sBAAsB,GAAK,CAAC,GACtC,IAAKG,GACRN,EAAYM,CAAK,GAAKN,EAAYM,EAAM,YAAY,CAAC,IAClDA,EAAM,SAAW,EAAIA,EAAM,YAAY,EAAIA,EAC9D,EACmB,KAAK,GAAG,EAC5B,OAAAL,EAAsB,IAAIE,EAAUE,CAAM,EACnCA,GAAU,MACnB,CAOA,SAASE,EAAa,CAAE,SAAAJ,EAAU,UAAAK,CAAU,EAA6C,CACvF,OACE,gBAAC,OAAI,cAAW,GAAC,UAAWC,EAAW,sBAAuBD,CAAS,GACrE,gBAACE,EAAA,CAAI,KAAK,KAAKP,CAAS,CAC1B,CAEJ",
6
- "names": ["React", "classNames", "BREAKPOINTS_DESCENDING", "resolveResponsiveValue", "value", "currentBreakpoint", "defaultValue", "map", "i", "resolved", "useResolvedResponsiveValue", "isResponsive", "breakpoint", "useBreakpoint", "CONTENT_PADDING", "getMenuAlignOffset", "size", "KEY_SYMBOLS", "ariaKeyShortcutsCache", "toAriaKeyShortcuts", "shortcut", "cached", "result", "token", "MenuShortcut", "className", "classNames", "Kbd"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as i}from"./chunk-FTGD2SZ6.js";import*as e from"react";var u=e.createContext({isInsideMenu:!1}),c={1:28,2:32};function d(t){return c[t]}function M({children:t,size:r}){let n=i(r,void 0),o=n?d(n):void 0,s=e.useMemo(()=>({isInsideMenu:!0,size:n,itemHeight:o}),[n,o]);return e.createElement(u.Provider,{value:s},t)}function a(){return e.useContext(u)}export{c as a,d as b,M as c,a as d};
2
- //# sourceMappingURL=chunk-G3U6OHVA.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/menu-context.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\n\nimport { useResolvedResponsiveValue } from './base-menu.utils.js';\n\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for the current breakpoint */\n size?: MenuSize;\n /** Item height in px for the current size and theme scaling */\n itemHeight?: number;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/** Menu item height in pixels per size: the control height ladder (--control-height-N). */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 28,\n '2': 32,\n};\n\nexport function getMenuItemHeight(size: MenuSize): number {\n return menuSizeToItemHeight[size];\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = useResolvedResponsiveValue<MenuSize | undefined>(size, undefined);\n const itemHeight = resolvedSize ? getMenuItemHeight(resolvedSize) : undefined;\n const value = React.useMemo(\n () => ({ isInsideMenu: true, size: resolvedSize, itemHeight }),\n [resolvedSize, itemHeight],\n );\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n"],
5
- "mappings": "wCAEA,UAAYA,MAAW,QAyBvB,IAAMC,EAAoB,gBAAgC,CAAE,aAAc,EAAM,CAAC,EASpEC,EAAiD,CAC5D,EAAK,GACL,EAAK,EACP,EAEO,SAASC,EAAkBC,EAAwB,CACxD,OAAOF,EAAqBE,CAAI,CAClC,CAEO,SAASC,EAAa,CAAE,SAAAC,EAAU,KAAAF,CAAK,EAAsB,CAClE,IAAMG,EAAeC,EAAiDJ,EAAM,MAAS,EAC/EK,EAAaF,EAAeJ,EAAkBI,CAAY,EAAI,OAC9DG,EAAc,UAClB,KAAO,CAAE,aAAc,GAAM,KAAMH,EAAc,WAAAE,CAAW,GAC5D,CAACF,EAAcE,CAAU,CAC3B,EACA,OAAO,gBAACR,EAAY,SAAZ,CAAqB,MAAOS,GAAQJ,CAAS,CACvD,CAEO,SAASK,GAAiB,CAC/B,OAAa,aAAWV,CAAW,CACrC",
6
- "names": ["React", "MenuContext", "menuSizeToItemHeight", "getMenuItemHeight", "size", "MenuProvider", "children", "resolvedSize", "useResolvedResponsiveValue", "itemHeight", "value", "useMenuContext"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/virtual-menu.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { useMenuContext, getMenuItemHeight } from './_internal/menu-context.js';\n\n/**\n * VirtualMenu - A virtualized menu component for rendering large lists efficiently.\n *\n * Uses TanStack Virtual to render only visible items.\n * Works inside any container (DropdownMenu.Content, Popover.Content, etc.)\n *\n * @example\n * // Simple usage with itemLabel\n * <VirtualMenu\n * items={items}\n * itemLabel={(item) => item.name}\n * onSelect={handleSelect}\n * />\n *\n * @example\n * // Custom rendering with renderItem\n * const UserItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>\n * <Avatar src={item.avatar} />\n * {item.name}\n * </VirtualMenu.Item>\n * ));\n *\n * <VirtualMenu items={users} renderItem={UserItem} onSelect={handleSelect} />\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Props passed to custom renderItem components */\ninterface VirtualMenuRenderItemProps<T> {\n /** The item data */\n item: T;\n /** Index in the items array */\n index: number;\n /** Whether this item is currently highlighted */\n isHighlighted: boolean;\n /** Unique ID for accessibility */\n id: string;\n /** Positioning styles - must be applied */\n style: React.CSSProperties;\n /** Tab index for focus management */\n tabIndex: number;\n /** Data attribute for CSS styling */\n 'data-highlighted': true | undefined;\n /** Data attribute for event delegation */\n 'data-index': number;\n /** Mouse enter handler */\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n /** Mouse leave handler */\n onMouseLeave: () => void;\n /** Click handler */\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n /** Keyboard handler for Enter/Space activation */\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ninterface VirtualMenuProps<T> {\n /** Array of items to render */\n items: T[];\n /**\n * Simple label accessor for basic text items.\n * Can be a property key or a function.\n * @example\n * itemLabel=\"name\"\n * itemLabel={(item) => item.name}\n */\n itemLabel?: keyof T | ((item: T) => React.ReactNode);\n /**\n * Custom component for rendering items.\n * Must be memoized (React.memo) for optimal performance.\n * @example\n * const MyItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>{item.name}</VirtualMenu.Item>\n * ));\n * <VirtualMenu items={items} renderItem={MyItem} />\n */\n renderItem?: React.ComponentType<VirtualMenuRenderItemProps<T>>;\n /**\n * Menu size - controls item height.\n * Automatically inherited from parent DropdownMenu.Content/ContextMenu.Content.\n * Only set manually when using VirtualMenu outside of a menu context.\n * @default '2' (or inherited from context)\n */\n size?: '1' | '2';\n /**\n * Estimated height of each item in pixels.\n * Can be a number (same for all) or a function (per-item).\n * Usually not needed - height is automatically derived from size prop/context.\n * Use this only for custom item heights (e.g., variable height items).\n */\n estimatedItemSize?: number | ((index: number) => number);\n /** Number of items to render outside visible area */\n overscan?: number;\n /** Callback when an item is selected */\n onSelect?: (item: T, index: number) => void;\n /** Additional class name */\n className?: string;\n /** Additional styles */\n style?: React.CSSProperties;\n /** Accessible label for the menu */\n 'aria-label'?: string;\n}\n\n// ============================================================================\n// Internal Memoized Item Component\n// ============================================================================\n\ninterface SimpleItemProps {\n label: React.ReactNode;\n isHighlighted: boolean;\n id: string;\n style: React.CSSProperties;\n tabIndex: number;\n 'data-highlighted': true | undefined;\n 'data-index': number;\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: () => void;\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nconst SimpleItem = React.memo(\n function SimpleItem({\n label,\n isHighlighted: _isHighlighted,\n id,\n style,\n tabIndex,\n 'data-highlighted': dataHighlighted,\n 'data-index': dataIndex,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n }: SimpleItemProps) {\n return (\n <div\n id={id}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem')}\n style={style}\n tabIndex={tabIndex}\n data-highlighted={dataHighlighted}\n data-index={dataIndex}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {label}\n </div>\n );\n },\n (prev, next) => {\n // Custom comparison - only re-render if these change\n if (prev.label !== next.label) return false;\n if (prev['data-highlighted'] !== next['data-highlighted']) return false;\n if (prev.style.height !== next.style.height) return false;\n if (prev.style.transform !== next.style.transform) return false;\n if (prev.tabIndex !== next.tabIndex) return false;\n if (prev.id !== next.id) return false;\n // Event handlers are stable, skip comparison\n return true;\n },\n);\n\n// ============================================================================\n// VirtualMenu Component\n// ============================================================================\n\nfunction VirtualMenuRoot<T>({\n items,\n itemLabel,\n renderItem: RenderItem,\n size: sizeProp,\n estimatedItemSize: estimatedItemSizeProp,\n overscan = 5,\n onSelect,\n className,\n style,\n 'aria-label': ariaLabel,\n}: VirtualMenuProps<T>) {\n const menuId = React.useId();\n const parentRef = React.useRef<HTMLDivElement>(null);\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1);\n const { isInsideMenu, size: contextSize, itemHeight: contextItemHeight } = useMenuContext();\n\n // Resolve item height: explicit prop > own size > parent menu > default size '2'.\n // Heights follow the theme scaling, like the --base-menu-item-height token.\n const estimatedItemSize =\n estimatedItemSizeProp ??\n (sizeProp\n ? getMenuItemHeight(sizeProp)\n : (contextItemHeight ?? getMenuItemHeight(contextSize ?? '2')));\n\n // Validate props\n if (!itemLabel && !RenderItem) {\n throw new Error('VirtualMenu requires either itemLabel or renderItem prop');\n }\n\n // Normalize itemLabel to a function\n const getLabel = React.useMemo(() => {\n if (!itemLabel) return null;\n if (typeof itemLabel === 'function') return itemLabel;\n return (item: T) => item[itemLabel] as React.ReactNode;\n }, [itemLabel]);\n\n // Derive safe highlighted index\n const safeHighlightedIndex = React.useMemo(() => {\n if (items.length === 0) return -1;\n if (highlightedIndex < 0) return -1;\n return Math.min(highlightedIndex, items.length - 1);\n }, [highlightedIndex, items.length]);\n\n // Normalize estimatedItemSize to a function\n const getItemSize = React.useMemo(\n () =>\n typeof estimatedItemSize === 'function'\n ? estimatedItemSize\n : () => estimatedItemSize,\n [estimatedItemSize],\n );\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: getItemSize,\n overscan,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n // Refs for stable handler references\n const itemsRef = React.useRef(items);\n const onSelectRef = React.useRef(onSelect);\n itemsRef.current = items;\n onSelectRef.current = onSelect;\n\n const scrollToIndexRef = React.useRef(virtualizer.scrollToIndex);\n scrollToIndexRef.current = virtualizer.scrollToIndex;\n\n const highlightedIndexRef = React.useRef(safeHighlightedIndex);\n highlightedIndexRef.current = safeHighlightedIndex;\n\n // Stable event handlers\n const handleItemMouseEnter = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n setHighlightedIndex(Number(index));\n }\n }, []);\n\n const handleItemClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }, []);\n\n const noop = React.useCallback(() => {}, []);\n\n // Item-level keyboard handler for Enter/Space activation (satisfies a11y lint rule)\n const handleItemKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }\n }, []);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n const currentItems = itemsRef.current;\n const currentHighlightedIndex = highlightedIndexRef.current;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const nextIndex =\n currentHighlightedIndex < currentItems.length - 1 ? currentHighlightedIndex + 1 : 0;\n setHighlightedIndex(nextIndex);\n scrollToIndexRef.current(nextIndex, { align: 'auto' });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prevIndex =\n currentHighlightedIndex > 0 ? currentHighlightedIndex - 1 : currentItems.length - 1;\n setHighlightedIndex(prevIndex);\n scrollToIndexRef.current(prevIndex, { align: 'auto' });\n break;\n }\n case 'Home': {\n e.preventDefault();\n setHighlightedIndex(0);\n scrollToIndexRef.current(0, { align: 'start' });\n break;\n }\n case 'End': {\n e.preventDefault();\n const lastIndex = currentItems.length - 1;\n setHighlightedIndex(lastIndex);\n scrollToIndexRef.current(lastIndex, { align: 'end' });\n break;\n }\n case 'Enter':\n case ' ': {\n e.preventDefault();\n if (currentHighlightedIndex >= 0 && currentHighlightedIndex < currentItems.length) {\n onSelectRef.current?.(currentItems[currentHighlightedIndex], currentHighlightedIndex);\n }\n break;\n }\n case 'Tab': {\n e.preventDefault();\n break;\n }\n case 'Escape': {\n (e.currentTarget as HTMLElement).blur();\n break;\n }\n }\n }, []);\n\n // Item ID generator\n const getItemId = React.useCallback(\n (index: number) => `${menuId}-item-${index}`,\n [menuId],\n );\n\n // Memoize styles\n const rootStyle = React.useMemo(\n () => ({\n overflow: 'auto' as const,\n position: 'relative' as const,\n ...style,\n }),\n [style],\n );\n\n const totalSize = virtualizer.getTotalSize();\n const viewportStyle = React.useMemo(\n () => ({\n height: `${totalSize}px`,\n width: '100%' as const,\n position: 'relative' as const,\n }),\n [totalSize],\n );\n\n return (\n <div\n ref={parentRef}\n role={isInsideMenu ? 'group' : 'menu'}\n aria-label={ariaLabel}\n aria-activedescendant={safeHighlightedIndex >= 0 ? getItemId(safeHighlightedIndex) : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n className={classNames('rt-VirtualMenuRoot', className)}\n style={rootStyle}\n >\n <div className=\"rt-VirtualMenuViewport\" style={viewportStyle}>\n {virtualItems.map((virtualRow) => {\n const item = items[virtualRow.index];\n const index = virtualRow.index;\n const isHighlighted = safeHighlightedIndex === index;\n\n const itemStyle: React.CSSProperties = {\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n };\n\n const commonProps = {\n id: getItemId(index),\n isHighlighted,\n style: itemStyle,\n tabIndex: isHighlighted ? 0 : -1,\n 'data-highlighted': isHighlighted ? true as const : undefined,\n 'data-index': index,\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: noop,\n onClick: handleItemClick,\n onKeyDown: handleItemKeyDown,\n };\n\n // Use renderItem if provided, otherwise use SimpleItem with itemLabel\n if (RenderItem) {\n return (\n <RenderItem\n key={virtualRow.key}\n item={item}\n index={index}\n {...commonProps}\n />\n );\n }\n\n return (\n <SimpleItem\n key={virtualRow.key}\n label={getLabel!(item)}\n {...commonProps}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nVirtualMenuRoot.displayName = 'VirtualMenu';\n\n// ============================================================================\n// VirtualMenu.Item Component (for custom renderItem usage)\n// ============================================================================\n\ninterface VirtualMenuItemProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n /** Data attribute for highlight styling */\n 'data-highlighted'?: true | undefined;\n /** Data attribute for event delegation */\n 'data-index'?: number;\n}\n\nconst VirtualMenuItemInner = React.forwardRef<HTMLDivElement, VirtualMenuItemProps>(\n ({ className, children, ...props }, forwardedRef) => {\n return (\n <div\n ref={forwardedRef}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem', className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nVirtualMenuItemInner.displayName = 'VirtualMenu.Item';\n\n// Memoized with custom comparison\nconst VirtualMenuItem = React.memo(VirtualMenuItemInner, (prevProps, nextProps) => {\n const prevStyle = prevProps.style as React.CSSProperties | undefined;\n const nextStyle = nextProps.style as React.CSSProperties | undefined;\n if (prevStyle?.height !== nextStyle?.height) return false;\n if (prevStyle?.transform !== nextStyle?.transform) return false;\n if (prevProps['data-highlighted'] !== nextProps['data-highlighted']) return false;\n if (prevProps.tabIndex !== nextProps.tabIndex) return false;\n if (prevProps.id !== nextProps.id) return false;\n if (prevProps.className !== nextProps.className) return false;\n if (prevProps.children !== nextProps.children) return false;\n return true;\n});\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst VirtualMenu = Object.assign(VirtualMenuRoot, {\n Item: VirtualMenuItem,\n});\n\nexport { VirtualMenu };\nexport type { VirtualMenuProps, VirtualMenuItemProps, VirtualMenuRenderItemProps };\n"],
5
- "mappings": "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",
6
- "names": ["React", "classNames", "useVirtualizer", "SimpleItem", "label", "_isHighlighted", "id", "style", "tabIndex", "dataHighlighted", "dataIndex", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "classNames", "prev", "next", "VirtualMenuRoot", "items", "itemLabel", "RenderItem", "sizeProp", "estimatedItemSizeProp", "overscan", "onSelect", "className", "ariaLabel", "menuId", "parentRef", "highlightedIndex", "setHighlightedIndex", "isInsideMenu", "contextSize", "contextItemHeight", "useMenuContext", "estimatedItemSize", "getMenuItemHeight", "getLabel", "item", "safeHighlightedIndex", "getItemSize", "virtualizer", "useVirtualizer", "virtualItems", "itemsRef", "onSelectRef", "scrollToIndexRef", "highlightedIndexRef", "handleItemMouseEnter", "e", "index", "handleItemClick", "idx", "currentItems", "noop", "handleItemKeyDown", "handleKeyDown", "currentHighlightedIndex", "nextIndex", "prevIndex", "lastIndex", "getItemId", "rootStyle", "totalSize", "viewportStyle", "virtualRow", "isHighlighted", "itemStyle", "commonProps", "VirtualMenuItemInner", "children", "props", "forwardedRef", "VirtualMenuItem", "prevProps", "nextProps", "prevStyle", "nextStyle", "VirtualMenu"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-G2CKYO2I.js";import{a as m}from"./chunk-AXUDFYLY.js";import{a as p}from"./chunk-KNQBAOMV.js";import{a as i}from"./chunk-FD2TR343.js";import{a as t}from"./chunk-WYADYDPN.js";import{a as f}from"./chunk-ZE2KAVXW.js";import{b as e}from"./chunk-ZWZGUBL4.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{c as r}from"./chunk-34KVYDF6.js";var a=["span","div","label","p"],n=["0","1","2","3","4","5","6","7","8","9","10","11","12"],x={as:{type:"enum",values:a,default:"span"},...o,size:{type:"enum",className:"rt-r-size",values:n,responsive:!0},...m,...i,...s,...p,...f,...t,...r,...e};export{x as a};
2
- //# sourceMappingURL=chunk-PDBVZAUJ.js.map
@@ -1,2 +0,0 @@
1
- import{a as U}from"./chunk-OMYAVTX6.js";import{a as K,b as F,c as j,e as E,f as O}from"./chunk-GYB7PAGB.js";import{a as z,b as H,c as W}from"./chunk-UFJJTUOU.js";import{d as G}from"./chunk-IX5HIHVI.js";import{a as w}from"./chunk-2XQECQF2.js";import{b as P}from"./chunk-6RZVKCNG.js";import{b as x}from"./chunk-FWB47YCH.js";import{a as D}from"./chunk-DIR22XIX.js";import{a as ae}from"./chunk-OS3FCYZY.js";var oe={};ae(oe,{Group:()=>_,GroupContent:()=>re,GroupLabel:()=>ee,Menu:()=>$,MenuButton:()=>J,MenuItem:()=>X,MenuSub:()=>Q,MenuSubContent:()=>Z,MenuSubTrigger:()=>Y,Search:()=>te,Separator:()=>V});import*as e from"react";import u from"classnames";import*as f from"@radix-ui/react-accordion";var V=e.forwardRef(({className:r,...t},n)=>e.createElement(U,{...t,ref:n,className:u("rt-SidebarSeparator",r)}));V.displayName="Sidebar.Separator";var $=e.forwardRef(({className:r,...t},n)=>e.createElement("ul",{...t,ref:n,className:u("rt-SidebarMenu",r)}));$.displayName="Sidebar.Menu";var X=e.forwardRef(({className:r,...t},n)=>e.createElement("li",{...t,ref:n,className:u("rt-SidebarMenuItem",r)}));X.displayName="Sidebar.MenuItem";function ne(r){let t=[],n=[];return e.Children.forEach(r,a=>{if(typeof a=="string"||typeof a=="number")n.push(e.createElement("span",{key:n.length,className:"rt-SidebarMenuLabel"},a));else if(e.isValidElement(a)){let i=a;i.type==="svg"||i.props&&i.props.icon||typeof i.type=="function"&&(i.type.displayName?.includes("Icon")||i.type.name?.includes("Icon"))?t.push(a):n.push(a)}else a&&n.push(a)}),{icons:t,labels:n}}function k(r){if(typeof r=="string"||typeof r=="number")return e.createElement("span",{className:"rt-SidebarMenuLabel"},r);if(Array.isArray(r))return r.map((t,n)=>e.createElement(e.Fragment,{key:n},k(t)));if(e.isValidElement(r)){let t=r,n=t.props&&t.props.className||"";if(typeof t.type=="string"&&n.split(" ").includes("rt-SidebarMenuLabel"))return t;let i=k(t.props?.children);return e.cloneElement(t,{...t.props},i)}return r}var J=e.forwardRef(({asChild:r=!1,isActive:t=!1,shortcut:n,badge:a,className:i,children:l,onKeyDown:m,...M},C)=>{let s=P(),c=s?.size??"2",p=s?.presentation==="thin",v=r?x:"button",I=e.useCallback(o=>{if(o.key==="ArrowDown"||o.key==="ArrowUp"){let b=o.currentTarget.closest(".rt-SidebarContent, .rt-SidebarSearchPopover"),y=b?Array.from(b.querySelectorAll(".rt-SidebarMenuButton")).filter(h=>h.offsetParent!==null):[],d=y.indexOf(o.currentTarget),N=y[d+(o.key==="ArrowDown"?1:-1)];d!==-1&&N&&(o.preventDefault(),N.focus())}m?.(o)},[m]),S=e.useMemo(()=>k(l),[l]),{icons:R,labels:B}=e.useMemo(()=>p?ne(l):{icons:[],labels:[]},[p,l]),L=e.useMemo(()=>{if(!r)return null;try{let o=e.Children.only(S),b=o.props?.children,y=e.createElement(e.Fragment,null,b,a&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof a=="string"?e.createElement(w,{size:c,variant:"soft"},a):e.createElement(w,{size:a.size||c,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(D,{size:c},n)));return e.cloneElement(o,{...o.props},y)}catch{return S}},[r,S,a,n,c]);return e.createElement(v,{...M,ref:C,"aria-current":t?"page":void 0,className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton",i),"data-active":t||void 0,onKeyDown:I},r?L:p&&R.length>0?e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},R),B.map((o,b)=>e.createElement(e.Fragment,{key:b},typeof o=="string"||typeof o=="number"?e.createElement("span",{className:"rt-SidebarMenuLabel"},o):o))):e.createElement(e.Fragment,null,S,a&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof a=="string"?e.createElement(w,{size:c,variant:"soft"},a):e.createElement(w,{size:a.size||c,variant:a.variant||"soft",color:a.color,radius:a.radius},a.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(D,{size:c},n))))});J.displayName="Sidebar.MenuButton";var T=e.createContext("accordion"),Q=e.forwardRef(({defaultOpen:r=!1,children:t,...n},a)=>(P()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:a},e.createElement(K,null,e.createElement(T.Provider,{value:"dropdown"},t))):e.createElement("div",{...n,ref:a},e.createElement(T.Provider,{value:"accordion"},e.createElement(f.Root,{type:"single",collapsible:!0,defaultValue:r?"item":void 0},e.createElement(f.Item,{value:"item"},t)))));Q.displayName="Sidebar.MenuSub";var Y=e.forwardRef(({asChild:r=!1,className:t,children:n,...a},i)=>e.useContext(T)==="dropdown"?e.createElement(F,null,e.createElement("button",{...a,ref:i,type:"button","aria-haspopup":"menu",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",t)},n)):e.createElement(f.Header,{asChild:!0},e.createElement("div",null,e.createElement(f.Trigger,{...a,ref:i,asChild:r,className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",t)},r?n:e.createElement(e.Fragment,null,n,e.createElement(G,{className:u("rt-BaseMenuSubTriggerIcon","rt-SidebarMenuSubTriggerIcon")}))))));Y.displayName="Sidebar.MenuSubTrigger";var Z=e.forwardRef(({className:r,children:t,...n},a)=>{let i=P();if(e.useContext(T)==="dropdown"){let m=s=>{if(Array.isArray(s))return s.map((c,p)=>e.createElement(e.Fragment,{key:p},m(c)));if(e.isValidElement(s)){if(s.type?.displayName==="Sidebar.MenuButton")return s.props?.children;let p=s.props?.children;if(p!==void 0)return e.cloneElement(s,{...s.props,children:m(p)})}return s},M=e.Children.map(t,(s,c)=>{if(e.isValidElement(s)&&s.type?.displayName==="Sidebar.MenuItem"){let p=s.props?.children,v=m(p);return e.createElement(E,{key:c,asChild:!0},v)}return e.createElement(E,{key:c,asChild:!0},m(s))}),C=i?.size==="3"?"2":i?.size;return e.createElement(j,{size:C,className:u(r)},e.createElement(O,null,M))}return e.createElement(f.Content,{...n,ref:a,className:u("rt-SidebarMenuSubContent",r)},e.createElement("div",{className:"rt-SidebarMenuSubList"},t))});Z.displayName="Sidebar.MenuSubContent";var _=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:u("rt-BaseMenuGroup","rt-SidebarGroup",r)}));_.displayName="Sidebar.Group";var ee=e.forwardRef(({asChild:r=!1,className:t,...n},a)=>e.createElement(r?x:"div",{...n,ref:a,className:u("rt-BaseMenuLabel","rt-SidebarGroupLabel",t)}));ee.displayName="Sidebar.GroupLabel";var re=e.forwardRef(({className:r,...t},n)=>e.createElement("div",{...t,ref:n,className:u("rt-SidebarGroupContent",r)}));re.displayName="Sidebar.GroupContent";var A=({className:r})=>e.createElement("svg",{className:r,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),q=({className:r})=>e.createElement("svg",{className:r,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),te=e.forwardRef(({value:r,onValueChange:t,placeholder:n="Search...",children:a,className:i,...l},m)=>{let M=P(),C=M?.presentation==="thin",s=e.useRef(null),c=e.useRef(null),v=`${e.useId()}-results`,I=e.useRef(r);I.current=r;let S=e.useRef(t);S.current=t;let R=n.replace(/\.+$/,""),B=e.useCallback(o=>{o.key==="Escape"&&I.current&&(o.preventDefault(),o.stopPropagation(),S.current(""),s.current?.focus())},[]),L=e.useCallback(o=>{let b=c.current;if(!b)return;let y=b.querySelector('[role="group"]');if(!y)return;let d=Array.from(y.querySelectorAll("a, button"));if(d.length===0)return;let N=document.activeElement,h=N===s.current,g=d.indexOf(N);if(o.key.length===1&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&!h&&g!==-1){s.current?.focus();return}switch(o.key){case"ArrowDown":{o.preventDefault(),h||g===-1?d[0]?.focus():g<d.length-1&&d[g+1]?.focus();break}case"ArrowUp":{o.preventDefault(),g<=0?s.current?.focus():d[g-1]?.focus();break}case"Home":{h||(o.preventDefault(),d[0]?.focus());break}case"End":{h||(o.preventDefault(),d[d.length-1]?.focus());break}}},[]);return C?e.createElement("div",{...l,ref:m,className:u("rt-SidebarSearch","rt-SidebarSearch--thin",i)},e.createElement(z,null,e.createElement(H,null,e.createElement("button",{type:"button",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarSearchTrigger"),"aria-label":R},e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},e.createElement(A,null)),e.createElement("span",{className:"rt-SidebarMenuLabel"},"Search"))),e.createElement(W,{side:"right",align:"start",size:"2",width:"280px","aria-label":R},e.createElement("div",{ref:c,className:"rt-SidebarSearchPopover",role:"search",onKeyDown:L},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(A,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:s,type:"search",className:"rt-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:B,placeholder:n,"aria-label":R,"aria-controls":a?v:void 0,autoFocus:!0}),r&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{t(""),s.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))),a&&e.createElement("div",{id:v,role:"group","aria-label":"Search results"},a))))):e.createElement("div",{...l,ref:m,className:u("rt-SidebarSearch","rt-SidebarSearch--expanded","rt-ShellPaneChrome",`rt-r-size-${M?.size??"2"}`,i),role:"search"},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(A,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:s,type:"search",className:"rt-SidebarSearchInput",value:r,onChange:o=>t(o.target.value),onKeyDown:B,placeholder:n,"aria-label":R}),r&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{t(""),s.current?.focus()},"aria-label":"Clear search"},e.createElement(q,null))))});te.displayName="Sidebar.Search";export{V as a,$ as b,X as c,J as d,Q as e,Y as f,Z as g,_ as h,ee as i,re as j,te as k,oe as l};
2
- //# sourceMappingURL=chunk-UUV5UNYL.js.map
@@ -1,2 +0,0 @@
1
- import{a as p}from"./chunk-FD2TR343.js";import{a as t}from"./chunk-WYADYDPN.js";import{a as s}from"./chunk-ZE2KAVXW.js";import{b as e}from"./chunk-ZWZGUBL4.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{e as r}from"./chunk-34KVYDF6.js";var a=["0","1","2","3","4","5","6","7","8","9","10","11","12"],i=["solid","soft","outline","ghost"],P={...o,size:{type:"enum",className:"rt-r-size",values:a,responsive:!0},variant:{type:"enum",className:"rt-variant",values:i,default:"soft"},...p,...r,...e,...s,...t};export{P as a};
2
- //# sourceMappingURL=chunk-ZMFZYXLB.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/code.props.tsx"],
4
- "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { grayAccentColorPropDef } from '../props/color.prop.js';\nimport { emphasisPropDef } from '../props/emphasis.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nconst variants = ['solid', 'soft', 'outline', 'ghost'] as const;\n\nconst codePropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n responsive: true,\n },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'soft' },\n ...weightPropDef,\n ...grayAccentColorPropDef,\n ...emphasisPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n};\n\nexport { codePropDefs };\n"],
5
- "mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EAC3EC,EAAW,CAAC,QAAS,OAAQ,UAAW,OAAO,EAE/CC,EAAe,CACnB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQH,EACR,WAAY,EACd,EACA,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,MAAO,EACpF,GAAGG,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,CACL",
6
- "names": ["sizes", "variants", "codePropDefs", "asChildPropDef", "weightPropDef", "grayAccentColorPropDef", "emphasisPropDef", "truncatePropDef", "textWrapPropDef"]
7
- }