@dreamtree-org/twreact-ui 1.3.11 → 2.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 (164) hide show
  1. package/README.md +40 -6
  2. package/ai-skills/dreamtree-ui.md +47 -9
  3. package/codemods/v2.cjs +198 -0
  4. package/dist/ai-schema.json +609 -33
  5. package/dist/components/blocks/AppShell.d.ts.map +1 -1
  6. package/dist/components/blocks/BottomActionBar.d.ts +6 -0
  7. package/dist/components/blocks/BottomActionBar.d.ts.map +1 -0
  8. package/dist/components/blocks/ConfirmDialog.d.ts.map +1 -1
  9. package/dist/components/blocks/PageHeader.d.ts.map +1 -1
  10. package/dist/components/core/Checkbox.d.ts.map +1 -1
  11. package/dist/components/core/DatePicker.d.ts.map +1 -1
  12. package/dist/components/core/DateRangePicker.d.ts.map +1 -1
  13. package/dist/components/core/Form.d.ts.map +1 -1
  14. package/dist/components/core/Input.d.ts.map +1 -1
  15. package/dist/components/core/Popover.d.ts.map +1 -1
  16. package/dist/components/core/ProgressBar.d.ts.map +1 -1
  17. package/dist/components/core/Rate.d.ts.map +1 -1
  18. package/dist/components/core/SearchField.d.ts +9 -0
  19. package/dist/components/core/SearchField.d.ts.map +1 -0
  20. package/dist/components/core/SegmentedControl.d.ts +8 -0
  21. package/dist/components/core/SegmentedControl.d.ts.map +1 -0
  22. package/dist/components/core/Select.d.ts.map +1 -1
  23. package/dist/components/core/SwipeableListItem.d.ts +4 -0
  24. package/dist/components/core/SwipeableListItem.d.ts.map +1 -0
  25. package/dist/components/core/SwipeableListItemGesture.d.ts +58 -0
  26. package/dist/components/core/SwipeableListItemGesture.d.ts.map +1 -0
  27. package/dist/components/core/Switch.d.ts.map +1 -1
  28. package/dist/components/core/Table/ActionMenu.d.ts +10 -3
  29. package/dist/components/core/Table/ActionMenu.d.ts.map +1 -1
  30. package/dist/components/core/Table/MobileCard.d.ts +10 -1
  31. package/dist/components/core/Table/MobileCard.d.ts.map +1 -1
  32. package/dist/components/core/Table/MobileFilters.d.ts +8 -2
  33. package/dist/components/core/Table/MobileFilters.d.ts.map +1 -1
  34. package/dist/components/core/Table/Table.d.ts.map +1 -1
  35. package/dist/components/core/Table/TableRow.d.ts +2 -1
  36. package/dist/components/core/Table/TableRow.d.ts.map +1 -1
  37. package/dist/components/core/Tabs.d.ts +3 -3
  38. package/dist/components/core/Tabs.d.ts.map +1 -1
  39. package/dist/components/core/ThreeDotPopover.d.ts +10 -22
  40. package/dist/components/core/ThreeDotPopover.d.ts.map +1 -1
  41. package/dist/components/core/Tooltip.d.ts +2 -1
  42. package/dist/components/core/Tooltip.d.ts.map +1 -1
  43. package/dist/components/core/internal/Calendar.d.ts +77 -0
  44. package/dist/components/core/internal/Calendar.d.ts.map +1 -0
  45. package/dist/components/core/menu/ActionMenuSurface.d.ts +42 -0
  46. package/dist/components/core/menu/ActionMenuSurface.d.ts.map +1 -0
  47. package/dist/components/core/menu/ActionSheetMenu.d.ts +17 -0
  48. package/dist/components/core/menu/ActionSheetMenu.d.ts.map +1 -0
  49. package/dist/components/core/menu/MenuPopover.d.ts +21 -0
  50. package/dist/components/core/menu/MenuPopover.d.ts.map +1 -0
  51. package/dist/components/core/menu/menuItems.d.ts +21 -0
  52. package/dist/components/core/menu/menuItems.d.ts.map +1 -0
  53. package/dist/components/core/menu/menuKeyboard.d.ts +16 -0
  54. package/dist/components/core/menu/menuKeyboard.d.ts.map +1 -0
  55. package/dist/components/feedback/ActionSheet.d.ts +4 -0
  56. package/dist/components/feedback/ActionSheet.d.ts.map +1 -0
  57. package/dist/components/feedback/Alert.d.ts.map +1 -1
  58. package/dist/components/feedback/Dialog.d.ts.map +1 -1
  59. package/dist/components/feedback/Drawer.d.ts.map +1 -1
  60. package/dist/components/feedback/Sheet.d.ts +4 -0
  61. package/dist/components/feedback/Sheet.d.ts.map +1 -0
  62. package/dist/components/feedback/Toast.d.ts +4 -3
  63. package/dist/components/feedback/Toast.d.ts.map +1 -1
  64. package/dist/components/feedback/ToastItem.d.ts +47 -0
  65. package/dist/components/feedback/ToastItem.d.ts.map +1 -0
  66. package/dist/components/feedback/ToastStack.d.ts +20 -0
  67. package/dist/components/feedback/ToastStack.d.ts.map +1 -0
  68. package/dist/components/feedback/ToastSwipe.d.ts +22 -0
  69. package/dist/components/feedback/ToastSwipe.d.ts.map +1 -0
  70. package/dist/components/feedback/Tour.d.ts.map +1 -1
  71. package/dist/components/feedback/sheetCore.d.ts +30 -0
  72. package/dist/components/feedback/sheetCore.d.ts.map +1 -0
  73. package/dist/components/navigation/Navbar.d.ts.map +1 -1
  74. package/dist/components/navigation/Sidebar.d.ts +6 -0
  75. package/dist/components/navigation/Sidebar.d.ts.map +1 -1
  76. package/dist/components/rich-text/RichTextEditor.d.ts.map +1 -1
  77. package/dist/components/rich-text/RichTextToolbar.d.ts +6 -2
  78. package/dist/components/rich-text/RichTextToolbar.d.ts.map +1 -1
  79. package/dist/components/utility/PullToRefresh.d.ts +5 -0
  80. package/dist/components/utility/PullToRefresh.d.ts.map +1 -0
  81. package/dist/esm/components/blocks/AppShell.js +97 -90
  82. package/dist/esm/components/blocks/BottomActionBar.js +132 -0
  83. package/dist/esm/components/blocks/ConfirmDialog.js +40 -4
  84. package/dist/esm/components/blocks/PageHeader.js +16 -3
  85. package/dist/esm/components/core/Checkbox.js +13 -24
  86. package/dist/esm/components/core/DatePicker.js +117 -304
  87. package/dist/esm/components/core/DateRangePicker.js +260 -308
  88. package/dist/esm/components/core/Form.js +11 -2
  89. package/dist/esm/components/core/Input.js +13 -18
  90. package/dist/esm/components/core/Popover.js +59 -48
  91. package/dist/esm/components/core/ProgressBar.js +36 -64
  92. package/dist/esm/components/core/Rate.js +5 -10
  93. package/dist/esm/components/core/SearchField.js +311 -0
  94. package/dist/esm/components/core/SegmentedControl.js +189 -0
  95. package/dist/esm/components/core/Select.js +185 -190
  96. package/dist/esm/components/core/SwipeableListItem.js +286 -0
  97. package/dist/esm/components/core/SwipeableListItemGesture.js +219 -0
  98. package/dist/esm/components/core/Switch.js +11 -13
  99. package/dist/esm/components/core/Table/ActionMenu.js +45 -231
  100. package/dist/esm/components/core/Table/ColumnMenu.js +1 -1
  101. package/dist/esm/components/core/Table/MobileCard.js +66 -16
  102. package/dist/esm/components/core/Table/MobileFilters.js +181 -10
  103. package/dist/esm/components/core/Table/Table.js +149 -102
  104. package/dist/esm/components/core/Table/TableRow.js +10 -2
  105. package/dist/esm/components/core/Tabs.js +7 -7
  106. package/dist/esm/components/core/ThreeDotPopover.js +93 -99
  107. package/dist/esm/components/core/Tooltip.js +138 -145
  108. package/dist/esm/components/core/internal/Calendar.js +381 -0
  109. package/dist/esm/components/core/menu/ActionMenuSurface.js +110 -0
  110. package/dist/esm/components/core/menu/ActionSheetMenu.js +140 -0
  111. package/dist/esm/components/core/menu/MenuPopover.js +177 -0
  112. package/dist/esm/components/core/menu/menuItems.js +61 -0
  113. package/dist/esm/components/core/menu/menuKeyboard.js +54 -0
  114. package/dist/esm/components/feedback/ActionSheet.js +55 -0
  115. package/dist/esm/components/feedback/Alert.js +63 -53
  116. package/dist/esm/components/feedback/Dialog.js +141 -53
  117. package/dist/esm/components/feedback/Drawer.js +130 -132
  118. package/dist/esm/components/feedback/Sheet.js +125 -0
  119. package/dist/esm/components/feedback/Toast.js +21 -291
  120. package/dist/esm/components/feedback/ToastItem.js +348 -0
  121. package/dist/esm/components/feedback/ToastStack.js +130 -0
  122. package/dist/esm/components/feedback/ToastSwipe.js +52 -0
  123. package/dist/esm/components/feedback/Tour.js +107 -30
  124. package/dist/esm/components/feedback/sheetCore.js +494 -0
  125. package/dist/esm/components/navigation/Dropdown.js +1 -1
  126. package/dist/esm/components/navigation/Navbar.js +172 -37
  127. package/dist/esm/components/navigation/Sidebar.js +263 -111
  128. package/dist/esm/components/rich-text/RichTextEditor.js +9 -3
  129. package/dist/esm/components/rich-text/RichTextToolbar.js +29 -9
  130. package/dist/esm/components/utility/Portal.js +31 -0
  131. package/dist/esm/components/utility/PullToRefresh.js +229 -0
  132. package/dist/esm/hooks/useFloatingPosition.js +82 -0
  133. package/dist/esm/hooks/useHaptics.js +65 -0
  134. package/dist/esm/hooks/usePresence.js +58 -0
  135. package/dist/esm/hooks/usePresentation.js +21 -0
  136. package/dist/esm/hooks/useSheetDrag.js +220 -0
  137. package/dist/esm/index.js +13 -2
  138. package/dist/esm/utils/position.js +10 -63
  139. package/dist/hooks/useFloatingPosition.d.ts +8 -4
  140. package/dist/hooks/useFloatingPosition.d.ts.map +1 -1
  141. package/dist/hooks/useHaptics.d.ts +19 -0
  142. package/dist/hooks/useHaptics.d.ts.map +1 -0
  143. package/dist/hooks/useSheetDrag.d.ts +31 -0
  144. package/dist/hooks/useSheetDrag.d.ts.map +1 -0
  145. package/dist/index.css +1 -1
  146. package/dist/index.d.ts +9 -1
  147. package/dist/index.esm.css +1 -1
  148. package/dist/index.esm.js +8851 -3198
  149. package/dist/index.js +8856 -3195
  150. package/dist/rich-text/index.js +41 -11
  151. package/dist/types/blocks.d.ts +32 -2
  152. package/dist/types/blocks.d.ts.map +1 -1
  153. package/dist/types/index.d.ts +353 -19
  154. package/dist/types/index.d.ts.map +1 -1
  155. package/dist/types/rich-text.d.ts +5 -0
  156. package/dist/types/rich-text.d.ts.map +1 -1
  157. package/dist/utils/position.d.ts +0 -15
  158. package/dist/utils/position.d.ts.map +1 -1
  159. package/doc/README.md +15 -0
  160. package/mcp/catalog.snapshot.json +1398 -464
  161. package/package.json +7 -2
  162. package/dist/esm/hooks/useSwipeToClose.js +0 -66
  163. package/dist/hooks/useSwipeToClose.d.ts +0 -24
  164. package/dist/hooks/useSwipeToClose.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreamtree-org/twreact-ui",
3
- "version": "1.3.11",
3
+ "version": "2.0.0",
4
4
  "description": "A comprehensive React + Tailwind components library for building modern web apps",
5
5
  "author": {
6
6
  "name": "Partha Preetham Krishna",
@@ -51,6 +51,8 @@
51
51
  "tokens/brands",
52
52
  "DESIGN.md",
53
53
  "ai-skills",
54
+ "codemods",
55
+ "!codemods/__tests__",
54
56
  "doc/assets/upi-qr.png",
55
57
  "package.json",
56
58
  "README.md"
@@ -83,12 +85,14 @@
83
85
  "ai-schema:check": "jest scripts/__tests__/ai-schema.test.mjs",
84
86
  "init:smoke": "node bin/smoke.mjs",
85
87
  "readme:check": "node scripts/readme-sync-check.mjs",
88
+ "design:lint": "node scripts/design-lint.mjs",
89
+ "e2e:mobile": "playwright test --project=mobile-iphone-13 --project=mobile-pixel-7",
86
90
  "adoption:report": "node scripts/adoption-report.mjs",
87
91
  "graph": "node scripts/graphify.mjs .",
88
92
  "graph:update": "node scripts/graphify.mjs . --update --no-viz",
89
93
  "graph:check": "node scripts/graphify.mjs check",
90
94
  "graph:context": "node scripts/graphify.mjs context",
91
- "ci:check": "npm run readme:check && npm run type-check && npm run mcp:smoke && npm run mcp:snapshot:check && npm run mcp:dist:smoke && npm run skill:check && npm run init:smoke && npm run ai-schema:check"
95
+ "ci:check": "npm run readme:check && npm run type-check && npm run mcp:smoke && npm run mcp:snapshot:check && npm run mcp:dist:smoke && npm run skill:check && npm run init:smoke && npm run ai-schema:check && npm run design:lint"
92
96
  },
93
97
  "keywords": [
94
98
  "react",
@@ -184,6 +188,7 @@
184
188
  "jest": "^29.7.0",
185
189
  "jest-environment-jsdom": "^29.7.0",
186
190
  "jest-transform-stub": "^2.0.0",
191
+ "jscodeshift": "^17.4.0",
187
192
  "postcss": "^8.5.6",
188
193
  "react": "^18.3.1",
189
194
  "react-dom": "^18.3.1",
@@ -1,66 +0,0 @@
1
- 'use client';
2
- import { slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
3
- import { useState, useRef, useCallback } from 'react';
4
-
5
- // Internal (not exported). Drag-down-to-dismiss for a bottom sheet. Spread
6
- // `dragProps` on the grab zone (handle + header), not the scrolling body, so a
7
- // swipe never fights the content's own scroll. Past `threshold` px (or a quick
8
- // flick) the drag calls onClose; otherwise the sheet snaps back.
9
- var FLICK_VELOCITY = 0.5; // px per ms
10
- function useSwipeToClose(_ref) {
11
- var enabled = _ref.enabled,
12
- onClose = _ref.onClose,
13
- _ref$threshold = _ref.threshold,
14
- threshold = _ref$threshold === void 0 ? 80 : _ref$threshold;
15
- var _useState = useState(0),
16
- _useState2 = _slicedToArray(_useState, 2),
17
- offset = _useState2[0],
18
- setOffset = _useState2[1];
19
- var _useState3 = useState(false),
20
- _useState4 = _slicedToArray(_useState3, 2),
21
- dragging = _useState4[0],
22
- setDragging = _useState4[1];
23
- var start = useRef(null);
24
- var end = useCallback(function (e) {
25
- if (!start.current) return;
26
- var dy = Math.max(0, e.clientY - start.current.y);
27
- var elapsed = Math.max(1, Date.now() - start.current.t);
28
- start.current = null;
29
- setDragging(false);
30
- setOffset(0);
31
- if (dy >= threshold || dy > 16 && dy / elapsed >= FLICK_VELOCITY) onClose === null || onClose === void 0 || onClose();
32
- }, [onClose, threshold]);
33
- if (!enabled) return {
34
- dragProps: {},
35
- offset: 0,
36
- dragging: false
37
- };
38
- return {
39
- offset: offset,
40
- dragging: dragging,
41
- dragProps: {
42
- onPointerDown: function onPointerDown(e) {
43
- var _e$currentTarget$setP, _e$currentTarget;
44
- if (e.button !== undefined && e.button !== 0) return;
45
- start.current = {
46
- y: e.clientY,
47
- t: Date.now()
48
- };
49
- setDragging(true);
50
- (_e$currentTarget$setP = (_e$currentTarget = e.currentTarget).setPointerCapture) === null || _e$currentTarget$setP === void 0 || _e$currentTarget$setP.call(_e$currentTarget, e.pointerId);
51
- },
52
- onPointerMove: function onPointerMove(e) {
53
- if (!start.current) return;
54
- setOffset(Math.max(0, e.clientY - start.current.y));
55
- },
56
- onPointerUp: end,
57
- onPointerCancel: function onPointerCancel() {
58
- start.current = null;
59
- setDragging(false);
60
- setOffset(0);
61
- }
62
- }
63
- };
64
- }
65
-
66
- export { useSwipeToClose };
@@ -1,24 +0,0 @@
1
- export function useSwipeToClose({ enabled, onClose, threshold }: {
2
- enabled: any;
3
- onClose: any;
4
- threshold?: number | undefined;
5
- }): {
6
- dragProps: {
7
- onPointerDown?: undefined;
8
- onPointerMove?: undefined;
9
- onPointerUp?: undefined;
10
- onPointerCancel?: undefined;
11
- };
12
- offset: number;
13
- dragging: boolean;
14
- } | {
15
- offset: number;
16
- dragging: boolean;
17
- dragProps: {
18
- onPointerDown: (e: any) => void;
19
- onPointerMove: (e: any) => void;
20
- onPointerUp: (e: any) => void;
21
- onPointerCancel: () => void;
22
- };
23
- };
24
- //# sourceMappingURL=useSwipeToClose.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSwipeToClose.d.ts","sourceRoot":"","sources":["../../src/hooks/useSwipeToClose.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;EA0CC"}