@kanzo-tech/ui 0.0.1-alpha

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 (499) hide show
  1. package/README.md +60 -0
  2. package/dist/analytics.d.ts +36 -0
  3. package/dist/analytics.d.ts.map +1 -0
  4. package/dist/analytics.js +155 -0
  5. package/dist/analytics.js.map +1 -0
  6. package/dist/charts/arrow.d.ts +37 -0
  7. package/dist/charts/arrow.d.ts.map +1 -0
  8. package/dist/charts/arrow.js +29 -0
  9. package/dist/charts/arrow.js.map +1 -0
  10. package/dist/charts/chart-axes.d.ts +59 -0
  11. package/dist/charts/chart-axes.d.ts.map +1 -0
  12. package/dist/charts/chart-axes.js +39 -0
  13. package/dist/charts/chart-axes.js.map +1 -0
  14. package/dist/charts/chart-config.d.ts +52 -0
  15. package/dist/charts/chart-config.d.ts.map +1 -0
  16. package/dist/charts/chart-config.js +43 -0
  17. package/dist/charts/chart-config.js.map +1 -0
  18. package/dist/charts/chart-inputs.d.ts +174 -0
  19. package/dist/charts/chart-inputs.d.ts.map +1 -0
  20. package/dist/charts/chart-inputs.js +382 -0
  21. package/dist/charts/chart-inputs.js.map +1 -0
  22. package/dist/charts/chart-interactors.d.ts +75 -0
  23. package/dist/charts/chart-interactors.d.ts.map +1 -0
  24. package/dist/charts/chart-interactors.js +35 -0
  25. package/dist/charts/chart-interactors.js.map +1 -0
  26. package/dist/charts/chart-legend.d.ts +38 -0
  27. package/dist/charts/chart-legend.d.ts.map +1 -0
  28. package/dist/charts/chart-legend.js +49 -0
  29. package/dist/charts/chart-legend.js.map +1 -0
  30. package/dist/charts/chart-marks.d.ts +124 -0
  31. package/dist/charts/chart-marks.d.ts.map +1 -0
  32. package/dist/charts/chart-marks.js +109 -0
  33. package/dist/charts/chart-marks.js.map +1 -0
  34. package/dist/charts/chart-root.d.ts +90 -0
  35. package/dist/charts/chart-root.d.ts.map +1 -0
  36. package/dist/charts/chart-root.js +162 -0
  37. package/dist/charts/chart-root.js.map +1 -0
  38. package/dist/charts/chart-spec.d.ts +126 -0
  39. package/dist/charts/chart-spec.d.ts.map +1 -0
  40. package/dist/charts/chart-spec.js +133 -0
  41. package/dist/charts/chart-spec.js.map +1 -0
  42. package/dist/charts/chart-stat.d.ts +23 -0
  43. package/dist/charts/chart-stat.d.ts.map +1 -0
  44. package/dist/charts/chart-stat.js +24 -0
  45. package/dist/charts/chart-stat.js.map +1 -0
  46. package/dist/charts/id-set-client.d.ts +42 -0
  47. package/dist/charts/id-set-client.d.ts.map +1 -0
  48. package/dist/charts/id-set-client.js +43 -0
  49. package/dist/charts/id-set-client.js.map +1 -0
  50. package/dist/charts/mosaic-provider.d.ts +70 -0
  51. package/dist/charts/mosaic-provider.d.ts.map +1 -0
  52. package/dist/charts/mosaic-provider.js +53 -0
  53. package/dist/charts/mosaic-provider.js.map +1 -0
  54. package/dist/charts/query-client.d.ts +22 -0
  55. package/dist/charts/query-client.d.ts.map +1 -0
  56. package/dist/charts/query-client.js +26 -0
  57. package/dist/charts/query-client.js.map +1 -0
  58. package/dist/charts/tokenized-plot.d.ts +26 -0
  59. package/dist/charts/tokenized-plot.d.ts.map +1 -0
  60. package/dist/charts/tokenized-plot.js +41 -0
  61. package/dist/charts/tokenized-plot.js.map +1 -0
  62. package/dist/charts/use-chart-query.d.ts +30 -0
  63. package/dist/charts/use-chart-query.d.ts.map +1 -0
  64. package/dist/charts/use-chart-query.js +19 -0
  65. package/dist/charts/use-chart-query.js.map +1 -0
  66. package/dist/composites/CodeEditor.d.ts +64 -0
  67. package/dist/composites/CodeEditor.d.ts.map +1 -0
  68. package/dist/composites/CodeEditor.js +521 -0
  69. package/dist/composites/CodeEditor.js.map +1 -0
  70. package/dist/composites/MadeWith.d.ts +39 -0
  71. package/dist/composites/MadeWith.d.ts.map +1 -0
  72. package/dist/composites/MadeWith.js +30 -0
  73. package/dist/composites/MadeWith.js.map +1 -0
  74. package/dist/composites/Preferences.d.ts +155 -0
  75. package/dist/composites/Preferences.d.ts.map +1 -0
  76. package/dist/composites/Preferences.js +501 -0
  77. package/dist/composites/Preferences.js.map +1 -0
  78. package/dist/composites/Questionnaire.d.ts +215 -0
  79. package/dist/composites/Questionnaire.d.ts.map +1 -0
  80. package/dist/composites/Questionnaire.js +422 -0
  81. package/dist/composites/Questionnaire.js.map +1 -0
  82. package/dist/composites/SidebarIdentity.d.ts +63 -0
  83. package/dist/composites/SidebarIdentity.d.ts.map +1 -0
  84. package/dist/composites/SidebarIdentity.js +103 -0
  85. package/dist/composites/SidebarIdentity.js.map +1 -0
  86. package/dist/composites/code-editor-search.d.ts +40 -0
  87. package/dist/composites/code-editor-search.d.ts.map +1 -0
  88. package/dist/composites/code-editor-search.js +212 -0
  89. package/dist/composites/code-editor-search.js.map +1 -0
  90. package/dist/composites/sidebar.d.ts +129 -0
  91. package/dist/composites/sidebar.d.ts.map +1 -0
  92. package/dist/composites/sidebar.js +671 -0
  93. package/dist/composites/sidebar.js.map +1 -0
  94. package/dist/composites/theme-notice.d.ts +54 -0
  95. package/dist/composites/theme-notice.d.ts.map +1 -0
  96. package/dist/composites/theme-notice.js +19 -0
  97. package/dist/composites/theme-notice.js.map +1 -0
  98. package/dist/editor.d.ts +3 -0
  99. package/dist/editor.d.ts.map +1 -0
  100. package/dist/editor.js +6 -0
  101. package/dist/editor.js.map +1 -0
  102. package/dist/guard-corpus.d.ts +63 -0
  103. package/dist/guard-corpus.d.ts.map +1 -0
  104. package/dist/index.d.ts +112 -0
  105. package/dist/index.d.ts.map +1 -0
  106. package/dist/index.js +696 -0
  107. package/dist/index.js.map +1 -0
  108. package/dist/layouts/section.d.ts +166 -0
  109. package/dist/layouts/section.d.ts.map +1 -0
  110. package/dist/layouts/section.js +153 -0
  111. package/dist/layouts/section.js.map +1 -0
  112. package/dist/layouts/shell.d.ts +128 -0
  113. package/dist/layouts/shell.d.ts.map +1 -0
  114. package/dist/layouts/shell.js +107 -0
  115. package/dist/layouts/shell.js.map +1 -0
  116. package/dist/lib/cn.d.ts +4 -0
  117. package/dist/lib/cn.d.ts.map +1 -0
  118. package/dist/lib/cn.js +9 -0
  119. package/dist/lib/cn.js.map +1 -0
  120. package/dist/lib/is-active-path.d.ts +13 -0
  121. package/dist/lib/is-active-path.d.ts.map +1 -0
  122. package/dist/lib/is-active-path.js +7 -0
  123. package/dist/lib/is-active-path.js.map +1 -0
  124. package/dist/lib/theme-tick.d.ts +37 -0
  125. package/dist/lib/theme-tick.d.ts.map +1 -0
  126. package/dist/lib/theme-tick.js +30 -0
  127. package/dist/lib/theme-tick.js.map +1 -0
  128. package/dist/lib/token-color.d.ts +74 -0
  129. package/dist/lib/token-color.d.ts.map +1 -0
  130. package/dist/lib/token-color.js +35 -0
  131. package/dist/lib/token-color.js.map +1 -0
  132. package/dist/lib/use-is-mobile.d.ts +2 -0
  133. package/dist/lib/use-is-mobile.d.ts.map +1 -0
  134. package/dist/lib/use-is-mobile.js +17 -0
  135. package/dist/lib/use-is-mobile.js.map +1 -0
  136. package/dist/shark-parity.divergences.d.ts +104 -0
  137. package/dist/shark-parity.divergences.d.ts.map +1 -0
  138. package/dist/simples/FacetFilter.d.ts +57 -0
  139. package/dist/simples/FacetFilter.d.ts.map +1 -0
  140. package/dist/simples/FacetFilter.js +167 -0
  141. package/dist/simples/FacetFilter.js.map +1 -0
  142. package/dist/simples/FieldArray.d.ts +42 -0
  143. package/dist/simples/FieldArray.d.ts.map +1 -0
  144. package/dist/simples/FieldArray.js +76 -0
  145. package/dist/simples/FieldArray.js.map +1 -0
  146. package/dist/simples/Link.d.ts +38 -0
  147. package/dist/simples/Link.d.ts.map +1 -0
  148. package/dist/simples/Link.js +24 -0
  149. package/dist/simples/Link.js.map +1 -0
  150. package/dist/simples/accordion.d.ts +8 -0
  151. package/dist/simples/accordion.d.ts.map +1 -0
  152. package/dist/simples/accordion.js +78 -0
  153. package/dist/simples/accordion.js.map +1 -0
  154. package/dist/simples/action-bar.d.ts +101 -0
  155. package/dist/simples/action-bar.d.ts.map +1 -0
  156. package/dist/simples/action-bar.js +195 -0
  157. package/dist/simples/action-bar.js.map +1 -0
  158. package/dist/simples/alert-dialog.d.ts +24 -0
  159. package/dist/simples/alert-dialog.d.ts.map +1 -0
  160. package/dist/simples/alert-dialog.js +43 -0
  161. package/dist/simples/alert-dialog.js.map +1 -0
  162. package/dist/simples/alert.d.ts +36 -0
  163. package/dist/simples/alert.d.ts.map +1 -0
  164. package/dist/simples/alert.js +123 -0
  165. package/dist/simples/alert.js.map +1 -0
  166. package/dist/simples/avatar.d.ts +37 -0
  167. package/dist/simples/avatar.d.ts.map +1 -0
  168. package/dist/simples/avatar.js +133 -0
  169. package/dist/simples/avatar.js.map +1 -0
  170. package/dist/simples/badge.d.ts +66 -0
  171. package/dist/simples/badge.d.ts.map +1 -0
  172. package/dist/simples/badge.js +138 -0
  173. package/dist/simples/badge.js.map +1 -0
  174. package/dist/simples/breadcrumb.d.ts +19 -0
  175. package/dist/simples/breadcrumb.d.ts.map +1 -0
  176. package/dist/simples/breadcrumb.js +107 -0
  177. package/dist/simples/breadcrumb.js.map +1 -0
  178. package/dist/simples/button-group.d.ts +19 -0
  179. package/dist/simples/button-group.d.ts.map +1 -0
  180. package/dist/simples/button-group.js +69 -0
  181. package/dist/simples/button-group.js.map +1 -0
  182. package/dist/simples/button.d.ts +148 -0
  183. package/dist/simples/button.d.ts.map +1 -0
  184. package/dist/simples/button.js +157 -0
  185. package/dist/simples/button.js.map +1 -0
  186. package/dist/simples/calendar.d.ts +45 -0
  187. package/dist/simples/calendar.d.ts.map +1 -0
  188. package/dist/simples/calendar.js +342 -0
  189. package/dist/simples/calendar.js.map +1 -0
  190. package/dist/simples/card.d.ts +43 -0
  191. package/dist/simples/card.d.ts.map +1 -0
  192. package/dist/simples/card.js +151 -0
  193. package/dist/simples/card.js.map +1 -0
  194. package/dist/simples/checkbox.d.ts +25 -0
  195. package/dist/simples/checkbox.d.ts.map +1 -0
  196. package/dist/simples/checkbox.js +103 -0
  197. package/dist/simples/checkbox.js.map +1 -0
  198. package/dist/simples/client-only.d.ts +3 -0
  199. package/dist/simples/client-only.d.ts.map +1 -0
  200. package/dist/simples/client-only.js +7 -0
  201. package/dist/simples/client-only.js.map +1 -0
  202. package/dist/simples/clipboard.d.ts +11 -0
  203. package/dist/simples/clipboard.d.ts.map +1 -0
  204. package/dist/simples/clipboard.js +99 -0
  205. package/dist/simples/clipboard.js.map +1 -0
  206. package/dist/simples/collapsible.d.ts +8 -0
  207. package/dist/simples/collapsible.d.ts.map +1 -0
  208. package/dist/simples/collapsible.js +79 -0
  209. package/dist/simples/collapsible.js.map +1 -0
  210. package/dist/simples/color-picker.d.ts +62 -0
  211. package/dist/simples/color-picker.d.ts.map +1 -0
  212. package/dist/simples/color-picker.js +391 -0
  213. package/dist/simples/color-picker.js.map +1 -0
  214. package/dist/simples/combobox.d.ts +66 -0
  215. package/dist/simples/combobox.d.ts.map +1 -0
  216. package/dist/simples/combobox.js +230 -0
  217. package/dist/simples/combobox.js.map +1 -0
  218. package/dist/simples/command.d.ts +45 -0
  219. package/dist/simples/command.d.ts.map +1 -0
  220. package/dist/simples/command.js +180 -0
  221. package/dist/simples/command.js.map +1 -0
  222. package/dist/simples/data-list.d.ts +25 -0
  223. package/dist/simples/data-list.d.ts.map +1 -0
  224. package/dist/simples/data-list.js +62 -0
  225. package/dist/simples/data-list.js.map +1 -0
  226. package/dist/simples/date-picker.d.ts +16 -0
  227. package/dist/simples/date-picker.d.ts.map +1 -0
  228. package/dist/simples/date-picker.js +117 -0
  229. package/dist/simples/date-picker.js.map +1 -0
  230. package/dist/simples/diagnostic.d.ts +138 -0
  231. package/dist/simples/diagnostic.d.ts.map +1 -0
  232. package/dist/simples/diagnostic.js +288 -0
  233. package/dist/simples/diagnostic.js.map +1 -0
  234. package/dist/simples/dialog.d.ts +100 -0
  235. package/dist/simples/dialog.d.ts.map +1 -0
  236. package/dist/simples/dialog.js +267 -0
  237. package/dist/simples/dialog.js.map +1 -0
  238. package/dist/simples/download-trigger.d.ts +3 -0
  239. package/dist/simples/download-trigger.d.ts.map +1 -0
  240. package/dist/simples/download-trigger.js +7 -0
  241. package/dist/simples/download-trigger.js.map +1 -0
  242. package/dist/simples/editable.d.ts +23 -0
  243. package/dist/simples/editable.d.ts.map +1 -0
  244. package/dist/simples/editable.js +70 -0
  245. package/dist/simples/editable.js.map +1 -0
  246. package/dist/simples/field.d.ts +58 -0
  247. package/dist/simples/field.d.ts.map +1 -0
  248. package/dist/simples/field.js +285 -0
  249. package/dist/simples/field.js.map +1 -0
  250. package/dist/simples/file-upload.d.ts +19 -0
  251. package/dist/simples/file-upload.d.ts.map +1 -0
  252. package/dist/simples/file-upload.js +192 -0
  253. package/dist/simples/file-upload.js.map +1 -0
  254. package/dist/simples/float.d.ts +45 -0
  255. package/dist/simples/float.d.ts.map +1 -0
  256. package/dist/simples/float.js +40 -0
  257. package/dist/simples/float.js.map +1 -0
  258. package/dist/simples/floating-panel.d.ts +25 -0
  259. package/dist/simples/floating-panel.d.ts.map +1 -0
  260. package/dist/simples/floating-panel.js +95 -0
  261. package/dist/simples/floating-panel.js.map +1 -0
  262. package/dist/simples/highlight.d.ts +6 -0
  263. package/dist/simples/highlight.d.ts.map +1 -0
  264. package/dist/simples/highlight.js +24 -0
  265. package/dist/simples/highlight.js.map +1 -0
  266. package/dist/simples/hover-card.d.ts +11 -0
  267. package/dist/simples/hover-card.d.ts.map +1 -0
  268. package/dist/simples/hover-card.js +83 -0
  269. package/dist/simples/hover-card.js.map +1 -0
  270. package/dist/simples/image-cropper.d.ts +17 -0
  271. package/dist/simples/image-cropper.d.ts.map +1 -0
  272. package/dist/simples/image-cropper.js +139 -0
  273. package/dist/simples/image-cropper.js.map +1 -0
  274. package/dist/simples/input-group.d.ts +116 -0
  275. package/dist/simples/input-group.d.ts.map +1 -0
  276. package/dist/simples/input-group.js +245 -0
  277. package/dist/simples/input-group.js.map +1 -0
  278. package/dist/simples/input.d.ts +26 -0
  279. package/dist/simples/input.d.ts.map +1 -0
  280. package/dist/simples/input.js +60 -0
  281. package/dist/simples/input.js.map +1 -0
  282. package/dist/simples/item.d.ts +72 -0
  283. package/dist/simples/item.d.ts.map +1 -0
  284. package/dist/simples/item.js +180 -0
  285. package/dist/simples/item.js.map +1 -0
  286. package/dist/simples/json-tree-view.d.ts +7 -0
  287. package/dist/simples/json-tree-view.d.ts.map +1 -0
  288. package/dist/simples/json-tree-view.js +71 -0
  289. package/dist/simples/json-tree-view.js.map +1 -0
  290. package/dist/simples/kbd.d.ts +25 -0
  291. package/dist/simples/kbd.d.ts.map +1 -0
  292. package/dist/simples/kbd.js +50 -0
  293. package/dist/simples/kbd.js.map +1 -0
  294. package/dist/simples/listbox.d.ts +46 -0
  295. package/dist/simples/listbox.d.ts.map +1 -0
  296. package/dist/simples/listbox.js +218 -0
  297. package/dist/simples/listbox.js.map +1 -0
  298. package/dist/simples/menu.d.ts +60 -0
  299. package/dist/simples/menu.d.ts.map +1 -0
  300. package/dist/simples/menu.js +294 -0
  301. package/dist/simples/menu.js.map +1 -0
  302. package/dist/simples/native-select.d.ts +36 -0
  303. package/dist/simples/native-select.d.ts.map +1 -0
  304. package/dist/simples/native-select.js +77 -0
  305. package/dist/simples/native-select.js.map +1 -0
  306. package/dist/simples/number-input.d.ts +35 -0
  307. package/dist/simples/number-input.d.ts.map +1 -0
  308. package/dist/simples/number-input.js +142 -0
  309. package/dist/simples/number-input.js.map +1 -0
  310. package/dist/simples/pagination.d.ts +11 -0
  311. package/dist/simples/pagination.d.ts.map +1 -0
  312. package/dist/simples/pagination.js +78 -0
  313. package/dist/simples/pagination.js.map +1 -0
  314. package/dist/simples/password-input.d.ts +23 -0
  315. package/dist/simples/password-input.d.ts.map +1 -0
  316. package/dist/simples/password-input.js +90 -0
  317. package/dist/simples/password-input.js.map +1 -0
  318. package/dist/simples/pin-input.d.ts +30 -0
  319. package/dist/simples/pin-input.d.ts.map +1 -0
  320. package/dist/simples/pin-input.js +71 -0
  321. package/dist/simples/pin-input.js.map +1 -0
  322. package/dist/simples/popover.d.ts +42 -0
  323. package/dist/simples/popover.d.ts.map +1 -0
  324. package/dist/simples/popover.js +188 -0
  325. package/dist/simples/popover.js.map +1 -0
  326. package/dist/simples/progress.d.ts +23 -0
  327. package/dist/simples/progress.d.ts.map +1 -0
  328. package/dist/simples/progress.js +82 -0
  329. package/dist/simples/progress.js.map +1 -0
  330. package/dist/simples/prose.d.ts +17 -0
  331. package/dist/simples/prose.d.ts.map +1 -0
  332. package/dist/simples/prose.js +18 -0
  333. package/dist/simples/prose.js.map +1 -0
  334. package/dist/simples/radio-group.d.ts +23 -0
  335. package/dist/simples/radio-group.d.ts.map +1 -0
  336. package/dist/simples/radio-group.js +149 -0
  337. package/dist/simples/radio-group.js.map +1 -0
  338. package/dist/simples/rating.d.ts +10 -0
  339. package/dist/simples/rating.d.ts.map +1 -0
  340. package/dist/simples/rating.js +81 -0
  341. package/dist/simples/rating.js.map +1 -0
  342. package/dist/simples/resizable.d.ts +16 -0
  343. package/dist/simples/resizable.d.ts.map +1 -0
  344. package/dist/simples/resizable.js +57 -0
  345. package/dist/simples/resizable.js.map +1 -0
  346. package/dist/simples/scroll-area.d.ts +23 -0
  347. package/dist/simples/scroll-area.d.ts.map +1 -0
  348. package/dist/simples/scroll-area.js +88 -0
  349. package/dist/simples/scroll-area.js.map +1 -0
  350. package/dist/simples/segment-group.d.ts +27 -0
  351. package/dist/simples/segment-group.d.ts.map +1 -0
  352. package/dist/simples/segment-group.js +129 -0
  353. package/dist/simples/segment-group.js.map +1 -0
  354. package/dist/simples/select.d.ts +34 -0
  355. package/dist/simples/select.d.ts.map +1 -0
  356. package/dist/simples/select.js +258 -0
  357. package/dist/simples/select.js.map +1 -0
  358. package/dist/simples/separator.d.ts +12 -0
  359. package/dist/simples/separator.d.ts.map +1 -0
  360. package/dist/simples/separator.js +27 -0
  361. package/dist/simples/separator.js.map +1 -0
  362. package/dist/simples/sheet.d.ts +94 -0
  363. package/dist/simples/sheet.d.ts.map +1 -0
  364. package/dist/simples/sheet.js +172 -0
  365. package/dist/simples/sheet.js.map +1 -0
  366. package/dist/simples/show.d.ts +10 -0
  367. package/dist/simples/show.d.ts.map +1 -0
  368. package/dist/simples/show.js +9 -0
  369. package/dist/simples/show.js.map +1 -0
  370. package/dist/simples/skeleton.d.ts +3 -0
  371. package/dist/simples/skeleton.d.ts.map +1 -0
  372. package/dist/simples/skeleton.js +23 -0
  373. package/dist/simples/skeleton.js.map +1 -0
  374. package/dist/simples/skip-nav.d.ts +54 -0
  375. package/dist/simples/skip-nav.d.ts.map +1 -0
  376. package/dist/simples/skip-nav.js +42 -0
  377. package/dist/simples/skip-nav.js.map +1 -0
  378. package/dist/simples/slider.d.ts +29 -0
  379. package/dist/simples/slider.d.ts.map +1 -0
  380. package/dist/simples/slider.js +189 -0
  381. package/dist/simples/slider.js.map +1 -0
  382. package/dist/simples/spinner.d.ts +2 -0
  383. package/dist/simples/spinner.d.ts.map +1 -0
  384. package/dist/simples/spinner.js +20 -0
  385. package/dist/simples/spinner.js.map +1 -0
  386. package/dist/simples/stat-tile.d.ts +31 -0
  387. package/dist/simples/stat-tile.d.ts.map +1 -0
  388. package/dist/simples/stat-tile.js +64 -0
  389. package/dist/simples/stat-tile.js.map +1 -0
  390. package/dist/simples/status.d.ts +48 -0
  391. package/dist/simples/status.d.ts.map +1 -0
  392. package/dist/simples/status.js +57 -0
  393. package/dist/simples/status.js.map +1 -0
  394. package/dist/simples/steps.d.ts +20 -0
  395. package/dist/simples/steps.d.ts.map +1 -0
  396. package/dist/simples/steps.js +171 -0
  397. package/dist/simples/steps.js.map +1 -0
  398. package/dist/simples/suggestions.d.ts +43 -0
  399. package/dist/simples/suggestions.d.ts.map +1 -0
  400. package/dist/simples/suggestions.js +38 -0
  401. package/dist/simples/suggestions.js.map +1 -0
  402. package/dist/simples/swatch.d.ts +73 -0
  403. package/dist/simples/swatch.d.ts.map +1 -0
  404. package/dist/simples/swatch.js +35 -0
  405. package/dist/simples/swatch.js.map +1 -0
  406. package/dist/simples/switch.d.ts +5 -0
  407. package/dist/simples/switch.d.ts.map +1 -0
  408. package/dist/simples/switch.js +71 -0
  409. package/dist/simples/switch.js.map +1 -0
  410. package/dist/simples/table.d.ts +55 -0
  411. package/dist/simples/table.d.ts.map +1 -0
  412. package/dist/simples/table.js +166 -0
  413. package/dist/simples/table.js.map +1 -0
  414. package/dist/simples/tabs.d.ts +55 -0
  415. package/dist/simples/tabs.d.ts.map +1 -0
  416. package/dist/simples/tabs.js +133 -0
  417. package/dist/simples/tabs.js.map +1 -0
  418. package/dist/simples/tags-input.d.ts +64 -0
  419. package/dist/simples/tags-input.d.ts.map +1 -0
  420. package/dist/simples/tags-input.js +228 -0
  421. package/dist/simples/tags-input.js.map +1 -0
  422. package/dist/simples/textarea.d.ts +6 -0
  423. package/dist/simples/textarea.d.ts.map +1 -0
  424. package/dist/simples/textarea.js +34 -0
  425. package/dist/simples/textarea.js.map +1 -0
  426. package/dist/simples/toast.d.ts +20 -0
  427. package/dist/simples/toast.d.ts.map +1 -0
  428. package/dist/simples/toast.js +127 -0
  429. package/dist/simples/toast.js.map +1 -0
  430. package/dist/simples/toggle-group.d.ts +20 -0
  431. package/dist/simples/toggle-group.d.ts.map +1 -0
  432. package/dist/simples/toggle-group.js +82 -0
  433. package/dist/simples/toggle-group.js.map +1 -0
  434. package/dist/simples/toggle.d.ts +35 -0
  435. package/dist/simples/toggle.d.ts.map +1 -0
  436. package/dist/simples/toggle.js +57 -0
  437. package/dist/simples/toggle.js.map +1 -0
  438. package/dist/simples/tooltip.d.ts +8 -0
  439. package/dist/simples/tooltip.d.ts.map +1 -0
  440. package/dist/simples/tooltip.js +80 -0
  441. package/dist/simples/tooltip.js.map +1 -0
  442. package/dist/simples/tour.d.ts +81 -0
  443. package/dist/simples/tour.d.ts.map +1 -0
  444. package/dist/simples/tour.js +253 -0
  445. package/dist/simples/tour.js.map +1 -0
  446. package/dist/simples/tree-view.d.ts +64 -0
  447. package/dist/simples/tree-view.d.ts.map +1 -0
  448. package/dist/simples/tree-view.js +300 -0
  449. package/dist/simples/tree-view.js.map +1 -0
  450. package/dist/styles.css +2 -0
  451. package/dist/table/data-table-content.d.ts +18 -0
  452. package/dist/table/data-table-content.d.ts.map +1 -0
  453. package/dist/table/data-table-content.js +53 -0
  454. package/dist/table/data-table-content.js.map +1 -0
  455. package/dist/table/data-table-pagination.d.ts +8 -0
  456. package/dist/table/data-table-pagination.d.ts.map +1 -0
  457. package/dist/table/data-table-pagination.js +65 -0
  458. package/dist/table/data-table-pagination.js.map +1 -0
  459. package/dist/table/data-table-root.d.ts +10 -0
  460. package/dist/table/data-table-root.d.ts.map +1 -0
  461. package/dist/table/data-table-root.js +21 -0
  462. package/dist/table/data-table-root.js.map +1 -0
  463. package/dist/table/data-table-toolbar.d.ts +44 -0
  464. package/dist/table/data-table-toolbar.d.ts.map +1 -0
  465. package/dist/table/data-table-toolbar.js +87 -0
  466. package/dist/table/data-table-toolbar.js.map +1 -0
  467. package/dist/table/select-column.d.ts +16 -0
  468. package/dist/table/select-column.d.ts.map +1 -0
  469. package/dist/table/select-column.js +39 -0
  470. package/dist/table/select-column.js.map +1 -0
  471. package/dist/table/sortableHeader.d.ts +25 -0
  472. package/dist/table/sortableHeader.d.ts.map +1 -0
  473. package/dist/table/sortableHeader.js +43 -0
  474. package/dist/table/sortableHeader.js.map +1 -0
  475. package/dist/table/use-data-table.d.ts +40 -0
  476. package/dist/table/use-data-table.d.ts.map +1 -0
  477. package/dist/table/use-data-table.js +65 -0
  478. package/dist/table/use-data-table.js.map +1 -0
  479. package/dist/table.d.ts +15 -0
  480. package/dist/table.d.ts.map +1 -0
  481. package/dist/table.js +22 -0
  482. package/dist/table.js.map +1 -0
  483. package/dist/theme/KanzoTheme.d.ts +74 -0
  484. package/dist/theme/KanzoTheme.d.ts.map +1 -0
  485. package/dist/theme/KanzoTheme.js +61 -0
  486. package/dist/theme/KanzoTheme.js.map +1 -0
  487. package/dist/theme/KanzoThemeProvider.d.ts +144 -0
  488. package/dist/theme/KanzoThemeProvider.d.ts.map +1 -0
  489. package/dist/theme/KanzoThemeProvider.js +271 -0
  490. package/dist/theme/KanzoThemeProvider.js.map +1 -0
  491. package/dist/theme/theme-context.d.ts +146 -0
  492. package/dist/theme/theme-context.d.ts.map +1 -0
  493. package/dist/theme/theme-context.js +18 -0
  494. package/dist/theme/theme-context.js.map +1 -0
  495. package/dist/theme/theme-script.d.ts +17 -0
  496. package/dist/theme/theme-script.d.ts.map +1 -0
  497. package/dist/theme/theme-script.js +16 -0
  498. package/dist/theme/theme-script.js.map +1 -0
  499. package/package.json +201 -0
@@ -0,0 +1,245 @@
1
+ "use client";
2
+ import { jsx as s } from "react/jsx-runtime";
3
+ import { ark as p } from "@ark-ui/react/factory";
4
+ import { tv as l } from "tailwind-variants";
5
+ import { cn as o } from "../lib/cn.js";
6
+ import { Button as c } from "./button.js";
7
+ import { Input as g } from "./input.js";
8
+ import { Textarea as m } from "./textarea.js";
9
+ const b = l({
10
+ base: [
11
+ "group/input-group",
12
+ "relative",
13
+ "w-full min-w-0",
14
+ "flex items-center",
15
+ "bg-background bg-field",
16
+ "rounded-lg border border-input shadow-xs/5",
17
+ "transition-[color,box-shadow]",
18
+ // **The group holds its controls; it does not press them against its border.**
19
+ //
20
+ // The height used to be fixed — `h-8` at `md`, a border-box 32px with 1px of border — while
21
+ // `InputGroupButton`'s `icon-sm` is `size-8`, also 32px. A fixed box cannot contain a control
22
+ // its own size, so the ✨ painted over the border a pixel above and below, and two at `sm`.
23
+ // Measured on `/docs/ai/fields`.
24
+ //
25
+ // Sizing the control down instead was tried and rejected on sight: it made the ✨ a different
26
+ // size here than the identical mark inside a `TagsInput`, which is the same component doing
27
+ // the same job. **`TagsInput` is the shape, and it is now literally the same one** — `p-1.5`
28
+ // around a `min-h-*` box, so the group grows to whatever it holds and every control keeps the
29
+ // size it has everywhere else. A group holding a 32px mark measures 46px, exactly as
30
+ // `TagsInputControl` does.
31
+ //
32
+ // The input's own `px-3` is replaced by `px-1.5` so the group's padding and the field's do not
33
+ // add up: 1px of border plus 6px of padding plus 6px is the 13px of inset the fixed-height
34
+ // version had, unchanged.
35
+ "[&>input]:px-1.5 [&>textarea]:px-1.5",
36
+ "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3",
37
+ "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3",
38
+ "outline-none focus-within:border-primary focus-within:ring-[3px] focus-within:ring-ring",
39
+ "has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/24",
40
+ "dark:has-[[data-slot][aria-invalid=true]]:border-destructive-foreground dark:has-[[data-slot][aria-invalid=true]]:ring-destructive-foreground/40",
41
+ "motion-reduce:transition-none!"
42
+ ],
43
+ variants: {
44
+ // `min-h`, not `h`: the box is sized by what it holds, and this is the floor it starts from.
45
+ // A fixed height is what made a control the same size as the group overflow it.
46
+ //
47
+ // **The padding is what the size axis now moves, and it has to be.** A content-sized box whose
48
+ // size variant only sets a floor is a size variant that does nothing: every group came out
49
+ // 46px — `sm`, `md` and `lg` alike — because the `<input>` inside carries its own `h-8` and
50
+ // that plus the padding cleared every floor. Measured on `/docs/forms/input-group`. Scaling
51
+ // the inset instead keeps the controls identical across the three, which is the whole point of
52
+ // this shape: an ✨ is the same ✨ in a small group, a large one and a `TagsInput`.
53
+ size: {
54
+ sm: ["min-h-7", "p-1"],
55
+ md: ["min-h-8", "p-1.5"],
56
+ lg: ["min-h-9", "p-2"]
57
+ }
58
+ },
59
+ defaultVariants: {
60
+ size: "md"
61
+ }
62
+ }), y = (r) => {
63
+ const { size: t = "md", className: a, slot: e, ...n } = r;
64
+ return /* @__PURE__ */ s(
65
+ p.div,
66
+ {
67
+ className: o(b({ size: t }), a),
68
+ "data-size": t,
69
+ role: "group",
70
+ ...n,
71
+ "data-slot": e ?? "input-group"
72
+ }
73
+ );
74
+ }, f = l({
75
+ base: [
76
+ "h-auto",
77
+ "flex items-center justify-center gap-2",
78
+ "select-none font-medium text-muted-foreground text-sm",
79
+ "cursor-text",
80
+ "group-data-[disabled=true]/input-group:opacity-64",
81
+ "[&>kbd]:rounded-[calc(var(--radius)-5px)]",
82
+ "[&_svg:not([class*='size-'])]:size-4"
83
+ ],
84
+ variants: {
85
+ align: {
86
+ // **A smaller padding, not a negative margin**, and this is a measured divergence from the
87
+ // reference rather than a taste one. Shark tucks the button in with `pe-3` plus
88
+ // `me-[-0.45rem]`; a negative margin on the last flex item lets its border box run past the
89
+ // container's content edge, so measured live on `docs/ai/fields` the addon sat **6.2px
90
+ // outside the group's inline border and 6px outside its block border** — in a box with
91
+ // `overflow: visible`, which is why it also showed up as 6px of scroll width on the parent.
92
+ // The inner gap is what was wanted and it is unchanged: 12px of padding minus 7.2px of
93
+ // margin is the 6px this sets directly.
94
+ // **A button needs no padding beside it — the group's own `p-1.5` is the inset**, and this
95
+ // is what puts the ✨ the same distance from the border here as inside a `TagsInputControl`.
96
+ // Text and a `kbd` still take theirs, because neither carries a box of its own.
97
+ "inline-start": ["order-first ps-3", "has-[>button]:ps-0", "has-[>kbd]:ps-2"],
98
+ "inline-end": ["order-last pe-3", "has-[>button]:pe-0", "has-[>kbd]:pe-2"],
99
+ // The block padding lives on the two block aligns and nowhere else. It was `py-1.5` in the
100
+ // base, which is right for a band across the field and wrong for a control tucked into its
101
+ // end: measured on `docs/ai/fields`, an `inline-end` addon was **44px tall inside a 32px
102
+ // group** — 6px of transparent padding past the border on each side, in a box with
103
+ // `overflow: visible`. The mark inside it is `size-8` and looked fine; what was wrong was the
104
+ // group's own box.
105
+ "block-start": [
106
+ "order-first w-full justify-start px-3 pt-3 pb-1.5",
107
+ "group-has-[>input]/input-group:pt-2.5",
108
+ "[.border-b]:pb-3"
109
+ ],
110
+ "block-end": [
111
+ "order-last w-full justify-start px-3 pt-1.5 pb-3",
112
+ "group-has-[>input]/input-group:pb-2.5",
113
+ "[.border-t]:pt-3"
114
+ ]
115
+ }
116
+ },
117
+ defaultVariants: {
118
+ align: "inline-start"
119
+ }
120
+ }), I = (r) => {
121
+ const { className: t, align: a = "inline-start", slot: e, ...n } = r;
122
+ return /* @__PURE__ */ s(
123
+ p.div,
124
+ {
125
+ className: o(f({ align: a }), t),
126
+ "data-align": a,
127
+ onClick: (i) => {
128
+ var u, d;
129
+ i.target.closest("button") || (d = (u = i.currentTarget.parentElement) == null ? void 0 : u.querySelector("input")) == null || d.focus();
130
+ },
131
+ role: "group",
132
+ ...n,
133
+ "data-slot": e ?? "input-group-addon"
134
+ }
135
+ );
136
+ }, h = l({
137
+ base: [
138
+ "relative",
139
+ "flex items-center gap-2",
140
+ "text-sm",
141
+ "shadow-none",
142
+ "pointer-coarse:after:absolute pointer-coarse:after:size-full pointer-coarse:after:min-h-11 pointer-coarse:after:min-w-11"
143
+ ],
144
+ variants: {
145
+ size: {
146
+ /**
147
+ * The floor, and the default, because there is nothing legal below it.
148
+ *
149
+ * `xs` and `icon-xs` were `1.5rem`, which is 24px at the default root and **21px at compact** —
150
+ * every size here is a `rem` against a root the density axis sets. That is under the 24×24
151
+ * WCAG 2.5.8 states in CSS pixels, and it was this component's DEFAULT, so an input group
152
+ * that said nothing got the failing size.
153
+ *
154
+ * The `pointer-coarse` hit area below does not save it. 44px is the touch answer and 2.5.8
155
+ * asks about pointers generally: with a mouse the target was 21px and the `::after` is not in
156
+ * the hit path. This is the one thing `Button` does not carry, and it is why the two were
157
+ * decided separately rather than in one sweep.
158
+ */
159
+ sm: ["h-8", "gap-1.5", "px-2.5", "rounded-md", "has-[>svg]:px-2.5"],
160
+ "icon-sm": ["size-8", "p-0", "has-[>svg]:p-0"]
161
+ }
162
+ },
163
+ defaultVariants: {
164
+ size: "sm"
165
+ }
166
+ }), V = (r) => {
167
+ const {
168
+ className: t,
169
+ type: a = "button",
170
+ variant: e = "ghost",
171
+ size: n = "sm",
172
+ slot: i,
173
+ ...u
174
+ } = r;
175
+ return /* @__PURE__ */ s(
176
+ c,
177
+ {
178
+ className: o(h({ size: n }), t),
179
+ "data-size": n,
180
+ type: a,
181
+ variant: e,
182
+ ...u,
183
+ slot: i ?? "input-group-button"
184
+ }
185
+ );
186
+ }, j = (r) => {
187
+ const { className: t, slot: a, ...e } = r;
188
+ return /* @__PURE__ */ s(
189
+ p.span,
190
+ {
191
+ className: o(
192
+ "flex items-center gap-2",
193
+ "text-muted-foreground text-sm",
194
+ "[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",
195
+ t
196
+ ),
197
+ ...e,
198
+ "data-slot": a ?? "input-group-text"
199
+ }
200
+ );
201
+ }, T = (r) => {
202
+ const { className: t, slot: a, ...e } = r;
203
+ return /* @__PURE__ */ s(
204
+ g,
205
+ {
206
+ className: o(
207
+ "flex-1",
208
+ "bg-transparent",
209
+ "rounded-none border-0 shadow-none",
210
+ "focus-visible:ring-0",
211
+ "disabled:bg-transparent aria-invalid:ring-0 data-invalid:ring-0",
212
+ t
213
+ ),
214
+ ...e,
215
+ slot: a ?? "input-group-control"
216
+ }
217
+ );
218
+ }, B = (r) => {
219
+ const { className: t, slot: a, ...e } = r;
220
+ return /* @__PURE__ */ s(
221
+ m,
222
+ {
223
+ className: o(
224
+ "flex-1",
225
+ "py-3",
226
+ "bg-transparent",
227
+ "resize-none rounded-none border-0 shadow-none",
228
+ "focus-visible:ring-0",
229
+ "disabled:bg-transparent aria-invalid:ring-0 data-invalid:ring-0",
230
+ t
231
+ ),
232
+ ...e,
233
+ slot: a ?? "input-group-control"
234
+ }
235
+ );
236
+ };
237
+ export {
238
+ y as InputGroup,
239
+ I as InputGroupAddon,
240
+ V as InputGroupButton,
241
+ T as InputGroupInput,
242
+ j as InputGroupText,
243
+ B as InputGroupTextarea
244
+ };
245
+ //# sourceMappingURL=input-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.js","sources":["../../src/simples/input-group.tsx"],"sourcesContent":["\"use client\";\n\nimport { ark } from \"@ark-ui/react/factory\";\nimport type React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\nconst inpuGroupVariants = tv({\n base: [\n \"group/input-group\",\n \"relative\",\n \"w-full min-w-0\",\n \"flex items-center\",\n \"bg-background bg-field\",\n \"rounded-lg border border-input shadow-xs/5\",\n \"transition-[color,box-shadow]\",\n // **The group holds its controls; it does not press them against its border.**\n //\n // The height used to be fixed — `h-8` at `md`, a border-box 32px with 1px of border — while\n // `InputGroupButton`'s `icon-sm` is `size-8`, also 32px. A fixed box cannot contain a control\n // its own size, so the ✨ painted over the border a pixel above and below, and two at `sm`.\n // Measured on `/docs/ai/fields`.\n //\n // Sizing the control down instead was tried and rejected on sight: it made the ✨ a different\n // size here than the identical mark inside a `TagsInput`, which is the same component doing\n // the same job. **`TagsInput` is the shape, and it is now literally the same one** — `p-1.5`\n // around a `min-h-*` box, so the group grows to whatever it holds and every control keeps the\n // size it has everywhere else. A group holding a 32px mark measures 46px, exactly as\n // `TagsInputControl` does.\n //\n // The input's own `px-3` is replaced by `px-1.5` so the group's padding and the field's do not\n // add up: 1px of border plus 6px of padding plus 6px is the 13px of inset the fixed-height\n // version had, unchanged.\n \"[&>input]:px-1.5 [&>textarea]:px-1.5\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n \"outline-none focus-within:border-primary focus-within:ring-[3px] focus-within:ring-ring\",\n \"has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/24\",\n \"dark:has-[[data-slot][aria-invalid=true]]:border-destructive-foreground dark:has-[[data-slot][aria-invalid=true]]:ring-destructive-foreground/40\",\n \"motion-reduce:transition-none!\",\n ],\n variants: {\n // `min-h`, not `h`: the box is sized by what it holds, and this is the floor it starts from.\n // A fixed height is what made a control the same size as the group overflow it.\n //\n // **The padding is what the size axis now moves, and it has to be.** A content-sized box whose\n // size variant only sets a floor is a size variant that does nothing: every group came out\n // 46px — `sm`, `md` and `lg` alike — because the `<input>` inside carries its own `h-8` and\n // that plus the padding cleared every floor. Measured on `/docs/forms/input-group`. Scaling\n // the inset instead keeps the controls identical across the three, which is the whole point of\n // this shape: an ✨ is the same ✨ in a small group, a large one and a `TagsInput`.\n size: {\n sm: [\"min-h-7\", \"p-1\"],\n md: [\"min-h-8\", \"p-1.5\"],\n lg: [\"min-h-9\", \"p-2\"],\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport interface InputGroupProps\n extends React.ComponentProps<typeof ark.div>,\n VariantProps<typeof inpuGroupVariants> {}\n\nexport const InputGroup = (props: InputGroupProps) => {\n const { size = \"md\", className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(inpuGroupVariants({ size }), className)}\n data-size={size}\n role=\"group\"\n {...rest}\n data-slot={slot ?? \"input-group\"}\n />\n );\n};\n\nconst inputGroupAddonVariants = tv({\n base: [\n \"h-auto\",\n \"flex items-center justify-center gap-2\",\n \"select-none font-medium text-muted-foreground text-sm\",\n \"cursor-text\",\n \"group-data-[disabled=true]/input-group:opacity-64\",\n \"[&>kbd]:rounded-[calc(var(--radius)-5px)]\",\n \"[&_svg:not([class*='size-'])]:size-4\",\n ],\n variants: {\n align: {\n // **A smaller padding, not a negative margin**, and this is a measured divergence from the\n // reference rather than a taste one. Shark tucks the button in with `pe-3` plus\n // `me-[-0.45rem]`; a negative margin on the last flex item lets its border box run past the\n // container's content edge, so measured live on `docs/ai/fields` the addon sat **6.2px\n // outside the group's inline border and 6px outside its block border** — in a box with\n // `overflow: visible`, which is why it also showed up as 6px of scroll width on the parent.\n // The inner gap is what was wanted and it is unchanged: 12px of padding minus 7.2px of\n // margin is the 6px this sets directly.\n // **A button needs no padding beside it — the group's own `p-1.5` is the inset**, and this\n // is what puts the ✨ the same distance from the border here as inside a `TagsInputControl`.\n // Text and a `kbd` still take theirs, because neither carries a box of its own.\n \"inline-start\": [\"order-first ps-3\", \"has-[>button]:ps-0\", \"has-[>kbd]:ps-2\"],\n \"inline-end\": [\"order-last pe-3\", \"has-[>button]:pe-0\", \"has-[>kbd]:pe-2\"],\n // The block padding lives on the two block aligns and nowhere else. It was `py-1.5` in the\n // base, which is right for a band across the field and wrong for a control tucked into its\n // end: measured on `docs/ai/fields`, an `inline-end` addon was **44px tall inside a 32px\n // group** — 6px of transparent padding past the border on each side, in a box with\n // `overflow: visible`. The mark inside it is `size-8` and looked fine; what was wrong was the\n // group's own box.\n \"block-start\": [\n \"order-first w-full justify-start px-3 pt-3 pb-1.5\",\n \"group-has-[>input]/input-group:pt-2.5\",\n \"[.border-b]:pb-3\",\n ],\n \"block-end\": [\n \"order-last w-full justify-start px-3 pt-1.5 pb-3\",\n \"group-has-[>input]/input-group:pb-2.5\",\n \"[.border-t]:pt-3\",\n ],\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n});\n\ninterface InputGroupAddonProps\n extends React.ComponentProps<typeof ark.div>,\n VariantProps<typeof inputGroupAddonVariants> {}\n\nexport const InputGroupAddon = (props: InputGroupAddonProps) => {\n const { className, align = \"inline-start\", slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(inputGroupAddonVariants({ align }), className)}\n data-align={align}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n role=\"group\"\n {...rest}\n data-slot={slot ?? \"input-group-addon\"}\n />\n );\n};\n\nconst inputGroupButtonVariants = tv({\n base: [\n \"relative\",\n \"flex items-center gap-2\",\n \"text-sm\",\n \"shadow-none\",\n \"pointer-coarse:after:absolute pointer-coarse:after:size-full pointer-coarse:after:min-h-11 pointer-coarse:after:min-w-11\",\n ],\n variants: {\n size: {\n /**\n * The floor, and the default, because there is nothing legal below it.\n *\n * `xs` and `icon-xs` were `1.5rem`, which is 24px at the default root and **21px at compact** —\n * every size here is a `rem` against a root the density axis sets. That is under the 24×24\n * WCAG 2.5.8 states in CSS pixels, and it was this component's DEFAULT, so an input group\n * that said nothing got the failing size.\n *\n * The `pointer-coarse` hit area below does not save it. 44px is the touch answer and 2.5.8\n * asks about pointers generally: with a mouse the target was 21px and the `::after` is not in\n * the hit path. This is the one thing `Button` does not carry, and it is why the two were\n * decided separately rather than in one sweep.\n */\n sm: [\"h-8\", \"gap-1.5\", \"px-2.5\", \"rounded-md\", \"has-[>svg]:px-2.5\"],\n \"icon-sm\": [\"size-8\", \"p-0\", \"has-[>svg]:p-0\"],\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n});\n\ninterface InputGroupButtonProps\n extends Omit<React.ComponentProps<typeof Button>, \"size\">,\n VariantProps<typeof inputGroupButtonVariants> {}\n\nexport const InputGroupButton = (props: InputGroupButtonProps) => {\n const {\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"sm\",\n slot,\n ...rest\n } = props;\n\n return (\n <Button\n className={cn(inputGroupButtonVariants({ size }), className)}\n data-size={size}\n type={type}\n variant={variant}\n {...rest}\n slot={slot ?? \"input-group-button\"}\n />\n );\n};\n\nexport const InputGroupText = (\n props: React.ComponentProps<typeof ark.span>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.span\n className={cn(\n \"flex items-center gap-2\",\n \"text-muted-foreground text-sm\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"input-group-text\"}\n />\n );\n};\n\nexport const InputGroupInput = (props: React.ComponentProps<typeof Input>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <Input\n className={cn(\n \"flex-1\",\n \"bg-transparent\",\n \"rounded-none border-0 shadow-none\",\n \"focus-visible:ring-0\",\n \"disabled:bg-transparent aria-invalid:ring-0 data-invalid:ring-0\",\n className\n )}\n {...rest}\n slot={slot ?? \"input-group-control\"}\n />\n );\n};\n\nexport const InputGroupTextarea = (\n props: React.ComponentProps<typeof Textarea>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <Textarea\n className={cn(\n \"flex-1\",\n \"py-3\",\n \"bg-transparent\",\n \"resize-none rounded-none border-0 shadow-none\",\n \"focus-visible:ring-0\",\n \"disabled:bg-transparent aria-invalid:ring-0 data-invalid:ring-0\",\n className\n )}\n {...rest}\n slot={slot ?? \"input-group-control\"}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAUA;AAA6B;AACrB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUF;AACiB;AACE;AACF;AAAA;AACvB;AAEe;AACT;AAEV;AAOE;AAEA;AACE;AAAK;AAAJ;AACqD;AACzC;AACN;AACD;AACe;AAAA;AAGzB;AAEmC;AAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEQ;AACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYuE;AACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAO1D;AACb;AACA;AACA;AAAA;AAEW;AACX;AACA;AACA;AAAA;AACF;AACF;AAEe;AACR;AAEX;AAOE;AAEA;AACE;AAAK;AAAJ;AAC4D;AAC/C;;AAEV;AAGuD;AACzD;AACK;AACD;AACe;AAAA;AAGzB;AAEoC;AAC5B;AACJ;AACA;AACA;AACA;AACA;AAAA;AAEQ;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAc8D;AACrB;AAAA;AAC/C;AAEe;AACT;AAEV;AAOE;AAAM;AACJ;AACO;AACG;AACH;AACP;AACG;AAGL;AACE;AAAC;AAAA;AAC4D;AAChD;AACX;AACA;AACI;AACU;AAAA;AAGpB;AAKE;AAEA;AACE;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AAAA;AAEE;AACe;AAAA;AAGzB;AAGE;AAEA;AACE;AAAC;AAAA;AACY;AACT;AACA;AACA;AACA;AACA;AACQ;AAAA;AAEN;AACU;AAAA;AAGpB;AAKE;AAEA;AACE;AAAC;AAAA;AACY;AACT;AACA;AACA;AACA;AACA;AACA;AACQ;AAAA;AAEN;AACU;AAAA;AAGpB;;;;;;;;;"}
@@ -0,0 +1,26 @@
1
+ import { FieldInput } from '@ark-ui/react/field';
2
+ import { default as React } from 'react';
3
+ import { VariantProps } from 'tailwind-variants';
4
+ export declare const inputVariants: import('tailwind-variants').TVReturnType<{
5
+ size: {
6
+ sm: string[];
7
+ md: string[];
8
+ lg: string[];
9
+ };
10
+ }, undefined, string[], {
11
+ size: {
12
+ sm: string[];
13
+ md: string[];
14
+ lg: string[];
15
+ };
16
+ }, undefined, import('tailwind-variants').TVReturnType<{
17
+ size: {
18
+ sm: string[];
19
+ md: string[];
20
+ lg: string[];
21
+ };
22
+ }, undefined, string[], unknown, unknown, undefined>>;
23
+ export interface InputProps extends Omit<React.ComponentProps<typeof FieldInput>, "size">, VariantProps<typeof inputVariants> {
24
+ }
25
+ export declare const Input: (props: InputProps) => React.JSX.Element;
26
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/simples/input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;qDAsCxB,CAAC;AAEH,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,MAAM,CAAC,EAC3D,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,eAAO,MAAM,KAAK,GAAI,OAAO,UAAU,sBAYtC,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { FieldInput as s } from "@ark-ui/react/field";
3
+ import { tv as o } from "tailwind-variants";
4
+ import { cn as l } from "../lib/cn.js";
5
+ const c = o({
6
+ base: [
7
+ "peer",
8
+ // On the base, not on the size — see `button.tsx`.
9
+ "h-(--size)",
10
+ "w-full min-w-0",
11
+ "px-3",
12
+ "bg-field",
13
+ "text-base md:text-sm",
14
+ "rounded-field border border-input shadow-xs/5",
15
+ "placeholder:text-faint",
16
+ "file:inline-flex file:h-7 file:items-center file:border-0",
17
+ "file:font-medium file:text-foreground file:text-sm",
18
+ "transition-[color,box-shadow]",
19
+ "outline-none focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-ring",
20
+ "aria-invalid:border-destructive aria-invalid:text-destructive-foreground aria-invalid:ring-[3px] aria-invalid:ring-destructive/24",
21
+ "data-invalid:border-destructive data-invalid:text-destructive-foreground data-invalid:ring-[3px] data-invalid:ring-destructive/24",
22
+ // The dark branch is TEXT only, and this is the site the other eleven recipes point at.
23
+ // Shark repaints the border and the ring here too; measured across all six compiled documents,
24
+ // `--destructive` reads 4.15:1 against that document's own dark page — over the 3:1 WCAG 1.4.11
25
+ // asks of the visual information identifying a control or its state, so the border and the ring
26
+ // were buying a hue rather than contrast. Text owes AA's 4.5 and 4.15 misses it, so this half
27
+ // stays.
28
+ "dark:aria-invalid:text-destructive-foreground",
29
+ "dark:data-invalid:text-destructive-foreground",
30
+ "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-64",
31
+ "motion-reduce:transition-none!"
32
+ ],
33
+ variants: {
34
+ size: {
35
+ sm: ["[--size:calc(var(--size-field)*7)]"],
36
+ md: ["[--size:calc(var(--size-field)*8)]"],
37
+ lg: ["[--size:calc(var(--size-field)*9)]"]
38
+ }
39
+ },
40
+ defaultVariants: {
41
+ size: "md"
42
+ }
43
+ }), p = (e) => {
44
+ const { size: i = "md", type: t = "text", className: r, slot: a, ...d } = e;
45
+ return /* @__PURE__ */ n(
46
+ s,
47
+ {
48
+ className: l(c({ size: i }), r),
49
+ "data-size": i,
50
+ type: t,
51
+ ...d,
52
+ "data-slot": a ?? "input"
53
+ }
54
+ );
55
+ };
56
+ export {
57
+ p as Input,
58
+ c as inputVariants
59
+ };
60
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sources":["../../src/simples/input.tsx"],"sourcesContent":["import { FieldInput } from \"@ark-ui/react/field\";\nimport type React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\n\nexport const inputVariants = tv({\n base: [\n \"peer\",\n // On the base, not on the size — see `button.tsx`.\n \"h-(--size)\",\n \"w-full min-w-0\",\n \"px-3\",\n \"bg-field\",\n \"text-base md:text-sm\",\n \"rounded-field border border-input shadow-xs/5\",\n \"placeholder:text-faint\",\n \"file:inline-flex file:h-7 file:items-center file:border-0\",\n \"file:font-medium file:text-foreground file:text-sm\",\n \"transition-[color,box-shadow]\",\n \"outline-none focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-ring\",\n \"aria-invalid:border-destructive aria-invalid:text-destructive-foreground aria-invalid:ring-[3px] aria-invalid:ring-destructive/24\",\n \"data-invalid:border-destructive data-invalid:text-destructive-foreground data-invalid:ring-[3px] data-invalid:ring-destructive/24\",\n // The dark branch is TEXT only, and this is the site the other eleven recipes point at.\n // Shark repaints the border and the ring here too; measured across all six compiled documents,\n // `--destructive` reads 4.15:1 against that document's own dark page — over the 3:1 WCAG 1.4.11\n // asks of the visual information identifying a control or its state, so the border and the ring\n // were buying a hue rather than contrast. Text owes AA's 4.5 and 4.15 misses it, so this half\n // stays.\n \"dark:aria-invalid:text-destructive-foreground\",\n \"dark:data-invalid:text-destructive-foreground\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-64\",\n \"motion-reduce:transition-none!\",\n ],\n variants: {\n size: {\n sm: [\"[--size:calc(var(--size-field)*7)]\"],\n md: [\"[--size:calc(var(--size-field)*8)]\"],\n lg: [\"[--size:calc(var(--size-field)*9)]\"],\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport interface InputProps\n extends Omit<React.ComponentProps<typeof FieldInput>, \"size\">,\n VariantProps<typeof inputVariants> {}\n\nexport const Input = (props: InputProps) => {\n const { size = \"md\", type = \"text\", className, slot, ...rest } = props;\n\n return (\n <FieldInput\n className={cn(inputVariants({ size }), className)}\n data-size={size}\n type={type}\n {...rest}\n data-slot={slot ?? \"input\"}\n />\n );\n};\n"],"names":["inputVariants","tv","Input","props","size","type","className","slot","rest","jsx","FieldInput","cn"],"mappings":";;;;AAKO,MAAMA,IAAgBC,EAAG;AAAA,EAC9B,MAAM;AAAA,IACJ;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI,CAAC,oCAAoC;AAAA,MACzC,IAAI,CAAC,oCAAoC;AAAA,MACzC,IAAI,CAAC,oCAAoC;AAAA,IAAA;AAAA,EAC3C;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC,GAMYC,IAAQ,CAACC,MAAsB;AAC1C,QAAM,EAAE,MAAAC,IAAO,MAAM,MAAAC,IAAO,QAAQ,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,IAASL;AAEjE,SACE,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAGX,EAAc,EAAE,MAAAI,EAAA,CAAM,GAAGE,CAAS;AAAA,MAChD,aAAWF;AAAA,MACX,MAAAC;AAAA,MACC,GAAGG;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB;"}
@@ -0,0 +1,72 @@
1
+ import { ark } from '@ark-ui/react/factory';
2
+ import { default as React } from 'react';
3
+ import { VariantProps } from 'tailwind-variants';
4
+ import { Separator } from './separator';
5
+ export declare const ItemGroup: (props: React.ComponentProps<typeof ark.div>) => React.JSX.Element;
6
+ export declare const ItemSeparator: (props: React.ComponentProps<typeof Separator>) => React.JSX.Element;
7
+ declare const itemVariants: import('tailwind-variants').TVReturnType<{
8
+ variant: {
9
+ default: string;
10
+ outline: string;
11
+ muted: string;
12
+ };
13
+ }, undefined, string[], {
14
+ variant: {
15
+ default: string;
16
+ outline: string;
17
+ muted: string;
18
+ };
19
+ }, undefined, import('tailwind-variants').TVReturnType<{
20
+ variant: {
21
+ default: string;
22
+ outline: string;
23
+ muted: string;
24
+ };
25
+ }, undefined, string[], unknown, unknown, undefined>>;
26
+ export interface ItemProps extends React.ComponentProps<typeof ark.div>, VariantProps<typeof itemVariants> {
27
+ }
28
+ /**
29
+ * One row. A `<div>` carrying `role="listitem"`, which is what `ItemGroup`'s `role="list"` requires
30
+ * of its children.
31
+ *
32
+ * **Do not `asChild` this onto an interactive element.** Ark clones the parent's props onto the
33
+ * child through zag's `mergeProps`, and there the child only wins where the child *declares* a
34
+ * value — a `<button>` declares no `role`, so `role="listitem"` lands on it and replaces the
35
+ * implicit `button`. The control keeps working and stops being announced as a control, which is the
36
+ * kind of defect nothing in the pipeline reports.
37
+ *
38
+ * A pressable row is a button **inside** the item, not merged with it. `p-0` on the item and the
39
+ * padding on the button keeps the whole row as the target, which is what makes 2.5.8 easy here.
40
+ * `asChild` is still right for a non-interactive swap — an `<li>`, an `<article>`.
41
+ */
42
+ export declare const Item: (props: ItemProps) => React.JSX.Element;
43
+ declare const itemMediaVariants: import('tailwind-variants').TVReturnType<{
44
+ variant: {
45
+ default: string;
46
+ icon: string;
47
+ image: string;
48
+ };
49
+ }, undefined, string[], {
50
+ variant: {
51
+ default: string;
52
+ icon: string;
53
+ image: string;
54
+ };
55
+ }, undefined, import('tailwind-variants').TVReturnType<{
56
+ variant: {
57
+ default: string;
58
+ icon: string;
59
+ image: string;
60
+ };
61
+ }, undefined, string[], unknown, unknown, undefined>>;
62
+ export interface ItemMediaProps extends React.ComponentProps<typeof ark.div>, VariantProps<typeof itemMediaVariants> {
63
+ }
64
+ export declare const ItemMedia: (props: ItemMediaProps) => React.JSX.Element;
65
+ export declare const ItemHeader: (props: React.ComponentProps<typeof ark.div>) => React.JSX.Element;
66
+ export declare const ItemContent: (props: React.ComponentProps<typeof ark.div>) => React.JSX.Element;
67
+ export declare const ItemTitle: (props: React.ComponentProps<typeof ark.div>) => React.JSX.Element;
68
+ export declare const ItemDescription: (props: React.ComponentProps<typeof ark.p>) => React.JSX.Element;
69
+ export declare const ItemActions: (props: React.ComponentProps<typeof ark.div>) => React.JSX.Element;
70
+ export declare const ItemFooter: (props: React.ComponentProps<typeof ark.div>) => React.JSX.Element;
71
+ export {};
72
+ //# sourceMappingURL=item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/simples/item.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,sBAWpE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,sBAW1E,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;qDAuBhB,CAAC;AAEH,MAAM,WAAW,SACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,EAC1C,YAAY,CAAC,OAAO,YAAY,CAAC;CAAG;AAExC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,sBAYpC,CAAC;AAEF,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;qDAgBrB,CAAC;AAEH,MAAM,WAAW,cACf,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,EAC1C,YAAY,CAAC,OAAO,iBAAiB,CAAC;CAAG;AAE7C,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,sBAW9C,CAAC;AAGF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,sBAcrE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,sBActE,CAAC;AAKF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,sBAepE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,sBAcxE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,sBAUtE,CAAC;AAGF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,sBAUrE,CAAC"}
@@ -0,0 +1,180 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { ark as n } from "@ark-ui/react/factory";
3
+ import { tv as l } from "tailwind-variants";
4
+ import { cn as o } from "../lib/cn.js";
5
+ import { Separator as m } from "./separator.js";
6
+ const x = (e) => {
7
+ const { className: t, slot: s, ...a } = e;
8
+ return /* @__PURE__ */ r(
9
+ n.div,
10
+ {
11
+ className: o("group/item-group flex w-full flex-col gap-4", t),
12
+ role: "list",
13
+ ...a,
14
+ "data-slot": s ?? "item-group"
15
+ }
16
+ );
17
+ }, b = (e) => {
18
+ const { className: t, slot: s, ...a } = e;
19
+ return /* @__PURE__ */ r(
20
+ m,
21
+ {
22
+ className: o("my-2", t),
23
+ orientation: "horizontal",
24
+ ...a,
25
+ slot: s ?? "item-separator"
26
+ }
27
+ );
28
+ }, c = l({
29
+ base: [
30
+ "[--space:--spacing(3)]",
31
+ "group/item",
32
+ "flex w-full flex-wrap items-center",
33
+ "gap-(--space) p-(--space)",
34
+ "in-data-[slot=menu-content]:p-0",
35
+ "rounded-xl border text-sm",
36
+ "transition-colors duration-100",
37
+ "[a]:transition-colors [a]:hover:bg-muted",
38
+ "outline-none focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-ring",
39
+ "[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0"
40
+ ],
41
+ variants: {
42
+ variant: {
43
+ default: "border-transparent",
44
+ outline: "border-border shadow-xs/5",
45
+ muted: "border-transparent bg-muted/48 shadow-muted/5 shadow-xs"
46
+ }
47
+ },
48
+ defaultVariants: {
49
+ variant: "default"
50
+ }
51
+ }), N = (e) => {
52
+ const { variant: t = "default", className: s, slot: a, ...i } = e;
53
+ return /* @__PURE__ */ r(
54
+ n.div,
55
+ {
56
+ className: o(c({ variant: t }), s),
57
+ "data-variant": t,
58
+ role: "listitem",
59
+ ...i,
60
+ "data-slot": a ?? "item"
61
+ }
62
+ );
63
+ }, d = l({
64
+ base: [
65
+ "flex shrink-0 items-center justify-center gap-2",
66
+ "group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start",
67
+ "[&_svg]:pointer-events-none"
68
+ ],
69
+ variants: {
70
+ variant: {
71
+ default: "bg-transparent",
72
+ icon: "[&_svg:not([class*='size-'])]:size-4",
73
+ image: "size-10 overflow-hidden rounded-xl [&_img]:size-full [&_img]:object-cover"
74
+ }
75
+ },
76
+ defaultVariants: {
77
+ variant: "default"
78
+ }
79
+ }), h = (e) => {
80
+ const { variant: t = "default", className: s, slot: a, ...i } = e;
81
+ return /* @__PURE__ */ r(
82
+ n.div,
83
+ {
84
+ className: o(d({ variant: t }), s),
85
+ "data-variant": t,
86
+ ...i,
87
+ "data-slot": a ?? "item-media"
88
+ }
89
+ );
90
+ }, w = (e) => {
91
+ const { className: t, slot: s, ...a } = e;
92
+ return /* @__PURE__ */ r(
93
+ n.div,
94
+ {
95
+ className: o(
96
+ "flex basis-full items-center justify-between gap-2",
97
+ "[&_img]:size-full [&_img]:rounded-xl [&_img]:object-cover",
98
+ t
99
+ ),
100
+ ...a,
101
+ "data-slot": s ?? "item-header"
102
+ }
103
+ );
104
+ }, I = (e) => {
105
+ const { className: t, slot: s, ...a } = e;
106
+ return /* @__PURE__ */ r(
107
+ n.div,
108
+ {
109
+ className: o(
110
+ "flex min-w-0 flex-1 flex-col gap-0.5",
111
+ "[&+[data-slot=item-content]]:flex-none",
112
+ t
113
+ ),
114
+ ...a,
115
+ "data-slot": s ?? "item-content"
116
+ }
117
+ );
118
+ }, _ = (e) => {
119
+ const { className: t, slot: s, ...a } = e;
120
+ return /* @__PURE__ */ r(
121
+ n.div,
122
+ {
123
+ className: o(
124
+ "flex w-fit items-center gap-2",
125
+ "font-medium text-sm leading-snug",
126
+ "underline-offset-4",
127
+ t
128
+ ),
129
+ ...a,
130
+ "data-slot": s ?? "item-title"
131
+ }
132
+ );
133
+ }, z = (e) => {
134
+ const { className: t, slot: s, ...a } = e;
135
+ return /* @__PURE__ */ r(
136
+ n.p,
137
+ {
138
+ className: o(
139
+ "line-clamp-2 text-start font-normal text-muted-foreground text-sm leading-normal",
140
+ "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
141
+ t
142
+ ),
143
+ ...a,
144
+ "data-slot": s ?? "item-description"
145
+ }
146
+ );
147
+ }, y = (e) => {
148
+ const { className: t, slot: s, ...a } = e;
149
+ return /* @__PURE__ */ r(
150
+ n.div,
151
+ {
152
+ className: o("flex items-center gap-2", t),
153
+ ...a,
154
+ "data-slot": s ?? "item-actions"
155
+ }
156
+ );
157
+ }, j = (e) => {
158
+ const { className: t, slot: s, ...a } = e;
159
+ return /* @__PURE__ */ r(
160
+ n.div,
161
+ {
162
+ className: o("flex basis-full items-center justify-between gap-2", t),
163
+ ...a,
164
+ "data-slot": s ?? "item-footer"
165
+ }
166
+ );
167
+ };
168
+ export {
169
+ N as Item,
170
+ y as ItemActions,
171
+ I as ItemContent,
172
+ z as ItemDescription,
173
+ j as ItemFooter,
174
+ x as ItemGroup,
175
+ w as ItemHeader,
176
+ h as ItemMedia,
177
+ b as ItemSeparator,
178
+ _ as ItemTitle
179
+ };
180
+ //# sourceMappingURL=item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.js","sources":["../../src/simples/item.tsx"],"sourcesContent":["// The row counterpart to Card: a horizontal media · content · actions strip, for lists of\n// records where a Card would be too heavy. Presentational (`ark.*`), no client boundary.\n\nimport { ark } from \"@ark-ui/react/factory\";\nimport type React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { Separator } from \"./separator\";\n\nexport const ItemGroup = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\"group/item-group flex w-full flex-col gap-4\", className)}\n role=\"list\"\n {...rest}\n data-slot={slot ?? \"item-group\"}\n />\n );\n};\n\nexport const ItemSeparator = (props: React.ComponentProps<typeof Separator>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <Separator\n className={cn(\"my-2\", className)}\n orientation=\"horizontal\"\n {...rest}\n slot={slot ?? \"item-separator\"}\n />\n );\n};\n\nconst itemVariants = tv({\n base: [\n \"[--space:--spacing(3)]\",\n \"group/item\",\n \"flex w-full flex-wrap items-center\",\n \"gap-(--space) p-(--space)\",\n \"in-data-[slot=menu-content]:p-0\",\n \"rounded-xl border text-sm\",\n \"transition-colors duration-100\",\n \"[a]:transition-colors [a]:hover:bg-muted\",\n \"outline-none focus-visible:border-primary focus-visible:ring-[3px] focus-visible:ring-ring\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n variants: {\n variant: {\n default: \"border-transparent\",\n outline: \"border-border shadow-xs/5\",\n muted: \"border-transparent bg-muted/48 shadow-muted/5 shadow-xs\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nexport interface ItemProps\n extends React.ComponentProps<typeof ark.div>,\n VariantProps<typeof itemVariants> {}\n\n/**\n * One row. A `<div>` carrying `role=\"listitem\"`, which is what `ItemGroup`'s `role=\"list\"` requires\n * of its children.\n *\n * **Do not `asChild` this onto an interactive element.** Ark clones the parent's props onto the\n * child through zag's `mergeProps`, and there the child only wins where the child *declares* a\n * value — a `<button>` declares no `role`, so `role=\"listitem\"` lands on it and replaces the\n * implicit `button`. The control keeps working and stops being announced as a control, which is the\n * kind of defect nothing in the pipeline reports.\n *\n * A pressable row is a button **inside** the item, not merged with it. `p-0` on the item and the\n * padding on the button keeps the whole row as the target, which is what makes 2.5.8 easy here.\n * `asChild` is still right for a non-interactive swap — an `<li>`, an `<article>`.\n */\nexport const Item = (props: ItemProps) => {\n const { variant = \"default\", className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(itemVariants({ variant }), className)}\n data-variant={variant}\n role=\"listitem\"\n {...rest}\n data-slot={slot ?? \"item\"}\n />\n );\n};\n\nconst itemMediaVariants = tv({\n base: [\n \"flex shrink-0 items-center justify-center gap-2\",\n \"group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start\",\n \"[&_svg]:pointer-events-none\",\n ],\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image: \"size-10 overflow-hidden rounded-xl [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nexport interface ItemMediaProps\n extends React.ComponentProps<typeof ark.div>,\n VariantProps<typeof itemMediaVariants> {}\n\nexport const ItemMedia = (props: ItemMediaProps) => {\n const { variant = \"default\", className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(itemMediaVariants({ variant }), className)}\n data-variant={variant}\n {...rest}\n data-slot={slot ?? \"item-media\"}\n />\n );\n};\n\n// A full-width row above the main line (breaks to its own line via `basis-full`).\nexport const ItemHeader = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n \"[&_img]:size-full [&_img]:rounded-xl [&_img]:object-cover\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"item-header\"}\n />\n );\n};\n\nexport const ItemContent = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"flex min-w-0 flex-1 flex-col gap-0.5\",\n \"[&+[data-slot=item-content]]:flex-none\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"item-content\"}\n />\n );\n};\n\n// No `line-clamp-1` here, deliberately: it sets `display: -webkit-box`, which cannot coexist\n// with the `flex` this row needs, so tailwind-merge kept one and silently dropped `flex` — and\n// with it the `gap-2` between a title's children. Truncation is opt-in at the call site.\nexport const ItemTitle = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"flex w-fit items-center gap-2\",\n \"font-medium text-sm leading-snug\",\n \"underline-offset-4\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"item-title\"}\n />\n );\n};\n\nexport const ItemDescription = (props: React.ComponentProps<typeof ark.p>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.p\n className={cn(\n \"line-clamp-2 text-start font-normal text-muted-foreground text-sm leading-normal\",\n \"[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"item-description\"}\n />\n );\n};\n\nexport const ItemActions = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\"flex items-center gap-2\", className)}\n {...rest}\n data-slot={slot ?? \"item-actions\"}\n />\n );\n};\n\n// A full-width row below the main line.\nexport const ItemFooter = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\"flex basis-full items-center justify-between gap-2\", className)}\n {...rest}\n data-slot={slot ?? \"item-footer\"}\n />\n );\n};\n"],"names":["ItemGroup","props","className","slot","rest","jsx","ark","cn","ItemSeparator","Separator","itemVariants","tv","Item","variant","itemMediaVariants","ItemMedia","ItemHeader","ItemContent","ItemTitle","ItemDescription","ItemActions","ItemFooter"],"mappings":"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"}