ink 6.8.0 → 7.0.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 (128) hide show
  1. package/build/components/AnimationContext.d.ts +9 -0
  2. package/build/components/AnimationContext.js +13 -0
  3. package/build/components/AnimationContext.js.map +1 -0
  4. package/build/components/App.d.ts +4 -1
  5. package/build/components/App.js +140 -20
  6. package/build/components/App.js.map +1 -1
  7. package/build/components/AppContext.d.ts +28 -2
  8. package/build/components/AppContext.js +2 -1
  9. package/build/components/AppContext.js.map +1 -1
  10. package/build/components/Box.d.ts +16 -3
  11. package/build/components/ErrorBoundary.d.ts +2 -2
  12. package/build/components/ErrorOverview.js +6 -6
  13. package/build/components/ErrorOverview.js.map +1 -1
  14. package/build/components/Static.js.map +1 -1
  15. package/build/components/StdinContext.d.ts +7 -1
  16. package/build/components/StdinContext.js +1 -0
  17. package/build/components/StdinContext.js.map +1 -1
  18. package/build/components/Text.d.ts +1 -1
  19. package/build/components/Text.js +1 -1
  20. package/build/components/Text.js.map +1 -1
  21. package/build/components/Transform.d.ts +1 -1
  22. package/build/devtools-window-polyfill.js +7 -4
  23. package/build/devtools-window-polyfill.js.map +1 -1
  24. package/build/devtools.js +31 -6
  25. package/build/devtools.js.map +1 -1
  26. package/build/dom.d.ts +5 -1
  27. package/build/dom.js +20 -1
  28. package/build/dom.js.map +1 -1
  29. package/build/hooks/use-animation.d.ts +49 -0
  30. package/build/hooks/use-animation.js +87 -0
  31. package/build/hooks/use-animation.js.map +1 -0
  32. package/build/hooks/use-app.d.ts +5 -2
  33. package/build/hooks/use-app.js +1 -1
  34. package/build/hooks/use-box-metrics.d.ts +59 -0
  35. package/build/hooks/use-box-metrics.js +88 -0
  36. package/build/hooks/use-box-metrics.js.map +1 -0
  37. package/build/hooks/use-cursor.d.ts +1 -1
  38. package/build/hooks/use-cursor.js +1 -1
  39. package/build/hooks/use-focus-manager.d.ts +17 -2
  40. package/build/hooks/use-focus-manager.js +2 -1
  41. package/build/hooks/use-focus-manager.js.map +1 -1
  42. package/build/hooks/use-focus.d.ts +2 -1
  43. package/build/hooks/use-focus.js +5 -4
  44. package/build/hooks/use-focus.js.map +1 -1
  45. package/build/hooks/use-input.d.ts +2 -1
  46. package/build/hooks/use-input.js +82 -80
  47. package/build/hooks/use-input.js.map +1 -1
  48. package/build/hooks/use-is-screen-reader-enabled.d.ts +2 -1
  49. package/build/hooks/use-is-screen-reader-enabled.js +2 -1
  50. package/build/hooks/use-is-screen-reader-enabled.js.map +1 -1
  51. package/build/hooks/use-paste.d.ts +35 -0
  52. package/build/hooks/use-paste.js +62 -0
  53. package/build/hooks/use-paste.js.map +1 -0
  54. package/build/hooks/use-stderr.d.ts +1 -1
  55. package/build/hooks/use-stderr.js +1 -1
  56. package/build/hooks/use-stdin.d.ts +4 -2
  57. package/build/hooks/use-stdin.js +2 -1
  58. package/build/hooks/use-stdin.js.map +1 -1
  59. package/build/hooks/use-stdout.d.ts +1 -1
  60. package/build/hooks/use-stdout.js +1 -1
  61. package/build/hooks/use-window-size.d.ts +18 -0
  62. package/build/hooks/use-window-size.js +22 -0
  63. package/build/hooks/use-window-size.js.map +1 -0
  64. package/build/index.d.ts +8 -1
  65. package/build/index.js +4 -0
  66. package/build/index.js.map +1 -1
  67. package/build/ink.d.ts +48 -3
  68. package/build/ink.js +325 -155
  69. package/build/ink.js.map +1 -1
  70. package/build/input-parser.d.ts +4 -1
  71. package/build/input-parser.js +70 -30
  72. package/build/input-parser.js.map +1 -1
  73. package/build/log-update.d.ts +1 -0
  74. package/build/log-update.js +13 -1
  75. package/build/log-update.js.map +1 -1
  76. package/build/measure-element.d.ts +4 -0
  77. package/build/measure-element.js +4 -0
  78. package/build/measure-element.js.map +1 -1
  79. package/build/output.js +25 -0
  80. package/build/output.js.map +1 -1
  81. package/build/parse-keypress.d.ts +1 -3
  82. package/build/parse-keypress.js +19 -17
  83. package/build/parse-keypress.js.map +1 -1
  84. package/build/reconciler.js +46 -27
  85. package/build/reconciler.js.map +1 -1
  86. package/build/render-border.js +29 -18
  87. package/build/render-border.js.map +1 -1
  88. package/build/render-to-string.js +2 -1
  89. package/build/render-to-string.js.map +1 -1
  90. package/build/render.d.ts +57 -2
  91. package/build/render.js +18 -11
  92. package/build/render.js.map +1 -1
  93. package/build/styles.d.ts +78 -16
  94. package/build/styles.js +102 -31
  95. package/build/styles.js.map +1 -1
  96. package/build/utils.d.ts +9 -2
  97. package/build/utils.js +18 -3
  98. package/build/utils.js.map +1 -1
  99. package/build/wrap-text.js +7 -0
  100. package/build/wrap-text.js.map +1 -1
  101. package/build/write-synchronized.d.ts +1 -1
  102. package/build/write-synchronized.js +4 -2
  103. package/build/write-synchronized.js.map +1 -1
  104. package/package.json +34 -98
  105. package/readme.md +554 -48
  106. package/build/apply-styles.js +0 -175
  107. package/build/build-layout.js +0 -77
  108. package/build/calculate-wrapped-text.js +0 -53
  109. package/build/components/Color.js +0 -62
  110. package/build/components/Cursor.d.ts +0 -83
  111. package/build/components/Cursor.js +0 -53
  112. package/build/components/Cursor.js.map +0 -1
  113. package/build/experimental/apply-style.js +0 -140
  114. package/build/experimental/dom.js +0 -123
  115. package/build/experimental/output.js +0 -91
  116. package/build/experimental/reconciler.js +0 -141
  117. package/build/experimental/renderer.js +0 -81
  118. package/build/hooks/useInput.js +0 -38
  119. package/build/instance.js +0 -205
  120. package/build/layout.d.ts +0 -7
  121. package/build/layout.js +0 -33
  122. package/build/layout.js.map +0 -1
  123. package/build/options.d.ts +0 -52
  124. package/build/options.js +0 -2
  125. package/build/options.js.map +0 -1
  126. package/build/screen-reader-update.d.ts +0 -13
  127. package/build/screen-reader-update.js +0 -38
  128. package/build/screen-reader-update.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ink",
3
- "version": "6.8.0",
3
+ "version": "7.0.0",
4
4
  "description": "React for CLI",
5
5
  "license": "MIT",
6
6
  "repository": "vadimdemedes/ink",
@@ -15,13 +15,16 @@
15
15
  "default": "./build/index.js"
16
16
  },
17
17
  "engines": {
18
- "node": ">=20"
18
+ "node": ">=22"
19
19
  },
20
20
  "scripts": {
21
21
  "dev": "tsc --watch",
22
22
  "build": "tsc",
23
23
  "prepare": "npm run build",
24
- "test": "tsc --noEmit && xo && FORCE_COLOR=true ava",
24
+ "test": "npm run typecheck && npm run lint && FORCE_COLOR=true ava",
25
+ "lint": "xo",
26
+ "format": "prettier --write .",
27
+ "typecheck": "tsc --noEmit",
25
28
  "example": "NODE_NO_WARNINGS=1 node --import=tsx",
26
29
  "benchmark": "NODE_NO_WARNINGS=1 node --import=tsx",
27
30
  "inspect": "react-devtools"
@@ -44,69 +47,66 @@
44
47
  "text"
45
48
  ],
46
49
  "dependencies": {
47
- "@alcalzone/ansi-tokenize": "^0.2.4",
50
+ "@alcalzone/ansi-tokenize": "^0.3.0",
48
51
  "ansi-escapes": "^7.3.0",
49
- "ansi-styles": "^6.2.1",
52
+ "ansi-styles": "^6.2.3",
50
53
  "auto-bind": "^5.0.1",
51
- "chalk": "^5.6.0",
52
- "cli-boxes": "^3.0.0",
54
+ "chalk": "^5.6.2",
55
+ "cli-boxes": "^4.0.1",
53
56
  "cli-cursor": "^4.0.0",
54
- "cli-truncate": "^5.1.1",
57
+ "cli-truncate": "^6.0.0",
55
58
  "code-excerpt": "^4.0.0",
56
- "es-toolkit": "^1.39.10",
59
+ "es-toolkit": "^1.45.1",
57
60
  "indent-string": "^5.0.0",
58
61
  "is-in-ci": "^2.0.0",
59
62
  "patch-console": "^2.0.0",
60
63
  "react-reconciler": "^0.33.0",
61
64
  "scheduler": "^0.27.0",
62
65
  "signal-exit": "^3.0.7",
63
- "slice-ansi": "^8.0.0",
66
+ "slice-ansi": "^9.0.0",
64
67
  "stack-utils": "^2.0.6",
65
- "string-width": "^8.1.1",
68
+ "string-width": "^8.2.0",
66
69
  "terminal-size": "^4.0.1",
67
- "type-fest": "^5.4.1",
70
+ "type-fest": "^5.5.0",
68
71
  "widest-line": "^6.0.0",
69
- "wrap-ansi": "^9.0.0",
70
- "ws": "^8.18.0",
72
+ "wrap-ansi": "^10.0.0",
73
+ "ws": "^8.20.0",
71
74
  "yoga-layout": "~3.2.1"
72
75
  },
73
76
  "devDependencies": {
74
- "@faker-js/faker": "^10.3.0",
75
- "@sindresorhus/tsconfig": "^7.0.0",
76
- "@sinonjs/fake-timers": "^15.1.0",
77
+ "@faker-js/faker": "^10.4.0",
78
+ "@sindresorhus/tsconfig": "^8.1.0",
79
+ "@sinonjs/fake-timers": "^15.3.0",
77
80
  "@types/ms": "^2.1.0",
78
- "@types/node": "^25.0.10",
79
- "@types/react": "^19.2.13",
81
+ "@types/node": "^25.5.2",
82
+ "@types/react": "^19.2.14",
80
83
  "@types/react-reconciler": "^0.33.0",
81
84
  "@types/scheduler": "^0.26.0",
82
85
  "@types/signal-exit": "^3.0.0",
83
- "@types/sinon": "^21.0.0",
84
- "@types/stack-utils": "^2.0.2",
86
+ "@types/sinon": "^21.0.1",
87
+ "@types/stack-utils": "^2.0.3",
85
88
  "@types/ws": "^8.18.1",
86
89
  "@vdemedes/prettier-config": "^2.0.1",
87
- "ava": "^5.1.1",
90
+ "ava": "^7.0.0",
88
91
  "boxen": "^8.0.1",
89
92
  "delay": "^7.0.0",
90
- "eslint-config-xo-react": "0.27.0",
91
- "eslint-plugin-react": "^7.37.5",
92
- "eslint-plugin-react-hooks": "^5.0.0",
93
93
  "ms": "^2.1.3",
94
- "node-pty": "^1.2.0-beta.10",
95
- "p-queue": "^9.0.0",
94
+ "node-pty": "^1.2.0-beta.12",
95
+ "p-queue": "^9.1.2",
96
96
  "prettier": "^3.8.1",
97
97
  "react": "^19.2.4",
98
- "react-devtools-core": "^7.0.1",
99
98
  "react-devtools": "^7.0.1",
100
- "react-router": "^7.13.0",
101
- "sinon": "^21.0.0",
102
- "strip-ansi": "^7.1.0",
99
+ "react-devtools-core": "^7.0.1",
100
+ "react-router": "^7.14.0",
101
+ "sinon": "^21.0.3",
102
+ "strip-ansi": "^7.2.0",
103
103
  "tsx": "^4.21.0",
104
104
  "typescript": "^5.8.3",
105
- "xo": "^0.59.3"
105
+ "xo": "^1.2.3"
106
106
  },
107
107
  "peerDependencies": {
108
- "@types/react": ">=19.0.0",
109
- "react": ">=19.0.0",
108
+ "@types/react": ">=19.2.0",
109
+ "react": ">=19.2.0",
110
110
  "react-devtools-core": ">=6.1.2"
111
111
  },
112
112
  "peerDependenciesMeta": {
@@ -133,69 +133,5 @@
133
133
  "--import=tsx"
134
134
  ]
135
135
  },
136
- "xo": {
137
- "extends": [
138
- "xo-react"
139
- ],
140
- "plugins": [
141
- "react"
142
- ],
143
- "prettier": true,
144
- "rules": {
145
- "react/no-unescaped-entities": "off",
146
- "react/state-in-constructor": "off",
147
- "react/jsx-indent": "off",
148
- "react/prop-types": "off",
149
- "unicorn/import-index": "off",
150
- "import/no-useless-path-segments": "off",
151
- "react-hooks/exhaustive-deps": "off",
152
- "complexity": "off"
153
- },
154
- "ignores": [
155
- "src/parse-keypress.ts"
156
- ],
157
- "overrides": [
158
- {
159
- "files": [
160
- "src/**/*.{ts,tsx}",
161
- "test/**/*.{ts,tsx}"
162
- ],
163
- "rules": {
164
- "no-unused-expressions": "off",
165
- "camelcase": [
166
- "error",
167
- {
168
- "allow": [
169
- "^unstable__",
170
- "^internal_"
171
- ]
172
- }
173
- ],
174
- "unicorn/filename-case": "off",
175
- "react/default-props-match-prop-types": "off",
176
- "unicorn/prevent-abbreviations": "off",
177
- "react/require-default-props": "off",
178
- "react/jsx-curly-brace-presence": "off",
179
- "@typescript-eslint/no-empty-function": "off",
180
- "@typescript-eslint/promise-function-async": "warn",
181
- "@typescript-eslint/explicit-function-return": "off",
182
- "@typescript-eslint/explicit-function-return-type": "off",
183
- "dot-notation": "off",
184
- "react/boolean-prop-naming": "off",
185
- "unicorn/prefer-dom-node-remove": "off",
186
- "unicorn/prefer-event-target": "off"
187
- }
188
- },
189
- {
190
- "files": [
191
- "examples/**/*.{ts,tsx}",
192
- "benchmark/**/*.{ts,tsx}"
193
- ],
194
- "rules": {
195
- "import/no-unassigned-import": "off"
196
- }
197
- }
198
- ]
199
- },
200
136
  "prettier": "@vdemedes/prettier-config"
201
137
  }