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
|
@@ -6,27 +6,24 @@ import { Slot } from "@radix-ui/react-slot";
|
|
|
6
6
|
import Counter from "../components/CountBadge";
|
|
7
7
|
import { Tooltip } from "../components/Tooltip";
|
|
8
8
|
|
|
9
|
-
interface LayoutProps
|
|
10
|
-
extends HTMLAttributes<HTMLDivElement> {
|
|
11
|
-
}
|
|
9
|
+
interface LayoutProps extends HTMLAttributes<HTMLDivElement> {}
|
|
12
10
|
function Layout({ ...props }: LayoutProps) {
|
|
13
11
|
return (
|
|
14
|
-
<div
|
|
12
|
+
<div
|
|
13
|
+
{...props}
|
|
14
|
+
className="flex h-[100dvh] flex-1 lg:gap-[10px] bg-background-system-body-base lg:p-[16px]"
|
|
15
|
+
>
|
|
15
16
|
{props.children}
|
|
16
17
|
</div>
|
|
17
18
|
);
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
interface ContentProps
|
|
21
|
-
extends HTMLAttributes<HTMLDivElement> {
|
|
22
|
-
}
|
|
21
|
+
interface ContentProps extends HTMLAttributes<HTMLDivElement> {}
|
|
23
22
|
function Body({ ...props }: ContentProps) {
|
|
24
23
|
return (
|
|
25
24
|
<main {...props} className={cn("flex flex-grow flex-1 overflow-y-auto", props.className)}>
|
|
26
25
|
<div className="flex lg:rounded-[12px] bg-background-system-body-tertiary shadow-[0px_0px_18px_0px_rgba(0,0,0,0.75)] flex-1 flex-grow lg:p-1">
|
|
27
|
-
<div
|
|
28
|
-
className="relative lg:rounded-lg flex-1 flex-grow overflow-scroll scrollbar-hide lg:p-[2px] lg:bg-[linear-gradient(143deg,var(--blue-sparkle-600)_0px,rgba(44,45,46,1)_55px)]"
|
|
29
|
-
>
|
|
26
|
+
<div className="relative lg:rounded-lg flex-1 flex-grow overflow-scroll scrollbar-hide lg:p-[2px] lg:bg-[linear-gradient(143deg,var(--blue-sparkle-600)_0px,rgba(44,45,46,1)_55px)]">
|
|
30
27
|
<div
|
|
31
28
|
className="absolute top-[2px] w-[170px] rounded-t-[6px] z-10 lg:h-[60px]
|
|
32
29
|
left-[2px] ltr:lg:bg-[linear-gradient(132deg,#0D0F4E_0%,#000_50%)]
|
|
@@ -39,23 +36,37 @@ function Body({ ...props }: ContentProps) {
|
|
|
39
36
|
);
|
|
40
37
|
}
|
|
41
38
|
|
|
42
|
-
interface SideBarProps
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
children?: ReactNode
|
|
39
|
+
interface SideBarProps extends HTMLAttributes<HTMLDivElement> {
|
|
40
|
+
iconButtons?: ReactNode;
|
|
41
|
+
headerChild?: ReactNode;
|
|
42
|
+
navigationChildren?: ReactNode;
|
|
43
|
+
footerChildren?: ReactNode;
|
|
44
|
+
children?: ReactNode;
|
|
49
45
|
}
|
|
50
|
-
function SideBar({
|
|
46
|
+
function SideBar({
|
|
47
|
+
children,
|
|
48
|
+
footerChildren,
|
|
49
|
+
headerChild,
|
|
50
|
+
navigationChildren,
|
|
51
|
+
iconButtons,
|
|
52
|
+
...props
|
|
53
|
+
}: SideBarProps) {
|
|
51
54
|
return (
|
|
52
55
|
<aside
|
|
53
56
|
{...props}
|
|
54
|
-
className={cn(
|
|
57
|
+
className={cn(
|
|
58
|
+
"hidden w-[265px] p-1 flex-shrink-0 items-start rounded-xl bg-background-system-body-tertiary shadow-[0px_0px_18px_0px_rgba(0,0,0,0.75)] h-full lg:flex",
|
|
59
|
+
props.className,
|
|
60
|
+
)}
|
|
55
61
|
>
|
|
56
|
-
<div
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
<div
|
|
63
|
+
className={cn(
|
|
64
|
+
"grid grid-rows-[56px_1fr] w-full rounded-lg border border-border-system-global-primary h-full gap-[1px]",
|
|
65
|
+
{
|
|
66
|
+
flex: children,
|
|
67
|
+
},
|
|
68
|
+
)}
|
|
69
|
+
>
|
|
59
70
|
{children ? (
|
|
60
71
|
children
|
|
61
72
|
) : (
|
|
@@ -72,16 +83,13 @@ function SideBar({ children, footerChildren, headerChild, navigationChildren, ic
|
|
|
72
83
|
|
|
73
84
|
{/* Navigation Section */}
|
|
74
85
|
<div className="scrollbar-hide h-full gap-[1px] overflow-scroll grid grid-rows-[1fr_auto] grid-cols-1 rounded-br-lg rtl:rounded-bl-lg rtl:rounded-br-none">
|
|
75
|
-
<div className="flex flex-col h-full overflow-scroll scrollbar-hide"
|
|
76
|
-
>
|
|
86
|
+
<div className="flex flex-col h-full overflow-scroll scrollbar-hide">
|
|
77
87
|
<div className="flex flex-col gap-[1px] overflow-scroll scrollbar-hide">
|
|
78
|
-
{Array.isArray(navigationChildren)
|
|
79
|
-
navigationChildren.map((child, index) => (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
navigationChildren
|
|
84
|
-
)}
|
|
88
|
+
{Array.isArray(navigationChildren)
|
|
89
|
+
? navigationChildren.map((child, index) => (
|
|
90
|
+
<SideBarChildContainer key={index}>{child}</SideBarChildContainer>
|
|
91
|
+
))
|
|
92
|
+
: navigationChildren}
|
|
85
93
|
</div>
|
|
86
94
|
<SideBarChildContainer className="flex-1" />
|
|
87
95
|
</div>
|
|
@@ -90,7 +98,6 @@ function SideBar({ children, footerChildren, headerChild, navigationChildren, ic
|
|
|
90
98
|
{footerChildren}
|
|
91
99
|
</SideBarChildContainer>
|
|
92
100
|
</div>
|
|
93
|
-
|
|
94
101
|
</div>
|
|
95
102
|
</>
|
|
96
103
|
)}
|
|
@@ -99,49 +106,48 @@ function SideBar({ children, footerChildren, headerChild, navigationChildren, ic
|
|
|
99
106
|
);
|
|
100
107
|
}
|
|
101
108
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
interface ChildProps
|
|
105
|
-
extends HTMLAttributes<HTMLDivElement> {
|
|
106
|
-
theme?: Themes
|
|
109
|
+
interface ChildProps extends HTMLAttributes<HTMLDivElement> {
|
|
110
|
+
theme?: Themes;
|
|
107
111
|
}
|
|
108
112
|
|
|
109
113
|
const SideBarChildContainer = ({ theme, ...props }: ChildProps) => {
|
|
110
114
|
return (
|
|
111
|
-
<div
|
|
115
|
+
<div
|
|
116
|
+
{...props}
|
|
117
|
+
data-theme={theme}
|
|
118
|
+
className={cn("w-full py-2 bg-background-system-body-base pr-2", props.className)}
|
|
119
|
+
>
|
|
112
120
|
{props.children}
|
|
113
121
|
</div>
|
|
114
|
-
)
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const SideBarItemStyles = cva([
|
|
120
|
-
"h-[40px] w-full px-[8px] flex gap-[6px] typography-body-small-medium justify-start items-center",
|
|
121
|
-
"text-content-system-global-primary border-l-[2px] rtl:border-r-[2px] border-transparent outline-none",
|
|
122
|
-
"hover:bg-white-alpha-075 hover:border-black-300 hover:text-content-system-action-primary-hover hover:px-[14px]",
|
|
123
|
-
"rounded-r-[4px] text-start whitespace-nowrap transition-all duration-150 ease-in-out cursor-pointer",
|
|
122
|
+
);
|
|
123
|
+
};
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
const SideBarItemStyles = cva(
|
|
126
|
+
[
|
|
127
|
+
"h-[40px] w-full px-[8px] flex gap-[6px] typography-body-small-medium justify-start items-center",
|
|
128
|
+
"text-content-system-global-primary border-l-[2px] rtl:border-r-[2px] border-transparent outline-none",
|
|
129
|
+
"hover:bg-white-alpha-075 hover:border-black-300 hover:text-content-system-action-primary-hover hover:px-[14px]",
|
|
130
|
+
"rounded-r-[4px] text-start whitespace-nowrap transition-all duration-150 ease-in-out cursor-pointer",
|
|
131
|
+
],
|
|
126
132
|
{
|
|
127
133
|
variants: {
|
|
128
134
|
disabled: {
|
|
129
|
-
true: "text-content-system-global-disabled bg-transparent hover:bg-transparent fucus:bg-transparent active:bg-transparent"
|
|
135
|
+
true: "text-content-system-global-disabled bg-transparent hover:bg-transparent fucus:bg-transparent active:bg-transparent",
|
|
130
136
|
},
|
|
131
137
|
active: {
|
|
132
|
-
true: "hover:px-[8px] !px-[8px]"
|
|
138
|
+
true: "hover:px-[8px] !px-[8px]",
|
|
133
139
|
},
|
|
134
140
|
iconOnly: {
|
|
135
|
-
true: "w-[40px] justify-center overflow-hidden"
|
|
141
|
+
true: "w-[40px] justify-center overflow-hidden",
|
|
136
142
|
},
|
|
137
143
|
variant: {
|
|
138
144
|
default: [
|
|
139
|
-
"fucus:bg-background-system-action-primary-hover fucus:border-border-system-action-primary-hover"
|
|
145
|
+
"fucus:bg-background-system-action-primary-hover fucus:border-border-system-action-primary-hover",
|
|
146
|
+
],
|
|
140
147
|
secondary: [
|
|
141
148
|
"focus:bg-wavy-navy-1000 focus:border-border-system-action-field-hover-selected",
|
|
142
149
|
],
|
|
143
|
-
|
|
144
|
-
}
|
|
150
|
+
},
|
|
145
151
|
},
|
|
146
152
|
compoundVariants: [
|
|
147
153
|
{
|
|
@@ -149,134 +155,164 @@ const SideBarItemStyles = cva([
|
|
|
149
155
|
variant: "default",
|
|
150
156
|
className: [
|
|
151
157
|
"bg-background-system-action-primary-hover border-border-system-action-primary-hover !px-[8px] hover:px-[8px]",
|
|
152
|
-
]
|
|
158
|
+
],
|
|
153
159
|
},
|
|
154
160
|
{
|
|
155
161
|
active: true,
|
|
156
162
|
variant: "secondary",
|
|
157
163
|
className: [
|
|
158
164
|
"bg-wavy-navy-1000 border-border-system-action-field-hover-selected !px-[8px] hover:px-[8px]",
|
|
159
|
-
]
|
|
165
|
+
],
|
|
160
166
|
},
|
|
161
167
|
{
|
|
162
168
|
disabled: true,
|
|
163
169
|
variant: "secondary",
|
|
164
170
|
className: [
|
|
165
171
|
"bg-transparent hover:bg-transparent focus:bg-transparent active:bg-transparent hover:p-[8px] hover:text-content-system-global-disabled",
|
|
166
|
-
]
|
|
172
|
+
],
|
|
167
173
|
},
|
|
168
174
|
{
|
|
169
175
|
disabled: true,
|
|
170
176
|
variant: "default",
|
|
171
177
|
className: [
|
|
172
178
|
"bg-transparent hover:bg-transparent focus:bg-transparent active:bg-transparent hover:p-[8px] hover:text-content-system-global-disabled",
|
|
173
|
-
]
|
|
174
|
-
}
|
|
179
|
+
],
|
|
180
|
+
},
|
|
175
181
|
],
|
|
176
182
|
defaultVariants: {
|
|
177
183
|
variant: "default",
|
|
178
184
|
},
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
|
|
185
|
+
},
|
|
186
|
+
);
|
|
182
187
|
|
|
183
188
|
interface Props
|
|
184
|
-
extends ButtonHTMLAttributes<HTMLButtonElement>,
|
|
185
|
-
VariantProps<typeof SideBarItemStyles> {
|
|
189
|
+
extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof SideBarItemStyles> {
|
|
186
190
|
asChild?: boolean;
|
|
187
191
|
as?: React.ElementType;
|
|
188
|
-
theme?: Themes
|
|
189
|
-
variant?: "default" | "secondary"
|
|
190
|
-
iconOnly?: boolean
|
|
191
|
-
active?: boolean
|
|
192
|
-
disabled?: boolean
|
|
192
|
+
theme?: Themes;
|
|
193
|
+
variant?: "default" | "secondary";
|
|
194
|
+
iconOnly?: boolean;
|
|
195
|
+
active?: boolean;
|
|
196
|
+
disabled?: boolean;
|
|
193
197
|
}
|
|
194
|
-
const SideBarItem = ({
|
|
198
|
+
const SideBarItem = ({
|
|
199
|
+
active,
|
|
200
|
+
disabled,
|
|
201
|
+
iconOnly,
|
|
202
|
+
asChild,
|
|
203
|
+
as: Tag = "span",
|
|
204
|
+
theme,
|
|
205
|
+
className,
|
|
206
|
+
variant,
|
|
207
|
+
...props
|
|
208
|
+
}: Props) => {
|
|
195
209
|
const Component = asChild ? Slot : Tag;
|
|
196
210
|
|
|
197
211
|
return (
|
|
198
|
-
<Component
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
|
|
212
|
+
<Component
|
|
213
|
+
{...props}
|
|
214
|
+
data-theme={theme}
|
|
215
|
+
disabled={disabled}
|
|
216
|
+
className={cn(SideBarItemStyles({ variant, iconOnly, active, disabled }), className)}
|
|
217
|
+
></Component>
|
|
218
|
+
);
|
|
219
|
+
};
|
|
204
220
|
|
|
205
|
-
const SideBarIconButtonStyles = cva(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
],
|
|
221
|
+
const SideBarIconButtonStyles = cva(
|
|
222
|
+
[
|
|
223
|
+
"h-[36px] w-[36px] flex text-content-system-global-primary text-[20px] justify-center items-center rounded-[8px] border border-transparent outline-none",
|
|
224
|
+
"fucus:bg-border-system-action-primary-Hover active:bg-border-system-action-primary-Hover",
|
|
225
|
+
"transition-all duration-200 ease-in-out flex-shrink-0 m-[5px] relative cursor-pointer",
|
|
226
|
+
],
|
|
210
227
|
{
|
|
211
228
|
variants: {
|
|
212
229
|
active: {
|
|
213
|
-
true: ""
|
|
230
|
+
true: "",
|
|
214
231
|
},
|
|
215
232
|
variant: {
|
|
216
|
-
default: [
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
233
|
+
default: [
|
|
234
|
+
"hover:bg-background-system-action-secondary-hover hover:border-border-system-action-primary-hover",
|
|
235
|
+
],
|
|
236
|
+
secondary: [
|
|
237
|
+
"hover:bg-wavy-navy-1000 hover:border-border-system-action-field-hover-selected",
|
|
238
|
+
],
|
|
239
|
+
},
|
|
220
240
|
},
|
|
221
241
|
compoundVariants: [
|
|
222
242
|
{
|
|
223
243
|
active: true,
|
|
224
244
|
variant: "default",
|
|
225
245
|
className: [
|
|
226
|
-
"bg-background-system-action-secondary-hover border-border-system-action-primary-hover"
|
|
246
|
+
"bg-background-system-action-secondary-hover border-border-system-action-primary-hover",
|
|
247
|
+
],
|
|
227
248
|
},
|
|
228
249
|
{
|
|
229
250
|
active: true,
|
|
230
251
|
variant: "secondary",
|
|
231
252
|
className: [
|
|
232
|
-
"bg-background-system-action-secondary-hover border-border-system-action-primary-hover"
|
|
233
|
-
]
|
|
234
|
-
}
|
|
253
|
+
"bg-background-system-action-secondary-hover border-border-system-action-primary-hover",
|
|
254
|
+
],
|
|
255
|
+
},
|
|
235
256
|
],
|
|
236
257
|
defaultVariants: {
|
|
237
258
|
variant: "default",
|
|
238
259
|
},
|
|
239
|
-
}
|
|
240
|
-
|
|
260
|
+
},
|
|
261
|
+
);
|
|
241
262
|
|
|
242
263
|
interface SideBarIconButtonProps
|
|
243
|
-
extends ButtonHTMLAttributes<HTMLButtonElement>,
|
|
244
|
-
VariantProps<typeof SideBarItemStyles> {
|
|
264
|
+
extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof SideBarItemStyles> {
|
|
245
265
|
asChild?: boolean;
|
|
246
266
|
as?: React.ElementType;
|
|
247
|
-
theme?: Themes
|
|
248
|
-
variant?: "default" | "secondary"
|
|
249
|
-
active?: boolean
|
|
250
|
-
count?: number
|
|
251
|
-
message?: ReactNode
|
|
252
|
-
disabled?: boolean
|
|
267
|
+
theme?: Themes;
|
|
268
|
+
variant?: "default" | "secondary";
|
|
269
|
+
active?: boolean;
|
|
270
|
+
count?: number;
|
|
271
|
+
message?: ReactNode;
|
|
272
|
+
disabled?: boolean;
|
|
253
273
|
}
|
|
254
274
|
|
|
255
|
-
const SideBarIconButton = ({
|
|
275
|
+
const SideBarIconButton = ({
|
|
276
|
+
count,
|
|
277
|
+
active,
|
|
278
|
+
asChild,
|
|
279
|
+
message,
|
|
280
|
+
as: Tag = "button",
|
|
281
|
+
theme,
|
|
282
|
+
variant,
|
|
283
|
+
className,
|
|
284
|
+
...props
|
|
285
|
+
}: SideBarIconButtonProps) => {
|
|
256
286
|
const Component = asChild ? Slot : Tag;
|
|
257
287
|
|
|
258
|
-
return (
|
|
259
|
-
message
|
|
260
|
-
<
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
</Tooltip>
|
|
266
|
-
:
|
|
267
|
-
<Component {...props} data-theme={theme} className={cn(SideBarIconButtonStyles({ variant, active }))}>
|
|
288
|
+
return message ? (
|
|
289
|
+
<Tooltip variant={"highlight"} text={message} toolTipSide="left" className="z-[1000]">
|
|
290
|
+
<Component
|
|
291
|
+
{...props}
|
|
292
|
+
data-theme={theme}
|
|
293
|
+
className={cn(SideBarIconButtonStyles({ variant, active }), className)}
|
|
294
|
+
>
|
|
268
295
|
{props.children}
|
|
269
|
-
{count && <Counter className=
|
|
296
|
+
{count && <Counter className=" absolute top-[2px] right-[2px]" label={count} />}
|
|
270
297
|
</Component>
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
298
|
+
</Tooltip>
|
|
299
|
+
) : (
|
|
300
|
+
<Component
|
|
301
|
+
{...props}
|
|
302
|
+
data-theme={theme}
|
|
303
|
+
className={cn(SideBarIconButtonStyles({ variant, active }))}
|
|
304
|
+
>
|
|
305
|
+
{props.children}
|
|
306
|
+
{count && <Counter className=" absolute top-[2px] right-[2px]" label={count} />}
|
|
307
|
+
</Component>
|
|
308
|
+
);
|
|
309
|
+
};
|
|
274
310
|
|
|
275
311
|
interface SideBarFooterItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
276
|
-
theme?: Themes
|
|
312
|
+
theme?: Themes;
|
|
277
313
|
as?: React.ElementType;
|
|
278
314
|
asChild?: boolean;
|
|
279
|
-
variant?: "primary" | "secondary"
|
|
315
|
+
variant?: "primary" | "secondary";
|
|
280
316
|
}
|
|
281
317
|
|
|
282
318
|
const glareFeedbackItemStyle = cva(
|
|
@@ -286,27 +322,34 @@ const glareFeedbackItemStyle = cva(
|
|
|
286
322
|
"border border-transparent outline-none bg-background-system-body-base",
|
|
287
323
|
"focus:bg-background-system-action-primary-selected",
|
|
288
324
|
"transition-all duration-200 ease-in-out",
|
|
289
|
-
],
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
[
|
|
325
|
+
],
|
|
326
|
+
{
|
|
327
|
+
variants: {
|
|
328
|
+
variant: {
|
|
329
|
+
primary: [
|
|
294
330
|
"hover:bg-background-system-action-primary-hover hover:border-border-system-action-primary-hover",
|
|
295
|
-
"active:bg-background-system-action-primary-hover active:border-border-system-action-primary-hover "
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
331
|
+
"active:bg-background-system-action-primary-hover active:border-border-system-action-primary-hover ",
|
|
332
|
+
],
|
|
333
|
+
secondary: [
|
|
334
|
+
"hover:bg-wavy-navy-1000 hover:border-border-system-action-field-hover-selected",
|
|
335
|
+
"active:bg-wavy-navy-1000 active:border-border-system-action-field-hover-selected",
|
|
336
|
+
],
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
defaultVariants: {
|
|
340
|
+
variant: "primary",
|
|
341
|
+
},
|
|
300
342
|
},
|
|
301
|
-
defaultVariants: {
|
|
302
|
-
variant: "primary"
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
343
|
);
|
|
306
344
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
as: Tag = "button",
|
|
345
|
+
const SideBarFooterItem: React.FC<SideBarFooterItemProps> = ({
|
|
346
|
+
asChild,
|
|
347
|
+
as: Tag = "button",
|
|
348
|
+
theme,
|
|
349
|
+
variant,
|
|
350
|
+
className,
|
|
351
|
+
...props
|
|
352
|
+
}) => {
|
|
310
353
|
const Component = asChild ? Slot : Tag;
|
|
311
354
|
|
|
312
355
|
return (
|
|
@@ -314,12 +357,10 @@ const SideBarFooterItem: React.FC<SideBarFooterItemProps> = ({ asChild,
|
|
|
314
357
|
data-theme={theme}
|
|
315
358
|
{...props}
|
|
316
359
|
className={cn(glareFeedbackItemStyle({ variant }), className)}
|
|
317
|
-
>
|
|
318
|
-
</Component>
|
|
360
|
+
></Component>
|
|
319
361
|
);
|
|
320
362
|
};
|
|
321
363
|
|
|
322
|
-
|
|
323
364
|
export {
|
|
324
365
|
SideBar,
|
|
325
366
|
SideBarFooterItem,
|
|
@@ -327,5 +368,5 @@ export {
|
|
|
327
368
|
SideBarChildContainer,
|
|
328
369
|
SideBarIconButton,
|
|
329
370
|
Body,
|
|
330
|
-
Layout
|
|
331
|
-
}
|
|
371
|
+
Layout,
|
|
372
|
+
};
|
|
@@ -13,28 +13,15 @@ export type DataViewCardCell = {
|
|
|
13
13
|
|
|
14
14
|
export type DataViewCardRow = DataViewCardCell[];
|
|
15
15
|
|
|
16
|
-
export interface DataViewCardProps extends Omit<
|
|
17
|
-
HTMLAttributes<HTMLElement>,
|
|
18
|
-
"title"
|
|
19
|
-
> {
|
|
16
|
+
export interface DataViewCardProps extends Omit<HTMLAttributes<HTMLElement>, "title"> {
|
|
20
17
|
title?: ReactNode;
|
|
21
18
|
rows?: DataViewCardRow[];
|
|
22
19
|
theme?: Themes;
|
|
23
20
|
}
|
|
24
21
|
|
|
25
|
-
export function DataViewCard({
|
|
26
|
-
title,
|
|
27
|
-
rows = [],
|
|
28
|
-
className,
|
|
29
|
-
theme,
|
|
30
|
-
...props
|
|
31
|
-
}: DataViewCardProps) {
|
|
22
|
+
export function DataViewCard({ title, rows = [], className, theme, ...props }: DataViewCardProps) {
|
|
32
23
|
return (
|
|
33
|
-
<Card
|
|
34
|
-
data-theme={theme}
|
|
35
|
-
{...props}
|
|
36
|
-
className={cn("p-[8px] rounded-[10px] gap-0", className)}
|
|
37
|
-
>
|
|
24
|
+
<Card data-theme={theme} {...props} className={cn("p-[8px] rounded-[10px] gap-0", className)}>
|
|
38
25
|
{title != null && (
|
|
39
26
|
<CardHeader className=" border-b border-border-presentation-global-primary">
|
|
40
27
|
<div className="min-w-0 typography-headers-large-semibold text-content-presentation-global-primary">
|
|
@@ -51,8 +38,7 @@ export function DataViewCard({
|
|
|
51
38
|
key={cell.key}
|
|
52
39
|
className={cn(
|
|
53
40
|
"relative flex flex-col gap-[2px] min-w-0 p-[6px]",
|
|
54
|
-
rowIdx > 0 &&
|
|
55
|
-
"border-t border-border-presentation-global-primary",
|
|
41
|
+
rowIdx > 0 && "border-t border-border-presentation-global-primary",
|
|
56
42
|
cells.length === 2 &&
|
|
57
43
|
cellIdx === 0 &&
|
|
58
44
|
"after:absolute after:end-0 after:top-[7%] after:h-[80%] after:w-px after:bg-border-presentation-global-primary",
|
|
@@ -51,16 +51,12 @@ export function FieldSection({
|
|
|
51
51
|
/>
|
|
52
52
|
)}
|
|
53
53
|
|
|
54
|
-
{secondaryLabel &&
|
|
55
|
-
<Label size={size} secondaryLabel={secondaryLabel} />
|
|
56
|
-
)}
|
|
54
|
+
{secondaryLabel && <Label size={size} secondaryLabel={secondaryLabel} />}
|
|
57
55
|
{childrenUnderLabel}
|
|
58
56
|
</div>
|
|
59
57
|
|
|
60
58
|
{/* Flexible section that takes up the remaining space */}
|
|
61
|
-
<div className="grid grid-cols-1 place-items-end gap-[12px]">
|
|
62
|
-
{children}
|
|
63
|
-
</div>
|
|
59
|
+
<div className="grid grid-cols-1 place-items-end gap-[12px]">{children}</div>
|
|
64
60
|
</section>
|
|
65
61
|
);
|
|
66
62
|
}
|