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
|
@@ -45,16 +45,12 @@ const ContextMenu = ({
|
|
|
45
45
|
if (!isControlled) setOpenState(next);
|
|
46
46
|
onOpenChange?.(next);
|
|
47
47
|
},
|
|
48
|
-
[isControlled, onOpenChange]
|
|
48
|
+
[isControlled, onOpenChange],
|
|
49
49
|
);
|
|
50
50
|
|
|
51
51
|
return (
|
|
52
52
|
<ContextMenuOpenContext.Provider value={{ open: actualOpen, setOpen }}>
|
|
53
|
-
<ContextMenuPrimitive.Root
|
|
54
|
-
open={actualOpen}
|
|
55
|
-
onOpenChange={setOpen}
|
|
56
|
-
{...props}
|
|
57
|
-
>
|
|
53
|
+
<ContextMenuPrimitive.Root open={actualOpen} onOpenChange={setOpen} {...props}>
|
|
58
54
|
{children}
|
|
59
55
|
</ContextMenuPrimitive.Root>
|
|
60
56
|
</ContextMenuOpenContext.Provider>
|
|
@@ -96,7 +92,7 @@ const ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
|
96
92
|
const ContextMenuGroup = React.forwardRef<
|
|
97
93
|
React.ElementRef<typeof ContextMenuPrimitive.Group>,
|
|
98
94
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Group> &
|
|
99
|
-
|
|
95
|
+
VariantProps<typeof menuGroupStyles>
|
|
100
96
|
>(({ className, variant = "Boxed", ...props }, ref) => (
|
|
101
97
|
<ContextMenuPrimitive.Group
|
|
102
98
|
ref={ref}
|
|
@@ -109,7 +105,7 @@ ContextMenuGroup.displayName = ContextMenuPrimitive.Group.displayName;
|
|
|
109
105
|
const ContextMenuRadioGroup = React.forwardRef<
|
|
110
106
|
React.ElementRef<typeof ContextMenuPrimitive.RadioGroup>,
|
|
111
107
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioGroup> &
|
|
112
|
-
|
|
108
|
+
VariantProps<typeof menuGroupStyles>
|
|
113
109
|
>(({ className, variant = "Boxed", ...props }, ref) => (
|
|
114
110
|
<ContextMenuPrimitive.RadioGroup
|
|
115
111
|
ref={ref}
|
|
@@ -122,7 +118,7 @@ ContextMenuRadioGroup.displayName = ContextMenuPrimitive.RadioGroup.displayName;
|
|
|
122
118
|
const ContextMenuContent = React.forwardRef<
|
|
123
119
|
React.ElementRef<typeof ContextMenuPrimitive.Content>,
|
|
124
120
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content> &
|
|
125
|
-
|
|
121
|
+
ContextMenuContentProps & { autoGroup?: boolean; maxHeight?: number }
|
|
126
122
|
>(
|
|
127
123
|
(
|
|
128
124
|
{
|
|
@@ -136,7 +132,7 @@ const ContextMenuContent = React.forwardRef<
|
|
|
136
132
|
children,
|
|
137
133
|
...props
|
|
138
134
|
},
|
|
139
|
-
ref
|
|
135
|
+
ref,
|
|
140
136
|
) => (
|
|
141
137
|
<ContextMenuPrimitive.Portal>
|
|
142
138
|
<ContextMenuPrimitive.Content
|
|
@@ -155,7 +151,7 @@ const ContextMenuContent = React.forwardRef<
|
|
|
155
151
|
{autoGroup ? autoGroupChildren(children) : children}
|
|
156
152
|
</ContextMenuPrimitive.Content>
|
|
157
153
|
</ContextMenuPrimitive.Portal>
|
|
158
|
-
)
|
|
154
|
+
),
|
|
159
155
|
);
|
|
160
156
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
161
157
|
|
|
@@ -164,20 +160,19 @@ const ContextMenuSubTrigger = React.forwardRef<
|
|
|
164
160
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {
|
|
165
161
|
inset?: boolean;
|
|
166
162
|
} & VariantProps<typeof MenuItemStyles>
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
);
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- inset destructured to exclude it from spread
|
|
164
|
+
>(({ className, inset, children, variant = "Default", size = "M", ...props }, ref) => (
|
|
165
|
+
<ContextMenuPrimitive.SubTrigger
|
|
166
|
+
ref={ref}
|
|
167
|
+
className={cn(MenuItemStyles({ variant, size }), "justify-between", className)}
|
|
168
|
+
{...props}
|
|
169
|
+
>
|
|
170
|
+
<div className="justify-between">
|
|
171
|
+
<div className="flex gap-2">{children}</div>
|
|
172
|
+
<i className="ri-arrow-right-s-line text-[16px] rtl:rotate-180"></i>
|
|
173
|
+
</div>
|
|
174
|
+
</ContextMenuPrimitive.SubTrigger>
|
|
175
|
+
));
|
|
181
176
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
182
177
|
|
|
183
178
|
const ContextMenuSubContent = React.forwardRef<
|
|
@@ -186,19 +181,17 @@ const ContextMenuSubContent = React.forwardRef<
|
|
|
186
181
|
variant?: "PresentationStyle";
|
|
187
182
|
autoGroup?: boolean;
|
|
188
183
|
}
|
|
189
|
-
>(
|
|
190
|
-
|
|
191
|
-
<ContextMenuPrimitive.
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
)
|
|
201
|
-
);
|
|
184
|
+
>(({ className, variant = "PresentationStyle", autoGroup = true, children, ...props }, ref) => (
|
|
185
|
+
<ContextMenuPrimitive.Portal>
|
|
186
|
+
<ContextMenuPrimitive.SubContent
|
|
187
|
+
ref={ref}
|
|
188
|
+
className={cn(menuContentStyles({ variant }), className)}
|
|
189
|
+
{...props}
|
|
190
|
+
>
|
|
191
|
+
{autoGroup ? autoGroupChildren(children) : children}
|
|
192
|
+
</ContextMenuPrimitive.SubContent>
|
|
193
|
+
</ContextMenuPrimitive.Portal>
|
|
194
|
+
));
|
|
202
195
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
203
196
|
|
|
204
197
|
const ContextMenuItem = React.forwardRef<
|
|
@@ -206,63 +199,69 @@ const ContextMenuItem = React.forwardRef<
|
|
|
206
199
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {
|
|
207
200
|
inset?: boolean;
|
|
208
201
|
} & VariantProps<typeof MenuItemStyles>
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
);
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- inset destructured to exclude it from spread
|
|
203
|
+
>(({ className, inset, children, variant = "Default", size = "M", active, ...props }, ref) => (
|
|
204
|
+
<ContextMenuPrimitive.Item
|
|
205
|
+
{...props}
|
|
206
|
+
ref={ref}
|
|
207
|
+
className={cn(MenuItemStyles({ variant, size, active }), className)}
|
|
208
|
+
>
|
|
209
|
+
<div>{children}</div>
|
|
210
|
+
</ContextMenuPrimitive.Item>
|
|
211
|
+
));
|
|
220
212
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
221
213
|
|
|
222
214
|
const ContextMenuCheckboxItem = React.forwardRef<
|
|
223
215
|
React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,
|
|
224
216
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem> &
|
|
225
|
-
|
|
226
|
-
>(
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
>
|
|
239
|
-
<
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
<div className="
|
|
243
|
-
|
|
244
|
-
</div>
|
|
217
|
+
VariantProps<typeof MenuItemStyles>
|
|
218
|
+
>(({ className, children, checked, variant = "Default", size = "M", onSelect, ...props }, ref) => (
|
|
219
|
+
<ContextMenuPrimitive.CheckboxItem
|
|
220
|
+
ref={ref}
|
|
221
|
+
className={cn(MenuItemStyles({ variant, size }), "relative", className)}
|
|
222
|
+
checked={checked}
|
|
223
|
+
// Keep the menu open when toggling; preventDefault stops Radix's auto-close.
|
|
224
|
+
onSelect={(event) => {
|
|
225
|
+
event.preventDefault();
|
|
226
|
+
onSelect?.(event);
|
|
227
|
+
}}
|
|
228
|
+
{...props}
|
|
229
|
+
>
|
|
230
|
+
<div className="relative flex items-center">
|
|
231
|
+
<span className="h-full flex items-center justify-center">
|
|
232
|
+
{/* Unchecked box; hidden once the item is checked. */}
|
|
233
|
+
<div className="flex justify-center items-center h-full [[data-state=checked]_&]:hidden">
|
|
234
|
+
<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>
|
|
235
|
+
</div>
|
|
245
236
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
237
|
+
{/* Checked indicator only renders when checked. */}
|
|
238
|
+
<ContextMenuPrimitive.ItemIndicator>
|
|
239
|
+
<div className="bg-blue-sparkle-600 flex justify-center items-center w-[16px] h-[16px] rounded-[3px]">
|
|
240
|
+
<svg
|
|
241
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
242
|
+
width="14"
|
|
243
|
+
height="14"
|
|
244
|
+
viewBox="0 0 14 14"
|
|
245
|
+
fill="none"
|
|
246
|
+
>
|
|
247
|
+
<path
|
|
248
|
+
d="M5.8339 8.84977L11.1961 3.48755L12.0211 4.3125L5.8339 10.4997L2.12158 6.7874L2.94654 5.96245L5.8339 8.84977Z"
|
|
249
|
+
fill="#F9F9F9"
|
|
250
|
+
/>
|
|
251
|
+
</svg>
|
|
252
|
+
</div>
|
|
253
|
+
</ContextMenuPrimitive.ItemIndicator>
|
|
254
|
+
</span>{" "}
|
|
255
|
+
{children}
|
|
256
|
+
</div>
|
|
257
|
+
</ContextMenuPrimitive.CheckboxItem>
|
|
258
|
+
));
|
|
260
259
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
261
260
|
|
|
262
261
|
const ContextMenuRadioItem = React.forwardRef<
|
|
263
262
|
React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,
|
|
264
263
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem> &
|
|
265
|
-
|
|
264
|
+
VariantProps<typeof MenuItemStyles>
|
|
266
265
|
>(({ className, children, variant = "Default", size = "M", onSelect, ...props }, ref) => (
|
|
267
266
|
<ContextMenuPrimitive.RadioItem
|
|
268
267
|
ref={ref}
|
|
@@ -281,7 +280,13 @@ const ContextMenuRadioItem = React.forwardRef<
|
|
|
281
280
|
<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>
|
|
282
281
|
</div>
|
|
283
282
|
<ContextMenuPrimitive.ItemIndicator>
|
|
284
|
-
<svg
|
|
283
|
+
<svg
|
|
284
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
285
|
+
width="14"
|
|
286
|
+
height="16"
|
|
287
|
+
viewBox="0 0 14 14"
|
|
288
|
+
fill="none"
|
|
289
|
+
>
|
|
285
290
|
<rect width="14" height="14" rx="7" fill="#005ECC" />
|
|
286
291
|
<rect x="5" y="5" width="4" height="4" rx="2" fill="white" />
|
|
287
292
|
</svg>
|
|
@@ -304,9 +309,7 @@ const GROUPABLE_TYPES = [
|
|
|
304
309
|
|
|
305
310
|
const isGroupable = (child: React.ReactNode): child is React.ReactElement =>
|
|
306
311
|
React.isValidElement(child) &&
|
|
307
|
-
(GROUPABLE_TYPES as readonly React.ElementType[]).includes(
|
|
308
|
-
child.type as React.ElementType
|
|
309
|
-
);
|
|
312
|
+
(GROUPABLE_TYPES as readonly React.ElementType[]).includes(child.type as React.ElementType);
|
|
310
313
|
|
|
311
314
|
// Wraps consecutive runs of loose items in a Boxed ContextMenuGroup so items
|
|
312
315
|
// render inside a container even when the consumer doesn't write one. Labels,
|
|
@@ -320,7 +323,7 @@ function autoGroupChildren(children: React.ReactNode): React.ReactNode {
|
|
|
320
323
|
out.push(
|
|
321
324
|
<ContextMenuGroup key={key} variant="Boxed">
|
|
322
325
|
{run}
|
|
323
|
-
</ContextMenuGroup
|
|
326
|
+
</ContextMenuGroup>,
|
|
324
327
|
);
|
|
325
328
|
run = [];
|
|
326
329
|
};
|
|
@@ -343,22 +346,20 @@ const ContextMenuLabel = React.forwardRef<
|
|
|
343
346
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {
|
|
344
347
|
inset?: boolean;
|
|
345
348
|
}
|
|
349
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- inset destructured to exclude it from spread
|
|
346
350
|
>(({ className, inset, ...props }, ref) => (
|
|
347
351
|
<ContextMenuPrimitive.Label
|
|
348
352
|
ref={ref}
|
|
349
353
|
className={cn(
|
|
350
354
|
"text-content-presentation-global-primary-light typography-body-small-medium px-[12px] pt-1 flex justify-start items-center",
|
|
351
|
-
className
|
|
355
|
+
className,
|
|
352
356
|
)}
|
|
353
357
|
{...props}
|
|
354
358
|
/>
|
|
355
359
|
));
|
|
356
360
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
357
361
|
|
|
358
|
-
const ContextMenuShortcut = ({
|
|
359
|
-
className,
|
|
360
|
-
...props
|
|
361
|
-
}: React.HTMLAttributes<HTMLSpanElement>) => (
|
|
362
|
+
const ContextMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (
|
|
362
363
|
<span
|
|
363
364
|
className={cn("ml-auto ltr:ml-0 rtl:mr-auto text-xs tracking-widest opacity-60", className)}
|
|
364
365
|
{...props}
|
|
@@ -477,7 +478,7 @@ const MenuItemStyles = cva(
|
|
|
477
478
|
className: ["text-content-presentation-state-negative"],
|
|
478
479
|
},
|
|
479
480
|
],
|
|
480
|
-
}
|
|
481
|
+
},
|
|
481
482
|
);
|
|
482
483
|
|
|
483
484
|
const menuContentStyles = cva(
|
|
@@ -509,7 +510,7 @@ const menuContentStyles = cva(
|
|
|
509
510
|
variant: "PresentationStyle",
|
|
510
511
|
},
|
|
511
512
|
},
|
|
512
|
-
}
|
|
513
|
+
},
|
|
513
514
|
);
|
|
514
515
|
|
|
515
516
|
const menuGroupStyles = cva(["flex", "flex-col", "shrink-0"], {
|
|
@@ -25,18 +25,16 @@ export const glareCounterStyles = cva(
|
|
|
25
25
|
defaultVariants: {
|
|
26
26
|
variant: "default",
|
|
27
27
|
},
|
|
28
|
-
}
|
|
28
|
+
},
|
|
29
29
|
);
|
|
30
30
|
|
|
31
31
|
// Extracting the types of the variants used in glareCounterStyles
|
|
32
32
|
export type GlareCounterStylesProps = VariantProps<typeof glareCounterStyles>;
|
|
33
33
|
|
|
34
|
-
interface Props
|
|
35
|
-
extends HTMLAttributes<HTMLDivElement>,
|
|
36
|
-
GlareCounterStylesProps {
|
|
34
|
+
interface Props extends HTMLAttributes<HTMLDivElement>, GlareCounterStylesProps {
|
|
37
35
|
label: number; // label of the counter it should be a number
|
|
38
|
-
theme?: Themes
|
|
39
|
-
className?: string
|
|
36
|
+
theme?: Themes;
|
|
37
|
+
className?: string;
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
export const CountBadge: React.FC<Props> = ({ theme, label, variant, className, ...props }) => {
|