torch-glare 2.4.0 → 2.4.2

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 (318) hide show
  1. package/README.md +8 -0
  2. package/apps/lib/components/ActionButton.tsx +7 -12
  3. package/apps/lib/components/ActionsGroup.tsx +4 -15
  4. package/apps/lib/components/AlertDialog.tsx +173 -191
  5. package/apps/lib/components/Avatar.tsx +13 -16
  6. package/apps/lib/components/Badge.tsx +1 -3
  7. package/apps/lib/components/BadgeField.tsx +76 -71
  8. package/apps/lib/components/Breadcrumb.tsx +49 -85
  9. package/apps/lib/components/Button.tsx +21 -20
  10. package/apps/lib/components/ButtonGroup.tsx +31 -41
  11. package/apps/lib/components/Calendar.tsx +51 -29
  12. package/apps/lib/components/Card.tsx +40 -24
  13. package/apps/lib/components/Checkbox.tsx +9 -16
  14. package/apps/lib/components/ColorPicker.tsx +441 -0
  15. package/apps/lib/components/ConclusionHeader.tsx +148 -0
  16. package/apps/lib/components/ContextMenu.tsx +97 -96
  17. package/apps/lib/components/CountBadge.tsx +4 -6
  18. package/apps/lib/components/DataTable.tsx +196 -216
  19. package/apps/lib/components/DataViews/DataViewRadio.tsx +1 -6
  20. package/apps/lib/components/DataViews/DataViewsConfigPanel.tsx +13 -47
  21. package/apps/lib/components/DataViews/DataViewsHeader.tsx +1 -3
  22. package/apps/lib/components/DataViews/DataViewsLayout.tsx +5 -12
  23. package/apps/lib/components/DataViews/FilterPanel.tsx +155 -149
  24. package/apps/lib/components/DataViews/HeaderSearch.tsx +1 -5
  25. package/apps/lib/components/DataViews/InboxView.tsx +22 -68
  26. package/apps/lib/components/DataViews/InboxViewCard.tsx +68 -77
  27. package/apps/lib/components/DataViews/KanbanView.tsx +8 -25
  28. package/apps/lib/components/DataViews/PanelControls.tsx +3 -13
  29. package/apps/lib/components/DataViews/SettingsPanel.tsx +83 -89
  30. package/apps/lib/components/DataViews/TableView.tsx +8 -28
  31. package/apps/lib/components/DataViews/TreeView.tsx +12 -40
  32. package/apps/lib/components/DataViews/badgeAdapter.ts +32 -28
  33. package/apps/lib/components/DataViews/fieldRenderers.tsx +106 -141
  34. package/apps/lib/components/DataViews/filters/DatePickerRangeFilter.tsx +30 -23
  35. package/apps/lib/components/DataViews/filters/DateRangePopover.tsx +39 -32
  36. package/apps/lib/components/DataViews/filters/PresetChips.tsx +15 -15
  37. package/apps/lib/components/DataViews/filters/RangeSliderWithInputs.tsx +69 -58
  38. package/apps/lib/components/DataViews/index.ts +26 -26
  39. package/apps/lib/components/DataViews/tree/TreeDrawer.tsx +12 -16
  40. package/apps/lib/components/DataViews/tree/TreeSidebar.tsx +28 -31
  41. package/apps/lib/components/DataViews/types.ts +104 -115
  42. package/apps/lib/components/DatePicker.tsx +200 -196
  43. package/apps/lib/components/Dialog.tsx +92 -105
  44. package/apps/lib/components/Divider.tsx +21 -24
  45. package/apps/lib/components/Drawer.tsx +124 -142
  46. package/apps/lib/components/DropdownMenu.tsx +131 -171
  47. package/apps/lib/components/FieldHint.tsx +4 -11
  48. package/apps/lib/components/Form.tsx +146 -155
  49. package/apps/lib/components/FormBuilder/DisplayField.tsx +40 -0
  50. package/apps/lib/components/FormBuilder/context.ts +71 -0
  51. package/apps/lib/components/FormBuilder/fields/ChoiceFields.tsx +65 -0
  52. package/apps/lib/components/FormBuilder/fields/ColorField.tsx +76 -0
  53. package/apps/lib/components/FormBuilder/fields/CustomField.tsx +16 -0
  54. package/apps/lib/components/FormBuilder/fields/DateField.tsx +34 -0
  55. package/apps/lib/components/FormBuilder/fields/FieldArray.tsx +79 -0
  56. package/apps/lib/components/FormBuilder/fields/FieldShell.tsx +174 -0
  57. package/apps/lib/components/FormBuilder/fields/FileField.tsx +40 -0
  58. package/apps/lib/components/FormBuilder/fields/OptionListFields.tsx +139 -0
  59. package/apps/lib/components/FormBuilder/fields/OtpField.tsx +32 -0
  60. package/apps/lib/components/FormBuilder/fields/PhoneField.tsx +82 -0
  61. package/apps/lib/components/FormBuilder/fields/RichTextEditorField.tsx +37 -0
  62. package/apps/lib/components/FormBuilder/fields/SelectField.tsx +101 -0
  63. package/apps/lib/components/FormBuilder/fields/SignatureField.tsx +175 -0
  64. package/apps/lib/components/FormBuilder/fields/SliderField.tsx +72 -0
  65. package/apps/lib/components/FormBuilder/fields/SwitchBoxField.tsx +42 -0
  66. package/apps/lib/components/FormBuilder/fields/TableField.tsx +312 -0
  67. package/apps/lib/components/FormBuilder/fields/TextField.tsx +222 -0
  68. package/apps/lib/components/FormBuilder/fields/TreeSelectField.tsx +49 -0
  69. package/apps/lib/components/FormBuilder/fields/countries.ts +303 -0
  70. package/apps/lib/components/FormBuilder/fields/index.ts +25 -0
  71. package/apps/lib/components/FormBuilder/form-builder.tsx +292 -0
  72. package/apps/lib/components/FormBuilder/header.tsx +105 -0
  73. package/apps/lib/components/FormBuilder/index.ts +37 -0
  74. package/apps/lib/components/FormBuilder/numberFormat.ts +16 -0
  75. package/apps/lib/components/FormBuilder/stepper.tsx +217 -0
  76. package/apps/lib/components/FormBuilder/submit.tsx +41 -0
  77. package/apps/lib/components/FormBuilder/types.ts +264 -0
  78. package/apps/lib/components/FormBuilder/viewFormat.tsx +137 -0
  79. package/apps/lib/components/FormRenderer/FormDrawer.tsx +121 -0
  80. package/apps/lib/components/FormRenderer/form-renderer.tsx +113 -0
  81. package/apps/lib/components/FormRenderer/index.ts +9 -0
  82. package/apps/lib/components/FormRenderer/types.ts +79 -0
  83. package/apps/lib/components/FormStepper.tsx +9 -39
  84. package/apps/lib/components/FormSummary.tsx +282 -0
  85. package/apps/lib/components/HeaderBar.tsx +1 -9
  86. package/apps/lib/components/ImageAttachment.tsx +106 -93
  87. package/apps/lib/components/InnerLabelField.tsx +20 -16
  88. package/apps/lib/components/Input.tsx +171 -172
  89. package/apps/lib/components/InputField.tsx +44 -45
  90. package/apps/lib/components/InputOTP.tsx +68 -69
  91. package/apps/lib/components/Label.tsx +61 -58
  92. package/apps/lib/components/LabelField.tsx +4 -5
  93. package/apps/lib/components/LabeledCheckBox.tsx +8 -12
  94. package/apps/lib/components/LabeledRadio.tsx +7 -5
  95. package/apps/lib/components/LinkButton.tsx +2 -9
  96. package/apps/lib/components/LoginButton.tsx +4 -9
  97. package/apps/lib/components/PasswordLevel.tsx +5 -5
  98. package/apps/lib/components/Popover.tsx +15 -33
  99. package/apps/lib/components/ProfileMenu.tsx +67 -72
  100. package/apps/lib/components/Radio.tsx +1 -5
  101. package/apps/lib/components/RadioCard.tsx +11 -28
  102. package/apps/lib/components/ScrollArea.tsx +45 -43
  103. package/apps/lib/components/SearchField.tsx +49 -39
  104. package/apps/lib/components/SearchableSelect.tsx +16 -16
  105. package/apps/lib/components/SearchableTable.tsx +108 -118
  106. package/apps/lib/components/SearchableTree.tsx +469 -0
  107. package/apps/lib/components/SearchableTreeDialog.tsx +493 -0
  108. package/apps/lib/components/SectionBlock.tsx +19 -23
  109. package/apps/lib/components/Select.tsx +80 -186
  110. package/apps/lib/components/SimpleSelect.tsx +196 -187
  111. package/apps/lib/components/Skeleton.tsx +9 -12
  112. package/apps/lib/components/SlideDatePicker.tsx +215 -166
  113. package/apps/lib/components/SpinLoading.tsx +33 -49
  114. package/apps/lib/components/Stepper.tsx +13 -56
  115. package/apps/lib/components/Switch.tsx +8 -10
  116. package/apps/lib/components/TabFormItem.tsx +3 -12
  117. package/apps/lib/components/TabSwitch.tsx +7 -34
  118. package/apps/lib/components/Table.tsx +60 -75
  119. package/apps/lib/components/{ChartBlockTool.ts → TextEditor/ChartBlockTool.ts} +17 -52
  120. package/apps/lib/components/TextEditor/RichTextField.tsx +46 -0
  121. package/apps/lib/components/{TableDnDWrapper.ts → TextEditor/TableDnDWrapper.ts} +15 -48
  122. package/apps/lib/components/{TextEditor.tsx → TextEditor/TextEditor.tsx} +156 -113
  123. package/apps/lib/components/TextEditor/TextEditorToolbar.tsx +429 -0
  124. package/apps/lib/components/TextEditor/editor-tools/AlignmentTune.ts +70 -0
  125. package/apps/lib/components/TextEditor/editor-tools/ColorInlineTool.ts +50 -0
  126. package/apps/lib/components/TextEditor/editor-tools/StrikethroughInlineTool.ts +48 -0
  127. package/apps/lib/components/TextEditor/editor-tools/inlineFormat.ts +98 -0
  128. package/apps/lib/{types → components/TextEditor}/editorjs.d.ts +19 -0
  129. package/apps/lib/components/TextEditor/index.ts +7 -0
  130. package/apps/lib/{utils → components/TextEditor}/markdownParser.ts +2 -7
  131. package/apps/lib/components/Textarea.tsx +9 -13
  132. package/apps/lib/components/Timeline.tsx +21 -41
  133. package/apps/lib/components/Toast.tsx +83 -83
  134. package/apps/lib/components/Toggle.tsx +112 -114
  135. package/apps/lib/components/ToggleButton.tsx +1 -1
  136. package/apps/lib/components/Tooltip.tsx +24 -19
  137. package/apps/lib/components/TransparentLabel.tsx +61 -62
  138. package/apps/lib/components/TreeDropDown.tsx +86 -52
  139. package/apps/lib/components/TreeFolder/TreeFolder.tsx +15 -48
  140. package/apps/lib/components/TreeFolder/TreeFolderBreadcrumb.tsx +16 -21
  141. package/apps/lib/components/TreeFolder/TreeFolderRow.tsx +9 -20
  142. package/apps/lib/components/TreeFolder/TreeFolderStyles.tsx +3 -3
  143. package/apps/lib/components/TreeFolder/icons.tsx +14 -17
  144. package/apps/lib/components/TreeFolder/index.ts +15 -8
  145. package/apps/lib/components/TreeFolder/treeFolderUtils.ts +47 -52
  146. package/apps/lib/components/TreeFolder/types.ts +32 -32
  147. package/apps/lib/components/TreeFolder/useTreeFolderDnD.ts +117 -123
  148. package/apps/lib/hooks/useActiveTreeItem.ts +52 -55
  149. package/apps/lib/hooks/useClickOutside.ts +21 -20
  150. package/apps/lib/hooks/useDataViewsState.ts +86 -80
  151. package/apps/lib/hooks/useIsMobile.ts +12 -12
  152. package/apps/lib/hooks/useResize.ts +54 -65
  153. package/apps/lib/hooks/useTagSelection.ts +201 -201
  154. package/apps/lib/layouts/CNLayout.tsx +181 -140
  155. package/apps/lib/layouts/DataViewCard.tsx +4 -18
  156. package/apps/lib/layouts/FieldSection.tsx +2 -6
  157. package/apps/lib/layouts/TreeSubLayout.tsx +24 -38
  158. package/apps/lib/providers/ThemeProvider.tsx +8 -23
  159. package/apps/lib/registry.json +997 -0
  160. package/apps/lib/tsconfig.json +9 -0
  161. package/apps/lib/tsconfig.tsbuildinfo +1 -0
  162. package/apps/lib/utils/cn.ts +1 -1
  163. package/apps/lib/utils/color.ts +175 -0
  164. package/apps/lib/utils/dataViews/columnUtils.ts +46 -44
  165. package/apps/lib/utils/dataViews/fieldUtils.ts +70 -71
  166. package/apps/lib/utils/dataViews/nestedDataUtils.tsx +129 -122
  167. package/apps/lib/utils/dataViews/pathUtils.ts +74 -67
  168. package/apps/lib/utils/dataViews/rangeUtils.ts +121 -112
  169. package/apps/lib/utils/dataViews/treeUtils.ts +204 -211
  170. package/apps/lib/utils/dateFormat.ts +64 -54
  171. package/apps/lib/utils/resize.ts +21 -25
  172. package/apps/lib/utils/types.ts +13 -13
  173. package/dist/bin/index.js +8 -2
  174. package/dist/bin/index.js.map +1 -1
  175. package/dist/src/shared/getAvailableFiles.d.ts.map +1 -1
  176. package/dist/src/shared/getAvailableFiles.js +6 -1
  177. package/dist/src/shared/getAvailableFiles.js.map +1 -1
  178. package/dist/src/shared/loadRegistry.d.ts +7 -0
  179. package/dist/src/shared/loadRegistry.d.ts.map +1 -0
  180. package/dist/src/shared/loadRegistry.js +31 -0
  181. package/dist/src/shared/loadRegistry.js.map +1 -0
  182. package/dist/src/shared/resolveInstallPlan.d.ts +12 -0
  183. package/dist/src/shared/resolveInstallPlan.d.ts.map +1 -0
  184. package/dist/src/shared/resolveInstallPlan.js +39 -0
  185. package/dist/src/shared/resolveInstallPlan.js.map +1 -0
  186. package/dist/src/types/main.d.ts +24 -0
  187. package/dist/src/types/main.d.ts.map +1 -1
  188. package/docs/README.md +10 -2
  189. package/docs/components/action-button.md +30 -24
  190. package/docs/components/actions-group.md +26 -20
  191. package/docs/components/alert-dialog.md +45 -45
  192. package/docs/components/avatar.md +6 -2
  193. package/docs/components/badge-field.md +6 -2
  194. package/docs/components/badge.md +7 -1
  195. package/docs/components/breadcrumb.md +15 -40
  196. package/docs/components/button-group.md +13 -10
  197. package/docs/components/button.md +58 -33
  198. package/docs/components/calendar.md +26 -19
  199. package/docs/components/card.md +23 -18
  200. package/docs/components/chart-block-tool.md +129 -0
  201. package/docs/components/checkbox.md +16 -8
  202. package/docs/components/cn-layout.md +7 -1
  203. package/docs/components/color-picker.md +101 -0
  204. package/docs/components/conclusion-header.md +80 -0
  205. package/docs/components/context-menu.md +18 -25
  206. package/docs/components/count-badge.md +7 -1
  207. package/docs/components/data-table.md +45 -33
  208. package/docs/components/data-views-config-panel.md +15 -11
  209. package/docs/components/data-views-layout.md +13 -16
  210. package/docs/components/date-picker.md +30 -23
  211. package/docs/components/dialog.md +43 -42
  212. package/docs/components/divider.md +10 -4
  213. package/docs/components/drawer.md +161 -135
  214. package/docs/components/dropdown-menu.md +25 -34
  215. package/docs/components/field-hint.md +37 -25
  216. package/docs/components/field-section.md +9 -3
  217. package/docs/components/form-builder.md +270 -0
  218. package/docs/components/form-renderer.md +228 -0
  219. package/docs/components/form-stepper.md +6 -0
  220. package/docs/components/form-summary.md +123 -0
  221. package/docs/components/form.md +17 -20
  222. package/docs/components/header-bar.md +6 -0
  223. package/docs/components/image-attachment.md +43 -45
  224. package/docs/components/inbox-view.md +16 -5
  225. package/docs/components/inner-label-field.md +34 -24
  226. package/docs/components/input-field.md +18 -10
  227. package/docs/components/input-otp.md +14 -11
  228. package/docs/components/input.md +22 -16
  229. package/docs/components/kanban-view.md +15 -5
  230. package/docs/components/label-field.md +32 -22
  231. package/docs/components/label.md +43 -32
  232. package/docs/components/labeled-check-box.md +16 -8
  233. package/docs/components/labeled-radio.md +18 -11
  234. package/docs/components/link-button.md +7 -1
  235. package/docs/components/login-button.md +8 -2
  236. package/docs/components/password-level.md +37 -24
  237. package/docs/components/popover.md +26 -23
  238. package/docs/components/profile-menu.md +38 -27
  239. package/docs/components/radio-card.md +16 -9
  240. package/docs/components/radio.md +16 -8
  241. package/docs/components/scroll-area.md +6 -2
  242. package/docs/components/search-field.md +14 -6
  243. package/docs/components/searchable-select.md +19 -14
  244. package/docs/components/searchable-table.md +18 -13
  245. package/docs/components/searchable-tree-dialog.md +190 -0
  246. package/docs/components/searchable-tree.md +200 -0
  247. package/docs/components/section-block.md +12 -4
  248. package/docs/components/select.md +23 -18
  249. package/docs/components/simple-select.md +14 -10
  250. package/docs/components/skeleton.md +43 -33
  251. package/docs/components/slide-date-picker.md +37 -29
  252. package/docs/components/spin-loading.md +32 -23
  253. package/docs/components/stepper.md +6 -0
  254. package/docs/components/switch.md +14 -6
  255. package/docs/components/tab-form-item.md +7 -1
  256. package/docs/components/tab-switch.md +13 -6
  257. package/docs/components/table-dnd-wrapper.md +107 -0
  258. package/docs/components/table-view.md +15 -5
  259. package/docs/components/table.md +28 -28
  260. package/docs/components/text-editor.md +37 -13
  261. package/docs/components/textarea.md +15 -7
  262. package/docs/components/timeline.md +6 -0
  263. package/docs/components/toast.md +35 -26
  264. package/docs/components/toggle-button.md +24 -21
  265. package/docs/components/toggle.md +23 -15
  266. package/docs/components/tooltip.md +42 -30
  267. package/docs/components/transparent-label.md +29 -20
  268. package/docs/components/tree-drop-down.md +31 -23
  269. package/docs/components/tree-sub-layout.md +6 -2
  270. package/docs/components/tree-view.md +16 -5
  271. package/docs/explanation/architecture.md +54 -0
  272. package/docs/explanation/design-system.md +52 -0
  273. package/docs/how-to/data-views-from-backend-response.md +6 -4
  274. package/docs/how-to/form-and-list-recipes.md +26 -19
  275. package/docs/how-to/forms-with-form-builder.md +408 -0
  276. package/docs/how-to/guides.md +177 -197
  277. package/docs/migration/changelog.md +38 -0
  278. package/docs/reference/cli.md +87 -0
  279. package/docs/reference/components.md +11 -12
  280. package/docs/reference/hooks.md +8 -8
  281. package/docs/reference/providers.md +22 -22
  282. package/docs/reference/tailwind-plugins.md +2 -2
  283. package/docs/reference/theme.md +85 -0
  284. package/docs/reference/types.md +4 -4
  285. package/docs/reference/utilities.md +19 -26
  286. package/docs/tutorials/building-first-form.md +170 -172
  287. package/docs/tutorials/component-composition.md +34 -50
  288. package/docs/tutorials/getting-started.md +2 -2
  289. package/docs/tutorials/theming-basics.md +13 -10
  290. package/package.json +31 -3
  291. package/dist/src/commands/block.d.ts +0 -5
  292. package/dist/src/commands/block.d.ts.map +0 -1
  293. package/dist/src/commands/block.js +0 -255
  294. package/dist/src/commands/block.js.map +0 -1
  295. package/dist/src/shared/configureFonts.d.ts +0 -6
  296. package/dist/src/shared/configureFonts.d.ts.map +0 -1
  297. package/dist/src/shared/configureFonts.js +0 -106
  298. package/dist/src/shared/configureFonts.js.map +0 -1
  299. package/dist/src/shared/configureGlobalCss.d.ts +0 -6
  300. package/dist/src/shared/configureGlobalCss.d.ts.map +0 -1
  301. package/dist/src/shared/configureGlobalCss.js +0 -154
  302. package/dist/src/shared/configureGlobalCss.js.map +0 -1
  303. package/dist/src/shared/configureTailwind.d.ts +0 -7
  304. package/dist/src/shared/configureTailwind.d.ts.map +0 -1
  305. package/dist/src/shared/configureTailwind.js +0 -163
  306. package/dist/src/shared/configureTailwind.js.map +0 -1
  307. package/dist/src/shared/detectFramework.d.ts +0 -23
  308. package/dist/src/shared/detectFramework.d.ts.map +0 -1
  309. package/dist/src/shared/detectFramework.js +0 -119
  310. package/dist/src/shared/detectFramework.js.map +0 -1
  311. package/dist/src/shared/installBaseUtils.d.ts +0 -5
  312. package/dist/src/shared/installBaseUtils.d.ts.map +0 -1
  313. package/dist/src/shared/installBaseUtils.js +0 -79
  314. package/dist/src/shared/installBaseUtils.js.map +0 -1
  315. package/dist/src/shared/resolveAliases.d.ts +0 -24
  316. package/dist/src/shared/resolveAliases.d.ts.map +0 -1
  317. package/dist/src/shared/resolveAliases.js +0 -98
  318. package/dist/src/shared/resolveAliases.js.map +0 -1
@@ -11,15 +11,22 @@ keywords: [table, datatable, grid, sorting, selection, drag-drop, reorder, pagin
11
11
 
12
12
  ## Installation
13
13
 
14
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
15
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
16
+
14
17
  ```bash
15
- npm install @tanstack/react-table @dnd-kit/core @dnd-kit/sortable @dnd-kit/utilities
18
+ npx torch-glare@latest init
19
+ npx torch-glare@latest add DataTable
16
20
  ```
17
21
 
22
+ `add` also copies any components, hooks, and utilities that `DataTable` depends on.
23
+
18
24
  ## Import
19
25
 
20
- ```typescript
21
- import { DataTable } from '@torch-ui/components'
22
- import { ColumnDef } from '@tanstack/react-table'
26
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
27
+
28
+ ```tsx
29
+ import { DataTable } from "@/components/DataTable";
23
30
  ```
24
31
 
25
32
  ## Quick Examples
@@ -27,7 +34,7 @@ import { ColumnDef } from '@tanstack/react-table'
27
34
  ### Basic Usage
28
35
 
29
36
  ```typescript
30
- import { DataTable } from '@torch-ui/components'
37
+ import { DataTable } from "@/components/DataTable";
31
38
  import { ColumnDef } from '@tanstack/react-table'
32
39
 
33
40
  interface User {
@@ -66,7 +73,7 @@ function Example() {
66
73
  ### With Row Reordering
67
74
 
68
75
  ```typescript
69
- import { DataTable } from '@torch-ui/components'
76
+ import { DataTable } from "@/components/DataTable";
70
77
  import { useState } from 'react'
71
78
 
72
79
  function ReorderableTable() {
@@ -97,8 +104,8 @@ function ReorderableTable() {
97
104
  ### With Custom Cell Rendering
98
105
 
99
106
  ```typescript
100
- import { DataTable } from '@torch-ui/components'
101
- import { Badge } from '@torch-ui/components'
107
+ import { DataTable } from "@/components/DataTable";
108
+ import { Badge } from "@/components/Badge";
102
109
  import { ColumnDef } from '@tanstack/react-table'
103
110
 
104
111
  interface Task {
@@ -124,7 +131,7 @@ const columns: ColumnDef<Task>[] = [
124
131
  completed: 'green',
125
132
  }[status]
126
133
 
127
- return <Badge variant={variant} label={status} />
134
+ return <Badge color={variant} label={status} />
128
135
  },
129
136
  },
130
137
  {
@@ -147,7 +154,7 @@ function TaskTable() {
147
154
  ### With Sortable Columns
148
155
 
149
156
  ```typescript
150
- import { DataTable } from '@torch-ui/components'
157
+ import { DataTable } from "@/components/DataTable";
151
158
  import { ColumnDef } from '@tanstack/react-table'
152
159
 
153
160
  interface Product {
@@ -190,8 +197,8 @@ function ProductTable() {
190
197
  ### With Actions Column
191
198
 
192
199
  ```typescript
193
- import { DataTable } from '@torch-ui/components'
194
- import { ActionButton } from '@torch-ui/components'
200
+ import { DataTable } from "@/components/DataTable";
201
+ import { ActionButton } from "@/components/ActionButton";
195
202
  import { ColumnDef } from '@tanstack/react-table'
196
203
 
197
204
  interface User {
@@ -246,7 +253,7 @@ function UserTable() {
246
253
  ### With Selection Handling
247
254
 
248
255
  ```typescript
249
- import { DataTable } from '@torch-ui/components'
256
+ import { DataTable } from "@/components/DataTable";
250
257
  import { useState } from 'react'
251
258
 
252
259
  function SelectableTable() {
@@ -280,7 +287,7 @@ function SelectableTable() {
280
287
  ### Dark Theme
281
288
 
282
289
  ```typescript
283
- import { DataTable } from '@torch-ui/components'
290
+ import { DataTable } from "@/components/DataTable";
284
291
 
285
292
  function DarkTable() {
286
293
  const columns = [
@@ -300,7 +307,7 @@ function DarkTable() {
300
307
  ### Complex Data with Nested Objects
301
308
 
302
309
  ```typescript
303
- import { DataTable } from '@torch-ui/components'
310
+ import { DataTable } from "@/components/DataTable";
304
311
  import { ColumnDef } from '@tanstack/react-table'
305
312
 
306
313
  interface Order {
@@ -363,7 +370,7 @@ function OrderTable() {
363
370
  ### Empty State
364
371
 
365
372
  ```typescript
366
- import { DataTable } from '@torch-ui/components'
373
+ import { DataTable } from "@/components/DataTable";
367
374
 
368
375
  function EmptyTable() {
369
376
  const columns = [
@@ -468,7 +475,7 @@ DataTable<TData extends { id: string | number }, TValue>
468
475
  ### Controlled Row Selection
469
476
 
470
477
  ```typescript
471
- import { DataTable } from '@torch-ui/components'
478
+ import { DataTable } from "@/components/DataTable";
472
479
  import { useState } from 'react'
473
480
 
474
481
  function ControlledSelectionTable() {
@@ -495,8 +502,8 @@ function ControlledSelectionTable() {
495
502
  ### With Search/Filter
496
503
 
497
504
  ```typescript
498
- import { DataTable } from '@torch-ui/components'
499
- import { Input } from '@torch-ui/components'
505
+ import { DataTable } from "@/components/DataTable";
506
+ import { Input } from "@/components/Input";
500
507
  import { useState, useMemo } from 'react'
501
508
 
502
509
  function SearchableTable() {
@@ -536,7 +543,7 @@ function SearchableTable() {
536
543
  ### Persisting Row Order
537
544
 
538
545
  ```typescript
539
- import { DataTable } from '@torch-ui/components'
546
+ import { DataTable } from "@/components/DataTable";
540
547
  import { useState, useEffect } from 'react'
541
548
 
542
549
  function PersistentOrderTable() {
@@ -569,16 +576,21 @@ function PersistentOrderTable() {
569
576
 
570
577
  ## Features
571
578
 
572
- ### Built-in Capabilities
579
+ The component's props are `columns`, `data`, `theme`, and `onRowReorder` — see the API
580
+ Reference. Its built-in, rendered capabilities are:
581
+
582
+ - **Row Selection**: Multi-row selection checkboxes (select all / select individual) are
583
+ rendered and tracked internally. Selection state persists through reordering. Note: the
584
+ component does not expose a selection-change prop — selection is internal visual state.
585
+ - **Drag & Drop**: Reorder rows by dragging; `onRowReorder` returns the new data array
586
+ (keyboard drag supported via dnd-kit).
587
+ - **Column Sorting**: Click headers to sort ascending/descending.
588
+ - **Custom Cells**: Full control over cell rendering via each column's `cell`.
589
+ - **Type Safety**: Full TypeScript support with generics.
573
590
 
574
- - **Row Selection**: Multi-row selection with checkboxes (select all, select individual)
575
- - **Drag & Drop**: Reorder rows by dragging (maintains selection state)
576
- - **Column Sorting**: Click headers to sort ascending/descending
577
- - **Pagination**: Built-in pagination support (via TanStack Table)
578
- - **Filtering**: Client-side filtering capabilities
579
- - **Custom Cells**: Full control over cell rendering
580
- - **Keyboard Navigation**: Drag-and-drop with keyboard support
581
- - **Type Safety**: Full TypeScript support with generics
591
+ > The TanStack pagination and filtering **row models** are enabled internally, but the
592
+ > component renders **no** pagination or filter controls and exposes no page/filter props.
593
+ > To paginate or filter, wrap the data yourself or compose your own controls around it.
582
594
 
583
595
  ### Drag-and-Drop Behavior
584
596
 
@@ -601,7 +613,7 @@ function PersistentOrderTable() {
601
613
 
602
614
  ```typescript
603
615
  import { render, screen, fireEvent } from '@testing-library/react'
604
- import { DataTable } from '@torch-ui/components'
616
+ import { DataTable } from "@/components/DataTable";
605
617
  import { ColumnDef } from '@tanstack/react-table'
606
618
 
607
619
  const mockData = [
@@ -651,7 +663,7 @@ describe('DataTable', () => {
651
663
 
652
664
  ```typescript
653
665
  import { render, screen, fireEvent } from '@testing-library/react'
654
- import { DataTable } from '@torch-ui/components'
666
+ import { DataTable } from "@/components/DataTable";
655
667
 
656
668
  test('row selection works correctly', () => {
657
669
  const columns = [{ accessorKey: 'name', header: 'Name' }]
@@ -767,7 +779,7 @@ const columns: ColumnDef<User>[] = [
767
779
 
768
780
  ```diff
769
781
  - import { DataGrid } from '@mui/x-data-grid'
770
- + import { DataTable } from '@torch-ui/components'
782
+ + import { DataTable } from "@/components/DataTable";
771
783
  + import { ColumnDef } from '@tanstack/react-table'
772
784
 
773
785
  - <DataGrid rows={data} columns={columns} />
@@ -778,7 +790,7 @@ const columns: ColumnDef<User>[] = [
778
790
 
779
791
  ```diff
780
792
  - import { useTable } from 'react-table'
781
- + import { DataTable } from '@torch-ui/components'
793
+ + import { DataTable } from "@/components/DataTable";
782
794
  + import { ColumnDef } from '@tanstack/react-table'
783
795
 
784
796
  - const { getTableProps, rows } = useTable({ columns, data })
@@ -13,16 +13,22 @@ keywords: [data-views, config panel, config-panel, settings panel, saved view, s
13
13
 
14
14
  ## Installation
15
15
 
16
- Part of `torch-glare`. Ships with the `DataViews` folder when you run
17
- `npx torch-glare add DataViews` no separate install. It depends on the
18
- shared `Radio`, `Switch`, `Label`, `FilterPanel`, and a colocated internal
19
- `PanelControls` file (see "Internal: PanelControls" below).
16
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
17
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
18
+
19
+ ```bash
20
+ npx torch-glare@latest init
21
+ npx torch-glare@latest add DataViewsConfigPanel
22
+ ```
23
+
24
+ `add` also copies any components, hooks, and utilities that `DataViewsConfigPanel` depends on.
20
25
 
21
26
  ## Import
22
27
 
28
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
29
+
23
30
  ```tsx
24
- import { DataViewsConfigPanel } from "torch-glare"
25
- import type { DataViewsConfigPanelProps } from "torch-glare"
31
+ import { DataViewsConfigPanel } from "@/components/DataViewsConfigPanel";
26
32
  ```
27
33
 
28
34
  ## When to use it directly
@@ -36,11 +42,9 @@ import type { DataViewsConfigPanelProps } from "torch-glare"
36
42
  ## Standalone Example (composable mode)
37
43
 
38
44
  ```tsx
39
- import {
40
- DataViewsConfigPanel,
41
- TableView,
42
- useDataViewsState,
43
- } from "torch-glare"
45
+ import { DataViewsConfigPanel } from "@/components/DataViewsConfigPanel";
46
+ import { TableView } from "@/components/TableView";
47
+ import { useDataViewsState } from "@/hooks/useDataViewsState";
44
48
  import { useState } from "react"
45
49
 
46
50
  function CustomScreen({ data, fields }) {
@@ -11,28 +11,22 @@ keywords: [data-views, layout, table, kanban, inbox, tree, multi-view, filter, s
11
11
 
12
12
  ## Installation
13
13
 
14
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
15
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
16
+
14
17
  ```bash
15
- npx torch-glare@latest add DataViews
18
+ npx torch-glare@latest init
19
+ npx torch-glare@latest add DataViewsLayout
16
20
  ```
17
21
 
18
- The CLI transitively installs everything DataViews imports the sibling views,
19
- the `DataViewCard` layout, the `useDataViewsState` hook, the `dataViews` utils,
20
- and the `TreeFolder` component — plus the 3rd-party deps it uses
21
- (`@radix-ui/react-slider`, `react-day-picker`, `lucide-react`, `vaul`).
22
-
23
- > **Badge version:** DataViews uses the current Badge API
24
- > (`color` / `badgeStyle` / `showIcon`). If your project vendored an older
25
- > `Badge.tsx` (with `variant` / `isSelected`), refresh it with
26
- > `npx torch-glare@latest add Badge --force` and migrate call sites
27
- > (`variant=` → `color=`, `isSelected`+`onUnselect` → `isClosable`+`onClose`).
28
- > The Badge also needs `mapping-color-system-v4` tokens
29
- > (`--background-presentation-badge-{color}-{subtle|solid}`) in your CSS.
22
+ `add` also copies any components, hooks, and utilities that `DataViewsLayout` depends on.
30
23
 
31
24
  ## Import
32
25
 
26
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
27
+
33
28
  ```tsx
34
- import { DataViewsLayout } from "torch-glare"
35
- import type { FieldConfig, ViewVisibility } from "torch-glare"
29
+ import { DataViewsLayout } from "@/components/DataViewsLayout";
36
30
  ```
37
31
 
38
32
  ## Quick Examples
@@ -247,7 +241,10 @@ passes `savedViews` to `DataViewsLayout` expecting it to work.
247
241
  When you want a custom layout (e.g. Table on the left, Kanban on the right), bypass `DataViewsLayout` and compose the views directly.
248
242
 
249
243
  ```tsx
250
- import { TableView, KanbanView, FilterPanel, useDataViewsState } from "torch-glare"
244
+ import { FilterPanel } from "@/components/FilterPanel";
245
+ import { KanbanView } from "@/components/KanbanView";
246
+ import { TableView } from "@/components/TableView";
247
+ import { useDataViewsState } from "@/hooks/useDataViewsState";
251
248
 
252
249
  function CustomScreen({ data, fields }: Props) {
253
250
  const state = useDataViewsState({ data, fields })
@@ -11,15 +11,22 @@ keywords: [date-picker, calendar, time, datetime, input, popover]
11
11
 
12
12
  ## Installation
13
13
 
14
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
15
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
16
+
14
17
  ```bash
15
- npm install react-day-picker date-fns torch-react-mobile-picker
18
+ npx torch-glare@latest init
19
+ npx torch-glare@latest add DatePicker
16
20
  ```
17
21
 
22
+ `add` also copies any components, hooks, and utilities that `DatePicker` depends on.
23
+
18
24
  ## Import
19
25
 
20
- ```typescript
21
- import { DatePicker } from '@torch-ui/components'
22
- import type { DatePickerProps } from '@torch-ui/components'
26
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
27
+
28
+ ```tsx
29
+ import { DatePicker } from "@/components/DatePicker";
23
30
  ```
24
31
 
25
32
  ## Quick Examples
@@ -27,7 +34,7 @@ import type { DatePickerProps } from '@torch-ui/components'
27
34
  ### Basic Usage
28
35
 
29
36
  ```typescript
30
- import { DatePicker } from '@torch-ui/components'
37
+ import { DatePicker } from "@/components/DatePicker";
31
38
  import { useState } from 'react'
32
39
 
33
40
  function Example() {
@@ -46,7 +53,7 @@ function Example() {
46
53
  ### With Time Picker
47
54
 
48
55
  ```typescript
49
- import { DatePicker } from '@torch-ui/components'
56
+ import { DatePicker } from "@/components/DatePicker";
50
57
  import { useState } from 'react'
51
58
 
52
59
  function DateTimePicker() {
@@ -66,7 +73,7 @@ function DateTimePicker() {
66
73
  ### Range Selection
67
74
 
68
75
  ```typescript
69
- import { DatePicker } from '@torch-ui/components'
76
+ import { DatePicker } from "@/components/DatePicker";
70
77
  import { useState } from 'react'
71
78
  import { DateRange } from 'react-day-picker'
72
79
 
@@ -91,7 +98,7 @@ function RangePicker() {
91
98
  ### Multiple Date Selection
92
99
 
93
100
  ```typescript
94
- import { DatePicker } from '@torch-ui/components'
101
+ import { DatePicker } from "@/components/DatePicker";
95
102
  import { useState } from 'react'
96
103
 
97
104
  function MultipleDates() {
@@ -111,7 +118,7 @@ function MultipleDates() {
111
118
  ### Custom Date Format
112
119
 
113
120
  ```typescript
114
- import { DatePicker } from '@torch-ui/components'
121
+ import { DatePicker } from "@/components/DatePicker";
115
122
 
116
123
  function CustomFormat() {
117
124
  const [date, setDate] = useState<Date>(new Date())
@@ -129,8 +136,8 @@ function CustomFormat() {
129
136
  ### Custom Trigger Element
130
137
 
131
138
  ```typescript
132
- import { DatePicker } from '@torch-ui/components'
133
- import { Button } from '@torch-ui/components'
139
+ import { DatePicker } from "@/components/DatePicker";
140
+ import { Button } from "@/components/Button";
134
141
 
135
142
  function CustomTrigger() {
136
143
  const [date, setDate] = useState<Date>(new Date())
@@ -140,7 +147,7 @@ function CustomTrigger() {
140
147
  value={date}
141
148
  onChange={(e) => setDate(e.target.value)}
142
149
  >
143
- <Button variant="SecondaryStyle">
150
+ <Button variant="BluSecStyle">
144
151
  <i className="ri-calendar-line" />
145
152
  Select Date
146
153
  </Button>
@@ -152,8 +159,8 @@ function CustomTrigger() {
152
159
  ### With Controlled Input
153
160
 
154
161
  ```typescript
155
- import { DatePicker } from '@torch-ui/components'
156
- import { InputField } from '@torch-ui/components'
162
+ import { DatePicker } from "@/components/DatePicker";
163
+ import { InputField } from "@/components/InputField";
157
164
  import { useState } from 'react'
158
165
 
159
166
  function ControlledInput() {
@@ -176,7 +183,7 @@ function ControlledInput() {
176
183
  ### Date Restrictions
177
184
 
178
185
  ```typescript
179
- import { DatePicker } from '@torch-ui/components'
186
+ import { DatePicker } from "@/components/DatePicker";
180
187
 
181
188
  function RestrictedDates() {
182
189
  const [date, setDate] = useState<Date>()
@@ -201,7 +208,7 @@ function RestrictedDates() {
201
208
  ### Booking System
202
209
 
203
210
  ```typescript
204
- import { DatePicker } from '@torch-ui/components'
211
+ import { DatePicker } from "@/components/DatePicker";
205
212
  import { useState } from 'react'
206
213
  import { DateRange } from 'react-day-picker'
207
214
 
@@ -243,7 +250,7 @@ function BookingPicker() {
243
250
  ### Deadline Picker with Time
244
251
 
245
252
  ```typescript
246
- import { DatePicker } from '@torch-ui/components'
253
+ import { DatePicker } from "@/components/DatePicker";
247
254
  import { useState } from 'react'
248
255
 
249
256
  function DeadlinePicker() {
@@ -356,7 +363,7 @@ type RangeDatePicker = DatePickerProps & {
356
363
  ### Event Scheduler
357
364
 
358
365
  ```typescript
359
- import { DatePicker } from '@torch-ui/components'
366
+ import { DatePicker } from "@/components/DatePicker";
360
367
  import { useState } from 'react'
361
368
 
362
369
  function EventScheduler() {
@@ -399,7 +406,7 @@ function EventScheduler() {
399
406
  ### Birthday Picker
400
407
 
401
408
  ```typescript
402
- import { DatePicker } from '@torch-ui/components'
409
+ import { DatePicker } from "@/components/DatePicker";
403
410
  import { useState } from 'react'
404
411
 
405
412
  function BirthdayPicker() {
@@ -431,7 +438,7 @@ function BirthdayPicker() {
431
438
  ### Work Schedule Picker
432
439
 
433
440
  ```typescript
434
- import { DatePicker } from '@torch-ui/components'
441
+ import { DatePicker } from "@/components/DatePicker";
435
442
  import { useState } from 'react'
436
443
 
437
444
  function WorkSchedule() {
@@ -462,7 +469,7 @@ function WorkSchedule() {
462
469
 
463
470
  ```typescript
464
471
  import { render, screen, fireEvent, waitFor } from '@testing-library/react'
465
- import { DatePicker } from '@torch-ui/components'
472
+ import { DatePicker } from "@/components/DatePicker";
466
473
  import userEvent from '@testing-library/user-event'
467
474
 
468
475
  describe('DatePicker', () => {
@@ -753,7 +760,7 @@ Reverse-engineer the implementation from the call sites in `DatePicker.tsx` unti
753
760
  ### With Form Libraries
754
761
 
755
762
  ```typescript
756
- import { DatePicker } from '@torch-ui/components'
763
+ import { DatePicker } from "@/components/DatePicker";
757
764
  import { useForm, Controller } from 'react-hook-form'
758
765
 
759
766
  function FormExample() {
@@ -788,7 +795,7 @@ function FormExample() {
788
795
  ### With State Management
789
796
 
790
797
  ```typescript
791
- import { DatePicker } from '@torch-ui/components'
798
+ import { DatePicker } from "@/components/DatePicker";
792
799
  import { useStore } from './store'
793
800
 
794
801
  function DatePickerWithStore() {