@verdify/ui 0.1.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 (443) hide show
  1. package/LICENSE +12 -0
  2. package/README.md +117 -0
  3. package/dist/components/accordion/accordion.d.ts +66 -0
  4. package/dist/components/accordion/accordion.d.ts.map +1 -0
  5. package/dist/components/accordion/accordion.js +97 -0
  6. package/dist/components/accordion/accordion.js.map +1 -0
  7. package/dist/components/accordion/accordion.variants.d.ts +9 -0
  8. package/dist/components/accordion/accordion.variants.d.ts.map +1 -0
  9. package/dist/components/accordion/accordion.variants.js +54 -0
  10. package/dist/components/accordion/accordion.variants.js.map +1 -0
  11. package/dist/components/accordion/index.d.ts +3 -0
  12. package/dist/components/accordion/index.d.ts.map +1 -0
  13. package/dist/components/accordion/index.js +25 -0
  14. package/dist/components/accordion/index.js.map +1 -0
  15. package/dist/components/agent-badge/agent-badge.d.ts +56 -0
  16. package/dist/components/agent-badge/agent-badge.d.ts.map +1 -0
  17. package/dist/components/agent-badge/agent-badge.js +35 -0
  18. package/dist/components/agent-badge/agent-badge.js.map +1 -0
  19. package/dist/components/agent-badge/agent-badge.variants.d.ts +7 -0
  20. package/dist/components/agent-badge/agent-badge.variants.d.ts.map +1 -0
  21. package/dist/components/agent-badge/agent-badge.variants.js +35 -0
  22. package/dist/components/agent-badge/agent-badge.variants.js.map +1 -0
  23. package/dist/components/agent-badge/index.d.ts +3 -0
  24. package/dist/components/agent-badge/index.d.ts.map +1 -0
  25. package/dist/components/agent-badge/index.js +11 -0
  26. package/dist/components/agent-badge/index.js.map +1 -0
  27. package/dist/components/alert/alert.d.ts +94 -0
  28. package/dist/components/alert/alert.d.ts.map +1 -0
  29. package/dist/components/alert/alert.js +105 -0
  30. package/dist/components/alert/alert.js.map +1 -0
  31. package/dist/components/alert/alert.variants.d.ts +15 -0
  32. package/dist/components/alert/alert.variants.d.ts.map +1 -0
  33. package/dist/components/alert/alert.variants.js +74 -0
  34. package/dist/components/alert/alert.variants.js.map +1 -0
  35. package/dist/components/alert/index.d.ts +3 -0
  36. package/dist/components/alert/index.d.ts.map +1 -0
  37. package/dist/components/alert/index.js +37 -0
  38. package/dist/components/alert/index.js.map +1 -0
  39. package/dist/components/avatar/avatar.d.ts +56 -0
  40. package/dist/components/avatar/avatar.d.ts.map +1 -0
  41. package/dist/components/avatar/avatar.js +107 -0
  42. package/dist/components/avatar/avatar.js.map +1 -0
  43. package/dist/components/avatar/avatar.variants.d.ts +11 -0
  44. package/dist/components/avatar/avatar.variants.d.ts.map +1 -0
  45. package/dist/components/avatar/avatar.variants.js +48 -0
  46. package/dist/components/avatar/avatar.variants.js.map +1 -0
  47. package/dist/components/avatar/index.d.ts +3 -0
  48. package/dist/components/avatar/index.d.ts.map +1 -0
  49. package/dist/components/avatar/index.js +15 -0
  50. package/dist/components/avatar/index.js.map +1 -0
  51. package/dist/components/badge/badge.d.ts +30 -0
  52. package/dist/components/badge/badge.d.ts.map +1 -0
  53. package/dist/components/badge/badge.js +33 -0
  54. package/dist/components/badge/badge.js.map +1 -0
  55. package/dist/components/badge/badge.variants.d.ts +7 -0
  56. package/dist/components/badge/badge.variants.d.ts.map +1 -0
  57. package/dist/components/badge/badge.variants.js +33 -0
  58. package/dist/components/badge/badge.variants.js.map +1 -0
  59. package/dist/components/badge/index.d.ts +3 -0
  60. package/dist/components/badge/index.d.ts.map +1 -0
  61. package/dist/components/badge/index.js +8 -0
  62. package/dist/components/badge/index.js.map +1 -0
  63. package/dist/components/breadcrumb/breadcrumb.d.ts +90 -0
  64. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  65. package/dist/components/breadcrumb/breadcrumb.js +143 -0
  66. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  67. package/dist/components/breadcrumb/breadcrumb.variants.d.ts +10 -0
  68. package/dist/components/breadcrumb/breadcrumb.variants.d.ts.map +1 -0
  69. package/dist/components/breadcrumb/breadcrumb.variants.js +41 -0
  70. package/dist/components/breadcrumb/breadcrumb.variants.js.map +1 -0
  71. package/dist/components/breadcrumb/index.d.ts +3 -0
  72. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  73. package/dist/components/breadcrumb/index.js +35 -0
  74. package/dist/components/breadcrumb/index.js.map +1 -0
  75. package/dist/components/button/button.d.ts +10 -0
  76. package/dist/components/button/button.d.ts.map +1 -0
  77. package/dist/components/button/button.js +42 -0
  78. package/dist/components/button/button.js.map +1 -0
  79. package/dist/components/button/button.variants.d.ts +6 -0
  80. package/dist/components/button/button.variants.d.ts.map +1 -0
  81. package/dist/components/button/button.variants.js +45 -0
  82. package/dist/components/button/button.variants.js.map +1 -0
  83. package/dist/components/button/index.d.ts +3 -0
  84. package/dist/components/button/index.d.ts.map +1 -0
  85. package/dist/components/button/index.js +7 -0
  86. package/dist/components/button/index.js.map +1 -0
  87. package/dist/components/card/card.d.ts +59 -0
  88. package/dist/components/card/card.d.ts.map +1 -0
  89. package/dist/components/card/card.js +101 -0
  90. package/dist/components/card/card.js.map +1 -0
  91. package/dist/components/card/card.variants.d.ts +13 -0
  92. package/dist/components/card/card.variants.d.ts.map +1 -0
  93. package/dist/components/card/card.variants.js +64 -0
  94. package/dist/components/card/card.variants.js.map +1 -0
  95. package/dist/components/card/index.d.ts +3 -0
  96. package/dist/components/card/index.d.ts.map +1 -0
  97. package/dist/components/card/index.js +35 -0
  98. package/dist/components/card/index.js.map +1 -0
  99. package/dist/components/checkbox/checkbox.d.ts +20 -0
  100. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  101. package/dist/components/checkbox/checkbox.js +102 -0
  102. package/dist/components/checkbox/checkbox.js.map +1 -0
  103. package/dist/components/checkbox/checkbox.variants.d.ts +15 -0
  104. package/dist/components/checkbox/checkbox.variants.d.ts.map +1 -0
  105. package/dist/components/checkbox/checkbox.variants.js +70 -0
  106. package/dist/components/checkbox/checkbox.variants.js.map +1 -0
  107. package/dist/components/checkbox/index.d.ts +3 -0
  108. package/dist/components/checkbox/index.d.ts.map +1 -0
  109. package/dist/components/checkbox/index.js +11 -0
  110. package/dist/components/checkbox/index.js.map +1 -0
  111. package/dist/components/command-palette/command-palette.d.ts +76 -0
  112. package/dist/components/command-palette/command-palette.d.ts.map +1 -0
  113. package/dist/components/command-palette/command-palette.js +271 -0
  114. package/dist/components/command-palette/command-palette.js.map +1 -0
  115. package/dist/components/command-palette/command-palette.variants.d.ts +18 -0
  116. package/dist/components/command-palette/command-palette.variants.d.ts.map +1 -0
  117. package/dist/components/command-palette/command-palette.variants.js +62 -0
  118. package/dist/components/command-palette/command-palette.variants.js.map +1 -0
  119. package/dist/components/command-palette/index.d.ts +3 -0
  120. package/dist/components/command-palette/index.d.ts.map +1 -0
  121. package/dist/components/command-palette/index.js +35 -0
  122. package/dist/components/command-palette/index.js.map +1 -0
  123. package/dist/components/consent-toggle/consent-toggle.d.ts +107 -0
  124. package/dist/components/consent-toggle/consent-toggle.d.ts.map +1 -0
  125. package/dist/components/consent-toggle/consent-toggle.js +68 -0
  126. package/dist/components/consent-toggle/consent-toggle.js.map +1 -0
  127. package/dist/components/consent-toggle/consent-toggle.variants.d.ts +10 -0
  128. package/dist/components/consent-toggle/consent-toggle.variants.d.ts.map +1 -0
  129. package/dist/components/consent-toggle/consent-toggle.variants.js +29 -0
  130. package/dist/components/consent-toggle/consent-toggle.variants.js.map +1 -0
  131. package/dist/components/consent-toggle/index.d.ts +3 -0
  132. package/dist/components/consent-toggle/index.d.ts.map +1 -0
  133. package/dist/components/consent-toggle/index.js +19 -0
  134. package/dist/components/consent-toggle/index.js.map +1 -0
  135. package/dist/components/credential-card/credential-card.d.ts +144 -0
  136. package/dist/components/credential-card/credential-card.d.ts.map +1 -0
  137. package/dist/components/credential-card/credential-card.js +117 -0
  138. package/dist/components/credential-card/credential-card.js.map +1 -0
  139. package/dist/components/credential-card/credential-card.variants.d.ts +15 -0
  140. package/dist/components/credential-card/credential-card.variants.d.ts.map +1 -0
  141. package/dist/components/credential-card/credential-card.variants.js +48 -0
  142. package/dist/components/credential-card/credential-card.variants.js.map +1 -0
  143. package/dist/components/credential-card/index.d.ts +3 -0
  144. package/dist/components/credential-card/index.d.ts.map +1 -0
  145. package/dist/components/credential-card/index.js +29 -0
  146. package/dist/components/credential-card/index.js.map +1 -0
  147. package/dist/components/data-grid/data-grid.d.ts +247 -0
  148. package/dist/components/data-grid/data-grid.d.ts.map +1 -0
  149. package/dist/components/data-grid/data-grid.js +529 -0
  150. package/dist/components/data-grid/data-grid.js.map +1 -0
  151. package/dist/components/data-grid/data-grid.variants.d.ts +29 -0
  152. package/dist/components/data-grid/data-grid.variants.d.ts.map +1 -0
  153. package/dist/components/data-grid/data-grid.variants.js +110 -0
  154. package/dist/components/data-grid/data-grid.variants.js.map +1 -0
  155. package/dist/components/data-grid/index.d.ts +3 -0
  156. package/dist/components/data-grid/index.d.ts.map +1 -0
  157. package/dist/components/data-grid/index.js +59 -0
  158. package/dist/components/data-grid/index.js.map +1 -0
  159. package/dist/components/dialog/dialog.d.ts +98 -0
  160. package/dist/components/dialog/dialog.d.ts.map +1 -0
  161. package/dist/components/dialog/dialog.js +121 -0
  162. package/dist/components/dialog/dialog.js.map +1 -0
  163. package/dist/components/dialog/dialog.variants.d.ts +14 -0
  164. package/dist/components/dialog/dialog.variants.d.ts.map +1 -0
  165. package/dist/components/dialog/dialog.variants.js +71 -0
  166. package/dist/components/dialog/dialog.variants.js.map +1 -0
  167. package/dist/components/dialog/index.d.ts +3 -0
  168. package/dist/components/dialog/index.d.ts.map +1 -0
  169. package/dist/components/dialog/index.js +31 -0
  170. package/dist/components/dialog/index.js.map +1 -0
  171. package/dist/components/identity-chip/identity-chip.d.ts +121 -0
  172. package/dist/components/identity-chip/identity-chip.d.ts.map +1 -0
  173. package/dist/components/identity-chip/identity-chip.js +203 -0
  174. package/dist/components/identity-chip/identity-chip.js.map +1 -0
  175. package/dist/components/identity-chip/identity-chip.variants.d.ts +11 -0
  176. package/dist/components/identity-chip/identity-chip.variants.d.ts.map +1 -0
  177. package/dist/components/identity-chip/identity-chip.variants.js +61 -0
  178. package/dist/components/identity-chip/identity-chip.variants.js.map +1 -0
  179. package/dist/components/identity-chip/index.d.ts +3 -0
  180. package/dist/components/identity-chip/index.d.ts.map +1 -0
  181. package/dist/components/identity-chip/index.js +21 -0
  182. package/dist/components/identity-chip/index.js.map +1 -0
  183. package/dist/components/input/index.d.ts +3 -0
  184. package/dist/components/input/index.d.ts.map +1 -0
  185. package/dist/components/input/index.js +11 -0
  186. package/dist/components/input/index.js.map +1 -0
  187. package/dist/components/input/input.d.ts +17 -0
  188. package/dist/components/input/input.d.ts.map +1 -0
  189. package/dist/components/input/input.js +71 -0
  190. package/dist/components/input/input.js.map +1 -0
  191. package/dist/components/input/input.variants.d.ts +11 -0
  192. package/dist/components/input/input.variants.d.ts.map +1 -0
  193. package/dist/components/input/input.variants.js +64 -0
  194. package/dist/components/input/input.variants.js.map +1 -0
  195. package/dist/components/label/index.d.ts +3 -0
  196. package/dist/components/label/index.d.ts.map +1 -0
  197. package/dist/components/label/index.js +13 -0
  198. package/dist/components/label/index.js.map +1 -0
  199. package/dist/components/label/label.d.ts +16 -0
  200. package/dist/components/label/label.d.ts.map +1 -0
  201. package/dist/components/label/label.js +27 -0
  202. package/dist/components/label/label.js.map +1 -0
  203. package/dist/components/label/label.variants.d.ts +8 -0
  204. package/dist/components/label/label.variants.d.ts.map +1 -0
  205. package/dist/components/label/label.variants.js +27 -0
  206. package/dist/components/label/label.variants.js.map +1 -0
  207. package/dist/components/menu/index.d.ts +3 -0
  208. package/dist/components/menu/index.d.ts.map +1 -0
  209. package/dist/components/menu/index.js +43 -0
  210. package/dist/components/menu/index.js.map +1 -0
  211. package/dist/components/menu/menu.d.ts +115 -0
  212. package/dist/components/menu/menu.d.ts.map +1 -0
  213. package/dist/components/menu/menu.js +130 -0
  214. package/dist/components/menu/menu.js.map +1 -0
  215. package/dist/components/menu/menu.variants.d.ts +13 -0
  216. package/dist/components/menu/menu.variants.d.ts.map +1 -0
  217. package/dist/components/menu/menu.variants.js +56 -0
  218. package/dist/components/menu/menu.variants.js.map +1 -0
  219. package/dist/components/pagination/index.d.ts +3 -0
  220. package/dist/components/pagination/index.d.ts.map +1 -0
  221. package/dist/components/pagination/index.js +37 -0
  222. package/dist/components/pagination/index.js.map +1 -0
  223. package/dist/components/pagination/pagination.d.ts +118 -0
  224. package/dist/components/pagination/pagination.d.ts.map +1 -0
  225. package/dist/components/pagination/pagination.js +204 -0
  226. package/dist/components/pagination/pagination.js.map +1 -0
  227. package/dist/components/pagination/pagination.variants.d.ts +13 -0
  228. package/dist/components/pagination/pagination.variants.d.ts.map +1 -0
  229. package/dist/components/pagination/pagination.variants.js +63 -0
  230. package/dist/components/pagination/pagination.variants.js.map +1 -0
  231. package/dist/components/popover/index.d.ts +3 -0
  232. package/dist/components/popover/index.d.ts.map +1 -0
  233. package/dist/components/popover/index.js +39 -0
  234. package/dist/components/popover/index.js.map +1 -0
  235. package/dist/components/popover/popover.d.ts +92 -0
  236. package/dist/components/popover/popover.d.ts.map +1 -0
  237. package/dist/components/popover/popover.js +135 -0
  238. package/dist/components/popover/popover.js.map +1 -0
  239. package/dist/components/popover/popover.variants.d.ts +9 -0
  240. package/dist/components/popover/popover.variants.d.ts.map +1 -0
  241. package/dist/components/popover/popover.variants.js +19 -0
  242. package/dist/components/popover/popover.variants.js.map +1 -0
  243. package/dist/components/progress/index.d.ts +3 -0
  244. package/dist/components/progress/index.d.ts.map +1 -0
  245. package/dist/components/progress/index.js +23 -0
  246. package/dist/components/progress/index.js.map +1 -0
  247. package/dist/components/progress/progress.d.ts +71 -0
  248. package/dist/components/progress/progress.d.ts.map +1 -0
  249. package/dist/components/progress/progress.js +91 -0
  250. package/dist/components/progress/progress.js.map +1 -0
  251. package/dist/components/progress/progress.variants.d.ts +14 -0
  252. package/dist/components/progress/progress.variants.d.ts.map +1 -0
  253. package/dist/components/progress/progress.variants.js +37 -0
  254. package/dist/components/progress/progress.variants.js.map +1 -0
  255. package/dist/components/radio/index.d.ts +3 -0
  256. package/dist/components/radio/index.d.ts.map +1 -0
  257. package/dist/components/radio/index.js +22 -0
  258. package/dist/components/radio/index.js.map +1 -0
  259. package/dist/components/radio/radio.d.ts +23 -0
  260. package/dist/components/radio/radio.d.ts.map +1 -0
  261. package/dist/components/radio/radio.js +183 -0
  262. package/dist/components/radio/radio.js.map +1 -0
  263. package/dist/components/radio/radio.variants.d.ts +17 -0
  264. package/dist/components/radio/radio.variants.d.ts.map +1 -0
  265. package/dist/components/radio/radio.variants.js +60 -0
  266. package/dist/components/radio/radio.variants.js.map +1 -0
  267. package/dist/components/select/index.d.ts +3 -0
  268. package/dist/components/select/index.d.ts.map +1 -0
  269. package/dist/components/select/index.js +9 -0
  270. package/dist/components/select/index.js.map +1 -0
  271. package/dist/components/select/select.d.ts +27 -0
  272. package/dist/components/select/select.d.ts.map +1 -0
  273. package/dist/components/select/select.js +145 -0
  274. package/dist/components/select/select.js.map +1 -0
  275. package/dist/components/select/select.variants.d.ts +18 -0
  276. package/dist/components/select/select.variants.d.ts.map +1 -0
  277. package/dist/components/select/select.variants.js +102 -0
  278. package/dist/components/select/select.variants.js.map +1 -0
  279. package/dist/components/separator/index.d.ts +3 -0
  280. package/dist/components/separator/index.d.ts.map +1 -0
  281. package/dist/components/separator/index.js +15 -0
  282. package/dist/components/separator/index.js.map +1 -0
  283. package/dist/components/separator/separator.d.ts +23 -0
  284. package/dist/components/separator/separator.d.ts.map +1 -0
  285. package/dist/components/separator/separator.js +61 -0
  286. package/dist/components/separator/separator.js.map +1 -0
  287. package/dist/components/separator/separator.variants.d.ts +13 -0
  288. package/dist/components/separator/separator.variants.d.ts.map +1 -0
  289. package/dist/components/separator/separator.variants.js +46 -0
  290. package/dist/components/separator/separator.variants.js.map +1 -0
  291. package/dist/components/sheet/index.d.ts +3 -0
  292. package/dist/components/sheet/index.d.ts.map +1 -0
  293. package/dist/components/sheet/index.js +31 -0
  294. package/dist/components/sheet/index.js.map +1 -0
  295. package/dist/components/sheet/sheet.d.ts +102 -0
  296. package/dist/components/sheet/sheet.d.ts.map +1 -0
  297. package/dist/components/sheet/sheet.js +120 -0
  298. package/dist/components/sheet/sheet.js.map +1 -0
  299. package/dist/components/sheet/sheet.variants.d.ts +15 -0
  300. package/dist/components/sheet/sheet.variants.d.ts.map +1 -0
  301. package/dist/components/sheet/sheet.variants.js +97 -0
  302. package/dist/components/sheet/sheet.variants.js.map +1 -0
  303. package/dist/components/sidebar/index.d.ts +3 -0
  304. package/dist/components/sidebar/index.d.ts.map +1 -0
  305. package/dist/components/sidebar/index.js +43 -0
  306. package/dist/components/sidebar/index.js.map +1 -0
  307. package/dist/components/sidebar/sidebar.d.ts +114 -0
  308. package/dist/components/sidebar/sidebar.d.ts.map +1 -0
  309. package/dist/components/sidebar/sidebar.js +202 -0
  310. package/dist/components/sidebar/sidebar.js.map +1 -0
  311. package/dist/components/sidebar/sidebar.variants.d.ts +19 -0
  312. package/dist/components/sidebar/sidebar.variants.d.ts.map +1 -0
  313. package/dist/components/sidebar/sidebar.variants.js +93 -0
  314. package/dist/components/sidebar/sidebar.variants.js.map +1 -0
  315. package/dist/components/skeleton/index.d.ts +3 -0
  316. package/dist/components/skeleton/index.d.ts.map +1 -0
  317. package/dist/components/skeleton/index.js +15 -0
  318. package/dist/components/skeleton/index.js.map +1 -0
  319. package/dist/components/skeleton/skeleton.d.ts +42 -0
  320. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  321. package/dist/components/skeleton/skeleton.js +54 -0
  322. package/dist/components/skeleton/skeleton.js.map +1 -0
  323. package/dist/components/skeleton/skeleton.variants.d.ts +9 -0
  324. package/dist/components/skeleton/skeleton.variants.d.ts.map +1 -0
  325. package/dist/components/skeleton/skeleton.variants.js +31 -0
  326. package/dist/components/skeleton/skeleton.variants.js.map +1 -0
  327. package/dist/components/spinner/index.d.ts +3 -0
  328. package/dist/components/spinner/index.d.ts.map +1 -0
  329. package/dist/components/spinner/index.js +13 -0
  330. package/dist/components/spinner/index.js.map +1 -0
  331. package/dist/components/spinner/spinner.d.ts +41 -0
  332. package/dist/components/spinner/spinner.d.ts.map +1 -0
  333. package/dist/components/spinner/spinner.js +48 -0
  334. package/dist/components/spinner/spinner.js.map +1 -0
  335. package/dist/components/spinner/spinner.variants.d.ts +8 -0
  336. package/dist/components/spinner/spinner.variants.d.ts.map +1 -0
  337. package/dist/components/spinner/spinner.variants.js +32 -0
  338. package/dist/components/spinner/spinner.variants.js.map +1 -0
  339. package/dist/components/switch/index.d.ts +3 -0
  340. package/dist/components/switch/index.d.ts.map +1 -0
  341. package/dist/components/switch/index.js +15 -0
  342. package/dist/components/switch/index.js.map +1 -0
  343. package/dist/components/switch/switch.d.ts +20 -0
  344. package/dist/components/switch/switch.d.ts.map +1 -0
  345. package/dist/components/switch/switch.js +107 -0
  346. package/dist/components/switch/switch.js.map +1 -0
  347. package/dist/components/switch/switch.variants.d.ts +14 -0
  348. package/dist/components/switch/switch.variants.d.ts.map +1 -0
  349. package/dist/components/switch/switch.variants.js +69 -0
  350. package/dist/components/switch/switch.variants.js.map +1 -0
  351. package/dist/components/table/index.d.ts +3 -0
  352. package/dist/components/table/index.d.ts.map +1 -0
  353. package/dist/components/table/index.js +51 -0
  354. package/dist/components/table/index.js.map +1 -0
  355. package/dist/components/table/table.d.ts +173 -0
  356. package/dist/components/table/table.d.ts.map +1 -0
  357. package/dist/components/table/table.js +172 -0
  358. package/dist/components/table/table.js.map +1 -0
  359. package/dist/components/table/table.variants.d.ts +39 -0
  360. package/dist/components/table/table.variants.d.ts.map +1 -0
  361. package/dist/components/table/table.variants.js +124 -0
  362. package/dist/components/table/table.variants.js.map +1 -0
  363. package/dist/components/tabs/index.d.ts +3 -0
  364. package/dist/components/tabs/index.d.ts.map +1 -0
  365. package/dist/components/tabs/index.js +21 -0
  366. package/dist/components/tabs/index.js.map +1 -0
  367. package/dist/components/tabs/tabs.d.ts +66 -0
  368. package/dist/components/tabs/tabs.d.ts.map +1 -0
  369. package/dist/components/tabs/tabs.js +81 -0
  370. package/dist/components/tabs/tabs.js.map +1 -0
  371. package/dist/components/tabs/tabs.variants.d.ts +15 -0
  372. package/dist/components/tabs/tabs.variants.d.ts.map +1 -0
  373. package/dist/components/tabs/tabs.variants.js +98 -0
  374. package/dist/components/tabs/tabs.variants.js.map +1 -0
  375. package/dist/components/textarea/index.d.ts +3 -0
  376. package/dist/components/textarea/index.d.ts.map +1 -0
  377. package/dist/components/textarea/index.js +7 -0
  378. package/dist/components/textarea/index.js.map +1 -0
  379. package/dist/components/textarea/textarea.d.ts +18 -0
  380. package/dist/components/textarea/textarea.d.ts.map +1 -0
  381. package/dist/components/textarea/textarea.js +136 -0
  382. package/dist/components/textarea/textarea.js.map +1 -0
  383. package/dist/components/textarea/textarea.variants.d.ts +6 -0
  384. package/dist/components/textarea/textarea.variants.d.ts.map +1 -0
  385. package/dist/components/textarea/textarea.variants.js +53 -0
  386. package/dist/components/textarea/textarea.variants.js.map +1 -0
  387. package/dist/components/toast/index.d.ts +3 -0
  388. package/dist/components/toast/index.d.ts.map +1 -0
  389. package/dist/components/toast/index.js +43 -0
  390. package/dist/components/toast/index.js.map +1 -0
  391. package/dist/components/toast/toast.d.ts +140 -0
  392. package/dist/components/toast/toast.d.ts.map +1 -0
  393. package/dist/components/toast/toast.js +123 -0
  394. package/dist/components/toast/toast.js.map +1 -0
  395. package/dist/components/toast/toast.variants.d.ts +16 -0
  396. package/dist/components/toast/toast.variants.d.ts.map +1 -0
  397. package/dist/components/toast/toast.variants.js +77 -0
  398. package/dist/components/toast/toast.variants.js.map +1 -0
  399. package/dist/components/tooltip/index.d.ts +3 -0
  400. package/dist/components/tooltip/index.d.ts.map +1 -0
  401. package/dist/components/tooltip/index.js +16 -0
  402. package/dist/components/tooltip/index.js.map +1 -0
  403. package/dist/components/tooltip/tooltip.d.ts +81 -0
  404. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  405. package/dist/components/tooltip/tooltip.js +44 -0
  406. package/dist/components/tooltip/tooltip.js.map +1 -0
  407. package/dist/components/tooltip/tooltip.variants.d.ts +3 -0
  408. package/dist/components/tooltip/tooltip.variants.d.ts.map +1 -0
  409. package/dist/components/tooltip/tooltip.variants.js +7 -0
  410. package/dist/components/tooltip/tooltip.variants.js.map +1 -0
  411. package/dist/components/trust-score/index.d.ts +3 -0
  412. package/dist/components/trust-score/index.d.ts.map +1 -0
  413. package/dist/components/trust-score/index.js +11 -0
  414. package/dist/components/trust-score/index.js.map +1 -0
  415. package/dist/components/trust-score/trust-score.d.ts +100 -0
  416. package/dist/components/trust-score/trust-score.d.ts.map +1 -0
  417. package/dist/components/trust-score/trust-score.js +146 -0
  418. package/dist/components/trust-score/trust-score.js.map +1 -0
  419. package/dist/components/trust-score/trust-score.variants.d.ts +16 -0
  420. package/dist/components/trust-score/trust-score.variants.d.ts.map +1 -0
  421. package/dist/components/trust-score/trust-score.variants.js +50 -0
  422. package/dist/components/trust-score/trust-score.variants.js.map +1 -0
  423. package/dist/components/verified-badge/index.d.ts +3 -0
  424. package/dist/components/verified-badge/index.d.ts.map +1 -0
  425. package/dist/components/verified-badge/index.js +15 -0
  426. package/dist/components/verified-badge/index.js.map +1 -0
  427. package/dist/components/verified-badge/verified-badge.d.ts +55 -0
  428. package/dist/components/verified-badge/verified-badge.d.ts.map +1 -0
  429. package/dist/components/verified-badge/verified-badge.js +67 -0
  430. package/dist/components/verified-badge/verified-badge.js.map +1 -0
  431. package/dist/components/verified-badge/verified-badge.variants.d.ts +11 -0
  432. package/dist/components/verified-badge/verified-badge.variants.d.ts.map +1 -0
  433. package/dist/components/verified-badge/verified-badge.variants.js +45 -0
  434. package/dist/components/verified-badge/verified-badge.variants.js.map +1 -0
  435. package/dist/index.d.ts +39 -0
  436. package/dist/index.d.ts.map +1 -0
  437. package/dist/index.js +322 -0
  438. package/dist/index.js.map +1 -0
  439. package/dist/lib/cn.d.ts +3 -0
  440. package/dist/lib/cn.d.ts.map +1 -0
  441. package/dist/lib/cn.js +24 -0
  442. package/dist/lib/cn.js.map +1 -0
  443. package/package.json +74 -0
@@ -0,0 +1,102 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../../lib/cn";
5
+ import {
6
+ checkboxBoxVariants,
7
+ checkboxLabelVariants,
8
+ checkboxCheckGlyphVariants,
9
+ checkboxBarGlyphVariants
10
+ } from "./checkbox.variants";
11
+ let idSeq = 0;
12
+ const Checkbox = React.forwardRef(
13
+ function Checkbox2({
14
+ className,
15
+ label,
16
+ description,
17
+ error,
18
+ size,
19
+ variant = "standalone",
20
+ indeterminate = false,
21
+ disabled = false,
22
+ id,
23
+ onCheckedChange,
24
+ ...props
25
+ }, forwardedRef) {
26
+ const reactId = React.useId();
27
+ const baseId = id ?? `checkbox-${reactId}-${idSeq += 1}`;
28
+ const descId = description ? `${baseId}-description` : void 0;
29
+ const errorId = error ? `${baseId}-error` : void 0;
30
+ const isMixed = variant === "parent" && indeterminate;
31
+ const innerRef = React.useRef(null);
32
+ React.useImperativeHandle(forwardedRef, () => innerRef.current);
33
+ React.useEffect(() => {
34
+ if (innerRef.current) innerRef.current.indeterminate = isMixed;
35
+ }, [isMixed]);
36
+ const describedBy = [descId, errorId].filter(Boolean).join(" ") || void 0;
37
+ const handleChange = (e) => {
38
+ onCheckedChange?.(e.currentTarget.checked);
39
+ };
40
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
41
+ /* @__PURE__ */ jsxs(
42
+ "div",
43
+ {
44
+ "data-testid": "checkbox-control",
45
+ className: "flex min-h-(--size-target-mobile) items-center gap-2 sm:min-h-(--size-target-desktop)",
46
+ children: [
47
+ /* @__PURE__ */ jsxs("span", { className: "relative inline-flex shrink-0", children: [
48
+ /* @__PURE__ */ jsx(
49
+ "input",
50
+ {
51
+ ref: innerRef,
52
+ id: baseId,
53
+ type: "checkbox",
54
+ disabled,
55
+ "aria-checked": isMixed ? "mixed" : void 0,
56
+ "aria-invalid": error ? "true" : void 0,
57
+ "aria-describedby": describedBy,
58
+ onChange: handleChange,
59
+ className: cn(checkboxBoxVariants({ size }), className),
60
+ ...props
61
+ }
62
+ ),
63
+ !isMixed ? /* @__PURE__ */ jsx(
64
+ "svg",
65
+ {
66
+ "data-testid": "checkbox-check",
67
+ "aria-hidden": "true",
68
+ viewBox: "0 0 16 16",
69
+ className: checkboxCheckGlyphVariants({ disabled }),
70
+ fill: "none",
71
+ stroke: "currentColor",
72
+ strokeWidth: "2.5",
73
+ children: /* @__PURE__ */ jsx("path", { d: "M3.5 8.5l3 3 6-6.5", strokeLinecap: "round", strokeLinejoin: "round" })
74
+ }
75
+ ) : null,
76
+ /* @__PURE__ */ jsx(
77
+ "svg",
78
+ {
79
+ "data-testid": "checkbox-bar",
80
+ "aria-hidden": "true",
81
+ viewBox: "0 0 16 16",
82
+ className: checkboxBarGlyphVariants({ disabled }),
83
+ fill: "none",
84
+ stroke: "currentColor",
85
+ strokeWidth: "2.5",
86
+ children: /* @__PURE__ */ jsx("path", { d: "M4 8h8", strokeLinecap: "round" })
87
+ }
88
+ )
89
+ ] }),
90
+ /* @__PURE__ */ jsx("label", { htmlFor: baseId, className: checkboxLabelVariants({ disabled }), children: label })
91
+ ]
92
+ }
93
+ ),
94
+ description ? /* @__PURE__ */ jsx("p", { id: descId, className: "text-caption text-text-secondary", children: description }) : null,
95
+ error ? /* @__PURE__ */ jsx("p", { id: errorId, className: "text-caption text-status-critical-fg", children: error }) : null
96
+ ] });
97
+ }
98
+ );
99
+ export {
100
+ Checkbox
101
+ };
102
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport {\n checkboxBoxVariants,\n checkboxLabelVariants,\n checkboxCheckGlyphVariants,\n checkboxBarGlyphVariants,\n type CheckboxBoxVariantProps,\n} from \"./checkbox.variants\";\n\ntype NativeInputProps = Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"type\" | \"onChange\"\n>;\n\nexport interface CheckboxProps extends NativeInputProps, CheckboxBoxVariantProps {\n /** The visible text naming the choice. Becomes the accessible name via <label for>. */\n label: string;\n /** Secondary helper text beneath the label. Linked via aria-describedby. */\n description?: string;\n /** Validation message; sets aria-invalid and the critical-bordered error state. */\n error?: string;\n /** standalone = one value; parent = summarizes children (the only place mixed rests). */\n variant?: \"standalone\" | \"parent\";\n /** Mixed/“some children” state. Honored ONLY on variant=\"parent\"; ignored on standalone. */\n indeterminate?: boolean;\n /** Fired with the resolved boolean; a parent toggle resolves mixed → checked/unchecked. */\n onCheckedChange?: (checked: boolean) => void;\n}\n\nlet idSeq = 0;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n function Checkbox(\n {\n className,\n label,\n description,\n error,\n size,\n variant = \"standalone\",\n indeterminate = false,\n disabled = false,\n id,\n onCheckedChange,\n ...props\n },\n forwardedRef,\n ) {\n const reactId = React.useId();\n const baseId = id ?? `checkbox-${reactId}-${(idSeq += 1)}`;\n const descId = description ? `${baseId}-description` : undefined;\n const errorId = error ? `${baseId}-error` : undefined;\n\n // indeterminate is a parent-only RESTING state — standalone never rests on mixed.\n const isMixed = variant === \"parent\" && indeterminate;\n\n const innerRef = React.useRef<HTMLInputElement>(null);\n // bridge the forwarded ref to our inner ref (we need direct DOM access for indeterminate)\n React.useImperativeHandle(forwardedRef, () => innerRef.current as HTMLInputElement);\n\n // indeterminate is a DOM property, not an attribute — write it through the ref.\n // This effect is why the component is a client component ('use client' above).\n React.useEffect(() => {\n if (innerRef.current) innerRef.current.indeterminate = isMixed;\n }, [isMixed]);\n\n const describedBy =\n [descId, errorId].filter(Boolean).join(\" \") || undefined;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n // a direct parent toggle resolves mixed → a single state; never rests on mixed\n onCheckedChange?.(e.currentTarget.checked);\n };\n\n return (\n <div className=\"flex flex-col gap-1\">\n {/* control row: the box + label share one hit area no smaller than the target token */}\n <div\n data-testid=\"checkbox-control\"\n className=\"flex min-h-(--size-target-mobile) items-center gap-2 sm:min-h-(--size-target-desktop)\"\n >\n {/* relative overlay: the box (peer) + the indicator glyphs it drives.\n The glyphs are siblings AFTER the input so peer-* can reach them. */}\n <span className=\"relative inline-flex shrink-0\">\n <input\n ref={innerRef}\n id={baseId}\n type=\"checkbox\"\n disabled={disabled}\n aria-checked={isMixed ? \"mixed\" : undefined}\n aria-invalid={error ? \"true\" : undefined}\n aria-describedby={describedBy}\n onChange={handleChange}\n className={cn(checkboxBoxVariants({ size }), className)}\n {...props}\n />\n {/* check: only when :checked; never rendered in the mixed state so the\n bar wins for an indeterminate parent (check and bar stay exclusive) */}\n {!isMixed ? (\n <svg\n data-testid=\"checkbox-check\"\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className={checkboxCheckGlyphVariants({ disabled })}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n >\n <path d=\"M3.5 8.5l3 3 6-6.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ) : null}\n {/* horizontal bar: the single indeterminate mark, only when :indeterminate */}\n <svg\n data-testid=\"checkbox-bar\"\n aria-hidden=\"true\"\n viewBox=\"0 0 16 16\"\n className={checkboxBarGlyphVariants({ disabled })}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n >\n <path d=\"M4 8h8\" strokeLinecap=\"round\" />\n </svg>\n </span>\n <label htmlFor={baseId} className={checkboxLabelVariants({ disabled })}>\n {label}\n </label>\n </div>\n {description ? (\n <p id={descId} className=\"text-caption text-text-secondary\">\n {description}\n </p>\n ) : null}\n {error ? (\n <p id={errorId} className=\"text-caption text-status-critical-fg\">\n {error}\n </p>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":";AAsFU,SACE,KADF;AApFV,YAAY,WAAW;AACvB,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAsBP,IAAI,QAAQ;AAEL,MAAM,WAAW,MAAM;AAAA,EAC5B,SAASA,UACP;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,cACA;AACA,UAAM,UAAU,MAAM,MAAM;AAC5B,UAAM,SAAS,MAAM,YAAY,OAAO,IAAK,SAAS,CAAE;AACxD,UAAM,SAAS,cAAc,GAAG,MAAM,iBAAiB;AACvD,UAAM,UAAU,QAAQ,GAAG,MAAM,WAAW;AAG5C,UAAM,UAAU,YAAY,YAAY;AAExC,UAAM,WAAW,MAAM,OAAyB,IAAI;AAEpD,UAAM,oBAAoB,cAAc,MAAM,SAAS,OAA2B;AAIlF,UAAM,UAAU,MAAM;AACpB,UAAI,SAAS,QAAS,UAAS,QAAQ,gBAAgB;AAAA,IACzD,GAAG,CAAC,OAAO,CAAC;AAEZ,UAAM,cACJ,CAAC,QAAQ,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,KAAK;AAEjD,UAAM,eAAe,CAAC,MAA2C;AAE/D,wBAAkB,EAAE,cAAc,OAAO;AAAA,IAC3C;AAEA,WACE,qBAAC,SAAI,WAAU,uBAEb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,eAAY;AAAA,UACZ,WAAU;AAAA,UAIV;AAAA,iCAAC,UAAK,WAAU,iCACd;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,KAAK;AAAA,kBACL,IAAI;AAAA,kBACJ,MAAK;AAAA,kBACL;AAAA,kBACA,gBAAc,UAAU,UAAU;AAAA,kBAClC,gBAAc,QAAQ,SAAS;AAAA,kBAC/B,oBAAkB;AAAA,kBAClB,UAAU;AAAA,kBACV,WAAW,GAAG,oBAAoB,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,kBACrD,GAAG;AAAA;AAAA,cACN;AAAA,cAGC,CAAC,UACA;AAAA,gBAAC;AAAA;AAAA,kBACC,eAAY;AAAA,kBACZ,eAAY;AAAA,kBACZ,SAAQ;AAAA,kBACR,WAAW,2BAA2B,EAAE,SAAS,CAAC;AAAA,kBAClD,MAAK;AAAA,kBACL,QAAO;AAAA,kBACP,aAAY;AAAA,kBAEZ,8BAAC,UAAK,GAAE,sBAAqB,eAAc,SAAQ,gBAAe,SAAQ;AAAA;AAAA,cAC5E,IACE;AAAA,cAEJ;AAAA,gBAAC;AAAA;AAAA,kBACC,eAAY;AAAA,kBACZ,eAAY;AAAA,kBACZ,SAAQ;AAAA,kBACR,WAAW,yBAAyB,EAAE,SAAS,CAAC;AAAA,kBAChD,MAAK;AAAA,kBACL,QAAO;AAAA,kBACP,aAAY;AAAA,kBAEZ,8BAAC,UAAK,GAAE,UAAS,eAAc,SAAQ;AAAA;AAAA,cACzC;AAAA,eACF;AAAA,YACA,oBAAC,WAAM,SAAS,QAAQ,WAAW,sBAAsB,EAAE,SAAS,CAAC,GAClE,iBACH;AAAA;AAAA;AAAA,MACF;AAAA,MACC,cACC,oBAAC,OAAE,IAAI,QAAQ,WAAU,oCACtB,uBACH,IACE;AAAA,MACH,QACC,oBAAC,OAAE,IAAI,SAAS,WAAU,wCACvB,iBACH,IACE;AAAA,OACN;AAAA,EAEJ;AACF;","names":["Checkbox"]}
@@ -0,0 +1,15 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ export declare const checkboxBoxVariants: (props?: ({
3
+ size?: "md" | "sm" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export declare const checkboxCheckGlyphVariants: (props?: ({
6
+ readonly disabled?: boolean | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export declare const checkboxBarGlyphVariants: (props?: ({
9
+ readonly disabled?: boolean | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ export declare const checkboxLabelVariants: (props?: ({
12
+ disabled?: boolean | null | undefined;
13
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
+ export type CheckboxBoxVariantProps = VariantProps<typeof checkboxBoxVariants>;
15
+ //# sourceMappingURL=checkbox.variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.variants.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,eAAO,MAAM,mBAAmB;;8EAmC/B,CAAC;AA6BF,eAAO,MAAM,0BAA0B;;8EAGtC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;8EAGpC,CAAC;AAGF,eAAO,MAAM,qBAAqB;;8EAKhC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { cva } from "class-variance-authority";
2
+ const checkboxBoxVariants = cva(
3
+ [
4
+ // shape + neutral control tier at rest (unchecked)
5
+ "peer shrink-0 appearance-none rounded-sm border bg-control-bg text-control-fg",
6
+ "border-border-default",
7
+ // hover: the box border strengthens; box + label read as one target
8
+ "hover:border-border-strong",
9
+ // selection accent (Sovereign Violet) — the brand, NOT a status — when set
10
+ "checked:bg-action-primary-bg checked:text-action-primary-fg",
11
+ "checked:border-action-primary-bg",
12
+ "indeterminate:bg-action-primary-bg indeterminate:text-action-primary-fg",
13
+ "indeterminate:border-action-primary-bg",
14
+ // functional toggle: fast + verdify easing, instant under reduced motion.
15
+ // Never the deliberate theatre — a checkbox toggle is not the verified-check moment.
16
+ "transition-colors duration-(--motion-duration-fast) ease-(--motion-easing-verdify)",
17
+ "motion-reduce:duration-(--motion-duration-instant)",
18
+ // visible 2px signal-blue ring at 2px offset, never removed
19
+ "outline-none",
20
+ "focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2",
21
+ // error: critical border marks the FIELD; the fill stays the selection accent
22
+ "aria-invalid:border-status-critical-border",
23
+ // disabled: not interactive; state still reads (a disabled-checked box reads checked).
24
+ // DEC-C / spec §4: a disabled control is dimmed via the disabled TOKEN on the
25
+ // indicator (text-text-disabled, below), NOT a blanket opacity-60 on the box.
26
+ "disabled:pointer-events-none"
27
+ ],
28
+ {
29
+ variants: {
30
+ size: {
31
+ sm: "h-(--size-icon-sm) w-(--size-icon-sm)",
32
+ md: "h-(--size-icon-md) w-(--size-icon-md)"
33
+ }
34
+ },
35
+ defaultVariants: { size: "md" }
36
+ }
37
+ );
38
+ const indicatorBase = [
39
+ "pointer-events-none absolute inset-0 m-auto hidden h-3/4 w-3/4"
40
+ ];
41
+ const indicatorColorVariants = {
42
+ variants: {
43
+ disabled: {
44
+ true: "text-text-disabled",
45
+ false: "text-action-primary-fg"
46
+ }
47
+ },
48
+ defaultVariants: { disabled: false }
49
+ };
50
+ const checkboxCheckGlyphVariants = cva(
51
+ [...indicatorBase, "peer-checked:block"],
52
+ indicatorColorVariants
53
+ );
54
+ const checkboxBarGlyphVariants = cva(
55
+ [...indicatorBase, "peer-indeterminate:block"],
56
+ indicatorColorVariants
57
+ );
58
+ const checkboxLabelVariants = cva("text-text-primary select-none", {
59
+ variants: {
60
+ disabled: { true: "text-text-disabled", false: "" }
61
+ },
62
+ defaultVariants: { disabled: false }
63
+ });
64
+ export {
65
+ checkboxBarGlyphVariants,
66
+ checkboxBoxVariants,
67
+ checkboxCheckGlyphVariants,
68
+ checkboxLabelVariants
69
+ };
70
+ //# sourceMappingURL=checkbox.variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/checkbox/checkbox.variants.ts"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\n\n// The square box that carries the visual state. Token binding lives here ONLY.\n// `peer` so the overlaid indicator glyphs can react to :checked / :indeterminate.\nexport const checkboxBoxVariants = cva(\n [\n // shape + neutral control tier at rest (unchecked)\n \"peer shrink-0 appearance-none rounded-sm border bg-control-bg text-control-fg\",\n \"border-border-default\",\n // hover: the box border strengthens; box + label read as one target\n \"hover:border-border-strong\",\n // selection accent (Sovereign Violet) — the brand, NOT a status — when set\n \"checked:bg-action-primary-bg checked:text-action-primary-fg\",\n \"checked:border-action-primary-bg\",\n \"indeterminate:bg-action-primary-bg indeterminate:text-action-primary-fg\",\n \"indeterminate:border-action-primary-bg\",\n // functional toggle: fast + verdify easing, instant under reduced motion.\n // Never the deliberate theatre — a checkbox toggle is not the verified-check moment.\n \"transition-colors duration-(--motion-duration-fast) ease-(--motion-easing-verdify)\",\n \"motion-reduce:duration-(--motion-duration-instant)\",\n // visible 2px signal-blue ring at 2px offset, never removed\n \"outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2\",\n // error: critical border marks the FIELD; the fill stays the selection accent\n \"aria-invalid:border-status-critical-border\",\n // disabled: not interactive; state still reads (a disabled-checked box reads checked).\n // DEC-C / spec §4: a disabled control is dimmed via the disabled TOKEN on the\n // indicator (text-text-disabled, below), NOT a blanket opacity-60 on the box.\n \"disabled:pointer-events-none\",\n ],\n {\n variants: {\n size: {\n sm: \"h-(--size-icon-sm) w-(--size-icon-sm)\",\n md: \"h-(--size-icon-md) w-(--size-icon-md)\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n\n// The overlaid indicator glyphs sit absolutely over the box and are colored by\n// the action-primary FOREGROUND — the glyph on the brand accent fill (spec §5),\n// never a status color. `peer-*` drives visibility from the sibling input's\n// native :checked / :indeterminate state; both glyphs are pointer-transparent\n// and aria-hidden (the input carries role/state). Each glyph is centered over\n// the box and drawn at three-quarters of the box so it never touches the edge.\n//\n// DEC-C / spec §4·§5: when the control is disabled the indicator (check / bar)\n// renders in --color-text-disabled — the SAME token the label dims to — NOT a\n// blanket opacity-60 dim of the whole box. The glyph is a sibling AFTER the peer\n// input, so a `disabled` cva variant (driven by the explicit prop, mirroring\n// checkboxLabelVariants) flips text-action-primary-fg → text-text-disabled.\nconst indicatorBase = [\n \"pointer-events-none absolute inset-0 m-auto hidden h-3/4 w-3/4\",\n];\nconst indicatorColorVariants = {\n variants: {\n disabled: {\n true: \"text-text-disabled\",\n false: \"text-action-primary-fg\",\n },\n },\n defaultVariants: { disabled: false },\n} as const;\n// Check glyph: shown when the peer input is :checked. The mixed (parent-only)\n// case never renders this glyph (it is omitted in JSX when isMixed), so the\n// check and the bar stay mutually exclusive without brittle variant stacking.\nexport const checkboxCheckGlyphVariants = cva(\n [...indicatorBase, \"peer-checked:block\"],\n indicatorColorVariants,\n);\n// Horizontal-bar glyph: shown only when the peer input is :indeterminate.\nexport const checkboxBarGlyphVariants = cva(\n [...indicatorBase, \"peer-indeterminate:block\"],\n indicatorColorVariants,\n);\n\n// The label naming the choice; part of the hit area.\nexport const checkboxLabelVariants = cva(\"text-text-primary select-none\", {\n variants: {\n disabled: { true: \"text-text-disabled\", false: \"\" },\n },\n defaultVariants: { disabled: false },\n});\n\nexport type CheckboxBoxVariantProps = VariantProps<typeof checkboxBoxVariants>;\n"],"mappings":"AAAA,SAAS,WAA8B;AAIhC,MAAM,sBAAsB;AAAA,EACjC;AAAA;AAAA,IAEE;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB,EAAE,MAAM,KAAK;AAAA,EAChC;AACF;AAcA,MAAM,gBAAgB;AAAA,EACpB;AACF;AACA,MAAM,yBAAyB;AAAA,EAC7B,UAAU;AAAA,IACR,UAAU;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB,EAAE,UAAU,MAAM;AACrC;AAIO,MAAM,6BAA6B;AAAA,EACxC,CAAC,GAAG,eAAe,oBAAoB;AAAA,EACvC;AACF;AAEO,MAAM,2BAA2B;AAAA,EACtC,CAAC,GAAG,eAAe,0BAA0B;AAAA,EAC7C;AACF;AAGO,MAAM,wBAAwB,IAAI,iCAAiC;AAAA,EACxE,UAAU;AAAA,IACR,UAAU,EAAE,MAAM,sBAAsB,OAAO,GAAG;AAAA,EACpD;AAAA,EACA,iBAAiB,EAAE,UAAU,MAAM;AACrC,CAAC;","names":[]}
@@ -0,0 +1,3 @@
1
+ export { Checkbox, type CheckboxProps } from "./checkbox";
2
+ export { checkboxBoxVariants, checkboxLabelVariants, type CheckboxBoxVariantProps, } from "./checkbox.variants";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Checkbox } from "./checkbox";
2
+ import {
3
+ checkboxBoxVariants,
4
+ checkboxLabelVariants
5
+ } from "./checkbox.variants";
6
+ export {
7
+ Checkbox,
8
+ checkboxBoxVariants,
9
+ checkboxLabelVariants
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/checkbox/index.ts"],"sourcesContent":["export { Checkbox, type CheckboxProps } from \"./checkbox\";\nexport {\n checkboxBoxVariants,\n checkboxLabelVariants,\n type CheckboxBoxVariantProps,\n} from \"./checkbox.variants\";\n"],"mappings":"AAAA,SAAS,gBAAoC;AAC7C;AAAA,EACE;AAAA,EACA;AAAA,OAEK;","names":[]}
@@ -0,0 +1,76 @@
1
+ import * as React from "react";
2
+ export type CommandPaletteVariant = "commands" | "navigation" | "with-recent" | "scoped";
3
+ export interface CommandPaletteItem {
4
+ /** Stable id — the option's DOM id derives from it (spec §7 aria-activedescendant target). */
5
+ id: string;
6
+ /** The result label — the row's accessible name; the row names itself by this, not its icon (spec §2). */
7
+ label: string;
8
+ /** Optional secondary line under the label (spec §2 option). Where a disabled row's short reason fits (spec §4 Disabled). */
9
+ secondary?: string;
10
+ /** Optional leading icon (spec §2): decorative, --size-icon-md; the row names itself by its label. */
11
+ icon?: React.ReactNode;
12
+ /** Optional trailing keyboard-shortcut hint (spec §2): muted label role, never a focus stop. */
13
+ shortcut?: React.ReactNode;
14
+ /** A non-runnable row (spec §4 Disabled): aria-disabled, skipped by arrow movement, not activatable. */
15
+ disabled?: boolean;
16
+ /** The group heading this row sits under (spec §2 group-label). Consecutive same-group rows are grouped. */
17
+ group?: string;
18
+ }
19
+ export interface CommandPaletteProps {
20
+ /** Controlled open state — the host surface owns the open shortcut (commonly Cmd/Ctrl+K), not this component (spec §6). */
21
+ open: boolean;
22
+ /** Reports open changes; called with `false` on Escape, scrim click, or running a result (spec §6/§7). */
23
+ onOpenChange: (open: boolean) => void;
24
+ /**
25
+ * The input's accessible name (spec §7): the input has no visible label, so it names itself via
26
+ * `aria-label` (for example "Search commands"). The placeholder is NEVER the accessible name.
27
+ */
28
+ inputLabel: string;
29
+ /** The runnable results, optionally grouped by `group` (spec §2 listbox / option). */
30
+ items: CommandPaletteItem[];
31
+ /**
32
+ * The recent commands/destinations shown BEFORE any query (spec §3 `with-recent`), so the frequent
33
+ * case is one keystroke away. Replaced by filtered `items` as soon as you type.
34
+ */
35
+ recent?: CommandPaletteItem[];
36
+ /** Intent (spec §3): `commands` (default), `navigation`, `with-recent`, or `scoped`. */
37
+ variant?: CommandPaletteVariant;
38
+ /** The input placeholder (spec §2): de-emphasised, never the accessible name. */
39
+ placeholder?: string;
40
+ /**
41
+ * Results are resolving (spec §4 Loading): sets the listbox `aria-busy` and announces busy state;
42
+ * the input stays focused and typeable so a slow source never freezes the keyboard. A wait is a
43
+ * plain wait, not theatre.
44
+ */
45
+ loading?: boolean;
46
+ /** The no-match text (spec §2 empty, §4): says nothing matched and what to try — never a dead end, never a blamed query. */
47
+ emptyText?: string;
48
+ /** A thin hint row showing the active keys (spec §2 footer), so the keyboard model is discoverable in place. */
49
+ footer?: React.ReactNode;
50
+ /** Run the active/clicked result (spec §6 Enter / pointer): fired with the item, after which the palette closes. */
51
+ onRun?: (item: CommandPaletteItem) => void;
52
+ className?: string;
53
+ }
54
+ /**
55
+ * CommandPalette is a keyboard-first launcher (spec §1): open it from anywhere, type a few letters,
56
+ * and run a command or jump to a place without leaving the keyboard. It is the accelerator OVER the
57
+ * visible navigation, not a replacement — every command in it is also reachable by pointer somewhere
58
+ * in the UI. Reach for a Menu to fire actions behind a trigger, a Select to pick a value, and the
59
+ * Sidebar for page-level navigation.
60
+ *
61
+ * It is a NEUTRAL overlay surface (spec §3): the scrim, panel, input, and result rows are neutral,
62
+ * and the active-row highlight is the SECONDARY hover fill — never Verified Green and never the
63
+ * brand violet. The active row reports WHERE you are in the list, not a verified result, so brand is
64
+ * not a state (G-U2); a verified meaning belongs to VerifiedBadge, never a palette row.
65
+ *
66
+ * It uses the WAI-ARIA APG combobox-with-listbox pattern: the input is the `role="combobox"` and the
67
+ * results are its `role="listbox"` popup, with the active option tracked by `aria-activedescendant`
68
+ * so DOM focus STAYS in the input the whole time (type-ahead keeps working, spec §4/§6/§7/§8). The
69
+ * OVERLAY shell — portal, focus trap, Escape, inert siblings, scrim — is the Radix `Dialog`
70
+ * primitive; the combobox/listbox roving is hand-rolled INSIDE it, because the spec's
71
+ * focus-stays-in-the-input contract is the OPPOSITE of Radix's focus-moving roving listbox and §8
72
+ * names focus-moving as a forbidden anti-pattern (skill: compose a role by hand when Radix can't
73
+ * express the spec's anatomy). A stateful component, so this file is `'use client'`.
74
+ */
75
+ export declare function CommandPalette({ open, onOpenChange, inputLabel, items, recent, variant, placeholder, loading, emptyText, footer, onRun, className, }: CommandPaletteProps): import("react/jsx-runtime").JSX.Element;
76
+ //# sourceMappingURL=command-palette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../../src/components/command-palette/command-palette.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmB/B,MAAM,MAAM,qBAAqB,GAC7B,UAAU,GACV,YAAY,GACZ,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,WAAW,kBAAkB;IACjC,8FAA8F;IAC9F,EAAE,EAAE,MAAM,CAAC;IACX,0GAA0G;IAC1G,KAAK,EAAE,MAAM,CAAC;IACd,6HAA6H;IAC7H,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4GAA4G;IAC5G,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,2HAA2H;IAC3H,IAAI,EAAE,OAAO,CAAC;IACd,0GAA0G;IAC1G,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,wFAAwF;IACxF,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4HAA4H;IAC5H,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gHAAgH;IAChH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,oHAAoH;IACpH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAoB,EACpB,WAAW,EACX,OAAe,EACf,SAAoD,EACpD,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,2CAyRrB"}
@@ -0,0 +1,271 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Dialog as DialogPrimitive } from "radix-ui";
5
+ import { cn } from "../../lib/cn";
6
+ import {
7
+ commandPaletteScrimClass,
8
+ commandPalettePanelClass,
9
+ commandPaletteInputClass,
10
+ commandPaletteSearchIconClass,
11
+ commandPaletteListboxClass,
12
+ commandPaletteGroupLabelClass,
13
+ commandPaletteOptionVariants,
14
+ commandPaletteLabelClass,
15
+ commandPaletteSecondaryClass,
16
+ commandPaletteOptionIconClass,
17
+ commandPaletteShortcutClass,
18
+ commandPaletteEmptyClass,
19
+ commandPaletteFooterClass
20
+ } from "./command-palette.variants";
21
+ function SearchGlyph() {
22
+ return /* @__PURE__ */ jsxs(
23
+ "svg",
24
+ {
25
+ "data-testid": "command-palette-search-glyph",
26
+ "aria-hidden": "true",
27
+ viewBox: "0 0 16 16",
28
+ fill: "none",
29
+ stroke: "currentColor",
30
+ strokeWidth: "1.5",
31
+ className: "h-(--size-icon-md) w-(--size-icon-md)",
32
+ children: [
33
+ /* @__PURE__ */ jsx("circle", { cx: "7", cy: "7", r: "4.5" }),
34
+ /* @__PURE__ */ jsx("path", { d: "M10.5 10.5L14 14", strokeLinecap: "round" })
35
+ ]
36
+ }
37
+ );
38
+ }
39
+ function groupItems(items) {
40
+ const out = [];
41
+ for (const item of items) {
42
+ const last = out[out.length - 1];
43
+ if (last && last.group === item.group) last.rows.push(item);
44
+ else out.push({ group: item.group, rows: [item] });
45
+ }
46
+ return out;
47
+ }
48
+ const matches = (item, query) => {
49
+ if (!query) return true;
50
+ const q = query.toLowerCase();
51
+ return item.label.toLowerCase().includes(q) || (item.secondary ? item.secondary.toLowerCase().includes(q) : false);
52
+ };
53
+ function CommandPalette({
54
+ open,
55
+ onOpenChange,
56
+ inputLabel,
57
+ items,
58
+ recent,
59
+ variant = "commands",
60
+ placeholder,
61
+ loading = false,
62
+ emptyText = "Nothing matched. Try a different word.",
63
+ footer,
64
+ onRun,
65
+ className
66
+ }) {
67
+ void variant;
68
+ const reactId = React.useId();
69
+ const listboxId = `${reactId}-listbox`;
70
+ const inputId = `${reactId}-input`;
71
+ const statusId = `${reactId}-status`;
72
+ const inputRef = React.useRef(null);
73
+ const openerRef = React.useRef(null);
74
+ const [query, setQuery] = React.useState("");
75
+ const showRecent = query.length === 0 && recent !== void 0 && recent.length > 0;
76
+ const source = showRecent ? recent : items;
77
+ const visible = React.useMemo(
78
+ () => source.filter((item) => matches(item, query)),
79
+ [source, query]
80
+ );
81
+ const runnable = React.useMemo(() => visible.filter((item) => !item.disabled), [visible]);
82
+ const [activeId, setActiveId] = React.useState(null);
83
+ React.useEffect(() => {
84
+ setActiveId(runnable.length > 0 ? runnable[0].id : null);
85
+ }, [runnable]);
86
+ const optionDomId = (id) => `${reactId}-opt-${id}`;
87
+ const activeIndex = runnable.findIndex((item) => item.id === activeId);
88
+ const moveActive = (next) => {
89
+ if (runnable.length === 0) return;
90
+ const wrapped = (next % runnable.length + runnable.length) % runnable.length;
91
+ setActiveId(runnable[wrapped].id);
92
+ };
93
+ const runItem = (item) => {
94
+ if (item.disabled) return;
95
+ onRun?.(item);
96
+ onOpenChange(false);
97
+ };
98
+ const handleInputKeyDown = (event) => {
99
+ switch (event.key) {
100
+ case "ArrowDown":
101
+ event.preventDefault();
102
+ moveActive(activeIndex < 0 ? 0 : activeIndex + 1);
103
+ break;
104
+ case "ArrowUp":
105
+ event.preventDefault();
106
+ moveActive(activeIndex < 0 ? runnable.length - 1 : activeIndex - 1);
107
+ break;
108
+ case "Home":
109
+ event.preventDefault();
110
+ moveActive(0);
111
+ break;
112
+ case "End":
113
+ event.preventDefault();
114
+ moveActive(runnable.length - 1);
115
+ break;
116
+ case "PageDown":
117
+ event.preventDefault();
118
+ moveActive(Math.min(activeIndex + PAGE_STEP, runnable.length - 1));
119
+ break;
120
+ case "PageUp":
121
+ event.preventDefault();
122
+ moveActive(Math.max(activeIndex - PAGE_STEP, 0));
123
+ break;
124
+ case "Enter": {
125
+ event.preventDefault();
126
+ const item = runnable[activeIndex];
127
+ if (item) runItem(item);
128
+ break;
129
+ }
130
+ // Escape is handled on Content's onEscapeKeyDown (below), not here: Radix listens for Escape at
131
+ // the document level, so a React-bubbled stopPropagation on the input would not stop Radix's
132
+ // own close. Intercepting it on Content's onEscapeKeyDown is the only reliable seam.
133
+ default:
134
+ break;
135
+ }
136
+ };
137
+ const handleEscapeKeyDown = (event) => {
138
+ if (query.length > 0) {
139
+ event.preventDefault();
140
+ setQuery("");
141
+ }
142
+ };
143
+ const matchCount = visible.length;
144
+ const hasOptions = matchCount > 0;
145
+ const statusMessage = loading ? "Loading results." : matchCount === 0 ? "No results." : `${matchCount} result${matchCount === 1 ? "" : "s"}.`;
146
+ const groups = groupItems(visible);
147
+ const handleCloseAutoFocus = (event) => {
148
+ const opener = openerRef.current;
149
+ openerRef.current = null;
150
+ if (opener?.isConnected) {
151
+ event.preventDefault();
152
+ opener.focus();
153
+ }
154
+ };
155
+ return /* @__PURE__ */ jsx(DialogPrimitive.Root, { open, onOpenChange, children: /* @__PURE__ */ jsxs(DialogPrimitive.Portal, { children: [
156
+ /* @__PURE__ */ jsx(
157
+ DialogPrimitive.Overlay,
158
+ {
159
+ "data-testid": "command-palette-scrim",
160
+ className: commandPaletteScrimClass
161
+ }
162
+ ),
163
+ /* @__PURE__ */ jsxs(
164
+ DialogPrimitive.Content,
165
+ {
166
+ "aria-modal": "true",
167
+ "aria-label": inputLabel,
168
+ className: cn(commandPalettePanelClass, className),
169
+ onOpenAutoFocus: (event) => {
170
+ event.preventDefault();
171
+ openerRef.current = document.activeElement ?? null;
172
+ inputRef.current?.focus();
173
+ },
174
+ onEscapeKeyDown: handleEscapeKeyDown,
175
+ onCloseAutoFocus: handleCloseAutoFocus,
176
+ children: [
177
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
178
+ /* @__PURE__ */ jsx("span", { className: commandPaletteSearchIconClass, children: /* @__PURE__ */ jsx(SearchGlyph, {}) }),
179
+ /* @__PURE__ */ jsx(
180
+ "input",
181
+ {
182
+ ref: inputRef,
183
+ id: inputId,
184
+ type: "text",
185
+ role: "combobox",
186
+ "aria-expanded": hasOptions,
187
+ "aria-controls": listboxId,
188
+ "aria-haspopup": "listbox",
189
+ "aria-activedescendant": activeId ? optionDomId(activeId) : void 0,
190
+ "aria-label": inputLabel,
191
+ "aria-describedby": statusId,
192
+ autoComplete: "off",
193
+ spellCheck: false,
194
+ placeholder,
195
+ value: query,
196
+ onChange: (event) => setQuery(event.target.value),
197
+ onKeyDown: handleInputKeyDown,
198
+ className: commandPaletteInputClass
199
+ }
200
+ )
201
+ ] }),
202
+ /* @__PURE__ */ jsx(
203
+ "div",
204
+ {
205
+ id: listboxId,
206
+ role: hasOptions ? "listbox" : void 0,
207
+ "aria-label": hasOptions ? inputLabel : void 0,
208
+ "aria-busy": loading || void 0,
209
+ className: commandPaletteListboxClass,
210
+ children: !hasOptions && !loading ? (
211
+ // The empty state is announced as TEXT, never silence (spec §2 empty, §7 4.1.3).
212
+ /* @__PURE__ */ jsx("p", { className: commandPaletteEmptyClass, children: emptyText })
213
+ ) : groups.map((group, groupIndex) => {
214
+ const groupLabelId = `${reactId}-group-${groupIndex}`;
215
+ const rows = group.rows.map((item) => {
216
+ const isActive = item.id === activeId;
217
+ return /* @__PURE__ */ jsxs(
218
+ "div",
219
+ {
220
+ id: optionDomId(item.id),
221
+ role: "option",
222
+ "aria-selected": isActive,
223
+ "aria-disabled": item.disabled || void 0,
224
+ className: cn(commandPaletteOptionVariants()),
225
+ onMouseMove: () => {
226
+ if (!item.disabled) setActiveId(item.id);
227
+ },
228
+ onClick: () => runItem(item),
229
+ children: [
230
+ item.icon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: commandPaletteOptionIconClass, children: item.icon }) : null,
231
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [
232
+ /* @__PURE__ */ jsx("span", { className: commandPaletteLabelClass, children: item.label }),
233
+ item.secondary ? /* @__PURE__ */ jsx("span", { className: commandPaletteSecondaryClass, children: item.secondary }) : null
234
+ ] }),
235
+ item.shortcut ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: commandPaletteShortcutClass, children: item.shortcut }) : null
236
+ ]
237
+ },
238
+ item.id
239
+ );
240
+ });
241
+ if (!group.group) {
242
+ return /* @__PURE__ */ jsx(React.Fragment, { children: rows }, groupIndex);
243
+ }
244
+ return /* @__PURE__ */ jsxs("div", { role: "group", "aria-labelledby": groupLabelId, children: [
245
+ /* @__PURE__ */ jsx("p", { id: groupLabelId, className: commandPaletteGroupLabelClass, children: group.group }),
246
+ rows
247
+ ] }, groupIndex);
248
+ })
249
+ }
250
+ ),
251
+ footer ? /* @__PURE__ */ jsx("div", { className: commandPaletteFooterClass, children: footer }) : null,
252
+ /* @__PURE__ */ jsx(
253
+ "span",
254
+ {
255
+ id: statusId,
256
+ role: "status",
257
+ "aria-live": "polite",
258
+ className: "sr-only",
259
+ children: statusMessage
260
+ }
261
+ )
262
+ ]
263
+ }
264
+ )
265
+ ] }) });
266
+ }
267
+ const PAGE_STEP = 8;
268
+ export {
269
+ CommandPalette
270
+ };
271
+ //# sourceMappingURL=command-palette.js.map