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: [label, form, input, required, text, typography]
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 Label
20
+ ```
21
+
22
+ `add` also copies any components, hooks, and utilities that `Label` depends on.
15
23
 
16
24
  ## Import
17
25
 
18
- ```typescript
19
- import { Label } from '@torch-ui/components'
20
- import type { LabelProps } 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 { Label } from "@/components/Label";
21
30
  ```
22
31
 
23
32
  ## Quick Examples
@@ -25,8 +34,8 @@ import type { LabelProps } from '@torch-ui/components'
25
34
  ### Basic Usage
26
35
 
27
36
  ```typescript
28
- import { Label } from '@torch-ui/components'
29
- import { InputField } from '@torch-ui/components'
37
+ import { Label } from "@/components/Label";
38
+ import { InputField } from "@/components/InputField";
30
39
 
31
40
  function Example() {
32
41
  return (
@@ -40,8 +49,8 @@ function Example() {
40
49
  ### With Required Indicator
41
50
 
42
51
  ```typescript
43
- import { Label } from '@torch-ui/components'
44
- import { InputField } from '@torch-ui/components'
52
+ import { Label } from "@/components/Label";
53
+ import { InputField } from "@/components/InputField";
45
54
 
46
55
  function RequiredField() {
47
56
  return (
@@ -58,8 +67,8 @@ function RequiredField() {
58
67
  ### With Secondary Label
59
68
 
60
69
  ```typescript
61
- import { Label } from '@torch-ui/components'
62
- import { InputField } from '@torch-ui/components'
70
+ import { Label } from "@/components/Label";
71
+ import { InputField } from "@/components/InputField";
63
72
 
64
73
  function WithSecondary() {
65
74
  return (
@@ -76,8 +85,8 @@ function WithSecondary() {
76
85
  ### All Labels Combined
77
86
 
78
87
  ```typescript
79
- import { Label } from '@torch-ui/components'
80
- import { InputField } from '@torch-ui/components'
88
+ import { Label } from "@/components/Label";
89
+ import { InputField } from "@/components/InputField";
81
90
 
82
91
  function AllLabels() {
83
92
  return (
@@ -95,8 +104,8 @@ function AllLabels() {
95
104
  ### Horizontal Layout
96
105
 
97
106
  ```typescript
98
- import { Label } from '@torch-ui/components'
99
- import { Switch } from '@torch-ui/components'
107
+ import { Label } from "@/components/Label";
108
+ import { Switch } from "@/components/Switch";
100
109
 
101
110
  function HorizontalLabel() {
102
111
  return (
@@ -113,8 +122,8 @@ function HorizontalLabel() {
113
122
  ### Vertical Label Direction
114
123
 
115
124
  ```typescript
116
- import { Label } from '@torch-ui/components'
117
- import { InputField } from '@torch-ui/components'
125
+ import { Label } from "@/components/Label";
126
+ import { InputField } from "@/components/InputField";
118
127
 
119
128
  function VerticalLabels() {
120
129
  return (
@@ -132,8 +141,8 @@ function VerticalLabels() {
132
141
  ### Reversed Children
133
142
 
134
143
  ```typescript
135
- import { Label } from '@torch-ui/components'
136
- import { Checkbox } from '@torch-ui/components'
144
+ import { Label } from "@/components/Label";
145
+ import { Checkbox } from "@/components/Checkbox";
137
146
 
138
147
  function ReversedLayout() {
139
148
  return (
@@ -151,8 +160,8 @@ function ReversedLayout() {
151
160
  ### Different Sizes
152
161
 
153
162
  ```typescript
154
- import { Label } from '@torch-ui/components'
155
- import { InputField } from '@torch-ui/components'
163
+ import { Label } from "@/components/Label";
164
+ import { InputField } from "@/components/InputField";
156
165
 
157
166
  function Sizes() {
158
167
  return (
@@ -176,8 +185,8 @@ function Sizes() {
176
185
  ### Style Variants
177
186
 
178
187
  ```typescript
179
- import { Label } from '@torch-ui/components'
180
- import { InputField } from '@torch-ui/components'
188
+ import { Label } from "@/components/Label";
189
+ import { InputField } from "@/components/InputField";
181
190
 
182
191
  function Variants() {
183
192
  return (
@@ -203,7 +212,7 @@ function Variants() {
203
212
  ### Polymorphic Rendering
204
213
 
205
214
  ```typescript
206
- import { Label } from '@torch-ui/components'
215
+ import { Label } from "@/components/Label";
207
216
 
208
217
  function PolymorphicLabel() {
209
218
  return (
@@ -233,8 +242,9 @@ function PolymorphicLabel() {
233
242
  ### Form Example
234
243
 
235
244
  ```typescript
236
- import { Label } from '@torch-ui/components'
237
- import { InputField, Button } from '@torch-ui/components'
245
+ import { Label } from "@/components/Label";
246
+ import { Button } from "@/components/Button";
247
+ import { InputField } from "@/components/InputField";
238
248
  import { useState } from 'react'
239
249
 
240
250
  function RegistrationForm() {
@@ -359,7 +369,7 @@ export const Label: React.ForwardRefExoticComponent<
359
369
  ### Usage with Types
360
370
 
361
371
  ```typescript
362
- import { Label } from '@torch-ui/components'
372
+ import { Label } from "@/components/Label";
363
373
  import { useRef } from 'react'
364
374
 
365
375
  function TypedExample() {
@@ -387,8 +397,8 @@ function TypedExample() {
387
397
  ### Responsive Layout
388
398
 
389
399
  ```typescript
390
- import { Label } from '@torch-ui/components'
391
- import { InputField } from '@torch-ui/components'
400
+ import { Label } from "@/components/Label";
401
+ import { InputField } from "@/components/InputField";
392
402
  import { useState, useEffect } from 'react'
393
403
 
394
404
  function ResponsiveLabel() {
@@ -417,8 +427,9 @@ function ResponsiveLabel() {
417
427
  ### Dynamic Required State
418
428
 
419
429
  ```typescript
420
- import { Label } from '@torch-ui/components'
421
- import { InputField, Checkbox } from '@torch-ui/components'
430
+ import { Label } from "@/components/Label";
431
+ import { Checkbox } from "@/components/Checkbox";
432
+ import { InputField } from "@/components/InputField";
422
433
  import { useState } from 'react'
423
434
 
424
435
  function DynamicRequired() {
@@ -452,7 +463,7 @@ function DynamicRequired() {
452
463
  ### Label Group Component
453
464
 
454
465
  ```typescript
455
- import { Label } from '@torch-ui/components'
466
+ import { Label } from "@/components/Label";
456
467
  import { ReactNode } from 'react'
457
468
 
458
469
  interface LabelGroupProps {
@@ -508,7 +519,7 @@ function FormWithGroup() {
508
519
 
509
520
  ```typescript
510
521
  import { render, screen } from '@testing-library/react'
511
- import { Label } from '@torch-ui/components'
522
+ import { Label } from "@/components/Label";
512
523
 
513
524
  describe('Label', () => {
514
525
  it('renders label text', () => {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: LabeledCheckBox
3
- version: 1.1.15
3
+ version: 2.4.0
4
4
  status: stable
5
5
  category: components/forms
6
6
  tags: [form, checkbox, label, selection, accessible, compound]
@@ -17,14 +17,22 @@ dependencies:
17
17
 
18
18
  ## Installation
19
19
 
20
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
21
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
22
+
20
23
  ```bash
21
- npm install torch-glare
24
+ npx torch-glare@latest init
25
+ npx torch-glare@latest add LabeledCheckBox
22
26
  ```
23
27
 
28
+ `add` also copies any components, hooks, and utilities that `LabeledCheckBox` depends on.
29
+
24
30
  ## Import
25
31
 
26
- ```typescript
27
- import { LabeledCheckBox } from 'torch-glare/lib/components/LabeledCheckBox'
32
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
33
+
34
+ ```tsx
35
+ import { LabeledCheckBox } from "@/components/LabeledCheckBox";
28
36
  ```
29
37
 
30
38
  ## Quick Examples
@@ -32,7 +40,7 @@ import { LabeledCheckBox } from 'torch-glare/lib/components/LabeledCheckBox'
32
40
  ### Basic Usage
33
41
 
34
42
  ```typescript
35
- import { LabeledCheckBox } from 'torch-glare/lib/components/LabeledCheckBox'
43
+ import { LabeledCheckBox } from '@/components/LabeledCheckBox'
36
44
 
37
45
  function Example() {
38
46
  const [checked, setChecked] = useState(false)
@@ -389,7 +397,7 @@ function EmailSubscriptions() {
389
397
 
390
398
  ```typescript
391
399
  import { render, screen, fireEvent } from '@testing-library/react'
392
- import { LabeledCheckBox } from 'torch-glare/lib/components/LabeledCheckBox'
400
+ import { LabeledCheckBox } from '@/components/LabeledCheckBox'
393
401
 
394
402
  describe('LabeledCheckBox', () => {
395
403
  it('renders label and checkbox together', () => {
@@ -571,10 +579,10 @@ Note: Large size uses medium checkbox for visual balance.
571
579
  ```diff
572
580
  // Import path
573
581
  - import LabeledCheckBox from 'torch-glare/LabeledCheckBox'
574
- + import { LabeledCheckBox } from 'torch-glare/lib/components/LabeledCheckBox'
582
+ + import { LabeledCheckBox } from '@/components/LabeledCheckBox'
575
583
 
576
584
  // Size prop values
577
- - <LabeledCheckBox size="small" />
585
+ - <LabeledCheckBox size="M" />
578
586
  + <LabeledCheckBox size="S" />
579
587
  ```
580
588
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: LabeledRadio
3
- version: 1.1.15
3
+ version: 2.4.0
4
4
  status: stable
5
5
  category: components/forms
6
6
  tags: [form, radio, label, selection, accessible, compound]
@@ -17,15 +17,22 @@ dependencies:
17
17
 
18
18
  ## Installation
19
19
 
20
+ TORCH Glare is a copy-in library: the CLI copies this component's source into your project
21
+ (you do **not** install it from the npm package). Run `init` once, then `add`:
22
+
20
23
  ```bash
21
- npm install torch-glare
24
+ npx torch-glare@latest init
25
+ npx torch-glare@latest add LabeledRadio
22
26
  ```
23
27
 
28
+ `add` also copies any components, hooks, and utilities that `LabeledRadio` depends on.
29
+
24
30
  ## Import
25
31
 
26
- ```typescript
27
- import { LabeledRadio } from 'torch-glare/lib/components/LabeledRadio'
28
- import { RadioGroup } from 'torch-glare/lib/components/Radio'
32
+ Import from your project's local path — the alias configured in `glare.json` (e.g. `@/*`):
33
+
34
+ ```tsx
35
+ import { LabeledRadio } from "@/components/LabeledRadio";
29
36
  ```
30
37
 
31
38
  ## Quick Examples
@@ -33,8 +40,8 @@ import { RadioGroup } from 'torch-glare/lib/components/Radio'
33
40
  ### Basic Usage
34
41
 
35
42
  ```typescript
36
- import { LabeledRadio } from 'torch-glare/lib/components/LabeledRadio'
37
- import { RadioGroup } from 'torch-glare/lib/components/Radio'
43
+ import { LabeledRadio } from '@/components/LabeledRadio'
44
+ import { RadioGroup } from '@/components/Radio'
38
45
 
39
46
  function Example() {
40
47
  const [selected, setSelected] = useState('option1')
@@ -503,8 +510,8 @@ function AccountTypeSelector() {
503
510
 
504
511
  ```typescript
505
512
  import { render, screen, fireEvent } from '@testing-library/react'
506
- import { LabeledRadio } from 'torch-glare/lib/components/LabeledRadio'
507
- import { RadioGroup } from 'torch-glare/lib/components/Radio'
513
+ import { LabeledRadio } from '@/components/LabeledRadio'
514
+ import { RadioGroup } from '@/components/Radio'
508
515
 
509
516
  describe('LabeledRadio', () => {
510
517
  it('renders label and radio together', () => {
@@ -723,10 +730,10 @@ Note: Large size uses medium radio for visual balance.
723
730
  ```diff
724
731
  // Import path
725
732
  - import LabeledRadio from 'torch-glare/LabeledRadio'
726
- + import { LabeledRadio } from 'torch-glare/lib/components/LabeledRadio'
733
+ + import { LabeledRadio } from '@/components/LabeledRadio'
727
734
 
728
735
  // Size prop values
729
- - <LabeledRadio size="small" />
736
+ - <LabeledRadio size="M" />
730
737
  + <LabeledRadio size="S" />
731
738
  ```
732
739
 
@@ -12,10 +12,16 @@ A stylized link button component featuring an animated arrow that appears on hov
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 link-button
19
+ npx torch-glare@latest init
20
+ npx torch-glare@latest add LinkButton
17
21
  ```
18
22
 
23
+ `add` also copies any components, hooks, and utilities that `LinkButton` depends on.
24
+
19
25
  ## Imports
20
26
 
21
27
  ```typescript
@@ -12,10 +12,16 @@ A specialized full-width button component designed specifically for authenticati
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 login-button
19
+ npx torch-glare@latest init
20
+ npx torch-glare@latest add LoginButton
17
21
  ```
18
22
 
23
+ `add` also copies any components, hooks, and utilities that `LoginButton` depends on.
24
+
19
25
  ## Imports
20
26
 
21
27
  ```typescript
@@ -843,7 +849,7 @@ describe('LoginButton', () => {
843
849
  // Before: Material-UI Button
844
850
  <Button
845
851
  fullWidth
846
- variant="contained"
852
+ variant="PrimeStyle"
847
853
  loading={isLoading}
848
854
  >
849
855
  Sign In
@@ -11,13 +11,22 @@ keywords: [password, strength, security, validation, indicator, level]
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 PasswordLevel
20
+ ```
21
+
22
+ `add` also copies any components, hooks, and utilities that `PasswordLevel` depends on.
15
23
 
16
24
  ## Import
17
25
 
18
- ```typescript
19
- import { PasswordLevel } from '@torch-ui/components'
20
- import type { PasswordLevelProps } 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 { PasswordLevel } from "@/components/PasswordLevel";
21
30
  ```
22
31
 
23
32
  ## Quick Examples
@@ -25,8 +34,8 @@ import type { PasswordLevelProps } from '@torch-ui/components'
25
34
  ### Basic Usage
26
35
 
27
36
  ```typescript
28
- import { PasswordLevel } from '@torch-ui/components'
29
- import { InputField } from '@torch-ui/components'
37
+ import { PasswordLevel } from "@/components/PasswordLevel";
38
+ import { InputField } from "@/components/InputField";
30
39
  import { useState } from 'react'
31
40
 
32
41
  function Example() {
@@ -49,8 +58,8 @@ function Example() {
49
58
  ### With Labels
50
59
 
51
60
  ```typescript
52
- import { PasswordLevel } from '@torch-ui/components'
53
- import { InputField } from '@torch-ui/components'
61
+ import { PasswordLevel } from "@/components/PasswordLevel";
62
+ import { InputField } from "@/components/InputField";
54
63
  import { useState } from 'react'
55
64
 
56
65
  function WithLabels() {
@@ -96,8 +105,10 @@ function WithLabels() {
96
105
  ### Registration Form
97
106
 
98
107
  ```typescript
99
- import { PasswordLevel } from '@torch-ui/components'
100
- import { InputField, Button, FieldHint } from '@torch-ui/components'
108
+ import { PasswordLevel } from "@/components/PasswordLevel";
109
+ import { Button } from "@/components/Button";
110
+ import { FieldHint } from "@/components/FieldHint";
111
+ import { InputField } from "@/components/InputField";
101
112
  import { useState } from 'react'
102
113
 
103
114
  function RegistrationForm() {
@@ -157,8 +168,8 @@ function RegistrationForm() {
157
168
  ### With Requirements Checklist
158
169
 
159
170
  ```typescript
160
- import { PasswordLevel } from '@torch-ui/components'
161
- import { InputField } from '@torch-ui/components'
171
+ import { PasswordLevel } from "@/components/PasswordLevel";
172
+ import { InputField } from "@/components/InputField";
162
173
  import { useState } from 'react'
163
174
 
164
175
  function PasswordWithChecklist() {
@@ -217,8 +228,9 @@ function PasswordWithChecklist() {
217
228
  ### Password Change Form
218
229
 
219
230
  ```typescript
220
- import { PasswordLevel } from '@torch-ui/components'
221
- import { InputField, Button } from '@torch-ui/components'
231
+ import { PasswordLevel } from "@/components/PasswordLevel";
232
+ import { Button } from "@/components/Button";
233
+ import { InputField } from "@/components/InputField";
222
234
  import { useState } from 'react'
223
235
 
224
236
  function PasswordChangeForm() {
@@ -269,8 +281,8 @@ function PasswordChangeForm() {
269
281
  ### Real-time Feedback
270
282
 
271
283
  ```typescript
272
- import { PasswordLevel } from '@torch-ui/components'
273
- import { InputField } from '@torch-ui/components'
284
+ import { PasswordLevel } from "@/components/PasswordLevel";
285
+ import { InputField } from "@/components/InputField";
274
286
  import { useState, useEffect } from 'react'
275
287
 
276
288
  function RealTimeFeedback() {
@@ -327,7 +339,7 @@ function RealTimeFeedback() {
327
339
  ### Different Themes
328
340
 
329
341
  ```typescript
330
- import { PasswordLevel } from '@torch-ui/components'
342
+ import { PasswordLevel } from "@/components/PasswordLevel";
331
343
  import { useState } from 'react'
332
344
 
333
345
  function ThemeExample() {
@@ -360,7 +372,7 @@ function ThemeExample() {
360
372
  ### Custom Styling
361
373
 
362
374
  ```typescript
363
- import { PasswordLevel } from '@torch-ui/components'
375
+ import { PasswordLevel } from "@/components/PasswordLevel";
364
376
  import { useState } from 'react'
365
377
 
366
378
  function CustomStyling() {
@@ -387,8 +399,8 @@ function CustomStyling() {
387
399
  ### Animated Feedback
388
400
 
389
401
  ```typescript
390
- import { PasswordLevel } from '@torch-ui/components'
391
- import { InputField } from '@torch-ui/components'
402
+ import { PasswordLevel } from "@/components/PasswordLevel";
403
+ import { InputField } from "@/components/InputField";
392
404
  import { useState } from 'react'
393
405
 
394
406
  function AnimatedFeedback() {
@@ -524,7 +536,7 @@ function isPasswordAcceptable(password: string, minLevel: number = 2): boolean {
524
536
  ### Validation Hook
525
537
 
526
538
  ```typescript
527
- import { PasswordLevel } from '@torch-ui/components'
539
+ import { PasswordLevel } from "@/components/PasswordLevel";
528
540
  import { useState, useMemo } from 'react'
529
541
 
530
542
  function usePasswordValidation(password: string) {
@@ -584,8 +596,9 @@ function ValidatedPasswordField() {
584
596
  ### Password Generator
585
597
 
586
598
  ```typescript
587
- import { PasswordLevel } from '@torch-ui/components'
588
- import { InputField, Button } from '@torch-ui/components'
599
+ import { PasswordLevel } from "@/components/PasswordLevel";
600
+ import { Button } from "@/components/Button";
601
+ import { InputField } from "@/components/InputField";
589
602
  import { useState } from 'react'
590
603
 
591
604
  function PasswordGenerator() {
@@ -638,7 +651,7 @@ function PasswordGenerator() {
638
651
 
639
652
  ```typescript
640
653
  import { render, screen } from '@testing-library/react'
641
- import { PasswordLevel } from '@torch-ui/components'
654
+ import { PasswordLevel } from "@/components/PasswordLevel";
642
655
 
643
656
  describe('PasswordLevel', () => {
644
657
  it('renders three bars', () => {
@@ -11,19 +11,22 @@ keywords: [popover, overlay, dropdown, radix-ui, menu, non-modal]
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 @radix-ui/react-popover
18
+ npx torch-glare@latest init
19
+ npx torch-glare@latest add Popover
16
20
  ```
17
21
 
22
+ `add` also copies any components, hooks, and utilities that `Popover` depends on.
23
+
18
24
  ## Import
19
25
 
20
- ```typescript
21
- import {
22
- Popover,
23
- PopoverTrigger,
24
- PopoverContent,
25
- PopoverItem,
26
- } 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 { Popover } from "@/components/Popover";
27
30
  ```
28
31
 
29
32
  ## Quick Examples
@@ -31,8 +34,8 @@ import {
31
34
  ### Basic Usage
32
35
 
33
36
  ```typescript
34
- import { Popover, PopoverTrigger, PopoverContent } from '@torch-ui/components'
35
- import { Button } from '@torch-ui/components'
37
+ import { Popover, PopoverTrigger, PopoverContent } from "@/components/Popover";
38
+ import { Button } from "@/components/Button";
36
39
 
37
40
  function Example() {
38
41
  return (
@@ -53,7 +56,7 @@ function Example() {
53
56
  ### With PopoverItem List
54
57
 
55
58
  ```typescript
56
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
59
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
57
60
 
58
61
  function SelectPopover() {
59
62
  const items = ['Option 1', 'Option 2', 'Option 3']
@@ -81,7 +84,7 @@ function SelectPopover() {
81
84
  ### SystemStyle Variant
82
85
 
83
86
  ```typescript
84
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
87
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
85
88
 
86
89
  function SystemStylePopover() {
87
90
  return (
@@ -102,7 +105,7 @@ function SystemStylePopover() {
102
105
  ### With Icons
103
106
 
104
107
  ```typescript
105
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
108
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
106
109
 
107
110
  function IconPopover() {
108
111
  return (
@@ -132,7 +135,7 @@ function IconPopover() {
132
135
  ### With Active State
133
136
 
134
137
  ```typescript
135
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
138
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
136
139
  import { useState } from 'react'
137
140
 
138
141
  function SelectablePopover() {
@@ -171,7 +174,7 @@ function SelectablePopover() {
171
174
  ### With Overlay Blur
172
175
 
173
176
  ```typescript
174
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
177
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
175
178
 
176
179
  function BlurredPopover() {
177
180
  return (
@@ -191,7 +194,7 @@ function BlurredPopover() {
191
194
  ### Warning Items
192
195
 
193
196
  ```typescript
194
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
197
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
195
198
 
196
199
  function WarningPopover() {
197
200
  return (
@@ -217,7 +220,7 @@ function WarningPopover() {
217
220
  ### Size Variants
218
221
 
219
222
  ```typescript
220
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
223
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
221
224
 
222
225
  function SizedPopover() {
223
226
  return (
@@ -237,7 +240,7 @@ function SizedPopover() {
237
240
  ### Controlled Popover
238
241
 
239
242
  ```typescript
240
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
243
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
241
244
  import { useState } from 'react'
242
245
 
243
246
  function ControlledPopover() {
@@ -265,7 +268,7 @@ function ControlledPopover() {
265
268
  ### Positioning
266
269
 
267
270
  ```typescript
268
- import { Popover, PopoverTrigger, PopoverContent } from '@torch-ui/components'
271
+ import { Popover, PopoverTrigger, PopoverContent } from "@/components/Popover";
269
272
 
270
273
  function PositionedPopover() {
271
274
  return (
@@ -420,7 +423,7 @@ export const PopoverItem: <T extends React.ElementType = 'button'>(
420
423
  ### Select Pattern
421
424
 
422
425
  ```typescript
423
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
426
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
424
427
  import { useState } from 'react'
425
428
 
426
429
  function SelectField() {
@@ -481,7 +484,7 @@ function ContextMenu({ onEdit, onDelete }) {
481
484
 
482
485
  ```typescript
483
486
  import { render, screen, fireEvent } from '@testing-library/react'
484
- import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from '@torch-ui/components'
487
+ import { Popover, PopoverTrigger, PopoverContent, PopoverItem } from "@/components/Popover";
485
488
 
486
489
  describe('Popover', () => {
487
490
  it('opens on trigger click', () => {
@@ -590,8 +593,8 @@ describe('Popover', () => {
590
593
  ## Migration from DropdownMenu
591
594
 
592
595
  ```diff
593
- - import { DropdownMenu } from '@torch-ui/components'
594
- + import { Popover } from '@torch-ui/components'
596
+ - import { DropdownMenu } from "@/components/DropdownMenu";
597
+ + import { Popover } from "@/components/Popover";
595
598
 
596
599
  - <DropdownMenu>
597
600
  - <DropdownMenuTrigger>Open</DropdownMenuTrigger>