torch-glare 2.4.0 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/apps/lib/components/ActionButton.tsx +7 -12
- package/apps/lib/components/ActionsGroup.tsx +4 -15
- package/apps/lib/components/AlertDialog.tsx +173 -191
- package/apps/lib/components/Avatar.tsx +13 -16
- package/apps/lib/components/Badge.tsx +1 -3
- package/apps/lib/components/BadgeField.tsx +76 -71
- package/apps/lib/components/Breadcrumb.tsx +49 -85
- package/apps/lib/components/Button.tsx +21 -20
- package/apps/lib/components/ButtonGroup.tsx +31 -41
- package/apps/lib/components/Calendar.tsx +51 -29
- package/apps/lib/components/Card.tsx +40 -24
- package/apps/lib/components/Checkbox.tsx +9 -16
- package/apps/lib/components/ColorPicker.tsx +441 -0
- package/apps/lib/components/ConclusionHeader.tsx +148 -0
- package/apps/lib/components/ContextMenu.tsx +97 -96
- package/apps/lib/components/CountBadge.tsx +4 -6
- package/apps/lib/components/DataTable.tsx +196 -216
- package/apps/lib/components/DataViews/DataViewRadio.tsx +1 -6
- package/apps/lib/components/DataViews/DataViewsConfigPanel.tsx +13 -47
- package/apps/lib/components/DataViews/DataViewsHeader.tsx +1 -3
- package/apps/lib/components/DataViews/DataViewsLayout.tsx +5 -12
- package/apps/lib/components/DataViews/FilterPanel.tsx +155 -149
- package/apps/lib/components/DataViews/HeaderSearch.tsx +1 -5
- package/apps/lib/components/DataViews/InboxView.tsx +22 -68
- package/apps/lib/components/DataViews/InboxViewCard.tsx +68 -77
- package/apps/lib/components/DataViews/KanbanView.tsx +8 -25
- package/apps/lib/components/DataViews/PanelControls.tsx +3 -13
- package/apps/lib/components/DataViews/SettingsPanel.tsx +83 -89
- package/apps/lib/components/DataViews/TableView.tsx +8 -28
- package/apps/lib/components/DataViews/TreeView.tsx +12 -40
- package/apps/lib/components/DataViews/badgeAdapter.ts +32 -28
- package/apps/lib/components/DataViews/fieldRenderers.tsx +106 -141
- package/apps/lib/components/DataViews/filters/DatePickerRangeFilter.tsx +30 -23
- package/apps/lib/components/DataViews/filters/DateRangePopover.tsx +39 -32
- package/apps/lib/components/DataViews/filters/PresetChips.tsx +15 -15
- package/apps/lib/components/DataViews/filters/RangeSliderWithInputs.tsx +69 -58
- package/apps/lib/components/DataViews/index.ts +26 -26
- package/apps/lib/components/DataViews/tree/TreeDrawer.tsx +12 -16
- package/apps/lib/components/DataViews/tree/TreeSidebar.tsx +28 -31
- package/apps/lib/components/DataViews/types.ts +104 -115
- package/apps/lib/components/DatePicker.tsx +200 -196
- package/apps/lib/components/Dialog.tsx +92 -105
- package/apps/lib/components/Divider.tsx +21 -24
- package/apps/lib/components/Drawer.tsx +124 -142
- package/apps/lib/components/DropdownMenu.tsx +131 -171
- package/apps/lib/components/FieldHint.tsx +4 -11
- package/apps/lib/components/Form.tsx +146 -155
- package/apps/lib/components/FormBuilder/DisplayField.tsx +40 -0
- package/apps/lib/components/FormBuilder/context.ts +71 -0
- package/apps/lib/components/FormBuilder/fields/ChoiceFields.tsx +65 -0
- package/apps/lib/components/FormBuilder/fields/ColorField.tsx +76 -0
- package/apps/lib/components/FormBuilder/fields/CustomField.tsx +16 -0
- package/apps/lib/components/FormBuilder/fields/DateField.tsx +34 -0
- package/apps/lib/components/FormBuilder/fields/FieldArray.tsx +79 -0
- package/apps/lib/components/FormBuilder/fields/FieldShell.tsx +174 -0
- package/apps/lib/components/FormBuilder/fields/FileField.tsx +40 -0
- package/apps/lib/components/FormBuilder/fields/OptionListFields.tsx +139 -0
- package/apps/lib/components/FormBuilder/fields/OtpField.tsx +32 -0
- package/apps/lib/components/FormBuilder/fields/PhoneField.tsx +82 -0
- package/apps/lib/components/FormBuilder/fields/RichTextEditorField.tsx +37 -0
- package/apps/lib/components/FormBuilder/fields/SelectField.tsx +101 -0
- package/apps/lib/components/FormBuilder/fields/SignatureField.tsx +175 -0
- package/apps/lib/components/FormBuilder/fields/SliderField.tsx +72 -0
- package/apps/lib/components/FormBuilder/fields/SwitchBoxField.tsx +42 -0
- package/apps/lib/components/FormBuilder/fields/TableField.tsx +312 -0
- package/apps/lib/components/FormBuilder/fields/TextField.tsx +222 -0
- package/apps/lib/components/FormBuilder/fields/TreeSelectField.tsx +49 -0
- package/apps/lib/components/FormBuilder/fields/countries.ts +303 -0
- package/apps/lib/components/FormBuilder/fields/index.ts +25 -0
- package/apps/lib/components/FormBuilder/form-builder.tsx +292 -0
- package/apps/lib/components/FormBuilder/header.tsx +105 -0
- package/apps/lib/components/FormBuilder/index.ts +37 -0
- package/apps/lib/components/FormBuilder/numberFormat.ts +16 -0
- package/apps/lib/components/FormBuilder/stepper.tsx +217 -0
- package/apps/lib/components/FormBuilder/submit.tsx +41 -0
- package/apps/lib/components/FormBuilder/types.ts +264 -0
- package/apps/lib/components/FormBuilder/viewFormat.tsx +137 -0
- package/apps/lib/components/FormRenderer/FormDrawer.tsx +121 -0
- package/apps/lib/components/FormRenderer/form-renderer.tsx +113 -0
- package/apps/lib/components/FormRenderer/index.ts +9 -0
- package/apps/lib/components/FormRenderer/types.ts +79 -0
- package/apps/lib/components/FormStepper.tsx +9 -39
- package/apps/lib/components/FormSummary.tsx +282 -0
- package/apps/lib/components/HeaderBar.tsx +1 -9
- package/apps/lib/components/ImageAttachment.tsx +106 -93
- package/apps/lib/components/InnerLabelField.tsx +20 -16
- package/apps/lib/components/Input.tsx +171 -172
- package/apps/lib/components/InputField.tsx +44 -45
- package/apps/lib/components/InputOTP.tsx +68 -69
- package/apps/lib/components/Label.tsx +61 -58
- package/apps/lib/components/LabelField.tsx +4 -5
- package/apps/lib/components/LabeledCheckBox.tsx +8 -12
- package/apps/lib/components/LabeledRadio.tsx +7 -5
- package/apps/lib/components/LinkButton.tsx +2 -9
- package/apps/lib/components/LoginButton.tsx +4 -9
- package/apps/lib/components/PasswordLevel.tsx +5 -5
- package/apps/lib/components/Popover.tsx +15 -33
- package/apps/lib/components/ProfileMenu.tsx +67 -72
- package/apps/lib/components/Radio.tsx +1 -5
- package/apps/lib/components/RadioCard.tsx +11 -28
- package/apps/lib/components/ScrollArea.tsx +45 -43
- package/apps/lib/components/SearchField.tsx +49 -39
- package/apps/lib/components/SearchableSelect.tsx +16 -16
- package/apps/lib/components/SearchableTable.tsx +108 -118
- package/apps/lib/components/SearchableTree.tsx +469 -0
- package/apps/lib/components/SearchableTreeDialog.tsx +493 -0
- package/apps/lib/components/SectionBlock.tsx +19 -23
- package/apps/lib/components/Select.tsx +80 -186
- package/apps/lib/components/SimpleSelect.tsx +196 -187
- package/apps/lib/components/Skeleton.tsx +9 -12
- package/apps/lib/components/SlideDatePicker.tsx +215 -166
- package/apps/lib/components/SpinLoading.tsx +33 -49
- package/apps/lib/components/Stepper.tsx +13 -56
- package/apps/lib/components/Switch.tsx +8 -10
- package/apps/lib/components/TabFormItem.tsx +3 -12
- package/apps/lib/components/TabSwitch.tsx +7 -34
- package/apps/lib/components/Table.tsx +60 -75
- package/apps/lib/components/{ChartBlockTool.ts → TextEditor/ChartBlockTool.ts} +17 -52
- package/apps/lib/components/TextEditor/RichTextField.tsx +46 -0
- package/apps/lib/components/{TableDnDWrapper.ts → TextEditor/TableDnDWrapper.ts} +15 -48
- package/apps/lib/components/{TextEditor.tsx → TextEditor/TextEditor.tsx} +156 -113
- package/apps/lib/components/TextEditor/TextEditorToolbar.tsx +429 -0
- package/apps/lib/components/TextEditor/editor-tools/AlignmentTune.ts +70 -0
- package/apps/lib/components/TextEditor/editor-tools/ColorInlineTool.ts +50 -0
- package/apps/lib/components/TextEditor/editor-tools/StrikethroughInlineTool.ts +48 -0
- package/apps/lib/components/TextEditor/editor-tools/inlineFormat.ts +98 -0
- package/apps/lib/{types → components/TextEditor}/editorjs.d.ts +19 -0
- package/apps/lib/components/TextEditor/index.ts +7 -0
- package/apps/lib/{utils → components/TextEditor}/markdownParser.ts +2 -7
- package/apps/lib/components/Textarea.tsx +9 -13
- package/apps/lib/components/Timeline.tsx +21 -41
- package/apps/lib/components/Toast.tsx +83 -83
- package/apps/lib/components/Toggle.tsx +112 -114
- package/apps/lib/components/ToggleButton.tsx +1 -1
- package/apps/lib/components/Tooltip.tsx +24 -19
- package/apps/lib/components/TransparentLabel.tsx +61 -62
- package/apps/lib/components/TreeDropDown.tsx +86 -52
- package/apps/lib/components/TreeFolder/TreeFolder.tsx +15 -48
- package/apps/lib/components/TreeFolder/TreeFolderBreadcrumb.tsx +16 -21
- package/apps/lib/components/TreeFolder/TreeFolderRow.tsx +9 -20
- package/apps/lib/components/TreeFolder/TreeFolderStyles.tsx +3 -3
- package/apps/lib/components/TreeFolder/icons.tsx +14 -17
- package/apps/lib/components/TreeFolder/index.ts +15 -8
- package/apps/lib/components/TreeFolder/treeFolderUtils.ts +47 -52
- package/apps/lib/components/TreeFolder/types.ts +32 -32
- package/apps/lib/components/TreeFolder/useTreeFolderDnD.ts +117 -123
- package/apps/lib/hooks/useActiveTreeItem.ts +52 -55
- package/apps/lib/hooks/useClickOutside.ts +21 -20
- package/apps/lib/hooks/useDataViewsState.ts +86 -80
- package/apps/lib/hooks/useIsMobile.ts +12 -12
- package/apps/lib/hooks/useResize.ts +54 -65
- package/apps/lib/hooks/useTagSelection.ts +201 -201
- package/apps/lib/layouts/CNLayout.tsx +181 -140
- package/apps/lib/layouts/DataViewCard.tsx +4 -18
- package/apps/lib/layouts/FieldSection.tsx +2 -6
- package/apps/lib/layouts/TreeSubLayout.tsx +24 -38
- package/apps/lib/providers/ThemeProvider.tsx +8 -23
- package/apps/lib/registry.json +997 -0
- package/apps/lib/tsconfig.json +9 -0
- package/apps/lib/tsconfig.tsbuildinfo +1 -0
- package/apps/lib/utils/cn.ts +1 -1
- package/apps/lib/utils/color.ts +175 -0
- package/apps/lib/utils/dataViews/columnUtils.ts +46 -44
- package/apps/lib/utils/dataViews/fieldUtils.ts +70 -71
- package/apps/lib/utils/dataViews/nestedDataUtils.tsx +129 -122
- package/apps/lib/utils/dataViews/pathUtils.ts +74 -67
- package/apps/lib/utils/dataViews/rangeUtils.ts +121 -112
- package/apps/lib/utils/dataViews/treeUtils.ts +204 -211
- package/apps/lib/utils/dateFormat.ts +64 -54
- package/apps/lib/utils/resize.ts +21 -25
- package/apps/lib/utils/types.ts +13 -13
- package/dist/bin/index.js +8 -2
- package/dist/bin/index.js.map +1 -1
- package/dist/src/shared/getAvailableFiles.d.ts.map +1 -1
- package/dist/src/shared/getAvailableFiles.js +6 -1
- package/dist/src/shared/getAvailableFiles.js.map +1 -1
- package/dist/src/shared/loadRegistry.d.ts +7 -0
- package/dist/src/shared/loadRegistry.d.ts.map +1 -0
- package/dist/src/shared/loadRegistry.js +31 -0
- package/dist/src/shared/loadRegistry.js.map +1 -0
- package/dist/src/shared/resolveInstallPlan.d.ts +12 -0
- package/dist/src/shared/resolveInstallPlan.d.ts.map +1 -0
- package/dist/src/shared/resolveInstallPlan.js +39 -0
- package/dist/src/shared/resolveInstallPlan.js.map +1 -0
- package/dist/src/types/main.d.ts +24 -0
- package/dist/src/types/main.d.ts.map +1 -1
- package/docs/README.md +10 -2
- package/docs/components/action-button.md +30 -24
- package/docs/components/actions-group.md +26 -20
- package/docs/components/alert-dialog.md +45 -45
- package/docs/components/avatar.md +6 -2
- package/docs/components/badge-field.md +6 -2
- package/docs/components/badge.md +7 -1
- package/docs/components/breadcrumb.md +15 -40
- package/docs/components/button-group.md +13 -10
- package/docs/components/button.md +58 -33
- package/docs/components/calendar.md +26 -19
- package/docs/components/card.md +23 -18
- package/docs/components/chart-block-tool.md +129 -0
- package/docs/components/checkbox.md +16 -8
- package/docs/components/cn-layout.md +7 -1
- package/docs/components/color-picker.md +101 -0
- package/docs/components/conclusion-header.md +80 -0
- package/docs/components/context-menu.md +18 -25
- package/docs/components/count-badge.md +7 -1
- package/docs/components/data-table.md +45 -33
- package/docs/components/data-views-config-panel.md +15 -11
- package/docs/components/data-views-layout.md +13 -16
- package/docs/components/date-picker.md +30 -23
- package/docs/components/dialog.md +43 -42
- package/docs/components/divider.md +10 -4
- package/docs/components/drawer.md +161 -135
- package/docs/components/dropdown-menu.md +25 -34
- package/docs/components/field-hint.md +37 -25
- package/docs/components/field-section.md +9 -3
- package/docs/components/form-builder.md +270 -0
- package/docs/components/form-renderer.md +228 -0
- package/docs/components/form-stepper.md +6 -0
- package/docs/components/form-summary.md +123 -0
- package/docs/components/form.md +17 -20
- package/docs/components/header-bar.md +6 -0
- package/docs/components/image-attachment.md +43 -45
- package/docs/components/inbox-view.md +16 -5
- package/docs/components/inner-label-field.md +34 -24
- package/docs/components/input-field.md +18 -10
- package/docs/components/input-otp.md +14 -11
- package/docs/components/input.md +22 -16
- package/docs/components/kanban-view.md +15 -5
- package/docs/components/label-field.md +32 -22
- package/docs/components/label.md +43 -32
- package/docs/components/labeled-check-box.md +16 -8
- package/docs/components/labeled-radio.md +18 -11
- package/docs/components/link-button.md +7 -1
- package/docs/components/login-button.md +8 -2
- package/docs/components/password-level.md +37 -24
- package/docs/components/popover.md +26 -23
- package/docs/components/profile-menu.md +38 -27
- package/docs/components/radio-card.md +16 -9
- package/docs/components/radio.md +16 -8
- package/docs/components/scroll-area.md +6 -2
- package/docs/components/search-field.md +14 -6
- package/docs/components/searchable-select.md +19 -14
- package/docs/components/searchable-table.md +18 -13
- package/docs/components/searchable-tree-dialog.md +190 -0
- package/docs/components/searchable-tree.md +200 -0
- package/docs/components/section-block.md +12 -4
- package/docs/components/select.md +23 -18
- package/docs/components/simple-select.md +14 -10
- package/docs/components/skeleton.md +43 -33
- package/docs/components/slide-date-picker.md +37 -29
- package/docs/components/spin-loading.md +32 -23
- package/docs/components/stepper.md +6 -0
- package/docs/components/switch.md +14 -6
- package/docs/components/tab-form-item.md +7 -1
- package/docs/components/tab-switch.md +13 -6
- package/docs/components/table-dnd-wrapper.md +107 -0
- package/docs/components/table-view.md +15 -5
- package/docs/components/table.md +28 -28
- package/docs/components/text-editor.md +37 -13
- package/docs/components/textarea.md +15 -7
- package/docs/components/timeline.md +6 -0
- package/docs/components/toast.md +35 -26
- package/docs/components/toggle-button.md +24 -21
- package/docs/components/toggle.md +23 -15
- package/docs/components/tooltip.md +42 -30
- package/docs/components/transparent-label.md +29 -20
- package/docs/components/tree-drop-down.md +31 -23
- package/docs/components/tree-sub-layout.md +6 -2
- package/docs/components/tree-view.md +16 -5
- package/docs/explanation/architecture.md +54 -0
- package/docs/explanation/design-system.md +52 -0
- package/docs/how-to/data-views-from-backend-response.md +6 -4
- package/docs/how-to/form-and-list-recipes.md +26 -19
- package/docs/how-to/forms-with-form-builder.md +408 -0
- package/docs/how-to/guides.md +177 -197
- package/docs/migration/changelog.md +38 -0
- package/docs/reference/cli.md +87 -0
- package/docs/reference/components.md +11 -12
- package/docs/reference/hooks.md +8 -8
- package/docs/reference/providers.md +22 -22
- package/docs/reference/tailwind-plugins.md +2 -2
- package/docs/reference/theme.md +85 -0
- package/docs/reference/types.md +4 -4
- package/docs/reference/utilities.md +19 -26
- package/docs/tutorials/building-first-form.md +170 -172
- package/docs/tutorials/component-composition.md +34 -50
- package/docs/tutorials/getting-started.md +2 -2
- package/docs/tutorials/theming-basics.md +13 -10
- package/package.json +31 -3
- package/dist/src/commands/block.d.ts +0 -5
- package/dist/src/commands/block.d.ts.map +0 -1
- package/dist/src/commands/block.js +0 -255
- package/dist/src/commands/block.js.map +0 -1
- package/dist/src/shared/configureFonts.d.ts +0 -6
- package/dist/src/shared/configureFonts.d.ts.map +0 -1
- package/dist/src/shared/configureFonts.js +0 -106
- package/dist/src/shared/configureFonts.js.map +0 -1
- package/dist/src/shared/configureGlobalCss.d.ts +0 -6
- package/dist/src/shared/configureGlobalCss.d.ts.map +0 -1
- package/dist/src/shared/configureGlobalCss.js +0 -154
- package/dist/src/shared/configureGlobalCss.js.map +0 -1
- package/dist/src/shared/configureTailwind.d.ts +0 -7
- package/dist/src/shared/configureTailwind.d.ts.map +0 -1
- package/dist/src/shared/configureTailwind.js +0 -163
- package/dist/src/shared/configureTailwind.js.map +0 -1
- package/dist/src/shared/detectFramework.d.ts +0 -23
- package/dist/src/shared/detectFramework.d.ts.map +0 -1
- package/dist/src/shared/detectFramework.js +0 -119
- package/dist/src/shared/detectFramework.js.map +0 -1
- package/dist/src/shared/installBaseUtils.d.ts +0 -5
- package/dist/src/shared/installBaseUtils.d.ts.map +0 -1
- package/dist/src/shared/installBaseUtils.js +0 -79
- package/dist/src/shared/installBaseUtils.js.map +0 -1
- package/dist/src/shared/resolveAliases.d.ts +0 -24
- package/dist/src/shared/resolveAliases.d.ts.map +0 -1
- package/dist/src/shared/resolveAliases.js +0 -98
- package/dist/src/shared/resolveAliases.js.map +0 -1
|
@@ -11,24 +11,22 @@ keywords: [dialog, modal, overlay, popup, radix-ui, compound-component]
|
|
|
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
|
-
|
|
18
|
+
npx torch-glare@latest init
|
|
19
|
+
npx torch-glare@latest add Dialog
|
|
16
20
|
```
|
|
17
21
|
|
|
22
|
+
`add` also copies any components, hooks, and utilities that `Dialog` depends on.
|
|
23
|
+
|
|
18
24
|
## Import
|
|
19
25
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
DialogContent,
|
|
25
|
-
DialogHeader,
|
|
26
|
-
DialogFooter,
|
|
27
|
-
DialogTitle,
|
|
28
|
-
DialogDescription,
|
|
29
|
-
DialogClose,
|
|
30
|
-
DialogCloseButton,
|
|
31
|
-
} 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 { Dialog } from "@/components/Dialog";
|
|
32
30
|
```
|
|
33
31
|
|
|
34
32
|
## Quick Examples
|
|
@@ -36,8 +34,8 @@ import {
|
|
|
36
34
|
### Basic Usage
|
|
37
35
|
|
|
38
36
|
```typescript
|
|
39
|
-
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription } from
|
|
40
|
-
import { Button } from
|
|
37
|
+
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription } from "@/components/Dialog";
|
|
38
|
+
import { Button } from "@/components/Button";
|
|
41
39
|
|
|
42
40
|
function Example() {
|
|
43
41
|
return (
|
|
@@ -61,8 +59,8 @@ function Example() {
|
|
|
61
59
|
### With Header and Footer
|
|
62
60
|
|
|
63
61
|
```typescript
|
|
64
|
-
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose } from
|
|
65
|
-
import { Button } from
|
|
62
|
+
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose } from "@/components/Dialog";
|
|
63
|
+
import { Button } from "@/components/Button";
|
|
66
64
|
|
|
67
65
|
function FormDialog() {
|
|
68
66
|
return (
|
|
@@ -86,9 +84,9 @@ function FormDialog() {
|
|
|
86
84
|
|
|
87
85
|
<DialogFooter>
|
|
88
86
|
<DialogClose asChild>
|
|
89
|
-
<Button variant="
|
|
87
|
+
<Button variant="BluSecStyle">Cancel</Button>
|
|
90
88
|
</DialogClose>
|
|
91
|
-
<Button variant="
|
|
89
|
+
<Button variant="PrimeStyle">Save Changes</Button>
|
|
92
90
|
</DialogFooter>
|
|
93
91
|
</DialogContent>
|
|
94
92
|
</Dialog>
|
|
@@ -99,7 +97,7 @@ function FormDialog() {
|
|
|
99
97
|
### Controlled State
|
|
100
98
|
|
|
101
99
|
```typescript
|
|
102
|
-
import { Dialog, DialogTrigger, DialogContent, DialogTitle } from
|
|
100
|
+
import { Dialog, DialogTrigger, DialogContent, DialogTitle } from "@/components/Dialog";
|
|
103
101
|
import { useState } from 'react'
|
|
104
102
|
|
|
105
103
|
function ControlledDialog() {
|
|
@@ -123,8 +121,8 @@ function ControlledDialog() {
|
|
|
123
121
|
### With Custom Close Button
|
|
124
122
|
|
|
125
123
|
```typescript
|
|
126
|
-
import { Dialog, DialogTrigger, DialogContent, DialogTitle, DialogCloseButton } from
|
|
127
|
-
import { ActionButton } from
|
|
124
|
+
import { Dialog, DialogTrigger, DialogContent, DialogTitle, DialogCloseButton } from "@/components/Dialog";
|
|
125
|
+
import { ActionButton } from "@/components/ActionButton";
|
|
128
126
|
|
|
129
127
|
function CustomCloseDialog() {
|
|
130
128
|
return (
|
|
@@ -150,14 +148,14 @@ function CustomCloseDialog() {
|
|
|
150
148
|
### Confirmation Dialog
|
|
151
149
|
|
|
152
150
|
```typescript
|
|
153
|
-
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose } from
|
|
154
|
-
import { Button } from
|
|
151
|
+
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose } from "@/components/Dialog";
|
|
152
|
+
import { Button } from "@/components/Button";
|
|
155
153
|
|
|
156
154
|
function ConfirmationDialog({ onConfirm }: { onConfirm: () => void }) {
|
|
157
155
|
return (
|
|
158
156
|
<Dialog>
|
|
159
157
|
<DialogTrigger asChild>
|
|
160
|
-
<Button variant="
|
|
158
|
+
<Button variant="RedSecStyle">Delete Account</Button>
|
|
161
159
|
</DialogTrigger>
|
|
162
160
|
<DialogContent>
|
|
163
161
|
<DialogHeader>
|
|
@@ -170,10 +168,10 @@ function ConfirmationDialog({ onConfirm }: { onConfirm: () => void }) {
|
|
|
170
168
|
|
|
171
169
|
<DialogFooter>
|
|
172
170
|
<DialogClose asChild>
|
|
173
|
-
<Button variant="
|
|
171
|
+
<Button variant="BluSecStyle">Cancel</Button>
|
|
174
172
|
</DialogClose>
|
|
175
173
|
<DialogClose asChild>
|
|
176
|
-
<Button variant="
|
|
174
|
+
<Button variant="RedSecStyle" onClick={onConfirm}>
|
|
177
175
|
Delete Account
|
|
178
176
|
</Button>
|
|
179
177
|
</DialogClose>
|
|
@@ -187,8 +185,9 @@ function ConfirmationDialog({ onConfirm }: { onConfirm: () => void }) {
|
|
|
187
185
|
### Nested Form Dialog
|
|
188
186
|
|
|
189
187
|
```typescript
|
|
190
|
-
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription } from
|
|
191
|
-
import { Button
|
|
188
|
+
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription } from "@/components/Dialog";
|
|
189
|
+
import { Button } from "@/components/Button";
|
|
190
|
+
import { Input } from "@/components/Input";
|
|
192
191
|
import { useForm } from 'react-hook-form'
|
|
193
192
|
|
|
194
193
|
interface FormData {
|
|
@@ -236,8 +235,9 @@ function FormDialog() {
|
|
|
236
235
|
### Content-Heavy Dialog
|
|
237
236
|
|
|
238
237
|
```typescript
|
|
239
|
-
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription } from
|
|
240
|
-
import { Button
|
|
238
|
+
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription } from "@/components/Dialog";
|
|
239
|
+
import { Button } from "@/components/Button";
|
|
240
|
+
import { ScrollArea } from "@/components/ScrollArea";
|
|
241
241
|
|
|
242
242
|
function ContentDialog() {
|
|
243
243
|
return (
|
|
@@ -273,8 +273,8 @@ function ContentDialog() {
|
|
|
273
273
|
### Multi-Step Dialog
|
|
274
274
|
|
|
275
275
|
```typescript
|
|
276
|
-
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle } from
|
|
277
|
-
import { Button } from
|
|
276
|
+
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle } from "@/components/Dialog";
|
|
277
|
+
import { Button } from "@/components/Button";
|
|
278
278
|
import { useState } from 'react'
|
|
279
279
|
|
|
280
280
|
function MultiStepDialog() {
|
|
@@ -298,7 +298,7 @@ function MultiStepDialog() {
|
|
|
298
298
|
|
|
299
299
|
<DialogFooter>
|
|
300
300
|
{step > 1 && (
|
|
301
|
-
<Button variant="
|
|
301
|
+
<Button variant="BluSecStyle" onClick={() => setStep(step - 1)}>
|
|
302
302
|
Back
|
|
303
303
|
</Button>
|
|
304
304
|
)}
|
|
@@ -317,7 +317,7 @@ function MultiStepDialog() {
|
|
|
317
317
|
### Image Preview Dialog
|
|
318
318
|
|
|
319
319
|
```typescript
|
|
320
|
-
import { Dialog, DialogTrigger, DialogContent } from
|
|
320
|
+
import { Dialog, DialogTrigger, DialogContent } from "@/components/Dialog";
|
|
321
321
|
|
|
322
322
|
function ImageDialog({ src, alt }: { src: string; alt: string }) {
|
|
323
323
|
return (
|
|
@@ -340,8 +340,9 @@ function ImageDialog({ src, alt }: { src: string; alt: string }) {
|
|
|
340
340
|
### Loading State Dialog
|
|
341
341
|
|
|
342
342
|
```typescript
|
|
343
|
-
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle } from
|
|
344
|
-
import { Button
|
|
343
|
+
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle } from "@/components/Dialog";
|
|
344
|
+
import { Button } from "@/components/Button";
|
|
345
|
+
import { SpinLoading } from "@/components/SpinLoading";
|
|
345
346
|
import { useState } from 'react'
|
|
346
347
|
|
|
347
348
|
function LoadingDialog() {
|
|
@@ -676,8 +677,8 @@ Pick an icon that matches the entity (`ri-bank-line` for accounts, `ri-calendar-
|
|
|
676
677
|
### Alert/Confirmation Pattern
|
|
677
678
|
|
|
678
679
|
```typescript
|
|
679
|
-
import { Dialog, DialogContent, DialogTitle, DialogDescription } from
|
|
680
|
-
import { Button } from
|
|
680
|
+
import { Dialog, DialogContent, DialogTitle, DialogDescription } from "@/components/Dialog";
|
|
681
|
+
import { Button } from "@/components/Button";
|
|
681
682
|
|
|
682
683
|
function useConfirmDialog() {
|
|
683
684
|
const [open, setOpen] = useState(false)
|
|
@@ -730,7 +731,7 @@ function useConfirmDialog() {
|
|
|
730
731
|
|
|
731
732
|
```typescript
|
|
732
733
|
import { render, screen, fireEvent } from '@testing-library/react'
|
|
733
|
-
import { Dialog, DialogTrigger, DialogContent, DialogTitle } from
|
|
734
|
+
import { Dialog, DialogTrigger, DialogContent, DialogTitle } from "@/components/Dialog";
|
|
734
735
|
|
|
735
736
|
describe('Dialog', () => {
|
|
736
737
|
it('opens when trigger is clicked', () => {
|
|
@@ -839,7 +840,7 @@ describe('Dialog', () => {
|
|
|
839
840
|
|
|
840
841
|
```diff
|
|
841
842
|
- import { Dialog, DialogTitle, DialogContent } from '@mui/material'
|
|
842
|
-
+ import { Dialog, DialogTrigger, DialogContent, DialogTitle } from
|
|
843
|
+
+ import { Dialog, DialogTrigger, DialogContent, DialogTitle } from "@/components/Dialog";
|
|
843
844
|
|
|
844
845
|
- <Dialog open={open} onClose={() => setOpen(false)}>
|
|
845
846
|
- <DialogTitle>Title</DialogTitle>
|
|
@@ -858,7 +859,7 @@ describe('Dialog', () => {
|
|
|
858
859
|
|
|
859
860
|
```diff
|
|
860
861
|
- import { Dialog } from '@headlessui/react'
|
|
861
|
-
+ import { Dialog, DialogContent, DialogTitle } from
|
|
862
|
+
+ import { Dialog, DialogContent, DialogTitle } from "@/components/Dialog";
|
|
862
863
|
|
|
863
864
|
- <Dialog open={open} onClose={setOpen}>
|
|
864
865
|
- <Dialog.Panel>
|
|
@@ -12,10 +12,16 @@ A flexible separator component for creating visual divisions between content sec
|
|
|
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-
|
|
19
|
+
npx torch-glare@latest init
|
|
20
|
+
npx torch-glare@latest add Divider
|
|
17
21
|
```
|
|
18
22
|
|
|
23
|
+
`add` also copies any components, hooks, and utilities that `Divider` depends on.
|
|
24
|
+
|
|
19
25
|
## Imports
|
|
20
26
|
|
|
21
27
|
```typescript
|
|
@@ -282,7 +288,7 @@ export function FormWithDividers() {
|
|
|
282
288
|
<Divider />
|
|
283
289
|
|
|
284
290
|
<div className="flex justify-end gap-3">
|
|
285
|
-
<Button variant="
|
|
291
|
+
<Button variant="BluSecStyle">Cancel</Button>
|
|
286
292
|
<Button variant="PrimeStyle">Save Changes</Button>
|
|
287
293
|
</div>
|
|
288
294
|
</form>
|
|
@@ -317,11 +323,11 @@ export function DividerWithText() {
|
|
|
317
323
|
|
|
318
324
|
{/* Social login */}
|
|
319
325
|
<div className="space-y-2">
|
|
320
|
-
<Button className="w-full" variant="
|
|
326
|
+
<Button className="w-full" variant="BluSecStyle">
|
|
321
327
|
<i className="ri-google-fill mr-2"></i>
|
|
322
328
|
Continue with Google
|
|
323
329
|
</Button>
|
|
324
|
-
<Button className="w-full" variant="
|
|
330
|
+
<Button className="w-full" variant="BluSecStyle">
|
|
325
331
|
<i className="ri-github-fill mr-2"></i>
|
|
326
332
|
Continue with GitHub
|
|
327
333
|
</Button>
|