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.
- 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 +20 -19
- package/apps/lib/components/ButtonGroup.tsx +31 -41
- package/apps/lib/components/Calendar.tsx +51 -29
- package/apps/lib/components/Card.tsx +2 -13
- package/apps/lib/components/ChartBlockTool.ts +17 -52
- package/apps/lib/components/Checkbox.tsx +9 -16
- 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 +198 -196
- package/apps/lib/components/Dialog.tsx +92 -105
- package/apps/lib/components/Divider.tsx +21 -24
- package/apps/lib/components/Drawer.tsx +79 -139
- 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/FormStepper.tsx +9 -39
- package/apps/lib/components/HeaderBar.tsx +1 -9
- package/apps/lib/components/ImageAttachment.tsx +111 -73
- 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 +31 -35
- 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 +9 -28
- package/apps/lib/components/ScrollArea.tsx +45 -43
- package/apps/lib/components/SearchField.tsx +49 -39
- package/apps/lib/components/SearchableSelect.tsx +8 -14
- 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 +4 -16
- package/apps/lib/components/Select.tsx +53 -80
- 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/TableDnDWrapper.ts +15 -48
- package/apps/lib/components/TextEditor.tsx +93 -104
- package/apps/lib/components/Textarea.tsx +8 -12
- 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 +1004 -0
- package/apps/lib/tsconfig.json +9 -0
- package/apps/lib/utils/cn.ts +1 -1
- 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/markdownParser.ts +2 -7
- 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 +19 -16
- package/docs/components/chart-block-tool.md +128 -0
- package/docs/components/checkbox.md +16 -8
- package/docs/components/cn-layout.md +7 -1
- 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 +8 -33
- 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-stepper.md +6 -0
- package/docs/components/form.md +17 -20
- package/docs/components/header-bar.md +6 -0
- package/docs/components/image-attachment.md +33 -41
- 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 +105 -0
- package/docs/components/table-view.md +15 -5
- package/docs/components/table.md +28 -28
- package/docs/components/text-editor.md +19 -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/guides.md +24 -18
- 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 +20 -13
- 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
|
@@ -4,14 +4,12 @@ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
|
4
4
|
import { cn } from "../utils/cn";
|
|
5
5
|
import { Themes } from "../utils/types";
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
interface DropdownMenuProps {
|
|
9
8
|
variant?: "PresentationStyle";
|
|
10
9
|
className?: string;
|
|
11
|
-
theme?: Themes
|
|
10
|
+
theme?: Themes;
|
|
12
11
|
}
|
|
13
12
|
|
|
14
|
-
|
|
15
13
|
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
16
14
|
|
|
17
15
|
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
@@ -19,7 +17,7 @@ const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
|
19
17
|
const DropdownMenuGroup = React.forwardRef<
|
|
20
18
|
React.ElementRef<typeof DropdownMenuPrimitive.Group>,
|
|
21
19
|
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Group> &
|
|
22
|
-
|
|
20
|
+
VariantProps<typeof menuGroupStyles>
|
|
23
21
|
>(({ className, variant = "Boxed", ...props }, ref) => (
|
|
24
22
|
<DropdownMenuPrimitive.Group
|
|
25
23
|
ref={ref}
|
|
@@ -36,7 +34,7 @@ const DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
|
36
34
|
const DropdownMenuRadioGroup = React.forwardRef<
|
|
37
35
|
React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>,
|
|
38
36
|
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioGroup> &
|
|
39
|
-
|
|
37
|
+
VariantProps<typeof menuGroupStyles>
|
|
40
38
|
>(({ className, variant = "Boxed", ...props }, ref) => (
|
|
41
39
|
<DropdownMenuPrimitive.RadioGroup
|
|
42
40
|
ref={ref}
|
|
@@ -44,13 +42,12 @@ const DropdownMenuRadioGroup = React.forwardRef<
|
|
|
44
42
|
{...props}
|
|
45
43
|
/>
|
|
46
44
|
));
|
|
47
|
-
DropdownMenuRadioGroup.displayName =
|
|
48
|
-
DropdownMenuPrimitive.RadioGroup.displayName;
|
|
45
|
+
DropdownMenuRadioGroup.displayName = DropdownMenuPrimitive.RadioGroup.displayName;
|
|
49
46
|
|
|
50
47
|
const DropdownMenuContent = React.forwardRef<
|
|
51
48
|
React.ElementRef<typeof DropdownMenuPrimitive.Content>,
|
|
52
49
|
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> &
|
|
53
|
-
|
|
50
|
+
DropdownMenuProps & { autoGroup?: boolean; maxHeight?: number }
|
|
54
51
|
>(
|
|
55
52
|
(
|
|
56
53
|
{
|
|
@@ -65,7 +62,7 @@ const DropdownMenuContent = React.forwardRef<
|
|
|
65
62
|
children,
|
|
66
63
|
...props
|
|
67
64
|
},
|
|
68
|
-
ref
|
|
65
|
+
ref,
|
|
69
66
|
) => (
|
|
70
67
|
<DropdownMenuPrimitive.Portal>
|
|
71
68
|
<DropdownMenuPrimitive.Content
|
|
@@ -85,7 +82,7 @@ const DropdownMenuContent = React.forwardRef<
|
|
|
85
82
|
{autoGroup ? autoGroupChildren(children) : children}
|
|
86
83
|
</DropdownMenuPrimitive.Content>
|
|
87
84
|
</DropdownMenuPrimitive.Portal>
|
|
88
|
-
)
|
|
85
|
+
),
|
|
89
86
|
);
|
|
90
87
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
91
88
|
|
|
@@ -98,33 +95,28 @@ const DropdownMenuSubTrigger = React.forwardRef<
|
|
|
98
95
|
(
|
|
99
96
|
{
|
|
100
97
|
className,
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- excluded from {...props} spread
|
|
101
99
|
inset,
|
|
102
100
|
children,
|
|
103
101
|
variant = "Default",
|
|
104
102
|
size = "M",
|
|
105
103
|
...props
|
|
106
104
|
},
|
|
107
|
-
ref
|
|
105
|
+
ref,
|
|
108
106
|
) => (
|
|
109
107
|
<DropdownMenuPrimitive.SubTrigger
|
|
110
108
|
ref={ref}
|
|
111
|
-
className={cn(
|
|
112
|
-
MenuItemStyles({ variant, size }),
|
|
113
|
-
"justify-between",
|
|
114
|
-
className
|
|
115
|
-
)}
|
|
109
|
+
className={cn(MenuItemStyles({ variant, size }), "justify-between", className)}
|
|
116
110
|
{...props}
|
|
117
111
|
>
|
|
118
|
-
<div className="justify-between"
|
|
119
|
-
{children}
|
|
112
|
+
<div className="justify-between">
|
|
113
|
+
<div className="flex gap-2">{children}</div>
|
|
114
|
+
<i className="ri-arrow-right-s-line text-[16px] rtl:rotate-180"></i>
|
|
120
115
|
</div>
|
|
121
|
-
<i className="ri-arrow-right-s-line text-[16px] rtl:rotate-180"></i></div>
|
|
122
|
-
|
|
123
116
|
</DropdownMenuPrimitive.SubTrigger>
|
|
124
|
-
)
|
|
117
|
+
),
|
|
125
118
|
);
|
|
126
|
-
DropdownMenuSubTrigger.displayName =
|
|
127
|
-
DropdownMenuPrimitive.SubTrigger.displayName;
|
|
119
|
+
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
128
120
|
|
|
129
121
|
const DropdownMenuSubContent = React.forwardRef<
|
|
130
122
|
React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
|
|
@@ -132,30 +124,18 @@ const DropdownMenuSubContent = React.forwardRef<
|
|
|
132
124
|
variant?: "PresentationStyle";
|
|
133
125
|
autoGroup?: boolean;
|
|
134
126
|
}
|
|
135
|
-
>(
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
variant
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
<DropdownMenuPrimitive.SubContent
|
|
148
|
-
ref={ref}
|
|
149
|
-
className={cn(menuContentStyles({ variant }), className)}
|
|
150
|
-
{...props}
|
|
151
|
-
>
|
|
152
|
-
{autoGroup ? autoGroupChildren(children) : children}
|
|
153
|
-
</DropdownMenuPrimitive.SubContent>
|
|
154
|
-
</DropdownMenuPrimitive.Portal>
|
|
155
|
-
)
|
|
156
|
-
);
|
|
157
|
-
DropdownMenuSubContent.displayName =
|
|
158
|
-
DropdownMenuPrimitive.SubContent.displayName;
|
|
127
|
+
>(({ className, variant = "PresentationStyle", autoGroup = true, children, ...props }, ref) => (
|
|
128
|
+
<DropdownMenuPrimitive.Portal>
|
|
129
|
+
<DropdownMenuPrimitive.SubContent
|
|
130
|
+
ref={ref}
|
|
131
|
+
className={cn(menuContentStyles({ variant }), className)}
|
|
132
|
+
{...props}
|
|
133
|
+
>
|
|
134
|
+
{autoGroup ? autoGroupChildren(children) : children}
|
|
135
|
+
</DropdownMenuPrimitive.SubContent>
|
|
136
|
+
</DropdownMenuPrimitive.Portal>
|
|
137
|
+
));
|
|
138
|
+
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
159
139
|
|
|
160
140
|
const DropdownMenuItem = React.forwardRef<
|
|
161
141
|
React.ElementRef<typeof DropdownMenuPrimitive.Item>,
|
|
@@ -166,6 +146,7 @@ const DropdownMenuItem = React.forwardRef<
|
|
|
166
146
|
(
|
|
167
147
|
{
|
|
168
148
|
className,
|
|
149
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- excluded from {...props} spread
|
|
169
150
|
inset,
|
|
170
151
|
children,
|
|
171
152
|
variant = "Default",
|
|
@@ -173,126 +154,104 @@ const DropdownMenuItem = React.forwardRef<
|
|
|
173
154
|
active,
|
|
174
155
|
...props
|
|
175
156
|
},
|
|
176
|
-
ref
|
|
157
|
+
ref,
|
|
177
158
|
) => (
|
|
178
159
|
<DropdownMenuPrimitive.Item
|
|
179
160
|
{...props}
|
|
180
161
|
ref={ref}
|
|
181
|
-
className={cn(
|
|
182
|
-
MenuItemStyles({ variant, size, active }),
|
|
183
|
-
className
|
|
184
|
-
)}
|
|
162
|
+
className={cn(MenuItemStyles({ variant, size, active }), className)}
|
|
185
163
|
>
|
|
186
|
-
<div
|
|
164
|
+
<div>{children}</div>
|
|
187
165
|
</DropdownMenuPrimitive.Item>
|
|
188
|
-
)
|
|
166
|
+
),
|
|
189
167
|
);
|
|
190
168
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
191
169
|
|
|
192
170
|
const DropdownMenuCheckboxItem = React.forwardRef<
|
|
193
171
|
React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
|
|
194
172
|
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> &
|
|
195
|
-
|
|
196
|
-
>(
|
|
197
|
-
|
|
198
|
-
{
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
onSelect
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
</div>
|
|
173
|
+
VariantProps<typeof MenuItemStyles>
|
|
174
|
+
>(({ className, children, checked, variant = "Default", size = "M", onSelect, ...props }, ref) => (
|
|
175
|
+
<DropdownMenuPrimitive.CheckboxItem
|
|
176
|
+
ref={ref}
|
|
177
|
+
className={cn(MenuItemStyles({ variant, size }), "relative", className)}
|
|
178
|
+
checked={checked}
|
|
179
|
+
// Keep the menu open when toggling; preventDefault stops Radix's auto-close.
|
|
180
|
+
onSelect={(event) => {
|
|
181
|
+
event.preventDefault();
|
|
182
|
+
onSelect?.(event);
|
|
183
|
+
}}
|
|
184
|
+
{...props}
|
|
185
|
+
>
|
|
186
|
+
<div className="relative flex items-center">
|
|
187
|
+
<span className="h-full flex items-center justify-center">
|
|
188
|
+
{/* Red dot is the default; hidden once the item is checked. */}
|
|
189
|
+
<div className=" flex justify-center items-center h-full [[data-state=checked]_&]:hidden">
|
|
190
|
+
<div className="w-[16px] h-[16px] rounded-[3px] border border-white-alpha-40 bg-black-alpha-15 group-hover:border-white-700 group-hover:bg-black-alpha-075"></div>
|
|
191
|
+
</div>
|
|
192
|
+
|
|
193
|
+
{/* Blue dot only renders when the item is checked. */}
|
|
194
|
+
<DropdownMenuPrimitive.ItemIndicator>
|
|
195
|
+
<div className="bg-blue-sparkle-600 flex justify-center items-center w-[16px] h-[16px] rounded-[3px]">
|
|
196
|
+
<svg
|
|
197
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
198
|
+
width="14"
|
|
199
|
+
height="14"
|
|
200
|
+
viewBox="0 0 14 14"
|
|
201
|
+
fill="none"
|
|
202
|
+
>
|
|
203
|
+
<path
|
|
204
|
+
d="M5.8339 8.84977L11.1961 3.48755L12.0211 4.3125L5.8339 10.4997L2.12158 6.7874L2.94654 5.96245L5.8339 8.84977Z"
|
|
205
|
+
fill="#F9F9F9"
|
|
206
|
+
/>
|
|
207
|
+
</svg>
|
|
231
208
|
</div>
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
</svg>
|
|
240
|
-
</div>
|
|
241
|
-
</DropdownMenuPrimitive.ItemIndicator>
|
|
242
|
-
</span> {children}</div>
|
|
243
|
-
</DropdownMenuPrimitive.CheckboxItem>
|
|
244
|
-
)
|
|
245
|
-
);
|
|
246
|
-
DropdownMenuCheckboxItem.displayName =
|
|
247
|
-
DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
209
|
+
</DropdownMenuPrimitive.ItemIndicator>
|
|
210
|
+
</span>{" "}
|
|
211
|
+
{children}
|
|
212
|
+
</div>
|
|
213
|
+
</DropdownMenuPrimitive.CheckboxItem>
|
|
214
|
+
));
|
|
215
|
+
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
248
216
|
|
|
249
217
|
const DropdownMenuRadioItem = React.forwardRef<
|
|
250
218
|
React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
|
|
251
219
|
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> &
|
|
252
|
-
|
|
253
|
-
>(
|
|
254
|
-
|
|
255
|
-
{
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
onSelect
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 14" fill="none">
|
|
288
|
-
<rect width="14" height="14" rx="7" fill="#005ECC" />
|
|
289
|
-
<rect x="5" y="5" width="4" height="4" rx="2" fill="white" />
|
|
290
|
-
</svg> </DropdownMenuPrimitive.ItemIndicator>
|
|
291
|
-
</span>
|
|
292
|
-
{children} </div>
|
|
293
|
-
</DropdownMenuPrimitive.RadioItem>
|
|
294
|
-
)
|
|
295
|
-
);
|
|
220
|
+
VariantProps<typeof MenuItemStyles>
|
|
221
|
+
>(({ className, children, variant = "Default", size = "M", onSelect, ...props }, ref) => (
|
|
222
|
+
<DropdownMenuPrimitive.RadioItem
|
|
223
|
+
ref={ref}
|
|
224
|
+
className={cn(MenuItemStyles({ variant, size }), "relative", className)}
|
|
225
|
+
// Keep the menu open when selecting; preventDefault stops Radix's auto-close.
|
|
226
|
+
onSelect={(event) => {
|
|
227
|
+
event.preventDefault();
|
|
228
|
+
onSelect?.(event);
|
|
229
|
+
}}
|
|
230
|
+
{...props}
|
|
231
|
+
>
|
|
232
|
+
<div className="relative flex items-center">
|
|
233
|
+
<span className="h-full left-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
234
|
+
{/* Red dot is the default; hidden once the item is checked. */}
|
|
235
|
+
<div className=" flex justify-center items-center h-full [[data-state=checked]_&]:hidden">
|
|
236
|
+
<div className="w-[14px] h-[14px] rounded-[100px] border border-white-alpha-40 bg-black-alpha-15 group-hover:border-white-700 group-hover:bg-black-alpha-075"></div>
|
|
237
|
+
</div>
|
|
238
|
+
<DropdownMenuPrimitive.ItemIndicator>
|
|
239
|
+
<svg
|
|
240
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
241
|
+
width="14"
|
|
242
|
+
height="16"
|
|
243
|
+
viewBox="0 0 14 14"
|
|
244
|
+
fill="none"
|
|
245
|
+
>
|
|
246
|
+
<rect width="14" height="14" rx="7" fill="#005ECC" />
|
|
247
|
+
<rect x="5" y="5" width="4" height="4" rx="2" fill="white" />
|
|
248
|
+
</svg>{" "}
|
|
249
|
+
</DropdownMenuPrimitive.ItemIndicator>
|
|
250
|
+
</span>
|
|
251
|
+
{children}{" "}
|
|
252
|
+
</div>
|
|
253
|
+
</DropdownMenuPrimitive.RadioItem>
|
|
254
|
+
));
|
|
296
255
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
297
256
|
|
|
298
257
|
// Item types that should be boxed together when sitting loose in the menu.
|
|
@@ -307,9 +266,7 @@ const GROUPABLE_TYPES = [
|
|
|
307
266
|
|
|
308
267
|
const isGroupable = (child: React.ReactNode): child is React.ReactElement =>
|
|
309
268
|
React.isValidElement(child) &&
|
|
310
|
-
(GROUPABLE_TYPES as readonly React.ElementType[]).includes(
|
|
311
|
-
child.type as React.ElementType
|
|
312
|
-
);
|
|
269
|
+
(GROUPABLE_TYPES as readonly React.ElementType[]).includes(child.type as React.ElementType);
|
|
313
270
|
|
|
314
271
|
// Wraps consecutive runs of loose items in a Boxed DropdownMenuGroup so items
|
|
315
272
|
// render inside a container even when the consumer doesn't write one. Labels,
|
|
@@ -323,7 +280,7 @@ function autoGroupChildren(children: React.ReactNode): React.ReactNode {
|
|
|
323
280
|
out.push(
|
|
324
281
|
<DropdownMenuGroup key={key} variant="Boxed">
|
|
325
282
|
{run}
|
|
326
|
-
</DropdownMenuGroup
|
|
283
|
+
</DropdownMenuGroup>,
|
|
327
284
|
);
|
|
328
285
|
run = [];
|
|
329
286
|
};
|
|
@@ -346,25 +303,28 @@ const DropdownMenuLabel = React.forwardRef<
|
|
|
346
303
|
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
|
|
347
304
|
inset?: boolean;
|
|
348
305
|
}
|
|
349
|
-
>(
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
className
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
306
|
+
>(
|
|
307
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- excluded from {...props} spread
|
|
308
|
+
({ className, inset, ...props }, ref) => (
|
|
309
|
+
<DropdownMenuPrimitive.Label
|
|
310
|
+
ref={ref}
|
|
311
|
+
className={cn(
|
|
312
|
+
"text-content-presentation-global-primary-light typography-body-small-medium px-[12px] pt-1 flex justify-start items-center",
|
|
313
|
+
className,
|
|
314
|
+
)}
|
|
315
|
+
{...props}
|
|
316
|
+
/>
|
|
317
|
+
),
|
|
318
|
+
);
|
|
359
319
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
360
320
|
|
|
361
|
-
const DropdownMenuShortcut = ({
|
|
362
|
-
className,
|
|
363
|
-
...props
|
|
364
|
-
}: React.HTMLAttributes<HTMLSpanElement>) => {
|
|
321
|
+
const DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {
|
|
365
322
|
return (
|
|
366
323
|
<span
|
|
367
|
-
className={cn(
|
|
324
|
+
className={cn(
|
|
325
|
+
"ltr:ml-auto rtl:mr-auto rtl:ml-0 text-xs tracking-widest opacity-60",
|
|
326
|
+
className,
|
|
327
|
+
)}
|
|
368
328
|
{...props}
|
|
369
329
|
/>
|
|
370
330
|
);
|
|
@@ -487,7 +447,7 @@ export const MenuItemStyles = cva(
|
|
|
487
447
|
className: ["text-content-presentation-state-negative"],
|
|
488
448
|
},
|
|
489
449
|
],
|
|
490
|
-
}
|
|
450
|
+
},
|
|
491
451
|
);
|
|
492
452
|
|
|
493
453
|
export const menuContentStyles = cva(
|
|
@@ -519,7 +479,7 @@ export const menuContentStyles = cva(
|
|
|
519
479
|
variant: "PresentationStyle",
|
|
520
480
|
},
|
|
521
481
|
},
|
|
522
|
-
}
|
|
482
|
+
},
|
|
523
483
|
);
|
|
524
484
|
|
|
525
485
|
export const menuGroupStyles = cva(["flex", "flex-col", "shrink-0"], {
|
|
@@ -20,7 +20,7 @@ export const glareFieldAlert = cva(
|
|
|
20
20
|
defaultVariants: {
|
|
21
21
|
state: "info",
|
|
22
22
|
},
|
|
23
|
-
}
|
|
23
|
+
},
|
|
24
24
|
);
|
|
25
25
|
|
|
26
26
|
type FieldAlertVariant = "success" | "error" | "warning" | "info";
|
|
@@ -29,17 +29,10 @@ interface Props extends HTMLAttributes<HTMLDivElement> {
|
|
|
29
29
|
label: ReactNode;
|
|
30
30
|
state?: FieldAlertVariant;
|
|
31
31
|
icon?: ReactNode;
|
|
32
|
-
theme?: Themes
|
|
32
|
+
theme?: Themes;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
export const FieldHint: React.FC<Props> = ({
|
|
36
|
-
label,
|
|
37
|
-
state,
|
|
38
|
-
theme,
|
|
39
|
-
icon,
|
|
40
|
-
className,
|
|
41
|
-
...props
|
|
42
|
-
}) => {
|
|
35
|
+
export const FieldHint: React.FC<Props> = ({ label, state, theme, icon, className, ...props }) => {
|
|
43
36
|
return (
|
|
44
37
|
<section
|
|
45
38
|
{...props}
|
|
@@ -48,7 +41,7 @@ export const FieldHint: React.FC<Props> = ({
|
|
|
48
41
|
glareFieldAlert({
|
|
49
42
|
state,
|
|
50
43
|
}),
|
|
51
|
-
className
|
|
44
|
+
className,
|
|
52
45
|
)}
|
|
53
46
|
>
|
|
54
47
|
<section className="flex items-center justify-center min-w-[26px] min-h-[26px] h-full rounded-[4px] text-[18px]">
|