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: [inner-label, floating-label, input, animated, material-design]
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 InnerLabelField
20
+ ```
21
+
22
+ `add` also copies any components, hooks, and utilities that `InnerLabelField` depends on.
15
23
 
16
24
  ## Import
17
25
 
18
- ```typescript
19
- import { InnerLabelField } from '@torch-ui/components'
20
- import type { InnerLabelFieldProps } 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 { InnerLabelField } from "@/components/InnerLabelField";
21
30
  ```
22
31
 
23
32
  ## Quick Examples
@@ -25,7 +34,7 @@ import type { InnerLabelFieldProps } from '@torch-ui/components'
25
34
  ### Basic Usage
26
35
 
27
36
  ```typescript
28
- import { InnerLabelField } from '@torch-ui/components'
37
+ import { InnerLabelField } from "@/components/InnerLabelField";
29
38
  import { useState } from 'react'
30
39
 
31
40
  function Example() {
@@ -44,7 +53,7 @@ function Example() {
44
53
  ### With Required Indicator
45
54
 
46
55
  ```typescript
47
- import { InnerLabelField } from '@torch-ui/components'
56
+ import { InnerLabelField } from "@/components/InnerLabelField";
48
57
 
49
58
  function RequiredField() {
50
59
  return (
@@ -59,7 +68,7 @@ function RequiredField() {
59
68
  ### Different Input Types
60
69
 
61
70
  ```typescript
62
- import { InnerLabelField } from '@torch-ui/components'
71
+ import { InnerLabelField } from "@/components/InnerLabelField";
63
72
  import { useState } from 'react'
64
73
 
65
74
  function InputTypes() {
@@ -92,7 +101,7 @@ function InputTypes() {
92
101
  ### With Error Message
93
102
 
94
103
  ```typescript
95
- import { InnerLabelField } from '@torch-ui/components'
104
+ import { InnerLabelField } from "@/components/InnerLabelField";
96
105
  import { useState } from 'react'
97
106
 
98
107
  function WithValidation() {
@@ -123,8 +132,8 @@ function WithValidation() {
123
132
  ### With Action Button
124
133
 
125
134
  ```typescript
126
- import { InnerLabelField } from '@torch-ui/components'
127
- import { ActionButton } from '@torch-ui/components'
135
+ import { InnerLabelField } from "@/components/InnerLabelField";
136
+ import { ActionButton } from "@/components/ActionButton";
128
137
  import { useState } from 'react'
129
138
 
130
139
  function WithActionButton() {
@@ -150,8 +159,9 @@ function WithActionButton() {
150
159
  ### Login Form
151
160
 
152
161
  ```typescript
153
- import { InnerLabelField } from '@torch-ui/components'
154
- import { Button, FieldHint } from '@torch-ui/components'
162
+ import { InnerLabelField } from "@/components/InnerLabelField";
163
+ import { Button } from "@/components/Button";
164
+ import { FieldHint } from "@/components/FieldHint";
155
165
  import { useState } from 'react'
156
166
 
157
167
  function LoginForm() {
@@ -224,8 +234,8 @@ function LoginForm() {
224
234
  ### Contact Form
225
235
 
226
236
  ```typescript
227
- import { InnerLabelField } from '@torch-ui/components'
228
- import { Button } from '@torch-ui/components'
237
+ import { InnerLabelField } from "@/components/InnerLabelField";
238
+ import { Button } from "@/components/Button";
229
239
  import { useState } from 'react'
230
240
 
231
241
  function ContactForm() {
@@ -278,7 +288,7 @@ function ContactForm() {
278
288
  ### Different Sizes
279
289
 
280
290
  ```typescript
281
- import { InnerLabelField } from '@torch-ui/components'
291
+ import { InnerLabelField } from "@/components/InnerLabelField";
282
292
 
283
293
  function Sizes() {
284
294
  return (
@@ -300,7 +310,7 @@ function Sizes() {
300
310
  ### Style Variants
301
311
 
302
312
  ```typescript
303
- import { InnerLabelField } from '@torch-ui/components'
313
+ import { InnerLabelField } from "@/components/InnerLabelField";
304
314
 
305
315
  function Variants() {
306
316
  return (
@@ -325,7 +335,7 @@ function Variants() {
325
335
  ### With Popover Autocomplete
326
336
 
327
337
  ```typescript
328
- import { InnerLabelField } from '@torch-ui/components'
338
+ import { InnerLabelField } from "@/components/InnerLabelField";
329
339
  import { useState } from 'react'
330
340
 
331
341
  function AutocompleteField() {
@@ -370,7 +380,7 @@ function AutocompleteField() {
370
380
  ### Disabled State
371
381
 
372
382
  ```typescript
373
- import { InnerLabelField } from '@torch-ui/components'
383
+ import { InnerLabelField } from "@/components/InnerLabelField";
374
384
 
375
385
  function DisabledField() {
376
386
  return (
@@ -448,7 +458,7 @@ export const InnerLabelField: React.ForwardRefExoticComponent<
448
458
  ### Usage with Types
449
459
 
450
460
  ```typescript
451
- import { InnerLabelField } from '@torch-ui/components'
461
+ import { InnerLabelField } from "@/components/InnerLabelField";
452
462
  import { useRef, useState } from 'react'
453
463
 
454
464
  function TypedExample() {
@@ -478,8 +488,8 @@ function TypedExample() {
478
488
  ### Controlled Form with Validation
479
489
 
480
490
  ```typescript
481
- import { InnerLabelField } from '@torch-ui/components'
482
- import { Button } from '@torch-ui/components'
491
+ import { InnerLabelField } from "@/components/InnerLabelField";
492
+ import { Button } from "@/components/Button";
483
493
  import { useState } from 'react'
484
494
 
485
495
  function ValidatedForm() {
@@ -567,8 +577,8 @@ function ValidatedForm() {
567
577
  ### Real-time Search
568
578
 
569
579
  ```typescript
570
- import { InnerLabelField } from '@torch-ui/components'
571
- import { ActionButton } from '@torch-ui/components'
580
+ import { InnerLabelField } from "@/components/InnerLabelField";
581
+ import { ActionButton } from "@/components/ActionButton";
572
582
  import { useState, useEffect } from 'react'
573
583
 
574
584
  function SearchField() {
@@ -629,7 +639,7 @@ function SearchField() {
629
639
 
630
640
  ```typescript
631
641
  import { render, screen, fireEvent, waitFor } from '@testing-library/react'
632
- import { InnerLabelField } from '@torch-ui/components'
642
+ import { InnerLabelField } from "@/components/InnerLabelField";
633
643
  import userEvent from '@testing-library/user-event'
634
644
 
635
645
  describe('InnerLabelField', () => {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: InputField
3
- version: 1.1.15
3
+ version: 2.4.0
4
4
  status: stable
5
5
  category: components/forms
6
6
  tags: [form, input, field, popover, tooltip, compound, accessible]
@@ -19,14 +19,22 @@ dependencies:
19
19
 
20
20
  ## Installation
21
21
 
22
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
23
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
24
+
22
25
  ```bash
23
- npm install torch-glare
26
+ npx torch-glare@latest init
27
+ npx torch-glare@latest add InputField
24
28
  ```
25
29
 
30
+ `add` also copies any components, hooks, and utilities that `InputField` depends on.
31
+
26
32
  ## Import
27
33
 
28
- ```typescript
29
- import { InputField } from 'torch-glare/lib/components/InputField'
34
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
35
+
36
+ ```tsx
37
+ import { InputField } from "@/components/InputField";
30
38
  ```
31
39
 
32
40
  ## Quick Examples
@@ -34,7 +42,7 @@ import { InputField } from 'torch-glare/lib/components/InputField'
34
42
  ### Basic Usage
35
43
 
36
44
  ```typescript
37
- import { InputField } from 'torch-glare/lib/components/InputField'
45
+ import { InputField } from '@/components/InputField'
38
46
 
39
47
  function Example() {
40
48
  const [value, setValue] = useState('')
@@ -133,7 +141,7 @@ function AutocompleteField() {
133
141
  ### With Trailing Actions
134
142
 
135
143
  ```typescript
136
- import { Button } from 'torch-glare/lib/components/Button'
144
+ import { Button } from '@/components/Button'
137
145
 
138
146
  function PasswordField() {
139
147
  const [showPassword, setShowPassword] = useState(false)
@@ -324,7 +332,7 @@ function EmailField() {
324
332
  ### Date Input with Calendar
325
333
 
326
334
  ```typescript
327
- import { Calendar } from 'torch-glare/lib/components/Calendar'
335
+ import { Calendar } from '@/components/Calendar'
328
336
 
329
337
  function DateField() {
330
338
  const [date, setDate] = useState('')
@@ -362,7 +370,7 @@ function DateField() {
362
370
 
363
371
  ```typescript
364
372
  import { render, screen, fireEvent } from '@testing-library/react'
365
- import { InputField } from 'torch-glare/lib/components/InputField'
373
+ import { InputField } from '@/components/InputField'
366
374
 
367
375
  describe('InputField', () => {
368
376
  it('displays error message in tooltip', () => {
@@ -541,8 +549,8 @@ Wrap each labeled field in `flex flex-col gap-1.5` (not `space-y-1.5`) so labels
541
549
 
542
550
  ```diff
543
551
  // Migrating from Input to InputField
544
- - import { Input } from 'torch-glare/lib/components/Input'
545
- + import { InputField } from 'torch-glare/lib/components/InputField'
552
+ - import { Input } from '@/components/Input'
553
+ + import { InputField } from '@/components/InputField'
546
554
 
547
555
  - <Input.Group error={!!error}>
548
556
  - <Input.Icon>{icon}</Input.Icon>
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: InputOTP
3
- version: 1.1.15
3
+ version: 2.4.0
4
4
  status: stable
5
5
  category: components/forms
6
6
  tags: [form, otp, input, verification, authentication, accessible]
@@ -16,19 +16,22 @@ dependencies:
16
16
 
17
17
  ## Installation
18
18
 
19
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
20
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
21
+
19
22
  ```bash
20
- npm install torch-glare
23
+ npx torch-glare@latest init
24
+ npx torch-glare@latest add InputOTP
21
25
  ```
22
26
 
27
+ `add` also copies any components, hooks, and utilities that `InputOTP` depends on.
28
+
23
29
  ## Import
24
30
 
25
- ```typescript
26
- import {
27
- InputOTP,
28
- InputOTPGroup,
29
- InputOTPSlot,
30
- InputOTPSeparator
31
- } from 'torch-glare/lib/components/InputOTP'
31
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
32
+
33
+ ```tsx
34
+ import { InputOTP } from "@/components/InputOTP";
32
35
  ```
33
36
 
34
37
  ## Quick Examples
@@ -36,7 +39,7 @@ import {
36
39
  ### Basic 6-Digit OTP
37
40
 
38
41
  ```typescript
39
- import { InputOTP, InputOTPGroup, InputOTPSlot } from 'torch-glare/lib/components/InputOTP'
42
+ import { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/InputOTP'
40
43
 
41
44
  function Example() {
42
45
  const [otp, setOtp] = useState('')
@@ -508,7 +511,7 @@ function MultiStepVerification() {
508
511
 
509
512
  ```typescript
510
513
  import { render, screen, fireEvent } from '@testing-library/react'
511
- import { InputOTP, InputOTPGroup, InputOTPSlot } from 'torch-glare/lib/components/InputOTP'
514
+ import { InputOTP, InputOTPGroup, InputOTPSlot } from '@/components/InputOTP'
512
515
 
513
516
  describe('InputOTP', () => {
514
517
  it('handles input correctly', () => {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: Input
3
- version: 1.1.15
3
+ version: 2.4.0
4
4
  status: stable
5
5
  category: components/forms
6
6
  tags: [form, input, text, field, accessible, compound]
@@ -16,16 +16,22 @@ dependencies:
16
16
 
17
17
  ## Installation
18
18
 
19
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
20
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
21
+
19
22
  ```bash
20
- npm install torch-glare
23
+ npx torch-glare@latest init
24
+ npx torch-glare@latest add Input
21
25
  ```
22
26
 
27
+ `add` also copies any components, hooks, and utilities that `Input` depends on.
28
+
23
29
  ## Import
24
30
 
25
- ```typescript
26
- import { Input } from 'torch-glare/lib/components/Input'
27
- // Compound components
28
- import { Group, Icon, Trilling } from 'torch-glare/lib/components/Input'
31
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
32
+
33
+ ```tsx
34
+ import { Input } from "@/components/Input";
29
35
  ```
30
36
 
31
37
  ## Quick Examples
@@ -33,7 +39,7 @@ import { Group, Icon, Trilling } from 'torch-glare/lib/components/Input'
33
39
  ### Basic Usage
34
40
 
35
41
  ```typescript
36
- import { Input } from 'torch-glare/lib/components/Input'
42
+ import { Input } from '@/components/Input'
37
43
 
38
44
  function Example() {
39
45
  const [value, setValue] = useState('')
@@ -53,7 +59,7 @@ function Example() {
53
59
  ### With Icon
54
60
 
55
61
  ```typescript
56
- import { Input } from 'torch-glare/lib/components/Input'
62
+ import { Input } from '@/components/Input'
57
63
  import { SearchIcon } from '@heroicons/react/24/outline'
58
64
 
59
65
  function SearchInput() {
@@ -71,15 +77,15 @@ function SearchInput() {
71
77
  ### With Trailing Element
72
78
 
73
79
  ```typescript
74
- import { Input } from 'torch-glare/lib/components/Input'
75
- import { Button } from 'torch-glare/lib/components/Button'
80
+ import { Input } from '@/components/Input'
81
+ import { Button } from '@/components/Button'
76
82
 
77
83
  function InputWithButton() {
78
84
  return (
79
85
  <Input.Group>
80
86
  <Input placeholder="Enter email..." />
81
87
  <Input.Trilling>
82
- <Button size="sm" variant="PrimeStyle">
88
+ <Button size="S" variant="PrimeStyle">
83
89
  Subscribe
84
90
  </Button>
85
91
  </Input.Trilling>
@@ -251,8 +257,8 @@ export const Input: React.ForwardRefExoticComponent<InputProps> & {
251
257
  ### Form Field with Label
252
258
 
253
259
  ```typescript
254
- import { Input } from 'torch-glare/lib/components/Input'
255
- import { Label } from 'torch-glare/lib/components/Label'
260
+ import { Input } from '@/components/Input'
261
+ import { Label } from '@/components/Label'
256
262
 
257
263
  function FormField() {
258
264
  const [value, setValue] = useState('')
@@ -278,7 +284,7 @@ function FormField() {
278
284
  ### Search Field
279
285
 
280
286
  ```typescript
281
- import { Input } from 'torch-glare/lib/components/Input'
287
+ import { Input } from '@/components/Input'
282
288
  import { SearchIcon, XMarkIcon } from '@heroicons/react/24/outline'
283
289
 
284
290
  function SearchField() {
@@ -391,7 +397,7 @@ function CurrencyInput() {
391
397
 
392
398
  ```typescript
393
399
  import { render, screen, fireEvent } from '@testing-library/react'
394
- import { Input } from 'torch-glare/lib/components/Input'
400
+ import { Input } from '@/components/Input'
395
401
 
396
402
  describe('Input', () => {
397
403
  it('handles user input', () => {
@@ -547,7 +553,7 @@ test('Input meets WCAG standards', async () => {
547
553
  ```diff
548
554
  // Import path changed
549
555
  - import Input from 'torch-glare/Input'
550
- + import { Input } from 'torch-glare/lib/components/Input'
556
+ + import { Input } from '@/components/Input'
551
557
 
552
558
  // Compound component structure
553
559
  - <Input icon={<SearchIcon />} />
@@ -11,13 +11,22 @@ keywords: [data-views, kanban-view, kanban, board, columns, group-by, cards, com
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 `Button` component, the `DataViewCard` layout, and `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 KanbanView
20
+ ```
21
+
22
+ `add` also copies any components, hooks, and utilities that `KanbanView` 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 { KanbanView, useDataViewsState } from "torch-glare"
20
- import type { KanbanViewProps, FieldConfig } from "torch-glare"
29
+ import { KanbanView } from "@/components/KanbanView";
21
30
  ```
22
31
 
23
32
  ## When to use it directly
@@ -34,8 +43,9 @@ column. Column colors are assigned deterministically, or per-value via the
34
43
  field's `kanbanVariants`.
35
44
 
36
45
  ```tsx
37
- import { KanbanView, useDataViewsState } from "torch-glare"
38
- import type { FieldConfig } from "torch-glare"
46
+ import { KanbanView } from "@/components/KanbanView";
47
+ import { useDataViewsState } from "@/hooks/useDataViewsState";
48
+ import type { FieldConfig } from "@/components/FieldConfig";
39
49
 
40
50
  const tasks = [
41
51
  { id: 1, title: "Spec API", status: "Todo", assignee: "Ada" },
@@ -11,13 +11,22 @@ keywords: [label-field, form, input, label, required, field]
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 LabelField
20
+ ```
21
+
22
+ `add` also copies any components, hooks, and utilities that `LabelField` depends on.
15
23
 
16
24
  ## Import
17
25
 
18
- ```typescript
19
- import { LabelField } from '@torch-ui/components'
20
- import type { LabelFieldProps } 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 { LabelField } from "@/components/LabelField";
21
30
  ```
22
31
 
23
32
  ## Quick Examples
@@ -25,7 +34,7 @@ import type { LabelFieldProps } from '@torch-ui/components'
25
34
  ### Basic Usage
26
35
 
27
36
  ```typescript
28
- import { LabelField } from '@torch-ui/components'
37
+ import { LabelField } from "@/components/LabelField";
29
38
  import { useState } from 'react'
30
39
 
31
40
  function Example() {
@@ -45,7 +54,7 @@ function Example() {
45
54
  ### With Required Indicator
46
55
 
47
56
  ```typescript
48
- import { LabelField } from '@torch-ui/components'
57
+ import { LabelField } from "@/components/LabelField";
49
58
 
50
59
  function RequiredField() {
51
60
  return (
@@ -61,7 +70,7 @@ function RequiredField() {
61
70
  ### With Secondary Label
62
71
 
63
72
  ```typescript
64
- import { LabelField } from '@torch-ui/components'
73
+ import { LabelField } from "@/components/LabelField";
65
74
 
66
75
  function WithSecondary() {
67
76
  return (
@@ -77,7 +86,7 @@ function WithSecondary() {
77
86
  ### With Error Message
78
87
 
79
88
  ```typescript
80
- import { LabelField } from '@torch-ui/components'
89
+ import { LabelField } from "@/components/LabelField";
81
90
  import { useState } from 'react'
82
91
 
83
92
  function WithValidation() {
@@ -108,7 +117,7 @@ function WithValidation() {
108
117
  ### With Icon
109
118
 
110
119
  ```typescript
111
- import { LabelField } from '@torch-ui/components'
120
+ import { LabelField } from "@/components/LabelField";
112
121
 
113
122
  function WithIcon() {
114
123
  return (
@@ -124,8 +133,8 @@ function WithIcon() {
124
133
  ### With Action Button
125
134
 
126
135
  ```typescript
127
- import { LabelField } from '@torch-ui/components'
128
- import { ActionButton } from '@torch-ui/components'
136
+ import { LabelField } from "@/components/LabelField";
137
+ import { ActionButton } from "@/components/ActionButton";
129
138
  import { useState } from 'react'
130
139
 
131
140
  function WithActionButton() {
@@ -151,7 +160,7 @@ function WithActionButton() {
151
160
  ### Horizontal Layout
152
161
 
153
162
  ```typescript
154
- import { LabelField } from '@torch-ui/components'
163
+ import { LabelField } from "@/components/LabelField";
155
164
 
156
165
  function HorizontalLayout() {
157
166
  return (
@@ -168,7 +177,7 @@ function HorizontalLayout() {
168
177
  ### Different Sizes
169
178
 
170
179
  ```typescript
171
- import { LabelField } from '@torch-ui/components'
180
+ import { LabelField } from "@/components/LabelField";
172
181
 
173
182
  function Sizes() {
174
183
  return (
@@ -192,8 +201,9 @@ function Sizes() {
192
201
  ### Registration Form
193
202
 
194
203
  ```typescript
195
- import { LabelField } from '@torch-ui/components'
196
- import { Button, PasswordLevel } from '@torch-ui/components'
204
+ import { LabelField } from "@/components/LabelField";
205
+ import { Button } from "@/components/Button";
206
+ import { PasswordLevel } from "@/components/PasswordLevel";
197
207
  import { useState } from 'react'
198
208
 
199
209
  function RegistrationForm() {
@@ -281,7 +291,7 @@ function RegistrationForm() {
281
291
  ### With Popover Dropdown
282
292
 
283
293
  ```typescript
284
- import { LabelField } from '@torch-ui/components'
294
+ import { LabelField } from "@/components/LabelField";
285
295
  import { useState } from 'react'
286
296
 
287
297
  function WithPopover() {
@@ -314,8 +324,8 @@ function WithPopover() {
314
324
  ### Profile Settings Form
315
325
 
316
326
  ```typescript
317
- import { LabelField } from '@torch-ui/components'
318
- import { Button } from '@torch-ui/components'
327
+ import { LabelField } from "@/components/LabelField";
328
+ import { Button } from "@/components/Button";
319
329
  import { useState } from 'react'
320
330
 
321
331
  function ProfileSettings() {
@@ -426,7 +436,7 @@ export const LabelField: React.ForwardRefExoticComponent<
426
436
  ### Usage with Types
427
437
 
428
438
  ```typescript
429
- import { LabelField } from '@torch-ui/components'
439
+ import { LabelField } from "@/components/LabelField";
430
440
  import { useRef, useState } from 'react'
431
441
 
432
442
  function TypedExample() {
@@ -455,7 +465,7 @@ function TypedExample() {
455
465
  ### Form Field Wrapper Hook
456
466
 
457
467
  ```typescript
458
- import { LabelField } from '@torch-ui/components'
468
+ import { LabelField } from "@/components/LabelField";
459
469
  import { useState, useCallback } from 'react'
460
470
 
461
471
  function useFormField(initialValue: string = '') {
@@ -526,7 +536,7 @@ function FormWithHook() {
526
536
  ### Reusable Form Fields
527
537
 
528
538
  ```typescript
529
- import { LabelField } from '@torch-ui/components'
539
+ import { LabelField } from "@/components/LabelField";
530
540
  import { ComponentProps } from 'react'
531
541
 
532
542
  type FieldConfig = Omit<ComponentProps<typeof LabelField>, 'value' | 'onChange'> & {
@@ -580,7 +590,7 @@ function DynamicForm() {
580
590
 
581
591
  ```typescript
582
592
  import { render, screen, fireEvent } from '@testing-library/react'
583
- import { LabelField } from '@torch-ui/components'
593
+ import { LabelField } from "@/components/LabelField";
584
594
  import userEvent from '@testing-library/user-event'
585
595
 
586
596
  describe('LabelField', () => {