@automa8e/ui 0.2.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 (451) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/_virtual/index.js +6 -0
  4. package/dist/_virtual/index.js.map +1 -0
  5. package/dist/_virtual/index2.js +5 -0
  6. package/dist/_virtual/index2.js.map +1 -0
  7. package/dist/_virtual/use-sync-external-store-shim.development.js +5 -0
  8. package/dist/_virtual/use-sync-external-store-shim.development.js.map +1 -0
  9. package/dist/_virtual/use-sync-external-store-shim.production.js +5 -0
  10. package/dist/_virtual/use-sync-external-store-shim.production.js.map +1 -0
  11. package/dist/automa8e-ui.css +226 -0
  12. package/dist/components/automation/metric-card.d.ts +19 -0
  13. package/dist/components/automation/metric-card.d.ts.map +1 -0
  14. package/dist/components/automation/metric-card.js +59 -0
  15. package/dist/components/automation/metric-card.js.map +1 -0
  16. package/dist/components/automation/status-badge.d.ts +27 -0
  17. package/dist/components/automation/status-badge.d.ts.map +1 -0
  18. package/dist/components/automation/status-badge.js +112 -0
  19. package/dist/components/automation/status-badge.js.map +1 -0
  20. package/dist/components/automation/task-card.d.ts +14 -0
  21. package/dist/components/automation/task-card.d.ts.map +1 -0
  22. package/dist/components/automation/task-card.js +114 -0
  23. package/dist/components/automation/task-card.js.map +1 -0
  24. package/dist/components/automation/workflow-node.d.ts +20 -0
  25. package/dist/components/automation/workflow-node.d.ts.map +1 -0
  26. package/dist/components/automation/workflow-node.js +132 -0
  27. package/dist/components/automation/workflow-node.js.map +1 -0
  28. package/dist/components/layout/app-shell.d.ts +21 -0
  29. package/dist/components/layout/app-shell.d.ts.map +1 -0
  30. package/dist/components/layout/app-shell.js +35 -0
  31. package/dist/components/layout/app-shell.js.map +1 -0
  32. package/dist/components/layout/header.d.ts +16 -0
  33. package/dist/components/layout/header.d.ts.map +1 -0
  34. package/dist/components/layout/header.js +30 -0
  35. package/dist/components/layout/header.js.map +1 -0
  36. package/dist/components/layout/page-header.d.ts +16 -0
  37. package/dist/components/layout/page-header.d.ts.map +1 -0
  38. package/dist/components/layout/page-header.js +29 -0
  39. package/dist/components/layout/page-header.js.map +1 -0
  40. package/dist/components/layout/sidebar.d.ts +35 -0
  41. package/dist/components/layout/sidebar.d.ts.map +1 -0
  42. package/dist/components/layout/sidebar.js +103 -0
  43. package/dist/components/layout/sidebar.js.map +1 -0
  44. package/dist/components/ui/accordion.d.ts +8 -0
  45. package/dist/components/ui/accordion.d.ts.map +1 -0
  46. package/dist/components/ui/accordion.js +51 -0
  47. package/dist/components/ui/accordion.js.map +1 -0
  48. package/dist/components/ui/alert.d.ts +18 -0
  49. package/dist/components/ui/alert.d.ts.map +1 -0
  50. package/dist/components/ui/alert.js +89 -0
  51. package/dist/components/ui/alert.js.map +1 -0
  52. package/dist/components/ui/avatar.d.ts +20 -0
  53. package/dist/components/ui/avatar.d.ts.map +1 -0
  54. package/dist/components/ui/avatar.js +72 -0
  55. package/dist/components/ui/avatar.js.map +1 -0
  56. package/dist/components/ui/badge.d.ts +13 -0
  57. package/dist/components/ui/badge.d.ts.map +1 -0
  58. package/dist/components/ui/badge.js +54 -0
  59. package/dist/components/ui/badge.js.map +1 -0
  60. package/dist/components/ui/button.d.ts +15 -0
  61. package/dist/components/ui/button.d.ts.map +1 -0
  62. package/dist/components/ui/button.js +96 -0
  63. package/dist/components/ui/button.js.map +1 -0
  64. package/dist/components/ui/card.d.ts +16 -0
  65. package/dist/components/ui/card.d.ts.map +1 -0
  66. package/dist/components/ui/card.js +96 -0
  67. package/dist/components/ui/card.js.map +1 -0
  68. package/dist/components/ui/checkbox.d.ts +9 -0
  69. package/dist/components/ui/checkbox.d.ts.map +1 -0
  70. package/dist/components/ui/checkbox.js +29 -0
  71. package/dist/components/ui/checkbox.js.map +1 -0
  72. package/dist/components/ui/dialog.d.ts +28 -0
  73. package/dist/components/ui/dialog.d.ts.map +1 -0
  74. package/dist/components/ui/dialog.js +105 -0
  75. package/dist/components/ui/dialog.js.map +1 -0
  76. package/dist/components/ui/dropdown-menu.d.ts +29 -0
  77. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  78. package/dist/components/ui/dropdown-menu.js +160 -0
  79. package/dist/components/ui/dropdown-menu.js.map +1 -0
  80. package/dist/components/ui/input.d.ts +14 -0
  81. package/dist/components/ui/input.d.ts.map +1 -0
  82. package/dist/components/ui/input.js +60 -0
  83. package/dist/components/ui/input.js.map +1 -0
  84. package/dist/components/ui/label.d.ts +13 -0
  85. package/dist/components/ui/label.d.ts.map +1 -0
  86. package/dist/components/ui/label.js +26 -0
  87. package/dist/components/ui/label.js.map +1 -0
  88. package/dist/components/ui/popover.d.ts +8 -0
  89. package/dist/components/ui/popover.d.ts.map +1 -0
  90. package/dist/components/ui/popover.js +29 -0
  91. package/dist/components/ui/popover.js.map +1 -0
  92. package/dist/components/ui/progress.d.ts +17 -0
  93. package/dist/components/ui/progress.d.ts.map +1 -0
  94. package/dist/components/ui/progress.js +80 -0
  95. package/dist/components/ui/progress.js.map +1 -0
  96. package/dist/components/ui/scroll-area.d.ts +6 -0
  97. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  98. package/dist/components/ui/scroll-area.js +39 -0
  99. package/dist/components/ui/scroll-area.js.map +1 -0
  100. package/dist/components/ui/select.d.ts +16 -0
  101. package/dist/components/ui/select.d.ts.map +1 -0
  102. package/dist/components/ui/select.js +131 -0
  103. package/dist/components/ui/select.js.map +1 -0
  104. package/dist/components/ui/separator.d.ts +9 -0
  105. package/dist/components/ui/separator.d.ts.map +1 -0
  106. package/dist/components/ui/separator.js +50 -0
  107. package/dist/components/ui/separator.js.map +1 -0
  108. package/dist/components/ui/skeleton.d.ts +10 -0
  109. package/dist/components/ui/skeleton.d.ts.map +1 -0
  110. package/dist/components/ui/skeleton.js +30 -0
  111. package/dist/components/ui/skeleton.js.map +1 -0
  112. package/dist/components/ui/spinner.d.ts +14 -0
  113. package/dist/components/ui/spinner.d.ts.map +1 -0
  114. package/dist/components/ui/spinner.js +44 -0
  115. package/dist/components/ui/spinner.js.map +1 -0
  116. package/dist/components/ui/switch.d.ts +8 -0
  117. package/dist/components/ui/switch.d.ts.map +1 -0
  118. package/dist/components/ui/switch.js +43 -0
  119. package/dist/components/ui/switch.js.map +1 -0
  120. package/dist/components/ui/table.d.ts +11 -0
  121. package/dist/components/ui/table.d.ts.map +1 -0
  122. package/dist/components/ui/table.js +95 -0
  123. package/dist/components/ui/table.js.map +1 -0
  124. package/dist/components/ui/tabs.d.ts +20 -0
  125. package/dist/components/ui/tabs.d.ts.map +1 -0
  126. package/dist/components/ui/tabs.js +92 -0
  127. package/dist/components/ui/tabs.js.map +1 -0
  128. package/dist/components/ui/textarea.d.ts +12 -0
  129. package/dist/components/ui/textarea.d.ts.map +1 -0
  130. package/dist/components/ui/textarea.js +41 -0
  131. package/dist/components/ui/textarea.js.map +1 -0
  132. package/dist/components/ui/toast.d.ts +16 -0
  133. package/dist/components/ui/toast.d.ts.map +1 -0
  134. package/dist/components/ui/toast.js +113 -0
  135. package/dist/components/ui/toast.js.map +1 -0
  136. package/dist/components/ui/tooltip.d.ts +8 -0
  137. package/dist/components/ui/tooltip.d.ts.map +1 -0
  138. package/dist/components/ui/tooltip.js +28 -0
  139. package/dist/components/ui/tooltip.js.map +1 -0
  140. package/dist/hooks/use-debounce.d.ts +15 -0
  141. package/dist/hooks/use-debounce.d.ts.map +1 -0
  142. package/dist/hooks/use-debounce.js +15 -0
  143. package/dist/hooks/use-debounce.js.map +1 -0
  144. package/dist/hooks/use-local-storage.d.ts +9 -0
  145. package/dist/hooks/use-local-storage.d.ts.map +1 -0
  146. package/dist/hooks/use-local-storage.js +49 -0
  147. package/dist/hooks/use-local-storage.js.map +1 -0
  148. package/dist/hooks/use-media-query.d.ts +9 -0
  149. package/dist/hooks/use-media-query.d.ts.map +1 -0
  150. package/dist/hooks/use-media-query.js +20 -0
  151. package/dist/hooks/use-media-query.js.map +1 -0
  152. package/dist/index.d.ts +66 -0
  153. package/dist/index.d.ts.map +1 -0
  154. package/dist/index.js +153 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/lib/colors.d.ts +73 -0
  157. package/dist/lib/colors.d.ts.map +1 -0
  158. package/dist/lib/colors.js +64 -0
  159. package/dist/lib/colors.js.map +1 -0
  160. package/dist/lib/utils.d.ts +7 -0
  161. package/dist/lib/utils.d.ts.map +1 -0
  162. package/dist/lib/utils.js +9 -0
  163. package/dist/lib/utils.js.map +1 -0
  164. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +729 -0
  165. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
  166. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +630 -0
  167. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  168. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +325 -0
  169. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -0
  170. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +177 -0
  171. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
  172. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +152 -0
  173. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
  174. package/dist/node_modules/@radix-ui/number/dist/index.js +7 -0
  175. package/dist/node_modules/@radix-ui/number/dist/index.js.map +1 -0
  176. package/dist/node_modules/@radix-ui/primitive/dist/index.js +12 -0
  177. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -0
  178. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +319 -0
  179. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
  180. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +26 -0
  181. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -0
  182. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js +124 -0
  183. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js.map +1 -0
  184. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.js +66 -0
  185. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
  186. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.js +40 -0
  187. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
  188. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js +280 -0
  189. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js.map +1 -0
  190. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +152 -0
  191. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
  192. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +71 -0
  193. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
  194. package/dist/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.js +90 -0
  195. package/dist/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  196. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +40 -0
  197. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
  198. package/dist/node_modules/@radix-ui/react-context/dist/index.js +82 -0
  199. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
  200. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +342 -0
  201. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -0
  202. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.js +90 -0
  203. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  204. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +11 -0
  205. package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -0
  206. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +217 -0
  207. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -0
  208. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +299 -0
  209. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +1 -0
  210. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +30 -0
  211. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -0
  212. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +209 -0
  213. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -0
  214. package/dist/node_modules/@radix-ui/react-id/dist/index.js +15 -0
  215. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -0
  216. package/dist/node_modules/@radix-ui/react-label/dist/index.js +27 -0
  217. package/dist/node_modules/@radix-ui/react-label/dist/index.js.map +1 -0
  218. package/dist/node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.js +40 -0
  219. package/dist/node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
  220. package/dist/node_modules/@radix-ui/react-menu/dist/index.js +881 -0
  221. package/dist/node_modules/@radix-ui/react-menu/dist/index.js.map +1 -0
  222. package/dist/node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot/dist/index.js +90 -0
  223. package/dist/node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  224. package/dist/node_modules/@radix-ui/react-popover/dist/index.js +314 -0
  225. package/dist/node_modules/@radix-ui/react-popover/dist/index.js.map +1 -0
  226. package/dist/node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot/dist/index.js +90 -0
  227. package/dist/node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  228. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +294 -0
  229. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
  230. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +19 -0
  231. package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -0
  232. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +130 -0
  233. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -0
  234. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +44 -0
  235. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
  236. package/dist/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.js +90 -0
  237. package/dist/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  238. package/dist/node_modules/@radix-ui/react-progress/dist/index.js +97 -0
  239. package/dist/node_modules/@radix-ui/react-progress/dist/index.js.map +1 -0
  240. package/dist/node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-context/dist/index.js +66 -0
  241. package/dist/node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
  242. package/dist/node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-primitive/dist/index.js +40 -0
  243. package/dist/node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
  244. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +228 -0
  245. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -0
  246. package/dist/node_modules/@radix-ui/react-scroll-area/dist/index.js +728 -0
  247. package/dist/node_modules/@radix-ui/react-scroll-area/dist/index.js.map +1 -0
  248. package/dist/node_modules/@radix-ui/react-select/dist/index.js +1200 -0
  249. package/dist/node_modules/@radix-ui/react-select/dist/index.js.map +1 -0
  250. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot/dist/index.js +90 -0
  251. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  252. package/dist/node_modules/@radix-ui/react-separator/dist/index.js +31 -0
  253. package/dist/node_modules/@radix-ui/react-separator/dist/index.js.map +1 -0
  254. package/dist/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js +40 -0
  255. package/dist/node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
  256. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +107 -0
  257. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  258. package/dist/node_modules/@radix-ui/react-switch/dist/index.js +156 -0
  259. package/dist/node_modules/@radix-ui/react-switch/dist/index.js.map +1 -0
  260. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js +195 -0
  261. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -0
  262. package/dist/node_modules/@radix-ui/react-toast/dist/index.js +645 -0
  263. package/dist/node_modules/@radix-ui/react-toast/dist/index.js.map +1 -0
  264. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js +501 -0
  265. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -0
  266. package/dist/node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.js +16 -0
  267. package/dist/node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  268. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +15 -0
  269. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -0
  270. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +72 -0
  271. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -0
  272. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +18 -0
  273. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -0
  274. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js +16 -0
  275. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js.map +1 -0
  276. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +7 -0
  277. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -0
  278. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +15 -0
  279. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js.map +1 -0
  280. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +40 -0
  281. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -0
  282. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +37 -0
  283. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +1 -0
  284. package/dist/node_modules/aria-hidden/dist/es2015/index.js +123 -0
  285. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -0
  286. package/dist/node_modules/class-variance-authority/dist/index.js +46 -0
  287. package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -0
  288. package/dist/node_modules/clsx/dist/clsx.js +17 -0
  289. package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
  290. package/dist/node_modules/get-nonce/dist/es2015/index.js +10 -0
  291. package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -0
  292. package/dist/node_modules/lucide-react/dist/esm/Icon.js +43 -0
  293. package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +1 -0
  294. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +25 -0
  295. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +1 -0
  296. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +21 -0
  297. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +1 -0
  298. package/dist/node_modules/lucide-react/dist/esm/icons/ban.js +15 -0
  299. package/dist/node_modules/lucide-react/dist/esm/icons/ban.js.map +1 -0
  300. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.js +17 -0
  301. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.js.map +1 -0
  302. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +12 -0
  303. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +1 -0
  304. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +14 -0
  305. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js.map +1 -0
  306. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.js +14 -0
  307. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.js.map +1 -0
  308. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +14 -0
  309. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +1 -0
  310. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +12 -0
  311. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js.map +1 -0
  312. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js +16 -0
  313. package/dist/node_modules/lucide-react/dist/esm/icons/circle-alert.js.map +1 -0
  314. package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.js +15 -0
  315. package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.js.map +1 -0
  316. package/dist/node_modules/lucide-react/dist/esm/icons/circle-minus.js +15 -0
  317. package/dist/node_modules/lucide-react/dist/esm/icons/circle-minus.js.map +1 -0
  318. package/dist/node_modules/lucide-react/dist/esm/icons/circle-x.js +16 -0
  319. package/dist/node_modules/lucide-react/dist/esm/icons/circle-x.js.map +1 -0
  320. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js +14 -0
  321. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js.map +1 -0
  322. package/dist/node_modules/lucide-react/dist/esm/icons/clock.js +15 -0
  323. package/dist/node_modules/lucide-react/dist/esm/icons/clock.js.map +1 -0
  324. package/dist/node_modules/lucide-react/dist/esm/icons/flag.js +15 -0
  325. package/dist/node_modules/lucide-react/dist/esm/icons/flag.js.map +1 -0
  326. package/dist/node_modules/lucide-react/dist/esm/icons/git-branch.js +17 -0
  327. package/dist/node_modules/lucide-react/dist/esm/icons/git-branch.js.map +1 -0
  328. package/dist/node_modules/lucide-react/dist/esm/icons/info.js +16 -0
  329. package/dist/node_modules/lucide-react/dist/esm/icons/info.js.map +1 -0
  330. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js +14 -0
  331. package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js.map +1 -0
  332. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js +12 -0
  333. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js.map +1 -0
  334. package/dist/node_modules/lucide-react/dist/esm/icons/pause.js +15 -0
  335. package/dist/node_modules/lucide-react/dist/esm/icons/pause.js.map +1 -0
  336. package/dist/node_modules/lucide-react/dist/esm/icons/play.js +14 -0
  337. package/dist/node_modules/lucide-react/dist/esm/icons/play.js.map +1 -0
  338. package/dist/node_modules/lucide-react/dist/esm/icons/send.js +21 -0
  339. package/dist/node_modules/lucide-react/dist/esm/icons/send.js.map +1 -0
  340. package/dist/node_modules/lucide-react/dist/esm/icons/tag.js +21 -0
  341. package/dist/node_modules/lucide-react/dist/esm/icons/tag.js.map +1 -0
  342. package/dist/node_modules/lucide-react/dist/esm/icons/timer.js +16 -0
  343. package/dist/node_modules/lucide-react/dist/esm/icons/timer.js.map +1 -0
  344. package/dist/node_modules/lucide-react/dist/esm/icons/trending-down.js +15 -0
  345. package/dist/node_modules/lucide-react/dist/esm/icons/trending-down.js.map +1 -0
  346. package/dist/node_modules/lucide-react/dist/esm/icons/trending-up.js +15 -0
  347. package/dist/node_modules/lucide-react/dist/esm/icons/trending-up.js.map +1 -0
  348. package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.js +22 -0
  349. package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.js.map +1 -0
  350. package/dist/node_modules/lucide-react/dist/esm/icons/x.js +15 -0
  351. package/dist/node_modules/lucide-react/dist/esm/icons/x.js.map +1 -0
  352. package/dist/node_modules/lucide-react/dist/esm/icons/zap.js +20 -0
  353. package/dist/node_modules/lucide-react/dist/esm/icons/zap.js.map +1 -0
  354. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +15 -0
  355. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +1 -0
  356. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +12 -0
  357. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
  358. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +181 -0
  359. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
  360. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +39 -0
  361. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -0
  362. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +20 -0
  363. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
  364. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +103 -0
  365. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
  366. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +6 -0
  367. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -0
  368. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +8 -0
  369. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
  370. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +48 -0
  371. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
  372. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +11 -0
  373. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
  374. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +38 -0
  375. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
  376. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +14 -0
  377. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -0
  378. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +17 -0
  379. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -0
  380. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +49 -0
  381. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -0
  382. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2467 -0
  383. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  384. package/dist/node_modules/tslib/tslib.es6.js +40 -0
  385. package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
  386. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +12 -0
  387. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
  388. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +36 -0
  389. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
  390. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +30 -0
  391. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -0
  392. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +22 -0
  393. package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -0
  394. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +89 -0
  395. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -0
  396. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +78 -0
  397. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -0
  398. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +63 -0
  399. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -0
  400. package/dist/node_modules/use-sync-external-store/shim/index.js +18 -0
  401. package/dist/node_modules/use-sync-external-store/shim/index.js.map +1 -0
  402. package/dist/types/automation.d.ts +59 -0
  403. package/dist/types/automation.d.ts.map +1 -0
  404. package/dist/types/common.d.ts +38 -0
  405. package/dist/types/common.d.ts.map +1 -0
  406. package/package.json +119 -0
  407. package/registry/registry.json +218 -0
  408. package/src/components/automation/metric-card.tsx +113 -0
  409. package/src/components/automation/status-badge.tsx +136 -0
  410. package/src/components/automation/task-card.tsx +164 -0
  411. package/src/components/automation/workflow-node.tsx +186 -0
  412. package/src/components/layout/app-shell.tsx +58 -0
  413. package/src/components/layout/header.tsx +39 -0
  414. package/src/components/layout/page-header.tsx +42 -0
  415. package/src/components/layout/sidebar.tsx +190 -0
  416. package/src/components/ui/accordion.tsx +57 -0
  417. package/src/components/ui/alert.tsx +93 -0
  418. package/src/components/ui/avatar.tsx +94 -0
  419. package/src/components/ui/badge.tsx +69 -0
  420. package/src/components/ui/button.tsx +106 -0
  421. package/src/components/ui/card.tsx +96 -0
  422. package/src/components/ui/checkbox.tsx +40 -0
  423. package/src/components/ui/dialog.tsx +129 -0
  424. package/src/components/ui/dropdown-menu.tsx +194 -0
  425. package/src/components/ui/input.tsx +80 -0
  426. package/src/components/ui/label.tsx +37 -0
  427. package/src/components/ui/popover.tsx +29 -0
  428. package/src/components/ui/progress.tsx +92 -0
  429. package/src/components/ui/scroll-area.tsx +43 -0
  430. package/src/components/ui/select.tsx +157 -0
  431. package/src/components/ui/separator.tsx +56 -0
  432. package/src/components/ui/skeleton.tsx +41 -0
  433. package/src/components/ui/spinner.tsx +50 -0
  434. package/src/components/ui/switch.tsx +46 -0
  435. package/src/components/ui/table.tsx +117 -0
  436. package/src/components/ui/tabs.tsx +107 -0
  437. package/src/components/ui/textarea.tsx +50 -0
  438. package/src/components/ui/toast.tsx +139 -0
  439. package/src/components/ui/tooltip.tsx +28 -0
  440. package/src/hooks/use-debounce.ts +28 -0
  441. package/src/hooks/use-local-storage.ts +63 -0
  442. package/src/hooks/use-media-query.ts +29 -0
  443. package/src/index.ts +197 -0
  444. package/src/lib/colors.ts +102 -0
  445. package/src/lib/utils.ts +10 -0
  446. package/src/styles/globals.css +230 -0
  447. package/src/types/automation.ts +74 -0
  448. package/src/types/common.ts +48 -0
  449. package/tailwind/preset.cjs +98 -0
  450. package/tailwind/preset.css +5 -0
  451. package/tailwind/preset.ts +159 -0
@@ -0,0 +1,29 @@
1
+ import { useState, useEffect } from 'react'
2
+
3
+ /**
4
+ * Returns whether the given media query currently matches.
5
+ *
6
+ * @example
7
+ * const isMobile = useMediaQuery('(max-width: 768px)')
8
+ * const isDesktop = useMediaQuery('(min-width: 1024px)')
9
+ */
10
+ export function useMediaQuery(query: string): boolean {
11
+ const [matches, setMatches] = useState<boolean>(() => {
12
+ if (typeof window === 'undefined') return false
13
+ return window.matchMedia(query).matches
14
+ })
15
+
16
+ useEffect(() => {
17
+ if (typeof window === 'undefined') return
18
+
19
+ const mediaQuery = window.matchMedia(query)
20
+ const handler = (event: MediaQueryListEvent) => setMatches(event.matches)
21
+
22
+ setMatches(mediaQuery.matches)
23
+ mediaQuery.addEventListener('change', handler)
24
+
25
+ return () => mediaQuery.removeEventListener('change', handler)
26
+ }, [query])
27
+
28
+ return matches
29
+ }
package/src/index.ts ADDED
@@ -0,0 +1,197 @@
1
+ /**
2
+ * @automa8e/ui
3
+ * Production-grade, dark-industrial React component library for the automa8e platform.
4
+ *
5
+ * @example
6
+ * import { Button, StatusBadge, MetricCard } from '@automa8e/ui'
7
+ * import '@automa8e/ui/styles'
8
+ */
9
+
10
+ // ─── Styles (emitted as automa8e-ui.css) ────────────────────────────────────
11
+ import './styles/globals.css'
12
+
13
+ // ─── Utilities ───────────────────────────────────────────────────────────────
14
+ export { cn } from './lib/utils'
15
+ export { Colors } from './lib/colors'
16
+ export type { ColorKey, ColorValue } from './lib/colors'
17
+
18
+ // ─── Types ───────────────────────────────────────────────────────────────────
19
+ export type { Size, Intent, Orientation, BaseLayoutProps } from './types/common'
20
+ export type {
21
+ WorkflowStatus,
22
+ TaskPriority,
23
+ TaskStatus,
24
+ TrendDirection,
25
+ Metric,
26
+ WorkflowNodeData,
27
+ Task,
28
+ LogEntry,
29
+ } from './types/automation'
30
+
31
+ // ─── Core UI ─────────────────────────────────────────────────────────────────
32
+ export { Button, buttonVariants } from './components/ui/button'
33
+ export type { ButtonProps } from './components/ui/button'
34
+
35
+ export { Input } from './components/ui/input'
36
+ export type { InputProps } from './components/ui/input'
37
+
38
+ export { Textarea } from './components/ui/textarea'
39
+ export type { TextareaProps } from './components/ui/textarea'
40
+
41
+ export { Label } from './components/ui/label'
42
+ export type { LabelProps } from './components/ui/label'
43
+
44
+ export { Badge, badgeVariants } from './components/ui/badge'
45
+ export type { BadgeProps } from './components/ui/badge'
46
+
47
+ export {
48
+ Card,
49
+ CardHeader,
50
+ CardFooter,
51
+ CardTitle,
52
+ CardDescription,
53
+ CardContent,
54
+ } from './components/ui/card'
55
+ export type { CardProps } from './components/ui/card'
56
+
57
+ export { Avatar, AvatarImage, AvatarFallback, AvatarGroup } from './components/ui/avatar'
58
+ export type { AvatarProps } from './components/ui/avatar'
59
+
60
+ export { Separator } from './components/ui/separator'
61
+ export type { SeparatorProps } from './components/ui/separator'
62
+
63
+ export { Skeleton } from './components/ui/skeleton'
64
+ export type { SkeletonProps } from './components/ui/skeleton'
65
+
66
+ export { Progress } from './components/ui/progress'
67
+ export type { ProgressProps } from './components/ui/progress'
68
+
69
+ export { Spinner, spinnerVariants } from './components/ui/spinner'
70
+ export type { SpinnerProps } from './components/ui/spinner'
71
+
72
+ // ─── Form ────────────────────────────────────────────────────────────────────
73
+ export { Checkbox } from './components/ui/checkbox'
74
+ export type { CheckboxProps } from './components/ui/checkbox'
75
+
76
+ export { Switch } from './components/ui/switch'
77
+ export type { SwitchProps } from './components/ui/switch'
78
+
79
+ export {
80
+ Select,
81
+ SelectGroup,
82
+ SelectValue,
83
+ SelectTrigger,
84
+ SelectContent,
85
+ SelectLabel,
86
+ SelectItem,
87
+ SelectSeparator,
88
+ SelectScrollUpButton,
89
+ SelectScrollDownButton,
90
+ } from './components/ui/select'
91
+
92
+ // ─── Navigation ──────────────────────────────────────────────────────────────
93
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './components/ui/tabs'
94
+ export type { TabsListProps, TabsTriggerProps } from './components/ui/tabs'
95
+
96
+ export {
97
+ Accordion,
98
+ AccordionItem,
99
+ AccordionTrigger,
100
+ AccordionContent,
101
+ } from './components/ui/accordion'
102
+
103
+ // ─── Overlay ─────────────────────────────────────────────────────────────────
104
+ export {
105
+ Dialog,
106
+ DialogPortal,
107
+ DialogOverlay,
108
+ DialogClose,
109
+ DialogTrigger,
110
+ DialogContent,
111
+ DialogHeader,
112
+ DialogFooter,
113
+ DialogTitle,
114
+ DialogDescription,
115
+ } from './components/ui/dialog'
116
+ export type { DialogContentProps } from './components/ui/dialog'
117
+
118
+ export {
119
+ DropdownMenu,
120
+ DropdownMenuTrigger,
121
+ DropdownMenuContent,
122
+ DropdownMenuItem,
123
+ DropdownMenuCheckboxItem,
124
+ DropdownMenuRadioItem,
125
+ DropdownMenuLabel,
126
+ DropdownMenuSeparator,
127
+ DropdownMenuShortcut,
128
+ DropdownMenuGroup,
129
+ DropdownMenuPortal,
130
+ DropdownMenuSub,
131
+ DropdownMenuSubContent,
132
+ DropdownMenuSubTrigger,
133
+ DropdownMenuRadioGroup,
134
+ } from './components/ui/dropdown-menu'
135
+
136
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from './components/ui/tooltip'
137
+
138
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from './components/ui/popover'
139
+
140
+ export { Alert, AlertTitle, AlertDescription } from './components/ui/alert'
141
+ export type { AlertProps } from './components/ui/alert'
142
+
143
+ export {
144
+ ToastProvider,
145
+ ToastViewport,
146
+ Toast,
147
+ ToastTitle,
148
+ ToastDescription,
149
+ ToastClose,
150
+ ToastAction,
151
+ } from './components/ui/toast'
152
+ export type { ToastProps, ToastActionElement } from './components/ui/toast'
153
+
154
+ // ─── Data Display ────────────────────────────────────────────────────────────
155
+ export {
156
+ Table,
157
+ TableHeader,
158
+ TableBody,
159
+ TableFooter,
160
+ TableHead,
161
+ TableRow,
162
+ TableCell,
163
+ TableCaption,
164
+ } from './components/ui/table'
165
+
166
+ export { ScrollArea, ScrollBar } from './components/ui/scroll-area'
167
+
168
+ // ─── Automation ──────────────────────────────────────────────────────────────
169
+ export { StatusBadge, STATUS_CONFIG } from './components/automation/status-badge'
170
+ export type { StatusBadgeProps } from './components/automation/status-badge'
171
+
172
+ export { MetricCard, MetricGrid } from './components/automation/metric-card'
173
+ export type { MetricCardProps, MetricGridProps } from './components/automation/metric-card'
174
+
175
+ export { WorkflowNode, WorkflowPipeline } from './components/automation/workflow-node'
176
+ export type { WorkflowNodeProps, WorkflowPipelineProps } from './components/automation/workflow-node'
177
+
178
+ export { TaskCard } from './components/automation/task-card'
179
+ export type { TaskCardProps } from './components/automation/task-card'
180
+
181
+ // ─── Layout ──────────────────────────────────────────────────────────────────
182
+ export { AppShell, PageContent } from './components/layout/app-shell'
183
+ export type { AppShellProps } from './components/layout/app-shell'
184
+
185
+ export { Sidebar } from './components/layout/sidebar'
186
+ export type { SidebarProps, SidebarNavItem, SidebarSection } from './components/layout/sidebar'
187
+
188
+ export { Header } from './components/layout/header'
189
+ export type { HeaderProps } from './components/layout/header'
190
+
191
+ export { PageHeader } from './components/layout/page-header'
192
+ export type { PageHeaderProps } from './components/layout/page-header'
193
+
194
+ // ─── Hooks ───────────────────────────────────────────────────────────────────
195
+ export { useMediaQuery } from './hooks/use-media-query'
196
+ export { useLocalStorage } from './hooks/use-local-storage'
197
+ export { useDebounce } from './hooks/use-debounce'
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Automa8e brand color palette.
3
+ * Import and use directly in inline styles, or register in your Tailwind config.
4
+ *
5
+ * @example
6
+ * import { Colors } from '@automa8e/ui'
7
+ * <div style={{ backgroundColor: Colors.primaryBlue }}>...</div>
8
+ */
9
+ export const Colors = {
10
+ /** Soft powder blue — page backgrounds, empty states */
11
+ powderBlue: '#ECF2FA',
12
+
13
+ /** Active tab top bar, primary action buttons */
14
+ primaryBlue: '#3278A0',
15
+
16
+ /** Ultra-light gray surface */
17
+ grays: '#FBFBFC',
18
+
19
+ /** Soft border and divider gray */
20
+ softGrays: '#DDDDDD',
21
+
22
+ /** Inactive tab text and border color */
23
+ primaryGray: '#939598',
24
+
25
+ /** Alias for primaryBlue — used in header/nav backgrounds */
26
+ backgroundBlue: '#3278A0',
27
+
28
+ /** Header background blue (slightly lighter) */
29
+ headerBlue: '#44799E',
30
+
31
+ /** Input placeholder and mark highlight */
32
+ markGray: '#E0E6EE',
33
+
34
+ /** Table header background, primary body text */
35
+ deepBlue: '#4B506D',
36
+
37
+ /** Card and panel medium-light background */
38
+ mediumGray: '#F6F6F6',
39
+
40
+ /** Body text on dark backgrounds */
41
+ blueText: '#4B506D',
42
+
43
+ /** Inactive tab separator/shadow */
44
+ lineGray: '#C7C8CA',
45
+
46
+ /** Semi-transparent blue-gray for hover states */
47
+ grayBlueBackground: '#DFE0EB33',
48
+
49
+ /** Solid powder-blue background variant */
50
+ grayBlueBackground2: '#ECF2FA',
51
+
52
+ /** Primary orange — CTAs, highlights, warnings */
53
+ primaryOrange: '#FC6501',
54
+
55
+ /** Success green */
56
+ success: '#1E791C',
57
+
58
+ /** Success state background */
59
+ successGray: '#EEEFEF',
60
+
61
+ /** Deep orange / error red */
62
+ deepOrange: '#D84132',
63
+
64
+ /** Neutral light background */
65
+ f3Gray: '#F3F3F3',
66
+
67
+ /** Soft blue card background */
68
+ softBlue: '#E7F5FD',
69
+
70
+ /** Light page background */
71
+ lightGrey: '#F0F0F0',
72
+
73
+ /** Item and card border separators */
74
+ itemBorder: '#DFE0EB',
75
+
76
+ /** Pure red — danger/error indicators */
77
+ redDanger: '#ff0000',
78
+
79
+ /** Blue line border with opacity */
80
+ blueLineBorder: 'rgba(68, 121, 158, 0.5)',
81
+
82
+ /** Near-black text */
83
+ darkGray: '#222222',
84
+
85
+ /** Bright light gray */
86
+ brightGray: '#EAEAEA',
87
+
88
+ /** Light page background (alt) */
89
+ lightGray: '#F7F7F7',
90
+
91
+ /** Form input and card borders */
92
+ lightBorder: '#DDDDDD',
93
+
94
+ /** Bright accent blue */
95
+ babyBlue: '#0F67B1',
96
+ } as const
97
+
98
+ /** TypeScript type for any Colors key */
99
+ export type ColorKey = keyof typeof Colors
100
+
101
+ /** TypeScript type for any Colors value */
102
+ export type ColorValue = typeof Colors[ColorKey]
@@ -0,0 +1,10 @@
1
+ import { type ClassValue, clsx } from 'clsx'
2
+ import { twMerge } from 'tailwind-merge'
3
+
4
+ /**
5
+ * Merges Tailwind CSS class names with conflict resolution.
6
+ * Combines clsx (conditional classes) with tailwind-merge (deduplication).
7
+ */
8
+ export function cn(...inputs: ClassValue[]) {
9
+ return twMerge(clsx(inputs))
10
+ }
@@ -0,0 +1,230 @@
1
+ /* ── Google Fonts ─────────────────────────────────────────────── */
2
+ @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=IBM+Plex+Mono:wght@300;400;500;600&family=Syne:wght@400;500;600;700;800&display=swap');
3
+
4
+ /* ── Design tokens ────────────────────────────────────────────── */
5
+ :root {
6
+ /* ── Light mode (default, shadcn convention) ── */
7
+ --radius: 0.5rem;
8
+
9
+ --background: oklch(0.99 0 0);
10
+ --foreground: oklch(0.18 0.02 255);
11
+ --card: oklch(1.00 0 0);
12
+ --card-foreground: oklch(0.18 0.02 255);
13
+ --popover: oklch(1.00 0 0);
14
+ --popover-foreground: oklch(0.18 0.02 255);
15
+ --primary: oklch(0.70 0.18 52);
16
+ --primary-foreground: oklch(0.99 0 0);
17
+ --secondary: oklch(0.94 0.01 255);
18
+ --secondary-foreground: oklch(0.22 0.02 255);
19
+ --muted: oklch(0.94 0.01 255);
20
+ --muted-foreground: oklch(0.52 0.01 255);
21
+ --accent: oklch(0.94 0.01 255);
22
+ --accent-foreground: oklch(0.22 0.02 255);
23
+ --destructive: oklch(0.58 0.22 25);
24
+ --destructive-foreground: oklch(0.99 0 0);
25
+ --success: oklch(0.60 0.18 145);
26
+ --success-foreground: oklch(0.99 0 0);
27
+ --warning: oklch(0.82 0.16 84);
28
+ --warning-foreground: oklch(0.18 0.02 255);
29
+ --info: oklch(0.65 0.16 220);
30
+ --info-foreground: oklch(0.99 0 0);
31
+ --border: oklch(0.88 0.01 255);
32
+ --input: oklch(0.88 0.01 255);
33
+ --ring: oklch(0.70 0.18 52);
34
+
35
+ /* sidebar */
36
+ --sidebar: oklch(0.96 0.005 255);
37
+ --sidebar-foreground: oklch(0.18 0.02 255);
38
+ --sidebar-primary: oklch(0.70 0.18 52);
39
+ --sidebar-primary-foreground: oklch(0.99 0 0);
40
+ --sidebar-accent: oklch(0.92 0.01 255);
41
+ --sidebar-accent-foreground: oklch(0.22 0.02 255);
42
+ --sidebar-border: oklch(0.88 0.01 255);
43
+ --sidebar-ring: oklch(0.70 0.18 52);
44
+
45
+ /* workflow status */
46
+ --workflow-running: oklch(0.70 0.18 52);
47
+ --workflow-completed: oklch(0.60 0.18 145);
48
+ --workflow-failed: oklch(0.58 0.22 25);
49
+ --workflow-pending: oklch(0.52 0.01 255);
50
+ --workflow-paused: oklch(0.82 0.16 84);
51
+ --workflow-cancelled: oklch(0.38 0.01 255);
52
+
53
+ /* charts */
54
+ --chart-1: oklch(0.70 0.18 52);
55
+ --chart-2: oklch(0.65 0.16 220);
56
+ --chart-3: oklch(0.60 0.18 145);
57
+ --chart-4: oklch(0.82 0.16 84);
58
+ --chart-5: oklch(0.58 0.22 25);
59
+ }
60
+
61
+ .dark {
62
+ /* ── Dark mode (automa8e default brand experience) ── */
63
+ --background: oklch(0.14 0.02 255);
64
+ --foreground: oklch(0.92 0.01 255);
65
+ --card: oklch(0.17 0.02 255);
66
+ --card-foreground: oklch(0.92 0.01 255);
67
+ --popover: oklch(0.17 0.02 255);
68
+ --popover-foreground: oklch(0.92 0.01 255);
69
+ --primary: oklch(0.72 0.18 52);
70
+ --primary-foreground: oklch(0.14 0.02 255);
71
+ --secondary: oklch(0.24 0.02 255);
72
+ --secondary-foreground: oklch(0.92 0.01 255);
73
+ --muted: oklch(0.22 0.02 255);
74
+ --muted-foreground: oklch(0.54 0.01 255);
75
+ --accent: oklch(0.24 0.02 255);
76
+ --accent-foreground: oklch(0.92 0.01 255);
77
+ --destructive: oklch(0.60 0.22 25);
78
+ --destructive-foreground: oklch(0.92 0.01 255);
79
+ --success: oklch(0.62 0.18 145);
80
+ --success-foreground: oklch(0.92 0.01 255);
81
+ --warning: oklch(0.82 0.16 84);
82
+ --warning-foreground: oklch(0.14 0.02 255);
83
+ --info: oklch(0.67 0.16 220);
84
+ --info-foreground: oklch(0.92 0.01 255);
85
+ --border: oklch(0.26 0.02 255);
86
+ --input: oklch(0.26 0.02 255);
87
+ --ring: oklch(0.72 0.18 52);
88
+
89
+ --sidebar: oklch(0.17 0.02 255);
90
+ --sidebar-foreground: oklch(0.92 0.01 255);
91
+ --sidebar-primary: oklch(0.72 0.18 52);
92
+ --sidebar-primary-foreground: oklch(0.14 0.02 255);
93
+ --sidebar-accent: oklch(0.22 0.02 255);
94
+ --sidebar-accent-foreground: oklch(0.92 0.01 255);
95
+ --sidebar-border: oklch(0.26 0.02 255);
96
+ --sidebar-ring: oklch(0.72 0.18 52);
97
+
98
+ --workflow-running: oklch(0.72 0.18 52);
99
+ --workflow-completed: oklch(0.62 0.18 145);
100
+ --workflow-failed: oklch(0.60 0.22 25);
101
+ --workflow-pending: oklch(0.54 0.01 255);
102
+ --workflow-paused: oklch(0.82 0.16 84);
103
+ --workflow-cancelled: oklch(0.38 0.01 255);
104
+
105
+ --chart-1: oklch(0.72 0.18 52);
106
+ --chart-2: oklch(0.67 0.16 220);
107
+ --chart-3: oklch(0.62 0.18 145);
108
+ --chart-4: oklch(0.82 0.16 84);
109
+ --chart-5: oklch(0.60 0.22 25);
110
+ }
111
+
112
+ /* ── Tailwind v4 theme mapping ────────────────────────────────── */
113
+ @theme inline {
114
+ /* radius */
115
+ --radius: 0.5rem;
116
+ --radius-sm: calc(var(--radius) - 4px);
117
+ --radius-md: calc(var(--radius) - 2px);
118
+ --radius-lg: var(--radius);
119
+ --radius-xl: calc(var(--radius) + 4px);
120
+
121
+ /* color tokens */
122
+ --color-background: var(--background);
123
+ --color-foreground: var(--foreground);
124
+ --color-card: var(--card);
125
+ --color-card-foreground: var(--card-foreground);
126
+ --color-popover: var(--popover);
127
+ --color-popover-foreground: var(--popover-foreground);
128
+ --color-primary: var(--primary);
129
+ --color-primary-foreground: var(--primary-foreground);
130
+ --color-secondary: var(--secondary);
131
+ --color-secondary-foreground: var(--secondary-foreground);
132
+ --color-muted: var(--muted);
133
+ --color-muted-foreground: var(--muted-foreground);
134
+ --color-accent: var(--accent);
135
+ --color-accent-foreground: var(--accent-foreground);
136
+ --color-destructive: var(--destructive);
137
+ --color-destructive-foreground: var(--destructive-foreground);
138
+ --color-success: var(--success);
139
+ --color-success-foreground: var(--success-foreground);
140
+ --color-warning: var(--warning);
141
+ --color-warning-foreground: var(--warning-foreground);
142
+ --color-info: var(--info);
143
+ --color-info-foreground: var(--info-foreground);
144
+ --color-border: var(--border);
145
+ --color-input: var(--input);
146
+ --color-ring: var(--ring);
147
+ --color-sidebar: var(--sidebar);
148
+ --color-sidebar-foreground: var(--sidebar-foreground);
149
+ --color-sidebar-primary: var(--sidebar-primary);
150
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
151
+ --color-sidebar-accent: var(--sidebar-accent);
152
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
153
+ --color-sidebar-border: var(--sidebar-border);
154
+ --color-sidebar-ring: var(--sidebar-ring);
155
+ --color-workflow-running: var(--workflow-running);
156
+ --color-workflow-completed: var(--workflow-completed);
157
+ --color-workflow-failed: var(--workflow-failed);
158
+ --color-workflow-pending: var(--workflow-pending);
159
+ --color-workflow-paused: var(--workflow-paused);
160
+ --color-workflow-cancelled: var(--workflow-cancelled);
161
+ --color-chart-1: var(--chart-1);
162
+ --color-chart-2: var(--chart-2);
163
+ --color-chart-3: var(--chart-3);
164
+ --color-chart-4: var(--chart-4);
165
+ --color-chart-5: var(--chart-5);
166
+
167
+ /* brand palette — static hex values, not theme-switchable */
168
+ --color-brand-primary-blue: #3278A0;
169
+ --color-brand-header-blue: #44799E;
170
+ --color-brand-deep-blue: #4B506D;
171
+ --color-brand-baby-blue: #0F67B1;
172
+ --color-brand-soft-blue: #E7F5FD;
173
+ --color-brand-powder-blue: #ECF2FA;
174
+ --color-brand-primary-orange: #FC6501;
175
+ --color-brand-deep-orange: #D84132;
176
+ --color-brand-success-green: #1E791C;
177
+ --color-brand-red-danger: #ff0000;
178
+ --color-brand-primary-gray: #939598;
179
+ --color-brand-dark-gray: #222222;
180
+ --color-brand-item-border: #DFE0EB;
181
+ --color-brand-line-gray: #C7C8CA;
182
+ --color-brand-mark-gray: #E0E6EE;
183
+
184
+ /* typography */
185
+ --font-sans: "DM Sans", sans-serif;
186
+ --font-mono: "IBM Plex Mono", monospace;
187
+ --font-display: "Syne", sans-serif;
188
+ }
189
+
190
+ /* ── Keyframes ────────────────────────────────────────────────── */
191
+ @keyframes accordion-down {
192
+ from { height: 0 }
193
+ to { height: var(--radix-accordion-content-height) }
194
+ }
195
+ @keyframes accordion-up {
196
+ from { height: var(--radix-accordion-content-height) }
197
+ to { height: 0 }
198
+ }
199
+ @keyframes fade-in {
200
+ from { opacity: 0; transform: translateY(4px) }
201
+ to { opacity: 1; transform: translateY(0) }
202
+ }
203
+ @keyframes slide-in-right {
204
+ from { transform: translateX(100%); opacity: 0 }
205
+ to { transform: translateX(0); opacity: 1 }
206
+ }
207
+ @keyframes workflow-pulse {
208
+ 0%, 100% { opacity: 1; box-shadow: 0 0 8px color-mix(in oklch, var(--workflow-running) 50%, transparent) }
209
+ 50% { opacity: 0.6; box-shadow: 0 0 20px color-mix(in oklch, var(--workflow-running) 80%, transparent) }
210
+ }
211
+ @keyframes shimmer {
212
+ 0% { background-position: -200% 0 }
213
+ 100% { background-position: 200% 0 }
214
+ }
215
+ @keyframes spin-slow {
216
+ from { transform: rotate(0deg) }
217
+ to { transform: rotate(360deg) }
218
+ }
219
+
220
+ /* ── Base layer ───────────────────────────────────────────────── */
221
+ @layer base {
222
+ * { border-color: var(--color-border); }
223
+ body {
224
+ background-color: var(--color-background);
225
+ color: var(--color-foreground);
226
+ font-family: var(--font-sans);
227
+ -webkit-font-smoothing: antialiased;
228
+ -moz-osx-font-smoothing: grayscale;
229
+ }
230
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Automation domain types for the automa8e platform.
3
+ */
4
+
5
+ /** All possible states a workflow or automation run can be in. */
6
+ export type WorkflowStatus =
7
+ | 'running'
8
+ | 'completed'
9
+ | 'failed'
10
+ | 'pending'
11
+ | 'paused'
12
+ | 'cancelled'
13
+ | 'idle'
14
+ | 'scheduled'
15
+
16
+ /** Task priority levels. */
17
+ export type TaskPriority = 'critical' | 'high' | 'medium' | 'low'
18
+
19
+ /** Task execution status. */
20
+ export type TaskStatus = 'running' | 'completed' | 'failed' | 'pending' | 'skipped' | 'cancelled'
21
+
22
+ /** Metric trend direction. */
23
+ export type TrendDirection = 'up' | 'down' | 'flat'
24
+
25
+ /** Represents a single metric to display in a MetricCard. */
26
+ export interface Metric {
27
+ label: string
28
+ value: string | number
29
+ unit?: string
30
+ previousValue?: string | number
31
+ trend?: TrendDirection
32
+ trendPercent?: number
33
+ description?: string
34
+ }
35
+
36
+ /** Represents a workflow node in a pipeline visualization. */
37
+ export interface WorkflowNodeData {
38
+ id: string
39
+ label: string
40
+ type: 'trigger' | 'action' | 'condition' | 'delay' | 'output'
41
+ status: WorkflowStatus
42
+ description?: string
43
+ executedAt?: Date | string
44
+ duration?: number /** milliseconds */
45
+ error?: string
46
+ }
47
+
48
+ /** Represents a single task in a task list. */
49
+ export interface Task {
50
+ id: string
51
+ title: string
52
+ description?: string
53
+ status: TaskStatus
54
+ priority: TaskPriority
55
+ assignee?: {
56
+ name: string
57
+ avatarUrl?: string
58
+ initials?: string
59
+ }
60
+ tags?: string[]
61
+ dueAt?: Date | string
62
+ createdAt?: Date | string
63
+ completedAt?: Date | string
64
+ }
65
+
66
+ /** Represents a log entry for the automation log viewer. */
67
+ export interface LogEntry {
68
+ id: string
69
+ level: 'info' | 'warn' | 'error' | 'debug' | 'success'
70
+ message: string
71
+ timestamp: Date | string
72
+ source?: string
73
+ meta?: Record<string, unknown>
74
+ }
@@ -0,0 +1,48 @@
1
+ import type { ComponentPropsWithoutRef, ElementRef, HTMLAttributes } from 'react'
2
+
3
+ /**
4
+ * Utility to make certain keys of a type required.
5
+ */
6
+ export type RequiredKeys<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>
7
+
8
+ /**
9
+ * Utility to extract the ref type from a component.
10
+ */
11
+ export type ComponentRef<T extends React.ElementType> = ElementRef<T>
12
+
13
+ /**
14
+ * Utility to extract props from a component.
15
+ */
16
+ export type ComponentProps<T extends React.ElementType> = ComponentPropsWithoutRef<T>
17
+
18
+ /**
19
+ * Common size variants used across components.
20
+ */
21
+ export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
22
+
23
+ /**
24
+ * Common intent/color variants for semantic meaning.
25
+ */
26
+ export type Intent = 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'destructive' | 'info'
27
+
28
+ /**
29
+ * Common orientation.
30
+ */
31
+ export type Orientation = 'horizontal' | 'vertical'
32
+
33
+ /**
34
+ * Polymorphic component ref helper.
35
+ */
36
+ export type PolymorphicRef<C extends React.ElementType> = React.ComponentPropsWithRef<C>['ref']
37
+
38
+ /**
39
+ * Base props for all layout components.
40
+ */
41
+ export interface BaseLayoutProps extends HTMLAttributes<HTMLDivElement> {
42
+ children?: React.ReactNode
43
+ className?: string
44
+ }
45
+
46
+ // Re-export React for convenience
47
+ import type React from 'react'
48
+ export type { React }