aidos-ui 4.0.4 → 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 (376) 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 +3 -1
  13. package/dist/vite-plugin-jss-debug.js +57 -74
  14. package/dist/vite-plugin-jss-debug.js.map +1 -1
  15. package/package.json +58 -27
  16. package/.prettierrc +0 -4
  17. package/CLAUDE.md +0 -72
  18. package/dist/Badge.d.ts +0 -6
  19. package/dist/Badge.js +0 -22
  20. package/dist/Badge.js.map +0 -1
  21. package/dist/BaseButton.d.ts +0 -14
  22. package/dist/BaseButton.js +0 -23
  23. package/dist/BaseButton.js.map +0 -1
  24. package/dist/BaseInput.d.ts +0 -14
  25. package/dist/BaseInput.js +0 -15
  26. package/dist/BaseInput.js.map +0 -1
  27. package/dist/BaseLink.d.ts +0 -18
  28. package/dist/BaseLink.js +0 -29
  29. package/dist/BaseLink.js.map +0 -1
  30. package/dist/BaseList.d.ts +0 -6
  31. package/dist/BaseList.js +0 -14
  32. package/dist/BaseList.js.map +0 -1
  33. package/dist/BaseListAddOn.d.ts +0 -5
  34. package/dist/BaseListAddOn.js +0 -7
  35. package/dist/BaseListAddOn.js.map +0 -1
  36. package/dist/BaseListItem.d.ts +0 -26
  37. package/dist/BaseListItem.js +0 -29
  38. package/dist/BaseListItem.js.map +0 -1
  39. package/dist/BaseView.d.ts +0 -12
  40. package/dist/BaseView.js +0 -26
  41. package/dist/BaseView.js.map +0 -1
  42. package/dist/Box.d.ts +0 -4
  43. package/dist/Box.js +0 -6
  44. package/dist/Box.js.map +0 -1
  45. package/dist/Button.d.ts +0 -20
  46. package/dist/Button.js +0 -19
  47. package/dist/Button.js.map +0 -1
  48. package/dist/Calendar.d.ts +0 -18
  49. package/dist/Calendar.js +0 -57
  50. package/dist/Calendar.js.map +0 -1
  51. package/dist/Card.d.ts +0 -4
  52. package/dist/Card.js +0 -14
  53. package/dist/Card.js.map +0 -1
  54. package/dist/Checkbox.d.ts +0 -11
  55. package/dist/Checkbox.js +0 -32
  56. package/dist/Checkbox.js.map +0 -1
  57. package/dist/Circle.d.ts +0 -5
  58. package/dist/Circle.js +0 -12
  59. package/dist/Circle.js.map +0 -1
  60. package/dist/Column.d.ts +0 -6
  61. package/dist/Column.js +0 -7
  62. package/dist/Column.js.map +0 -1
  63. package/dist/DarkMode.d.ts +0 -13
  64. package/dist/DarkMode.js +0 -62
  65. package/dist/DarkMode.js.map +0 -1
  66. package/dist/DateInput.d.ts +0 -13
  67. package/dist/DateInput.js +0 -29
  68. package/dist/DateInput.js.map +0 -1
  69. package/dist/DatePicker.d.ts +0 -11
  70. package/dist/DatePicker.js +0 -34
  71. package/dist/DatePicker.js.map +0 -1
  72. package/dist/DatetimeInput.d.ts +0 -13
  73. package/dist/DatetimeInput.js +0 -31
  74. package/dist/DatetimeInput.js.map +0 -1
  75. package/dist/DesignBook.d.ts +0 -1
  76. package/dist/DesignBook.js +0 -55
  77. package/dist/DesignBook.js.map +0 -1
  78. package/dist/Dialog.d.ts +0 -17
  79. package/dist/Dialog.js +0 -92
  80. package/dist/Dialog.js.map +0 -1
  81. package/dist/Dropdown.d.ts +0 -14
  82. package/dist/Dropdown.js +0 -65
  83. package/dist/Dropdown.js.map +0 -1
  84. package/dist/Emitter.d.ts +0 -6
  85. package/dist/Emitter.js +0 -19
  86. package/dist/Emitter.js.map +0 -1
  87. package/dist/FlexLayout.d.ts +0 -11
  88. package/dist/FlexLayout.js +0 -18
  89. package/dist/FlexLayout.js.map +0 -1
  90. package/dist/Icon.d.ts +0 -12
  91. package/dist/Icon.js +0 -60
  92. package/dist/Icon.js.map +0 -1
  93. package/dist/IconButton.d.ts +0 -11
  94. package/dist/IconButton.js +0 -34
  95. package/dist/IconButton.js.map +0 -1
  96. package/dist/IconLink.d.ts +0 -9
  97. package/dist/IconLink.js +0 -32
  98. package/dist/IconLink.js.map +0 -1
  99. package/dist/IconType.d.ts +0 -1
  100. package/dist/IconType.js +0 -2
  101. package/dist/IconType.js.map +0 -1
  102. package/dist/Interactable.d.ts +0 -50
  103. package/dist/Interactable.js +0 -169
  104. package/dist/Interactable.js.map +0 -1
  105. package/dist/JSSComment.d.ts +0 -10
  106. package/dist/JSSComment.js +0 -52
  107. package/dist/JSSComment.js.map +0 -1
  108. package/dist/Link.d.ts +0 -22
  109. package/dist/Link.js +0 -29
  110. package/dist/Link.js.map +0 -1
  111. package/dist/List.d.ts +0 -15
  112. package/dist/List.js +0 -29
  113. package/dist/List.js.map +0 -1
  114. package/dist/ListButtonItem.d.ts +0 -14
  115. package/dist/ListButtonItem.js +0 -11
  116. package/dist/ListButtonItem.js.map +0 -1
  117. package/dist/ListDivider.d.ts +0 -1
  118. package/dist/ListDivider.js +0 -12
  119. package/dist/ListDivider.js.map +0 -1
  120. package/dist/ListHeaderItem.d.ts +0 -10
  121. package/dist/ListHeaderItem.js +0 -15
  122. package/dist/ListHeaderItem.js.map +0 -1
  123. package/dist/ListItem.d.ts +0 -9
  124. package/dist/ListItem.js +0 -9
  125. package/dist/ListItem.js.map +0 -1
  126. package/dist/ListLinkItem.d.ts +0 -16
  127. package/dist/ListLinkItem.js +0 -11
  128. package/dist/ListLinkItem.js.map +0 -1
  129. package/dist/ListSpacer.d.ts +0 -1
  130. package/dist/ListSpacer.js +0 -13
  131. package/dist/ListSpacer.js.map +0 -1
  132. package/dist/MenuIcon.d.ts +0 -5
  133. package/dist/MenuIcon.js +0 -31
  134. package/dist/MenuIcon.js.map +0 -1
  135. package/dist/NextJSRouter.d.ts +0 -1
  136. package/dist/NextJSRouter.js +0 -37
  137. package/dist/NextJSRouter.js.map +0 -1
  138. package/dist/NextJSRouterState.d.ts +0 -38
  139. package/dist/NextJSRouterState.js +0 -111
  140. package/dist/NextJSRouterState.js.map +0 -1
  141. package/dist/OnVisible.d.ts +0 -5
  142. package/dist/OnVisible.js +0 -28
  143. package/dist/OnVisible.js.map +0 -1
  144. package/dist/Popover.d.ts +0 -22
  145. package/dist/Popover.js +0 -90
  146. package/dist/Popover.js.map +0 -1
  147. package/dist/ProgressBar.d.ts +0 -7
  148. package/dist/ProgressBar.js +0 -42
  149. package/dist/ProgressBar.js.map +0 -1
  150. package/dist/ProgressCircle.d.ts +0 -5
  151. package/dist/ProgressCircle.js +0 -12
  152. package/dist/ProgressCircle.js.map +0 -1
  153. package/dist/Providers.d.ts +0 -9
  154. package/dist/Providers.js +0 -16
  155. package/dist/Providers.js.map +0 -1
  156. package/dist/RangeInput.d.ts +0 -14
  157. package/dist/RangeInput.js +0 -32
  158. package/dist/RangeInput.js.map +0 -1
  159. package/dist/ResultOrError.d.ts +0 -13
  160. package/dist/ResultOrError.js +0 -7
  161. package/dist/ResultOrError.js.map +0 -1
  162. package/dist/RootView.d.ts +0 -5
  163. package/dist/RootView.js +0 -35
  164. package/dist/RootView.js.map +0 -1
  165. package/dist/Row.d.ts +0 -6
  166. package/dist/Row.js +0 -7
  167. package/dist/Row.js.map +0 -1
  168. package/dist/Select.d.ts +0 -9
  169. package/dist/Select.js +0 -17
  170. package/dist/Select.js.map +0 -1
  171. package/dist/StackContext.d.ts +0 -8
  172. package/dist/StackContext.js +0 -25
  173. package/dist/StackContext.js.map +0 -1
  174. package/dist/StaticCheckbox.d.ts +0 -16
  175. package/dist/StaticCheckbox.js +0 -48
  176. package/dist/StaticCheckbox.js.map +0 -1
  177. package/dist/Storage.d.ts +0 -13
  178. package/dist/Storage.js +0 -146
  179. package/dist/Storage.js.map +0 -1
  180. package/dist/Stream.d.ts +0 -9
  181. package/dist/Stream.js +0 -36
  182. package/dist/Stream.js.map +0 -1
  183. package/dist/Sublist.d.ts +0 -12
  184. package/dist/Sublist.js +0 -18
  185. package/dist/Sublist.js.map +0 -1
  186. package/dist/SubmitIconInput.d.ts +0 -8
  187. package/dist/SubmitIconInput.js +0 -25
  188. package/dist/SubmitIconInput.js.map +0 -1
  189. package/dist/Tabs.d.ts +0 -23
  190. package/dist/Tabs.js +0 -39
  191. package/dist/Tabs.js.map +0 -1
  192. package/dist/Text.d.ts +0 -25
  193. package/dist/Text.js +0 -52
  194. package/dist/Text.js.map +0 -1
  195. package/dist/TextArea.d.ts +0 -11
  196. package/dist/TextArea.js +0 -27
  197. package/dist/TextArea.js.map +0 -1
  198. package/dist/TextInput.d.ts +0 -15
  199. package/dist/TextInput.js +0 -61
  200. package/dist/TextInput.js.map +0 -1
  201. package/dist/TextInputWithState.d.ts +0 -8
  202. package/dist/TextInputWithState.js +0 -14
  203. package/dist/TextInputWithState.js.map +0 -1
  204. package/dist/TextPairing.d.ts +0 -21
  205. package/dist/TextPairing.js +0 -26
  206. package/dist/TextPairing.js.map +0 -1
  207. package/dist/TimeInput.d.ts +0 -15
  208. package/dist/TimeInput.js +0 -58
  209. package/dist/TimeInput.js.map +0 -1
  210. package/dist/Tooltip.d.ts +0 -11
  211. package/dist/Tooltip.js +0 -73
  212. package/dist/Tooltip.js.map +0 -1
  213. package/dist/aria.d.ts +0 -8
  214. package/dist/aria.js +0 -42
  215. package/dist/aria.js.map +0 -1
  216. package/dist/guid.d.ts +0 -1
  217. package/dist/guid.js +0 -7
  218. package/dist/guid.js.map +0 -1
  219. package/dist/hash.d.ts +0 -1
  220. package/dist/hash.js +0 -20
  221. package/dist/hash.js.map +0 -1
  222. package/dist/isServer.d.ts +0 -1
  223. package/dist/isServer.js +0 -4
  224. package/dist/isServer.js.map +0 -1
  225. package/dist/jss.d.ts +0 -122
  226. package/dist/jss.js +0 -515
  227. package/dist/jss.js.map +0 -1
  228. package/dist/numberToBase.d.ts +0 -1
  229. package/dist/numberToBase.js +0 -44
  230. package/dist/numberToBase.js.map +0 -1
  231. package/dist/stateMachineContextFactory.d.ts +0 -36
  232. package/dist/stateMachineContextFactory.js +0 -48
  233. package/dist/stateMachineContextFactory.js.map +0 -1
  234. package/dist/useCookie.d.ts +0 -9
  235. package/dist/useCookie.js +0 -67
  236. package/dist/useCookie.js.map +0 -1
  237. package/dist/useKeyboard.d.ts +0 -8
  238. package/dist/useKeyboard.js +0 -26
  239. package/dist/useKeyboard.js.map +0 -1
  240. package/dist/useNavigation.d.ts +0 -5
  241. package/dist/useNavigation.js +0 -79
  242. package/dist/useNavigation.js.map +0 -1
  243. package/dist/usePromise.d.ts +0 -1
  244. package/dist/usePromise.js +0 -12
  245. package/dist/usePromise.js.map +0 -1
  246. package/dist/useRefEffect.d.ts +0 -1
  247. package/dist/useRefEffect.js +0 -15
  248. package/dist/useRefEffect.js.map +0 -1
  249. package/jss-debug-loader.mjs +0 -44
  250. package/next-env.d.ts +0 -6
  251. package/next.config.js +0 -33
  252. package/scripts/embeddings.js +0 -93
  253. package/scripts/openai_embeddings.js +0 -100
  254. package/scripts/publish.js +0 -28
  255. package/scripts/test_embeddings.js +0 -47
  256. package/src/Badge.tsx +0 -36
  257. package/src/BaseButton.tsx +0 -62
  258. package/src/BaseInput.tsx +0 -63
  259. package/src/BaseLink.tsx +0 -80
  260. package/src/BaseList.tsx +0 -26
  261. package/src/BaseListAddOn.tsx +0 -10
  262. package/src/BaseListItem.tsx +0 -119
  263. package/src/BaseView.tsx +0 -57
  264. package/src/Box.tsx +0 -20
  265. package/src/Button.tsx +0 -90
  266. package/src/Calendar.tsx +0 -123
  267. package/src/Card.tsx +0 -30
  268. package/src/Checkbox.tsx +0 -63
  269. package/src/Circle.tsx +0 -24
  270. package/src/Column.tsx +0 -12
  271. package/src/DarkMode.tsx +0 -100
  272. package/src/DateInput.tsx +0 -63
  273. package/src/DatePicker.tsx +0 -67
  274. package/src/DatetimeInput.tsx +0 -64
  275. package/src/DesignBook.tsx +0 -677
  276. package/src/Dialog.tsx +0 -150
  277. package/src/Dropdown.tsx +0 -146
  278. package/src/Emitter.ts +0 -26
  279. package/src/FlexLayout.tsx +0 -53
  280. package/src/Icon.tsx +0 -80
  281. package/src/IconButton.tsx +0 -81
  282. package/src/IconLink.tsx +0 -59
  283. package/src/IconType.ts +0 -787
  284. package/src/Interactable.tsx +0 -210
  285. package/src/JSSComment.tsx +0 -56
  286. package/src/Link.tsx +0 -110
  287. package/src/List.tsx +0 -58
  288. package/src/ListButtonItem.tsx +0 -69
  289. package/src/ListDivider.tsx +0 -13
  290. package/src/ListHeaderItem.tsx +0 -45
  291. package/src/ListItem.tsx +0 -24
  292. package/src/ListLinkItem.tsx +0 -76
  293. package/src/ListSpacer.tsx +0 -14
  294. package/src/MenuIcon.tsx +0 -50
  295. package/src/NextJSRouter.tsx +0 -60
  296. package/src/NextJSRouterState.tsx +0 -154
  297. package/src/OnVisible.tsx +0 -42
  298. package/src/Popover.tsx +0 -145
  299. package/src/ProgressBar.tsx +0 -63
  300. package/src/ProgressCircle.tsx +0 -38
  301. package/src/Providers.tsx +0 -33
  302. package/src/RangeInput.tsx +0 -82
  303. package/src/ResultOrError.ts +0 -15
  304. package/src/RootView.tsx +0 -55
  305. package/src/Row.tsx +0 -12
  306. package/src/Select.tsx +0 -39
  307. package/src/StackContext.tsx +0 -52
  308. package/src/StaticCheckbox.tsx +0 -72
  309. package/src/Storage.tsx +0 -198
  310. package/src/Stream.tsx +0 -50
  311. package/src/Sublist.tsx +0 -61
  312. package/src/SubmitIconInput.tsx +0 -45
  313. package/src/Tabs.tsx +0 -110
  314. package/src/Text.tsx +0 -111
  315. package/src/TextArea.tsx +0 -58
  316. package/src/TextInput.tsx +0 -123
  317. package/src/TextInputWithState.tsx +0 -32
  318. package/src/TextPairing.tsx +0 -115
  319. package/src/TimeInput.tsx +0 -109
  320. package/src/Tooltip.tsx +0 -109
  321. package/src/aria.ts +0 -72
  322. package/src/docs/mdx.tsx +0 -137
  323. package/src/docs/pages.ts +0 -115
  324. package/src/docs/searchIndex.ts +0 -1
  325. package/src/examples/ExampleDialog.tsx +0 -28
  326. package/src/guid.ts +0 -7
  327. package/src/hash.ts +0 -21
  328. package/src/index.ts +0 -68
  329. package/src/isServer.ts +0 -3
  330. package/src/jss.tsx +0 -712
  331. package/src/jsx-dev-runtime.ts +0 -74
  332. package/src/jsx-runtime.ts +0 -2
  333. package/src/numberToBase.ts +0 -52
  334. package/src/pages/Badge.mdx +0 -152
  335. package/src/pages/Button.mdx +0 -163
  336. package/src/pages/Calendar.mdx +0 -254
  337. package/src/pages/Card.mdx +0 -147
  338. package/src/pages/Checkbox.mdx +0 -131
  339. package/src/pages/Dialog.mdx +0 -197
  340. package/src/pages/FlexLayout.mdx +0 -211
  341. package/src/pages/Hashing.mdx +0 -211
  342. package/src/pages/Icon.mdx +0 -171
  343. package/src/pages/IconButton.mdx +0 -155
  344. package/src/pages/Link.mdx +0 -160
  345. package/src/pages/List.mdx +0 -262
  346. package/src/pages/ListHeader.mdx +0 -220
  347. package/src/pages/Popover.mdx +0 -223
  348. package/src/pages/ProgressBar.mdx +0 -200
  349. package/src/pages/ProgressCircle.mdx +0 -218
  350. package/src/pages/RangeInput.mdx +0 -237
  351. package/src/pages/Tabs.mdx +0 -281
  352. package/src/pages/Text.mdx +0 -154
  353. package/src/pages/TextInput.mdx +0 -235
  354. package/src/pages/TextPairing.mdx +0 -204
  355. package/src/pages/TimeInput.mdx +0 -178
  356. package/src/pages/Tooltip.mdx +0 -115
  357. package/src/pages/_app.tsx +0 -466
  358. package/src/pages/_document.tsx +0 -30
  359. package/src/pages/css-in-js.mdx +0 -240
  360. package/src/pages/index.mdx +0 -58
  361. package/src/pages/navigation.mdx +0 -158
  362. package/src/pages/prism.css +0 -3
  363. package/src/pages/useCookie.mdx +0 -176
  364. package/src/pages/useKeyboard.mdx +0 -257
  365. package/src/pages/useNavigation.mdx +0 -258
  366. package/src/pages/usePromise.mdx +0 -280
  367. package/src/pages/useRefEffect.mdx +0 -251
  368. package/src/stateMachineContextFactory.tsx +0 -111
  369. package/src/useCookie.tsx +0 -95
  370. package/src/useKeyboard.tsx +0 -43
  371. package/src/useNavigation.tsx +0 -89
  372. package/src/usePromise.tsx +0 -18
  373. package/src/useRefEffect.tsx +0 -18
  374. package/src/vite-plugin-jss-debug.ts +0 -77
  375. package/tsconfig.build.json +0 -23
  376. 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,7 +11,7 @@
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
16
  config(_config: unknown, { command }: {
17
17
  command: string;
@@ -35,3 +35,5 @@ export default function jssDebug(): ({
35
35
  };
36
36
  config?: undefined;
37
37
  })[];
38
+
39
+ export { jssDebug as default };
@@ -1,76 +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(_config, { command }) {
20
- return {
21
- oxc: {
22
- jsx: {
23
- runtime: "automatic",
24
- development: command === "serve",
25
- importSource: "aidos-ui",
26
- },
27
- },
28
- };
29
- },
30
- },
31
- {
32
- name: "jss-debug-classnames",
33
- enforce: "pre",
34
- transform(code, id) {
35
- if (id.includes("node_modules"))
36
- return;
37
- if (!id.match(/\.[jt]sx?$/))
38
- return;
39
- if (!code.includes("toClassnames("))
40
- return;
41
- const filename = path.basename(id, path.extname(id));
42
- const name = JSON.stringify(filename);
43
- const needle = "toClassnames(";
44
- let result = "";
45
- let i = 0;
46
- while (i < code.length) {
47
- const idx = code.indexOf(needle, i);
48
- if (idx === -1) {
49
- result += code.slice(i);
50
- break;
51
- }
52
- // Copy everything up to and including "toClassnames("
53
- result += code.slice(i, idx + needle.length);
54
- i = idx + needle.length;
55
- // Track parens to find the matching closing )
56
- let depth = 1;
57
- let j = i;
58
- while (j < code.length && depth > 0) {
59
- const ch = code[j];
60
- if (ch === "(")
61
- depth++;
62
- else if (ch === ")")
63
- depth--;
64
- if (depth > 0)
65
- j++;
66
- }
67
- // Copy the original arguments, then inject the component name
68
- result += code.slice(i, j) + ", " + name;
69
- i = j;
70
- }
71
- return { code: result, map: null };
72
- },
73
- },
74
- ];
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
+ ];
75
55
  }
56
+
57
+ export { jssDebug as default };
58
+ //# sourceMappingURL=vite-plugin-jss-debug.js.map
76
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,CAAC,OAAgB,EAAE,EAAE,OAAO,EAAuB;gBACvD,OAAO;oBACL,GAAG,EAAE;wBACH,GAAG,EAAE;4BACH,OAAO,EAAE,WAAW;4BACpB,WAAW,EAAE,OAAO,KAAK,OAAO;4BAChC,YAAY,EAAE,UAAU;yBACzB;qBACF;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.4",
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
  }
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;
package/dist/Badge.js DELETED
@@ -1,22 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { BaseView } from "./BaseView";
3
- import { getBackground } from "./jss";
4
- const sizes = {
5
- xsmall: 4,
6
- small: 6,
7
- medium: 12,
8
- large: 18,
9
- xlarge: 24,
10
- };
11
- export function Badge({ size = "medium", color = "highlight", jss, }) {
12
- return (_jsx(BaseView, { jss: [
13
- {
14
- width: sizes[size],
15
- height: sizes[size],
16
- borderRadius: sizes[size] / 2,
17
- },
18
- getBackground(color),
19
- jss,
20
- ] }));
21
- }
22
- //# sourceMappingURL=Badge.js.map
package/dist/Badge.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../src/Badge.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAoB,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,UAAU,KAAK,CAAC,EACpB,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,WAAW,EACnB,GAAG,GAKJ;IACC,OAAO,CACL,KAAC,QAAQ,IACP,GAAG,EAAE;YACH;gBACE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;gBAClB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;gBACnB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aAC9B;YACD,aAAa,CAAC,KAAK,CAAC;YACpB,GAAG;SACJ,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import { InteractableColor } from "./Interactable";
3
- import { JSS, Padding } from "./jss";
4
- export interface BaseButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
5
- onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
6
- jss?: JSS;
7
- color: InteractableColor;
8
- bare?: boolean;
9
- border?: boolean;
10
- className?: undefined;
11
- animateInteraction?: boolean;
12
- padding?: Padding;
13
- }
14
- export declare const BaseButton: React.ForwardRefExoticComponent<BaseButtonProps & React.RefAttributes<HTMLButtonElement>>;