torch-glare 2.4.5 → 2.5.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 (197) hide show
  1. package/apps/lib/components/DataViews/{badgeAdapter.ts → badge.ts} +2 -2
  2. package/apps/lib/components/DataViews/cell.tsx +324 -0
  3. package/apps/lib/components/DataViews/context.ts +144 -0
  4. package/apps/lib/components/DataViews/data-views.tsx +383 -0
  5. package/apps/lib/components/DataViews/filters/children.tsx +98 -0
  6. package/apps/lib/components/DataViews/filters/custom.tsx +34 -0
  7. package/apps/lib/components/DataViews/filters/filters.tsx +163 -0
  8. package/apps/lib/components/DataViews/filters/index.ts +4 -0
  9. package/apps/lib/components/DataViews/filters/labelled.tsx +20 -0
  10. package/apps/lib/components/DataViews/filters/presets.tsx +65 -0
  11. package/apps/lib/components/DataViews/filters/summary.tsx +65 -0
  12. package/apps/lib/components/DataViews/filters/sync.tsx +35 -0
  13. package/apps/lib/components/DataViews/filters/values.ts +173 -0
  14. package/apps/lib/components/DataViews/header.tsx +217 -0
  15. package/apps/lib/components/DataViews/hooks/index.ts +5 -0
  16. package/apps/lib/components/DataViews/hooks/useActiveRow.ts +22 -0
  17. package/apps/lib/components/DataViews/hooks/useControllable.ts +52 -0
  18. package/apps/lib/components/DataViews/index.ts +74 -26
  19. package/apps/lib/components/DataViews/panel/columns.tsx +153 -0
  20. package/apps/lib/components/DataViews/panel/controls.tsx +106 -0
  21. package/apps/lib/components/DataViews/panel/index.ts +3 -0
  22. package/apps/lib/components/DataViews/panel/panel.tsx +164 -0
  23. package/apps/lib/components/DataViews/panel/saved-views.tsx +67 -0
  24. package/apps/lib/components/DataViews/panel/section.tsx +79 -0
  25. package/apps/lib/components/DataViews/panel/sort.tsx +42 -0
  26. package/apps/lib/components/DataViews/panel/tab.tsx +31 -0
  27. package/apps/lib/components/DataViews/slots.ts +63 -0
  28. package/apps/lib/components/DataViews/states.tsx +38 -0
  29. package/apps/lib/components/DataViews/types.ts +485 -178
  30. package/apps/lib/components/DataViews/views/board-view.tsx +379 -0
  31. package/apps/lib/components/DataViews/views/card-rows.tsx +36 -0
  32. package/apps/lib/components/DataViews/views/inbox-view.tsx +257 -0
  33. package/apps/lib/components/DataViews/views/pane-views.tsx +192 -0
  34. package/apps/lib/components/DataViews/views/table-view.tsx +426 -0
  35. package/apps/lib/components/DataViews/views/tree-view.tsx +365 -0
  36. package/apps/lib/components/FormBuilder/context.ts +20 -6
  37. package/apps/lib/components/FormBuilder/field-kind.ts +28 -0
  38. package/apps/lib/components/FormBuilder/fields/DateField.tsx +3 -3
  39. package/apps/lib/components/FormBuilder/fields/FieldShell.tsx +7 -6
  40. package/apps/lib/components/FormBuilder/fields/PhoneField.tsx +7 -6
  41. package/apps/lib/components/FormBuilder/fields/SelectField.tsx +7 -7
  42. package/apps/lib/components/FormBuilder/fields/TableField.tsx +1 -1
  43. package/apps/lib/components/FormBuilder/fields/TextField.tsx +9 -9
  44. package/apps/lib/components/FormBuilder/form-builder.tsx +55 -3
  45. package/apps/lib/components/FormBuilder/index.ts +3 -1
  46. package/apps/lib/components/FormBuilder/types.ts +40 -0
  47. package/apps/lib/components/TabSwitch.tsx +16 -4
  48. package/apps/lib/components/TreeFolder/TreeFolder.tsx +6 -3
  49. package/apps/lib/components/TreeFolder/TreeFolderRow.tsx +16 -14
  50. package/apps/lib/components/TreeFolder/index.ts +1 -1
  51. package/apps/lib/components/TreeFolder/useTreeFolderDnD.ts +70 -207
  52. package/apps/lib/hooks/useDragDrop.tsx +365 -0
  53. package/apps/lib/hooks/useInfiniteScroll.ts +108 -0
  54. package/apps/lib/registry.json +216 -4
  55. package/apps/lib/tsconfig.tsbuildinfo +1 -1
  56. package/apps/lib/utils/dataViews/path.ts +67 -0
  57. package/apps/lib/utils/dataViews/query.ts +73 -0
  58. package/apps/lib/utils/dataViews/types.ts +187 -0
  59. package/dist/bin/index.js +8 -4
  60. package/dist/bin/index.js.map +1 -1
  61. package/dist/src/commands/add.d.ts +3 -2
  62. package/dist/src/commands/add.d.ts.map +1 -1
  63. package/dist/src/commands/add.js +27 -35
  64. package/dist/src/commands/add.js.map +1 -1
  65. package/dist/src/commands/hook.d.ts.map +1 -1
  66. package/dist/src/commands/hook.js +23 -13
  67. package/dist/src/commands/hook.js.map +1 -1
  68. package/dist/src/commands/init.d.ts.map +1 -1
  69. package/dist/src/commands/init.js +6 -2
  70. package/dist/src/commands/init.js.map +1 -1
  71. package/dist/src/commands/layout.d.ts.map +1 -1
  72. package/dist/src/commands/layout.js +23 -13
  73. package/dist/src/commands/layout.js.map +1 -1
  74. package/dist/src/commands/provider.d.ts.map +1 -1
  75. package/dist/src/commands/provider.js +22 -12
  76. package/dist/src/commands/provider.js.map +1 -1
  77. package/dist/src/commands/utils.d.ts.map +1 -1
  78. package/dist/src/commands/utils.js +21 -28
  79. package/dist/src/commands/utils.js.map +1 -1
  80. package/dist/src/shared/copyComponentsRecursively.d.ts +5 -3
  81. package/dist/src/shared/copyComponentsRecursively.d.ts.map +1 -1
  82. package/dist/src/shared/copyComponentsRecursively.js +5 -6
  83. package/dist/src/shared/copyComponentsRecursively.js.map +1 -1
  84. package/dist/src/shared/getDependenciesAndInstallNestedComponents.js +1 -1
  85. package/dist/src/shared/getDependenciesAndInstallNestedComponents.js.map +1 -1
  86. package/dist/src/shared/installDependencies.d.ts +16 -1
  87. package/dist/src/shared/installDependencies.d.ts.map +1 -1
  88. package/dist/src/shared/installDependencies.js +41 -21
  89. package/dist/src/shared/installDependencies.js.map +1 -1
  90. package/dist/src/shared/installFromPlan.d.ts +23 -0
  91. package/dist/src/shared/installFromPlan.d.ts.map +1 -0
  92. package/dist/src/shared/installFromPlan.js +77 -0
  93. package/dist/src/shared/installFromPlan.js.map +1 -0
  94. package/dist/src/shared/resolveEntry.d.ts +21 -0
  95. package/dist/src/shared/resolveEntry.d.ts.map +1 -0
  96. package/dist/src/shared/resolveEntry.js +54 -0
  97. package/dist/src/shared/resolveEntry.js.map +1 -0
  98. package/dist/src/shared/suggestOtherCommand.d.ts +8 -0
  99. package/dist/src/shared/suggestOtherCommand.d.ts.map +1 -0
  100. package/dist/src/shared/suggestOtherCommand.js +34 -0
  101. package/dist/src/shared/suggestOtherCommand.js.map +1 -0
  102. package/dist/src/shared/tailwindInit.d.ts +3 -1
  103. package/dist/src/shared/tailwindInit.d.ts.map +1 -1
  104. package/dist/src/shared/tailwindInit.js +3 -1
  105. package/dist/src/shared/tailwindInit.js.map +1 -1
  106. package/dist/src/shared/wireStylesheet.d.ts +32 -0
  107. package/dist/src/shared/wireStylesheet.d.ts.map +1 -0
  108. package/dist/src/shared/wireStylesheet.js +92 -0
  109. package/dist/src/shared/wireStylesheet.js.map +1 -0
  110. package/dist/src/types/main.d.ts +6 -0
  111. package/dist/src/types/main.d.ts.map +1 -1
  112. package/docs/components/breadcrumb.md +1 -1
  113. package/docs/components/button-group.md +1 -1
  114. package/docs/components/button.md +1 -1
  115. package/docs/components/card.md +1 -1
  116. package/docs/components/checkbox.md +1 -1
  117. package/docs/components/data-views/backend-response.md +324 -0
  118. package/docs/components/data-views/examples/a11y-rtl.md +250 -0
  119. package/docs/components/data-views/examples/api-orders-route.md +130 -0
  120. package/docs/components/data-views/examples/fields.md +362 -0
  121. package/docs/components/data-views/examples/filters.md +308 -0
  122. package/docs/components/data-views/examples/inbox-routing.md +218 -0
  123. package/docs/components/data-views/examples/index.md +29 -0
  124. package/docs/components/data-views/examples/overview.md +244 -0
  125. package/docs/components/data-views/examples/panel.md +212 -0
  126. package/docs/components/data-views/examples/scale.md +231 -0
  127. package/docs/components/data-views/examples/server-side.md +210 -0
  128. package/docs/components/data-views/examples/state.md +250 -0
  129. package/docs/components/data-views/examples/tree-custom.md +388 -0
  130. package/docs/components/data-views/examples/view-registry.md +313 -0
  131. package/docs/components/data-views/examples/views.md +534 -0
  132. package/docs/components/data-views/guide.md +405 -0
  133. package/docs/components/data-views/index.md +1504 -0
  134. package/docs/components/data-views/migration.md +79 -0
  135. package/docs/components/date-picker.md +0 -1
  136. package/docs/components/form-builder.md +3 -2
  137. package/docs/components/form-renderer.md +2 -1
  138. package/docs/components/form.md +1 -1
  139. package/docs/components/input-field.md +1 -1
  140. package/docs/components/input-otp.md +1 -1
  141. package/docs/components/input.md +1 -1
  142. package/docs/components/labeled-check-box.md +1 -1
  143. package/docs/components/labeled-radio.md +1 -1
  144. package/docs/components/radio-card.md +1 -1
  145. package/docs/components/radio.md +1 -1
  146. package/docs/components/search-field.md +1 -1
  147. package/docs/components/section-block.md +1 -1
  148. package/docs/components/select.md +1 -1
  149. package/docs/components/simple-select.md +1 -1
  150. package/docs/components/switch.md +1 -1
  151. package/docs/components/tab-switch.md +1 -1
  152. package/docs/components/table.md +1 -1
  153. package/docs/components/text-editor.md +1 -1
  154. package/docs/components/textarea.md +1 -1
  155. package/docs/components/toggle-button.md +1 -1
  156. package/docs/components/toggle.md +1 -1
  157. package/docs/components/tree-folder.md +110 -0
  158. package/docs/how-to/forms-with-form-builder.md +2 -2
  159. package/docs/reference/cli.md +28 -3
  160. package/docs/reference/components.md +16 -6
  161. package/docs/tutorials/component-composition.md +11 -13
  162. package/docs/tutorials/getting-started.md +7 -0
  163. package/package.json +3 -2
  164. package/apps/lib/components/DataViews/DataViewRadio.tsx +0 -49
  165. package/apps/lib/components/DataViews/DataViewsConfigPanel.tsx +0 -393
  166. package/apps/lib/components/DataViews/DataViewsHeader.tsx +0 -207
  167. package/apps/lib/components/DataViews/DataViewsLayout.tsx +0 -332
  168. package/apps/lib/components/DataViews/FilterPanel.tsx +0 -493
  169. package/apps/lib/components/DataViews/HeaderSearch.tsx +0 -93
  170. package/apps/lib/components/DataViews/InboxView.tsx +0 -463
  171. package/apps/lib/components/DataViews/InboxViewCard.tsx +0 -127
  172. package/apps/lib/components/DataViews/KanbanView.tsx +0 -336
  173. package/apps/lib/components/DataViews/PanelControls.tsx +0 -39
  174. package/apps/lib/components/DataViews/SettingsPanel.tsx +0 -279
  175. package/apps/lib/components/DataViews/TableView.tsx +0 -212
  176. package/apps/lib/components/DataViews/TreeView.tsx +0 -364
  177. package/apps/lib/components/DataViews/fieldRenderers.tsx +0 -299
  178. package/apps/lib/components/DataViews/filters/DatePickerRangeFilter.tsx +0 -87
  179. package/apps/lib/components/DataViews/filters/DateRangePopover.tsx +0 -120
  180. package/apps/lib/components/DataViews/filters/PresetChips.tsx +0 -45
  181. package/apps/lib/components/DataViews/filters/RangeSliderWithInputs.tsx +0 -165
  182. package/apps/lib/components/DataViews/tree/TreeDrawer.tsx +0 -50
  183. package/apps/lib/components/DataViews/tree/TreeSidebar.tsx +0 -74
  184. package/apps/lib/hooks/useDataViewsState.ts +0 -175
  185. package/apps/lib/utils/dataViews/columnUtils.ts +0 -132
  186. package/apps/lib/utils/dataViews/fieldUtils.ts +0 -197
  187. package/apps/lib/utils/dataViews/nestedDataUtils.tsx +0 -371
  188. package/apps/lib/utils/dataViews/pathUtils.ts +0 -139
  189. package/apps/lib/utils/dataViews/rangeUtils.ts +0 -234
  190. package/apps/lib/utils/dataViews/treeUtils.ts +0 -396
  191. package/docs/components/data-views-config-panel.md +0 -208
  192. package/docs/components/data-views-layout.md +0 -291
  193. package/docs/components/inbox-view.md +0 -170
  194. package/docs/components/kanban-view.md +0 -135
  195. package/docs/components/table-view.md +0 -141
  196. package/docs/components/tree-view.md +0 -147
  197. package/docs/how-to/data-views-from-backend-response.md +0 -194
@@ -0,0 +1,108 @@
1
+ "use client";
2
+
3
+ import { useCallback, useEffect, useRef } from "react";
4
+
5
+ /**
6
+ * Ask for the next page when the user scrolls near the end.
7
+ *
8
+ * Lives here rather than in a view because three of them need it — the table, the board's columns
9
+ * and the inbox list — and "near the end" has to mean the same thing in all three.
10
+ *
11
+ * It is an `IntersectionObserver` on a sentinel element, not a scroll listener. A scroll handler
12
+ * has to be throttled, reads layout on every frame to work out how close the bottom is, and stops
13
+ * being correct the moment the container resizes. The observer is told once and answers all three
14
+ * for free.
15
+ *
16
+ * Like everything else here it only *asks*. Nothing loads until you hand back more rows.
17
+ */
18
+ export interface UseInfiniteScrollOptions {
19
+ /** Fetch the next page and append it. */
20
+ onLoadMore?: () => void;
21
+ /** Whether there is a next page at all. */
22
+ hasMore: boolean;
23
+ /** True while a page is in flight. */
24
+ loading?: boolean;
25
+ /**
26
+ * How far before the end to fire, in px. The default aims to have the next page arriving before
27
+ * the user reaches the gap, rather than after they have already stopped at it.
28
+ */
29
+ rootMargin?: number;
30
+ }
31
+
32
+ /**
33
+ * The element the sentinel actually scrolls inside, or `null` for the viewport.
34
+ *
35
+ * Walks up looking at `overflow-y` rather than at class names, so it keeps working whatever a
36
+ * view calls its container — the table, the board's columns and the inbox list all differ.
37
+ */
38
+ function scrollParentOf(el: HTMLElement): HTMLElement | null {
39
+ let node = el.parentElement;
40
+ while (node) {
41
+ const overflow = getComputedStyle(node).overflowY;
42
+ if (overflow === "auto" || overflow === "scroll") return node;
43
+ node = node.parentElement;
44
+ }
45
+ return null;
46
+ }
47
+
48
+ export function useInfiniteScroll({
49
+ onLoadMore,
50
+ hasMore,
51
+ loading = false,
52
+ rootMargin = 400,
53
+ }: UseInfiniteScrollOptions) {
54
+ const sentinelRef = useRef<HTMLElement | null>(null);
55
+
56
+ /**
57
+ * The guard against asking twice for the same page.
58
+ *
59
+ * The observer fires on intersection, but the rows that answer it do not arrive for a round
60
+ * trip — and until they do, the sentinel is still on screen. Reading `loading` alone is not
61
+ * enough either: a caller that sets it a tick late leaves a window where a second fire gets
62
+ * through. So the hook latches when it asks, and only unlatches once the sentinel has actually
63
+ * left the viewport again.
64
+ */
65
+ const askedRef = useRef(false);
66
+
67
+ const ready = Boolean(onLoadMore) && hasMore && !loading;
68
+
69
+ const handle = useCallback(
70
+ (entries: IntersectionObserverEntry[]) => {
71
+ const visible = entries.some((e) => e.isIntersecting);
72
+ if (!visible) {
73
+ askedRef.current = false;
74
+ return;
75
+ }
76
+ if (askedRef.current || !ready) return;
77
+ askedRef.current = true;
78
+ onLoadMore?.();
79
+ },
80
+ [ready, onLoadMore],
81
+ );
82
+
83
+ useEffect(() => {
84
+ const el = sentinelRef.current;
85
+ if (!el || typeof IntersectionObserver === "undefined") return;
86
+
87
+ const observer = new IntersectionObserver(handle, {
88
+ // The scroller has to be named. `root: null` means the *viewport*, not the nearest
89
+ // scrollable ancestor — so inside a scrolling panel the sentinel is clipped away and
90
+ // `rootMargin` expands the wrong box, which reads as "infinite scroll simply never fires".
91
+ // Finding it here rather than asking for it keeps the call sites free of plumbing.
92
+ root: scrollParentOf(el),
93
+ rootMargin: `0px 0px ${rootMargin}px 0px`,
94
+ });
95
+ observer.observe(el);
96
+ return () => observer.disconnect();
97
+ }, [handle, rootMargin]);
98
+
99
+ // The latch is released by the sentinel leaving, and by nothing else.
100
+ //
101
+ // Releasing it when `loading` went false instead — which is the obvious thing to write — burns
102
+ // several pages on one flick to the bottom: the flag drops before the new rows have painted, so
103
+ // the sentinel is still on screen and the next observer callback asks again, and again. Tying
104
+ // the release to visibility makes one arrival at the end cost exactly one page, because the
105
+ // rows that arrive are what push the sentinel out of view.
106
+
107
+ return { sentinelRef };
108
+ }
@@ -1,6 +1,63 @@
1
1
  {
2
- "version": "2.4.5",
2
+ "version": "2.5.1",
3
3
  "generatedBy": "scripts/bin/generateRegistry",
4
+ "npmVersions": {
5
+ "@dnd-kit/core": "^6.3.1",
6
+ "@dnd-kit/sortable": "^10.0.0",
7
+ "@dnd-kit/utilities": "^3.2.2",
8
+ "@editorjs/checklist": "^1.6.0",
9
+ "@editorjs/code": "^2.9.4",
10
+ "@editorjs/delimiter": "^1.4.2",
11
+ "@editorjs/editorjs": "^2.31.1",
12
+ "@editorjs/embed": "^2.8.0",
13
+ "@editorjs/header": "^2.8.8",
14
+ "@editorjs/inline-code": "^1.5.2",
15
+ "@editorjs/link": "^2.6.2",
16
+ "@editorjs/list": "^2.0.9",
17
+ "@editorjs/marker": "^1.4.0",
18
+ "@editorjs/nested-list": "^1.4.3",
19
+ "@editorjs/quote": "^2.7.6",
20
+ "@editorjs/raw": "^2.5.1",
21
+ "@editorjs/simple-image": "^1.6.0",
22
+ "@editorjs/table": "^2.4.5",
23
+ "@editorjs/text-variant-tune": "^1.0.3",
24
+ "@editorjs/underline": "^1.2.1",
25
+ "@editorjs/warning": "^1.4.1",
26
+ "@radix-ui/react-alert-dialog": "^1.1.6",
27
+ "@radix-ui/react-avatar": "^1.1.3",
28
+ "@radix-ui/react-checkbox": "^1.1.4",
29
+ "@radix-ui/react-context-menu": "^2.3.2",
30
+ "@radix-ui/react-dialog": "^1.1.6",
31
+ "@radix-ui/react-dropdown-menu": "^2.1.6",
32
+ "@radix-ui/react-label": "^2.1.2",
33
+ "@radix-ui/react-popover": "^1.1.6",
34
+ "@radix-ui/react-radio-group": "^1.2.3",
35
+ "@radix-ui/react-scroll-area": "^1.2.3",
36
+ "@radix-ui/react-select": "^2.1.6",
37
+ "@radix-ui/react-slider": "^1.4.2",
38
+ "@radix-ui/react-slot": "^1.1.2",
39
+ "@radix-ui/react-switch": "^1.1.3",
40
+ "@radix-ui/react-tabs": "^1.1.13",
41
+ "@radix-ui/react-toggle": "^1.1.2",
42
+ "@radix-ui/react-toggle-group": "^1.1.11",
43
+ "@radix-ui/react-tooltip": "^1.1.8",
44
+ "@tanstack/react-table": "^8.21.3",
45
+ "@tanstack/react-virtual": "^3.14.9",
46
+ "chart.js": "^4.5.1",
47
+ "class-variance-authority": "^0.7.1",
48
+ "clsx": "^2.1.1",
49
+ "date-fns": "^4.1.0",
50
+ "editorjs-undo": "^2.0.28",
51
+ "input-otp": "^1.4.2",
52
+ "lucide-react": "^0.507.0",
53
+ "next": "15.2.1",
54
+ "react-day-picker": "^9.6.7",
55
+ "react-hook-form": "^7.54.2",
56
+ "react-hot-toast": "^2.5.2",
57
+ "tailwind-merge": "^3.0.2",
58
+ "torch-react-mobile-picker": "^1.1.0",
59
+ "vaul": "^1.1.2"
60
+ },
4
61
  "items": [
5
62
  {
6
63
  "name": "ActionButton",
@@ -224,6 +281,37 @@
224
281
  "components/Table"
225
282
  ]
226
283
  },
284
+ {
285
+ "name": "DataViews",
286
+ "type": "components",
287
+ "path": "components/DataViews",
288
+ "npmDependencies": [
289
+ "@radix-ui/react-radio-group",
290
+ "@tanstack/react-virtual",
291
+ "lucide-react",
292
+ "react-hook-form"
293
+ ],
294
+ "registryDependencies": [
295
+ "components/Avatar",
296
+ "components/Badge",
297
+ "components/Button",
298
+ "components/Checkbox",
299
+ "components/ConclusionHeader",
300
+ "components/Divider",
301
+ "components/FormBuilder",
302
+ "components/Skeleton",
303
+ "components/Switch",
304
+ "components/TabSwitch",
305
+ "components/Table",
306
+ "components/TreeFolder",
307
+ "hooks/useDragDrop",
308
+ "hooks/useInfiniteScroll",
309
+ "layouts/DataViewCard",
310
+ "utils/cn",
311
+ "utils/dataViews",
312
+ "utils/types"
313
+ ]
314
+ },
227
315
  {
228
316
  "name": "DatePicker",
229
317
  "type": "components",
@@ -282,7 +370,6 @@
282
370
  "class-variance-authority"
283
371
  ],
284
372
  "registryDependencies": [
285
- "components/DropdownMenu",
286
373
  "utils/cn",
287
374
  "utils/types"
288
375
  ]
@@ -314,6 +401,67 @@
314
401
  "utils/types"
315
402
  ]
316
403
  },
404
+ {
405
+ "name": "FormBuilder",
406
+ "type": "components",
407
+ "path": "components/FormBuilder",
408
+ "npmDependencies": [
409
+ "@dnd-kit/core",
410
+ "@dnd-kit/sortable",
411
+ "@dnd-kit/utilities",
412
+ "@editorjs/editorjs",
413
+ "@radix-ui/react-slider",
414
+ "react-hook-form"
415
+ ],
416
+ "registryDependencies": [
417
+ "components/BadgeField",
418
+ "components/Button",
419
+ "components/Card",
420
+ "components/Checkbox",
421
+ "components/ColorPicker",
422
+ "components/DatePicker",
423
+ "components/FieldHint",
424
+ "components/Form",
425
+ "components/FormStepper",
426
+ "components/HeaderBar",
427
+ "components/ImageAttachment",
428
+ "components/Input",
429
+ "components/InputField",
430
+ "components/InputOTP",
431
+ "components/Label",
432
+ "components/LabeledCheckBox",
433
+ "components/PasswordLevel",
434
+ "components/Radio",
435
+ "components/RadioCard",
436
+ "components/SearchableSelect",
437
+ "components/SearchableTree",
438
+ "components/SectionBlock",
439
+ "components/Select",
440
+ "components/Switch",
441
+ "components/Table",
442
+ "components/TextEditor",
443
+ "components/Textarea",
444
+ "components/Tooltip",
445
+ "hooks/useTagSelection",
446
+ "layouts/FieldSection",
447
+ "utils/cn"
448
+ ]
449
+ },
450
+ {
451
+ "name": "FormRenderer",
452
+ "type": "components",
453
+ "path": "components/FormRenderer",
454
+ "npmDependencies": [
455
+ "@radix-ui/react-tabs",
456
+ "react-hook-form"
457
+ ],
458
+ "registryDependencies": [
459
+ "components/Drawer",
460
+ "components/FormBuilder",
461
+ "components/TabFormItem",
462
+ "utils/cn"
463
+ ]
464
+ },
317
465
  {
318
466
  "name": "FormStepper",
319
467
  "type": "components",
@@ -770,6 +918,39 @@
770
918
  "utils/cn"
771
919
  ]
772
920
  },
921
+ {
922
+ "name": "TextEditor",
923
+ "type": "components",
924
+ "path": "components/TextEditor",
925
+ "npmDependencies": [
926
+ "@editorjs/checklist",
927
+ "@editorjs/code",
928
+ "@editorjs/delimiter",
929
+ "@editorjs/editorjs",
930
+ "@editorjs/embed",
931
+ "@editorjs/header",
932
+ "@editorjs/inline-code",
933
+ "@editorjs/link",
934
+ "@editorjs/list",
935
+ "@editorjs/marker",
936
+ "@editorjs/nested-list",
937
+ "@editorjs/quote",
938
+ "@editorjs/raw",
939
+ "@editorjs/simple-image",
940
+ "@editorjs/table",
941
+ "@editorjs/text-variant-tune",
942
+ "@editorjs/underline",
943
+ "@editorjs/warning",
944
+ "chart.js",
945
+ "class-variance-authority",
946
+ "editorjs-undo"
947
+ ],
948
+ "registryDependencies": [
949
+ "components/DropdownMenu",
950
+ "utils/cn",
951
+ "utils/types"
952
+ ]
953
+ },
773
954
  {
774
955
  "name": "Timeline",
775
956
  "type": "components",
@@ -851,6 +1032,19 @@
851
1032
  "utils/cn"
852
1033
  ]
853
1034
  },
1035
+ {
1036
+ "name": "TreeFolder",
1037
+ "type": "components",
1038
+ "path": "components/TreeFolder",
1039
+ "npmDependencies": [
1040
+ "lucide-react"
1041
+ ],
1042
+ "registryDependencies": [
1043
+ "hooks/useDragDrop",
1044
+ "utils/cn",
1045
+ "utils/types"
1046
+ ]
1047
+ },
854
1048
  {
855
1049
  "name": "useActiveTreeItem",
856
1050
  "type": "hooks",
@@ -866,9 +1060,20 @@
866
1060
  "registryDependencies": []
867
1061
  },
868
1062
  {
869
- "name": "useDataViewsState",
1063
+ "name": "useDragDrop",
1064
+ "type": "hooks",
1065
+ "path": "hooks/useDragDrop.tsx",
1066
+ "npmDependencies": [
1067
+ "@dnd-kit/core",
1068
+ "@dnd-kit/sortable",
1069
+ "@dnd-kit/utilities"
1070
+ ],
1071
+ "registryDependencies": []
1072
+ },
1073
+ {
1074
+ "name": "useInfiniteScroll",
870
1075
  "type": "hooks",
871
- "path": "hooks/useDataViewsState.ts",
1076
+ "path": "hooks/useInfiniteScroll.ts",
872
1077
  "npmDependencies": [],
873
1078
  "registryDependencies": []
874
1079
  },
@@ -969,6 +1174,13 @@
969
1174
  "npmDependencies": [],
970
1175
  "registryDependencies": []
971
1176
  },
1177
+ {
1178
+ "name": "dataViews",
1179
+ "type": "utils",
1180
+ "path": "utils/dataViews",
1181
+ "npmDependencies": [],
1182
+ "registryDependencies": []
1183
+ },
972
1184
  {
973
1185
  "name": "dateFormat",
974
1186
  "type": "utils",