@cloudraker/reki 2.6.1 → 2.7.1

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 (381) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +1 -1
  3. package/ai/component-registry.json +1271 -41
  4. package/ai/component-registry.md +1310 -34
  5. package/ai/schemas.ts +226 -2
  6. package/dist/.build-complete +1 -1
  7. package/dist/ai/schemas.d.ts +554 -5
  8. package/dist/ai/schemas.d.ts.map +1 -1
  9. package/dist/ai/schemas.js +1699 -1405
  10. package/dist/ai/schemas.js.map +1 -1
  11. package/dist/chunks/{SankeyChart-jwwpwps4npqzbrvn.js → SankeyChart-gogf860o4u387kjn.js} +2 -2
  12. package/dist/chunks/{SankeyChart-jwwpwps4npqzbrvn.js.map → SankeyChart-gogf860o4u387kjn.js.map} +1 -1
  13. package/dist/chunks/actor-display-izds1bhw0yswurqm.js +35 -0
  14. package/dist/chunks/actor-display-izds1bhw0yswurqm.js.map +1 -0
  15. package/dist/chunks/address-input-g1la0xqrpg8ic6ak.js +80 -0
  16. package/dist/chunks/address-input-g1la0xqrpg8ic6ak.js.map +1 -0
  17. package/dist/chunks/array-display-lu1259ap3qrl847e.js +12 -0
  18. package/dist/chunks/array-display-lu1259ap3qrl847e.js.map +1 -0
  19. package/dist/chunks/{autocomplete-f4vetako14h2aqsw.js → autocomplete-htuy5t9ag29qhuwa.js} +4 -4
  20. package/dist/chunks/{autocomplete-f4vetako14h2aqsw.js.map → autocomplete-htuy5t9ag29qhuwa.js.map} +1 -1
  21. package/dist/chunks/avatar-g40cun6cn17fcxd4.js +57 -0
  22. package/dist/chunks/avatar-g40cun6cn17fcxd4.js.map +1 -0
  23. package/dist/chunks/avatar-group-fpcaziey1yu7226v.js +23 -0
  24. package/dist/chunks/avatar-group-fpcaziey1yu7226v.js.map +1 -0
  25. package/dist/chunks/{breadcrumbs-d6149hyct4puz3x4.js → breadcrumbs-mq1utzm0q4u2r5v5.js} +2 -2
  26. package/dist/chunks/{breadcrumbs-d6149hyct4puz3x4.js.map → breadcrumbs-mq1utzm0q4u2r5v5.js.map} +1 -1
  27. package/dist/chunks/{button-nc5p1h28cwes0tjw.js → button-fvlz1rzc3s1hpyxs.js} +14 -14
  28. package/dist/chunks/button-fvlz1rzc3s1hpyxs.js.map +1 -0
  29. package/dist/chunks/{checkbox-g2661n3eodgoispq.js → checkbox-h3kfhlron3b6sfhv.js} +3 -3
  30. package/dist/chunks/{checkbox-g2661n3eodgoispq.js.map → checkbox-h3kfhlron3b6sfhv.js.map} +1 -1
  31. package/dist/chunks/chip-iu7movvthovdurgb.js +69 -0
  32. package/dist/chunks/chip-iu7movvthovdurgb.js.map +1 -0
  33. package/dist/chunks/circular-progress-bar-ofg0ps2axad1wsr6.js +60 -0
  34. package/dist/chunks/circular-progress-bar-ofg0ps2axad1wsr6.js.map +1 -0
  35. package/dist/chunks/{clipboard-text-g3659lejx2d7i93e.js → clipboard-text-ogue8iq06n1z7q7v.js} +4 -4
  36. package/dist/chunks/{clipboard-text-g3659lejx2d7i93e.js.map → clipboard-text-ogue8iq06n1z7q7v.js.map} +1 -1
  37. package/dist/chunks/{collapsible-ndvmgo29s5iqfcor.js → collapsible-ivqat099ene9z3bv.js} +2 -2
  38. package/dist/chunks/{collapsible-ndvmgo29s5iqfcor.js.map → collapsible-ivqat099ene9z3bv.js.map} +1 -1
  39. package/dist/chunks/color-sample-h7hspma3rb91go3z.js +32 -0
  40. package/dist/chunks/color-sample-h7hspma3rb91go3z.js.map +1 -0
  41. package/dist/chunks/{combobox-i38w67netm8ukw4f.js → combobox-iytvpzp5poljxgek.js} +4 -4
  42. package/dist/chunks/{combobox-i38w67netm8ukw4f.js.map → combobox-iytvpzp5poljxgek.js.map} +1 -1
  43. package/dist/chunks/{command-palette-fe5cjfdgsg3t17vq.js → command-palette-k6vrx8ely8rmf4a5.js} +4 -4
  44. package/dist/chunks/command-palette-k6vrx8ely8rmf4a5.js.map +1 -0
  45. package/dist/chunks/data-grid-i7kfgm7zr5tj0e0a.js +3110 -0
  46. package/dist/chunks/data-grid-i7kfgm7zr5tj0e0a.js.map +1 -0
  47. package/dist/chunks/{dialog-m4go8xof25fospqo.js → dialog-ggx34i6k4eulfvgk.js} +3 -3
  48. package/dist/chunks/{dialog-m4go8xof25fospqo.js.map → dialog-ggx34i6k4eulfvgk.js.map} +1 -1
  49. package/dist/chunks/double-text-input-k0i5xnfq6khv01wu.js +39 -0
  50. package/dist/chunks/double-text-input-k0i5xnfq6khv01wu.js.map +1 -0
  51. package/dist/chunks/{dropdown-j5uht8mn4z7xc9fc.js → dropdown-bt1lfs2jli0khnex.js} +2 -2
  52. package/dist/chunks/{dropdown-j5uht8mn4z7xc9fc.js.map → dropdown-bt1lfs2jli0khnex.js.map} +1 -1
  53. package/dist/chunks/emails-display-nsbqzscr0f9bqimg.js +12 -0
  54. package/dist/chunks/emails-display-nsbqzscr0f9bqimg.js.map +1 -0
  55. package/dist/chunks/{empty-kazxr0248zjemw6n.js → empty-dxy8jti5bsxxh905.js} +2 -2
  56. package/dist/chunks/{empty-kazxr0248zjemw6n.js.map → empty-dxy8jti5bsxxh905.js.map} +1 -1
  57. package/dist/chunks/expandable-list-bjceh467ocazog53.js +26 -0
  58. package/dist/chunks/expandable-list-bjceh467ocazog53.js.map +1 -0
  59. package/dist/chunks/{field-fe5m8z3vbpvtctbe.js → field-b0aywboxuss4rpu7.js} +3 -3
  60. package/dist/chunks/{field-fe5m8z3vbpvtctbe.js.map → field-b0aywboxuss4rpu7.js.map} +1 -1
  61. package/dist/chunks/{input-area-ciw85g3fno06t4tw.js → input-area-cuijpofpark5w5qq.js} +4 -4
  62. package/dist/chunks/{input-area-ciw85g3fno06t4tw.js.map → input-area-cuijpofpark5w5qq.js.map} +1 -1
  63. package/dist/chunks/{input-i5nefqk213n4z7pr.js → input-eno4q26x68rx3i8q.js} +3 -3
  64. package/dist/chunks/{input-i5nefqk213n4z7pr.js.map → input-eno4q26x68rx3i8q.js.map} +1 -1
  65. package/dist/chunks/{input-group-mo7tq7jr19hmgor5.js → input-group-dl9htnza7kq4om4c.js} +5 -5
  66. package/dist/chunks/{input-group-mo7tq7jr19hmgor5.js.map → input-group-dl9htnza7kq4om4c.js.map} +1 -1
  67. package/dist/chunks/json-display-fy0t2khc4itn130p.js +31 -0
  68. package/dist/chunks/json-display-fy0t2khc4itn130p.js.map +1 -0
  69. package/dist/chunks/{label-fcho4757rbdess0c.js → label-ld57mr4ocdxsf06p.js} +3 -3
  70. package/dist/chunks/{label-fcho4757rbdess0c.js.map → label-ld57mr4ocdxsf06p.js.map} +1 -1
  71. package/dist/chunks/{layer-card-kzu48dhzxm3e9p4u.js → layer-card-iuquuc1w3116umfw.js} +2 -2
  72. package/dist/chunks/{layer-card-kzu48dhzxm3e9p4u.js.map → layer-card-iuquuc1w3116umfw.js.map} +1 -1
  73. package/dist/chunks/{link-j2gu5dr3nr4i4yf0.js → link-8pn6y27h3m3ud8fl.js} +2 -2
  74. package/dist/chunks/{link-j2gu5dr3nr4i4yf0.js.map → link-8pn6y27h3m3ud8fl.js.map} +1 -1
  75. package/dist/chunks/link-chip-cz5v6lw9icmcndzl.js +58 -0
  76. package/dist/chunks/link-chip-cz5v6lw9icmcndzl.js.map +1 -0
  77. package/dist/chunks/links-display-dfaehepz86s2wxx1.js +20 -0
  78. package/dist/chunks/links-display-dfaehepz86s2wxx1.js.map +1 -0
  79. package/dist/chunks/menu-item-kyqq7o2krghxbpw5.js +178 -0
  80. package/dist/chunks/menu-item-kyqq7o2krghxbpw5.js.map +1 -0
  81. package/dist/chunks/{menubar-ir5gbjmsizsddz7g.js → menubar-56kqktsa5a28xyzj.js} +2 -2
  82. package/dist/chunks/{menubar-ir5gbjmsizsddz7g.js.map → menubar-56kqktsa5a28xyzj.js.map} +1 -1
  83. package/dist/chunks/{meter-o5yd7ctjf80vvyjx.js → meter-b5rnmibceu4z8i6a.js} +2 -2
  84. package/dist/chunks/{meter-o5yd7ctjf80vvyjx.js.map → meter-b5rnmibceu4z8i6a.js.map} +1 -1
  85. package/dist/chunks/notification-counter-hiq85elmcydnhzoo.js +30 -0
  86. package/dist/chunks/notification-counter-hiq85elmcydnhzoo.js.map +1 -0
  87. package/dist/chunks/overflowing-text-mm8bkx7voc6h8ra4.js +49 -0
  88. package/dist/chunks/overflowing-text-mm8bkx7voc6h8ra4.js.map +1 -0
  89. package/dist/chunks/{pagination-bryw6rohfr7mm3km.js → pagination-iczb9ooenevbxslx.js} +3 -3
  90. package/dist/chunks/{pagination-bryw6rohfr7mm3km.js.map → pagination-iczb9ooenevbxslx.js.map} +1 -1
  91. package/dist/chunks/phones-display-cdsrl07dv6obf4eg.js +19 -0
  92. package/dist/chunks/phones-display-cdsrl07dv6obf4eg.js.map +1 -0
  93. package/dist/chunks/pill-pfpvgbcnqhtyksz5.js +22 -0
  94. package/dist/chunks/pill-pfpvgbcnqhtyksz5.js.map +1 -0
  95. package/dist/chunks/{popover-elxcmvv7mu7m7uk4.js → popover-ldqdlpv6sqvkjume.js} +2 -2
  96. package/dist/chunks/{popover-elxcmvv7mu7m7uk4.js.map → popover-ldqdlpv6sqvkjume.js.map} +1 -1
  97. package/dist/chunks/{radio-newyq331uk4lltr6.js → radio-lyeniil3x20cyb8z.js} +2 -2
  98. package/dist/chunks/{radio-newyq331uk4lltr6.js.map → radio-lyeniil3x20cyb8z.js.map} +1 -1
  99. package/dist/chunks/rating-yyd4t8e62ast4obo.js +48 -0
  100. package/dist/chunks/rating-yyd4t8e62ast4obo.js.map +1 -0
  101. package/dist/chunks/record-board-iapx3cw5rusehrta.js +3395 -0
  102. package/dist/chunks/record-board-iapx3cw5rusehrta.js.map +1 -0
  103. package/dist/chunks/{select-h5480mbro0ypxu0b.js → select-hmoccee4zagd34tq.js} +6 -6
  104. package/dist/chunks/{select-h5480mbro0ypxu0b.js.map → select-hmoccee4zagd34tq.js.map} +1 -1
  105. package/dist/chunks/{sensitive-input-lqugq6uvx0lkpu0u.js → sensitive-input-nkfx72rduc7aijaf.js} +4 -4
  106. package/dist/chunks/{sensitive-input-lqugq6uvx0lkpu0u.js.map → sensitive-input-nkfx72rduc7aijaf.js.map} +1 -1
  107. package/dist/chunks/{sidebar-noz668nhdu2gso12.js → sidebar-gwfibai76tw069d4.js} +34 -33
  108. package/dist/chunks/sidebar-gwfibai76tw069d4.js.map +1 -0
  109. package/dist/chunks/status-ot0itdwxloqgahi0.js +29 -0
  110. package/dist/chunks/status-ot0itdwxloqgahi0.js.map +1 -0
  111. package/dist/chunks/{surface-cyxme7mlr49l33f8.js → surface-fqmma34ju0agh5pe.js} +2 -2
  112. package/dist/chunks/{surface-cyxme7mlr49l33f8.js.map → surface-fqmma34ju0agh5pe.js.map} +1 -1
  113. package/dist/chunks/{switch-bigo96fyjlh7ivbi.js → switch-nhtmn65n5s7gg6vb.js} +3 -3
  114. package/dist/chunks/{switch-bigo96fyjlh7ivbi.js.map → switch-nhtmn65n5s7gg6vb.js.map} +1 -1
  115. package/dist/chunks/{table-mwcmwp6a80zvyrxw.js → table-cjj894o3niouq4tg.js} +2 -2
  116. package/dist/chunks/{table-mwcmwp6a80zvyrxw.js.map → table-cjj894o3niouq4tg.js.map} +1 -1
  117. package/dist/chunks/{tabs-e4pcjkw94kpe35x0.js → tabs-klj6wapad6fpd9at.js} +14 -16
  118. package/dist/chunks/tabs-klj6wapad6fpd9at.js.map +1 -0
  119. package/dist/chunks/tag-h5kwf5eh7dyyvc2c.js +58 -0
  120. package/dist/chunks/tag-h5kwf5eh7dyyvc2c.js.map +1 -0
  121. package/dist/chunks/timeline-lqurr2lcxkayomk2.js +109 -0
  122. package/dist/chunks/timeline-lqurr2lcxkayomk2.js.map +1 -0
  123. package/dist/chunks/{toast-ivr4097bstjcjotf.js → toast-j47dl441zpxa1yw3.js} +3 -3
  124. package/dist/chunks/{toast-ivr4097bstjcjotf.js.map → toast-j47dl441zpxa1yw3.js.map} +1 -1
  125. package/dist/chunks/{tooltip-ncaia8n1lavkyw8n.js → tooltip-bkgxuz77xzg5fooc.js} +2 -2
  126. package/dist/chunks/{tooltip-ncaia8n1lavkyw8n.js.map → tooltip-bkgxuz77xzg5fooc.js.map} +1 -1
  127. package/dist/chunks/{vendor-base-ui-bgl9g5nkvqy3tn36.js → vendor-base-ui-djdjrfuoxlb1lubi.js} +2358 -2358
  128. package/dist/chunks/{vendor-base-ui-bgl9g5nkvqy3tn36.js.map → vendor-base-ui-djdjrfuoxlb1lubi.js.map} +1 -1
  129. package/dist/code.js +1 -1
  130. package/dist/components/actor-display.js +6 -0
  131. package/dist/components/actor-display.js.map +1 -0
  132. package/dist/components/address-input.js +6 -0
  133. package/dist/components/address-input.js.map +1 -0
  134. package/dist/components/array-display.js +6 -0
  135. package/dist/components/array-display.js.map +1 -0
  136. package/dist/components/autocomplete.js +1 -1
  137. package/dist/components/avatar-group.js +6 -0
  138. package/dist/components/avatar-group.js.map +1 -0
  139. package/dist/components/avatar.js +6 -0
  140. package/dist/components/avatar.js.map +1 -0
  141. package/dist/components/breadcrumbs.js +1 -1
  142. package/dist/components/button.js +1 -1
  143. package/dist/components/chart.js +1 -1
  144. package/dist/components/checkbox.js +1 -1
  145. package/dist/components/chip.js +8 -0
  146. package/dist/components/chip.js.map +1 -0
  147. package/dist/components/circular-progress-bar.js +6 -0
  148. package/dist/components/circular-progress-bar.js.map +1 -0
  149. package/dist/components/clipboard-text.js +1 -1
  150. package/dist/components/collapsible.js +1 -1
  151. package/dist/components/color-sample.js +6 -0
  152. package/dist/components/color-sample.js.map +1 -0
  153. package/dist/components/combobox.js +1 -1
  154. package/dist/components/command-palette.js +1 -1
  155. package/dist/components/data-grid.js +8 -0
  156. package/dist/components/data-grid.js.map +1 -0
  157. package/dist/components/dialog.js +1 -1
  158. package/dist/components/double-text-input.js +6 -0
  159. package/dist/components/double-text-input.js.map +1 -0
  160. package/dist/components/dropdown.js +1 -1
  161. package/dist/components/emails-display.js +6 -0
  162. package/dist/components/emails-display.js.map +1 -0
  163. package/dist/components/empty.js +1 -1
  164. package/dist/components/expandable-list.js +6 -0
  165. package/dist/components/expandable-list.js.map +1 -0
  166. package/dist/components/field.js +1 -1
  167. package/dist/components/input-group.js +1 -1
  168. package/dist/components/input.js +3 -3
  169. package/dist/components/json-display.js +6 -0
  170. package/dist/components/json-display.js.map +1 -0
  171. package/dist/components/label.js +1 -1
  172. package/dist/components/layer-card.js +1 -1
  173. package/dist/components/link-chip.js +6 -0
  174. package/dist/components/link-chip.js.map +1 -0
  175. package/dist/components/link.js +1 -1
  176. package/dist/components/links-display.js +6 -0
  177. package/dist/components/links-display.js.map +1 -0
  178. package/dist/components/menu-item.js +11 -0
  179. package/dist/components/menu-item.js.map +1 -0
  180. package/dist/components/menubar.js +1 -1
  181. package/dist/components/meter.js +1 -1
  182. package/dist/components/notification-counter.js +6 -0
  183. package/dist/components/notification-counter.js.map +1 -0
  184. package/dist/components/overflowing-text.js +6 -0
  185. package/dist/components/overflowing-text.js.map +1 -0
  186. package/dist/components/pagination.js +1 -1
  187. package/dist/components/phones-display.js +6 -0
  188. package/dist/components/phones-display.js.map +1 -0
  189. package/dist/components/pill.js +6 -0
  190. package/dist/components/pill.js.map +1 -0
  191. package/dist/components/popover.js +1 -1
  192. package/dist/components/radio.js +1 -1
  193. package/dist/components/rating.js +6 -0
  194. package/dist/components/rating.js.map +1 -0
  195. package/dist/components/record-board.js +8 -0
  196. package/dist/components/record-board.js.map +1 -0
  197. package/dist/components/select.js +1 -1
  198. package/dist/components/sensitive-input.js +1 -1
  199. package/dist/components/sidebar.js +1 -1
  200. package/dist/components/status.js +6 -0
  201. package/dist/components/status.js.map +1 -0
  202. package/dist/components/surface.js +1 -1
  203. package/dist/components/switch.js +1 -1
  204. package/dist/components/table.js +1 -1
  205. package/dist/components/tabs.js +1 -1
  206. package/dist/components/tag.js +10 -0
  207. package/dist/components/tag.js.map +1 -0
  208. package/dist/components/timeline.js +8 -0
  209. package/dist/components/timeline.js.map +1 -0
  210. package/dist/components/toast.js +2 -2
  211. package/dist/components/tooltip.js +1 -1
  212. package/dist/index.js +380 -251
  213. package/dist/index.js.map +1 -1
  214. package/dist/primitives/accordion.js +1 -1
  215. package/dist/primitives/alert-dialog.js +1 -1
  216. package/dist/primitives/autocomplete.js +1 -1
  217. package/dist/primitives/avatar.js +1 -1
  218. package/dist/primitives/button.js +1 -1
  219. package/dist/primitives/checkbox-group.js +1 -1
  220. package/dist/primitives/checkbox.js +1 -1
  221. package/dist/primitives/collapsible.js +1 -1
  222. package/dist/primitives/combobox.js +1 -1
  223. package/dist/primitives/context-menu.js +1 -1
  224. package/dist/primitives/csp-provider.js +1 -1
  225. package/dist/primitives/dialog.js +1 -1
  226. package/dist/primitives/direction-provider.js +1 -1
  227. package/dist/primitives/drawer.js +1 -1
  228. package/dist/primitives/field.js +1 -1
  229. package/dist/primitives/fieldset.js +1 -1
  230. package/dist/primitives/form.js +1 -1
  231. package/dist/primitives/input.js +1 -1
  232. package/dist/primitives/menu.js +1 -1
  233. package/dist/primitives/menubar.js +1 -1
  234. package/dist/primitives/meter.js +1 -1
  235. package/dist/primitives/navigation-menu.js +1 -1
  236. package/dist/primitives/number-field.js +1 -1
  237. package/dist/primitives/otp-field.js +1 -1
  238. package/dist/primitives/popover.js +1 -1
  239. package/dist/primitives/preview-card.js +1 -1
  240. package/dist/primitives/progress.js +1 -1
  241. package/dist/primitives/radio-group.js +1 -1
  242. package/dist/primitives/radio.js +1 -1
  243. package/dist/primitives/scroll-area.js +1 -1
  244. package/dist/primitives/select.js +1 -1
  245. package/dist/primitives/separator.js +1 -1
  246. package/dist/primitives/slider.js +1 -1
  247. package/dist/primitives/switch.js +1 -1
  248. package/dist/primitives/tabs.js +1 -1
  249. package/dist/primitives/toast.js +1 -1
  250. package/dist/primitives/toggle-group.js +1 -1
  251. package/dist/primitives/toggle.js +1 -1
  252. package/dist/primitives/toolbar.js +1 -1
  253. package/dist/primitives/tooltip.js +1 -1
  254. package/dist/primitives.js +1 -1
  255. package/dist/scripts/theme-generator/config.d.ts.map +1 -1
  256. package/dist/scripts/theme-generator/config.js +229 -5
  257. package/dist/scripts/theme-generator/config.js.map +1 -1
  258. package/dist/src/components/actor-display/actor-display.d.ts +33 -0
  259. package/dist/src/components/actor-display/actor-display.d.ts.map +1 -0
  260. package/dist/src/components/actor-display/index.d.ts +2 -0
  261. package/dist/src/components/actor-display/index.d.ts.map +1 -0
  262. package/dist/src/components/address-input/address-input.d.ts +42 -0
  263. package/dist/src/components/address-input/address-input.d.ts.map +1 -0
  264. package/dist/src/components/address-input/index.d.ts +2 -0
  265. package/dist/src/components/address-input/index.d.ts.map +1 -0
  266. package/dist/src/components/array-display/array-display.d.ts +30 -0
  267. package/dist/src/components/array-display/array-display.d.ts.map +1 -0
  268. package/dist/src/components/array-display/index.d.ts +2 -0
  269. package/dist/src/components/array-display/index.d.ts.map +1 -0
  270. package/dist/src/components/avatar/avatar.d.ts +80 -0
  271. package/dist/src/components/avatar/avatar.d.ts.map +1 -0
  272. package/dist/src/components/avatar/index.d.ts +2 -0
  273. package/dist/src/components/avatar/index.d.ts.map +1 -0
  274. package/dist/src/components/avatar-group/avatar-group.d.ts +35 -0
  275. package/dist/src/components/avatar-group/avatar-group.d.ts.map +1 -0
  276. package/dist/src/components/avatar-group/index.d.ts +2 -0
  277. package/dist/src/components/avatar-group/index.d.ts.map +1 -0
  278. package/dist/src/components/button/button.d.ts +4 -4
  279. package/dist/src/components/chip/chip.d.ts +78 -0
  280. package/dist/src/components/chip/chip.d.ts.map +1 -0
  281. package/dist/src/components/chip/index.d.ts +2 -0
  282. package/dist/src/components/chip/index.d.ts.map +1 -0
  283. package/dist/src/components/circular-progress-bar/circular-progress-bar.d.ts +35 -0
  284. package/dist/src/components/circular-progress-bar/circular-progress-bar.d.ts.map +1 -0
  285. package/dist/src/components/circular-progress-bar/index.d.ts +2 -0
  286. package/dist/src/components/circular-progress-bar/index.d.ts.map +1 -0
  287. package/dist/src/components/color-sample/color-sample.d.ts +56 -0
  288. package/dist/src/components/color-sample/color-sample.d.ts.map +1 -0
  289. package/dist/src/components/color-sample/index.d.ts +2 -0
  290. package/dist/src/components/color-sample/index.d.ts.map +1 -0
  291. package/dist/src/components/data-grid/data-grid.d.ts +25 -0
  292. package/dist/src/components/data-grid/data-grid.d.ts.map +1 -0
  293. package/dist/src/components/data-grid/index.d.ts +3 -0
  294. package/dist/src/components/data-grid/index.d.ts.map +1 -0
  295. package/dist/src/components/data-grid/types.d.ts +103 -0
  296. package/dist/src/components/data-grid/types.d.ts.map +1 -0
  297. package/dist/src/components/data-grid/use-data-grid-edit.d.ts +34 -0
  298. package/dist/src/components/data-grid/use-data-grid-edit.d.ts.map +1 -0
  299. package/dist/src/components/double-text-input/double-text-input.d.ts +47 -0
  300. package/dist/src/components/double-text-input/double-text-input.d.ts.map +1 -0
  301. package/dist/src/components/double-text-input/index.d.ts +2 -0
  302. package/dist/src/components/double-text-input/index.d.ts.map +1 -0
  303. package/dist/src/components/emails-display/emails-display.d.ts +30 -0
  304. package/dist/src/components/emails-display/emails-display.d.ts.map +1 -0
  305. package/dist/src/components/emails-display/index.d.ts +2 -0
  306. package/dist/src/components/emails-display/index.d.ts.map +1 -0
  307. package/dist/src/components/expandable-list/expandable-list.d.ts +41 -0
  308. package/dist/src/components/expandable-list/expandable-list.d.ts.map +1 -0
  309. package/dist/src/components/expandable-list/index.d.ts +2 -0
  310. package/dist/src/components/expandable-list/index.d.ts.map +1 -0
  311. package/dist/src/components/json-display/index.d.ts +2 -0
  312. package/dist/src/components/json-display/index.d.ts.map +1 -0
  313. package/dist/src/components/json-display/json-display.d.ts +29 -0
  314. package/dist/src/components/json-display/json-display.d.ts.map +1 -0
  315. package/dist/src/components/link-chip/index.d.ts +2 -0
  316. package/dist/src/components/link-chip/index.d.ts.map +1 -0
  317. package/dist/src/components/link-chip/link-chip.d.ts +50 -0
  318. package/dist/src/components/link-chip/link-chip.d.ts.map +1 -0
  319. package/dist/src/components/links-display/index.d.ts +2 -0
  320. package/dist/src/components/links-display/index.d.ts.map +1 -0
  321. package/dist/src/components/links-display/links-display.d.ts +37 -0
  322. package/dist/src/components/links-display/links-display.d.ts.map +1 -0
  323. package/dist/src/components/menu-item/index.d.ts +2 -0
  324. package/dist/src/components/menu-item/index.d.ts.map +1 -0
  325. package/dist/src/components/menu-item/menu-item.d.ts +104 -0
  326. package/dist/src/components/menu-item/menu-item.d.ts.map +1 -0
  327. package/dist/src/components/notification-counter/index.d.ts +2 -0
  328. package/dist/src/components/notification-counter/index.d.ts.map +1 -0
  329. package/dist/src/components/notification-counter/notification-counter.d.ts +51 -0
  330. package/dist/src/components/notification-counter/notification-counter.d.ts.map +1 -0
  331. package/dist/src/components/overflowing-text/index.d.ts +2 -0
  332. package/dist/src/components/overflowing-text/index.d.ts.map +1 -0
  333. package/dist/src/components/overflowing-text/overflowing-text.d.ts +48 -0
  334. package/dist/src/components/overflowing-text/overflowing-text.d.ts.map +1 -0
  335. package/dist/src/components/phones-display/index.d.ts +2 -0
  336. package/dist/src/components/phones-display/index.d.ts.map +1 -0
  337. package/dist/src/components/phones-display/phones-display.d.ts +31 -0
  338. package/dist/src/components/phones-display/phones-display.d.ts.map +1 -0
  339. package/dist/src/components/pill/index.d.ts +2 -0
  340. package/dist/src/components/pill/index.d.ts.map +1 -0
  341. package/dist/src/components/pill/pill.d.ts +31 -0
  342. package/dist/src/components/pill/pill.d.ts.map +1 -0
  343. package/dist/src/components/rating/index.d.ts +2 -0
  344. package/dist/src/components/rating/index.d.ts.map +1 -0
  345. package/dist/src/components/rating/rating.d.ts +37 -0
  346. package/dist/src/components/rating/rating.d.ts.map +1 -0
  347. package/dist/src/components/record-board/index.d.ts +2 -0
  348. package/dist/src/components/record-board/index.d.ts.map +1 -0
  349. package/dist/src/components/record-board/record-board.d.ts +75 -0
  350. package/dist/src/components/record-board/record-board.d.ts.map +1 -0
  351. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -1
  352. package/dist/src/components/status/index.d.ts +2 -0
  353. package/dist/src/components/status/index.d.ts.map +1 -0
  354. package/dist/src/components/status/status.d.ts +52 -0
  355. package/dist/src/components/status/status.d.ts.map +1 -0
  356. package/dist/src/components/tabs/tabs.d.ts.map +1 -1
  357. package/dist/src/components/tag/index.d.ts +2 -0
  358. package/dist/src/components/tag/index.d.ts.map +1 -0
  359. package/dist/src/components/tag/tag.d.ts +153 -0
  360. package/dist/src/components/tag/tag.d.ts.map +1 -0
  361. package/dist/src/components/timeline/index.d.ts +2 -0
  362. package/dist/src/components/timeline/index.d.ts.map +1 -0
  363. package/dist/src/components/timeline/timeline.d.ts +155 -0
  364. package/dist/src/components/timeline/timeline.d.ts.map +1 -0
  365. package/dist/src/index.d.ts +26 -0
  366. package/dist/src/index.d.ts.map +1 -1
  367. package/dist/src/utils/use-is-dark-mode.d.ts +18 -0
  368. package/dist/src/utils/use-is-dark-mode.d.ts.map +1 -0
  369. package/dist/styles/reki-standalone.css +1 -1
  370. package/dist/styles/reki.css +19 -0
  371. package/dist/styles/theme-fedramp.css +6 -0
  372. package/dist/styles/theme-reki.css +164 -10
  373. package/package.json +118 -4
  374. package/scripts/component-registry/index.ts +6 -11
  375. package/scripts/extract-demo-examples.ts +323 -0
  376. package/scripts/generate-stories.ts +205 -0
  377. package/scripts/theme-generator/config.ts +230 -5
  378. package/dist/chunks/button-nc5p1h28cwes0tjw.js.map +0 -1
  379. package/dist/chunks/command-palette-fe5cjfdgsg3t17vq.js.map +0 -1
  380. package/dist/chunks/sidebar-noz668nhdu2gso12.js.map +0 -1
  381. package/dist/chunks/tabs-e4pcjkw94kpe35x0.js.map +0 -1
@@ -1,6 +1,100 @@
1
1
  {
2
2
  "version": "1.0.0",
3
3
  "components": {
4
+ "ActorDisplay": {
5
+ "name": "ActorDisplay",
6
+ "type": "component",
7
+ "description": "Renders an `actor` / created-by / owned-by value as an avatar followed by a name. Use for record authorship and assignee cells.",
8
+ "importPath": "@cloudraker/reki",
9
+ "category": "Other",
10
+ "props": {
11
+ "name": {
12
+ "type": "string",
13
+ "required": true,
14
+ "description": "Display name of the actor (workspace member, system, or API)."
15
+ },
16
+ "avatarUrl": {
17
+ "type": "string | null",
18
+ "optional": true,
19
+ "description": "Avatar image URL. Falls back to the name's initial when absent."
20
+ },
21
+ "avatarSize": {
22
+ "type": "enum",
23
+ "optional": true,
24
+ "description": "Avatar size.",
25
+ "values": [
26
+ "xs",
27
+ "sm",
28
+ "base",
29
+ "lg",
30
+ "xl"
31
+ ]
32
+ },
33
+ "className": {
34
+ "type": "string",
35
+ "optional": true,
36
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
37
+ }
38
+ },
39
+ "examples": [
40
+ "<TooltipProvider>\n <ActorDisplay name=\"Jane Doe\" />\n </TooltipProvider>",
41
+ "<TooltipProvider>\n <ActorDisplay name=\"Jane Doe\" avatarUrl=\"https://i.pravatar.cc/40?img=5\" />\n </TooltipProvider>"
42
+ ],
43
+ "colors": [
44
+ "text-reki-default"
45
+ ]
46
+ },
47
+ "AddressInput": {
48
+ "name": "AddressInput",
49
+ "type": "component",
50
+ "description": "A structured address editor (street, city, state, postcode, country) for the `address` field type. Presentational only — geocoding / autocomplete, if needed, is layered on by the host app.",
51
+ "importPath": "@cloudraker/reki",
52
+ "category": "Other",
53
+ "props": {
54
+ "value": {
55
+ "type": "AddressValue",
56
+ "required": true,
57
+ "description": "Current address value."
58
+ },
59
+ "disabled": {
60
+ "type": "boolean",
61
+ "optional": true,
62
+ "description": "Disables all fields."
63
+ },
64
+ "className": {
65
+ "type": "string",
66
+ "optional": true,
67
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
68
+ }
69
+ },
70
+ "examples": [
71
+ "<AddressInput value={value} onChange={setValue} />"
72
+ ],
73
+ "colors": []
74
+ },
75
+ "ArrayDisplay": {
76
+ "name": "ArrayDisplay",
77
+ "type": "component",
78
+ "description": "Renders an array field's values as a collapsible list of chips. Pre-normalize the field value to a `string[]` in your field-cell layer.",
79
+ "importPath": "@cloudraker/reki",
80
+ "category": "Other",
81
+ "props": {
82
+ "values": {
83
+ "type": "string[]",
84
+ "required": true,
85
+ "description": "String values to render as chips."
86
+ },
87
+ "className": {
88
+ "type": "string",
89
+ "optional": true,
90
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
91
+ }
92
+ },
93
+ "examples": [
94
+ "<TooltipProvider>\n <div className=\"w-48\">\n <ArrayDisplay values={[\"alpha\", \"beta\", \"gamma\", \"delta\"]} max={2} />\n </div>\n </TooltipProvider>"
95
+ ],
96
+ "colors": []
97
+ },
4
98
  "Autocomplete": {
5
99
  "name": "Autocomplete",
6
100
  "type": "component",
@@ -166,6 +260,110 @@
166
260
  }
167
261
  }
168
262
  },
263
+ "Avatar": {
264
+ "name": "Avatar",
265
+ "type": "component",
266
+ "description": "Image-or-initials glyph for a user or entity. Falls back to initials on a neutral fill when no image is provided. Use for assignees, participants, and record owners.",
267
+ "importPath": "@cloudraker/reki",
268
+ "category": "Other",
269
+ "props": {
270
+ "initials": {
271
+ "type": "string",
272
+ "optional": true,
273
+ "description": "Up to ~2 characters shown when there is no image."
274
+ },
275
+ "alt": {
276
+ "type": "string",
277
+ "optional": true,
278
+ "description": "Accessible name / image alt text."
279
+ },
280
+ "size": {
281
+ "type": "enum",
282
+ "optional": true,
283
+ "description": "Glyph scale.",
284
+ "values": [
285
+ "xs",
286
+ "sm",
287
+ "base",
288
+ "lg",
289
+ "xl"
290
+ ],
291
+ "descriptions": {
292
+ "xs": "Extra small",
293
+ "sm": "Small",
294
+ "base": "Default",
295
+ "lg": "Large",
296
+ "xl": "Extra large"
297
+ },
298
+ "classes": {
299
+ "xs": "size-5",
300
+ "sm": "size-6",
301
+ "base": "size-8",
302
+ "lg": "size-10",
303
+ "xl": "size-12"
304
+ },
305
+ "default": "base"
306
+ },
307
+ "shape": {
308
+ "type": "enum",
309
+ "optional": true,
310
+ "description": "Round (default) or rounded-square.",
311
+ "values": [
312
+ "circle",
313
+ "square"
314
+ ],
315
+ "descriptions": {
316
+ "circle": "Round avatar",
317
+ "square": "Rounded square avatar"
318
+ },
319
+ "classes": {
320
+ "circle": "rounded-full",
321
+ "square": "rounded-md"
322
+ },
323
+ "default": "circle"
324
+ },
325
+ "className": {
326
+ "type": "string",
327
+ "optional": true,
328
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
329
+ }
330
+ },
331
+ "examples": [
332
+ "<div className=\"flex items-center gap-2\">\n <Avatar initials=\"XS\" size=\"xs\" />\n <Avatar initials=\"SM\" size=\"sm\" />\n <Avatar initials=\"MD\" size=\"base\" />\n <Avatar initials=\"LG\" size=\"lg\" />\n <Avatar initials=\"XL\" size=\"xl\" />\n </div>",
333
+ "<div className=\"flex items-center gap-2\">\n <Avatar initials=\"JD\" shape=\"circle\" />\n <Avatar initials=\"JD\" shape=\"square\" />\n </div>",
334
+ "<Avatar\n src=\"https://i.pravatar.cc/80?img=12\"\n alt=\"Jane Doe\"\n size=\"lg\"\n />"
335
+ ],
336
+ "colors": [
337
+ "bg-reki-fill"
338
+ ]
339
+ },
340
+ "AvatarGroup": {
341
+ "name": "AvatarGroup",
342
+ "type": "component",
343
+ "description": "Overlapping stack of avatars for assignees / participants. Shows up to `max` avatars and a `+N` counter for the remainder.",
344
+ "importPath": "@cloudraker/reki",
345
+ "category": "Other",
346
+ "props": {
347
+ "avatars": {
348
+ "type": "ReactNode[]",
349
+ "required": true,
350
+ "description": "Avatar nodes to stack (typically reki `Avatar` elements)."
351
+ },
352
+ "className": {
353
+ "type": "string",
354
+ "optional": true,
355
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
356
+ }
357
+ },
358
+ "examples": [
359
+ "<AvatarGroup\n max={4}\n avatars={members.map((initials) => (\n <Avatar key={initials} initials={initials} size=\"sm\" />\n ))}\n />"
360
+ ],
361
+ "colors": [
362
+ "bg-reki-fill",
363
+ "ring-reki-base",
364
+ "text-reki-subtle"
365
+ ]
366
+ },
169
367
  "Badge": {
170
368
  "name": "Badge",
171
369
  "type": "component",
@@ -534,10 +732,10 @@
534
732
  "lg": "Large button for primary CTAs"
535
733
  },
536
734
  "classes": {
537
- "xs": "h-5 gap-1 rounded-sm px-1.5 text-xs",
538
- "sm": "h-6.5 gap-1 rounded-md px-2 text-xs",
539
- "base": "h-9 gap-1.5 rounded-lg px-3 text-base",
540
- "lg": "h-10 gap-2 rounded-lg px-4 text-base"
735
+ "xs": "h-5 gap-1 rounded-full px-1.5 text-xs",
736
+ "sm": "h-6.5 gap-1 rounded-full px-2 text-xs",
737
+ "base": "h-9 gap-1.5 rounded-full px-3 text-base",
738
+ "lg": "h-10 gap-2 rounded-full px-4 text-base"
541
739
  },
542
740
  "default": "base"
543
741
  },
@@ -886,6 +1084,135 @@
886
1084
  ]
887
1085
  }
888
1086
  },
1087
+ "Chip": {
1088
+ "name": "Chip",
1089
+ "type": "component",
1090
+ "description": "Compact reference token for a record or entity (a relation value, a tag with an avatar, a removable selection). Presentational only — wire `onClick` / `rightComponent` to your data layer. For a navigable chip, use {@link LinkChip}.",
1091
+ "importPath": "@cloudraker/reki",
1092
+ "category": "Other",
1093
+ "props": {
1094
+ "label": {
1095
+ "type": "string",
1096
+ "required": true,
1097
+ "description": "Text label (truncated with a tooltip on overflow)."
1098
+ },
1099
+ "tooltipLabel": {
1100
+ "type": "string",
1101
+ "optional": true,
1102
+ "description": "Tooltip content shown when the label overflows. Defaults to `label`."
1103
+ },
1104
+ "variant": {
1105
+ "type": "enum",
1106
+ "optional": true,
1107
+ "description": "Visual variant.",
1108
+ "values": [
1109
+ "regular",
1110
+ "highlighted",
1111
+ "transparent",
1112
+ "static"
1113
+ ],
1114
+ "default": "regular"
1115
+ },
1116
+ "size": {
1117
+ "type": "enum",
1118
+ "optional": true,
1119
+ "description": "Size of the chip.",
1120
+ "values": [
1121
+ "small",
1122
+ "large"
1123
+ ],
1124
+ "default": "small"
1125
+ },
1126
+ "accent": {
1127
+ "type": "enum",
1128
+ "optional": true,
1129
+ "description": "Text emphasis. `\"secondary\"` renders muted, medium-weight text.",
1130
+ "values": [
1131
+ "primary",
1132
+ "secondary"
1133
+ ],
1134
+ "default": "primary"
1135
+ },
1136
+ "isBold": {
1137
+ "type": "boolean",
1138
+ "optional": true,
1139
+ "description": "Renders the label in a medium font weight."
1140
+ },
1141
+ "leftComponent": {
1142
+ "type": "ReactNode",
1143
+ "optional": true,
1144
+ "description": "Node rendered before the label (e.g. an avatar or icon)."
1145
+ },
1146
+ "rightComponent": {
1147
+ "type": "ReactNode",
1148
+ "optional": true,
1149
+ "description": "Node rendered after the label (e.g. a remove button or count)."
1150
+ },
1151
+ "disabled": {
1152
+ "type": "boolean",
1153
+ "optional": true,
1154
+ "description": "Disables the chip and dims it."
1155
+ },
1156
+ "className": {
1157
+ "type": "string",
1158
+ "optional": true,
1159
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
1160
+ }
1161
+ },
1162
+ "examples": [
1163
+ "<div className=\"flex flex-wrap items-center gap-2\">\n <Chip label=\"Regular\" variant=\"regular\" />\n <Chip label=\"Highlighted\" variant=\"highlighted\" />\n <Chip label=\"Transparent\" variant=\"transparent\" />\n <Chip label=\"Static\" variant=\"static\" />\n </div>",
1164
+ "<div className=\"flex items-center gap-2\">\n <Chip label=\"Small\" size=\"small\" />\n <Chip label=\"Large\" size=\"large\" />\n </div>",
1165
+ "<div className=\"flex flex-wrap items-center gap-2\">\n <Chip\n label=\"Acme Inc.\"\n leftComponent={<BuildingsIcon className=\"size-3.5\" />}\n />\n <Chip\n label=\"Removable\"\n rightComponent={<XIcon className=\"size-3\" />}\n onClick={() => {}}\n />\n </div>",
1166
+ "<Chip label=\"Disabled\" onClick={() => {}} disabled />",
1167
+ "<TooltipProvider>\n <div className=\"w-32\">\n <Chip label=\"A very long related record name that truncates\" />\n </div>\n </TooltipProvider>"
1168
+ ],
1169
+ "colors": [
1170
+ "bg-reki-base",
1171
+ "bg-reki-fill",
1172
+ "ring-reki-hairline",
1173
+ "text-reki-default",
1174
+ "text-reki-subtle"
1175
+ ],
1176
+ "baseStyles": "inline-flex w-fit min-w-0 max-w-full items-center gap-1 rounded-sm align-middle text-reki-default"
1177
+ },
1178
+ "CircularProgressBar": {
1179
+ "name": "CircularProgressBar",
1180
+ "type": "component",
1181
+ "description": "A determinate circular progress ring — for record completeness, quota usage, and similar single-value metrics. For a linear bar use `Meter`; for an indeterminate spinner use `Loader`.",
1182
+ "importPath": "@cloudraker/reki",
1183
+ "category": "Other",
1184
+ "props": {
1185
+ "value": {
1186
+ "type": "number",
1187
+ "required": true,
1188
+ "description": "Progress as a percentage (0–100)."
1189
+ },
1190
+ "size": {
1191
+ "type": "number",
1192
+ "optional": true,
1193
+ "description": "Diameter in pixels."
1194
+ },
1195
+ "barWidth": {
1196
+ "type": "number",
1197
+ "optional": true,
1198
+ "description": "Stroke width in pixels."
1199
+ },
1200
+ "label": {
1201
+ "type": "string",
1202
+ "optional": true,
1203
+ "description": "Accessible label."
1204
+ },
1205
+ "className": {
1206
+ "type": "string",
1207
+ "optional": true,
1208
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
1209
+ }
1210
+ },
1211
+ "examples": [
1212
+ "<div className=\"flex items-center gap-4\">\n <CircularProgressBar value={25} />\n <CircularProgressBar value={60} />\n <CircularProgressBar value={100} />\n </div>"
1213
+ ],
1214
+ "colors": []
1215
+ },
889
1216
  "ClipboardText": {
890
1217
  "name": "ClipboardText",
891
1218
  "type": "component",
@@ -2339,38 +2666,99 @@
2339
2666
  }
2340
2667
  }
2341
2668
  },
2342
- "Combobox": {
2343
- "name": "Combobox",
2669
+ "ColorSample": {
2670
+ "name": "ColorSample",
2344
2671
  "type": "component",
2345
- "description": "Combobox autocomplete input with filterable dropdown list.",
2672
+ "description": "A color swatch for color pickers and tag-color selection. Uses the same `reki-tag-*` palette as {@link Tag} so the swatch always matches the tag it represents, in both light and dark mode.",
2346
2673
  "importPath": "@cloudraker/reki",
2347
- "category": "Input",
2674
+ "category": "Other",
2348
2675
  "props": {
2349
- "size": {
2676
+ "colorName": {
2350
2677
  "type": "enum",
2351
- "optional": true,
2352
- "description": "Size of the combobox trigger. Matches Input component sizes.\n- `\"xs\"` — Extra small for compact UIs (h-5 / 20px)\n- `\"sm\"` — Small for secondary fields (h-6.5 / 26px)\n- `\"base\"` — Default size (h-9 / 36px)\n- `\"lg\"` — Large for prominent fields (h-10 / 40px)",
2678
+ "required": true,
2679
+ "description": "Named CRM tag color to display.",
2353
2680
  "values": [
2354
- "xs",
2355
- "sm",
2356
- "base",
2357
- "lg"
2358
- ],
2359
- "default": "base"
2681
+ "gray",
2682
+ "red",
2683
+ "orange",
2684
+ "yellow",
2685
+ "green",
2686
+ "turquoise",
2687
+ "sky",
2688
+ "blue",
2689
+ "purple",
2690
+ "pink",
2691
+ "transparent"
2692
+ ]
2360
2693
  },
2361
- "inputSide": {
2694
+ "variant": {
2362
2695
  "type": "enum",
2363
2696
  "optional": true,
2364
- "description": "Position of the text input relative to chips in multi-select mode.\n- `\"right\"` — Input inline to the right of chips\n- `\"top\"` — Input above chips",
2697
+ "description": "Swatch shape.\n- `\"default\"` small rounded square (default)\n- `\"circle\"` — full circle\n- `\"pipeline\"` — wider rounded bar (for pipeline/stage pickers)",
2365
2698
  "values": [
2366
- "right",
2367
- "top"
2699
+ "default",
2700
+ "circle",
2701
+ "pipeline"
2368
2702
  ],
2369
2703
  "descriptions": {
2370
- "right": "Input positioned inline to the right of chips",
2371
- "top": "Input positioned above chips"
2704
+ "default": "Rounded square (default)",
2705
+ "circle": "Circle",
2706
+ "pipeline": "Wide pipeline bar"
2372
2707
  },
2373
- "default": "right"
2708
+ "classes": {
2709
+ "default": "size-3.5 rounded-sm",
2710
+ "circle": "size-3.5 rounded-full",
2711
+ "pipeline": "h-3.5 w-6 rounded-sm"
2712
+ },
2713
+ "default": "default"
2714
+ },
2715
+ "className": {
2716
+ "type": "string",
2717
+ "optional": true,
2718
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
2719
+ }
2720
+ },
2721
+ "examples": [
2722
+ "<div className=\"flex flex-wrap items-center gap-2\">\n {TAG_COLOR_NAMES.map((color) => (\n <ColorSample key={color} colorName={color} />\n ))}\n </div>",
2723
+ "<div className=\"flex items-center gap-3\">\n <ColorSample colorName=\"blue\" variant=\"default\" />\n <ColorSample colorName=\"blue\" variant=\"circle\" />\n <ColorSample colorName=\"blue\" variant=\"pipeline\" />\n </div>",
2724
+ "<div className=\"flex w-48 flex-col gap-1\">\n {([\"green\", \"orange\", \"red\"] as const).map((color) => (\n <div key={color} className=\"flex items-center gap-2\">\n <ColorSample colorName={color} variant=\"circle\" />\n <span className=\"text-sm capitalize text-reki-default\">{color}</span>\n </div>\n ))}\n </div>"
2725
+ ],
2726
+ "colors": [
2727
+ "ring-reki-hairline"
2728
+ ]
2729
+ },
2730
+ "Combobox": {
2731
+ "name": "Combobox",
2732
+ "type": "component",
2733
+ "description": "Combobox — autocomplete input with filterable dropdown list.",
2734
+ "importPath": "@cloudraker/reki",
2735
+ "category": "Input",
2736
+ "props": {
2737
+ "size": {
2738
+ "type": "enum",
2739
+ "optional": true,
2740
+ "description": "Size of the combobox trigger. Matches Input component sizes.\n- `\"xs\"` — Extra small for compact UIs (h-5 / 20px)\n- `\"sm\"` — Small for secondary fields (h-6.5 / 26px)\n- `\"base\"` — Default size (h-9 / 36px)\n- `\"lg\"` — Large for prominent fields (h-10 / 40px)",
2741
+ "values": [
2742
+ "xs",
2743
+ "sm",
2744
+ "base",
2745
+ "lg"
2746
+ ],
2747
+ "default": "base"
2748
+ },
2749
+ "inputSide": {
2750
+ "type": "enum",
2751
+ "optional": true,
2752
+ "description": "Position of the text input relative to chips in multi-select mode.\n- `\"right\"` — Input inline to the right of chips\n- `\"top\"` — Input above chips",
2753
+ "values": [
2754
+ "right",
2755
+ "top"
2756
+ ],
2757
+ "descriptions": {
2758
+ "right": "Input positioned inline to the right of chips",
2759
+ "top": "Input positioned above chips"
2760
+ },
2761
+ "default": "right"
2374
2762
  },
2375
2763
  "items": {
2376
2764
  "type": "T[]",
@@ -2617,6 +3005,53 @@
2617
3005
  "text-reki-subtle"
2618
3006
  ]
2619
3007
  },
3008
+ "DataGrid": {
3009
+ "name": "DataGrid",
3010
+ "type": "component",
3011
+ "description": "DataGrid component",
3012
+ "importPath": "@cloudraker/reki",
3013
+ "category": "Other",
3014
+ "props": {
3015
+ "kind": {
3016
+ "type": "enum",
3017
+ "required": true,
3018
+ "values": [
3019
+ "text",
3020
+ "number"
3021
+ ]
3022
+ },
3023
+ "initialValue": {
3024
+ "type": "unknown",
3025
+ "required": true
3026
+ },
3027
+ "initialKey": {
3028
+ "type": "string",
3029
+ "optional": true
3030
+ },
3031
+ "align": {
3032
+ "type": "enum",
3033
+ "required": true,
3034
+ "values": [
3035
+ "left",
3036
+ "right",
3037
+ "center"
3038
+ ]
3039
+ }
3040
+ },
3041
+ "examples": [
3042
+ "<TooltipProvider>\n <div className=\"w-[720px]\">\n <DataGrid\n data={rows}\n columns={columns}\n getRowId={(r) => r.id}\n height={360}\n enableRowSelection\n selectedRowIds={selected}\n onSelectedRowIdsChange={setSelected}\n onCommitCell={({ rowId, columnId, value }) =>\n setRows((rs) =>\n rs.map((r) => (r.id === rowId ? { ...r, [columnId]: value } : r)),\n )\n }\n />\n <p className=\"mt-2 text-xs text-reki-subtle\">\n 500 rows (virtualized) · {selected.length} selected · double-click\n Amount/Owner to edit\n </p>\n </div>\n </TooltipProvider>"
3043
+ ],
3044
+ "colors": [
3045
+ "bg-reki-base",
3046
+ "bg-reki-canvas",
3047
+ "bg-reki-fill",
3048
+ "border-reki-hairline",
3049
+ "outline-reki-brand",
3050
+ "outline-reki-hairline",
3051
+ "text-reki-default",
3052
+ "text-reki-subtle"
3053
+ ]
3054
+ },
2620
3055
  "DatePicker": {
2621
3056
  "name": "DatePicker",
2622
3057
  "type": "component",
@@ -2930,6 +3365,44 @@
2930
3365
  }
2931
3366
  }
2932
3367
  },
3368
+ "DoubleTextInput": {
3369
+ "name": "DoubleTextInput",
3370
+ "type": "component",
3371
+ "description": "Two side-by-side text inputs that edit a single composite value — full names (first / last) and other paired fields.",
3372
+ "importPath": "@cloudraker/reki",
3373
+ "category": "Other",
3374
+ "props": {
3375
+ "value": {
3376
+ "type": "DoubleTextValue",
3377
+ "required": true,
3378
+ "description": "Current paired value."
3379
+ },
3380
+ "firstPlaceholder": {
3381
+ "type": "string",
3382
+ "optional": true,
3383
+ "description": "Placeholder for the first input."
3384
+ },
3385
+ "secondPlaceholder": {
3386
+ "type": "string",
3387
+ "optional": true,
3388
+ "description": "Placeholder for the second input."
3389
+ },
3390
+ "disabled": {
3391
+ "type": "boolean",
3392
+ "optional": true,
3393
+ "description": "Disables both inputs."
3394
+ },
3395
+ "className": {
3396
+ "type": "string",
3397
+ "optional": true,
3398
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
3399
+ }
3400
+ },
3401
+ "examples": [
3402
+ "<div className=\"w-72\">\n <DoubleTextInput\n value={value}\n onChange={setValue}\n firstPlaceholder=\"First name\"\n secondPlaceholder=\"Last name\"\n />\n </div>"
3403
+ ],
3404
+ "colors": []
3405
+ },
2933
3406
  "DropdownMenu": {
2934
3407
  "name": "DropdownMenu",
2935
3408
  "type": "component",
@@ -3211,6 +3684,29 @@
3211
3684
  }
3212
3685
  }
3213
3686
  },
3687
+ "EmailsDisplay": {
3688
+ "name": "EmailsDisplay",
3689
+ "type": "component",
3690
+ "description": "Renders an `emails` field as a collapsible list of `mailto:` link chips. Pre-normalize the field value to a `string[]` in your field-cell layer.",
3691
+ "importPath": "@cloudraker/reki",
3692
+ "category": "Other",
3693
+ "props": {
3694
+ "emails": {
3695
+ "type": "string[]",
3696
+ "required": true,
3697
+ "description": "Email addresses, primary first."
3698
+ },
3699
+ "className": {
3700
+ "type": "string",
3701
+ "optional": true,
3702
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
3703
+ }
3704
+ },
3705
+ "examples": [
3706
+ "<TooltipProvider>\n <div className=\"w-56\">\n <EmailsDisplay\n emails={[\"jane@acme.com\", \"j.doe@personal.com\", \"jane@old.com\"]}\n max={1}\n />\n </div>\n </TooltipProvider>"
3707
+ ],
3708
+ "colors": []
3709
+ },
3214
3710
  "Empty": {
3215
3711
  "name": "Empty",
3216
3712
  "type": "component",
@@ -3290,6 +3786,32 @@
3290
3786
  "text-reki-success"
3291
3787
  ]
3292
3788
  },
3789
+ "ExpandableList": {
3790
+ "name": "ExpandableList",
3791
+ "type": "component",
3792
+ "description": "Renders the first `max` items inline and collapses the remainder into a `+N` chip whose count reveals the hidden items on hover. Use for dense multi-value cells (tags, emails, links) where space is constrained.",
3793
+ "importPath": "@cloudraker/reki",
3794
+ "category": "Other",
3795
+ "props": {
3796
+ "children": {
3797
+ "type": "ReactNode",
3798
+ "optional": true,
3799
+ "description": "Items to render. The first `max` are shown inline; the rest collapse into a `+N` chip."
3800
+ },
3801
+ "className": {
3802
+ "type": "string",
3803
+ "optional": true,
3804
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
3805
+ }
3806
+ },
3807
+ "examples": [
3808
+ "<TooltipProvider>\n <div className=\"w-48\">\n <ExpandableList max={2}>\n <Tag color=\"blue\" text=\"Engineering\" />\n <Tag color=\"green\" text=\"Sales\" />\n <Tag color=\"orange\" text=\"Support\" />\n <Tag color=\"purple\" text=\"Finance\" />\n </ExpandableList>\n </div>\n </TooltipProvider>"
3809
+ ],
3810
+ "colors": [
3811
+ "bg-reki-fill",
3812
+ "text-reki-subtle"
3813
+ ]
3814
+ },
3293
3815
  "Field": {
3294
3816
  "name": "Field",
3295
3817
  "type": "component",
@@ -3778,6 +4300,31 @@
3778
4300
  }
3779
4301
  }
3780
4302
  },
4303
+ "JsonDisplay": {
4304
+ "name": "JsonDisplay",
4305
+ "type": "component",
4306
+ "description": "Single-line, truncated display for a `json` / `raw-json` field value. Shows the full value in a tooltip on overflow via {@link OverflowingText}. Wrap in a `TooltipProvider` for the tooltip.",
4307
+ "importPath": "@cloudraker/reki",
4308
+ "category": "Other",
4309
+ "props": {
4310
+ "value": {
4311
+ "type": "unknown",
4312
+ "required": true,
4313
+ "description": "Value to render. Objects/arrays are stringified; strings are shown as-is."
4314
+ },
4315
+ "className": {
4316
+ "type": "string",
4317
+ "optional": true,
4318
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
4319
+ }
4320
+ },
4321
+ "examples": [
4322
+ "<TooltipProvider>\n <div className=\"w-56 rounded-md border border-reki-fill p-2\">\n <JsonDisplay value={{ status: \"ok\", count: 3, nested: { a: 1 } }} />\n </div>\n </TooltipProvider>"
4323
+ ],
4324
+ "colors": [
4325
+ "text-reki-subtle"
4326
+ ]
4327
+ },
3781
4328
  "Label": {
3782
4329
  "name": "Label",
3783
4330
  "type": "component",
@@ -4029,6 +4576,105 @@
4029
4576
  }
4030
4577
  }
4031
4578
  },
4579
+ "LinkChip": {
4580
+ "name": "LinkChip",
4581
+ "type": "component",
4582
+ "description": "A {@link Chip} that navigates to a record. Renders through reki's `LinkProvider`, so it honours the host app's router (TanStack Router, React Router, Next.js) and supports middle-click / cmd-click to open in a new tab. Use for clickable relation values in tables, boards, and detail panels.",
4583
+ "importPath": "@cloudraker/reki",
4584
+ "category": "Other",
4585
+ "props": {
4586
+ "label": {
4587
+ "type": "string",
4588
+ "required": true,
4589
+ "description": "Text label (truncated with a tooltip on overflow)."
4590
+ },
4591
+ "href": {
4592
+ "type": "string",
4593
+ "required": true,
4594
+ "description": "Destination href. Resolved through the configured `LinkProvider`."
4595
+ },
4596
+ "tooltipLabel": {
4597
+ "type": "string",
4598
+ "optional": true,
4599
+ "description": "Tooltip content shown when the label overflows. Defaults to `label`."
4600
+ },
4601
+ "size": {
4602
+ "type": "enum",
4603
+ "optional": true,
4604
+ "description": "Size of the chip.",
4605
+ "values": [
4606
+ "small",
4607
+ "large"
4608
+ ]
4609
+ },
4610
+ "accent": {
4611
+ "type": "enum",
4612
+ "optional": true,
4613
+ "description": "Text emphasis.",
4614
+ "values": [
4615
+ "primary",
4616
+ "secondary"
4617
+ ]
4618
+ },
4619
+ "isBold": {
4620
+ "type": "boolean",
4621
+ "optional": true,
4622
+ "description": "Renders the label in a medium font weight."
4623
+ },
4624
+ "leftComponent": {
4625
+ "type": "ReactNode",
4626
+ "optional": true,
4627
+ "description": "Node rendered before the label (e.g. an avatar or icon)."
4628
+ },
4629
+ "rightComponent": {
4630
+ "type": "ReactNode",
4631
+ "optional": true,
4632
+ "description": "Node rendered after the label."
4633
+ },
4634
+ "target": {
4635
+ "type": "string",
4636
+ "optional": true,
4637
+ "description": "Opens the link in a new tab."
4638
+ },
4639
+ "className": {
4640
+ "type": "string",
4641
+ "optional": true,
4642
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
4643
+ }
4644
+ },
4645
+ "examples": [
4646
+ "<LinkChip label=\"Acme Inc.\" href=\"/companies/acme\" />",
4647
+ "<LinkChip\n label=\"Acme Inc.\"\n href=\"/companies/acme\"\n leftComponent={<BuildingsIcon className=\"size-3.5\" />}\n />",
4648
+ "<div className=\"flex items-center gap-2\">\n <LinkChip label=\"Small\" href=\"#\" size=\"small\" />\n <LinkChip label=\"Large\" href=\"#\" size=\"large\" />\n </div>"
4649
+ ],
4650
+ "colors": [
4651
+ "bg-reki-fill",
4652
+ "text-reki-subtle"
4653
+ ]
4654
+ },
4655
+ "LinksDisplay": {
4656
+ "name": "LinksDisplay",
4657
+ "type": "component",
4658
+ "description": "Renders a `links` field as a collapsible list of external link chips (open in a new tab). Resolve absolute URLs and labels in your field-cell layer.",
4659
+ "importPath": "@cloudraker/reki",
4660
+ "category": "Other",
4661
+ "props": {
4662
+ "links": {
4663
+ "type": "LinkValue[]",
4664
+ "required": true,
4665
+ "description": "Links to render, primary first."
4666
+ },
4667
+ "className": {
4668
+ "type": "string",
4669
+ "optional": true,
4670
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
4671
+ }
4672
+ },
4673
+ "examples": [
4674
+ "<TooltipProvider>\n <div className=\"w-56\">\n <LinksDisplay\n links={[\n { url: \"https://acme.com\", label: \"acme.com\" },\n { url: \"https://docs.acme.com\", label: \"docs.acme.com\" },\n ]}\n max={1}\n />\n </div>\n </TooltipProvider>"
4675
+ ],
4676
+ "colors": []
4677
+ },
4032
4678
  "Loader": {
4033
4679
  "name": "Loader",
4034
4680
  "type": "component",
@@ -4121,6 +4767,72 @@
4121
4767
  }
4122
4768
  }
4123
4769
  },
4770
+ "MenuItem": {
4771
+ "name": "MenuItem",
4772
+ "type": "component",
4773
+ "description": "A single dropdown / list row: leading icon or component, label, and an optional trailing check or element. The building block for option pickers, filter builders, and action menus. See also {@link MenuItemSelect}, {@link MenuItemMultiSelect}, {@link MenuItemSelectColor}, {@link MenuItemSelectTag}, and {@link MenuItemAvatar}.",
4774
+ "importPath": "@cloudraker/reki",
4775
+ "category": "Other",
4776
+ "props": {
4777
+ "text": {
4778
+ "type": "string",
4779
+ "required": true,
4780
+ "description": "Row label."
4781
+ },
4782
+ "LeftIcon": {
4783
+ "type": "IconType",
4784
+ "optional": true,
4785
+ "description": "Optional leading icon."
4786
+ },
4787
+ "leftComponent": {
4788
+ "type": "ReactNode",
4789
+ "optional": true,
4790
+ "description": "Optional leading element (avatar, color sample, …) shown before the text."
4791
+ },
4792
+ "rightComponent": {
4793
+ "type": "ReactNode",
4794
+ "optional": true,
4795
+ "description": "Optional trailing element shown after the text."
4796
+ },
4797
+ "selected": {
4798
+ "type": "boolean",
4799
+ "optional": true,
4800
+ "description": "Shows a trailing check mark when true."
4801
+ },
4802
+ "focused": {
4803
+ "type": "boolean",
4804
+ "optional": true,
4805
+ "description": "Keyboard-focused / active styling."
4806
+ },
4807
+ "disabled": {
4808
+ "type": "boolean",
4809
+ "optional": true,
4810
+ "description": "Disables the row."
4811
+ },
4812
+ "className": {
4813
+ "type": "string",
4814
+ "optional": true,
4815
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
4816
+ }
4817
+ },
4818
+ "examples": [
4819
+ "<LayerCard className=\"w-56 p-1\">\n <MenuItem text=\"Rename\" LeftIcon={PencilIcon} />\n <MenuItem text=\"Delete\" LeftIcon={TrashIcon} />\n </LayerCard>",
4820
+ "<LayerCard className=\"w-56 p-1\">\n {[\"low\", \"medium\", \"high\"].map((option) => (\n <MenuItemSelect\n key={option}\n text={option}\n selected={value === option}\n onClick={() => setValue(option)}\n />\n ))}\n </LayerCard>",
4821
+ "<LayerCard className=\"w-56 p-1\">\n {[\"sales\", \"marketing\", \"support\"].map((option) => (\n <MenuItemMultiSelect\n key={option}\n text={option}\n selected={selected.includes(option)}\n onSelectChange={() => toggle(option)}\n />\n ))}\n </LayerCard>",
4822
+ "<LayerCard className=\"w-56 p-1\">\n <MenuItemSelectColor text=\"Green\" color=\"green\" selected />\n <MenuItemSelectColor text=\"Blue\" color=\"blue\" />\n <MenuItemSelectColor text=\"Purple\" color=\"purple\" />\n </LayerCard>",
4823
+ "<LayerCard className=\"w-56 p-1\">\n <MenuItemSelectTag text=\"Active\" color=\"green\" selected />\n <MenuItemSelectTag text=\"Pending\" color=\"orange\" />\n <MenuItemSelectTag text=\"Closed\" color=\"gray\" />\n </LayerCard>",
4824
+ "<LayerCard className=\"w-56 p-1\">\n <MenuItemAvatar text=\"Jane Doe\" avatarInitials=\"JD\" selected />\n <MenuItemAvatar text=\"John Smith\" avatarInitials=\"JS\" />\n </LayerCard>"
4825
+ ],
4826
+ "colors": [
4827
+ "bg-reki-brand",
4828
+ "bg-reki-fill",
4829
+ "ring-reki-brand",
4830
+ "ring-reki-hairline",
4831
+ "text-reki-default",
4832
+ "text-reki-inverse",
4833
+ "text-reki-subtle"
4834
+ ]
4835
+ },
4124
4836
  "Meter": {
4125
4837
  "name": "Meter",
4126
4838
  "type": "component",
@@ -4161,24 +4873,110 @@
4161
4873
  "type": "number",
4162
4874
  "description": "Maximum value of the meter (default: 100)"
4163
4875
  },
4164
- "min": {
4165
- "type": "number",
4166
- "description": "Minimum value of the meter (default: 0)"
4876
+ "min": {
4877
+ "type": "number",
4878
+ "description": "Minimum value of the meter (default: 0)"
4879
+ }
4880
+ },
4881
+ "examples": [
4882
+ "<Meter label=\"Storage used\" value={65} />",
4883
+ "<Meter label=\"API requests\" value={75} customValue=\"750 / 1,000\" />",
4884
+ "<Meter label=\"Progress\" value={40} showValue={false} />",
4885
+ "<Meter label=\"Quota reached\" value={100} />",
4886
+ "<Meter label=\"Memory usage\" value={15} />",
4887
+ "<Meter\n label=\"Upload progress\"\n value={80}\n indicatorClassName=\"from-reki-success via-reki-success to-reki-success\"\n />"
4888
+ ],
4889
+ "colors": [
4890
+ "bg-reki-fill",
4891
+ "text-reki-default",
4892
+ "text-reki-subtle"
4893
+ ]
4894
+ },
4895
+ "NotificationCounter": {
4896
+ "name": "NotificationCounter",
4897
+ "type": "component",
4898
+ "description": "A small numeric badge for unread/pending counts on icons and nav items.",
4899
+ "importPath": "@cloudraker/reki",
4900
+ "category": "Other",
4901
+ "props": {
4902
+ "count": {
4903
+ "type": "number",
4904
+ "required": true,
4905
+ "description": "Number to display. Values above `max` render as `{max}+`."
4906
+ },
4907
+ "variant": {
4908
+ "type": "enum",
4909
+ "optional": true,
4910
+ "description": "Visual variant.\n- `\"primary\"` — brand background (default)\n- `\"secondary\"` — neutral fill",
4911
+ "values": [
4912
+ "primary",
4913
+ "secondary"
4914
+ ],
4915
+ "descriptions": {
4916
+ "primary": "Brand background (default)",
4917
+ "secondary": "Neutral fill"
4918
+ },
4919
+ "classes": {
4920
+ "primary": "bg-reki-brand text-reki-inverse",
4921
+ "secondary": "bg-reki-fill text-reki-default"
4922
+ },
4923
+ "default": "primary"
4924
+ },
4925
+ "className": {
4926
+ "type": "string",
4927
+ "optional": true,
4928
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
4929
+ }
4930
+ },
4931
+ "examples": [
4932
+ "<div className=\"flex items-center gap-3\">\n <NotificationCounter count={3} />\n <NotificationCounter count={12} variant=\"secondary\" />\n <NotificationCounter count={150} max={99} />\n </div>"
4933
+ ],
4934
+ "colors": [
4935
+ "bg-reki-brand",
4936
+ "bg-reki-fill",
4937
+ "text-reki-default",
4938
+ "text-reki-inverse"
4939
+ ]
4940
+ },
4941
+ "OverflowingText": {
4942
+ "name": "OverflowingText",
4943
+ "type": "component",
4944
+ "description": "Truncates text to its container and reveals the full value in a tooltip **only when it actually overflows**. Measures with a `ResizeObserver`, so it stays correct as the container resizes. Ideal for dense table/board cells and chips where labels are unpredictable in length.",
4945
+ "importPath": "@cloudraker/reki",
4946
+ "category": "Other",
4947
+ "props": {
4948
+ "text": {
4949
+ "type": "string",
4950
+ "required": true,
4951
+ "description": "Text to render, truncated when it overflows its container."
4952
+ },
4953
+ "tooltipContent": {
4954
+ "type": "ReactNode",
4955
+ "optional": true,
4956
+ "description": "Tooltip content shown when the text overflows. Defaults to `text`. Provide a custom node to show richer content than the raw string."
4957
+ },
4958
+ "lines": {
4959
+ "type": "number",
4960
+ "optional": true,
4961
+ "description": "Maximum number of lines before clamping. `1` (default) truncates to a single line with an ellipsis; higher values clamp to that many lines."
4962
+ },
4963
+ "alwaysShowTooltip": {
4964
+ "type": "boolean",
4965
+ "optional": true,
4966
+ "description": "Always show the tooltip on hover, even when the text is not overflowing."
4967
+ },
4968
+ "className": {
4969
+ "type": "string",
4970
+ "optional": true,
4971
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
4167
4972
  }
4168
4973
  },
4169
4974
  "examples": [
4170
- "<Meter label=\"Storage used\" value={65} />",
4171
- "<Meter label=\"API requests\" value={75} customValue=\"750 / 1,000\" />",
4172
- "<Meter label=\"Progress\" value={40} showValue={false} />",
4173
- "<Meter label=\"Quota reached\" value={100} />",
4174
- "<Meter label=\"Memory usage\" value={15} />",
4175
- "<Meter\n label=\"Upload progress\"\n value={80}\n indicatorClassName=\"from-reki-success via-reki-success to-reki-success\"\n />"
4975
+ "<TooltipProvider>\n <div className=\"w-40 rounded-md border border-reki-fill p-2\">\n <OverflowingText text=\"This label is far too long to fit in its container — hover to see the full value in a tooltip.\" />\n </div>\n </TooltipProvider>",
4976
+ "<TooltipProvider>\n <div className=\"w-40 rounded-md border border-reki-fill p-2\">\n <OverflowingText text=\"Short value\" />\n </div>\n </TooltipProvider>",
4977
+ "<TooltipProvider>\n <div className=\"w-40 rounded-md border border-reki-fill p-2\">\n <OverflowingText\n lines={2}\n text=\"A longer description that wraps onto two lines before it clamps with an ellipsis and reveals the rest on hover.\"\n />\n </div>\n </TooltipProvider>"
4176
4978
  ],
4177
- "colors": [
4178
- "bg-reki-fill",
4179
- "text-reki-default",
4180
- "text-reki-subtle"
4181
- ]
4979
+ "colors": []
4182
4980
  },
4183
4981
  "Pagination": {
4184
4982
  "name": "Pagination",
@@ -4352,6 +5150,60 @@
4352
5150
  }
4353
5151
  }
4354
5152
  },
5153
+ "PhonesDisplay": {
5154
+ "name": "PhonesDisplay",
5155
+ "type": "component",
5156
+ "description": "Renders a `phones` field as a collapsible list of `tel:` link chips. Format the numbers in your field-cell layer (e.g. via `libphonenumber-js`) and pass display strings.",
5157
+ "importPath": "@cloudraker/reki",
5158
+ "category": "Other",
5159
+ "props": {
5160
+ "phones": {
5161
+ "type": "string[]",
5162
+ "required": true,
5163
+ "description": "Pre-formatted phone numbers, primary first."
5164
+ },
5165
+ "className": {
5166
+ "type": "string",
5167
+ "optional": true,
5168
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
5169
+ }
5170
+ },
5171
+ "examples": [
5172
+ "<TooltipProvider>\n <div className=\"w-56\">\n <PhonesDisplay\n phones={[\"+1 415 555 0100\", \"+44 20 7946 0000\"]}\n max={1}\n />\n </div>\n </TooltipProvider>"
5173
+ ],
5174
+ "colors": []
5175
+ },
5176
+ "Pill": {
5177
+ "name": "Pill",
5178
+ "type": "component",
5179
+ "description": "A tiny static label for inline annotations (counts, flags, hints). Smaller and quieter than {@link Tag} or {@link Badge}; not interactive.",
5180
+ "importPath": "@cloudraker/reki",
5181
+ "category": "Other",
5182
+ "props": {
5183
+ "label": {
5184
+ "type": "string",
5185
+ "required": true,
5186
+ "description": "Text label."
5187
+ },
5188
+ "icon": {
5189
+ "type": "React.ComponentType<React.SVGProps<SVGSVGElement>>",
5190
+ "optional": true,
5191
+ "description": "Optional leading icon (phosphor or any SVG component)."
5192
+ },
5193
+ "className": {
5194
+ "type": "string",
5195
+ "optional": true,
5196
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
5197
+ }
5198
+ },
5199
+ "examples": [
5200
+ "<div className=\"flex items-center gap-2\">\n <Pill label=\"3 records\" />\n <Pill label=\"Beta\" icon={SparkleIcon} />\n </div>"
5201
+ ],
5202
+ "colors": [
5203
+ "bg-reki-fill",
5204
+ "text-reki-subtle"
5205
+ ]
5206
+ },
4355
5207
  "Popover": {
4356
5208
  "name": "Popover",
4357
5209
  "type": "component",
@@ -4560,6 +5412,65 @@
4560
5412
  }
4561
5413
  }
4562
5414
  },
5415
+ "Rating": {
5416
+ "name": "Rating",
5417
+ "type": "component",
5418
+ "description": "Star rating for the `rating` field type. Read-only by default for cell display; pass `onChange` for an editable control (clicking the current value clears it).",
5419
+ "importPath": "@cloudraker/reki",
5420
+ "category": "Other",
5421
+ "props": {
5422
+ "value": {
5423
+ "type": "number | null",
5424
+ "required": true,
5425
+ "description": "Current rating (1..max), or `null` for unrated."
5426
+ },
5427
+ "readonly": {
5428
+ "type": "boolean",
5429
+ "optional": true,
5430
+ "description": "Renders as read-only (no hover/click)."
5431
+ },
5432
+ "className": {
5433
+ "type": "string",
5434
+ "optional": true,
5435
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
5436
+ }
5437
+ },
5438
+ "examples": [
5439
+ "<div className=\"flex flex-col gap-1\">\n <Rating value={1} readonly />\n <Rating value={3} readonly />\n <Rating value={5} readonly />\n </div>",
5440
+ "<Rating value={value} onChange={setValue} />"
5441
+ ],
5442
+ "colors": [
5443
+ "text-reki-default",
5444
+ "text-reki-inactive"
5445
+ ]
5446
+ },
5447
+ "RecordBoard": {
5448
+ "name": "RecordBoard",
5449
+ "type": "component",
5450
+ "description": "RecordBoard component",
5451
+ "importPath": "@cloudraker/reki",
5452
+ "category": "Other",
5453
+ "props": {
5454
+ "className": {
5455
+ "type": "string",
5456
+ "description": "Additional CSS classes"
5457
+ },
5458
+ "children": {
5459
+ "type": "ReactNode",
5460
+ "description": "Child elements"
5461
+ }
5462
+ },
5463
+ "examples": [
5464
+ "<div className=\"h-[420px] w-[760px]\">\n <RecordBoard\n columns={STAGES}\n records={opps}\n getRecordId={(o) => o.id}\n getColumnId={(o) => o.stage}\n onMove={({ recordId, toColumnId }) =>\n setOpps((rs) =>\n rs.map((o) => (o.id === recordId ? { ...o, stage: toColumnId } : o)),\n )\n }\n renderCard={(o) => (\n <div className=\"flex flex-col gap-1.5\">\n <span className=\"text-sm font-medium text-reki-default\">{o.name}</span>\n <div className=\"flex items-center justify-between\">\n <Tag color=\"gray\" text={`$${o.amount.toLocaleString()}`} />\n <Avatar initials={o.owner} size=\"xs\" />\n </div>\n </div>\n )}\n />\n </div>"
5465
+ ],
5466
+ "colors": [
5467
+ "bg-reki-base",
5468
+ "bg-reki-recessed",
5469
+ "ring-reki-hairline",
5470
+ "text-reki-default",
5471
+ "text-reki-subtle"
5472
+ ]
5473
+ },
4563
5474
  "Select": {
4564
5475
  "name": "Select",
4565
5476
  "type": "component",
@@ -5393,6 +6304,55 @@
5393
6304
  }
5394
6305
  }
5395
6306
  },
6307
+ "Status": {
6308
+ "name": "Status",
6309
+ "type": "component",
6310
+ "description": "A compact colored status indicator for record states (pipeline stages, task status, health). Uses the `reki-tag-*` palette so it stays consistent with {@link Tag} and adapts to light/dark automatically.",
6311
+ "importPath": "@cloudraker/reki",
6312
+ "category": "Other",
6313
+ "props": {
6314
+ "text": {
6315
+ "type": "string",
6316
+ "required": true,
6317
+ "description": "Status label text."
6318
+ },
6319
+ "isLoaderVisible": {
6320
+ "type": "boolean",
6321
+ "optional": true,
6322
+ "description": "Shows an inline loader after the text (e.g. while a transition runs)."
6323
+ },
6324
+ "weight": {
6325
+ "type": "enum",
6326
+ "optional": true,
6327
+ "description": "Font weight of the label.",
6328
+ "values": [
6329
+ "regular",
6330
+ "medium"
6331
+ ],
6332
+ "descriptions": {
6333
+ "regular": "Regular weight",
6334
+ "medium": "Medium weight"
6335
+ },
6336
+ "classes": {
6337
+ "medium": "font-medium"
6338
+ },
6339
+ "default": "regular"
6340
+ },
6341
+ "className": {
6342
+ "type": "string",
6343
+ "optional": true,
6344
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
6345
+ }
6346
+ },
6347
+ "examples": [
6348
+ "<div className=\"flex flex-wrap items-center gap-2\">\n <Status color=\"green\" text=\"Active\" />\n <Status color=\"gray\" text=\"Inactive\" />\n <Status color=\"red\" text=\"Blocked\" />\n <Status color=\"blue\" text=\"In progress\" />\n <Status color=\"purple\" text=\"Review\" />\n </div>",
6349
+ "<Status color=\"orange\" text=\"Syncing\" isLoaderVisible />",
6350
+ "<Status color=\"green\" text=\"Active\" weight=\"medium\" />"
6351
+ ],
6352
+ "colors": [
6353
+ "text-reki-subtle"
6354
+ ]
6355
+ },
5396
6356
  "Surface": {
5397
6357
  "name": "Surface",
5398
6358
  "type": "component",
@@ -5913,17 +6873,15 @@
5913
6873
  "<div className=\"space-y-4\">\n <Tabs\n tabs={[\n { value: \"tab1\", label: \"Tab 1\" },\n { value: \"tab2\", label: \"Tab 2\" },\n { value: \"tab3\", label: \"Tab 3\" },\n ]}\n value={activeTab}\n onValueChange={setActiveTab}\n />\n <p className=\"text-sm text-reki-subtle\">\n Active tab: <code className=\"text-sm\">{activeTab}</code>\n </p>\n </div>",
5914
6874
  "<div className=\"w-full max-w-md\">\n <Tabs\n tabs={[\n { value: \"overview\", label: \"Overview\" },\n { value: \"analytics\", label: \"Analytics\" },\n { value: \"reports\", label: \"Reports\" },\n { value: \"notifications\", label: \"Notifications\" },\n { value: \"settings\", label: \"Settings\" },\n { value: \"billing\", label: \"Billing\" },\n { value: \"security\", label: \"Security\" },\n { value: \"integrations\", label: \"Integrations\" },\n ]}\n selectedValue=\"overview\"\n />\n </div>",
5915
6875
  "<div className=\"flex flex-col gap-6\">\n <div>\n <p className=\"mb-2 text-sm text-reki-subtle\">Segmented sm</p>\n <Tabs\n variant=\"segmented\"\n size=\"sm\"\n tabs={[\n { value: \"tab1\", label: \"Tab 1\" },\n { value: \"tab2\", label: \"Tab 2\" },\n { value: \"tab3\", label: \"Tab 3\" },\n ]}\n selectedValue=\"tab1\"\n />\n </div>\n <div>\n <p className=\"mb-2 text-sm text-reki-subtle\">Underline sm</p>\n <Tabs\n variant=\"underline\"\n size=\"sm\"\n tabs={[\n { value: \"tab1\", label: \"Tab 1\" },\n { value: \"tab2\", label: \"Tab 2\" },\n { value: \"tab3\", label: \"Tab 3\" },\n ]}\n selectedValue=\"tab1\"\n />\n </div>\n </div>",
5916
- "<Tabs\n tabs={[\n {\n value: \"tab1\",\n label: \"Regular Tab\",\n },\n {\n value: \"tab2\",\n label: \"Link Tab\",\n render: (props) => <a {...props} href=\"#tab2\" />,\n },\n {\n value: \"tab3\",\n label: \"Cloudflare\",\n render: (props) => (\n <a {...props} href=\"https://cloudflare.com\" target=\"_blank\" />\n ),\n },\n ]}\n selectedValue=\"tab1\"\n />"
6876
+ "<Tabs\n tabs={[\n {\n value: \"tab1\",\n label: \"Regular Tab\",\n },\n {\n value: \"tab2\",\n label: \"Link Tab\",\n // Anchor content is supplied by Tabs via the spread props at runtime.\n // oxlint-disable-next-line anchor-has-content\n render: (props) => <a {...props} href=\"#tab2\" />,\n },\n {\n value: \"tab3\",\n label: \"Cloudflare\",\n render: (props) => (\n // oxlint-disable-next-line anchor-has-content\n <a {...props} href=\"https://cloudflare.com\" target=\"_blank\" />\n ),\n },\n ]}\n selectedValue=\"tab1\"\n />"
5917
6877
  ],
5918
6878
  "colors": [
5919
6879
  "bg-reki-base",
5920
6880
  "bg-reki-brand",
5921
- "bg-reki-recessed",
5922
6881
  "bg-reki-tint",
5923
6882
  "border-reki-hairline",
5924
6883
  "ring-reki-brand",
5925
6884
  "ring-reki-focus",
5926
- "ring-reki-hairline",
5927
6885
  "ring-reki-line",
5928
6886
  "text-reki-default",
5929
6887
  "text-reki-subtle"
@@ -5952,6 +6910,104 @@
5952
6910
  }
5953
6911
  }
5954
6912
  },
6913
+ "Tag": {
6914
+ "name": "Tag",
6915
+ "type": "component",
6916
+ "description": "Colored label for enum / select / multi-select values and entity categories. Built on the `reki-tag-*` token palette so colors adapt to light/dark automatically, and on {@link OverflowingText} so long labels truncate with a tooltip.",
6917
+ "importPath": "@cloudraker/reki",
6918
+ "category": "Other",
6919
+ "props": {
6920
+ "text": {
6921
+ "type": "string",
6922
+ "required": true,
6923
+ "description": "Text label rendered inside the tag (truncated with a tooltip on overflow)."
6924
+ },
6925
+ "icon": {
6926
+ "type": "React.ComponentType<React.SVGProps<SVGSVGElement>>",
6927
+ "optional": true,
6928
+ "description": "Optional leading icon (phosphor or any SVG component)."
6929
+ },
6930
+ "variant": {
6931
+ "type": "enum",
6932
+ "optional": true,
6933
+ "description": "Visual style.\n- `\"solid\"` — subtle colored background (default)\n- `\"outline\"` — transparent background with a colored ring\n- `\"border\"` — subtle background with a matching colored ring",
6934
+ "values": [
6935
+ "solid",
6936
+ "outline",
6937
+ "border"
6938
+ ],
6939
+ "descriptions": {
6940
+ "solid": "Subtle colored background (default)",
6941
+ "outline": "Transparent background with a colored ring",
6942
+ "border": "Subtle background with a matching ring"
6943
+ },
6944
+ "classes": {
6945
+ "outline": "ring ring-inset ring-current/30",
6946
+ "border": "ring ring-inset ring-current/30"
6947
+ },
6948
+ "default": "solid"
6949
+ },
6950
+ "weight": {
6951
+ "type": "enum",
6952
+ "optional": true,
6953
+ "description": "Font weight of the label.\n- `\"regular\"` (default)\n- `\"medium\"`",
6954
+ "values": [
6955
+ "regular",
6956
+ "medium"
6957
+ ],
6958
+ "descriptions": {
6959
+ "regular": "Regular weight",
6960
+ "medium": "Medium weight"
6961
+ },
6962
+ "classes": {
6963
+ "medium": "font-medium"
6964
+ },
6965
+ "default": "regular"
6966
+ },
6967
+ "preventShrink": {
6968
+ "type": "boolean",
6969
+ "optional": true,
6970
+ "description": "Prevents the tag from shrinking inside flex containers."
6971
+ },
6972
+ "className": {
6973
+ "type": "string",
6974
+ "optional": true,
6975
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
6976
+ }
6977
+ },
6978
+ "examples": [
6979
+ "<div className=\"flex flex-wrap items-center gap-2\">\n {TAG_COLOR_NAMES.map((color) => (\n <Tag key={color} color={color} text={color} />\n ))}\n </div>",
6980
+ "<div className=\"flex flex-wrap items-center gap-2\">\n <Tag color=\"blue\" text=\"Solid\" variant=\"solid\" />\n <Tag color=\"blue\" text=\"Outline\" variant=\"outline\" />\n <Tag color=\"blue\" text=\"Border\" variant=\"border\" />\n </div>",
6981
+ "<div className=\"flex flex-wrap items-center gap-2\">\n <Tag color=\"green\" text=\"Active\" icon={CircleIcon} />\n <Tag color=\"purple\" text=\"Assigned\" icon={UserIcon} />\n </div>",
6982
+ "<Tag color=\"transparent\" text=\"No color\" />",
6983
+ "<div className=\"w-32\">\n <Tag color=\"orange\" text=\"A very long tag label that will truncate\" />\n </div>",
6984
+ "<div className=\"flex flex-wrap items-center gap-2\">\n {labels.map((label) => (\n <Tag key={label} color={stringToTagColor(label)} text={label} />\n ))}\n </div>"
6985
+ ],
6986
+ "colors": [
6987
+ "bg-reki-tag-blue",
6988
+ "bg-reki-tag-gray",
6989
+ "bg-reki-tag-green",
6990
+ "bg-reki-tag-orange",
6991
+ "bg-reki-tag-pink",
6992
+ "bg-reki-tag-purple",
6993
+ "bg-reki-tag-red",
6994
+ "bg-reki-tag-sky",
6995
+ "bg-reki-tag-turquoise",
6996
+ "bg-reki-tag-yellow",
6997
+ "text-reki-subtle",
6998
+ "text-reki-tag-blue",
6999
+ "text-reki-tag-gray",
7000
+ "text-reki-tag-green",
7001
+ "text-reki-tag-orange",
7002
+ "text-reki-tag-pink",
7003
+ "text-reki-tag-purple",
7004
+ "text-reki-tag-red",
7005
+ "text-reki-tag-sky",
7006
+ "text-reki-tag-turquoise",
7007
+ "text-reki-tag-yellow"
7008
+ ],
7009
+ "baseStyles": "inline-flex h-5 w-fit min-w-0 max-w-full items-center gap-1 rounded-sm px-1.5 text-xs whitespace-nowrap"
7010
+ },
5955
7011
  "Text": {
5956
7012
  "name": "Text",
5957
7013
  "type": "component",
@@ -6106,6 +7162,105 @@
6106
7162
  }
6107
7163
  }
6108
7164
  },
7165
+ "Timeline": {
7166
+ "name": "Timeline",
7167
+ "type": "component",
7168
+ "description": "Timeline — presentational compound component for a Linear-style activity feed.",
7169
+ "importPath": "@cloudraker/reki",
7170
+ "category": "Other",
7171
+ "props": {
7172
+ "children": {
7173
+ "type": "ReactNode",
7174
+ "optional": true,
7175
+ "description": "`Timeline.Item` elements."
7176
+ },
7177
+ "className": {
7178
+ "type": "string",
7179
+ "optional": true,
7180
+ "description": "Additional CSS classes merged via `cn()`. Use reki semantic tokens only."
7181
+ }
7182
+ },
7183
+ "examples": [
7184
+ "<div className=\"w-[480px]\">\n <Timeline>\n <Timeline.Item isFirst nodeType=\"avatar\" avatar={{ name: \"Jane Doe\" }}>\n <Timeline.Content>\n <Timeline.Event actor=\"Jane Doe\" action=\"created the run\" timestamp=\"5d ago\" />\n </Timeline.Content>\n </Timeline.Item>\n <Timeline.Item nodeType=\"status\" statusColor=\"green\">\n <Timeline.Content>\n <Timeline.Event actor=\"Florent\" action=\"moved to\" target=\"In Progress\" timestamp=\"3d ago\" />\n </Timeline.Content>\n </Timeline.Item>\n <Timeline.Item nodeType=\"icon\" icon={GitBranchIcon}>\n <Timeline.Content>\n <Timeline.Event actor=\"Mo\" action=\"linked\" target=\"feat/timeline\" timestamp=\"2h ago\" />\n </Timeline.Content>\n </Timeline.Item>\n <Timeline.Item isLast nodeType=\"icon\" icon={CheckCircleIcon}>\n <Timeline.Content>\n <Timeline.Event actor=\"Jane Doe\" action=\"completed\" target=\"Draft proposal\" timestamp=\"1h ago\" />\n </Timeline.Content>\n </Timeline.Item>\n </Timeline>\n </div>",
7185
+ "<div className=\"w-[480px]\">\n <Timeline>\n <Timeline.Item isFirst nodeType=\"icon\" icon={UploadSimpleIcon}>\n <Timeline.Content>\n <Timeline.Event actor=\"Sam Lee\" action=\"uploaded 3 files\" timestamp=\"1d ago\" />\n </Timeline.Content>\n </Timeline.Item>\n <Timeline.Item isLast variant=\"rich\" nodeType=\"avatar\" avatar={{ name: \"Sam Lee\" }}>\n <Timeline.Content>\n <Timeline.Event actor=\"Sam Lee\" action=\"commented\" timestamp=\"20m ago\" />\n <Text size=\"sm\">Looks good — can we ship the muted state for upcoming tasks too?</Text>\n </Timeline.Content>\n </Timeline.Item>\n </Timeline>\n </div>",
7186
+ "<div className=\"w-[480px]\">\n <Timeline>\n <Timeline.Item isFirst nodeType=\"status\" statusColor=\"blue\">\n <Timeline.Content>\n <Timeline.Event actor=\"Florent\" action=\"requested approval\" timestamp=\"just now\" />\n </Timeline.Content>\n </Timeline.Item>\n <Timeline.Item isLast variant=\"rich\" tone=\"active\" nodeType=\"icon\" icon={PaperPlaneTiltIcon}>\n <Timeline.Content>\n <LayerCard>\n <LayerCard.Primary>\n <div className=\"flex flex-col gap-3\">\n <Text size=\"sm\">Approve budget increase?</Text>\n <div className=\"flex gap-2\">\n <Button size=\"sm\" variant=\"primary\">\n Approve\n </Button>\n <Button size=\"sm\" variant=\"secondary\">\n Decline\n </Button>\n </div>\n </div>\n </LayerCard.Primary>\n </LayerCard>\n </Timeline.Content>\n </Timeline.Item>\n </Timeline>\n </div>",
7187
+ "<div className=\"w-[480px]\">\n <Timeline>\n <Timeline.Item isFirst nodeType=\"status\" statusColor=\"green\">\n <Timeline.Content>\n <Timeline.Event actor=\"Jane Doe\" action=\"kicked off onboarding\" timestamp=\"2d ago\" />\n </Timeline.Content>\n </Timeline.Item>\n <Timeline.Item tone=\"muted\" nodeType=\"icon\" icon={CheckCircleIcon}>\n <Timeline.Content>\n <Timeline.Event actor=\"Review step\" action=\"starts after Onboarding\" />\n </Timeline.Content>\n </Timeline.Item>\n <Timeline.Item isLast tone=\"muted\" nodeType=\"icon\" icon={CheckCircleIcon}>\n <Timeline.Content>\n <Timeline.Event actor=\"Sign-off\" action=\"starts after Review\" />\n </Timeline.Content>\n </Timeline.Item>\n </Timeline>\n </div>"
7188
+ ],
7189
+ "colors": [
7190
+ "bg-reki-base",
7191
+ "bg-reki-fill",
7192
+ "bg-reki-hairline",
7193
+ "ring-reki-brand",
7194
+ "ring-reki-line",
7195
+ "text-reki-brand",
7196
+ "text-reki-default",
7197
+ "text-reki-subtle"
7198
+ ],
7199
+ "subComponents": {
7200
+ "Item": {
7201
+ "name": "Item",
7202
+ "description": "Item sub-component",
7203
+ "props": {
7204
+ "nodeType": {
7205
+ "type": "NodeType",
7206
+ "optional": true
7207
+ },
7208
+ "avatar": {
7209
+ "type": "{ src?: string | null",
7210
+ "optional": true
7211
+ },
7212
+ "name": {
7213
+ "type": "string",
7214
+ "required": true
7215
+ }
7216
+ }
7217
+ },
7218
+ "Content": {
7219
+ "name": "Content",
7220
+ "description": "Content sub-component",
7221
+ "props": {
7222
+ "children": {
7223
+ "type": "ReactNode",
7224
+ "optional": true
7225
+ },
7226
+ "className": {
7227
+ "type": "string",
7228
+ "optional": true
7229
+ }
7230
+ }
7231
+ },
7232
+ "Event": {
7233
+ "name": "Event",
7234
+ "description": "Event sub-component",
7235
+ "props": {
7236
+ "actor": {
7237
+ "type": "ReactNode",
7238
+ "optional": true
7239
+ },
7240
+ "action": {
7241
+ "type": "ReactNode",
7242
+ "optional": true
7243
+ },
7244
+ "target": {
7245
+ "type": "ReactNode",
7246
+ "optional": true
7247
+ },
7248
+ "timestamp": {
7249
+ "type": "ReactNode",
7250
+ "optional": true
7251
+ },
7252
+ "truncate": {
7253
+ "type": "boolean",
7254
+ "optional": true
7255
+ },
7256
+ "className": {
7257
+ "type": "string",
7258
+ "optional": true
7259
+ }
7260
+ }
7261
+ }
7262
+ }
7263
+ },
6109
7264
  "Toasty": {
6110
7265
  "name": "Toasty",
6111
7266
  "type": "component",
@@ -6547,15 +7702,40 @@
6547
7702
  "search": {
6548
7703
  "byCategory": {
6549
7704
  "Other": [
7705
+ "ActorDisplay",
7706
+ "AddressInput",
7707
+ "ArrayDisplay",
6550
7708
  "Autocomplete",
7709
+ "Avatar",
7710
+ "AvatarGroup",
7711
+ "Chip",
7712
+ "CircularProgressBar",
6551
7713
  "CloudflareLogo",
7714
+ "ColorSample",
7715
+ "DataGrid",
6552
7716
  "DatePicker",
7717
+ "DoubleTextInput",
7718
+ "EmailsDisplay",
7719
+ "ExpandableList",
7720
+ "JsonDisplay",
6553
7721
  "Label",
6554
7722
  "Link",
7723
+ "LinkChip",
7724
+ "LinksDisplay",
7725
+ "MenuItem",
7726
+ "NotificationCounter",
7727
+ "OverflowingText",
7728
+ "PhonesDisplay",
7729
+ "Pill",
7730
+ "Rating",
7731
+ "RecordBoard",
6555
7732
  "SensitiveInput",
6556
7733
  "Sidebar",
7734
+ "Status",
6557
7735
  "Table",
6558
7736
  "TableOfContents",
7737
+ "Tag",
7738
+ "Timeline",
6559
7739
  "DeleteResource"
6560
7740
  ],
6561
7741
  "Display": [
@@ -6608,92 +7788,142 @@
6608
7788
  ]
6609
7789
  },
6610
7790
  "byName": [
7791
+ "ActorDisplay",
7792
+ "AddressInput",
7793
+ "ArrayDisplay",
6611
7794
  "Autocomplete",
7795
+ "Avatar",
7796
+ "AvatarGroup",
6612
7797
  "Badge",
6613
7798
  "Banner",
6614
7799
  "Breadcrumbs",
6615
7800
  "Button",
6616
7801
  "Checkbox",
7802
+ "Chip",
7803
+ "CircularProgressBar",
6617
7804
  "ClipboardText",
6618
7805
  "CloudflareLogo",
6619
7806
  "Code",
6620
7807
  "Collapsible",
7808
+ "ColorSample",
6621
7809
  "Combobox",
6622
7810
  "CommandPalette",
7811
+ "DataGrid",
6623
7812
  "DatePicker",
6624
7813
  "DateRangePicker",
6625
7814
  "DeleteResource",
6626
7815
  "Dialog",
7816
+ "DoubleTextInput",
6627
7817
  "DropdownMenu",
7818
+ "EmailsDisplay",
6628
7819
  "Empty",
7820
+ "ExpandableList",
6629
7821
  "Field",
6630
7822
  "Grid",
6631
7823
  "Input",
6632
7824
  "InputGroup",
7825
+ "JsonDisplay",
6633
7826
  "Label",
6634
7827
  "LayerCard",
6635
7828
  "Link",
7829
+ "LinkChip",
7830
+ "LinksDisplay",
6636
7831
  "Loader",
6637
7832
  "MenuBar",
7833
+ "MenuItem",
6638
7834
  "Meter",
7835
+ "NotificationCounter",
7836
+ "OverflowingText",
6639
7837
  "PageHeader",
6640
7838
  "Pagination",
7839
+ "PhonesDisplay",
7840
+ "Pill",
6641
7841
  "Popover",
6642
7842
  "Radio",
7843
+ "Rating",
7844
+ "RecordBoard",
6643
7845
  "ResourceListPage",
6644
7846
  "Select",
6645
7847
  "SensitiveInput",
6646
7848
  "Sidebar",
7849
+ "Status",
6647
7850
  "Surface",
6648
7851
  "Switch",
6649
7852
  "Table",
6650
7853
  "TableOfContents",
6651
7854
  "Tabs",
7855
+ "Tag",
6652
7856
  "Text",
7857
+ "Timeline",
6653
7858
  "Toasty",
6654
7859
  "Tooltip"
6655
7860
  ],
6656
7861
  "byType": {
6657
7862
  "component": [
7863
+ "ActorDisplay",
7864
+ "AddressInput",
7865
+ "ArrayDisplay",
6658
7866
  "Autocomplete",
7867
+ "Avatar",
7868
+ "AvatarGroup",
6659
7869
  "Badge",
6660
7870
  "Banner",
6661
7871
  "Breadcrumbs",
6662
7872
  "Button",
6663
7873
  "Checkbox",
7874
+ "Chip",
7875
+ "CircularProgressBar",
6664
7876
  "ClipboardText",
6665
7877
  "CloudflareLogo",
6666
7878
  "Code",
6667
7879
  "Collapsible",
7880
+ "ColorSample",
6668
7881
  "Combobox",
6669
7882
  "CommandPalette",
7883
+ "DataGrid",
6670
7884
  "DatePicker",
6671
7885
  "DateRangePicker",
6672
7886
  "Dialog",
7887
+ "DoubleTextInput",
6673
7888
  "DropdownMenu",
7889
+ "EmailsDisplay",
6674
7890
  "Empty",
7891
+ "ExpandableList",
6675
7892
  "Field",
6676
7893
  "Grid",
6677
7894
  "Input",
6678
7895
  "InputGroup",
7896
+ "JsonDisplay",
6679
7897
  "Label",
6680
7898
  "LayerCard",
6681
7899
  "Link",
7900
+ "LinkChip",
7901
+ "LinksDisplay",
6682
7902
  "Loader",
6683
7903
  "MenuBar",
7904
+ "MenuItem",
6684
7905
  "Meter",
7906
+ "NotificationCounter",
7907
+ "OverflowingText",
6685
7908
  "Pagination",
7909
+ "PhonesDisplay",
7910
+ "Pill",
6686
7911
  "Popover",
6687
7912
  "Radio",
7913
+ "Rating",
7914
+ "RecordBoard",
6688
7915
  "Select",
6689
7916
  "SensitiveInput",
6690
7917
  "Sidebar",
7918
+ "Status",
6691
7919
  "Surface",
6692
7920
  "Switch",
6693
7921
  "Table",
6694
7922
  "TableOfContents",
6695
7923
  "Tabs",
7924
+ "Tag",
6696
7925
  "Text",
7926
+ "Timeline",
6697
7927
  "Toasty",
6698
7928
  "Tooltip"
6699
7929
  ],