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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
import { cva, VariantProps } from "class-variance-authority";
|
|
3
3
|
import { cn } from "../utils/cn";
|
|
4
4
|
import React, { useEffect, useRef } from "react";
|
|
@@ -12,21 +12,17 @@ interface LocalPopOverProps extends VariantProps<typeof popoverStyles> {
|
|
|
12
12
|
overlayBlur?: boolean;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
16
15
|
const Popover = PopoverPrimitive.Root;
|
|
17
16
|
|
|
18
17
|
const PopoverTrigger = React.forwardRef<
|
|
19
18
|
React.ElementRef<typeof PopoverPrimitive.Trigger>,
|
|
20
19
|
React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger> & {
|
|
21
|
-
className?: string
|
|
20
|
+
className?: string;
|
|
22
21
|
}
|
|
23
22
|
>(({ className, ...props }, ref) => (
|
|
24
23
|
<PopoverPrimitive.Trigger
|
|
25
24
|
ref={ref}
|
|
26
|
-
className={cn(
|
|
27
|
-
"z-[20] transition-all duration-300 data-[state=open]:z-[49]",
|
|
28
|
-
className
|
|
29
|
-
)}
|
|
25
|
+
className={cn("z-[20] transition-all duration-300 data-[state=open]:z-[49]", className)}
|
|
30
26
|
{...props}
|
|
31
27
|
/>
|
|
32
28
|
));
|
|
@@ -36,9 +32,9 @@ PopoverTrigger.displayName = PopoverPrimitive.Trigger.displayName;
|
|
|
36
32
|
const PopoverContent = React.forwardRef<
|
|
37
33
|
React.ElementRef<typeof PopoverPrimitive.Content>,
|
|
38
34
|
React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> &
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
LocalPopOverProps & {
|
|
36
|
+
theme?: Themes;
|
|
37
|
+
}
|
|
42
38
|
>(
|
|
43
39
|
(
|
|
44
40
|
{
|
|
@@ -50,7 +46,7 @@ const PopoverContent = React.forwardRef<
|
|
|
50
46
|
theme,
|
|
51
47
|
...props
|
|
52
48
|
},
|
|
53
|
-
ref
|
|
49
|
+
ref,
|
|
54
50
|
) => (
|
|
55
51
|
<PopoverPrimitive.Portal>
|
|
56
52
|
{overlayBlur ? (
|
|
@@ -60,10 +56,7 @@ const PopoverContent = React.forwardRef<
|
|
|
60
56
|
ref={ref}
|
|
61
57
|
align={align}
|
|
62
58
|
sideOffset={sideOffset}
|
|
63
|
-
className={cn(
|
|
64
|
-
popoverStyles({ variant, overlayBlur }),
|
|
65
|
-
className
|
|
66
|
-
)}
|
|
59
|
+
className={cn(popoverStyles({ variant, overlayBlur }), className)}
|
|
67
60
|
{...props}
|
|
68
61
|
/>
|
|
69
62
|
</div>
|
|
@@ -73,22 +66,18 @@ const PopoverContent = React.forwardRef<
|
|
|
73
66
|
ref={ref}
|
|
74
67
|
align={align}
|
|
75
68
|
sideOffset={sideOffset}
|
|
76
|
-
className={cn(
|
|
77
|
-
popoverStyles({ variant, overlayBlur }),
|
|
78
|
-
className
|
|
79
|
-
)}
|
|
69
|
+
className={cn(popoverStyles({ variant, overlayBlur }), className)}
|
|
80
70
|
{...props}
|
|
81
71
|
/>
|
|
82
72
|
)}
|
|
83
73
|
</PopoverPrimitive.Portal>
|
|
84
|
-
)
|
|
74
|
+
),
|
|
85
75
|
);
|
|
86
76
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
87
77
|
|
|
88
78
|
// Define the Props interface with a generic type parameter
|
|
89
79
|
interface Props<T extends React.ElementType = "li">
|
|
90
|
-
extends React.HTMLAttributes<HTMLElement>,
|
|
91
|
-
VariantProps<typeof PopoverItemStyles> {
|
|
80
|
+
extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof PopoverItemStyles> {
|
|
92
81
|
asChild?: boolean;
|
|
93
82
|
as?: T; // The `as` prop can be any valid HTML element or React component
|
|
94
83
|
}
|
|
@@ -123,7 +112,7 @@ const PopoverItem = <T extends React.ElementType = "li">({
|
|
|
123
112
|
size,
|
|
124
113
|
active,
|
|
125
114
|
}),
|
|
126
|
-
className
|
|
115
|
+
className,
|
|
127
116
|
)}
|
|
128
117
|
/// <reference path="" />
|
|
129
118
|
ref={ref}
|
|
@@ -133,11 +122,8 @@ const PopoverItem = <T extends React.ElementType = "li">({
|
|
|
133
122
|
);
|
|
134
123
|
};
|
|
135
124
|
|
|
136
|
-
|
|
137
125
|
export { Popover, PopoverTrigger, PopoverContent, PopoverItem };
|
|
138
126
|
|
|
139
|
-
|
|
140
|
-
|
|
141
127
|
const PopoverItemStyles = cva(
|
|
142
128
|
[
|
|
143
129
|
"text-content-presentation-action-light-primary",
|
|
@@ -155,7 +141,6 @@ const PopoverItemStyles = cva(
|
|
|
155
141
|
"transition-all",
|
|
156
142
|
"ease-in-out",
|
|
157
143
|
"duration-300",
|
|
158
|
-
|
|
159
144
|
],
|
|
160
145
|
{
|
|
161
146
|
variants: {
|
|
@@ -204,10 +189,7 @@ const PopoverItemStyles = cva(
|
|
|
204
189
|
},
|
|
205
190
|
|
|
206
191
|
disabled: {
|
|
207
|
-
true: [
|
|
208
|
-
"text-content-presentation-state-disabled",
|
|
209
|
-
"bg-white-00",
|
|
210
|
-
],
|
|
192
|
+
true: ["text-content-presentation-state-disabled", "bg-white-00"],
|
|
211
193
|
},
|
|
212
194
|
|
|
213
195
|
active: {
|
|
@@ -231,7 +213,7 @@ const PopoverItemStyles = cva(
|
|
|
231
213
|
className: ["text-content-presentation-state-negative"],
|
|
232
214
|
},
|
|
233
215
|
],
|
|
234
|
-
}
|
|
216
|
+
},
|
|
235
217
|
);
|
|
236
218
|
|
|
237
219
|
const popoverStyles = cva(
|
|
@@ -270,5 +252,5 @@ const popoverStyles = cva(
|
|
|
270
252
|
variant: "PresentationStyle",
|
|
271
253
|
},
|
|
272
254
|
},
|
|
273
|
-
}
|
|
255
|
+
},
|
|
274
256
|
);
|
|
@@ -5,86 +5,81 @@ import { Popover, PopoverContent, PopoverTrigger } from "./Popover";
|
|
|
5
5
|
|
|
6
6
|
// Define the base styles and variants using `cva`
|
|
7
7
|
export const profileItemStyles = cva(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
"flex items-center justify-between group w-full p-[6px] outline-none rounded-[8px] fucus:bg-background-system-action-primary-selected active:bg-background-system-action-primary-selected transition-all ease-in-out duration-150",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
selected: {
|
|
12
|
+
true: "bg-background-system-action-primary-selected",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
interface ProfileItemProps extends HTMLAttributes<HTMLButtonElement> {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
label: ReactNode;
|
|
20
|
+
selected?: boolean;
|
|
21
|
+
icon?: string;
|
|
22
|
+
theme?: "dark" | "light" | "default";
|
|
23
|
+
popoverChildren?: ReactNode;
|
|
24
|
+
overlayBlur?: boolean;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export const ProfileMenu: React.FC<ProfileItemProps> = ({
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
label,
|
|
29
|
+
selected,
|
|
30
|
+
icon,
|
|
31
|
+
theme,
|
|
32
|
+
className,
|
|
33
|
+
popoverChildren,
|
|
34
|
+
overlayBlur,
|
|
35
|
+
...props
|
|
36
36
|
}) => {
|
|
37
|
+
const [isOpen, setIsOpen] = useState(selected);
|
|
38
|
+
const [dropdownWidth, setDropdownWidth] = useState(0);
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
setIsOpen(selected);
|
|
42
|
+
}, [selected]);
|
|
43
|
+
return (
|
|
44
|
+
<Popover onOpenChange={(open) => setIsOpen(open)}>
|
|
45
|
+
<PopoverTrigger asChild>
|
|
46
|
+
<button
|
|
47
|
+
{...props}
|
|
48
|
+
data-theme={theme}
|
|
49
|
+
className={cn(profileItemStyles({ selected }), className)}
|
|
50
|
+
onPointerDown={(e: React.PointerEvent<HTMLButtonElement>) => {
|
|
51
|
+
props.onPointerDown && props.onPointerDown(e);
|
|
52
|
+
setDropdownWidth(e.currentTarget.offsetWidth);
|
|
53
|
+
}}
|
|
54
|
+
>
|
|
55
|
+
<div className="flex items-center gap-2">
|
|
56
|
+
<div className="flex items-center">
|
|
57
|
+
<span className="h-[28px] w-[2px] bg-transparent group-hover:bg-[#9748FF] group-hover:mr-[6px] transition-all ease-in-out duration-150"></span>
|
|
58
|
+
<img className="w-[28px] h-[28px] rounded-full object-cover" src={icon} alt="" />
|
|
59
|
+
</div>
|
|
40
60
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<Popover onOpenChange={(open) => setIsOpen(open)} >
|
|
46
|
-
<PopoverTrigger asChild>
|
|
47
|
-
<button
|
|
48
|
-
{...props}
|
|
49
|
-
data-theme={theme}
|
|
50
|
-
className={cn(
|
|
51
|
-
profileItemStyles({ selected }),
|
|
52
|
-
className
|
|
53
|
-
)}
|
|
54
|
-
onPointerDown={(e: any) => {
|
|
55
|
-
props.onPointerDown && props.onPointerDown(e);
|
|
56
|
-
setDropdownWidth(e.currentTarget.offsetWidth);
|
|
57
|
-
}}
|
|
58
|
-
>
|
|
59
|
-
<div className="flex items-center gap-2">
|
|
60
|
-
<div className="flex items-center">
|
|
61
|
-
<span className="h-[28px] w-[2px] bg-transparent group-hover:bg-[#9748FF] group-hover:mr-[6px] transition-all ease-in-out duration-150"></span>
|
|
62
|
-
<img className="w-[28px] h-[28px] rounded-full object-cover" src={icon} alt="" />
|
|
63
|
-
</div>
|
|
61
|
+
<p className={cn("typography-body-medium-medium text-content-system-global-primary")}>
|
|
62
|
+
{label}
|
|
63
|
+
</p>
|
|
64
|
+
</div>
|
|
64
65
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
{popoverChildren}
|
|
85
|
-
</PopoverContent>
|
|
86
|
-
}
|
|
87
|
-
</Popover>
|
|
88
|
-
);
|
|
66
|
+
<i
|
|
67
|
+
className={cn(
|
|
68
|
+
"ri-arrow-down-s-line text-[18px] text-content-system-global-primary group-hover:text-[#9748FF] transition-all ease-in-out duration-150",
|
|
69
|
+
{ "rotate-180": isOpen && popoverChildren },
|
|
70
|
+
)}
|
|
71
|
+
></i>
|
|
72
|
+
</button>
|
|
73
|
+
</PopoverTrigger>
|
|
74
|
+
{popoverChildren && (
|
|
75
|
+
<PopoverContent
|
|
76
|
+
overlayBlur={overlayBlur}
|
|
77
|
+
style={{ width: `${dropdownWidth}px` }}
|
|
78
|
+
theme={theme}
|
|
79
|
+
>
|
|
80
|
+
{popoverChildren}
|
|
81
|
+
</PopoverContent>
|
|
82
|
+
)}
|
|
83
|
+
</Popover>
|
|
84
|
+
);
|
|
89
85
|
};
|
|
90
|
-
|
|
@@ -9,11 +9,7 @@ const RadioGroup = React.forwardRef<
|
|
|
9
9
|
React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>
|
|
10
10
|
>(({ className, ...props }, ref) => {
|
|
11
11
|
return (
|
|
12
|
-
<RadioGroupPrimitive.Root
|
|
13
|
-
className={cn("grid gap-0.5", className)}
|
|
14
|
-
{...props}
|
|
15
|
-
ref={ref}
|
|
16
|
-
/>
|
|
12
|
+
<RadioGroupPrimitive.Root className={cn("grid gap-0.5", className)} {...props} ref={ref} />
|
|
17
13
|
);
|
|
18
14
|
});
|
|
19
15
|
RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
|
|
@@ -3,7 +3,6 @@ import { cn } from "../utils/cn";
|
|
|
3
3
|
import { Radio } from "./Radio";
|
|
4
4
|
import { Card, CardContent, CardDescription, CardHeader } from "./Card";
|
|
5
5
|
|
|
6
|
-
|
|
7
6
|
interface Props extends Omit<React.ComponentProps<typeof Radio>, "size" | "value"> {
|
|
8
7
|
headerLabel?: ReactNode;
|
|
9
8
|
id: string;
|
|
@@ -15,15 +14,14 @@ interface Props extends Omit<React.ComponentProps<typeof Radio>, "size" | "value
|
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
export const RadioCard = forwardRef<HTMLInputElement, Props>(
|
|
18
|
-
(
|
|
19
|
-
{ headerLabel, description, disabled, className, id, children, theme, value, ...props },
|
|
20
|
-
ref
|
|
21
|
-
) => {
|
|
17
|
+
({ headerLabel, description, disabled, className, id, children, theme, value, ...props }) => {
|
|
22
18
|
return (
|
|
23
19
|
<Card
|
|
24
20
|
data-theme={theme}
|
|
25
21
|
htmlFor={id}
|
|
26
22
|
as="label"
|
|
23
|
+
// The whole card is the radio's label — an interactive target, so it keeps the hover.
|
|
24
|
+
variant="clickable"
|
|
27
25
|
className={cn(
|
|
28
26
|
"relative [&>button]:data-[state=checked]:!border-none",
|
|
29
27
|
'[&:has(button[data-state="checked"])]:border-border-presentation-state-focus',
|
|
@@ -31,37 +29,22 @@ export const RadioCard = forwardRef<HTMLInputElement, Props>(
|
|
|
31
29
|
disabled && "!bg-background-presentation-action-disabled",
|
|
32
30
|
disabled && "cursor-not-allowed",
|
|
33
31
|
disabled && "hover:border-border-presentation-global-primary",
|
|
34
|
-
className
|
|
32
|
+
className,
|
|
35
33
|
)}
|
|
36
34
|
>
|
|
37
|
-
<section
|
|
38
|
-
|
|
39
|
-
>
|
|
40
|
-
<Radio
|
|
41
|
-
{...props}
|
|
42
|
-
value={value}
|
|
43
|
-
size="M"
|
|
44
|
-
id={id}
|
|
45
|
-
disabled={disabled}
|
|
46
|
-
/>
|
|
35
|
+
<section className={"absolute top-0 left-0 w-full p-[10px] flex justify-end"}>
|
|
36
|
+
<Radio {...props} value={value} size="M" id={id} disabled={disabled} />
|
|
47
37
|
</section>
|
|
48
38
|
|
|
49
|
-
<CardHeader
|
|
50
|
-
{headerLabel}
|
|
51
|
-
</CardHeader>
|
|
39
|
+
<CardHeader>{headerLabel}</CardHeader>
|
|
52
40
|
|
|
53
|
-
<CardContent
|
|
54
|
-
{description &&
|
|
55
|
-
<CardDescription >
|
|
56
|
-
{description}
|
|
57
|
-
</CardDescription>
|
|
58
|
-
)}
|
|
41
|
+
<CardContent>
|
|
42
|
+
{description && <CardDescription>{description}</CardDescription>}
|
|
59
43
|
{children}
|
|
60
44
|
</CardContent>
|
|
61
45
|
</Card>
|
|
62
46
|
);
|
|
63
|
-
}
|
|
47
|
+
},
|
|
64
48
|
);
|
|
65
49
|
|
|
66
|
-
|
|
67
|
-
RadioCard.displayName = "RadioCard"
|
|
50
|
+
RadioCard.displayName = "RadioCard";
|
|
@@ -1,52 +1,54 @@
|
|
|
1
|
-
"use client"
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
5
5
|
|
|
6
|
-
import { cn } from "../utils/cn"
|
|
6
|
+
import { cn } from "../utils/cn";
|
|
7
7
|
|
|
8
8
|
const ScrollArea = React.forwardRef<
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
React.ElementRef<typeof ScrollAreaPrimitive.Root>,
|
|
10
|
+
React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>
|
|
11
11
|
>(({ className, children, ...props }, ref) => (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
<ScrollAreaPrimitive.Root
|
|
13
|
+
ref={ref}
|
|
14
|
+
className={cn(
|
|
15
|
+
[
|
|
16
|
+
"relative overflow-hidden",
|
|
17
|
+
"border-border-presentation-global-primary",
|
|
18
|
+
"bg-background-presentation-form-base",
|
|
19
|
+
"shadow-[0px_0px_10px_0px_rgba(0,0,0,0.4),0px_4px_4px_0px_rgba(0,0,0,0.2)]",
|
|
20
|
+
],
|
|
21
|
+
className,
|
|
22
|
+
)}
|
|
23
|
+
{...props}
|
|
24
|
+
>
|
|
25
|
+
<ScrollAreaPrimitive.Viewport className="h-full w-full rounded-[inherit]">
|
|
26
|
+
{children}
|
|
27
|
+
</ScrollAreaPrimitive.Viewport>
|
|
28
|
+
<ScrollBar />
|
|
29
|
+
<ScrollAreaPrimitive.Corner />
|
|
30
|
+
</ScrollAreaPrimitive.Root>
|
|
31
|
+
));
|
|
32
|
+
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
29
33
|
|
|
30
34
|
const ScrollBar = React.forwardRef<
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,
|
|
36
|
+
React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>
|
|
33
37
|
>(({ className, orientation = "vertical", ...props }, ref) => (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
))
|
|
50
|
-
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName
|
|
38
|
+
<ScrollAreaPrimitive.ScrollAreaScrollbar
|
|
39
|
+
ref={ref}
|
|
40
|
+
orientation={orientation}
|
|
41
|
+
className={cn(
|
|
42
|
+
"flex touch-none select-none transition-colors",
|
|
43
|
+
orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
|
|
44
|
+
orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
|
|
45
|
+
className,
|
|
46
|
+
)}
|
|
47
|
+
{...props}
|
|
48
|
+
>
|
|
49
|
+
<ScrollAreaPrimitive.ScrollAreaThumb className="relative flex-1 rounded-full bg-border" />
|
|
50
|
+
</ScrollAreaPrimitive.ScrollAreaScrollbar>
|
|
51
|
+
));
|
|
52
|
+
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
51
53
|
|
|
52
|
-
export { ScrollArea, ScrollBar }
|
|
54
|
+
export { ScrollArea, ScrollBar };
|
|
@@ -2,51 +2,61 @@ import { forwardRef, ReactNode } from "react";
|
|
|
2
2
|
import { Props, InputField } from "./InputField";
|
|
3
3
|
|
|
4
4
|
interface SearchProps extends Props {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Searchplaceholder?: ReactNode;
|
|
6
|
+
secondaryPlaceholder?: ReactNode;
|
|
7
|
+
childrenSide?: ReactNode;
|
|
8
8
|
}
|
|
9
9
|
// Use InputField types in the SearchInput component
|
|
10
10
|
export const SearchField = forwardRef<HTMLInputElement, SearchProps>(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
11
|
+
({ Searchplaceholder, secondaryPlaceholder, childrenSide, ...props }, forwardedRef) => {
|
|
12
|
+
return (
|
|
13
|
+
<div className="mb-[10px] w-full h-fit justify-center items-center rounded-[12px] p-[3px] bg-[rgba(106,112,144,0.60)] shadow-[0px_0px_18px_0px_rgba(0,0,0,0.75)] backdrop-blur-[21px]">
|
|
14
|
+
<InputField
|
|
15
|
+
{...props}
|
|
16
|
+
ref={forwardedRef}
|
|
17
|
+
type="text"
|
|
18
|
+
variant="SystemStyle"
|
|
19
|
+
size="M"
|
|
20
|
+
className="h-[54px] rounded-[9px] p-[15px] border-border-system-global-primary bg-[rgba(0,0,0,0.60)]"
|
|
21
|
+
icon={
|
|
22
|
+
<SearchInputPlaceholder
|
|
23
|
+
value={props.value}
|
|
24
|
+
secondaryPlaceholder={secondaryPlaceholder}
|
|
25
|
+
Searchplaceholder={Searchplaceholder}
|
|
26
|
+
/>
|
|
27
|
+
}
|
|
28
|
+
childrenSide={childrenSide}
|
|
29
|
+
/>
|
|
30
|
+
</div>
|
|
31
|
+
);
|
|
32
|
+
},
|
|
31
33
|
);
|
|
32
34
|
|
|
33
35
|
SearchField.displayName = " SearchField"; // Set displayName for debugging
|
|
34
36
|
|
|
37
|
+
function SearchInputPlaceholder({
|
|
38
|
+
Searchplaceholder,
|
|
39
|
+
secondaryPlaceholder,
|
|
40
|
+
value,
|
|
41
|
+
}: {
|
|
42
|
+
Searchplaceholder?: ReactNode;
|
|
43
|
+
secondaryPlaceholder?: ReactNode;
|
|
44
|
+
value?: string | number | readonly string[];
|
|
45
|
+
}) {
|
|
46
|
+
return (
|
|
47
|
+
<div className="flex gap-[10px] justify-center items-center ">
|
|
48
|
+
<i className="ri-search-2-line text-[24px] text-[#E5E5E5]"></i>
|
|
35
49
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
<p className="text-content-system-global-primary typography-headers-medium-regular leading-none opacity-[0.8]">{Searchplaceholder}</p>
|
|
45
|
-
<p className="text-content-system-global-primary typography-body-medium-medium leading-none opacity-30 mix-blend-luminosity mt-[2px]">{secondaryPlaceholder}</p>
|
|
46
|
-
</div>
|
|
47
|
-
) : null
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
+
{value == "" ? (
|
|
51
|
+
<div className="flex gap-[5px] justify-center items-center ">
|
|
52
|
+
<p className="text-content-system-global-primary typography-headers-medium-regular leading-none opacity-[0.8]">
|
|
53
|
+
{Searchplaceholder}
|
|
54
|
+
</p>
|
|
55
|
+
<p className="text-content-system-global-primary typography-body-medium-medium leading-none opacity-30 mix-blend-luminosity mt-[2px]">
|
|
56
|
+
{secondaryPlaceholder}
|
|
57
|
+
</p>
|
|
50
58
|
</div>
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
) : null}
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
}
|