aidos-ui 4.0.3 → 4.0.5

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 (377) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +23 -3
  3. package/dist/index.d.ts +797 -68
  4. package/dist/index.js +3868 -68
  5. package/dist/index.js.map +1 -1
  6. package/dist/jsx-dev-runtime.d.ts +6 -2
  7. package/dist/jsx-dev-runtime.js +87 -42
  8. package/dist/jsx-dev-runtime.js.map +1 -1
  9. package/dist/jsx-runtime.d.ts +1 -1
  10. package/dist/jsx-runtime.js +2 -2
  11. package/dist/jsx-runtime.js.map +1 -1
  12. package/dist/vite-plugin-jss-debug.d.ts +12 -6
  13. package/dist/vite-plugin-jss-debug.js +57 -72
  14. package/dist/vite-plugin-jss-debug.js.map +1 -1
  15. package/package.json +58 -27
  16. package/.claude/settings.local.json +0 -22
  17. package/.prettierrc +0 -4
  18. package/CLAUDE.md +0 -72
  19. package/dist/Badge.d.ts +0 -6
  20. package/dist/Badge.js +0 -22
  21. package/dist/Badge.js.map +0 -1
  22. package/dist/BaseButton.d.ts +0 -14
  23. package/dist/BaseButton.js +0 -23
  24. package/dist/BaseButton.js.map +0 -1
  25. package/dist/BaseInput.d.ts +0 -14
  26. package/dist/BaseInput.js +0 -15
  27. package/dist/BaseInput.js.map +0 -1
  28. package/dist/BaseLink.d.ts +0 -18
  29. package/dist/BaseLink.js +0 -29
  30. package/dist/BaseLink.js.map +0 -1
  31. package/dist/BaseList.d.ts +0 -6
  32. package/dist/BaseList.js +0 -14
  33. package/dist/BaseList.js.map +0 -1
  34. package/dist/BaseListAddOn.d.ts +0 -5
  35. package/dist/BaseListAddOn.js +0 -7
  36. package/dist/BaseListAddOn.js.map +0 -1
  37. package/dist/BaseListItem.d.ts +0 -26
  38. package/dist/BaseListItem.js +0 -29
  39. package/dist/BaseListItem.js.map +0 -1
  40. package/dist/BaseView.d.ts +0 -12
  41. package/dist/BaseView.js +0 -26
  42. package/dist/BaseView.js.map +0 -1
  43. package/dist/Box.d.ts +0 -4
  44. package/dist/Box.js +0 -6
  45. package/dist/Box.js.map +0 -1
  46. package/dist/Button.d.ts +0 -20
  47. package/dist/Button.js +0 -19
  48. package/dist/Button.js.map +0 -1
  49. package/dist/Calendar.d.ts +0 -18
  50. package/dist/Calendar.js +0 -57
  51. package/dist/Calendar.js.map +0 -1
  52. package/dist/Card.d.ts +0 -4
  53. package/dist/Card.js +0 -14
  54. package/dist/Card.js.map +0 -1
  55. package/dist/Checkbox.d.ts +0 -11
  56. package/dist/Checkbox.js +0 -32
  57. package/dist/Checkbox.js.map +0 -1
  58. package/dist/Circle.d.ts +0 -5
  59. package/dist/Circle.js +0 -12
  60. package/dist/Circle.js.map +0 -1
  61. package/dist/Column.d.ts +0 -6
  62. package/dist/Column.js +0 -7
  63. package/dist/Column.js.map +0 -1
  64. package/dist/DarkMode.d.ts +0 -13
  65. package/dist/DarkMode.js +0 -62
  66. package/dist/DarkMode.js.map +0 -1
  67. package/dist/DateInput.d.ts +0 -13
  68. package/dist/DateInput.js +0 -29
  69. package/dist/DateInput.js.map +0 -1
  70. package/dist/DatePicker.d.ts +0 -11
  71. package/dist/DatePicker.js +0 -34
  72. package/dist/DatePicker.js.map +0 -1
  73. package/dist/DatetimeInput.d.ts +0 -13
  74. package/dist/DatetimeInput.js +0 -31
  75. package/dist/DatetimeInput.js.map +0 -1
  76. package/dist/DesignBook.d.ts +0 -1
  77. package/dist/DesignBook.js +0 -55
  78. package/dist/DesignBook.js.map +0 -1
  79. package/dist/Dialog.d.ts +0 -17
  80. package/dist/Dialog.js +0 -92
  81. package/dist/Dialog.js.map +0 -1
  82. package/dist/Dropdown.d.ts +0 -14
  83. package/dist/Dropdown.js +0 -65
  84. package/dist/Dropdown.js.map +0 -1
  85. package/dist/Emitter.d.ts +0 -6
  86. package/dist/Emitter.js +0 -19
  87. package/dist/Emitter.js.map +0 -1
  88. package/dist/FlexLayout.d.ts +0 -11
  89. package/dist/FlexLayout.js +0 -18
  90. package/dist/FlexLayout.js.map +0 -1
  91. package/dist/Icon.d.ts +0 -12
  92. package/dist/Icon.js +0 -60
  93. package/dist/Icon.js.map +0 -1
  94. package/dist/IconButton.d.ts +0 -9
  95. package/dist/IconButton.js +0 -31
  96. package/dist/IconButton.js.map +0 -1
  97. package/dist/IconLink.d.ts +0 -9
  98. package/dist/IconLink.js +0 -32
  99. package/dist/IconLink.js.map +0 -1
  100. package/dist/IconType.d.ts +0 -1
  101. package/dist/IconType.js +0 -2
  102. package/dist/IconType.js.map +0 -1
  103. package/dist/Interactable.d.ts +0 -50
  104. package/dist/Interactable.js +0 -169
  105. package/dist/Interactable.js.map +0 -1
  106. package/dist/JSSComment.d.ts +0 -10
  107. package/dist/JSSComment.js +0 -52
  108. package/dist/JSSComment.js.map +0 -1
  109. package/dist/Link.d.ts +0 -22
  110. package/dist/Link.js +0 -29
  111. package/dist/Link.js.map +0 -1
  112. package/dist/List.d.ts +0 -15
  113. package/dist/List.js +0 -29
  114. package/dist/List.js.map +0 -1
  115. package/dist/ListButtonItem.d.ts +0 -14
  116. package/dist/ListButtonItem.js +0 -11
  117. package/dist/ListButtonItem.js.map +0 -1
  118. package/dist/ListDivider.d.ts +0 -1
  119. package/dist/ListDivider.js +0 -12
  120. package/dist/ListDivider.js.map +0 -1
  121. package/dist/ListHeaderItem.d.ts +0 -10
  122. package/dist/ListHeaderItem.js +0 -15
  123. package/dist/ListHeaderItem.js.map +0 -1
  124. package/dist/ListItem.d.ts +0 -9
  125. package/dist/ListItem.js +0 -9
  126. package/dist/ListItem.js.map +0 -1
  127. package/dist/ListLinkItem.d.ts +0 -16
  128. package/dist/ListLinkItem.js +0 -11
  129. package/dist/ListLinkItem.js.map +0 -1
  130. package/dist/ListSpacer.d.ts +0 -1
  131. package/dist/ListSpacer.js +0 -13
  132. package/dist/ListSpacer.js.map +0 -1
  133. package/dist/MenuIcon.d.ts +0 -5
  134. package/dist/MenuIcon.js +0 -31
  135. package/dist/MenuIcon.js.map +0 -1
  136. package/dist/NextJSRouter.d.ts +0 -1
  137. package/dist/NextJSRouter.js +0 -37
  138. package/dist/NextJSRouter.js.map +0 -1
  139. package/dist/NextJSRouterState.d.ts +0 -38
  140. package/dist/NextJSRouterState.js +0 -111
  141. package/dist/NextJSRouterState.js.map +0 -1
  142. package/dist/OnVisible.d.ts +0 -5
  143. package/dist/OnVisible.js +0 -28
  144. package/dist/OnVisible.js.map +0 -1
  145. package/dist/Popover.d.ts +0 -22
  146. package/dist/Popover.js +0 -90
  147. package/dist/Popover.js.map +0 -1
  148. package/dist/ProgressBar.d.ts +0 -7
  149. package/dist/ProgressBar.js +0 -42
  150. package/dist/ProgressBar.js.map +0 -1
  151. package/dist/ProgressCircle.d.ts +0 -5
  152. package/dist/ProgressCircle.js +0 -12
  153. package/dist/ProgressCircle.js.map +0 -1
  154. package/dist/Providers.d.ts +0 -9
  155. package/dist/Providers.js +0 -16
  156. package/dist/Providers.js.map +0 -1
  157. package/dist/RangeInput.d.ts +0 -14
  158. package/dist/RangeInput.js +0 -32
  159. package/dist/RangeInput.js.map +0 -1
  160. package/dist/ResultOrError.d.ts +0 -13
  161. package/dist/ResultOrError.js +0 -7
  162. package/dist/ResultOrError.js.map +0 -1
  163. package/dist/RootView.d.ts +0 -5
  164. package/dist/RootView.js +0 -35
  165. package/dist/RootView.js.map +0 -1
  166. package/dist/Row.d.ts +0 -6
  167. package/dist/Row.js +0 -7
  168. package/dist/Row.js.map +0 -1
  169. package/dist/Select.d.ts +0 -9
  170. package/dist/Select.js +0 -17
  171. package/dist/Select.js.map +0 -1
  172. package/dist/StackContext.d.ts +0 -8
  173. package/dist/StackContext.js +0 -25
  174. package/dist/StackContext.js.map +0 -1
  175. package/dist/StaticCheckbox.d.ts +0 -16
  176. package/dist/StaticCheckbox.js +0 -48
  177. package/dist/StaticCheckbox.js.map +0 -1
  178. package/dist/Storage.d.ts +0 -13
  179. package/dist/Storage.js +0 -146
  180. package/dist/Storage.js.map +0 -1
  181. package/dist/Stream.d.ts +0 -9
  182. package/dist/Stream.js +0 -36
  183. package/dist/Stream.js.map +0 -1
  184. package/dist/Sublist.d.ts +0 -12
  185. package/dist/Sublist.js +0 -18
  186. package/dist/Sublist.js.map +0 -1
  187. package/dist/SubmitIconInput.d.ts +0 -8
  188. package/dist/SubmitIconInput.js +0 -25
  189. package/dist/SubmitIconInput.js.map +0 -1
  190. package/dist/Tabs.d.ts +0 -23
  191. package/dist/Tabs.js +0 -39
  192. package/dist/Tabs.js.map +0 -1
  193. package/dist/Text.d.ts +0 -25
  194. package/dist/Text.js +0 -52
  195. package/dist/Text.js.map +0 -1
  196. package/dist/TextArea.d.ts +0 -11
  197. package/dist/TextArea.js +0 -27
  198. package/dist/TextArea.js.map +0 -1
  199. package/dist/TextInput.d.ts +0 -15
  200. package/dist/TextInput.js +0 -61
  201. package/dist/TextInput.js.map +0 -1
  202. package/dist/TextInputWithState.d.ts +0 -8
  203. package/dist/TextInputWithState.js +0 -14
  204. package/dist/TextInputWithState.js.map +0 -1
  205. package/dist/TextPairing.d.ts +0 -21
  206. package/dist/TextPairing.js +0 -26
  207. package/dist/TextPairing.js.map +0 -1
  208. package/dist/TimeInput.d.ts +0 -15
  209. package/dist/TimeInput.js +0 -58
  210. package/dist/TimeInput.js.map +0 -1
  211. package/dist/Tooltip.d.ts +0 -11
  212. package/dist/Tooltip.js +0 -73
  213. package/dist/Tooltip.js.map +0 -1
  214. package/dist/aria.d.ts +0 -8
  215. package/dist/aria.js +0 -42
  216. package/dist/aria.js.map +0 -1
  217. package/dist/guid.d.ts +0 -1
  218. package/dist/guid.js +0 -7
  219. package/dist/guid.js.map +0 -1
  220. package/dist/hash.d.ts +0 -1
  221. package/dist/hash.js +0 -20
  222. package/dist/hash.js.map +0 -1
  223. package/dist/isServer.d.ts +0 -1
  224. package/dist/isServer.js +0 -4
  225. package/dist/isServer.js.map +0 -1
  226. package/dist/jss.d.ts +0 -122
  227. package/dist/jss.js +0 -515
  228. package/dist/jss.js.map +0 -1
  229. package/dist/numberToBase.d.ts +0 -1
  230. package/dist/numberToBase.js +0 -44
  231. package/dist/numberToBase.js.map +0 -1
  232. package/dist/stateMachineContextFactory.d.ts +0 -36
  233. package/dist/stateMachineContextFactory.js +0 -48
  234. package/dist/stateMachineContextFactory.js.map +0 -1
  235. package/dist/useCookie.d.ts +0 -9
  236. package/dist/useCookie.js +0 -67
  237. package/dist/useCookie.js.map +0 -1
  238. package/dist/useKeyboard.d.ts +0 -8
  239. package/dist/useKeyboard.js +0 -26
  240. package/dist/useKeyboard.js.map +0 -1
  241. package/dist/useNavigation.d.ts +0 -5
  242. package/dist/useNavigation.js +0 -79
  243. package/dist/useNavigation.js.map +0 -1
  244. package/dist/usePromise.d.ts +0 -1
  245. package/dist/usePromise.js +0 -12
  246. package/dist/usePromise.js.map +0 -1
  247. package/dist/useRefEffect.d.ts +0 -1
  248. package/dist/useRefEffect.js +0 -15
  249. package/dist/useRefEffect.js.map +0 -1
  250. package/jss-debug-loader.mjs +0 -44
  251. package/next-env.d.ts +0 -6
  252. package/next.config.js +0 -33
  253. package/scripts/embeddings.js +0 -93
  254. package/scripts/openai_embeddings.js +0 -100
  255. package/scripts/publish.js +0 -28
  256. package/scripts/test_embeddings.js +0 -47
  257. package/src/Badge.tsx +0 -36
  258. package/src/BaseButton.tsx +0 -62
  259. package/src/BaseInput.tsx +0 -63
  260. package/src/BaseLink.tsx +0 -80
  261. package/src/BaseList.tsx +0 -26
  262. package/src/BaseListAddOn.tsx +0 -10
  263. package/src/BaseListItem.tsx +0 -119
  264. package/src/BaseView.tsx +0 -57
  265. package/src/Box.tsx +0 -20
  266. package/src/Button.tsx +0 -90
  267. package/src/Calendar.tsx +0 -125
  268. package/src/Card.tsx +0 -30
  269. package/src/Checkbox.tsx +0 -63
  270. package/src/Circle.tsx +0 -24
  271. package/src/Column.tsx +0 -12
  272. package/src/DarkMode.tsx +0 -100
  273. package/src/DateInput.tsx +0 -63
  274. package/src/DatePicker.tsx +0 -67
  275. package/src/DatetimeInput.tsx +0 -64
  276. package/src/DesignBook.tsx +0 -677
  277. package/src/Dialog.tsx +0 -150
  278. package/src/Dropdown.tsx +0 -146
  279. package/src/Emitter.ts +0 -26
  280. package/src/FlexLayout.tsx +0 -53
  281. package/src/Icon.tsx +0 -80
  282. package/src/IconButton.tsx +0 -58
  283. package/src/IconLink.tsx +0 -59
  284. package/src/IconType.ts +0 -787
  285. package/src/Interactable.tsx +0 -210
  286. package/src/JSSComment.tsx +0 -56
  287. package/src/Link.tsx +0 -110
  288. package/src/List.tsx +0 -58
  289. package/src/ListButtonItem.tsx +0 -69
  290. package/src/ListDivider.tsx +0 -13
  291. package/src/ListHeaderItem.tsx +0 -45
  292. package/src/ListItem.tsx +0 -24
  293. package/src/ListLinkItem.tsx +0 -76
  294. package/src/ListSpacer.tsx +0 -14
  295. package/src/MenuIcon.tsx +0 -50
  296. package/src/NextJSRouter.tsx +0 -62
  297. package/src/NextJSRouterState.tsx +0 -154
  298. package/src/OnVisible.tsx +0 -42
  299. package/src/Popover.tsx +0 -145
  300. package/src/ProgressBar.tsx +0 -63
  301. package/src/ProgressCircle.tsx +0 -38
  302. package/src/Providers.tsx +0 -33
  303. package/src/RangeInput.tsx +0 -82
  304. package/src/ResultOrError.ts +0 -15
  305. package/src/RootView.tsx +0 -55
  306. package/src/Row.tsx +0 -12
  307. package/src/Select.tsx +0 -39
  308. package/src/StackContext.tsx +0 -52
  309. package/src/StaticCheckbox.tsx +0 -72
  310. package/src/Storage.tsx +0 -198
  311. package/src/Stream.tsx +0 -50
  312. package/src/Sublist.tsx +0 -61
  313. package/src/SubmitIconInput.tsx +0 -45
  314. package/src/Tabs.tsx +0 -110
  315. package/src/Text.tsx +0 -111
  316. package/src/TextArea.tsx +0 -58
  317. package/src/TextInput.tsx +0 -123
  318. package/src/TextInputWithState.tsx +0 -32
  319. package/src/TextPairing.tsx +0 -115
  320. package/src/TimeInput.tsx +0 -109
  321. package/src/Tooltip.tsx +0 -109
  322. package/src/aria.ts +0 -72
  323. package/src/docs/mdx.tsx +0 -137
  324. package/src/docs/pages.ts +0 -115
  325. package/src/docs/searchIndex.ts +0 -1
  326. package/src/examples/ExampleDialog.tsx +0 -28
  327. package/src/guid.ts +0 -7
  328. package/src/hash.ts +0 -21
  329. package/src/index.ts +0 -68
  330. package/src/isServer.ts +0 -3
  331. package/src/jss.tsx +0 -712
  332. package/src/jsx-dev-runtime.ts +0 -74
  333. package/src/jsx-runtime.ts +0 -2
  334. package/src/numberToBase.ts +0 -52
  335. package/src/pages/Badge.mdx +0 -152
  336. package/src/pages/Button.mdx +0 -163
  337. package/src/pages/Calendar.mdx +0 -254
  338. package/src/pages/Card.mdx +0 -147
  339. package/src/pages/Checkbox.mdx +0 -131
  340. package/src/pages/Dialog.mdx +0 -197
  341. package/src/pages/FlexLayout.mdx +0 -211
  342. package/src/pages/Hashing.mdx +0 -211
  343. package/src/pages/Icon.mdx +0 -171
  344. package/src/pages/IconButton.mdx +0 -155
  345. package/src/pages/Link.mdx +0 -160
  346. package/src/pages/List.mdx +0 -262
  347. package/src/pages/ListHeader.mdx +0 -220
  348. package/src/pages/Popover.mdx +0 -223
  349. package/src/pages/ProgressBar.mdx +0 -200
  350. package/src/pages/ProgressCircle.mdx +0 -218
  351. package/src/pages/RangeInput.mdx +0 -237
  352. package/src/pages/Tabs.mdx +0 -281
  353. package/src/pages/Text.mdx +0 -154
  354. package/src/pages/TextInput.mdx +0 -235
  355. package/src/pages/TextPairing.mdx +0 -204
  356. package/src/pages/TimeInput.mdx +0 -178
  357. package/src/pages/Tooltip.mdx +0 -115
  358. package/src/pages/_app.tsx +0 -466
  359. package/src/pages/_document.tsx +0 -30
  360. package/src/pages/css-in-js.mdx +0 -240
  361. package/src/pages/index.mdx +0 -58
  362. package/src/pages/navigation.mdx +0 -158
  363. package/src/pages/prism.css +0 -3
  364. package/src/pages/useCookie.mdx +0 -176
  365. package/src/pages/useKeyboard.mdx +0 -257
  366. package/src/pages/useNavigation.mdx +0 -258
  367. package/src/pages/usePromise.mdx +0 -280
  368. package/src/pages/useRefEffect.mdx +0 -251
  369. package/src/stateMachineContextFactory.tsx +0 -111
  370. package/src/useCookie.tsx +0 -95
  371. package/src/useKeyboard.tsx +0 -43
  372. package/src/useNavigation.tsx +0 -89
  373. package/src/usePromise.tsx +0 -18
  374. package/src/useRefEffect.tsx +0 -18
  375. package/src/vite-plugin-jss-debug.ts +0 -75
  376. package/tsconfig.build.json +0 -23
  377. package/tsconfig.json +0 -38
@@ -1,2 +1,6 @@
1
- export { Fragment } from "react/jsx-dev-runtime";
2
- export declare function jsxDEV(type: any, props: any, key: any, isStaticChildren: boolean, source: any, self: any): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
1
+ import * as React from 'react';
2
+ export { Fragment, JSX } from 'react/jsx-dev-runtime';
3
+
4
+ declare function jsxDEV(type: any, props: any, key: any, isStaticChildren: boolean, source: any, self: any): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
5
+
6
+ export { jsxDEV };
@@ -1,48 +1,93 @@
1
- // Custom JSX dev runtime that injects <!-- ComponentName --> comments
2
- // into the DOM at component boundaries.
3
- //
4
- // Usage: in tsconfig.json, set "jsxImportSource": "aidos-ui/src"
5
- // (or wherever this file is importable from)
6
- export { Fragment } from "react/jsx-dev-runtime";
7
- import { jsxDEV as _jsxDEV, Fragment } from "react/jsx-dev-runtime";
8
- import { JSSComment } from "./JSSComment";
9
- const wrapCache = new WeakMap();
10
- function getWrapped(type) {
11
- let wrapped = wrapCache.get(type);
12
- if (wrapped)
13
- return wrapped;
14
- const name = type.displayName || type.name;
15
- wrapped = function JSSBoundary(props) {
16
- return _jsxDEV(Fragment, {
17
- children: [
18
- _jsxDEV(JSSComment, { name }, undefined, false, undefined, undefined),
19
- _jsxDEV(type, props, undefined, false, undefined, undefined),
20
- ],
21
- }, undefined, true, undefined, undefined);
1
+ import { jsxDEV as jsxDEV$1, Fragment } from 'react/jsx-dev-runtime';
2
+ export { Fragment } from 'react/jsx-dev-runtime';
3
+ import React, { useRef, useEffect } from 'react';
4
+
5
+ // src/jsx-dev-runtime.ts
6
+ function JSSComment({ name }) {
7
+ const fiberRef = useRef(null);
8
+ try {
9
+ const internals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
10
+ fiberRef.current = internals?.ReactCurrentOwner?.current;
11
+ } catch {
12
+ }
13
+ useEffect(() => {
14
+ const fiber = fiberRef.current;
15
+ if (!fiber) return;
16
+ const sibling = fiber.sibling;
17
+ if (!sibling) return;
18
+ const hostNode = findFirstDOMNode(sibling);
19
+ if (!hostNode?.parentNode) return;
20
+ const comment = document.createComment(` ${name} `);
21
+ hostNode.parentNode.insertBefore(comment, hostNode);
22
+ return () => {
23
+ comment.remove();
22
24
  };
23
- wrapped.displayName = name;
24
- wrapCache.set(type, wrapped);
25
- return wrapped;
25
+ }, [name]);
26
+ return null;
27
+ }
28
+ function findFirstDOMNode(fiber) {
29
+ let current = fiber;
30
+ while (current) {
31
+ if (current.stateNode instanceof Node) {
32
+ return current.stateNode;
33
+ }
34
+ if (current.child) {
35
+ current = current.child;
36
+ continue;
37
+ }
38
+ break;
39
+ }
40
+ return null;
26
41
  }
27
- // Skip our own wrapper components by name
28
- const SKIP_NAMES = new Set(["JSSComment", "JSSBoundary"]);
42
+
43
+ // src/jsx-dev-runtime.ts
44
+ var wrapCache = /* @__PURE__ */ new WeakMap();
45
+ function getWrapped(type) {
46
+ let wrapped = wrapCache.get(type);
47
+ if (wrapped) return wrapped;
48
+ const name = type.displayName || type.name;
49
+ wrapped = function JSSBoundary(props) {
50
+ return jsxDEV$1(
51
+ Fragment,
52
+ {
53
+ children: [
54
+ jsxDEV$1(JSSComment, { name }, void 0, false, void 0, void 0),
55
+ jsxDEV$1(type, props, void 0, false, void 0, void 0)
56
+ ]
57
+ },
58
+ void 0,
59
+ true,
60
+ void 0,
61
+ void 0
62
+ );
63
+ };
64
+ wrapped.displayName = name;
65
+ wrapCache.set(type, wrapped);
66
+ return wrapped;
67
+ }
68
+ var SKIP_NAMES = /* @__PURE__ */ new Set(["JSSComment", "JSSBoundary"]);
29
69
  function isUserComponent(type, source) {
30
- if (typeof type !== "function")
31
- return false;
32
- const name = type.displayName || type.name;
33
- if (!name || !/^[A-Z]/.test(name))
34
- return false;
35
- if (SKIP_NAMES.has(name))
36
- return false;
37
- // Use the source fileName from the JSX transform to skip node_modules
38
- if (source?.fileName?.includes("node_modules"))
39
- return false;
40
- return true;
70
+ if (typeof type !== "function") return false;
71
+ const name = type.displayName || type.name;
72
+ if (!name || !/^[A-Z]/.test(name)) return false;
73
+ if (SKIP_NAMES.has(name)) return false;
74
+ if (source?.fileName?.includes("node_modules")) return false;
75
+ return true;
41
76
  }
42
- export function jsxDEV(type, props, key, isStaticChildren, source, self) {
43
- if (isUserComponent(type, source)) {
44
- return _jsxDEV(getWrapped(type), props, key, isStaticChildren, source, self);
45
- }
46
- return _jsxDEV(type, props, key, isStaticChildren, source, self);
77
+ function jsxDEV(type, props, key, isStaticChildren, source, self) {
78
+ if (isUserComponent(type, source)) {
79
+ return jsxDEV$1(
80
+ getWrapped(type),
81
+ props,
82
+ key,
83
+ isStaticChildren,
84
+ source,
85
+ self
86
+ );
87
+ }
88
+ return jsxDEV$1(type, props, key, isStaticChildren, source, self);
47
89
  }
90
+
91
+ export { jsxDEV };
92
+ //# sourceMappingURL=jsx-dev-runtime.js.map
48
93
  //# sourceMappingURL=jsx-dev-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../src/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,wCAAwC;AACxC,EAAE;AACF,iEAAiE;AACjE,6CAA6C;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,SAAS,GAAG,IAAI,OAAO,EAAsB,CAAC;AAEpD,SAAS,UAAU,CAAC,IAAc;IAChC,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,IAAI,GAAI,IAAY,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;IAEpD,OAAO,GAAG,SAAS,WAAW,CAAC,KAAU;QACvC,OAAO,OAAO,CACZ,QAAQ,EACR;YACE,QAAQ,EAAE;gBACR,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;gBACrE,OAAO,CAAC,IAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;aACpE;SACF,EACD,SAAS,EACT,IAAI,EACJ,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC,CAAC;IAED,OAAe,CAAC,WAAW,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;AAE1D,SAAS,eAAe,CAAC,IAAS,EAAE,MAAW;IAC7C,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;IAC3C,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,sEAAsE;IACtE,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,IAAS,EACT,KAAU,EACV,GAAQ,EACR,gBAAyB,EACzB,MAAW,EACX,IAAS;IAET,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,OAAO,CACZ,UAAU,CAAC,IAAI,CAAQ,EACvB,KAAK,EACL,GAAG,EACH,gBAAgB,EAChB,MAAM,EACN,IAAI,CACL,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"sources":["../src/JSSComment.tsx","../src/jsx-dev-runtime.ts"],"names":["_jsxDEV","Fragment"],"mappings":"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","file":"jsx-dev-runtime.js","sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\n/**\n * Injects a real HTML comment node (<!-- ComponentName -->) into the DOM.\n *\n * Renders nothing (null). Uses the React fiber tree to locate the sibling\n * component's first DOM node, then inserts a comment before it.\n * Client-only — no SSR output, no hydration mismatch.\n */\nexport function JSSComment({ name }: { name: string }) {\n const fiberRef = useRef<any>(null);\n\n // Capture our fiber during render\n try {\n const internals = (React as any)\n .__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n fiberRef.current = internals?.ReactCurrentOwner?.current;\n } catch {}\n\n useEffect(() => {\n const fiber = fiberRef.current;\n if (!fiber) return;\n\n // Our sibling in the Fragment is the actual component\n const sibling = fiber.sibling;\n if (!sibling) return;\n\n // Walk down the sibling's fiber tree to find its first DOM node\n const hostNode = findFirstDOMNode(sibling);\n if (!hostNode?.parentNode) return;\n\n const comment = document.createComment(` ${name} `);\n hostNode.parentNode.insertBefore(comment, hostNode);\n\n return () => {\n comment.remove();\n };\n }, [name]);\n\n return null;\n}\n\nfunction findFirstDOMNode(fiber: any): Node | null {\n let current = fiber;\n while (current) {\n if (current.stateNode instanceof Node) {\n return current.stateNode;\n }\n if (current.child) {\n current = current.child;\n continue;\n }\n break;\n }\n return null;\n}\n","// Custom JSX dev runtime that injects <!-- ComponentName --> comments\n// into the DOM at component boundaries.\n//\n// Usage: in tsconfig.json, set \"jsxImportSource\": \"aidos-ui/src\"\n// (or wherever this file is importable from)\n\nexport { Fragment } from \"react/jsx-dev-runtime\";\nexport type { JSX } from \"react/jsx-dev-runtime\";\nimport { jsxDEV as _jsxDEV, Fragment } from \"react/jsx-dev-runtime\";\nimport { JSSComment } from \"./JSSComment\";\n\nconst wrapCache = new WeakMap<Function, Function>();\n\nfunction getWrapped(type: Function): Function {\n let wrapped = wrapCache.get(type);\n if (wrapped) return wrapped;\n\n const name = (type as any).displayName || type.name;\n\n wrapped = function JSSBoundary(props: any) {\n return _jsxDEV(\n Fragment,\n {\n children: [\n _jsxDEV(JSSComment, { name }, undefined, false, undefined, undefined),\n _jsxDEV(type as any, props, undefined, false, undefined, undefined),\n ],\n },\n undefined,\n true,\n undefined,\n undefined\n );\n };\n\n (wrapped as any).displayName = name;\n wrapCache.set(type, wrapped);\n\n return wrapped;\n}\n\n// Skip our own wrapper components by name\nconst SKIP_NAMES = new Set([\"JSSComment\", \"JSSBoundary\"]);\n\nfunction isUserComponent(type: any, source: any): boolean {\n if (typeof type !== \"function\") return false;\n const name = type.displayName || type.name;\n if (!name || !/^[A-Z]/.test(name)) return false;\n if (SKIP_NAMES.has(name)) return false;\n // Use the source fileName from the JSX transform to skip node_modules\n if (source?.fileName?.includes(\"node_modules\")) return false;\n return true;\n}\n\nexport function jsxDEV(\n type: any,\n props: any,\n key: any,\n isStaticChildren: boolean,\n source: any,\n self: any\n) {\n if (isUserComponent(type, source)) {\n return _jsxDEV(\n getWrapped(type) as any,\n props,\n key,\n isStaticChildren,\n source,\n self\n );\n }\n\n return _jsxDEV(type, props, key, isStaticChildren, source, self);\n}\n"]}
@@ -1 +1 @@
1
- export { jsx, jsxs, Fragment } from "react/jsx-runtime";
1
+ export { Fragment, JSX, jsx, jsxs } from 'react/jsx-runtime';
@@ -1,3 +1,3 @@
1
- // Production JSX runtime — straight passthrough, no component annotations.
2
- export { jsx, jsxs, Fragment } from "react/jsx-runtime";
1
+ export { Fragment, jsx, jsxs } from 'react/jsx-runtime';
2
+ //# sourceMappingURL=jsx-runtime.js.map
3
3
  //# sourceMappingURL=jsx-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"jsx-runtime.js","sourcesContent":[]}
@@ -11,13 +11,17 @@
11
11
  * import jssDebug from "aidos-ui/vite-plugin-jss-debug";
12
12
  * export default defineConfig({ plugins: [jssDebug()] });
13
13
  */
14
- export default function jssDebug(): ({
14
+ declare function jssDebug(): ({
15
15
  name: string;
16
- config(): {
17
- esbuild: {
18
- jsx: string;
19
- jsxDev: boolean;
20
- jsxImportSource: string;
16
+ config(_config: unknown, { command }: {
17
+ command: string;
18
+ }): {
19
+ oxc: {
20
+ jsx: {
21
+ runtime: string;
22
+ development: boolean;
23
+ importSource: string;
24
+ };
21
25
  };
22
26
  };
23
27
  enforce?: undefined;
@@ -31,3 +35,5 @@ export default function jssDebug(): ({
31
35
  };
32
36
  config?: undefined;
33
37
  })[];
38
+
39
+ export { jssDebug as default };
@@ -1,74 +1,59 @@
1
- import path from "path";
2
- /**
3
- * Vite plugin that enables JSS debug tooling:
4
- *
5
- * 1. Injects component names into toClassnames() calls so they appear as CSS classes.
6
- * toClassnames(jss) → toClassnames(jss, "Card")
7
- *
8
- * 2. Configures the custom JSX dev runtime that injects <!-- ComponentName -->
9
- * HTML comments at component boundaries (same approach as the Next.js setup).
10
- *
11
- * Usage in vite.config.ts:
12
- * import jssDebug from "aidos-ui/vite-plugin-jss-debug";
13
- * export default defineConfig({ plugins: [jssDebug()] });
14
- */
15
- export default function jssDebug() {
16
- return [
17
- {
18
- name: "jss-debug-jsx",
19
- config() {
20
- return {
21
- esbuild: {
22
- jsx: "automatic",
23
- jsxDev: true,
24
- jsxImportSource: "aidos-ui",
25
- },
26
- };
27
- },
28
- },
29
- {
30
- name: "jss-debug-classnames",
31
- enforce: "pre",
32
- transform(code, id) {
33
- if (id.includes("node_modules"))
34
- return;
35
- if (!id.match(/\.[jt]sx?$/))
36
- return;
37
- if (!code.includes("toClassnames("))
38
- return;
39
- const filename = path.basename(id, path.extname(id));
40
- const name = JSON.stringify(filename);
41
- const needle = "toClassnames(";
42
- let result = "";
43
- let i = 0;
44
- while (i < code.length) {
45
- const idx = code.indexOf(needle, i);
46
- if (idx === -1) {
47
- result += code.slice(i);
48
- break;
49
- }
50
- // Copy everything up to and including "toClassnames("
51
- result += code.slice(i, idx + needle.length);
52
- i = idx + needle.length;
53
- // Track parens to find the matching closing )
54
- let depth = 1;
55
- let j = i;
56
- while (j < code.length && depth > 0) {
57
- const ch = code[j];
58
- if (ch === "(")
59
- depth++;
60
- else if (ch === ")")
61
- depth--;
62
- if (depth > 0)
63
- j++;
64
- }
65
- // Copy the original arguments, then inject the component name
66
- result += code.slice(i, j) + ", " + name;
67
- i = j;
68
- }
69
- return { code: result, map: null };
70
- },
71
- },
72
- ];
1
+ import path from 'path';
2
+
3
+ // src/vite-plugin-jss-debug.ts
4
+ function jssDebug() {
5
+ return [
6
+ {
7
+ name: "jss-debug-jsx",
8
+ config(_config, { command }) {
9
+ return {
10
+ oxc: {
11
+ jsx: {
12
+ runtime: "automatic",
13
+ development: command === "serve",
14
+ importSource: "aidos-ui"
15
+ }
16
+ }
17
+ };
18
+ }
19
+ },
20
+ {
21
+ name: "jss-debug-classnames",
22
+ enforce: "pre",
23
+ transform(code, id) {
24
+ if (id.includes("node_modules")) return;
25
+ if (!id.match(/\.[jt]sx?$/)) return;
26
+ if (!code.includes("toClassnames(")) return;
27
+ const filename = path.basename(id, path.extname(id));
28
+ const name = JSON.stringify(filename);
29
+ const needle = "toClassnames(";
30
+ let result = "";
31
+ let i = 0;
32
+ while (i < code.length) {
33
+ const idx = code.indexOf(needle, i);
34
+ if (idx === -1) {
35
+ result += code.slice(i);
36
+ break;
37
+ }
38
+ result += code.slice(i, idx + needle.length);
39
+ i = idx + needle.length;
40
+ let depth = 1;
41
+ let j = i;
42
+ while (j < code.length && depth > 0) {
43
+ const ch = code[j];
44
+ if (ch === "(") depth++;
45
+ else if (ch === ")") depth--;
46
+ if (depth > 0) j++;
47
+ }
48
+ result += code.slice(i, j) + ", " + name;
49
+ i = j;
50
+ }
51
+ return { code: result, map: null };
52
+ }
53
+ }
54
+ ];
73
55
  }
56
+
57
+ export { jssDebug as default };
58
+ //# sourceMappingURL=vite-plugin-jss-debug.js.map
74
59
  //# sourceMappingURL=vite-plugin-jss-debug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin-jss-debug.js","sourceRoot":"","sources":["../src/vite-plugin-jss-debug.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ;IAC9B,OAAO;QACL;YACE,IAAI,EAAE,eAAe;YACrB,MAAM;gBACJ,OAAO;oBACL,OAAO,EAAE;wBACP,GAAG,EAAE,WAAW;wBAChB,MAAM,EAAE,IAAI;wBACZ,eAAe,EAAE,UAAU;qBAC5B;iBACF,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,KAAc;YAEvB,SAAS,CAAC,IAAY,EAAE,EAAU;gBAChC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAAE,OAAO;gBACxC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;oBAAE,OAAO;gBACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;oBAAE,OAAO;gBAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACpC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;wBACf,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACxB,MAAM;oBACR,CAAC;oBAED,sDAAsD;oBACtD,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;oBAExB,8CAA8C;oBAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,GAAG,CAAC,CAAC;oBACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;wBACpC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,EAAE,KAAK,GAAG;4BAAE,KAAK,EAAE,CAAC;6BACnB,IAAI,EAAE,KAAK,GAAG;4BAAE,KAAK,EAAE,CAAC;wBAC7B,IAAI,KAAK,GAAG,CAAC;4BAAE,CAAC,EAAE,CAAC;oBACrB,CAAC;oBAED,8DAA8D;oBAC9D,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;oBACzC,CAAC,GAAG,CAAC,CAAC;gBACR,CAAC;gBAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACrC,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"sources":["../src/vite-plugin-jss-debug.ts"],"names":[],"mappings":";;;AAee,SAAR,QAAA,GAA4B;AACjC,EAAA,OAAO;AAAA,IACL;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,MAAA,CAAO,OAAA,EAAkB,EAAE,OAAA,EAAQ,EAAwB;AACzD,QAAA,OAAO;AAAA,UACL,GAAA,EAAK;AAAA,YACH,GAAA,EAAK;AAAA,cACH,OAAA,EAAS,WAAA;AAAA,cACT,aAAa,OAAA,KAAY,OAAA;AAAA,cACzB,YAAA,EAAc;AAAA;AAChB;AACF,SACF;AAAA,MACF;AAAA,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,sBAAA;AAAA,MACN,OAAA,EAAS,KAAA;AAAA,MAET,SAAA,CAAU,MAAc,EAAA,EAAY;AAClC,QAAA,IAAI,EAAA,CAAG,QAAA,CAAS,cAAc,CAAA,EAAG;AACjC,QAAA,IAAI,CAAC,EAAA,CAAG,KAAA,CAAM,YAAY,CAAA,EAAG;AAC7B,QAAA,IAAI,CAAC,IAAA,CAAK,QAAA,CAAS,eAAe,CAAA,EAAG;AAErC,QAAA,MAAM,WAAW,IAAA,CAAK,QAAA,CAAS,IAAI,IAAA,CAAK,OAAA,CAAQ,EAAE,CAAC,CAAA;AACnD,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAA;AACpC,QAAA,MAAM,MAAA,GAAS,eAAA;AACf,QAAA,IAAI,MAAA,GAAS,EAAA;AACb,QAAA,IAAI,CAAA,GAAI,CAAA;AAER,QAAA,OAAO,CAAA,GAAI,KAAK,MAAA,EAAQ;AACtB,UAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,MAAA,EAAQ,CAAC,CAAA;AAClC,UAAA,IAAI,QAAQ,EAAA,EAAI;AACd,YAAA,MAAA,IAAU,IAAA,CAAK,MAAM,CAAC,CAAA;AACtB,YAAA;AAAA,UACF;AAGA,UAAA,MAAA,IAAU,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,GAAA,GAAM,OAAO,MAAM,CAAA;AAC3C,UAAA,CAAA,GAAI,MAAM,MAAA,CAAO,MAAA;AAGjB,UAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,UAAA,IAAI,CAAA,GAAI,CAAA;AACR,UAAA,OAAO,CAAA,GAAI,IAAA,CAAK,MAAA,IAAU,KAAA,GAAQ,CAAA,EAAG;AACnC,YAAA,MAAM,EAAA,GAAK,KAAK,CAAC,CAAA;AACjB,YAAA,IAAI,OAAO,GAAA,EAAK,KAAA,EAAA;AAAA,iBAAA,IACP,OAAO,GAAA,EAAK,KAAA,EAAA;AACrB,YAAA,IAAI,QAAQ,CAAA,EAAG,CAAA,EAAA;AAAA,UACjB;AAGA,UAAA,MAAA,IAAU,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,IAAI,IAAA,GAAO,IAAA;AACpC,UAAA,CAAA,GAAI,CAAA;AAAA,QACN;AAEA,QAAA,OAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,IAAA,EAAK;AAAA,MACnC;AAAA;AACF,GACF;AACF","file":"vite-plugin-jss-debug.js","sourcesContent":["import path from \"node:path\";\n\n/**\n * Vite plugin that enables JSS debug tooling:\n *\n * 1. Injects component names into toClassnames() calls so they appear as CSS classes.\n * toClassnames(jss) → toClassnames(jss, \"Card\")\n *\n * 2. Configures the custom JSX dev runtime that injects <!-- ComponentName -->\n * HTML comments at component boundaries (same approach as the Next.js setup).\n *\n * Usage in vite.config.ts:\n * import jssDebug from \"aidos-ui/vite-plugin-jss-debug\";\n * export default defineConfig({ plugins: [jssDebug()] });\n */\nexport default function jssDebug() {\n return [\n {\n name: \"jss-debug-jsx\",\n config(_config: unknown, { command }: { command: string }) {\n return {\n oxc: {\n jsx: {\n runtime: \"automatic\",\n development: command === \"serve\",\n importSource: \"aidos-ui\",\n },\n },\n };\n },\n },\n {\n name: \"jss-debug-classnames\",\n enforce: \"pre\" as const,\n\n transform(code: string, id: string) {\n if (id.includes(\"node_modules\")) return;\n if (!id.match(/\\.[jt]sx?$/)) return;\n if (!code.includes(\"toClassnames(\")) return;\n\n const filename = path.basename(id, path.extname(id));\n const name = JSON.stringify(filename);\n const needle = \"toClassnames(\";\n let result = \"\";\n let i = 0;\n\n while (i < code.length) {\n const idx = code.indexOf(needle, i);\n if (idx === -1) {\n result += code.slice(i);\n break;\n }\n\n // Copy everything up to and including \"toClassnames(\"\n result += code.slice(i, idx + needle.length);\n i = idx + needle.length;\n\n // Track parens to find the matching closing )\n let depth = 1;\n let j = i;\n while (j < code.length && depth > 0) {\n const ch = code[j];\n if (ch === \"(\") depth++;\n else if (ch === \")\") depth--;\n if (depth > 0) j++;\n }\n\n // Copy the original arguments, then inject the component name\n result += code.slice(i, j) + \", \" + name;\n i = j;\n }\n\n return { code: result, map: null };\n },\n },\n ];\n}\n"]}
package/package.json CHANGED
@@ -1,45 +1,77 @@
1
1
  {
2
2
  "name": "aidos-ui",
3
- "version": "4.0.3",
4
- "description": "A simple UI framework",
3
+ "version": "4.0.5",
4
+ "description": "An opinionated React component library with built-in theming and CSS-in-JS",
5
+ "keywords": [
6
+ "react",
7
+ "components",
8
+ "ui",
9
+ "design-system",
10
+ "css-in-js"
11
+ ],
12
+ "homepage": "https://aidos-ui.vercel.app",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/germtb/aidos-ui.git"
16
+ },
17
+ "bugs": {
18
+ "url": "https://github.com/germtb/aidos-ui/issues"
19
+ },
5
20
  "main": "./dist/index.js",
6
21
  "types": "./dist/index.d.ts",
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "sideEffects": false,
7
26
  "exports": {
8
27
  ".": {
9
28
  "types": "./dist/index.d.ts",
10
- "default": "./dist/index.js"
29
+ "import": "./dist/index.js"
11
30
  },
12
31
  "./jsx-runtime": {
13
32
  "types": "./dist/jsx-runtime.d.ts",
14
- "default": "./dist/jsx-runtime.js"
33
+ "import": "./dist/jsx-runtime.js"
15
34
  },
16
35
  "./jsx-dev-runtime": {
17
36
  "types": "./dist/jsx-dev-runtime.d.ts",
18
- "default": "./dist/jsx-dev-runtime.js"
37
+ "import": "./dist/jsx-dev-runtime.js"
19
38
  },
20
39
  "./vite-plugin-jss-debug": {
21
40
  "types": "./dist/vite-plugin-jss-debug.d.ts",
22
- "default": "./dist/vite-plugin-jss-debug.js"
23
- }
41
+ "import": "./dist/vite-plugin-jss-debug.js"
42
+ },
43
+ "./package.json": "./package.json"
24
44
  },
25
45
  "scripts": {
26
46
  "embeddings": "node ./scripts/embeddings.js",
27
- "dev": "next dev",
47
+ "dev": "next dev docs",
28
48
  "publish:patch": "node ./scripts/publish.js --patch",
29
- "build": "next build",
30
- "build:lib": "rimraf ./dist && tsc --project tsconfig.build.json",
31
- "tsc": "tsc",
32
- "tsc:watch": "tsc --watch",
33
- "start": "next start",
34
- "lint": "next lint"
49
+ "build": "next build docs",
50
+ "build:lib": "tsup",
51
+ "prepack": "npm run build:lib",
52
+ "tsc": "tsc --noEmit && tsc --project docs/tsconfig.json --noEmit",
53
+ "tsc:watch": "tsc --noEmit --watch",
54
+ "start": "next start docs",
55
+ "lint": "eslint src docs",
56
+ "check:package": "publint && attw --pack . --profile esm-only"
35
57
  },
36
58
  "type": "module",
37
59
  "author": "Gerard Moreno-Torres Bertran",
38
- "license": "ISC",
60
+ "license": "MIT",
61
+ "engines": {
62
+ "node": ">=18"
63
+ },
64
+ "packageManager": "npm@11.16.0",
65
+ "publishConfig": {
66
+ "access": "public"
67
+ },
39
68
  "devDependencies": {
69
+ "@arethetypeswrong/cli": "^0.18.5",
70
+ "@iconify-json/fa": "^1.2.2",
71
+ "@iconify-json/fa-solid": "^1.2.2",
40
72
  "@mdx-js/loader": "^3.1.1",
41
73
  "@mdx-js/react": "^3.1.1",
42
- "@next/mdx": "^16.1.5",
74
+ "@next/mdx": "^16.2.12",
43
75
  "@types/node": "^25.0.10",
44
76
  "@types/prismjs": "^1.26.5",
45
77
  "@types/react": "^19.2.9",
@@ -47,26 +79,25 @@
47
79
  "@xenova/transformers": "^2.17.2",
48
80
  "csstype": "^3.2.3",
49
81
  "dotenv": "^17.2.3",
50
- "install": "^0.13.0",
51
- "next": "latest",
52
- "npm": "^11.8.0",
82
+ "eslint": "^9.39.5",
83
+ "eslint-config-next": "^16.2.12",
84
+ "next": "^16.2.12",
53
85
  "openai": "^6.16.0",
54
86
  "prismjs": "^1.30.0",
55
- "process": "^0.11.10",
56
- "react-dom": "latest",
87
+ "publint": "^0.3.22",
88
+ "react": "^19.2.0",
89
+ "react-dom": "^19.2.0",
90
+ "remark-gfm": "^4.0.1",
57
91
  "remark-mdx": "^3.1.1",
58
92
  "remark-parse": "^11.0.0",
59
- "rimraf": "^6.1.2",
93
+ "tsup": "^8.5.1",
60
94
  "typescript": "^5.9.3",
61
95
  "unified": "^11.0.5"
62
96
  },
63
97
  "dependencies": {
64
- "@iconify-json/fa": "^1.2.2",
65
- "@iconify-json/fa-solid": "^1.2.2",
66
- "@iconify/react": "^6.0.2",
67
- "remark-gfm": "^4.0.1"
98
+ "@iconify/react": "^6.0.2"
68
99
  },
69
100
  "peerDependencies": {
70
- "react": "latest"
101
+ "react": ">=18.2.0 <20"
71
102
  }
72
103
  }
@@ -1,22 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(npm publish:*)",
5
- "Bash(npm whoami:*)",
6
- "Bash(npm run dev:*)",
7
- "Bash(npx npm-check-updates:*)",
8
- "Bash(npm install:*)",
9
- "Bash(npm run build:lib:*)",
10
- "Bash(npm run build:*)",
11
- "Bash(npm ls:*)",
12
- "Bash(npm show:*)",
13
- "Bash(npm info:*)",
14
- "WebFetch(domain:iconify.design)",
15
- "Bash(ls:*)",
16
- "Bash(xargs basename:*)",
17
- "Bash(pkill:*)",
18
- "Bash(npx tsc:*)",
19
- "WebSearch"
20
- ]
21
- }
22
- }
package/.prettierrc DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "tabWidth": 2,
3
- "useTabs": false
4
- }
package/CLAUDE.md DELETED
@@ -1,72 +0,0 @@
1
- # CLAUDE.md
2
-
3
- This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
-
5
- ## Build Commands
6
-
7
- ```bash
8
- npm run build:lib # Build the library to dist/ (rimraf + tsc)
9
- npm run dev # Start Next.js dev server for documentation site
10
- npm run build # Build the Next.js documentation site
11
- npm run lint # Run Next.js linting
12
- npm run tsc # Watch mode TypeScript compilation
13
- ```
14
-
15
- No test framework is configured.
16
-
17
- ## Architecture
18
-
19
- Aidos-UI is a zero-dependency React component library with a custom CSS-in-JS styling system.
20
-
21
- ### Core Styling System (src/jss.tsx)
22
-
23
- The library uses a custom JSS (JavaScript Styles) system:
24
-
25
- - **`jss` prop**: All components accept a `jss` prop for inline styles
26
- - **`toClassnames(jss)`**: Converts style objects to hashed class names (e.g., `x1a2b3c`)
27
- - **Automatic pixel conversion**: Numeric values become pixels for dimension properties
28
- - **CSS variable theming**: Colors and spacing use CSS custom properties (`--primary-text`, `--spacing-m`)
29
-
30
- ```tsx
31
- // Style objects, arrays, and conditionals are supported
32
- <Box jss={[baseStyles, isActive && activeStyles, { padding: 16 }]} />
33
- ```
34
-
35
- **Responsive helpers**: `mobile()`, `tablet()`, `laptop()`, `desktop()` wrap styles in media queries.
36
-
37
- ### Component Hierarchy
38
-
39
- Components follow a three-layer pattern:
40
-
41
- 1. **Base layer** (`BaseView`, `BaseButton`, `BaseInput`, `BaseLink`): Minimal wrappers that apply `jss` prop
42
- 2. **Semantic layer** (`Button`, `TextInput`, `Link`): Add themed styling and semantic props (`color`, `size`, `padding`)
43
- 3. **Composed layer** (`IconButton`, `TextPairing`, `Sublist`): Combine lower-level components
44
-
45
- ### Key Files
46
-
47
- - **src/jss.tsx**: Styling system, theme definitions, CSS variable injection
48
- - **src/Providers.tsx**: Root provider that wraps app with theme and context
49
- - **src/Interactable.tsx**: Shared styling logic for buttons/links (colors, hover states)
50
- - **src/DarkMode.tsx**: Dark mode context and toggle, persists to cookie
51
- - **src/Dialog.tsx**: Modal dialog provider with `useDialog()` hook
52
- - **src/useNavigation.tsx**: Arrow key navigation hook for lists
53
-
54
- ### Theming
55
-
56
- Two built-in themes (`lightTheme`, `darkTheme`) define CSS variables for:
57
- - Colors: `--primary-text`, `--secondary-background`, `--background-button-positive`, etc.
58
- - Spacing: `--spacing-xs` through `--spacing-xxxl`
59
- - Typography: `--font-xsmall` through `--font-xxxlarge`
60
- - Border radii: `--border-radius-s`, `--border-radius-m`, `--border-radius-l`
61
-
62
- Dark mode is toggled via `dark-mode` class on `<body>`.
63
-
64
- ### SSR Support
65
-
66
- - `JSServerStyles` component collects styles during server render
67
- - `isServer()` utility detects server environment
68
- - `useCookie()` handles hydration timing
69
-
70
- ## Output
71
-
72
- The library builds to `dist/` as ES modules. Each component produces `.js`, `.js.map`, and `.d.ts` files in a flat structure.
package/dist/Badge.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { Color, JSS, Size } from "./jss";
2
- export declare function Badge({ size, color, jss, }: {
3
- size?: Size;
4
- color?: Color;
5
- jss?: JSS;
6
- }): import("react/jsx-runtime").JSX.Element;