torch-glare 2.3.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 +7 -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 +110 -106
- package/apps/lib/components/CountBadge.tsx +4 -6
- package/apps/lib/components/DataTable.tsx +196 -216
- package/apps/lib/components/DataViews/DataViewRadio.tsx +10 -8
- package/apps/lib/components/DataViews/DataViewsConfigPanel.tsx +21 -55
- 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 +173 -150
- 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 +87 -0
- 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 +111 -114
- package/apps/lib/components/DatePicker.tsx +198 -191
- 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 +144 -181
- 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 +119 -0
- 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 +46 -52
- package/apps/lib/components/SearchableTable.tsx +199 -219
- 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 +47 -24
- package/docs/components/count-badge.md +7 -1
- package/docs/components/data-table.md +45 -33
- package/docs/components/data-views-config-panel.md +18 -14
- package/docs/components/data-views-layout.md +20 -17
- 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 +51 -32
- 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 +187 -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 +60 -41
- package/docs/components/searchable-tree-dialog.md +190 -0
- package/docs/components/searchable-tree.md +200 -0
- package/docs/components/section-block.md +130 -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 +7 -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
|
@@ -1,31 +1,28 @@
|
|
|
1
|
-
"use client"
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import { cn } from "../utils/cn"
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { cn } from "../utils/cn";
|
|
5
5
|
|
|
6
6
|
interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
orientation?: "horizontal" | "vertical";
|
|
8
|
+
decorative?: boolean;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
const Divider = React.forwardRef<HTMLDivElement, DividerProps>(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
)
|
|
28
|
-
)
|
|
29
|
-
Divider.displayName = "Divider"
|
|
12
|
+
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => (
|
|
13
|
+
<div
|
|
14
|
+
ref={ref}
|
|
15
|
+
role={decorative ? "none" : "separator"}
|
|
16
|
+
aria-orientation={decorative ? undefined : orientation}
|
|
17
|
+
className={cn(
|
|
18
|
+
"bg-border-presentation-global-primary",
|
|
19
|
+
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
20
|
+
className,
|
|
21
|
+
)}
|
|
22
|
+
{...props}
|
|
23
|
+
/>
|
|
24
|
+
),
|
|
25
|
+
);
|
|
26
|
+
Divider.displayName = "Divider";
|
|
30
27
|
|
|
31
|
-
export { Divider }
|
|
28
|
+
export { Divider };
|
|
@@ -10,16 +10,13 @@ const Drawer = ({
|
|
|
10
10
|
shouldScaleBackground = true,
|
|
11
11
|
...props
|
|
12
12
|
}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (
|
|
13
|
-
<DrawerPrimitive.Root
|
|
14
|
-
shouldScaleBackground={shouldScaleBackground}
|
|
15
|
-
{...props}
|
|
16
|
-
/>
|
|
13
|
+
<DrawerPrimitive.Root shouldScaleBackground={shouldScaleBackground} {...props} />
|
|
17
14
|
);
|
|
18
15
|
Drawer.displayName = "Drawer";
|
|
19
16
|
|
|
20
|
-
const DrawerNested = (
|
|
21
|
-
|
|
22
|
-
)
|
|
17
|
+
const DrawerNested = (props: React.ComponentProps<typeof DrawerPrimitive.NestedRoot>) => (
|
|
18
|
+
<DrawerPrimitive.NestedRoot {...props} />
|
|
19
|
+
);
|
|
23
20
|
DrawerNested.displayName = "DrawerNested";
|
|
24
21
|
|
|
25
22
|
const DrawerTrigger = DrawerPrimitive.Trigger;
|
|
@@ -32,11 +29,7 @@ const DrawerOverlay = React.forwardRef<
|
|
|
32
29
|
React.ElementRef<typeof DrawerPrimitive.Overlay>,
|
|
33
30
|
React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>
|
|
34
31
|
>(({ className, ...props }, ref) => (
|
|
35
|
-
<DrawerPrimitive.Overlay
|
|
36
|
-
ref={ref}
|
|
37
|
-
className={cn("fixed inset-0 z-50 ", className)}
|
|
38
|
-
{...props}
|
|
39
|
-
/>
|
|
32
|
+
<DrawerPrimitive.Overlay ref={ref} className={cn("fixed inset-0 z-50 ", className)} {...props} />
|
|
40
33
|
));
|
|
41
34
|
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
42
35
|
|
|
@@ -77,77 +70,70 @@ const DrawerContent = React.forwardRef<
|
|
|
77
70
|
) => {
|
|
78
71
|
const framed = framedProp ?? true;
|
|
79
72
|
return (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
className={cn(
|
|
85
|
-
"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col items-stretch m-1",
|
|
86
|
-
wrapperClassName,
|
|
87
|
-
)}
|
|
88
|
-
{...props}
|
|
89
|
-
>
|
|
90
|
-
{notch && (
|
|
91
|
-
<div className={notchSide === "right" ? "self-end" : "self-start"}>
|
|
92
|
-
{React.isValidElement(notch)
|
|
93
|
-
? React.cloneElement(
|
|
94
|
-
notch as React.ReactElement<{ side?: "left" | "right" }>,
|
|
95
|
-
{ side: notchSide },
|
|
96
|
-
)
|
|
97
|
-
: notch}
|
|
98
|
-
</div>
|
|
99
|
-
)}
|
|
100
|
-
<div
|
|
73
|
+
<DrawerPortal>
|
|
74
|
+
<DrawerOverlay />
|
|
75
|
+
<DrawerPrimitive.Content
|
|
76
|
+
ref={ref}
|
|
101
77
|
className={cn(
|
|
102
|
-
"flex
|
|
103
|
-
|
|
104
|
-
? "p-1.5 bg-black-400 shadow-[0_0_4px_rgba(0,0,0,0.2),0_0_30px_rgba(0,0,0,0.4)]"
|
|
105
|
-
: "p-0",
|
|
106
|
-
framed && notch
|
|
107
|
-
? notchSide === "right"
|
|
108
|
-
? "rounded-tr-none rounded-tl-[22px] rounded-b-[22px]"
|
|
109
|
-
: "rounded-tl-none rounded-tr-[22px] rounded-b-[22px]"
|
|
110
|
-
: framed
|
|
111
|
-
? "rounded-t-[22px]"
|
|
112
|
-
: "",
|
|
113
|
-
trayClassName,
|
|
78
|
+
"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col items-stretch m-1",
|
|
79
|
+
wrapperClassName,
|
|
114
80
|
)}
|
|
81
|
+
{...props}
|
|
115
82
|
>
|
|
83
|
+
{notch && (
|
|
84
|
+
<div className={notchSide === "right" ? "self-end" : "self-start"}>
|
|
85
|
+
{React.isValidElement(notch)
|
|
86
|
+
? React.cloneElement(notch as React.ReactElement<{ side?: "left" | "right" }>, {
|
|
87
|
+
side: notchSide,
|
|
88
|
+
})
|
|
89
|
+
: notch}
|
|
90
|
+
</div>
|
|
91
|
+
)}
|
|
116
92
|
<div
|
|
117
|
-
// The content surface is always light (#F0F0F0) regardless of the
|
|
118
|
-
// page theme, so pin a light theme here. This makes theme-aware
|
|
119
|
-
// content tokens (DrawerTitle/Description and any consumer content)
|
|
120
|
-
// resolve to their dark-on-light values instead of following a dark
|
|
121
|
-
// page theme (which would render white-on-light = invisible).
|
|
122
|
-
data-theme="light"
|
|
123
93
|
className={cn(
|
|
124
|
-
"flex flex-1 flex-col
|
|
125
|
-
framed
|
|
126
|
-
|
|
94
|
+
"flex flex-1 flex-col min-h-0",
|
|
95
|
+
framed
|
|
96
|
+
? "p-1.5 bg-black-400 shadow-[0_0_4px_rgba(0,0,0,0.2),0_0_30px_rgba(0,0,0,0.4)]"
|
|
97
|
+
: "p-0",
|
|
98
|
+
framed && notch
|
|
99
|
+
? notchSide === "right"
|
|
100
|
+
? "rounded-tr-none rounded-tl-[22px] rounded-b-[22px]"
|
|
101
|
+
: "rounded-tl-none rounded-tr-[22px] rounded-b-[22px]"
|
|
102
|
+
: framed
|
|
103
|
+
? "rounded-t-[22px]"
|
|
104
|
+
: "",
|
|
105
|
+
trayClassName,
|
|
127
106
|
)}
|
|
128
107
|
>
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
108
|
+
<div
|
|
109
|
+
// The content surface is always light (#F0F0F0) regardless of the
|
|
110
|
+
// page theme, so pin a light theme here. This makes theme-aware
|
|
111
|
+
// content tokens (DrawerTitle/Description and any consumer content)
|
|
112
|
+
// resolve to their dark-on-light values instead of following a dark
|
|
113
|
+
// page theme (which would render white-on-light = invisible).
|
|
114
|
+
data-theme="light"
|
|
115
|
+
className={cn(
|
|
116
|
+
"flex flex-1 flex-col gap-2 rounded-t-[16px] p-1.5 bg-[#F0F0F0] min-h-0",
|
|
117
|
+
framed && "border border-[#D4D4D4] shadow-[inset_0_-4px_16px_rgba(0,0,0,0.1)]",
|
|
118
|
+
className,
|
|
119
|
+
)}
|
|
120
|
+
>
|
|
121
|
+
{showHandle && !notch && (
|
|
122
|
+
<div className="mx-auto h-2 w-[100px] rounded-full bg-[#D4D4D4]" />
|
|
123
|
+
)}
|
|
124
|
+
{children}
|
|
125
|
+
</div>
|
|
133
126
|
</div>
|
|
134
|
-
</
|
|
135
|
-
</
|
|
136
|
-
</DrawerPortal>
|
|
127
|
+
</DrawerPrimitive.Content>
|
|
128
|
+
</DrawerPortal>
|
|
137
129
|
);
|
|
138
130
|
},
|
|
139
131
|
);
|
|
140
132
|
DrawerContent.displayName = "DrawerContent";
|
|
141
133
|
|
|
142
|
-
const DrawerHeader = ({
|
|
143
|
-
className,
|
|
144
|
-
...props
|
|
145
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
134
|
+
const DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
|
|
146
135
|
<div
|
|
147
|
-
className={cn(
|
|
148
|
-
"flex flex-row justify-between items-stretch gap-2 px-1 pt-1",
|
|
149
|
-
className,
|
|
150
|
-
)}
|
|
136
|
+
className={cn("flex flex-row justify-between items-stretch gap-2 px-1 pt-1", className)}
|
|
151
137
|
{...props}
|
|
152
138
|
/>
|
|
153
139
|
);
|
|
@@ -159,25 +145,15 @@ const drawerHeaderPane = cva(
|
|
|
159
145
|
"flex items-center gap-2 rounded-[14px] border p-2 bg-[#131415] border-[#2C2D2E] shadow-[0_0_32px_2px_rgba(0,0,0,0.05)] [&_[data-slot=drawer-title]]:text-white [&_[data-slot=drawer-description]]:text-[#9FA0A1]",
|
|
160
146
|
);
|
|
161
147
|
|
|
162
|
-
const DrawerHeaderTitle = ({
|
|
163
|
-
className,
|
|
164
|
-
...props
|
|
165
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
148
|
+
const DrawerHeaderTitle = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
|
|
166
149
|
// Dark surface — pin a dark theme so any buttons/content inside resolve their
|
|
167
150
|
// theme tokens for dark (the surrounding content surface is data-theme=light).
|
|
168
151
|
<div data-theme="dark" className={cn(drawerHeaderPane(), className)} {...props} />
|
|
169
152
|
);
|
|
170
153
|
DrawerHeaderTitle.displayName = "DrawerHeaderTitle";
|
|
171
154
|
|
|
172
|
-
const DrawerHeaderActions = ({
|
|
173
|
-
className,
|
|
174
|
-
...props
|
|
175
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
176
|
-
<div
|
|
177
|
-
data-theme="dark"
|
|
178
|
-
className={cn(drawerHeaderPane(), "justify-end", className)}
|
|
179
|
-
{...props}
|
|
180
|
-
/>
|
|
155
|
+
const DrawerHeaderActions = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
|
|
156
|
+
<div data-theme="dark" className={cn(drawerHeaderPane(), "justify-end", className)} {...props} />
|
|
181
157
|
);
|
|
182
158
|
DrawerHeaderActions.displayName = "DrawerHeaderActions";
|
|
183
159
|
|
|
@@ -199,29 +175,17 @@ const drawerBadge = cva(
|
|
|
199
175
|
);
|
|
200
176
|
|
|
201
177
|
interface DrawerBadgeProps
|
|
202
|
-
extends
|
|
203
|
-
Omit<React.HTMLAttributes<HTMLSpanElement>, "color">,
|
|
204
|
-
VariantProps<typeof drawerBadge> {}
|
|
178
|
+
extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color">, VariantProps<typeof drawerBadge> {}
|
|
205
179
|
|
|
206
180
|
const DrawerBadge = React.forwardRef<HTMLSpanElement, DrawerBadgeProps>(
|
|
207
181
|
({ className, color, ...props }, ref) => (
|
|
208
|
-
<span
|
|
209
|
-
ref={ref}
|
|
210
|
-
className={cn(drawerBadge({ color }), className)}
|
|
211
|
-
{...props}
|
|
212
|
-
/>
|
|
182
|
+
<span ref={ref} className={cn(drawerBadge({ color }), className)} {...props} />
|
|
213
183
|
),
|
|
214
184
|
);
|
|
215
185
|
DrawerBadge.displayName = "DrawerBadge";
|
|
216
186
|
|
|
217
|
-
const DrawerFooter = ({
|
|
218
|
-
className,
|
|
219
|
-
...props
|
|
220
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
221
|
-
<div
|
|
222
|
-
className={cn("mt-auto flex flex-col gap-2 p-4", className)}
|
|
223
|
-
{...props}
|
|
224
|
-
/>
|
|
187
|
+
const DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
|
|
188
|
+
<div className={cn("mt-auto flex flex-col gap-2 p-4", className)} {...props} />
|
|
225
189
|
);
|
|
226
190
|
DrawerFooter.displayName = "DrawerFooter";
|
|
227
191
|
|
|
@@ -229,23 +193,12 @@ interface DrawerNotchProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
229
193
|
side?: "left" | "right";
|
|
230
194
|
}
|
|
231
195
|
|
|
232
|
-
const DrawerNotch = ({
|
|
233
|
-
className,
|
|
234
|
-
children,
|
|
235
|
-
side = "left",
|
|
236
|
-
...props
|
|
237
|
-
}: DrawerNotchProps) => {
|
|
196
|
+
const DrawerNotch = ({ className, children, side = "left", ...props }: DrawerNotchProps) => {
|
|
238
197
|
// Wedge bridges the notch's bottom-edge corner into the tray's top edge.
|
|
239
198
|
// For a left-attached notch (the default), the wedge sits at the notch's
|
|
240
199
|
// bottom-right; for a right-attached notch, mirror it to the bottom-left.
|
|
241
200
|
const wedge = (
|
|
242
|
-
<svg
|
|
243
|
-
aria-hidden
|
|
244
|
-
width="12"
|
|
245
|
-
height="12"
|
|
246
|
-
viewBox="0 0 12 12"
|
|
247
|
-
className="block shrink-0 self-end"
|
|
248
|
-
>
|
|
201
|
+
<svg aria-hidden width="12" height="12" viewBox="0 0 12 12" className="block shrink-0 self-end">
|
|
249
202
|
<path
|
|
250
203
|
d={
|
|
251
204
|
side === "right"
|
|
@@ -314,30 +267,22 @@ interface DrawerNotchPillProps
|
|
|
314
267
|
Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "color">,
|
|
315
268
|
VariantProps<typeof drawerNotchPill> {}
|
|
316
269
|
|
|
317
|
-
const DrawerNotchPill = React.forwardRef<
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
));
|
|
270
|
+
const DrawerNotchPill = React.forwardRef<HTMLButtonElement, DrawerNotchPillProps>(
|
|
271
|
+
({ className, color, children, ...props }, ref) => (
|
|
272
|
+
<button
|
|
273
|
+
ref={ref}
|
|
274
|
+
type="button"
|
|
275
|
+
className={cn(drawerNotchPill({ color }), className)}
|
|
276
|
+
{...props}
|
|
277
|
+
>
|
|
278
|
+
{children}
|
|
279
|
+
</button>
|
|
280
|
+
),
|
|
281
|
+
);
|
|
330
282
|
DrawerNotchPill.displayName = "DrawerNotchPill";
|
|
331
283
|
|
|
332
|
-
const DrawerNotchDivider = ({
|
|
333
|
-
className,
|
|
334
|
-
...props
|
|
335
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
336
|
-
<div
|
|
337
|
-
aria-hidden
|
|
338
|
-
className={cn("h-[18px] w-px bg-white/20", className)}
|
|
339
|
-
{...props}
|
|
340
|
-
/>
|
|
284
|
+
const DrawerNotchDivider = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
|
|
285
|
+
<div aria-hidden className={cn("h-[18px] w-px bg-white/20", className)} {...props} />
|
|
341
286
|
);
|
|
342
287
|
DrawerNotchDivider.displayName = "DrawerNotchDivider";
|
|
343
288
|
|
|
@@ -346,12 +291,7 @@ interface DrawerNotchAppProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
346
291
|
name: React.ReactNode;
|
|
347
292
|
}
|
|
348
293
|
|
|
349
|
-
const DrawerNotchApp = ({
|
|
350
|
-
className,
|
|
351
|
-
icon,
|
|
352
|
-
name,
|
|
353
|
-
...props
|
|
354
|
-
}: DrawerNotchAppProps) => (
|
|
294
|
+
const DrawerNotchApp = ({ className, icon, name, ...props }: DrawerNotchAppProps) => (
|
|
355
295
|
<div className={cn("flex items-center gap-2.5 px-1", className)} {...props}>
|
|
356
296
|
{icon && (
|
|
357
297
|
<div className="flex h-[22px] w-[22px] items-center justify-center overflow-hidden rounded-[5.6px] bg-black shadow-[0_0_4.66px_rgba(0,0,0,0.3),0_0.75px_0.75px_rgba(0,0,0,0.2)]">
|