@ternent/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/.changeset/README.md +8 -0
  2. package/.changeset/config.json +17 -0
  3. package/.github/workflows/deploy-armour.yml +42 -0
  4. package/.github/workflows/deploy-identity.yml +42 -0
  5. package/.github/workflows/deploy-seal.yml +42 -0
  6. package/.github/workflows/deploy-ui.yml +42 -0
  7. package/.github/workflows/deploy-utils.yml +42 -0
  8. package/.github/workflows/release-create.yml +59 -0
  9. package/.github/workflows/release-publish.yml +54 -0
  10. package/.nvmrc +1 -0
  11. package/.ops/publish.mjs +31 -0
  12. package/package.json +16 -0
  13. package/packages/README.md +0 -0
  14. package/packages/armour/CHANGELOG.md +66 -0
  15. package/packages/armour/CLAUDE.md +8 -0
  16. package/packages/armour/README.md +103 -0
  17. package/packages/armour/SPEC.md +92 -0
  18. package/packages/armour/package.json +45 -0
  19. package/packages/armour/src/constants.ts +5 -0
  20. package/packages/armour/src/deps.d.ts +56 -0
  21. package/packages/armour/src/errors.ts +172 -0
  22. package/packages/armour/src/files.ts +73 -0
  23. package/packages/armour/src/identity.ts +72 -0
  24. package/packages/armour/src/index.ts +56 -0
  25. package/packages/armour/src/init.ts +10 -0
  26. package/packages/armour/src/passphrase.ts +33 -0
  27. package/packages/armour/src/recipients.ts +73 -0
  28. package/packages/armour/src/text.ts +68 -0
  29. package/packages/armour/src/types.ts +93 -0
  30. package/packages/armour/test/armour.test.ts +270 -0
  31. package/packages/armour/tsconfig.build.json +12 -0
  32. package/packages/armour/tsconfig.json +12 -0
  33. package/packages/armour/vite.config.ts +29 -0
  34. package/packages/concord/CHANGELOG.md +83 -0
  35. package/packages/concord/CLAUDE.md +9 -0
  36. package/packages/concord/README.md +146 -0
  37. package/packages/concord/SPEC.md +287 -0
  38. package/packages/concord/package.json +51 -0
  39. package/packages/concord/src/app.ts +717 -0
  40. package/packages/concord/src/errors.ts +9 -0
  41. package/packages/concord/src/index.ts +20 -0
  42. package/packages/concord/src/types.ts +127 -0
  43. package/packages/concord/test/concord.test.ts +978 -0
  44. package/packages/concord/tsconfig.json +12 -0
  45. package/packages/concord/vite.browser.config.ts +27 -0
  46. package/packages/concord/vite.config.ts +35 -0
  47. package/packages/concord/vite.config.ts.timestamp-1774262297922-ffd76e35ea668.mjs +83 -0
  48. package/packages/identity/CHANGELOG.md +47 -0
  49. package/packages/identity/README.md +236 -0
  50. package/packages/identity/package.json +41 -0
  51. package/packages/identity/src/index.ts +538 -0
  52. package/packages/identity/test/identity.test.ts +172 -0
  53. package/packages/identity/tsconfig.build.json +12 -0
  54. package/packages/identity/vite.config.ts +17 -0
  55. package/packages/ledger/CHANGELOG.md +69 -0
  56. package/packages/ledger/CLAUDE.md +9 -0
  57. package/packages/ledger/SPEC.md +304 -0
  58. package/packages/ledger/package.json +48 -0
  59. package/packages/ledger/src/index.ts +2 -0
  60. package/packages/ledger/src/ledger.ts +1286 -0
  61. package/packages/ledger/src/seal-cli.d.ts +25 -0
  62. package/packages/ledger/src/types.ts +294 -0
  63. package/packages/ledger/test/ledger.test.ts +838 -0
  64. package/packages/ledger/tsconfig.json +12 -0
  65. package/packages/ledger/vite.browser.config.ts +27 -0
  66. package/packages/ledger/vite.config.ts +39 -0
  67. package/packages/seal/CHANGELOG.md +137 -0
  68. package/packages/seal/CLAUDE.md +8 -0
  69. package/packages/seal/README.md +258 -0
  70. package/packages/seal/bin/seal +6 -0
  71. package/packages/seal/package.json +59 -0
  72. package/packages/seal/src/artifact.ts +380 -0
  73. package/packages/seal/src/cli.ts +372 -0
  74. package/packages/seal/src/commands/identity.ts +52 -0
  75. package/packages/seal/src/commands/manifest.ts +71 -0
  76. package/packages/seal/src/commands/publicKey.ts +7 -0
  77. package/packages/seal/src/commands/sign.ts +56 -0
  78. package/packages/seal/src/commands/verify.ts +54 -0
  79. package/packages/seal/src/crypto.ts +85 -0
  80. package/packages/seal/src/errors.ts +88 -0
  81. package/packages/seal/src/index.ts +5 -0
  82. package/packages/seal/src/manifest.ts +114 -0
  83. package/packages/seal/src/node.ts +18 -0
  84. package/packages/seal/src/proof.ts +344 -0
  85. package/packages/seal/test/artifact.test.ts +86 -0
  86. package/packages/seal/test/cli.test.ts +208 -0
  87. package/packages/seal/test/crypto.test.ts +21 -0
  88. package/packages/seal/test/manifest.test.ts +32 -0
  89. package/packages/seal/test/proof.test.ts +60 -0
  90. package/packages/seal/tsconfig.json +12 -0
  91. package/packages/seal/vite.config.ts +54 -0
  92. package/packages/ui/CHANGELOG.md +393 -0
  93. package/packages/ui/README.md +57 -0
  94. package/packages/ui/jsconfig.json +19 -0
  95. package/packages/ui/package.json +64 -0
  96. package/packages/ui/scripts/check-tokens.js +56 -0
  97. package/packages/ui/scripts/generate-theme-css.mjs +85 -0
  98. package/packages/ui/src/design-system/base.css +8 -0
  99. package/packages/ui/src/design-system/docs/ACCESSIBILITY_RULES.md +186 -0
  100. package/packages/ui/src/design-system/docs/AI_SYSTEM.md +281 -0
  101. package/packages/ui/src/design-system/docs/PATTERN_RULES.md +83 -0
  102. package/packages/ui/src/design-system/docs/PRIMITIVE_RULES.md +258 -0
  103. package/packages/ui/src/design-system/docs/TOKEN_RULES.md +235 -0
  104. package/packages/ui/src/design-system/docs/VISUAL_DIRECTION.md +68 -0
  105. package/packages/ui/src/design-system/foundation.js +420 -0
  106. package/packages/ui/src/design-system/tokens.css +140 -0
  107. package/packages/ui/src/design-system/tokens.js +327 -0
  108. package/packages/ui/src/design-system/utils.js +246 -0
  109. package/packages/ui/src/main.js +4 -0
  110. package/packages/ui/src/patterns/FeatureCard/FeatureCard.spec.md +24 -0
  111. package/packages/ui/src/patterns/FeatureCard/FeatureCard.types.ts +8 -0
  112. package/packages/ui/src/patterns/FeatureCard/FeatureCard.vue +175 -0
  113. package/packages/ui/src/patterns/FormField/FormField.spec.md +65 -0
  114. package/packages/ui/src/patterns/FormField/FormField.types.ts +11 -0
  115. package/packages/ui/src/patterns/FormField/FormField.vue +87 -0
  116. package/packages/ui/src/patterns/IdentityGlyph/IdentityGlyph.vue +61 -0
  117. package/packages/ui/src/patterns/IdentityGlyph/IdentityHandle.vue +58 -0
  118. package/packages/ui/src/patterns/IdentityGlyph/identityGlyph.types.ts +36 -0
  119. package/packages/ui/src/patterns/IdentityGlyph/identityGlyph.utils.ts +585 -0
  120. package/packages/ui/src/patterns/IdentityGlyph/index.ts +5 -0
  121. package/packages/ui/src/patterns/KeyValueList/KeyValueList.spec.md +28 -0
  122. package/packages/ui/src/patterns/KeyValueList/KeyValueList.types.ts +16 -0
  123. package/packages/ui/src/patterns/KeyValueList/KeyValueList.vue +50 -0
  124. package/packages/ui/src/patterns/LandingPage/LandingIcon.vue +90 -0
  125. package/packages/ui/src/patterns/LandingPage/LandingPage.spec.md +24 -0
  126. package/packages/ui/src/patterns/LandingPage/LandingPage.types.ts +212 -0
  127. package/packages/ui/src/patterns/LandingPage/LandingPage.vue +599 -0
  128. package/packages/ui/src/patterns/ListWorkspaceLayout/ListWorkspaceLayout.test.ts +33 -0
  129. package/packages/ui/src/patterns/ListWorkspaceLayout/ListWorkspaceLayout.vue +44 -0
  130. package/packages/ui/src/patterns/Logo/Logo.spec.md +22 -0
  131. package/packages/ui/src/patterns/Logo/Logo.vue +160 -0
  132. package/packages/ui/src/patterns/PageSurface/PageSurface.spec.md +15 -0
  133. package/packages/ui/src/patterns/PageSurface/PageSurface.vue +85 -0
  134. package/packages/ui/src/patterns/PanelChrome/PanelChrome.spec.md +39 -0
  135. package/packages/ui/src/patterns/PanelChrome/PanelChrome.types.ts +1 -0
  136. package/packages/ui/src/patterns/PanelChrome/PanelChrome.vue +187 -0
  137. package/packages/ui/src/patterns/PreviewPanel/PreviewPanel.spec.md +31 -0
  138. package/packages/ui/src/patterns/PreviewPanel/PreviewPanel.types.ts +23 -0
  139. package/packages/ui/src/patterns/PreviewPanel/PreviewPanel.vue +354 -0
  140. package/packages/ui/src/patterns/RecordList/RecordList.spec.md +35 -0
  141. package/packages/ui/src/patterns/RecordList/RecordList.test.ts +42 -0
  142. package/packages/ui/src/patterns/RecordList/RecordList.types.ts +9 -0
  143. package/packages/ui/src/patterns/RecordList/RecordList.utils.ts +5 -0
  144. package/packages/ui/src/patterns/RecordList/RecordList.vue +134 -0
  145. package/packages/ui/src/patterns/SectionClarifier/SectionClarifier.vue +85 -0
  146. package/packages/ui/src/patterns/SectionIntro/SectionIntro.spec.md +25 -0
  147. package/packages/ui/src/patterns/SectionIntro/SectionIntro.types.ts +7 -0
  148. package/packages/ui/src/patterns/SectionIntro/SectionIntro.vue +141 -0
  149. package/packages/ui/src/patterns/SidebarNav/SidebarNav.spec.md +34 -0
  150. package/packages/ui/src/patterns/SidebarNav/SidebarNav.types.ts +17 -0
  151. package/packages/ui/src/patterns/SidebarNav/SidebarNav.vue +110 -0
  152. package/packages/ui/src/patterns/SplitView/SplitView.spec.md +28 -0
  153. package/packages/ui/src/patterns/SplitView/SplitView.test.ts +22 -0
  154. package/packages/ui/src/patterns/SplitView/SplitView.types.ts +3 -0
  155. package/packages/ui/src/patterns/SplitView/SplitView.utils.ts +13 -0
  156. package/packages/ui/src/patterns/SplitView/SplitView.vue +39 -0
  157. package/packages/ui/src/patterns/StepList/StepList.spec.md +15 -0
  158. package/packages/ui/src/patterns/StepList/StepList.types.ts +4 -0
  159. package/packages/ui/src/patterns/StepList/StepList.vue +91 -0
  160. package/packages/ui/src/patterns/Verification/VerificationBadge.vue +97 -0
  161. package/packages/ui/src/patterns/Verification/VerificationComponents.test.ts +153 -0
  162. package/packages/ui/src/patterns/Verification/VerificationDetailsPanel.vue +270 -0
  163. package/packages/ui/src/patterns/Verification/VerificationSummary.vue +171 -0
  164. package/packages/ui/src/patterns/Verification/index.ts +6 -0
  165. package/packages/ui/src/patterns/Verification/verification.types.ts +8 -0
  166. package/packages/ui/src/patterns/Verification/verification.utils.test.ts +37 -0
  167. package/packages/ui/src/patterns/Verification/verification.utils.ts +75 -0
  168. package/packages/ui/src/patterns/index.ts +25 -0
  169. package/packages/ui/src/primitives/Accordian/Accordian.vue +11 -0
  170. package/packages/ui/src/primitives/Accordian/AccordianItem.vue +14 -0
  171. package/packages/ui/src/primitives/Accordion/Accordion.props.ts +21 -0
  172. package/packages/ui/src/primitives/Accordion/Accordion.spec.md +50 -0
  173. package/packages/ui/src/primitives/Accordion/Accordion.types.ts +4 -0
  174. package/packages/ui/src/primitives/Accordion/Accordion.variants.ts +12 -0
  175. package/packages/ui/src/primitives/Accordion/Accordion.vue +71 -0
  176. package/packages/ui/src/primitives/Accordion/AccordionItem.props.ts +14 -0
  177. package/packages/ui/src/primitives/Accordion/AccordionItem.vue +40 -0
  178. package/packages/ui/src/primitives/Badge/Badge.props.ts +17 -0
  179. package/packages/ui/src/primitives/Badge/Badge.spec.md +17 -0
  180. package/packages/ui/src/primitives/Badge/Badge.types.ts +15 -0
  181. package/packages/ui/src/primitives/Badge/Badge.variants.ts +48 -0
  182. package/packages/ui/src/primitives/Badge/Badge.vue +31 -0
  183. package/packages/ui/src/primitives/Button/Button.props.ts +29 -0
  184. package/packages/ui/src/primitives/Button/Button.spec.md +139 -0
  185. package/packages/ui/src/primitives/Button/Button.types.ts +19 -0
  186. package/packages/ui/src/primitives/Button/Button.variants.ts +72 -0
  187. package/packages/ui/src/primitives/Button/Button.vue +90 -0
  188. package/packages/ui/src/primitives/Card/Card.props.ts +17 -0
  189. package/packages/ui/src/primitives/Card/Card.spec.md +29 -0
  190. package/packages/ui/src/primitives/Card/Card.types.ts +12 -0
  191. package/packages/ui/src/primitives/Card/Card.variants.ts +27 -0
  192. package/packages/ui/src/primitives/Card/Card.vue +37 -0
  193. package/packages/ui/src/primitives/Checkbox/Checkbox.props.ts +21 -0
  194. package/packages/ui/src/primitives/Checkbox/Checkbox.spec.md +51 -0
  195. package/packages/ui/src/primitives/Checkbox/Checkbox.types.ts +4 -0
  196. package/packages/ui/src/primitives/Checkbox/Checkbox.variants.ts +34 -0
  197. package/packages/ui/src/primitives/Checkbox/Checkbox.vue +92 -0
  198. package/packages/ui/src/primitives/Dialog/Dialog.props.ts +29 -0
  199. package/packages/ui/src/primitives/Dialog/Dialog.spec.md +52 -0
  200. package/packages/ui/src/primitives/Dialog/Dialog.types.ts +3 -0
  201. package/packages/ui/src/primitives/Dialog/Dialog.variants.ts +27 -0
  202. package/packages/ui/src/primitives/Dialog/Dialog.vue +78 -0
  203. package/packages/ui/src/primitives/Drawer/Drawer.props.ts +33 -0
  204. package/packages/ui/src/primitives/Drawer/Drawer.spec.md +50 -0
  205. package/packages/ui/src/primitives/Drawer/Drawer.types.ts +5 -0
  206. package/packages/ui/src/primitives/Drawer/Drawer.variants.ts +35 -0
  207. package/packages/ui/src/primitives/Drawer/Drawer.vue +88 -0
  208. package/packages/ui/src/primitives/FieldMessage/FieldMessage.props.ts +17 -0
  209. package/packages/ui/src/primitives/FieldMessage/FieldMessage.spec.md +35 -0
  210. package/packages/ui/src/primitives/FieldMessage/FieldMessage.types.ts +5 -0
  211. package/packages/ui/src/primitives/FieldMessage/FieldMessage.variants.ts +14 -0
  212. package/packages/ui/src/primitives/FieldMessage/FieldMessage.vue +40 -0
  213. package/packages/ui/src/primitives/FileInput/FileInput.props.ts +41 -0
  214. package/packages/ui/src/primitives/FileInput/FileInput.types.ts +6 -0
  215. package/packages/ui/src/primitives/FileInput/FileInput.variants.ts +46 -0
  216. package/packages/ui/src/primitives/FileInput/FileInput.vue +163 -0
  217. package/packages/ui/src/primitives/Input/Input.props.ts +29 -0
  218. package/packages/ui/src/primitives/Input/Input.spec.md +79 -0
  219. package/packages/ui/src/primitives/Input/Input.types.ts +13 -0
  220. package/packages/ui/src/primitives/Input/Input.variants.ts +54 -0
  221. package/packages/ui/src/primitives/Input/Input.vue +99 -0
  222. package/packages/ui/src/primitives/Label/Label.props.ts +25 -0
  223. package/packages/ui/src/primitives/Label/Label.spec.md +31 -0
  224. package/packages/ui/src/primitives/Label/Label.types.ts +3 -0
  225. package/packages/ui/src/primitives/Label/Label.variants.ts +17 -0
  226. package/packages/ui/src/primitives/Label/Label.vue +38 -0
  227. package/packages/ui/src/primitives/Menu/Menu.props.ts +17 -0
  228. package/packages/ui/src/primitives/Menu/Menu.spec.md +38 -0
  229. package/packages/ui/src/primitives/Menu/Menu.types.ts +10 -0
  230. package/packages/ui/src/primitives/Menu/Menu.variants.ts +10 -0
  231. package/packages/ui/src/primitives/Menu/Menu.vue +57 -0
  232. package/packages/ui/src/primitives/Popover/Popover.props.ts +25 -0
  233. package/packages/ui/src/primitives/Popover/Popover.spec.md +49 -0
  234. package/packages/ui/src/primitives/Popover/Popover.types.ts +3 -0
  235. package/packages/ui/src/primitives/Popover/Popover.variants.ts +18 -0
  236. package/packages/ui/src/primitives/Popover/Popover.vue +74 -0
  237. package/packages/ui/src/primitives/RadioGroup/RadioGroup.props.ts +29 -0
  238. package/packages/ui/src/primitives/RadioGroup/RadioGroup.spec.md +50 -0
  239. package/packages/ui/src/primitives/RadioGroup/RadioGroup.types.ts +12 -0
  240. package/packages/ui/src/primitives/RadioGroup/RadioGroup.variants.ts +48 -0
  241. package/packages/ui/src/primitives/RadioGroup/RadioGroup.vue +87 -0
  242. package/packages/ui/src/primitives/Separator/Separator.props.ts +9 -0
  243. package/packages/ui/src/primitives/Separator/Separator.spec.md +15 -0
  244. package/packages/ui/src/primitives/Separator/Separator.types.ts +3 -0
  245. package/packages/ui/src/primitives/Separator/Separator.variants.ts +8 -0
  246. package/packages/ui/src/primitives/Separator/Separator.vue +23 -0
  247. package/packages/ui/src/primitives/Skeleton/Skeleton.props.ts +21 -0
  248. package/packages/ui/src/primitives/Skeleton/Skeleton.spec.md +18 -0
  249. package/packages/ui/src/primitives/Skeleton/Skeleton.types.ts +5 -0
  250. package/packages/ui/src/primitives/Skeleton/Skeleton.variants.ts +18 -0
  251. package/packages/ui/src/primitives/Skeleton/Skeleton.vue +37 -0
  252. package/packages/ui/src/primitives/Spinner/Spinner.props.ts +13 -0
  253. package/packages/ui/src/primitives/Spinner/Spinner.spec.md +16 -0
  254. package/packages/ui/src/primitives/Spinner/Spinner.types.ts +5 -0
  255. package/packages/ui/src/primitives/Spinner/Spinner.variants.ts +15 -0
  256. package/packages/ui/src/primitives/Spinner/Spinner.vue +33 -0
  257. package/packages/ui/src/primitives/SplitButton/SplitButton.vue +108 -0
  258. package/packages/ui/src/primitives/Switch/Switch.props.ts +21 -0
  259. package/packages/ui/src/primitives/Switch/Switch.spec.md +49 -0
  260. package/packages/ui/src/primitives/Switch/Switch.types.ts +3 -0
  261. package/packages/ui/src/primitives/Switch/Switch.variants.ts +34 -0
  262. package/packages/ui/src/primitives/Switch/Switch.vue +71 -0
  263. package/packages/ui/src/primitives/Tabs/Tabs.props.ts +25 -0
  264. package/packages/ui/src/primitives/Tabs/Tabs.spec.md +48 -0
  265. package/packages/ui/src/primitives/Tabs/Tabs.types.ts +11 -0
  266. package/packages/ui/src/primitives/Tabs/Tabs.variants.ts +28 -0
  267. package/packages/ui/src/primitives/Tabs/Tabs.vue +59 -0
  268. package/packages/ui/src/primitives/Textarea/Textarea.props.ts +33 -0
  269. package/packages/ui/src/primitives/Textarea/Textarea.spec.md +59 -0
  270. package/packages/ui/src/primitives/Textarea/Textarea.types.ts +5 -0
  271. package/packages/ui/src/primitives/Textarea/Textarea.variants.ts +27 -0
  272. package/packages/ui/src/primitives/Textarea/Textarea.vue +74 -0
  273. package/packages/ui/src/primitives/Tooltip/Tooltip.props.ts +21 -0
  274. package/packages/ui/src/primitives/Tooltip/Tooltip.spec.md +45 -0
  275. package/packages/ui/src/primitives/Tooltip/Tooltip.types.ts +3 -0
  276. package/packages/ui/src/primitives/Tooltip/Tooltip.variants.ts +4 -0
  277. package/packages/ui/src/primitives/Tooltip/Tooltip.vue +31 -0
  278. package/packages/ui/src/primitives/TreeView/TreeView.types.ts +10 -0
  279. package/packages/ui/src/primitives/TreeView/TreeView.vue +113 -0
  280. package/packages/ui/src/primitives/TreeView/TreeViewNode.vue +190 -0
  281. package/packages/ui/src/primitives/index.ts +29 -0
  282. package/packages/ui/src/style.css +7 -0
  283. package/packages/ui/src/style.js +1 -0
  284. package/packages/ui/src/themes/armour.css +147 -0
  285. package/packages/ui/src/themes/aurora.css +147 -0
  286. package/packages/ui/src/themes/citrine-ash.css +147 -0
  287. package/packages/ui/src/themes/concord.css +147 -0
  288. package/packages/ui/src/themes/garnet-honey.css +147 -0
  289. package/packages/ui/src/themes/harbor-rose.css +147 -0
  290. package/packages/ui/src/themes/ledger.css +147 -0
  291. package/packages/ui/src/themes/neon-noir.css +74 -0
  292. package/packages/ui/src/themes/obsidian-iris.css +147 -0
  293. package/packages/ui/src/themes/pixpax.css +147 -0
  294. package/packages/ui/src/themes/print.css +147 -0
  295. package/packages/ui/src/themes/prism.css +147 -0
  296. package/packages/ui/src/themes/proof.css +145 -0
  297. package/packages/ui/src/themes/semanticThemeContract.js +2256 -0
  298. package/packages/ui/src/themes/spruce-ink.css +147 -0
  299. package/packages/ui/src/themes/sunset.css +147 -0
  300. package/packages/ui/tailwind.config.js +64 -0
  301. package/packages/ui/vite.config.js +35 -0
  302. package/packages/ui/vite.config.js.timestamp-1780697224943-89fbc929987bc.mjs +38 -0
  303. package/packages/utils/CHANGELOG.md +111 -0
  304. package/packages/utils/README.md +3 -0
  305. package/packages/utils/package.json +46 -0
  306. package/packages/utils/src/index.test.js +39 -0
  307. package/packages/utils/src/index.ts +289 -0
  308. package/packages/utils/tsconfig.build.json +12 -0
  309. package/packages/utils/vite.config.js +28 -0
  310. package/pnpm-workspace.yaml +8 -0
  311. package/scripts/vite/package-lib-config.ts +59 -0
  312. package/tsconfig.json +24 -0
  313. package/tsconfig.node.json +9 -0
@@ -0,0 +1,393 @@
1
+ # ternent-ui
2
+
3
+ ## 0.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`70ecb82`](https://github.com/ternent/core/commit/70ecb824f0863dc1b4cb79b1eeeed0b93a45891d) Thanks [@samternent](https://github.com/samternent)! - add sidebar and workspace layout patterns to `@ternent/ui`
8
+
9
+ ## 0.5.7
10
+
11
+ ### Patch Changes
12
+
13
+ - [`a297fd0`](https://github.com/ternent/core/commit/a297fd06ec4f98262534b19f05c1e8722b016aa8) Thanks [@samternent](https://github.com/samternent)! - fix missed export
14
+
15
+ ## 0.5.6
16
+
17
+ ### Patch Changes
18
+
19
+ - [`f721f3a`](https://github.com/ternent/core/commit/f721f3af081f93b1e4b8f6d3f8f3e7a2f8ea8ea9) Thanks [@samternent](https://github.com/samternent)! - Adds identity patterns
20
+
21
+ ## 0.5.5
22
+
23
+ ### Patch Changes
24
+
25
+ - Fix package file
26
+
27
+ ## 0.5.4
28
+
29
+ ### Patch Changes
30
+
31
+ - [`9e4db22`](https://github.com/ternent/core/commit/9e4db2281ba076ae3c20db6d42944c3aff786b91) Thanks [@samternent](https://github.com/samternent)! - Debug action
32
+
33
+ ## 0.5.3
34
+
35
+ ### Patch Changes
36
+
37
+ - [`c07a829`](https://github.com/ternent/core/commit/c07a8296d3316099e6cfce2955b9a8289e342c33) Thanks [@samternent](https://github.com/samternent)! - Fix css exports and deploy file
38
+
39
+ ## 0.5.2
40
+
41
+ ### Patch Changes
42
+
43
+ - [`6e35115`](https://github.com/ternent/core/commit/6e35115fd8b7225292d9666da5f26184786b5785) Thanks [@samternent](https://github.com/samternent)! - Updates deploy action
44
+
45
+ ## 0.5.1
46
+
47
+ ### Patch Changes
48
+
49
+ - [`9c434fd`](https://github.com/ternent/core/commit/9c434fd7f880bb9fa6400adbefdc1cc28e72461c) Thanks [@samternent](https://github.com/samternent)! - Update export css names
50
+
51
+ ## 0.5.0
52
+
53
+ ### Minor Changes
54
+
55
+ - [`20732cf`](https://github.com/ternent/core/commit/20732cf77acd279e07fa3f7601ea9c02f1e85564) Thanks [@samternent](https://github.com/samternent)! - Move @ternent/ui
56
+
57
+ ## 0.4.15
58
+
59
+ ### Patch Changes
60
+
61
+ - [`f1499a5ba7980ae9d33fed6bcdb710f7b398f1c3`](https://github.com/samternent/home/commit/f1499a5ba7980ae9d33fed6bcdb710f7b398f1c3) Thanks [@samternent](https://github.com/samternent)! - Overhaul landing page
62
+
63
+ ## 0.4.14
64
+
65
+ ### Patch Changes
66
+
67
+ - [`9141d333ba1f6da7295f55661fcaa309c14af4e6`](https://github.com/samternent/home/commit/9141d333ba1f6da7295f55661fcaa309c14af4e6) Thanks [@samternent](https://github.com/samternent)! - Update loading states
68
+
69
+ ## 0.4.13
70
+
71
+ ### Patch Changes
72
+
73
+ - [`13540fde40ad2158e5c873f539fdecb4160c48d8`](https://github.com/samternent/home/commit/13540fde40ad2158e5c873f539fdecb4160c48d8) Thanks [@samternent](https://github.com/samternent)! - Update layout and copy
74
+
75
+ ## 0.4.12
76
+
77
+ ### Patch Changes
78
+
79
+ - [`a7c7e3c9f61300396fb11caf364d10e721b078ec`](https://github.com/samternent/home/commit/a7c7e3c9f61300396fb11caf364d10e721b078ec) Thanks [@samternent](https://github.com/samternent)! - Update seal theme and concord copy
80
+
81
+ ## 0.4.11
82
+
83
+ ### Patch Changes
84
+
85
+ - [`69de6bfe65a37ac88be939a00b82480f5f62334f`](https://github.com/samternent/home/commit/69de6bfe65a37ac88be939a00b82480f5f62334f) Thanks [@samternent](https://github.com/samternent)! - Fix footer and theme toggle
86
+
87
+ ## 0.4.10
88
+
89
+ ### Patch Changes
90
+
91
+ - [`cd973e5413f67670371efe25835c3b5cabe63edb`](https://github.com/samternent/home/commit/cd973e5413f67670371efe25835c3b5cabe63edb) Thanks [@samternent](https://github.com/samternent)! - Cocnord theme
92
+
93
+ ## 0.4.9
94
+
95
+ ### Patch Changes
96
+
97
+ - [`92050833da54cacbd6fe33349d9b8fb66754d82c`](https://github.com/samternent/home/commit/92050833da54cacbd6fe33349d9b8fb66754d82c) Thanks [@samternent](https://github.com/samternent)! - Concord library migration
98
+
99
+ ## 0.4.8
100
+
101
+ ### Patch Changes
102
+
103
+ - [`f52fa81d8adac2176f0578a01a3486e787d43083`](https://github.com/samternent/home/commit/f52fa81d8adac2176f0578a01a3486e787d43083) Thanks [@samternent](https://github.com/samternent)! - Update teh landing page on seal
104
+
105
+ ## 0.4.7
106
+
107
+ ### Patch Changes
108
+
109
+ - [`e694239710abbe9ab15bd386901f34334f7692e5`](https://github.com/samternent/home/commit/e694239710abbe9ab15bd386901f34334f7692e5) Thanks [@samternent](https://github.com/samternent)! - code deletion and renaming
110
+
111
+ ## 0.4.6
112
+
113
+ ### Patch Changes
114
+
115
+ - [`0d44f4eb18ec74b394018a709d0dc78c9e1fd520`](https://github.com/samternent/home/commit/0d44f4eb18ec74b394018a709d0dc78c9e1fd520) Thanks [@samternent](https://github.com/samternent)! - consuming template updates
116
+
117
+ ## 0.4.5
118
+
119
+ ### Patch Changes
120
+
121
+ - [`3016b41acffdf9664b01afd9f32f76f3b2880303`](https://github.com/samternent/home/commit/3016b41acffdf9664b01afd9f32f76f3b2880303) Thanks [@samternent](https://github.com/samternent)! - Updates definition blocks
122
+
123
+ - [`80c1a8e095299c23af67358ddcc074a431d079b8`](https://github.com/samternent/home/commit/80c1a8e095299c23af67358ddcc074a431d079b8) Thanks [@samternent](https://github.com/samternent)! - Update to use template
124
+
125
+ ## 0.4.4
126
+
127
+ ### Patch Changes
128
+
129
+ - [`6845ce703aa2fb677b74786de02ce1d22ec98aa9`](https://github.com/samternent/home/commit/6845ce703aa2fb677b74786de02ce1d22ec98aa9) Thanks [@samternent](https://github.com/samternent)! - Updates verification
130
+
131
+ ## 0.4.3
132
+
133
+ ### Patch Changes
134
+
135
+ - [`346a6cf11407bb3e94bf1e553683769d50112616`](https://github.com/samternent/home/commit/346a6cf11407bb3e94bf1e553683769d50112616) Thanks [@samternent](https://github.com/samternent)! - Updates it to seal
136
+
137
+ ## 0.4.2
138
+
139
+ ### Patch Changes
140
+
141
+ - [`8427fb06e4ee9a14197e89dc34d26b6894654eaf`](https://github.com/samternent/home/commit/8427fb06e4ee9a14197e89dc34d26b6894654eaf) Thanks [@samternent](https://github.com/samternent)! - UUpdate landing
142
+
143
+ ## 0.4.1
144
+
145
+ ### Patch Changes
146
+
147
+ - [`a9b21ff9ca09718b824ef6e665e1d79d29fdeb69`](https://github.com/samternent/home/commit/a9b21ff9ca09718b824ef6e665e1d79d29fdeb69) Thanks [@samternent](https://github.com/samternent)! - Adfds action and slight tweak
148
+
149
+ ## 0.4.0
150
+
151
+ ### Minor Changes
152
+
153
+ - [#508](https://github.com/samternent/home/pull/508) [`b35c163b4c4d3c084591ca8512b2d43083eb40ce`](https://github.com/samternent/home/commit/b35c163b4c4d3c084591ca8512b2d43083eb40ce) Thanks [@samternent](https://github.com/samternent)! - Add shared UI primitives (`SDisclosure`, `SRadioGroup`, `STextarea`) and align proof app usage with `ternent-ui`.
154
+
155
+ Add `hashBytes` utility for deterministic raw-byte hashing in browser signing/verification flows.
156
+
157
+ ## 0.3.5
158
+
159
+ ### Patch Changes
160
+
161
+ - [`de32160374bb34fb3968b4c755c52dc6c1fe8e3f`](https://github.com/samternent/home/commit/de32160374bb34fb3968b4c755c52dc6c1fe8e3f) Thanks [@samternent](https://github.com/samternent)! - some styles and theme
162
+
163
+ ## 0.3.4
164
+
165
+ ### Patch Changes
166
+
167
+ - [`05930613e323b1a121bcadc1afc458b81100d9c0`](https://github.com/samternent/home/commit/05930613e323b1a121bcadc1afc458b81100d9c0) Thanks [@samternent](https://github.com/samternent)! - Partial permissions and 404
168
+
169
+ ## 0.3.3
170
+
171
+ ### Patch Changes
172
+
173
+ - [`f32fc4ad99cdc4966b66956b4665ceba1d485698`](https://github.com/samternent/home/commit/f32fc4ad99cdc4966b66956b4665ceba1d485698) Thanks [@samternent](https://github.com/samternent)! - Update whitepaper
174
+
175
+ ## 0.3.2
176
+
177
+ ### Patch Changes
178
+
179
+ - [#396](https://github.com/samternent/home/pull/396) [`9d0a9664d6d2e71fd9f31540d52fd3dc98c54307`](https://github.com/samternent/home/commit/9d0a9664d6d2e71fd9f31540d52fd3dc98c54307) Thanks [@samternent](https://github.com/samternent)! - Consolidate styles
180
+
181
+ ## 0.3.1
182
+
183
+ ### Patch Changes
184
+
185
+ - [`636f8a0491193a83166a2dd796cc351c57fe5cc5`](https://github.com/samternent/home/commit/636f8a0491193a83166a2dd796cc351c57fe5cc5) Thanks [@samternent](https://github.com/samternent)! - Fix some copy and vercel config
186
+
187
+ ## 0.3.0
188
+
189
+ ### Minor Changes
190
+
191
+ - [`d8807ea4a3c40f2d58e4c9784c2374088b9dc745`](https://github.com/samternent/home/commit/d8807ea4a3c40f2d58e4c9784c2374088b9dc745) Thanks [@samternent](https://github.com/samternent)! - Complete rework of the app. AI driven
192
+
193
+ ## 0.1.18
194
+
195
+ ### Patch Changes
196
+
197
+ - [`ffbadc602da814226cf74dc7a8667b8770ac3f2b`](https://github.com/samternent/home/commit/ffbadc602da814226cf74dc7a8667b8770ac3f2b) Thanks [@samternent](https://github.com/samternent)! - Adds a bit more from the other day
198
+
199
+ ## 0.1.17
200
+
201
+ ### Patch Changes
202
+
203
+ - [`078d2f8585fed6fa13f587217c5cfbaa45357793`](https://github.com/samternent/home/commit/078d2f8585fed6fa13f587217c5cfbaa45357793) Thanks [@samternent](https://github.com/samternent)! - Remove proof of work, update some tabs and add new routes
204
+
205
+ ## 0.1.16
206
+
207
+ ### Patch Changes
208
+
209
+ - [`5a88278372830d5f24e7fcc12cf430560f93ad13`](https://github.com/samternent/home/commit/5a88278372830d5f24e7fcc12cf430560f93ad13) Thanks [@samternent](https://github.com/samternent)! - Updates ledger and tabs
210
+
211
+ ## 0.1.15
212
+
213
+ ### Patch Changes
214
+
215
+ - [#375](https://github.com/samternent/home/pull/375) [`4dbe5c228213d174b670a3faf544b89c51eb4e71`](https://github.com/samternent/home/commit/4dbe5c228213d174b670a3faf544b89c51eb4e71) Thanks [@samternent](https://github.com/samternent)! - Updates SResizers
216
+
217
+ - [#375](https://github.com/samternent/home/pull/375) [`906c84e95a7b82f6e124ba04a680990c3b1df14a`](https://github.com/samternent/home/commit/906c84e95a7b82f6e124ba04a680990c3b1df14a) Thanks [@samternent](https://github.com/samternent)! - Adds new themes
218
+
219
+ ## 0.1.14
220
+
221
+ ### Patch Changes
222
+
223
+ - [`edb639cff3654fdd3250f48ef05350154ab09ca0`](https://github.com/samternent/home/commit/edb639cff3654fdd3250f48ef05350154ab09ca0) Thanks [@samternent](https://github.com/samternent)! - A few more nice tweaks
224
+
225
+ ## 0.1.13
226
+
227
+ ### Patch Changes
228
+
229
+ - [`30e4e7b9752544c3ff8deb7b1453618101cfadfc`](https://github.com/samternent/home/commit/30e4e7b9752544c3ff8deb7b1453618101cfadfc) Thanks [@samternent](https://github.com/samternent)! - Some menu and repsonsive tweaks
230
+
231
+ ## 0.1.12
232
+
233
+ ### Patch Changes
234
+
235
+ - [`39e4521fa018b7706ac00b8d1dd8fb3eebf63395`](https://github.com/samternent/home/commit/39e4521fa018b7706ac00b8d1dd8fb3eebf63395) Thanks [@samternent](https://github.com/samternent)! - Theme and layout changes
236
+
237
+ ## 0.1.11
238
+
239
+ ### Patch Changes
240
+
241
+ - 98ce971: Updates many styles
242
+
243
+ ## 0.1.10
244
+
245
+ ### Patch Changes
246
+
247
+ - [`a301948d8d49e1d6ec2a2448578c1479bbba6644`](https://github.com/samternent/home/commit/a301948d8d49e1d6ec2a2448578c1479bbba6644) Thanks [@samternent](https://github.com/samternent)! - Remove unused code
248
+
249
+ ## 0.1.9
250
+
251
+ ### Patch Changes
252
+
253
+ - [`60286f07aaab9fd281e61c3f98260d3589e1eaf6`](https://github.com/samternent/home/commit/60286f07aaab9fd281e61c3f98260d3589e1eaf6) Thanks [@samternent](https://github.com/samternent)! - Updates ternentdotdev content
254
+
255
+ ## 0.1.8
256
+
257
+ ### Patch Changes
258
+
259
+ - [`b578f6f06c90fe327d8ff084764dafd7c6fd8ec9`](https://github.com/samternent/home/commit/b578f6f06c90fe327d8ff084764dafd7c6fd8ec9) Thanks [@samternent](https://github.com/samternent)! - Improve theming
260
+
261
+ ## 0.1.7
262
+
263
+ ### Patch Changes
264
+
265
+ - [`20cf93fc3e2fd25b7463cc5bd66e42d74413fc92`](https://github.com/samternent/home/commit/20cf93fc3e2fd25b7463cc5bd66e42d74413fc92) Thanks [@samternent](https://github.com/samternent)! - Adds themes and landing page
266
+
267
+ ## 0.1.6
268
+
269
+ ### Patch Changes
270
+
271
+ - [`0263ee49bbd5bcd82d4ddd142dbf0bd72294a48a`](https://github.com/samternent/home/commit/0263ee49bbd5bcd82d4ddd142dbf0bd72294a48a) Thanks [@samternent](https://github.com/samternent)! - Adds teamwork theme
272
+
273
+ ## 0.1.5
274
+
275
+ ### Patch Changes
276
+
277
+ - [`f8a222fb97d95038f940503d1bbd6427b4cfb0ee`](https://github.com/samternent/home/commit/f8a222fb97d95038f940503d1bbd6427b4cfb0ee) Thanks [@samternent](https://github.com/samternent)! - Update white label themes
278
+
279
+ ## 0.1.4
280
+
281
+ ### Patch Changes
282
+
283
+ - [`f4afb11f20f27b23599f45d83c7b7a3419afb1b7`](https://github.com/samternent/home/commit/f4afb11f20f27b23599f45d83c7b7a3419afb1b7) Thanks [@samternent](https://github.com/samternent)! - Adds basic whitelabling
284
+
285
+ ## 0.1.3
286
+
287
+ ### Patch Changes
288
+
289
+ - [`7435a4dc0feb608720f58c878c30635b809fd36e`](https://github.com/samternent/home/commit/7435a4dc0feb608720f58c878c30635b809fd36e) Thanks [@samternent](https://github.com/samternent)! - Update home p age feel
290
+
291
+ ## 0.1.2
292
+
293
+ ### Patch Changes
294
+
295
+ - [`0bc405a1277d88bf868980aa9b25eab044937715`](https://github.com/samternent/home/commit/0bc405a1277d88bf868980aa9b25eab044937715) Thanks [@samternent](https://github.com/samternent)! - Adds gamewek navigation
296
+
297
+ ## 0.1.1
298
+
299
+ ### Patch Changes
300
+
301
+ - [`4dbe84d678340adfec62721ca1aea8755d88717e`](https://github.com/samternent/home/commit/4dbe84d678340adfec62721ca1aea8755d88717e) Thanks [@samternent](https://github.com/samternent)! - Adjust small font sizes and player links
302
+
303
+ ## 0.1.0
304
+
305
+ ### Minor Changes
306
+
307
+ - [`1f3ad0d2b7052f3b8359e94f1edb20ef4b40c73a`](https://github.com/samternent/home/commit/1f3ad0d2b7052f3b8359e94f1edb20ef4b40c73a) Thanks [@samternent](https://github.com/samternent)! - Remove 401 block
308
+
309
+ ## 0.0.14
310
+
311
+ ### Patch Changes
312
+
313
+ - [`e9b74d04d15b0bf4f74c47f58ec7558e9a86e991`](https://github.com/samternent/home/commit/e9b74d04d15b0bf4f74c47f58ec7558e9a86e991) Thanks [@samternent](https://github.com/samternent)! - Add new font and style sizes
314
+
315
+ ## 0.0.13
316
+
317
+ ### Patch Changes
318
+
319
+ - [`299229c0af7dc84f698062c48a1d8e24bb721ae1`](https://github.com/samternent/home/commit/299229c0af7dc84f698062c48a1d8e24bb721ae1) Thanks [@samternent](https://github.com/samternent)! - Minor component and theme tweaks
320
+
321
+ ## 0.0.12
322
+
323
+ ### Patch Changes
324
+
325
+ - [`ba650644b361ca55b8b46cceb550bc384e997433`](https://github.com/samternent/home/commit/ba650644b361ca55b8b46cceb550bc384e997433) Thanks [@samternent](https://github.com/samternent)! - Adds base varient to tabs
326
+
327
+ ## 0.0.11
328
+
329
+ ### Patch Changes
330
+
331
+ - [`f80141b83a9cc857d0a9c7e7bccaac9b0fd04d70`](https://github.com/samternent/home/commit/f80141b83a9cc857d0a9c7e7bccaac9b0fd04d70) Thanks [@samternent](https://github.com/samternent)! - Adds greener theme
332
+
333
+ ## 0.0.10
334
+
335
+ ### Patch Changes
336
+
337
+ - [`765c387249dbd62441490a5083b8d4d30af46369`](https://github.com/samternent/home/commit/765c387249dbd62441490a5083b8d4d30af46369) Thanks [@samternent](https://github.com/samternent)! - Adds concords themes
338
+
339
+ ## 0.0.9
340
+
341
+ ### Patch Changes
342
+
343
+ - [`d464a231ac93035bd252e67d1f278d1fb59f9e09`](https://github.com/samternent/home/commit/d464a231ac93035bd252e67d1f278d1fb59f9e09) Thanks [@samternent](https://github.com/samternent)! - Update ternentdotdev theme and some styles
344
+
345
+ ## 0.0.8
346
+
347
+ ### Patch Changes
348
+
349
+ - [`383c709f107fc869a19430a9565f2b84c8ddc9cf`](https://github.com/samternent/home/commit/383c709f107fc869a19430a9565f2b84c8ddc9cf) Thanks [@samternent](https://github.com/samternent)! - Adds game
350
+
351
+ ## 0.0.7
352
+
353
+ ### Patch Changes
354
+
355
+ - [`bb82d84026eb26dfc8e048e5d35d2bebb918c664`](https://github.com/samternent/home/commit/bb82d84026eb26dfc8e048e5d35d2bebb918c664) Thanks [@samternent](https://github.com/samternent)! - Update theme and home page
356
+
357
+ ## 0.0.6
358
+
359
+ ### Patch Changes
360
+
361
+ - [`dfb7156622931290d861583139e0d16b8711fdc1`](https://github.com/samternent/home/commit/dfb7156622931290d861583139e0d16b8711fdc1) Thanks [@samternent](https://github.com/samternent)! - Remove content and tweak tabs
362
+
363
+ ## 0.0.5
364
+
365
+ ### Patch Changes
366
+
367
+ - [`9dcad6a68edb8012b34dfc30d2f652114db085d4`](https://github.com/samternent/home/commit/9dcad6a68edb8012b34dfc30d2f652114db085d4) Thanks [@samternent](https://github.com/samternent)! - Updates responsiveness of things
368
+
369
+ ## 0.0.4
370
+
371
+ ### Patch Changes
372
+
373
+ - [`f8abac1f83db402de41970b39677d0c045a210c0`](https://github.com/samternent/home/commit/f8abac1f83db402de41970b39677d0c045a210c0) Thanks [@samternent](https://github.com/samternent)! - Close nav on navigate
374
+
375
+ ## 0.0.3
376
+
377
+ ### Patch Changes
378
+
379
+ - [`2393ddcb514083518aac92c9de0cbc4c4518048b`](https://github.com/samternent/home/commit/2393ddcb514083518aac92c9de0cbc4c4518048b) Thanks [@samternent](https://github.com/samternent)! - Adds breakpoints to nav
380
+
381
+ - [`df81b8fd87ae1e906c9da463d1d2fe37610eb1c7`](https://github.com/samternent/home/commit/df81b8fd87ae1e906c9da463d1d2fe37610eb1c7) Thanks [@samternent](https://github.com/samternent)! - Update UI nav
382
+
383
+ ## 0.0.2
384
+
385
+ ### Patch Changes
386
+
387
+ - [`0d7ddc5753740017962335661e9a169093edebb4`](https://github.com/samternent/home/commit/0d7ddc5753740017962335661e9a169093edebb4) Thanks [@samternent](https://github.com/samternent)! - Testing package bump
388
+
389
+ ## 0.0.1
390
+
391
+ ### Patch Changes
392
+
393
+ - [`e6bbb9f04034a9510b06c8b992937379221587db`](https://github.com/samternent/home/commit/e6bbb9f04034a9510b06c8b992937379221587db) Thanks [@samternent](https://github.com/samternent)! - Expose ternent-ui
@@ -0,0 +1,57 @@
1
+ # ternent-ui drop-in AI pack
2
+
3
+ This pack is designed to be copied directly into the `ternent-ui` package root.
4
+
5
+ ## What this gives you
6
+
7
+ - a clear v2 architecture for `src/primitives`
8
+ - strict AI governance docs
9
+ - token and theming rules
10
+ - primitive and accessibility rules
11
+ - a pattern boundary so product UI does not leak into the core
12
+ - ready-to-paste prompts for Codex or similar agents
13
+ - templates for component specs and PR review
14
+ - a concrete phased roadmap
15
+
16
+ ## Assumptions this pack makes
17
+
18
+ - `src/components/S*` is legacy and should be frozen except for urgent maintenance
19
+ - `src/primitives/*` is the future design-system source of truth
20
+ - Tailwind is retained as the styling implementation layer
21
+ - Ark UI is used selectively for interactive/a11y-heavy primitives
22
+ - multiple branded themes remain a first-class requirement
23
+
24
+ ## Suggested first move
25
+
26
+ 1. Copy the contents of this pack into the `ternent-ui` repo.
27
+ 2. Commit the docs before any major refactor so AI has a stable contract.
28
+ 3. Start Codex with `ai/prompts/00-master-system-prompt.md`.
29
+ 4. Then run the prompts in order.
30
+
31
+ ## Suggested placement
32
+
33
+ - `src/design-system/docs/*` should live exactly where provided.
34
+ - `ai/prompts/*` and `ai/templates/*` can live at package root or be moved under `.ai/` if you prefer.
35
+ - `plans/*` can stay at package root or be copied into your internal docs area.
36
+
37
+ ## Recommended execution order
38
+
39
+ 1. `ai/prompts/00-master-system-prompt.md`
40
+ 2. `ai/prompts/01-bootstrap-docs.md`
41
+ 3. `ai/prompts/02-button-hardening.md`
42
+ 4. `ai/prompts/03-form-primitives.md`
43
+ 5. `ai/prompts/04-choice-controls.md`
44
+ 6. `ai/prompts/05-dialog-and-overlays.md`
45
+ 7. `ai/prompts/06-navigation-and-disclosure.md`
46
+
47
+ ## Grounding notes for this repo
48
+
49
+ This pack was written to match the current shape of `ternent-ui` as shared:
50
+
51
+ - legacy `src/components/S*.vue`
52
+ - new `src/primitives/Button/*`
53
+ - token css under `src/design-system/tokens.css`
54
+ - multi-theme setup under `src/themes/*`
55
+ - existing token names like `--ui-bg`, `--ui-fg`, `--ui-surface`, `--ui-primary`, `--ui-critical`, `--ui-ring`
56
+
57
+ The docs intentionally allow a staged migration rather than forcing an immediate token rename.
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "esnext",
4
+ "useDefineForClassFields": true,
5
+ "module": "esnext",
6
+ "moduleResolution": "node",
7
+ "strict": true,
8
+ "jsx": "preserve",
9
+ "sourceMap": true,
10
+ "resolveJsonModule": true,
11
+ "esModuleInterop": true,
12
+ "lib": ["esnext", "dom"],
13
+ "baseUrl": ".",
14
+ "paths": {
15
+ "@/*": ["src/*"]
16
+ }
17
+ },
18
+ "exclude": ["**/node_modules/**/*", "**/dist/**/*"]
19
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@ternent/ui",
3
+ "version": "0.6.0",
4
+ "description": "A collection of Vue components and themes for ternent applications",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/ternent/core.git",
8
+ "directory": "packages/ui"
9
+ },
10
+ "type": "module",
11
+ "main": "./dist/components.js",
12
+ "exports": {
13
+ ".": "./dist/components.js",
14
+ "./primitives": "./dist/primitives.js",
15
+ "./patterns": "./dist/patterns.js",
16
+ "./styles.css": "./dist/ui.css",
17
+ "./themes/print.css": "./src/themes/print.css",
18
+ "./themes/neon-noir.css": "./src/themes/neon-noir.css",
19
+ "./themes/spruce-ink.css": "./src/themes/spruce-ink.css",
20
+ "./themes/citrine-ash.css": "./src/themes/citrine-ash.css",
21
+ "./themes/harbor-rose.css": "./src/themes/harbor-rose.css",
22
+ "./themes/obsidian-iris.css": "./src/themes/obsidian-iris.css",
23
+ "./themes/pixpax.css": "./src/themes/pixpax.css",
24
+ "./themes/proof.css": "./src/themes/proof.css",
25
+ "./themes/concord.css": "./src/themes/concord.css",
26
+ "./themes/ledger.css": "./src/themes/ledger.css",
27
+ "./themes/garnet-honey.css": "./src/themes/garnet-honey.css",
28
+ "./themes/prism.css": "./src/themes/prism.css",
29
+ "./themes/sunset.css": "./src/themes/sunset.css",
30
+ "./themes/armour.css": "./src/themes/armour.css",
31
+ "./themes/aurora.css": "./src/themes/aurora.css",
32
+ "./tailwind.config": "./tailwind.config.js"
33
+ },
34
+ "scripts": {
35
+ "build": "node ./scripts/generate-theme-css.mjs && vite build",
36
+ "dev": "vite build --watch",
37
+ "generate:themes": "node ./scripts/generate-theme-css.mjs",
38
+ "serve": "http-server ./dist -p 5001 --cors='*'",
39
+ "lint:tokens": "node ./scripts/check-tokens.js",
40
+ "test": "pnpm exec vitest run"
41
+ },
42
+ "dependencies": {
43
+ "@ark-ui/vue": "^5.30.0",
44
+ "@tailwindcss/typography": "^0.5.14",
45
+ "@tailwindcss/vite": "^4.1.18",
46
+ "@vueuse/core": "^10.11.1",
47
+ "autoprefixer": "^10.4.20",
48
+ "luxon": "^3.5.0",
49
+ "tailwind-merge": "^1.14.0",
50
+ "tailwindcss": "^4.1.18",
51
+ "tailwindcss-animate": "^1.0.7",
52
+ "vite-plugin-dts": "^1.7.3",
53
+ "vue": "^3.4.38"
54
+ },
55
+ "devDependencies": {
56
+ "@originjs/vite-plugin-federation": "^1.3.5",
57
+ "@vitejs/plugin-vue": "^4.6.2",
58
+ "@vue/test-utils": "^2.4.6",
59
+ "http-server": "^14.1.1",
60
+ "jsdom": "^24.1.1",
61
+ "vite": "^7.3.0",
62
+ "vitest": "^1.6.0"
63
+ }
64
+ }
@@ -0,0 +1,56 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+
8
+ const componentsDir = path.resolve(__dirname, "../src/components");
9
+ const styleFile = path.resolve(__dirname, "../src/style.css");
10
+
11
+ /**
12
+ * Recursively collect files matching the given extensions.
13
+ */
14
+ const collectFiles = (dir, extensions) => {
15
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
16
+ return entries.flatMap((entry) => {
17
+ const fullPath = path.join(dir, entry.name);
18
+ if (entry.isDirectory()) return collectFiles(fullPath, extensions);
19
+ return extensions.some((ext) => entry.name.endsWith(ext)) ? [fullPath] : [];
20
+ });
21
+ };
22
+
23
+ const filesToCheck = [...collectFiles(componentsDir, [".vue", ".js", ".ts"]), styleFile];
24
+
25
+ const arbitraryValuePattern = /\[[^\]]*?\d+(?:\.\d+)?(?:px|rem)[^\]]*?\]/g;
26
+ const hardCodedUnitPattern = /\b\d+(?:\.\d+)?(?:px|rem)\b/g;
27
+
28
+ const issues = [];
29
+
30
+ for (const file of filesToCheck) {
31
+ const content = fs.readFileSync(file, "utf8");
32
+
33
+ const arbitraryMatches = content.match(arbitraryValuePattern) || [];
34
+ if (arbitraryMatches.length) {
35
+ issues.push({ file, matches: arbitraryMatches, reason: "arbitrary values" });
36
+ }
37
+
38
+ if (file.endsWith(".css")) {
39
+ const unitMatches = (content.match(hardCodedUnitPattern) || []).filter(
40
+ (match) => parseFloat(match) !== 0,
41
+ );
42
+ if (unitMatches.length) {
43
+ issues.push({ file, matches: unitMatches, reason: "hardcoded CSS units" });
44
+ }
45
+ }
46
+ }
47
+
48
+ if (issues.length) {
49
+ console.error("Found hardcoded values that should map to design tokens:");
50
+ for (const { file, matches, reason } of issues) {
51
+ console.error(`- ${file} (${reason}): ${[...new Set(matches)].join(", ")}`);
52
+ }
53
+ process.exit(1);
54
+ }
55
+
56
+ console.log("Token lint passed: no hardcoded px/rem values detected.");
@@ -0,0 +1,85 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { namedSemanticThemes, rootSemanticThemes } from "../src/themes/semanticThemeContract.js";
5
+
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = path.dirname(__filename);
8
+
9
+ const rootDir = path.resolve(__dirname, "..");
10
+ const tokensCssPath = path.join(rootDir, "src/design-system/tokens.css");
11
+ const themesDir = path.join(rootDir, "src/themes");
12
+
13
+ const generatedHeader = "/* This file is generated from src/themes/semanticThemeContract.js. */";
14
+
15
+ const singletonThemeSelectors = {
16
+ "neon-noir": {
17
+ dark: "neon-noir",
18
+ },
19
+ proof: {
20
+ dark: "proof-dark",
21
+ },
22
+ };
23
+
24
+ function renderDeclaration([property, value], indent = " ") {
25
+ const normalizedValue = String(value)
26
+ .trim()
27
+ .replace(/[;,]+\s*$/, "");
28
+ return `${indent}${property}: ${normalizedValue};`;
29
+ }
30
+
31
+ function renderRule(selector, declarations, indent = "") {
32
+ const lines = [`${indent}${selector} {`];
33
+ for (const entry of Object.entries(declarations)) {
34
+ lines.push(renderDeclaration(entry, `${indent} `));
35
+ }
36
+ lines.push(`${indent}}`);
37
+ return lines.join("\n");
38
+ }
39
+
40
+ function renderRootCss() {
41
+ const lightRule = renderRule(":root", rootSemanticThemes.light);
42
+ const darkRule = renderRule(":root", rootSemanticThemes.dark, " ");
43
+
44
+ return [
45
+ generatedHeader,
46
+ "",
47
+ lightRule,
48
+ "",
49
+ "@media (prefers-color-scheme: dark) {",
50
+ darkRule,
51
+ "}",
52
+ "",
53
+ ].join("\n");
54
+ }
55
+
56
+ function getThemeSelector(themeName, mode) {
57
+ const singletonSelector = singletonThemeSelectors[themeName]?.[mode];
58
+ if (singletonSelector) {
59
+ return `:root[data-theme="${singletonSelector}"], [data-theme="${singletonSelector}"]`;
60
+ }
61
+
62
+ const selector = `${themeName}-${mode}`;
63
+ return `:root[data-theme="${selector}"], [data-theme="${selector}"]`;
64
+ }
65
+
66
+ function renderThemeCss(themeName, variants) {
67
+ const sections = [generatedHeader, ""];
68
+
69
+ for (const mode of ["light", "dark"]) {
70
+ if (!variants[mode]) continue;
71
+ sections.push(renderRule(getThemeSelector(themeName, mode), variants[mode]));
72
+ sections.push("");
73
+ }
74
+
75
+ return sections.join("\n");
76
+ }
77
+
78
+ fs.writeFileSync(tokensCssPath, renderRootCss());
79
+
80
+ for (const [themeName, variants] of Object.entries(namedSemanticThemes)) {
81
+ const filePath = path.join(themesDir, `${themeName}.css`);
82
+ fs.writeFileSync(filePath, renderThemeCss(themeName, variants));
83
+ }
84
+
85
+ console.log("Generated semantic theme CSS.");