flexlayout-react 0.8.12 → 0.8.13

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 (307) hide show
  1. package/README.md +16 -5
  2. package/declarations/Attribute.d.ts +25 -1
  3. package/declarations/AttributeDefinitions.d.ts +18 -1
  4. package/declarations/DockLocation.d.ts +22 -0
  5. package/declarations/I18nLabel.d.ts +2 -1
  6. package/declarations/Orientation.d.ts +4 -0
  7. package/declarations/Rect.d.ts +3 -0
  8. package/declarations/index.d.ts +1 -0
  9. package/declarations/model/BorderNode.d.ts +53 -0
  10. package/declarations/model/BorderSet.d.ts +28 -0
  11. package/declarations/model/IDraggable.d.ts +4 -0
  12. package/declarations/model/IDropTarget.d.ts +10 -0
  13. package/declarations/model/LayoutWindow.d.ts +16 -0
  14. package/declarations/model/Model.d.ts +55 -0
  15. package/declarations/model/Node.d.ts +61 -0
  16. package/declarations/model/RowNode.d.ts +67 -0
  17. package/declarations/model/TabNode.d.ts +79 -0
  18. package/declarations/model/TabSetNode.d.ts +60 -0
  19. package/declarations/model/Utils.d.ts +8 -0
  20. package/declarations/view/BorderButton.d.ts +13 -1
  21. package/declarations/view/BorderTab.d.ts +8 -0
  22. package/declarations/view/BorderTabSet.d.ts +10 -1
  23. package/declarations/view/DragContainer.d.ts +9 -1
  24. package/declarations/view/ErrorBoundary.d.ts +22 -1
  25. package/declarations/view/Icons.d.ts +1 -0
  26. package/declarations/view/Layout.d.ts +143 -1
  27. package/declarations/view/Overlay.d.ts +8 -1
  28. package/declarations/view/PopoutWindow.d.ts +14 -1
  29. package/declarations/view/PopupMenu.d.ts +12 -1
  30. package/declarations/view/Row.d.ts +9 -1
  31. package/declarations/view/Splitter.d.ts +14 -1
  32. package/declarations/view/Tab.d.ts +11 -1
  33. package/declarations/view/TabButton.d.ts +11 -1
  34. package/declarations/view/TabButtonStamp.d.ts +9 -1
  35. package/declarations/view/TabOverflowHook.d.ts +16 -1
  36. package/declarations/view/TabSet.d.ts +9 -1
  37. package/declarations/view/Utils.d.ts +13 -0
  38. package/lib/index.js +6410 -22
  39. package/package.json +34 -26
  40. package/ChangeLog.txt +0 -372
  41. package/declarations/DragDrop.d.ts +0 -15
  42. package/declarations/PopupMenu.d.ts +0 -1
  43. package/declarations/model/SplitterNode.d.ts +0 -5
  44. package/declarations/model/WindowLayout.d.ts +0 -24
  45. package/declarations/src/Attribute.d.ts +0 -1
  46. package/declarations/src/AttributeDefinitions.d.ts +0 -1
  47. package/declarations/src/DockLocation.d.ts +0 -12
  48. package/declarations/src/DropInfo.d.ts +0 -12
  49. package/declarations/src/I18nLabel.d.ts +0 -10
  50. package/declarations/src/Orientation.d.ts +0 -7
  51. package/declarations/src/PopupMenu.d.ts +0 -1
  52. package/declarations/src/Rect.d.ts +0 -31
  53. package/declarations/src/Types.d.ts +0 -92
  54. package/declarations/src/index.d.ts +0 -20
  55. package/declarations/src/model/Action.d.ts +0 -5
  56. package/declarations/src/model/Actions.d.ts +0 -110
  57. package/declarations/src/model/BorderNode.d.ts +0 -28
  58. package/declarations/src/model/BorderSet.d.ts +0 -3
  59. package/declarations/src/model/ICloseType.d.ts +0 -5
  60. package/declarations/src/model/IDraggable.d.ts +0 -2
  61. package/declarations/src/model/IDropTarget.d.ts +0 -2
  62. package/declarations/src/model/IJsonModel.d.ts +0 -153
  63. package/declarations/src/model/Model.d.ts +0 -98
  64. package/declarations/src/model/Node.d.ts +0 -16
  65. package/declarations/src/model/RowNode.d.ts +0 -11
  66. package/declarations/src/model/TabNode.d.ts +0 -36
  67. package/declarations/src/model/TabSetNode.d.ts +0 -37
  68. package/declarations/src/model/Utils.d.ts +0 -1
  69. package/declarations/src/view/BorderButton.d.ts +0 -1
  70. package/declarations/src/view/BorderTab.d.ts +0 -2
  71. package/declarations/src/view/BorderTabSet.d.ts +0 -1
  72. package/declarations/src/view/DragContainer.d.ts +0 -1
  73. package/declarations/src/view/ErrorBoundary.d.ts +0 -1
  74. package/declarations/src/view/FloatingWindow.d.ts +0 -1
  75. package/declarations/src/view/Icons.d.ts +0 -7
  76. package/declarations/src/view/Layout.d.ts +0 -113
  77. package/declarations/src/view/Overlay.d.ts +0 -1
  78. package/declarations/src/view/PopupMenu.d.ts +0 -1
  79. package/declarations/src/view/Row.d.ts +0 -1
  80. package/declarations/src/view/Splitter.d.ts +0 -1
  81. package/declarations/src/view/Tab.d.ts +0 -1
  82. package/declarations/src/view/TabButton.d.ts +0 -1
  83. package/declarations/src/view/TabButtonStamp.d.ts +0 -1
  84. package/declarations/src/view/TabOverflowHook.d.ts +0 -1
  85. package/declarations/src/view/TabSet.d.ts +0 -1
  86. package/declarations/src/view/Utils.d.ts +0 -4
  87. package/declarations/view/ExtendedResizeObserver.d.ts +0 -23
  88. package/declarations/view/FloatingWindow.d.ts +0 -1
  89. package/declarations/view/FloatingWindowTab.d.ts +0 -1
  90. package/declarations/view/TabFloating.d.ts +0 -1
  91. package/dist/flexlayout.js +0 -610
  92. package/dist/flexlayout_min.js +0 -2
  93. package/dist/flexlayout_min.js.LICENSE.txt +0 -29
  94. package/dist/src/Attribute.js +0 -43
  95. package/dist/src/Attribute.js.map +0 -1
  96. package/dist/src/AttributeDefinitions.js +0 -132
  97. package/dist/src/AttributeDefinitions.js.map +0 -1
  98. package/dist/src/DockLocation.js +0 -121
  99. package/dist/src/DockLocation.js.map +0 -1
  100. package/dist/src/DropInfo.js +0 -10
  101. package/dist/src/DropInfo.js.map +0 -1
  102. package/dist/src/I18nLabel.js +0 -14
  103. package/dist/src/I18nLabel.js.map +0 -1
  104. package/dist/src/Orientation.js +0 -23
  105. package/dist/src/Orientation.js.map +0 -1
  106. package/dist/src/Rect.js +0 -111
  107. package/dist/src/Rect.js.map +0 -1
  108. package/dist/src/Types.js +0 -95
  109. package/dist/src/Types.js.map +0 -1
  110. package/dist/src/index.js +0 -22
  111. package/dist/src/index.js.map +0 -1
  112. package/dist/src/model/Action.js +0 -7
  113. package/dist/src/model/Action.js.map +0 -1
  114. package/dist/src/model/Actions.js +0 -170
  115. package/dist/src/model/Actions.js.map +0 -1
  116. package/dist/src/model/BorderNode.js +0 -390
  117. package/dist/src/model/BorderNode.js.map +0 -1
  118. package/dist/src/model/BorderSet.js +0 -67
  119. package/dist/src/model/BorderSet.js.map +0 -1
  120. package/dist/src/model/ICloseType.js +0 -7
  121. package/dist/src/model/ICloseType.js.map +0 -1
  122. package/dist/src/model/IDraggable.js +0 -2
  123. package/dist/src/model/IDraggable.js.map +0 -1
  124. package/dist/src/model/IDropTarget.js +0 -2
  125. package/dist/src/model/IDropTarget.js.map +0 -1
  126. package/dist/src/model/IJsonModel.js +0 -2
  127. package/dist/src/model/IJsonModel.js.map +0 -1
  128. package/dist/src/model/LayoutWindow.js +0 -81
  129. package/dist/src/model/LayoutWindow.js.map +0 -1
  130. package/dist/src/model/Model.js +0 -608
  131. package/dist/src/model/Model.js.map +0 -1
  132. package/dist/src/model/Node.js +0 -218
  133. package/dist/src/model/Node.js.map +0 -1
  134. package/dist/src/model/RowNode.js +0 -492
  135. package/dist/src/model/RowNode.js.map +0 -1
  136. package/dist/src/model/TabNode.js +0 -293
  137. package/dist/src/model/TabNode.js.map +0 -1
  138. package/dist/src/model/TabSetNode.js +0 -469
  139. package/dist/src/model/TabSetNode.js.map +0 -1
  140. package/dist/src/model/Utils.js +0 -48
  141. package/dist/src/model/Utils.js.map +0 -1
  142. package/dist/src/view/BorderButton.js +0 -126
  143. package/dist/src/view/BorderButton.js.map +0 -1
  144. package/dist/src/view/BorderTab.js +0 -44
  145. package/dist/src/view/BorderTab.js.map +0 -1
  146. package/dist/src/view/BorderTabSet.js +0 -138
  147. package/dist/src/view/BorderTabSet.js.map +0 -1
  148. package/dist/src/view/DragContainer.js +0 -16
  149. package/dist/src/view/DragContainer.js.map +0 -1
  150. package/dist/src/view/ErrorBoundary.js +0 -24
  151. package/dist/src/view/ErrorBoundary.js.map +0 -1
  152. package/dist/src/view/Icons.js +0 -29
  153. package/dist/src/view/Icons.js.map +0 -1
  154. package/dist/src/view/Layout.js +0 -881
  155. package/dist/src/view/Layout.js.map +0 -1
  156. package/dist/src/view/Overlay.js +0 -9
  157. package/dist/src/view/Overlay.js.map +0 -1
  158. package/dist/src/view/PopoutWindow.js +0 -129
  159. package/dist/src/view/PopoutWindow.js.map +0 -1
  160. package/dist/src/view/PopupMenu.js +0 -89
  161. package/dist/src/view/PopupMenu.js.map +0 -1
  162. package/dist/src/view/Row.js +0 -46
  163. package/dist/src/view/Row.js.map +0 -1
  164. package/dist/src/view/SizeTracker.js +0 -12
  165. package/dist/src/view/SizeTracker.js.map +0 -1
  166. package/dist/src/view/Splitter.js +0 -192
  167. package/dist/src/view/Splitter.js.map +0 -1
  168. package/dist/src/view/Tab.js +0 -91
  169. package/dist/src/view/Tab.js.map +0 -1
  170. package/dist/src/view/TabButton.js +0 -124
  171. package/dist/src/view/TabButton.js.map +0 -1
  172. package/dist/src/view/TabButtonStamp.js +0 -15
  173. package/dist/src/view/TabButtonStamp.js.map +0 -1
  174. package/dist/src/view/TabOverflowHook.js +0 -266
  175. package/dist/src/view/TabOverflowHook.js.map +0 -1
  176. package/dist/src/view/TabSet.js +0 -256
  177. package/dist/src/view/TabSet.js.map +0 -1
  178. package/dist/src/view/Utils.js +0 -110
  179. package/dist/src/view/Utils.js.map +0 -1
  180. package/lib/Attribute.js +0 -43
  181. package/lib/Attribute.js.map +0 -1
  182. package/lib/AttributeDefinitions.js +0 -132
  183. package/lib/AttributeDefinitions.js.map +0 -1
  184. package/lib/DockLocation.js +0 -121
  185. package/lib/DockLocation.js.map +0 -1
  186. package/lib/DropInfo.js +0 -10
  187. package/lib/DropInfo.js.map +0 -1
  188. package/lib/I18nLabel.js +0 -14
  189. package/lib/I18nLabel.js.map +0 -1
  190. package/lib/Orientation.js +0 -23
  191. package/lib/Orientation.js.map +0 -1
  192. package/lib/Rect.js +0 -111
  193. package/lib/Rect.js.map +0 -1
  194. package/lib/Types.js +0 -95
  195. package/lib/Types.js.map +0 -1
  196. package/lib/index.js.map +0 -1
  197. package/lib/model/Action.js +0 -7
  198. package/lib/model/Action.js.map +0 -1
  199. package/lib/model/Actions.js +0 -170
  200. package/lib/model/Actions.js.map +0 -1
  201. package/lib/model/BorderNode.js +0 -390
  202. package/lib/model/BorderNode.js.map +0 -1
  203. package/lib/model/BorderSet.js +0 -67
  204. package/lib/model/BorderSet.js.map +0 -1
  205. package/lib/model/ICloseType.js +0 -7
  206. package/lib/model/ICloseType.js.map +0 -1
  207. package/lib/model/IDraggable.js +0 -2
  208. package/lib/model/IDraggable.js.map +0 -1
  209. package/lib/model/IDropTarget.js +0 -2
  210. package/lib/model/IDropTarget.js.map +0 -1
  211. package/lib/model/IJsonModel.js +0 -2
  212. package/lib/model/IJsonModel.js.map +0 -1
  213. package/lib/model/LayoutWindow.js +0 -81
  214. package/lib/model/LayoutWindow.js.map +0 -1
  215. package/lib/model/Model.js +0 -608
  216. package/lib/model/Model.js.map +0 -1
  217. package/lib/model/Node.js +0 -218
  218. package/lib/model/Node.js.map +0 -1
  219. package/lib/model/RowNode.js +0 -492
  220. package/lib/model/RowNode.js.map +0 -1
  221. package/lib/model/TabNode.js +0 -293
  222. package/lib/model/TabNode.js.map +0 -1
  223. package/lib/model/TabSetNode.js +0 -469
  224. package/lib/model/TabSetNode.js.map +0 -1
  225. package/lib/model/Utils.js +0 -48
  226. package/lib/model/Utils.js.map +0 -1
  227. package/lib/view/BorderButton.js +0 -126
  228. package/lib/view/BorderButton.js.map +0 -1
  229. package/lib/view/BorderTab.js +0 -56
  230. package/lib/view/BorderTab.js.map +0 -1
  231. package/lib/view/BorderTabSet.js +0 -138
  232. package/lib/view/BorderTabSet.js.map +0 -1
  233. package/lib/view/DragContainer.js +0 -16
  234. package/lib/view/DragContainer.js.map +0 -1
  235. package/lib/view/ErrorBoundary.js +0 -24
  236. package/lib/view/ErrorBoundary.js.map +0 -1
  237. package/lib/view/Icons.js +0 -29
  238. package/lib/view/Icons.js.map +0 -1
  239. package/lib/view/Layout.js +0 -881
  240. package/lib/view/Layout.js.map +0 -1
  241. package/lib/view/Overlay.js +0 -9
  242. package/lib/view/Overlay.js.map +0 -1
  243. package/lib/view/PopoutWindow.js +0 -129
  244. package/lib/view/PopoutWindow.js.map +0 -1
  245. package/lib/view/PopupMenu.js +0 -89
  246. package/lib/view/PopupMenu.js.map +0 -1
  247. package/lib/view/Row.js +0 -46
  248. package/lib/view/Row.js.map +0 -1
  249. package/lib/view/SizeTracker.js +0 -12
  250. package/lib/view/SizeTracker.js.map +0 -1
  251. package/lib/view/Splitter.js +0 -197
  252. package/lib/view/Splitter.js.map +0 -1
  253. package/lib/view/Tab.js +0 -91
  254. package/lib/view/Tab.js.map +0 -1
  255. package/lib/view/TabButton.js +0 -124
  256. package/lib/view/TabButton.js.map +0 -1
  257. package/lib/view/TabButtonStamp.js +0 -15
  258. package/lib/view/TabButtonStamp.js.map +0 -1
  259. package/lib/view/TabOverflowHook.js +0 -266
  260. package/lib/view/TabOverflowHook.js.map +0 -1
  261. package/lib/view/TabSet.js +0 -269
  262. package/lib/view/TabSet.js.map +0 -1
  263. package/lib/view/Utils.js +0 -110
  264. package/lib/view/Utils.js.map +0 -1
  265. package/src/Attribute.ts +0 -64
  266. package/src/AttributeDefinitions.ts +0 -144
  267. package/src/DockLocation.ts +0 -133
  268. package/src/DropInfo.ts +0 -20
  269. package/src/I18nLabel.ts +0 -12
  270. package/src/Orientation.ts +0 -28
  271. package/src/Rect.ts +0 -147
  272. package/src/Types.ts +0 -112
  273. package/src/index.ts +0 -23
  274. package/src/model/Action.ts +0 -9
  275. package/src/model/Actions.ts +0 -188
  276. package/src/model/BorderNode.ts +0 -458
  277. package/src/model/BorderSet.ts +0 -87
  278. package/src/model/ICloseType.ts +0 -5
  279. package/src/model/IDraggable.ts +0 -7
  280. package/src/model/IDropTarget.ts +0 -14
  281. package/src/model/IJsonModel.ts +0 -967
  282. package/src/model/LayoutWindow.ts +0 -119
  283. package/src/model/Model.ts +0 -704
  284. package/src/model/Node.ts +0 -280
  285. package/src/model/RowNode.ts +0 -559
  286. package/src/model/TabNode.ts +0 -424
  287. package/src/model/TabSetNode.ts +0 -592
  288. package/src/model/Utils.ts +0 -52
  289. package/src/view/BorderButton.tsx +0 -201
  290. package/src/view/BorderTab.tsx +0 -81
  291. package/src/view/BorderTabSet.tsx +0 -259
  292. package/src/view/DragContainer.tsx +0 -32
  293. package/src/view/ErrorBoundary.tsx +0 -42
  294. package/src/view/Icons.tsx +0 -57
  295. package/src/view/Layout.tsx +0 -1334
  296. package/src/view/Overlay.tsx +0 -21
  297. package/src/view/PopoutWindow.tsx +0 -152
  298. package/src/view/PopupMenu.tsx +0 -156
  299. package/src/view/Row.tsx +0 -68
  300. package/src/view/SizeTracker.tsx +0 -20
  301. package/src/view/Splitter.tsx +0 -262
  302. package/src/view/Tab.tsx +0 -128
  303. package/src/view/TabButton.tsx +0 -200
  304. package/src/view/TabButtonStamp.tsx +0 -42
  305. package/src/view/TabOverflowHook.tsx +0 -305
  306. package/src/view/TabSet.tsx +0 -475
  307. package/src/view/Utils.tsx +0 -135
package/package.json CHANGED
@@ -1,9 +1,25 @@
1
1
  {
2
2
  "name": "flexlayout-react",
3
- "version": "0.8.12",
3
+ "version": "0.8.13",
4
4
  "description": "A multi-tab docking layout manager",
5
- "main": "lib/index.js",
5
+ "author": "Caplin Systems Ltd",
6
+ "repository": "https://github.com/caplin/FlexLayout",
7
+ "license": "ISC",
8
+ "type":"module",
9
+ "main": "./lib/index.js",
10
+ "module": "./lib/index.js",
6
11
  "types": "./declarations/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "import": "./lib/index.js"
15
+ },
16
+ "./style/*": "./style/*"
17
+ },
18
+ "files": [
19
+ "declarations/",
20
+ "lib/",
21
+ "style/"
22
+ ],
7
23
  "keywords": [
8
24
  "react",
9
25
  "layout",
@@ -24,29 +40,26 @@
24
40
  "docking layout"
25
41
  ],
26
42
  "scripts": {
27
- "start": "webpack serve",
28
- "start:production": "webpack serve --mode=production",
29
- "build": "npm run css && npm run doc && npm run build:demo && npm run build:esm && npm run build:umd && npm run build:umd:min",
30
- "build:esm": "tsc -p tsconfig2.json",
31
- "build:umd": "webpack --mode=development --config webpack_build.config.js",
32
- "build:umd:min": "webpack --mode=production --config webpack_build_min.config.js",
33
- "build:demo": "webpack --mode=production",
43
+ "dev": "vite",
44
+ "preview": "vite preview",
45
+ "build": "npm run build:clean && npm run css && npm run doc && npm run build:demo && npm run build:types && npm run build:libs",
46
+ "build:clean": "rimraf lib/ declarations/ typedoc/",
47
+ "build:demo": "vite build",
48
+ "build:types": "tsc -p tsconfig-types.json",
49
+ "build:libs": "vite build --config vite.config.lib.ts",
34
50
  "test": "vitest",
35
51
  "playwright": "playwright test --ui",
36
52
  "lint": "eslint src/*",
37
- "doc": "typedoc --out typedoc --exclude \"**/examples/**/*.tsx\" --excludeInternal --disableSources --excludePrivate --excludeProtected --readme none ./src",
53
+ "doc": "typedoc --out typedoc --exclude \"**/demo/**/*.tsx\" --excludeInternal --disableSources --excludePrivate --excludeProtected --readme none ./src",
38
54
  "css": "sass style/rounded.scss style/rounded.css && sass style/underline.scss style/underline.css && sass style/gray.scss style/gray.css && sass style/light.scss style/light.css && sass style/dark.scss style/dark.css && sass style/combined.scss style/combined.css"
39
55
  },
40
- "author": "Caplin Systems Ltd",
41
- "repository": "https://github.com/caplin/FlexLayout",
42
- "license": "ISC",
56
+ "eslintConfig": {
57
+ "extends": "react-app"
58
+ },
43
59
  "peerDependencies": {
44
60
  "react": "^18.0.0 || ^19.0.0",
45
61
  "react-dom": "^18.0.0 || ^19.0.0"
46
62
  },
47
- "eslintConfig": {
48
- "extends": "react-app"
49
- },
50
63
  "devDependencies": {
51
64
  "@emotion/react": "^11.14.0",
52
65
  "@emotion/styled": "^11.14.0",
@@ -58,14 +71,13 @@
58
71
  "@types/prismjs": "^1.26.5",
59
72
  "@types/react": "^19.1.2",
60
73
  "@types/react-dom": "^19.1.2",
74
+ "@vitejs/plugin-react": "^4.4.0",
61
75
  "ag-grid-community": "^33.2.3",
62
76
  "ag-grid-react": "^33.2.3",
63
77
  "chart.js": "^4.4.9",
64
- "css-loader": "^7.1.2",
65
78
  "eslint": "^9.24.0",
66
79
  "eslint-plugin-react": "^7.37.5",
67
80
  "globals": "^16.0.0",
68
- "html-webpack-plugin": "^5.6.3",
69
81
  "ol": "^10.5.0",
70
82
  "prettier": "^3.5.3",
71
83
  "prismjs": "^1.30.0",
@@ -73,17 +85,13 @@
73
85
  "react-chartjs-2": "^5.3.0",
74
86
  "react-dom": "^19.1.0",
75
87
  "react-scripts": "5.0.1",
88
+ "rimraf": "^6.0.1",
76
89
  "sass": "^1.86.3",
77
- "source-map-loader": "^5.0.0",
78
- "style-loader": "^4.0.0",
79
90
  "styled-components": "^6.1.17",
80
- "ts-loader": "~9.5.2",
81
91
  "typedoc": "^0.28.2",
82
92
  "typescript": "^5.8.3",
83
93
  "typescript-eslint": "^8.30.1",
84
- "vitest": "^3.1.1",
85
- "webpack": "^5.99.5",
86
- "webpack-cli": "^6.0.1",
87
- "webpack-dev-server": "^5.2.1"
94
+ "vite": "^6.3.0",
95
+ "vitest": "^3.1.1"
88
96
  }
89
- }
97
+ }
package/ChangeLog.txt DELETED
@@ -1,372 +0,0 @@
1
- 0.8.12
2
- Updated dependencies
3
- Fix for initial tab flash
4
- Disabled popout of MUI tabs in demo (because Emotion generated styles (in production) cannot be copied to popout window)
5
- Converted Cypress tests to Playwright
6
- Updated demo app to use React hooks
7
-
8
- 0.8.11 - deprecated - published with additional files by mistake
9
-
10
- 0.8.10
11
- Fix for #481 Numpad Enter doesn't confirm rename
12
- Work around <StrictMode> issue in React 19 (https://github.com/facebook/react/issues/29585) causing
13
- tabs to re-mount when moved
14
-
15
- 0.8.9
16
- Fix for #480 Actions.selectTab is called when closing Tab
17
- Added isVisible() method to TabNode
18
-
19
- 0.8.8
20
- Enable esc to close overflow menu
21
- Prevent initial reposition flash when there are hidden tabs
22
- Removed Roboto font from demo
23
-
24
- 0.8.7
25
- Improved tab scrolling into visible area
26
- Added sections about tab and tabset customization to readme
27
-
28
- 0.8.6
29
- Restructured scss files to remove use of deprecated @import rule
30
- Added combined.css containing all themes.
31
- Updated demo to use combined.css for simple theme switching using class names
32
- Added option in demo to show the layout structure
33
-
34
- 0.8.5
35
- Changed the mini scrollbar to only show when tabs are hovered over
36
-
37
- 0.8.4
38
- Added attribute 'enableTabScrollbar' to TabSet and Border nodes
39
- Enabling this attribute will show a mini 'scrollbar' for the tabs to indicate the scroll position
40
- See the Demo apps default layout for an example.
41
-
42
- 0.8.3
43
- Prevent sticky buttons scrolling when there are no tabs
44
- Fix border 'show' attribute
45
- Removed code to adjust popout positions when loading
46
-
47
- 0.8.2
48
- Updated dependencies
49
- Enabled use with React 19
50
- Removed strict mode from demo due to bug in React 19 (https://github.com/facebook/react/issues/29585) causing
51
- tabs to re-mount when moved
52
- Used CodeSandbox in README.md since react 19 doesn't create UMD versions needed by JSFiddle.
53
-
54
- 0.8.1
55
- Fixed enableDrag on tab and tabset nodes.
56
- Fixed calc for min/max tabset height from min/max tab height.
57
- Modified style sheet code in demo to reduce flash.
58
-
59
- 0.8.0
60
- New:
61
- * Wrap tabs option
62
- * improved popouts, no longer keep placeholder tab
63
- * drag from overflow menu
64
- * improved splitter resizing
65
- * now uses html drag and drop to allow cross window dragging
66
- * rendering now uses flexbox rather than absolute positions, this should make
67
- styling easier
68
- * rounded theme
69
- * updated dependencies
70
-
71
- Breaking Changes:
72
- * addTabWithDragAndDrop signature has changed, must now be called from a drag start handler
73
- * moveTabWithDragAndDrop signature has changed, must now be called from a drag start handler
74
- * removed addTabWithDragAndDropIndirect
75
- * removed onTabDrag (custom internal drag)
76
- * removed font prop, use css variables --font-size and --font-family instead
77
- * removed titleFactory, iconFactory props, use onRenderTab instead
78
- * removed tabset header option
79
- * removed attributes: for insets, tabset header, row/tabset width and height, legacymenu, ...
80
- * several css changes ref use of flexbox
81
-
82
- 0.7.15
83
- Added arrow icon to edge indicators
84
-
85
- 0.7.14
86
- Added attribute tabsetClassName to tab nodes, this will add the classname to the parent
87
- tabset when there is a single stretched tab. Updated mosaic layout in demo to use this to color headers.
88
-
89
- 0.7.13
90
- New attribute on tabset: enableSingleTabStretch will stretch a single tab to take up
91
- all the remaining space and change the style to look like a header, combined with enableDrop
92
- this can be used to create a Mosaic style layout (headed panels without tabs), see the new
93
- Mosaic Style layout in the Demo.
94
- The layout methods addTabToTabSet and addTabToActiveTabSet now return the added TabNode.
95
- Fixed #352 - Layout.getDomRect returning null.
96
-
97
- 0.7.12
98
- Action.setActiveTabset can now take undefined to unset the active tabset.
99
- Added Tab attribute contentClassName to add a class to the tab content.
100
-
101
- 0.7.11
102
- Added ITabSetRenderValues.overflowPosition to allow overflow button position to be
103
- specified, if left undefined, position will be after sticky buttons as before.
104
- New model attribute enableRotateBorderIcons, this allows the tab icons in the left and
105
- right borders to rotate with the text or not, default is true.
106
- Added additional class names to edge indicators
107
-
108
- 0.7.10
109
- Fix for #399 - the overflow button in a tabset is now placed after
110
- any sticky buttons (additional buttons that stick to the last tab of a tabset)
111
- but before any other buttons.
112
- Enabled sticky buttons in border tabsets
113
-
114
- 0.7.9
115
- Fix drag issue found when used in devtool extension
116
- Fix double render in popout when in strict mode
117
-
118
- 0.7.8
119
- Fix popout size of tab with individual border size
120
- Hide edge handles when disabled
121
- Update version of Cypress
122
-
123
- 0.7.7
124
- Fix for #379 - uuid could only be generated in secure contexts
125
-
126
- 0.7.6
127
- Remove dependency on uuid package
128
- Add action arg to onModelChange callback
129
-
130
- 0.7.5
131
- Fix for #340 - error dragging a tabset into an empty tabset
132
-
133
- 0.7.4
134
- Fixed popout windows when using </React.StrictMode>
135
- Output now targets ES6
136
-
137
- 0.7.3
138
- Fixed right edge marker location when border enableAutoHide
139
- Dragging out a selected border tab will now leave the border unselected
140
-
141
- 0.7.2
142
- New Layout JSON tabs to demo
143
- Added --color-icon css rootOrientationVertical
144
-
145
- 0.7.1
146
- Fix for #310 - Added new layout method: moveTabWithDragAndDrop(node) to allow tab dragging to be
147
- started from custom code.
148
-
149
- 0.7.0
150
- Updated dependencies, in particular changed React peer dependency to React 18
151
- Made changes for React 18
152
-
153
- 0.6.10
154
- fix for #312, chrome warning for wheel event listener
155
-
156
- 0.6.9
157
- fix for #308, Allow dragging within a maximized tabset
158
-
159
- 0.6.8
160
- Added onTabSetPlaceHolder prop to render the tabset area when there are no tabs.
161
-
162
- 0.6.7
163
- More css variables, added Underline theme, updated dependencies
164
-
165
- 0.6.6
166
- fix for #296
167
-
168
- 0.6.5
169
- fix for #289, allow setting attributes to undefined value
170
-
171
- 0.6.4
172
- Code tidy
173
- Updated dependencies
174
-
175
- 0.6.3
176
- Changed to using named rather than default import/exports,
177
- this will require changing top level imports
178
- from:
179
- import FlexLayout from 'flexlayout-react';
180
- to
181
- import * as FlexLayout from 'flexlayout-react';
182
-
183
- Added typedoc link to readme
184
-
185
- 0.6.2
186
- Extended icons prop to allow use of functions to set icons.
187
- Added onShowOverflowMenu callback for handling the display of the tab overflow menu.
188
-
189
- 0.6.1
190
- Use portal for drag rectangle to preserve React context in onRenderTab.
191
-
192
- 0.6.0
193
- Changed icons to use svg images, these will now scale with the font size.
194
- Improved element spacing, removed most margin/padding spacers.
195
- The overflow menu and drag rectangle will now show the tab icon and content as rendered in the tab.
196
- Added altName attribute to TabNode, this will be used as the name in the overflow menu if there is no
197
- name attribute (e.g the tab has just an icon).
198
- Changed the drag outline colors from red/green to light blue/green.
199
- Removed closeIcon prop from Layout, use the icons property instead.
200
- Changed onRenderDragRect callback to take a ReactElement rather than a string, the content now
201
- contains the tabbutton as rendered.
202
-
203
- 0.5.21
204
- Fixed copying stylesheet links for popout windows when cssRules throw exception.
205
- Added option, enableUseVisibility, to allow use of visibility: hidden rather than display:none for hiding elements.
206
-
207
- 0.5.20
208
- Added Cypress Tests
209
- Fixed bug with tab icon not showing
210
-
211
- 0.5.19
212
- Added onRenderFloatingTabPlaceholder callback prop for rendering the floating tab placeholder.
213
- Changed style sheets to use CSS custom properties (variables) for several values.
214
- Fix selected index in single empty tabset.
215
- Added onContextMenu callback prop for handling context menus on tabs and tabsets.
216
- Added onAuxMouseClick callback prop for handling mouse clicks on tabs and tabsets
217
- with alt, meta, shift keys, also handles center mouse clicks
218
-
219
- 0.5.18
220
- Added onRenderDragRect callback prop for rendering the drag rectangles
221
- New border attribute: enableAutoHide, to hide border if it has zero tabs
222
-
223
- 0.5.17
224
- New global option, splitterExtra, to allow splitters to have an extended hit test areas.
225
- This makes it easier to use narrow splitters.
226
- Added new TabNode attributes: borderWidth and borderHeight, these allow for individual border sizes for certain tabs.
227
- Fix for #263 - borders splitters not taking minimum size of center into account
228
- Improved algorithm for finding drop location
229
- Additional parameter: cursor, for onTabDrag
230
-
231
- 0.5.16
232
- Added 'New Features' layout to demo.
233
- New tab attribute, helpText, to show tooltip over tabs.
234
- New model action, deleteTabset, to delete a tabset and all it's child tabs.
235
- New tabset attribute, enableClose, to close the tabset
236
-
237
- 0.5.15
238
- Added new Layout prop: onTabDrag that allows tab dragging to be intercepted.
239
- Added example of onTabDrag in demo app, example shows a list where tabs can be dragged into,
240
- moved in the list and dragged back out into the layout.
241
- Node id's that are not assigned a value are now auto-generated using a uuid rather than a rolling number
242
- (for example: previous id: #3, new id: #0c459064-8dee-444e-8636-eb9ab910fb27).
243
- Made toJson method of node public.
244
-
245
- 0.5.14
246
- Fix an issue with copying styles for a floating window when using a CSS-in-JS solution
247
- Fix for #227 - edge rects are not moved if window is resized while dragging
248
-
249
- 0.5.13
250
- Added prop (realtimeResize) to make tabs resize as their splitters are dragged.
251
- Warning: this can cause resizing to become choppy when tabs are slow to draw.
252
-
253
- 0.5.12
254
- New callback on Model to allow TabSet attributes to be set when a tab is moved in such a way
255
- that it creates a new TabSet.
256
- Added config attributes to TabSet and Border
257
- Added headerButtons to ITabSetRenderValues, to allow different set of buttons to be applied to headed
258
- TabSets.
259
-
260
- 0.5.11
261
- Added StickyButtons to onRenderTabSet render values to allow for implementation of Chrome style + button
262
- Added example of + button to default layout in demo app
263
-
264
- 0.5.10
265
- Adjust selected tab when tabs popped out to an external window
266
-
267
- 0.5.9
268
- TitleFactory can now return object with titleContent and name (name is used for tab overflow menu).
269
- Corrected position of rootOrientationVertical in typescript json model
270
-
271
- 0.5.8
272
- Fix for #172 - Added global rootOrientationVertical attribute to allow vertical layout for root 'row'
273
- Added missing exports for typescript json model
274
- Moved CRA example to separate repo
275
-
276
- 0.5.7
277
- Added typescript typings for the model json
278
- Fixed drag rectangle showing as dot before first position found (when dragging into the layout)
279
- Fix for #191 - Global Attributes for classNames not working
280
- Fix for #212 - TypeScript issue with ILayoutState
281
-
282
- 0.5.6
283
- Added external drag drop into layout, see new onExternalDrag prop
284
- Updated demo to accept dragged links, html and text.
285
- Tab scrolling direction changed to match VSCode
286
- Improved positioning of single tab when overflow menu shown
287
- Some small changes to theme colors
288
-
289
- 0.5.5
290
- Fix for #170 - Closing the last tab of a maximized tabset crashes the layout
291
-
292
- 0.5.4
293
- Fix issue running with React 17.0.1
294
- Window title now updates when tab renamed
295
-
296
- 0.5.3
297
- Change classname strings to enum values
298
- TSLint replaced with ESLint
299
- Added Create-React-App (CRA) example
300
- New 'light' theme (lighter and without box shadows, gradients),
301
- existing light theme renamed to 'gray'
302
-
303
- 0.5.2
304
- Fixed issues caused by double touch/mouse events in IOS
305
- Prevented IOS scroll during drag in demo app.
306
- Added extra option to onRenderTab to allow name of item in overflow menu to be set.
307
- New closeType option for tabs
308
- The maximized tabset now sets others to display:none rather than use z-index
309
- Disable maximize if only one tabset
310
- Splitters will now default to 8 on desktop and 12 on mobile (so they can be tapped more easily)
311
- Close element is enlarged on mobile
312
-
313
- 0.5.1
314
- Various small fixes
315
-
316
- 0.5.0
317
- Overflowing tabs now scroll to keep the selected tab in view,
318
- they can also be manually scrolled using the mouse wheel.
319
- Now works on scrolling page.
320
- NOTE: several css classes with names starting with flexlayout__tabset_header... have
321
- been renamed to flexlayout__tabset_tabbar...
322
-
323
- 0.4.9
324
- Keep selected tab in tabset/border when another tab is moved out.
325
-
326
- 0.4.8
327
- Minimum size attributes on tabset and border.
328
- Extra css classes on elements for border and splitter styling.
329
-
330
- 0.4.7
331
- Added font property.
332
- Font now defaults to medium.
333
- Tabs now auto adjust to the current font.
334
- Added fontSize dropdown to demo.
335
- Modified css for above fontSize changes and to remove some fixed sizes.
336
- New attributes to control auto selection of tabs.
337
-
338
- 0.4.6
339
- Added icons prop to allow default icons to be replaced.
340
- Added tabLocation attribute to tabsets to allow top and bottom tab placement.
341
- Modified css, default font is now 14px.
342
-
343
- 0.4.5
344
- Fixed use of global objects for use when serverside rendering
345
- Added error boundary around tab contents to prevent tab rendering exception crashing the app
346
-
347
- 0.4.4
348
- Changed all components except Layout to use React Hooks.
349
- Popouts now wait for style sheets to load.
350
- Fixed problem rendering popouts in Safari.
351
-
352
- 0.4.3
353
- Fix addTabWithDragAndDrop not working since 0.4.0
354
-
355
- 0.4.2
356
- Use Sass to generate light and dark themes
357
-
358
- 0.4.1
359
- Copy styles into popout tabs
360
-
361
- 0.4.0
362
- Added ability to popout tabs into new browser windows.
363
- Press the 'reload from file' button in the demo app to load new layouts with the popout attribute.
364
-
365
- 0.3.11
366
- Added overflow menu to border tabs
367
- Fixed issues running on IE11
368
-
369
- 0.3.10
370
- Removed deprecated React lifecycle methods, will now work
371
- in React strict mode without warnings (for example, in apps
372
- created with Create React App).
@@ -1,15 +0,0 @@
1
- import * as React from "react";
2
- export declare class DragDrop {
3
- static instance: DragDrop;
4
- addGlass(fCancel: ((wasDragging: boolean) => void) | undefined): void;
5
- resizeGlass(): void;
6
- hideGlass(): void;
7
- setGlassCursorOverride(cursor: string | undefined): void;
8
- startDrag(event: Event | React.MouseEvent<HTMLDivElement, MouseEvent> | React.TouchEvent<HTMLDivElement> | React.DragEvent<Element> | undefined, fDragStart: ((pos: {
9
- clientX: number;
10
- clientY: number;
11
- }) => boolean) | undefined, fDragMove: ((event: React.MouseEvent<Element>) => void) | undefined, fDragEnd: ((event: Event) => void) | undefined, fDragCancel?: ((wasDragging: boolean) => void) | undefined, fClick?: ((event: Event) => void) | undefined, fDblClick?: ((event: Event) => void) | undefined, currentDocument?: Document, rootElement?: HTMLDivElement): void;
12
- isDragging(): boolean;
13
- isActive(): boolean;
14
- toString(): string;
15
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- import { Node } from "./Node";
2
- export declare class SplitterNode extends Node {
3
- static readonly TYPE: string;
4
- toJson(): undefined;
5
- }
@@ -1,24 +0,0 @@
1
- import { Rect } from "../Rect";
2
- import { IJsonPopout } from "./IJsonModel";
3
- import { Model } from "./Model";
4
- import { RowNode } from "./RowNode";
5
- import { Node } from "./Node";
6
- import { TabSetNode } from "./TabSetNode";
7
- export declare class WindowLayout {
8
- private _windowId;
9
- private _rect;
10
- private _window?;
11
- private _root?;
12
- private _maximizedTabSet?;
13
- private _activeTabSet?;
14
- constructor(windowId: string, rect: Rect);
15
- visitNodes(fn: (node: Node, level: number) => void): void;
16
- get windowId(): string;
17
- get rect(): Rect;
18
- get window(): Window | undefined;
19
- get root(): RowNode | undefined;
20
- get maximizedTabSet(): TabSetNode | undefined;
21
- get activeTabSet(): TabSetNode | undefined;
22
- toJson(): IJsonPopout;
23
- static fromJson(windowJson: IJsonPopout, model: Model, windowId: string): WindowLayout;
24
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,12 +0,0 @@
1
- import { Orientation } from "./Orientation";
2
- export declare class DockLocation {
3
- static values: Map<string, DockLocation>;
4
- static TOP: DockLocation;
5
- static BOTTOM: DockLocation;
6
- static LEFT: DockLocation;
7
- static RIGHT: DockLocation;
8
- static CENTER: DockLocation;
9
- getName(): string;
10
- getOrientation(): Orientation;
11
- toString(): string;
12
- }
@@ -1,12 +0,0 @@
1
- import { DockLocation } from "./DockLocation";
2
- import { IDropTarget } from "./model/IDropTarget";
3
- import { Node } from "./model/Node";
4
- import { Rect } from "./Rect";
5
- export declare class DropInfo {
6
- node: Node & IDropTarget;
7
- rect: Rect;
8
- location: DockLocation;
9
- index: number;
10
- className: string;
11
- constructor(node: Node & IDropTarget, rect: Rect, location: DockLocation, index: number, className: string);
12
- }
@@ -1,10 +0,0 @@
1
- export declare enum I18nLabel {
2
- Close_Tab = "Close",
3
- Close_Tabset = "Close tabset",
4
- Move_Tabset = "Move tabset",
5
- Maximize = "Maximize tabset",
6
- Restore = "Restore tabset",
7
- Popout_Tab = "Show selected tab in a floating window",
8
- Overflow_Menu_Tooltip = "Hidden tabs",
9
- Error_rendering_component = "Error rendering component"
10
- }
@@ -1,7 +0,0 @@
1
- export declare class Orientation {
2
- static HORZ: Orientation;
3
- static VERT: Orientation;
4
- static flip(from: Orientation): Orientation;
5
- getName(): string;
6
- toString(): string;
7
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,31 +0,0 @@
1
- export declare class Rect {
2
- static empty(): Rect;
3
- x: number;
4
- y: number;
5
- width: number;
6
- height: number;
7
- constructor(x: number, y: number, width: number, height: number);
8
- static getBoundingClientRect(element: Element): Rect;
9
- static getContentRect(element: HTMLDivElement): Rect;
10
- static fromDomRect(domRect: DOMRect): Rect;
11
- relativeTo(r: Rect | DOMRect): Rect;
12
- clone(): Rect;
13
- equals(rect: Rect | null | undefined): boolean;
14
- getBottom(): number;
15
- getRight(): number;
16
- getCenter(): {
17
- x: number;
18
- y: number;
19
- };
20
- positionElement(element: HTMLElement, position?: string): void;
21
- styleWithPosition(style: Record<string, any>, position?: string): Record<string, any>;
22
- contains(x: number, y: number): boolean;
23
- removeInsets(insets: {
24
- top: number;
25
- left: number;
26
- bottom: number;
27
- right: number;
28
- }): Rect;
29
- centerInRect(outerRect: Rect): void;
30
- toString(): string;
31
- }