torch-glare 2.4.0 → 2.4.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 (264) 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 +20 -19
  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 +2 -13
  13. package/apps/lib/components/ChartBlockTool.ts +17 -52
  14. package/apps/lib/components/Checkbox.tsx +9 -16
  15. package/apps/lib/components/ContextMenu.tsx +97 -96
  16. package/apps/lib/components/CountBadge.tsx +4 -6
  17. package/apps/lib/components/DataTable.tsx +196 -216
  18. package/apps/lib/components/DataViews/DataViewRadio.tsx +1 -6
  19. package/apps/lib/components/DataViews/DataViewsConfigPanel.tsx +13 -47
  20. package/apps/lib/components/DataViews/DataViewsHeader.tsx +1 -3
  21. package/apps/lib/components/DataViews/DataViewsLayout.tsx +5 -12
  22. package/apps/lib/components/DataViews/FilterPanel.tsx +155 -149
  23. package/apps/lib/components/DataViews/HeaderSearch.tsx +1 -5
  24. package/apps/lib/components/DataViews/InboxView.tsx +22 -68
  25. package/apps/lib/components/DataViews/InboxViewCard.tsx +68 -77
  26. package/apps/lib/components/DataViews/KanbanView.tsx +8 -25
  27. package/apps/lib/components/DataViews/PanelControls.tsx +3 -13
  28. package/apps/lib/components/DataViews/SettingsPanel.tsx +83 -89
  29. package/apps/lib/components/DataViews/TableView.tsx +8 -28
  30. package/apps/lib/components/DataViews/TreeView.tsx +12 -40
  31. package/apps/lib/components/DataViews/badgeAdapter.ts +32 -28
  32. package/apps/lib/components/DataViews/fieldRenderers.tsx +106 -141
  33. package/apps/lib/components/DataViews/filters/DatePickerRangeFilter.tsx +30 -23
  34. package/apps/lib/components/DataViews/filters/DateRangePopover.tsx +39 -32
  35. package/apps/lib/components/DataViews/filters/PresetChips.tsx +15 -15
  36. package/apps/lib/components/DataViews/filters/RangeSliderWithInputs.tsx +69 -58
  37. package/apps/lib/components/DataViews/index.ts +26 -26
  38. package/apps/lib/components/DataViews/tree/TreeDrawer.tsx +12 -16
  39. package/apps/lib/components/DataViews/tree/TreeSidebar.tsx +28 -31
  40. package/apps/lib/components/DataViews/types.ts +104 -115
  41. package/apps/lib/components/DatePicker.tsx +198 -196
  42. package/apps/lib/components/Dialog.tsx +92 -105
  43. package/apps/lib/components/Divider.tsx +21 -24
  44. package/apps/lib/components/Drawer.tsx +79 -139
  45. package/apps/lib/components/DropdownMenu.tsx +131 -171
  46. package/apps/lib/components/FieldHint.tsx +4 -11
  47. package/apps/lib/components/Form.tsx +146 -155
  48. package/apps/lib/components/FormStepper.tsx +9 -39
  49. package/apps/lib/components/HeaderBar.tsx +1 -9
  50. package/apps/lib/components/ImageAttachment.tsx +111 -73
  51. package/apps/lib/components/InnerLabelField.tsx +20 -16
  52. package/apps/lib/components/Input.tsx +171 -172
  53. package/apps/lib/components/InputField.tsx +44 -45
  54. package/apps/lib/components/InputOTP.tsx +68 -69
  55. package/apps/lib/components/Label.tsx +31 -35
  56. package/apps/lib/components/LabelField.tsx +4 -5
  57. package/apps/lib/components/LabeledCheckBox.tsx +8 -12
  58. package/apps/lib/components/LabeledRadio.tsx +7 -5
  59. package/apps/lib/components/LinkButton.tsx +2 -9
  60. package/apps/lib/components/LoginButton.tsx +4 -9
  61. package/apps/lib/components/PasswordLevel.tsx +5 -5
  62. package/apps/lib/components/Popover.tsx +15 -33
  63. package/apps/lib/components/ProfileMenu.tsx +67 -72
  64. package/apps/lib/components/Radio.tsx +1 -5
  65. package/apps/lib/components/RadioCard.tsx +9 -28
  66. package/apps/lib/components/ScrollArea.tsx +45 -43
  67. package/apps/lib/components/SearchField.tsx +49 -39
  68. package/apps/lib/components/SearchableSelect.tsx +8 -14
  69. package/apps/lib/components/SearchableTable.tsx +108 -118
  70. package/apps/lib/components/SearchableTree.tsx +469 -0
  71. package/apps/lib/components/SearchableTreeDialog.tsx +493 -0
  72. package/apps/lib/components/SectionBlock.tsx +4 -16
  73. package/apps/lib/components/Select.tsx +53 -80
  74. package/apps/lib/components/SimpleSelect.tsx +196 -187
  75. package/apps/lib/components/Skeleton.tsx +9 -12
  76. package/apps/lib/components/SlideDatePicker.tsx +215 -166
  77. package/apps/lib/components/SpinLoading.tsx +33 -49
  78. package/apps/lib/components/Stepper.tsx +13 -56
  79. package/apps/lib/components/Switch.tsx +8 -10
  80. package/apps/lib/components/TabFormItem.tsx +3 -12
  81. package/apps/lib/components/TabSwitch.tsx +7 -34
  82. package/apps/lib/components/Table.tsx +60 -75
  83. package/apps/lib/components/TableDnDWrapper.ts +15 -48
  84. package/apps/lib/components/TextEditor.tsx +93 -104
  85. package/apps/lib/components/Textarea.tsx +8 -12
  86. package/apps/lib/components/Timeline.tsx +21 -41
  87. package/apps/lib/components/Toast.tsx +83 -83
  88. package/apps/lib/components/Toggle.tsx +112 -114
  89. package/apps/lib/components/ToggleButton.tsx +1 -1
  90. package/apps/lib/components/Tooltip.tsx +24 -19
  91. package/apps/lib/components/TransparentLabel.tsx +61 -62
  92. package/apps/lib/components/TreeDropDown.tsx +86 -52
  93. package/apps/lib/components/TreeFolder/TreeFolder.tsx +15 -48
  94. package/apps/lib/components/TreeFolder/TreeFolderBreadcrumb.tsx +16 -21
  95. package/apps/lib/components/TreeFolder/TreeFolderRow.tsx +9 -20
  96. package/apps/lib/components/TreeFolder/TreeFolderStyles.tsx +3 -3
  97. package/apps/lib/components/TreeFolder/icons.tsx +14 -17
  98. package/apps/lib/components/TreeFolder/index.ts +15 -8
  99. package/apps/lib/components/TreeFolder/treeFolderUtils.ts +47 -52
  100. package/apps/lib/components/TreeFolder/types.ts +32 -32
  101. package/apps/lib/components/TreeFolder/useTreeFolderDnD.ts +117 -123
  102. package/apps/lib/hooks/useActiveTreeItem.ts +52 -55
  103. package/apps/lib/hooks/useClickOutside.ts +21 -20
  104. package/apps/lib/hooks/useDataViewsState.ts +86 -80
  105. package/apps/lib/hooks/useIsMobile.ts +12 -12
  106. package/apps/lib/hooks/useResize.ts +54 -65
  107. package/apps/lib/hooks/useTagSelection.ts +201 -201
  108. package/apps/lib/layouts/CNLayout.tsx +181 -140
  109. package/apps/lib/layouts/DataViewCard.tsx +4 -18
  110. package/apps/lib/layouts/FieldSection.tsx +2 -6
  111. package/apps/lib/layouts/TreeSubLayout.tsx +24 -38
  112. package/apps/lib/providers/ThemeProvider.tsx +8 -23
  113. package/apps/lib/registry.json +1004 -0
  114. package/apps/lib/tsconfig.json +9 -0
  115. package/apps/lib/utils/cn.ts +1 -1
  116. package/apps/lib/utils/dataViews/columnUtils.ts +46 -44
  117. package/apps/lib/utils/dataViews/fieldUtils.ts +70 -71
  118. package/apps/lib/utils/dataViews/nestedDataUtils.tsx +129 -122
  119. package/apps/lib/utils/dataViews/pathUtils.ts +74 -67
  120. package/apps/lib/utils/dataViews/rangeUtils.ts +121 -112
  121. package/apps/lib/utils/dataViews/treeUtils.ts +204 -211
  122. package/apps/lib/utils/dateFormat.ts +64 -54
  123. package/apps/lib/utils/markdownParser.ts +2 -7
  124. package/apps/lib/utils/resize.ts +21 -25
  125. package/apps/lib/utils/types.ts +13 -13
  126. package/dist/bin/index.js +8 -2
  127. package/dist/bin/index.js.map +1 -1
  128. package/dist/src/shared/getAvailableFiles.d.ts.map +1 -1
  129. package/dist/src/shared/getAvailableFiles.js +6 -1
  130. package/dist/src/shared/getAvailableFiles.js.map +1 -1
  131. package/dist/src/shared/loadRegistry.d.ts +7 -0
  132. package/dist/src/shared/loadRegistry.d.ts.map +1 -0
  133. package/dist/src/shared/loadRegistry.js +31 -0
  134. package/dist/src/shared/loadRegistry.js.map +1 -0
  135. package/dist/src/shared/resolveInstallPlan.d.ts +12 -0
  136. package/dist/src/shared/resolveInstallPlan.d.ts.map +1 -0
  137. package/dist/src/shared/resolveInstallPlan.js +39 -0
  138. package/dist/src/shared/resolveInstallPlan.js.map +1 -0
  139. package/dist/src/types/main.d.ts +24 -0
  140. package/dist/src/types/main.d.ts.map +1 -1
  141. package/docs/README.md +10 -2
  142. package/docs/components/action-button.md +30 -24
  143. package/docs/components/actions-group.md +26 -20
  144. package/docs/components/alert-dialog.md +45 -45
  145. package/docs/components/avatar.md +6 -2
  146. package/docs/components/badge-field.md +6 -2
  147. package/docs/components/badge.md +7 -1
  148. package/docs/components/breadcrumb.md +15 -40
  149. package/docs/components/button-group.md +13 -10
  150. package/docs/components/button.md +58 -33
  151. package/docs/components/calendar.md +26 -19
  152. package/docs/components/card.md +19 -16
  153. package/docs/components/chart-block-tool.md +128 -0
  154. package/docs/components/checkbox.md +16 -8
  155. package/docs/components/cn-layout.md +7 -1
  156. package/docs/components/context-menu.md +18 -25
  157. package/docs/components/count-badge.md +7 -1
  158. package/docs/components/data-table.md +45 -33
  159. package/docs/components/data-views-config-panel.md +15 -11
  160. package/docs/components/data-views-layout.md +13 -16
  161. package/docs/components/date-picker.md +30 -23
  162. package/docs/components/dialog.md +43 -42
  163. package/docs/components/divider.md +10 -4
  164. package/docs/components/drawer.md +8 -33
  165. package/docs/components/dropdown-menu.md +25 -34
  166. package/docs/components/field-hint.md +37 -25
  167. package/docs/components/field-section.md +9 -3
  168. package/docs/components/form-stepper.md +6 -0
  169. package/docs/components/form.md +17 -20
  170. package/docs/components/header-bar.md +6 -0
  171. package/docs/components/image-attachment.md +33 -41
  172. package/docs/components/inbox-view.md +16 -5
  173. package/docs/components/inner-label-field.md +34 -24
  174. package/docs/components/input-field.md +18 -10
  175. package/docs/components/input-otp.md +14 -11
  176. package/docs/components/input.md +22 -16
  177. package/docs/components/kanban-view.md +15 -5
  178. package/docs/components/label-field.md +32 -22
  179. package/docs/components/label.md +43 -32
  180. package/docs/components/labeled-check-box.md +16 -8
  181. package/docs/components/labeled-radio.md +18 -11
  182. package/docs/components/link-button.md +7 -1
  183. package/docs/components/login-button.md +8 -2
  184. package/docs/components/password-level.md +37 -24
  185. package/docs/components/popover.md +26 -23
  186. package/docs/components/profile-menu.md +38 -27
  187. package/docs/components/radio-card.md +16 -9
  188. package/docs/components/radio.md +16 -8
  189. package/docs/components/scroll-area.md +6 -2
  190. package/docs/components/search-field.md +14 -6
  191. package/docs/components/searchable-select.md +19 -14
  192. package/docs/components/searchable-table.md +18 -13
  193. package/docs/components/searchable-tree-dialog.md +190 -0
  194. package/docs/components/searchable-tree.md +200 -0
  195. package/docs/components/section-block.md +12 -4
  196. package/docs/components/select.md +23 -18
  197. package/docs/components/simple-select.md +14 -10
  198. package/docs/components/skeleton.md +43 -33
  199. package/docs/components/slide-date-picker.md +37 -29
  200. package/docs/components/spin-loading.md +32 -23
  201. package/docs/components/stepper.md +6 -0
  202. package/docs/components/switch.md +14 -6
  203. package/docs/components/tab-form-item.md +7 -1
  204. package/docs/components/tab-switch.md +13 -6
  205. package/docs/components/table-dnd-wrapper.md +105 -0
  206. package/docs/components/table-view.md +15 -5
  207. package/docs/components/table.md +28 -28
  208. package/docs/components/text-editor.md +19 -13
  209. package/docs/components/textarea.md +15 -7
  210. package/docs/components/timeline.md +6 -0
  211. package/docs/components/toast.md +35 -26
  212. package/docs/components/toggle-button.md +24 -21
  213. package/docs/components/toggle.md +23 -15
  214. package/docs/components/tooltip.md +42 -30
  215. package/docs/components/transparent-label.md +29 -20
  216. package/docs/components/tree-drop-down.md +31 -23
  217. package/docs/components/tree-sub-layout.md +6 -2
  218. package/docs/components/tree-view.md +16 -5
  219. package/docs/explanation/architecture.md +54 -0
  220. package/docs/explanation/design-system.md +52 -0
  221. package/docs/how-to/data-views-from-backend-response.md +6 -4
  222. package/docs/how-to/guides.md +24 -18
  223. package/docs/migration/changelog.md +38 -0
  224. package/docs/reference/cli.md +87 -0
  225. package/docs/reference/components.md +11 -12
  226. package/docs/reference/hooks.md +8 -8
  227. package/docs/reference/providers.md +22 -22
  228. package/docs/reference/tailwind-plugins.md +2 -2
  229. package/docs/reference/theme.md +85 -0
  230. package/docs/reference/types.md +4 -4
  231. package/docs/reference/utilities.md +19 -26
  232. package/docs/tutorials/building-first-form.md +20 -13
  233. package/docs/tutorials/component-composition.md +34 -50
  234. package/docs/tutorials/getting-started.md +2 -2
  235. package/docs/tutorials/theming-basics.md +13 -10
  236. package/package.json +31 -3
  237. package/dist/src/commands/block.d.ts +0 -5
  238. package/dist/src/commands/block.d.ts.map +0 -1
  239. package/dist/src/commands/block.js +0 -255
  240. package/dist/src/commands/block.js.map +0 -1
  241. package/dist/src/shared/configureFonts.d.ts +0 -6
  242. package/dist/src/shared/configureFonts.d.ts.map +0 -1
  243. package/dist/src/shared/configureFonts.js +0 -106
  244. package/dist/src/shared/configureFonts.js.map +0 -1
  245. package/dist/src/shared/configureGlobalCss.d.ts +0 -6
  246. package/dist/src/shared/configureGlobalCss.d.ts.map +0 -1
  247. package/dist/src/shared/configureGlobalCss.js +0 -154
  248. package/dist/src/shared/configureGlobalCss.js.map +0 -1
  249. package/dist/src/shared/configureTailwind.d.ts +0 -7
  250. package/dist/src/shared/configureTailwind.d.ts.map +0 -1
  251. package/dist/src/shared/configureTailwind.js +0 -163
  252. package/dist/src/shared/configureTailwind.js.map +0 -1
  253. package/dist/src/shared/detectFramework.d.ts +0 -23
  254. package/dist/src/shared/detectFramework.d.ts.map +0 -1
  255. package/dist/src/shared/detectFramework.js +0 -119
  256. package/dist/src/shared/detectFramework.js.map +0 -1
  257. package/dist/src/shared/installBaseUtils.d.ts +0 -5
  258. package/dist/src/shared/installBaseUtils.d.ts.map +0 -1
  259. package/dist/src/shared/installBaseUtils.js +0 -79
  260. package/dist/src/shared/installBaseUtils.js.map +0 -1
  261. package/dist/src/shared/resolveAliases.d.ts +0 -24
  262. package/dist/src/shared/resolveAliases.d.ts.map +0 -1
  263. package/dist/src/shared/resolveAliases.js +0 -98
  264. package/dist/src/shared/resolveAliases.js.map +0 -1
@@ -11,13 +11,22 @@ keywords: [field-hint, alert, validation, message, form, feedback, inline]
11
11
 
12
12
  ## Installation
13
13
 
14
- No external dependencies required.
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
+
17
+ ```bash
18
+ npx torch-glare@latest init
19
+ npx torch-glare@latest add FieldHint
20
+ ```
21
+
22
+ `add` also copies any components, hooks, and utilities that `FieldHint` depends on.
15
23
 
16
24
  ## Import
17
25
 
18
- ```typescript
19
- import { FieldHint } from '@torch-ui/components'
20
- import type { FieldHintProps } 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 { FieldHint } from "@/components/FieldHint";
21
30
  ```
22
31
 
23
32
  ## Quick Examples
@@ -25,7 +34,7 @@ import type { FieldHintProps } from '@torch-ui/components'
25
34
  ### Basic Usage
26
35
 
27
36
  ```typescript
28
- import { FieldHint } from '@torch-ui/components'
37
+ import { FieldHint } from "@/components/FieldHint";
29
38
 
30
39
  function Example() {
31
40
  return (
@@ -40,7 +49,7 @@ function Example() {
40
49
  ### All States
41
50
 
42
51
  ```typescript
43
- import { FieldHint } from '@torch-ui/components'
52
+ import { FieldHint } from "@/components/FieldHint";
44
53
 
45
54
  function AllStates() {
46
55
  return (
@@ -72,8 +81,8 @@ function AllStates() {
72
81
  ### With Form Field
73
82
 
74
83
  ```typescript
75
- import { FieldHint } from '@torch-ui/components'
76
- import { InputField } from '@torch-ui/components'
84
+ import { FieldHint } from "@/components/FieldHint";
85
+ import { InputField } from "@/components/InputField";
77
86
  import { useState } from 'react'
78
87
 
79
88
  function WithFormField() {
@@ -115,7 +124,7 @@ function WithFormField() {
115
124
  ### Custom Icon
116
125
 
117
126
  ```typescript
118
- import { FieldHint } from '@torch-ui/components'
127
+ import { FieldHint } from "@/components/FieldHint";
119
128
 
120
129
  function CustomIcon() {
121
130
  return (
@@ -145,8 +154,9 @@ function CustomIcon() {
145
154
  ### Password Validation
146
155
 
147
156
  ```typescript
148
- import { FieldHint } from '@torch-ui/components'
149
- import { InputField, PasswordLevel } from '@torch-ui/components'
157
+ import { FieldHint } from "@/components/FieldHint";
158
+ import { InputField } from "@/components/InputField";
159
+ import { PasswordLevel } from "@/components/PasswordLevel";
150
160
  import { useState } from 'react'
151
161
 
152
162
  function PasswordValidation() {
@@ -199,8 +209,9 @@ function PasswordValidation() {
199
209
  ### Form Validation
200
210
 
201
211
  ```typescript
202
- import { FieldHint } from '@torch-ui/components'
203
- import { InputField, Button } from '@torch-ui/components'
212
+ import { FieldHint } from "@/components/FieldHint";
213
+ import { Button } from "@/components/Button";
214
+ import { InputField } from "@/components/InputField";
204
215
  import { useState } from 'react'
205
216
 
206
217
  function FormValidation() {
@@ -289,8 +300,9 @@ function FormValidation() {
289
300
  ### API Response Feedback
290
301
 
291
302
  ```typescript
292
- import { FieldHint } from '@torch-ui/components'
293
- import { InputField, Button } from '@torch-ui/components'
303
+ import { FieldHint } from "@/components/FieldHint";
304
+ import { Button } from "@/components/Button";
305
+ import { InputField } from "@/components/InputField";
294
306
  import { useState } from 'react'
295
307
 
296
308
  function APIFeedback() {
@@ -360,7 +372,7 @@ function APIFeedback() {
360
372
  ### File Upload Feedback
361
373
 
362
374
  ```typescript
363
- import { FieldHint } from '@torch-ui/components'
375
+ import { FieldHint } from "@/components/FieldHint";
364
376
  import { useState } from 'react'
365
377
 
366
378
  function FileUploadFeedback() {
@@ -429,7 +441,7 @@ function FileUploadFeedback() {
429
441
  ### Multi-line Message
430
442
 
431
443
  ```typescript
432
- import { FieldHint } from '@torch-ui/components'
444
+ import { FieldHint } from "@/components/FieldHint";
433
445
 
434
446
  function MultilineMessage() {
435
447
  return (
@@ -456,7 +468,7 @@ Please save your work before continuing.`}
456
468
  ### Dynamic Theme
457
469
 
458
470
  ```typescript
459
- import { FieldHint } from '@torch-ui/components'
471
+ import { FieldHint } from "@/components/FieldHint";
460
472
  import { useState } from 'react'
461
473
 
462
474
  function DynamicTheme() {
@@ -488,8 +500,8 @@ function DynamicTheme() {
488
500
  ### Conditional Rendering
489
501
 
490
502
  ```typescript
491
- import { FieldHint } from '@torch-ui/components'
492
- import { InputField } from '@torch-ui/components'
503
+ import { FieldHint } from "@/components/FieldHint";
504
+ import { InputField } from "@/components/InputField";
493
505
  import { useState } from 'react'
494
506
 
495
507
  function ConditionalHints() {
@@ -579,7 +591,7 @@ export const FieldHint: React.FC<FieldHintProps>
579
591
  ### Usage with Types
580
592
 
581
593
  ```typescript
582
- import { FieldHint } from '@torch-ui/components'
594
+ import { FieldHint } from "@/components/FieldHint";
583
595
  import { useState } from 'react'
584
596
 
585
597
  type ValidationState = {
@@ -607,7 +619,7 @@ function TypedExample() {
607
619
  ### Validation Hook
608
620
 
609
621
  ```typescript
610
- import { FieldHint } from '@torch-ui/components'
622
+ import { FieldHint } from "@/components/FieldHint";
611
623
  import { useState, useCallback } from 'react'
612
624
 
613
625
  function useFieldValidation<T>(
@@ -665,8 +677,8 @@ function ValidatedField() {
665
677
  ### Form Field Wrapper
666
678
 
667
679
  ```typescript
668
- import { FieldHint } from '@torch-ui/components'
669
- import { InputField } from '@torch-ui/components'
680
+ import { FieldHint } from "@/components/FieldHint";
681
+ import { InputField } from "@/components/InputField";
670
682
  import { ReactNode } from 'react'
671
683
 
672
684
  interface FieldWrapperProps {
@@ -711,7 +723,7 @@ function FieldWrapper({
711
723
 
712
724
  ```typescript
713
725
  import { render, screen } from '@testing-library/react'
714
- import { FieldHint } from '@torch-ui/components'
726
+ import { FieldHint } from "@/components/FieldHint";
715
727
 
716
728
  describe('FieldHint', () => {
717
729
  it('renders label text', () => {
@@ -12,10 +12,16 @@ A structured form section component that provides consistent layout for form fie
12
12
 
13
13
  ## Installation
14
14
 
15
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
16
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
17
+
15
18
  ```bash
16
- npx torch-cli add field-section
19
+ npx torch-glare@latest init
20
+ npx torch-glare@latest add FieldSection
17
21
  ```
18
22
 
23
+ `add` also copies any components, hooks, and utilities that `FieldSection` depends on.
24
+
19
25
  ## Imports
20
26
 
21
27
  ```typescript
@@ -346,7 +352,7 @@ export function ProfileSettingsForm() {
346
352
  >
347
353
  <div className="w-full flex items-center gap-4">
348
354
  <Avatar size="L" src="/default-avatar.jpg" />
349
- <Button variant="SecStyle" size="M">
355
+ <Button variant="BluSecStyle" size="M">
350
356
  Upload New Photo
351
357
  </Button>
352
358
  </div>
@@ -490,7 +496,7 @@ export function AccountSettings() {
490
496
  }
491
497
  >
492
498
  <div className="w-full space-y-2">
493
- <Button variant="DangerStyle" size="M">
499
+ <Button variant="RedSecStyle" size="M">
494
500
  Delete Account
495
501
  </Button>
496
502
  </div>
@@ -14,10 +14,16 @@ The component is composed of `FormStepper`, `FormStep`, `FormStepIndicator`, and
14
14
 
15
15
  ## Installation
16
16
 
17
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
18
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
19
+
17
20
  ```bash
21
+ npx torch-glare@latest init
18
22
  npx torch-glare@latest add FormStepper
19
23
  ```
20
24
 
25
+ `add` also copies any components, hooks, and utilities that `FormStepper` depends on.
26
+
21
27
  ## Imports
22
28
 
23
29
  ```typescript
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: Form
3
- version: 1.1.15
3
+ version: 2.4.0
4
4
  status: stable
5
5
  category: components/forms
6
6
  tags: [form, validation, react-hook-form, accessible, compound]
@@ -18,25 +18,22 @@ dependencies:
18
18
 
19
19
  ## Installation
20
20
 
21
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
22
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
23
+
21
24
  ```bash
22
- npm install torch-glare react-hook-form
25
+ npx torch-glare@latest init
26
+ npx torch-glare@latest add Form
23
27
  ```
24
28
 
29
+ `add` also copies any components, hooks, and utilities that `Form` depends on.
30
+
25
31
  ## Import
26
32
 
27
- ```typescript
28
- import {
29
- Form,
30
- FormField,
31
- FormItem,
32
- FormLabel,
33
- FormControl,
34
- FormDescription,
35
- FormMessage
36
- } from 'torch-glare/lib/components/Form'
33
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
37
34
 
38
- // Also import from react-hook-form
39
- import { useForm } from 'react-hook-form'
35
+ ```tsx
36
+ import { Form } from "@/components/Form";
40
37
  ```
41
38
 
42
39
  ## Quick Examples
@@ -52,9 +49,9 @@ import {
52
49
  FormLabel,
53
50
  FormControl,
54
51
  FormMessage
55
- } from 'torch-glare/lib/components/Form'
56
- import { Input } from 'torch-glare/lib/components/Input'
57
- import { Button } from 'torch-glare/lib/components/Button'
52
+ } from '@/components/Form'
53
+ import { Input } from '@/components/Input'
54
+ import { Button } from '@/components/Button'
58
55
 
59
56
  function BasicForm() {
60
57
  const form = useForm({
@@ -213,9 +210,9 @@ function ValidatedForm() {
213
210
  ### With Multiple Field Types
214
211
 
215
212
  ```typescript
216
- import { Select, SelectTrigger, SelectContent, SelectItem, SelectValue } from 'torch-glare/lib/components/Select'
217
- import { Checkbox } from 'torch-glare/lib/components/Checkbox'
218
- import { RadioGroup, RadioGroupItem } from 'torch-glare/lib/components/Radio'
213
+ import { Select, SelectTrigger, SelectContent, SelectItem, SelectValue } from '@/components/Select'
214
+ import { Checkbox } from '@/components/Checkbox'
215
+ import { RadioGroup, RadioGroupItem } from '@/components/Radio'
219
216
 
220
217
  function MultiFieldForm() {
221
218
  const form = useForm({
@@ -12,10 +12,16 @@ A presentational header chip used at the top of a form, page, or drawer to commu
12
12
 
13
13
  ## Installation
14
14
 
15
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
16
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
17
+
15
18
  ```bash
19
+ npx torch-glare@latest init
16
20
  npx torch-glare@latest add HeaderBar
17
21
  ```
18
22
 
23
+ `add` also copies any components, hooks, and utilities that `HeaderBar` depends on.
24
+
19
25
  ## Imports
20
26
 
21
27
  ```typescript
@@ -11,16 +11,22 @@ keywords: [image-attachment, file-upload, drag-drop, preview, modal, expandable]
11
11
 
12
12
  ## Installation
13
13
 
14
- No external dependencies required.
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
+
17
+ ```bash
18
+ npx torch-glare@latest init
19
+ npx torch-glare@latest add ImageAttachment
20
+ ```
21
+
22
+ `add` also copies any components, hooks, and utilities that `ImageAttachment` depends on.
15
23
 
16
24
  ## Import
17
25
 
18
- ```typescript
19
- import {
20
- ImageAttachment,
21
- ExpandableImage,
22
- AttachmentImagePreview
23
- } 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 { ImageAttachment } from "@/components/ImageAttachment";
24
30
  ```
25
31
 
26
32
  ## Component Overview
@@ -36,7 +42,7 @@ The ImageAttachment suite consists of three components:
36
42
  ### Basic File Upload
37
43
 
38
44
  ```typescript
39
- import { ImageAttachment } from '@torch-ui/components'
45
+ import { ImageAttachment } from "@/components/ImageAttachment";
40
46
  import { useState } from 'react'
41
47
 
42
48
  function Example() {
@@ -64,7 +70,7 @@ function Example() {
64
70
  ### With Preview
65
71
 
66
72
  ```typescript
67
- import { ImageAttachment, ExpandableImage } from '@torch-ui/components'
73
+ import { ImageAttachment, ExpandableImage } from "@/components/ImageAttachment";
68
74
  import { useState } from 'react'
69
75
 
70
76
  function WithPreview() {
@@ -106,12 +112,8 @@ function WithPreview() {
106
112
  ### Complete Upload Flow
107
113
 
108
114
  ```typescript
109
- import {
110
- ImageAttachment,
111
- ExpandableImage,
112
- AttachmentImagePreview
113
- } from '@torch-ui/components'
114
- import { Button } from '@torch-ui/components'
115
+ import { ImageAttachment, ExpandableImage, AttachmentImagePreview } from "@/components/ImageAttachment";
116
+ import { Button } from "@/components/Button";
115
117
  import { useState } from 'react'
116
118
 
117
119
  function CompleteFlow() {
@@ -160,7 +162,7 @@ function CompleteFlow() {
160
162
  header={file?.name || 'Image Preview'}
161
163
  >
162
164
  <Button onClick={handleUpload}>Upload</Button>
163
- <Button variant="SecondaryStyle" onClick={handleRemove}>
165
+ <Button variant="BluSecStyle" onClick={handleRemove}>
164
166
  Remove
165
167
  </Button>
166
168
  </AttachmentImagePreview>
@@ -174,7 +176,7 @@ function CompleteFlow() {
174
176
  ### With Drag and Drop (React Dropzone)
175
177
 
176
178
  ```typescript
177
- import { ImageAttachment, ExpandableImage } from '@torch-ui/components'
179
+ import { ImageAttachment, ExpandableImage } from "@/components/ImageAttachment";
178
180
  import { useDropzone } from 'react-dropzone'
179
181
  import { useState } from 'react'
180
182
 
@@ -221,7 +223,7 @@ function WithDropzone() {
221
223
  ### Multiple File Upload
222
224
 
223
225
  ```typescript
224
- import { ImageAttachment, ExpandableImage } from '@torch-ui/components'
226
+ import { ImageAttachment, ExpandableImage } from "@/components/ImageAttachment";
225
227
  import { useState } from 'react'
226
228
 
227
229
  function MultipleFiles() {
@@ -267,8 +269,9 @@ function MultipleFiles() {
267
269
  ### With Validation
268
270
 
269
271
  ```typescript
270
- import { ImageAttachment } from '@torch-ui/components'
271
- import { FieldHint, toast } from '@torch-ui/components'
272
+ import { ImageAttachment } from "@/components/ImageAttachment";
273
+ import { FieldHint } from "@/components/FieldHint";
274
+ import { toast } from "@/components/Toast";
272
275
  import { useState } from 'react'
273
276
 
274
277
  function WithValidation() {
@@ -327,12 +330,9 @@ function WithValidation() {
327
330
  ### Profile Picture Upload
328
331
 
329
332
  ```typescript
330
- import {
331
- ImageAttachment,
332
- ExpandableImage,
333
- AttachmentImagePreview
334
- } from '@torch-ui/components'
335
- import { Avatar, Button } from '@torch-ui/components'
333
+ import { ImageAttachment, ExpandableImage, AttachmentImagePreview } from "@/components/ImageAttachment";
334
+ import { Avatar } from "@/components/Avatar";
335
+ import { Button } from "@/components/Button";
336
336
  import { useState } from 'react'
337
337
 
338
338
  function ProfilePictureUpload() {
@@ -400,8 +400,8 @@ function ProfilePictureUpload() {
400
400
  ### Gallery Upload
401
401
 
402
402
  ```typescript
403
- import { ImageAttachment, ExpandableImage } from '@torch-ui/components'
404
- import { Button } from '@torch-ui/components'
403
+ import { ImageAttachment, ExpandableImage } from "@/components/ImageAttachment";
404
+ import { Button } from "@/components/Button";
405
405
  import { useState } from 'react'
406
406
 
407
407
  function GalleryUpload() {
@@ -448,7 +448,7 @@ function GalleryUpload() {
448
448
  <Button
449
449
  size="S"
450
450
  buttonType="icon"
451
- variant="SecondaryStyle"
451
+ variant="BluSecStyle"
452
452
  className="absolute top-1 right-1 opacity-0 group-hover:opacity-100"
453
453
  onClick={() => handleRemove(image.id)}
454
454
  >
@@ -545,11 +545,7 @@ export const AttachmentImagePreview: React.FC<AttachmentImagePreviewProps>
545
545
  ### Usage with Types
546
546
 
547
547
  ```typescript
548
- import {
549
- ImageAttachment,
550
- ExpandableImage,
551
- AttachmentImagePreview
552
- } from '@torch-ui/components'
548
+ import { ImageAttachment, ExpandableImage, AttachmentImagePreview } from "@/components/ImageAttachment";
553
549
  import { useRef, useState } from 'react'
554
550
 
555
551
  function TypedExample() {
@@ -585,7 +581,7 @@ function TypedExample() {
585
581
  ### Upload with Progress
586
582
 
587
583
  ```typescript
588
- import { ImageAttachment } from '@torch-ui/components'
584
+ import { ImageAttachment } from "@/components/ImageAttachment";
589
585
  import { useState } from 'react'
590
586
 
591
587
  function UploadWithProgress() {
@@ -638,7 +634,7 @@ function UploadWithProgress() {
638
634
  ### Image Cropper Integration
639
635
 
640
636
  ```typescript
641
- import { ImageAttachment, ExpandableImage } from '@torch-ui/components'
637
+ import { ImageAttachment, ExpandableImage } from "@/components/ImageAttachment";
642
638
  import { useState } from 'react'
643
639
  import Cropper from 'react-easy-crop'
644
640
 
@@ -688,11 +684,7 @@ function ImageCropper() {
688
684
 
689
685
  ```typescript
690
686
  import { render, screen, fireEvent, waitFor } from '@testing-library/react'
691
- import {
692
- ImageAttachment,
693
- ExpandableImage,
694
- AttachmentImagePreview
695
- } from '@torch-ui/components'
687
+ import { ImageAttachment, ExpandableImage, AttachmentImagePreview } from "@/components/ImageAttachment";
696
688
 
697
689
  describe('ImageAttachment', () => {
698
690
  it('renders labels', () => {
@@ -11,13 +11,22 @@ keywords: [data-views, inbox-view, inbox, list, master-detail, read, starred, pr
11
11
 
12
12
  ## Installation
13
13
 
14
- Part of `torch-glare`. Ships with the `DataViews` folder when you run `npx torch-glare add DataViews` — no separate install. It depends on the shared `Badge`, `Button`, `Avatar`, `Card`, `Divider`, and `TabFormItem` components plus `lucide-react`.
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
+
17
+ ```bash
18
+ npx torch-glare@latest init
19
+ npx torch-glare@latest add InboxView
20
+ ```
21
+
22
+ `add` also copies any components, hooks, and utilities that `InboxView` depends on.
15
23
 
16
24
  ## Import
17
25
 
26
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
27
+
18
28
  ```tsx
19
- import { InboxView, useDataViewsState } from "torch-glare"
20
- import type { InboxViewProps, InboxConfig, FieldConfig } from "torch-glare"
29
+ import { InboxView } from "@/components/InboxView";
21
30
  ```
22
31
 
23
32
  ## When to use it directly
@@ -42,8 +51,10 @@ Override any of them with `inboxConfig`.
42
51
  ## Composable Mode example
43
52
 
44
53
  ```tsx
45
- import { InboxView, useDataViewsState } from "torch-glare"
46
- import type { FieldConfig, InboxConfig } from "torch-glare"
54
+ import { InboxView } from "@/components/InboxView";
55
+ import { useDataViewsState } from "@/hooks/useDataViewsState";
56
+ import type { FieldConfig } from "@/components/FieldConfig";
57
+ import type { InboxConfig } from "@/components/InboxConfig";
47
58
 
48
59
  const messages = [
49
60
  { id: 1, subject: "Welcome", from: { name: "Ada" }, isRead: false, isStarred: true, sentAt: "2024-06-01" },