@yanolja-next/design-core 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/AGENTS.md +37 -0
  2. package/README.md +145 -1
  3. package/RULES.md +470 -0
  4. package/catalog.json +1345 -0
  5. package/dist/catalog.d.ts +11 -0
  6. package/dist/components/button/ActionRow.d.ts +2 -0
  7. package/dist/components/button/Button.d.ts +20 -0
  8. package/dist/components/button/ButtonLink.d.ts +9 -0
  9. package/dist/components/button/CopyBox.d.ts +7 -0
  10. package/dist/components/button/CopyButton.d.ts +6 -0
  11. package/dist/components/button/CopyText.d.ts +10 -0
  12. package/dist/components/button/ExpandToggle.d.ts +8 -0
  13. package/dist/components/button/GoLink.d.ts +11 -0
  14. package/dist/components/button/TextButton.d.ts +3 -0
  15. package/dist/components/button/ToolButton.d.ts +7 -0
  16. package/dist/components/button/index.d.ts +19 -0
  17. package/dist/components/data/card/Card.d.ts +31 -0
  18. package/dist/components/data/card/index.d.ts +2 -0
  19. package/dist/components/data/change-group/ChangeGroup.d.ts +10 -0
  20. package/dist/components/data/change-group/MarkList.d.ts +12 -0
  21. package/dist/components/data/change-group/index.d.ts +4 -0
  22. package/dist/components/data/clip-text/ClipText.d.ts +6 -0
  23. package/dist/components/data/clip-text/index.d.ts +2 -0
  24. package/dist/components/data/collection-filter/CollectionFilter.d.ts +19 -0
  25. package/dist/components/data/collection-filter/ToolbarDivider.d.ts +2 -0
  26. package/dist/components/data/collection-filter/index.d.ts +3 -0
  27. package/dist/components/data/container/Container.d.ts +26 -0
  28. package/dist/components/data/container/SectionStack.d.ts +2 -0
  29. package/dist/components/data/container/index.d.ts +3 -0
  30. package/dist/components/data/disclosure/Disclosure.d.ts +10 -0
  31. package/dist/components/data/disclosure/index.d.ts +2 -0
  32. package/dist/components/data/divided/Divided.d.ts +2 -0
  33. package/dist/components/data/divided/index.d.ts +1 -0
  34. package/dist/components/data/empty-state/EmptyState.d.ts +16 -0
  35. package/dist/components/data/empty-state/index.d.ts +2 -0
  36. package/dist/components/data/facts/Facts.d.ts +11 -0
  37. package/dist/components/data/facts/index.d.ts +2 -0
  38. package/dist/components/data/fail-state/FailLine.d.ts +5 -0
  39. package/dist/components/data/fail-state/FailState.d.ts +11 -0
  40. package/dist/components/data/fail-state/index.d.ts +4 -0
  41. package/dist/components/data/figures/Figures.d.ts +30 -0
  42. package/dist/components/data/figures/index.d.ts +2 -0
  43. package/dist/components/data/index.d.ts +38 -0
  44. package/dist/components/data/info-panel/InfoPanel.d.ts +22 -0
  45. package/dist/components/data/info-panel/index.d.ts +2 -0
  46. package/dist/components/data/inline-list/InlineList.d.ts +5 -0
  47. package/dist/components/data/inline-list/index.d.ts +2 -0
  48. package/dist/components/data/key-value/KeyValue.d.ts +7 -0
  49. package/dist/components/data/key-value/KeyValueColumns.d.ts +10 -0
  50. package/dist/components/data/key-value/index.d.ts +4 -0
  51. package/dist/components/data/lines/Lines.d.ts +6 -0
  52. package/dist/components/data/lines/index.d.ts +2 -0
  53. package/dist/components/data/link-card/LinkCard.d.ts +22 -0
  54. package/dist/components/data/link-card/index.d.ts +2 -0
  55. package/dist/components/data/machine-text/MachineText.d.ts +6 -0
  56. package/dist/components/data/machine-text/index.d.ts +2 -0
  57. package/dist/components/data/meta/Meta.d.ts +7 -0
  58. package/dist/components/data/meta/index.d.ts +2 -0
  59. package/dist/components/data/metric-strip/MetricStrip.d.ts +17 -0
  60. package/dist/components/data/metric-strip/index.d.ts +2 -0
  61. package/dist/components/data/more-text/MoreText.d.ts +8 -0
  62. package/dist/components/data/more-text/index.d.ts +2 -0
  63. package/dist/components/data/name-text/NameText.d.ts +4 -0
  64. package/dist/components/data/name-text/index.d.ts +2 -0
  65. package/dist/components/data/note/Note.d.ts +7 -0
  66. package/dist/components/data/note/index.d.ts +2 -0
  67. package/dist/components/data/page-foot/PageFoot.d.ts +3 -0
  68. package/dist/components/data/page-foot/index.d.ts +1 -0
  69. package/dist/components/data/pagination/Pagination.d.ts +10 -0
  70. package/dist/components/data/pagination/index.d.ts +2 -0
  71. package/dist/components/data/pick-list/PickList.d.ts +24 -0
  72. package/dist/components/data/pick-list/index.d.ts +2 -0
  73. package/dist/components/data/prose/PlainText.d.ts +3 -0
  74. package/dist/components/data/prose/Prose.d.ts +3 -0
  75. package/dist/components/data/prose/index.d.ts +4 -0
  76. package/dist/components/data/rail/Rail.d.ts +30 -0
  77. package/dist/components/data/rail/index.d.ts +1 -0
  78. package/dist/components/data/skeleton/Skeleton.d.ts +48 -0
  79. package/dist/components/data/skeleton/index.d.ts +2 -0
  80. package/dist/components/data/skeleton/placeholder.d.ts +13 -0
  81. package/dist/components/data/split-panes/SplitPanes.d.ts +3 -0
  82. package/dist/components/data/split-panes/index.d.ts +2 -0
  83. package/dist/components/data/steps/Steps.d.ts +10 -0
  84. package/dist/components/data/steps/index.d.ts +2 -0
  85. package/dist/components/data/sub-head/SubHead.d.ts +6 -0
  86. package/dist/components/data/sub-head/index.d.ts +2 -0
  87. package/dist/components/data/table/Table.d.ts +95 -0
  88. package/dist/components/data/table/TableClip.d.ts +6 -0
  89. package/dist/components/data/table/TableMore.d.ts +2 -0
  90. package/dist/components/data/table/TableSkeleton.d.ts +20 -0
  91. package/dist/components/data/table/TableSubLine.d.ts +8 -0
  92. package/dist/components/data/table/index.d.ts +9 -0
  93. package/dist/components/data/tabs/Tabs.d.ts +14 -0
  94. package/dist/components/data/tabs/index.d.ts +2 -0
  95. package/dist/components/data/term-list/TermList.d.ts +10 -0
  96. package/dist/components/data/term-list/index.d.ts +2 -0
  97. package/dist/components/data/url-text/UrlText.d.ts +11 -0
  98. package/dist/components/data/url-text/index.d.ts +2 -0
  99. package/dist/components/data/usage-bar/UsageBar.d.ts +19 -0
  100. package/dist/components/data/usage-bar/index.d.ts +2 -0
  101. package/dist/components/data/veiled/Veiled.d.ts +6 -0
  102. package/dist/components/data/veiled/index.d.ts +2 -0
  103. package/dist/components/data/warn-line/WarnLine.d.ts +6 -0
  104. package/dist/components/data/warn-line/index.d.ts +2 -0
  105. package/dist/components/forms/badge/Badge.d.ts +10 -0
  106. package/dist/components/forms/badge/index.d.ts +2 -0
  107. package/dist/components/forms/checkbox/Checkbox.d.ts +18 -0
  108. package/dist/components/forms/checkbox/index.d.ts +2 -0
  109. package/dist/components/forms/chip/Chip.d.ts +14 -0
  110. package/dist/components/forms/chip/ChipList.d.ts +2 -0
  111. package/dist/components/forms/chip/index.d.ts +3 -0
  112. package/dist/components/forms/code-input/CodeInput.d.ts +8 -0
  113. package/dist/components/forms/code-input/index.d.ts +2 -0
  114. package/dist/components/forms/combobox/Combobox.d.ts +28 -0
  115. package/dist/components/forms/combobox/index.d.ts +2 -0
  116. package/dist/components/forms/control.d.ts +6 -0
  117. package/dist/components/forms/field/Field.d.ts +32 -0
  118. package/dist/components/forms/field/index.d.ts +2 -0
  119. package/dist/components/forms/field-group/FieldGroup.d.ts +6 -0
  120. package/dist/components/forms/field-group/index.d.ts +2 -0
  121. package/dist/components/forms/form/Form.d.ts +2 -0
  122. package/dist/components/forms/form/index.d.ts +1 -0
  123. package/dist/components/forms/form-actions/FormActions.d.ts +5 -0
  124. package/dist/components/forms/form-actions/index.d.ts +2 -0
  125. package/dist/components/forms/index.d.ts +16 -0
  126. package/dist/components/forms/input/Input.d.ts +12 -0
  127. package/dist/components/forms/input/index.d.ts +2 -0
  128. package/dist/components/forms/radio/Radio.d.ts +10 -0
  129. package/dist/components/forms/radio/index.d.ts +2 -0
  130. package/dist/components/forms/segmented/Segmented.d.ts +20 -0
  131. package/dist/components/forms/segmented/index.d.ts +2 -0
  132. package/dist/components/forms/select/Select.d.ts +30 -0
  133. package/dist/components/forms/select/SelectText.d.ts +2 -0
  134. package/dist/components/forms/select/index.d.ts +3 -0
  135. package/dist/components/forms/status-indicator/StatusIndicator.d.ts +12 -0
  136. package/dist/components/forms/status-indicator/index.d.ts +2 -0
  137. package/dist/components/forms/switch/Switch.d.ts +7 -0
  138. package/dist/components/forms/switch/index.d.ts +2 -0
  139. package/dist/components/forms/textarea/Textarea.d.ts +5 -0
  140. package/dist/components/forms/textarea/index.d.ts +2 -0
  141. package/dist/components/icon/Icon.d.ts +10 -0
  142. package/dist/components/icon/SwapIcon.d.ts +2 -0
  143. package/dist/components/icon/icons.d.ts +286 -0
  144. package/dist/components/icon/index.d.ts +3 -0
  145. package/dist/components/link/Link.d.ts +12 -0
  146. package/dist/components/link/TextLink.d.ts +8 -0
  147. package/dist/components/link/index.d.ts +4 -0
  148. package/dist/components/overlay/index.d.ts +6 -0
  149. package/dist/components/overlay/menu/Menu.d.ts +36 -0
  150. package/dist/components/overlay/menu/index.d.ts +2 -0
  151. package/dist/components/overlay/modal/ConfirmModal.d.ts +15 -0
  152. package/dist/components/overlay/modal/Modal.d.ts +34 -0
  153. package/dist/components/overlay/modal/PanelHeader.d.ts +32 -0
  154. package/dist/components/overlay/modal/index.d.ts +5 -0
  155. package/dist/components/overlay/popover/Popover.d.ts +23 -0
  156. package/dist/components/overlay/popover/index.d.ts +2 -0
  157. package/dist/components/overlay/sheet/Sheet.d.ts +31 -0
  158. package/dist/components/overlay/sheet/index.d.ts +2 -0
  159. package/dist/components/overlay/toast/Toast.d.ts +20 -0
  160. package/dist/components/overlay/toast/index.d.ts +2 -0
  161. package/dist/components/overlay/tooltip/InfoTip.d.ts +8 -0
  162. package/dist/components/overlay/tooltip/TipText.d.ts +6 -0
  163. package/dist/components/overlay/tooltip/Tooltip.d.ts +14 -0
  164. package/dist/components/overlay/tooltip/index.d.ts +6 -0
  165. package/dist/components/reason/LockedPreview.d.ts +2 -0
  166. package/dist/components/reason/WithReason.d.ts +10 -0
  167. package/dist/components/reason/index.d.ts +3 -0
  168. package/dist/components/shell/app-shell/AppShell.d.ts +7 -0
  169. package/dist/components/shell/app-shell/index.d.ts +4 -0
  170. package/dist/components/shell/app-shell/sideNav.d.ts +12 -0
  171. package/dist/components/shell/drawer/Drawer.d.ts +36 -0
  172. package/dist/components/shell/drawer/index.d.ts +2 -0
  173. package/dist/components/shell/help-panel/HelpPanel.d.ts +33 -0
  174. package/dist/components/shell/help-panel/index.d.ts +2 -0
  175. package/dist/components/shell/index.d.ts +12 -0
  176. package/dist/components/shell/match/Keycap.d.ts +2 -0
  177. package/dist/components/shell/match/MatchText.d.ts +4 -0
  178. package/dist/components/shell/page-head/HeadMore.d.ts +15 -0
  179. package/dist/components/shell/page-head/PageHead.d.ts +39 -0
  180. package/dist/components/shell/page-head/index.d.ts +6 -0
  181. package/dist/components/shell/page-head/pagePath.d.ts +10 -0
  182. package/dist/components/shell/rank.d.ts +1 -0
  183. package/dist/components/shell/sidebar/Sidebar.d.ts +40 -0
  184. package/dist/components/shell/sidebar/index.d.ts +2 -0
  185. package/dist/components/shell/sign-in-card/SignInCard.d.ts +29 -0
  186. package/dist/components/shell/sign-in-card/index.d.ts +2 -0
  187. package/dist/components/shell/slash.d.ts +3 -0
  188. package/dist/components/shell/standalone-panel/StandalonePanel.d.ts +6 -0
  189. package/dist/components/shell/standalone-panel/index.d.ts +2 -0
  190. package/dist/components/shell/topbar/Topbar.d.ts +76 -0
  191. package/dist/components/shell/topbar/index.d.ts +2 -0
  192. package/dist/components/viz/chart/BarChart.d.ts +6 -0
  193. package/dist/components/viz/chart/ChartFrame.d.ts +34 -0
  194. package/dist/components/viz/chart/ChartHead.d.ts +9 -0
  195. package/dist/components/viz/chart/ChartLegend.d.ts +17 -0
  196. package/dist/components/viz/chart/ChartSkeleton.d.ts +6 -0
  197. package/dist/components/viz/chart/LineChart.d.ts +6 -0
  198. package/dist/components/viz/chart/Sparkline.d.ts +14 -0
  199. package/dist/components/viz/chart/TimeSeriesChart.d.ts +7 -0
  200. package/dist/components/viz/chart/bubble.d.ts +1 -0
  201. package/dist/components/viz/chart/index.d.ts +16 -0
  202. package/dist/components/viz/chart/layout.d.ts +212 -0
  203. package/dist/components/viz/chart/timeSeries.d.ts +44 -0
  204. package/dist/components/viz/code-block/CodeBlock.d.ts +18 -0
  205. package/dist/components/viz/code-block/index.d.ts +2 -0
  206. package/dist/components/viz/index.d.ts +2 -0
  207. package/dist/i18n/en.d.ts +88 -0
  208. package/dist/i18n/index.d.ts +15 -0
  209. package/dist/index.d.ts +22 -0
  210. package/dist/index.js +10142 -0
  211. package/dist/lib/afterPress.d.ts +1 -0
  212. package/dist/lib/arrival.d.ts +3 -0
  213. package/dist/lib/cn.d.ts +2 -0
  214. package/dist/lib/copied.d.ts +5 -0
  215. package/dist/lib/floating.d.ts +5 -0
  216. package/dist/lib/focusAfter.d.ts +2 -0
  217. package/dist/lib/hit.d.ts +1 -0
  218. package/dist/lib/level.d.ts +1 -0
  219. package/dist/lib/media.d.ts +3 -0
  220. package/dist/lib/motion.d.ts +20 -0
  221. package/dist/lib/pageScroll.d.ts +6 -0
  222. package/dist/lib/scrollbar.d.ts +1 -0
  223. package/dist/styles.css +2 -0
  224. package/llms.txt +201 -0
  225. package/package.json +69 -5
  226. package/skill/SKILL.md +38 -0
package/package.json CHANGED
@@ -1,7 +1,71 @@
1
1
  {
2
2
  "name": "@yanolja-next/design-core",
3
- "version": "0.0.1",
4
- "description": "NEXT Hub design system (design-core). Placeholder so Trusted Publishing can be set up. Real releases come from yanolja-org/next-hub.",
5
- "license": "UNLICENSED",
6
- "repository": { "type": "git", "url": "git+https://github.com/yanolja-org/next-hub.git" }
7
- }
3
+ "private": false,
4
+ "version": "0.1.0",
5
+ "description": "Product-neutral React parts of the Yanolja NEXT design system, with their prebuilt CSS",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./styles.css": "./dist/styles.css"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md",
18
+ "AGENTS.md",
19
+ "RULES.md",
20
+ "catalog.json",
21
+ "llms.txt",
22
+ "skill"
23
+ ],
24
+ "sideEffects": [
25
+ "*.css"
26
+ ],
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/yanolja-org/next-hub.git",
30
+ "directory": "design-system/core"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public",
34
+ "registry": "https://registry.npmjs.org"
35
+ },
36
+ "devDependencies": {
37
+ "@tailwindcss/cli": "^4.3.3",
38
+ "@types/react": "^19.2.15",
39
+ "@types/react-dom": "^19.2.3",
40
+ "react": "^19.2.6",
41
+ "react-dom": "^19.2.6",
42
+ "tailwindcss": "^4.3.3",
43
+ "typescript": "^5.9.3",
44
+ "unplugin-dts": "^1.0.3",
45
+ "vite": "^7.3.3"
46
+ },
47
+ "dependencies": {
48
+ "@radix-ui/react-checkbox": "^1.4.1",
49
+ "@radix-ui/react-dialog": "^1.1.15",
50
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
51
+ "@radix-ui/react-popover": "^1.1.15",
52
+ "@radix-ui/react-radio-group": "^1.5.1",
53
+ "@radix-ui/react-select": "^2.2.6",
54
+ "@radix-ui/react-slot": "^1.2.4",
55
+ "@radix-ui/react-switch": "^1.2.6",
56
+ "@radix-ui/react-toast": "^1.3.1",
57
+ "@radix-ui/react-tooltip": "^1.2.8",
58
+ "class-variance-authority": "^0.7.1",
59
+ "clsx": "^2.1.1",
60
+ "tailwind-merge": "^3.6.0",
61
+ "@yanolja-next/design-tokens": "0.1.0"
62
+ },
63
+ "peerDependencies": {
64
+ "react": "^19.0.0",
65
+ "react-dom": "^19.0.0"
66
+ },
67
+ "scripts": {
68
+ "build": "vite build && tailwindcss -i src/styles.css -o dist/styles.css --minify",
69
+ "agent-files": "node scripts/write-agent-files.ts"
70
+ }
71
+ }
package/skill/SKILL.md ADDED
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: nexthub-design
3
+ description: Builds or changes React screens with the Yanolja NEXT design system (@yanolja-next/design-core and @yanolja-next/design-tokens). Use it when you build or change a React screen in a repository that has @yanolja-next/design-core, or when the user mentions the design system, shared parts, design tokens, or moving from @yanolja-next/next-hub-ui.
4
+ ---
5
+
6
+ # nexthub-design
7
+
8
+ Pick parts by intent from the design core catalog, keep screen CSS to layout, and put a missing part in the product kit.
9
+
10
+ ## Find the catalog
11
+
12
+ 1. Read `node_modules/@yanolja-next/design-core/catalog.json`. If it is not there, install the package first (step 1 below).
13
+ 2. In the next-hub repository, read `design-system/core/src/catalog.ts` and the kit catalogs in `design-system/kits/*/src/catalog.ts` instead.
14
+ 3. If the installed version and the repository differ, the installed version is correct for that product.
15
+
16
+ ## Steps
17
+
18
+ 1. Install: `pnpm add @yanolja-next/design-tokens @yanolja-next/design-core pretendard`. If the app uses React 18, stop and tell the user. The parts need React 19.
19
+ 2. CSS: at the app entry, import `pretendard/dist/web/variable/pretendardvariable-dynamic-subset.css`, `@yanolja-next/design-tokens/fonts.css` and `@yanolja-next/design-core/styles.css`. If the tokens package ships a theme for the product, import it after them. If the repository runs Tailwind, add `@yanolja-next/design-tokens/tailwind.css` to its Tailwind entry. Do not use `@import 'tailwindcss'`, because its preflight removes the backgrounds and borders of the parts. Import the theme and the utilities only, as `README.md` shows.
20
+ 3. App setup: follow `README.md` "App setup". An English app calls `setLocale('en')` at the entry and in the test setup. A router app wraps the app in `LinkProvider`. Add `ToastProvider` and the sign-out route. Add the jsdom stubs from `README.md` "Tests in jsdom" to the test setup.
21
+ 4. Theme: if the product colours differ, do not make a theme file. Ask the user which semantic values must change. A theme is a design decision.
22
+ 5. Pick a part: write in one line what you want to build. Find it in `catalog.json` by `intent` and `use`. If `avoid` matches your case, go to an entry in `instead`. Read the rule it names in `RULES.md` and its props in `dist/index.d.ts`. In the next-hub workspace, `dist` exists only after a build, so read the source in `design-system/core/src/components`.
23
+ 6. Screen CSS holds layout only: grids, column widths, spacing between sections and one-off positions. Do not build a box, a text style, a state or a hover in screen CSS.
24
+ 7. No part fits: build it in that repository's product kit with a catalog entry. If another product kit already has a part with the same intent, open an issue or a next-hub pull request to move it to core.
25
+
26
+ ## Move from @yanolja-next/next-hub-ui
27
+
28
+ - Move one app at a time. Do not mix the two packages inside one app for long, because their base CSS rules differ.
29
+ - Map each next-hub-ui part to the core part with the same intent (`Dialog` to `Modal`, `Alert` to `Note` or `FailState`, `Typography` to `PageHead`, `SubHead`, `Meta` or `Prose`). Check the intent in `catalog.json`. Do not map by name only.
30
+ - Button variants: the shadcn `default` variant is a dark fill, but core `primary` is for the one main action of a screen only. Map shadcn `default` to `primary` only for that action, and to `default` for all other buttons. Map `outline` to `default`, `ghost` to `quiet` and `destructive` to `danger`.
31
+ - An icon child of a button becomes the `icon` prop (`<Button icon="plus">`).
32
+ - `PendingButton` becomes `Button loading`. `loading` sets `aria-busy`, not `disabled`. Change `toBeDisabled()` assertions to check `aria-busy="true"`.
33
+ - `window.confirm` becomes `ConfirmModal`.
34
+ - `Toaster` becomes `ToastProvider`, and a component shows a toast with `useToast().show({ title })`. A `toast.success(...)` call outside a component becomes `showToast({ title, tone: 'success' })`.
35
+ - A native `<select>` becomes `Select`. `Select` is a Radix select, so `fireEvent.change` does not work in tests. Open it with a click and click the option.
36
+ - A `<datalist>` becomes `Combobox`. For a list of hundreds of options, use `rank` to put the best matches first and `limit` to cap the open list.
37
+ - A hand-built panel or card (`Panel`, `Card` with its own border and padding) becomes `Container`. Use `Card` only for boxes that sit side by side.
38
+ - A "Back" link on a detail screen becomes `PageHead crumbs`.