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
|
@@ -1,85 +1,84 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import { OTPInput, OTPInputContext } from "input-otp"
|
|
5
|
-
import { cn } from "../utils/cn"
|
|
1
|
+
"use client";
|
|
6
2
|
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { OTPInput, OTPInputContext } from "input-otp";
|
|
5
|
+
import { cn } from "../utils/cn";
|
|
7
6
|
|
|
8
7
|
const InputOTP = React.forwardRef<
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
React.ElementRef<typeof OTPInput>,
|
|
9
|
+
React.ComponentPropsWithoutRef<typeof OTPInput>
|
|
11
10
|
>(({ className, containerClassName, ...props }, ref) => (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
))
|
|
22
|
-
InputOTP.displayName = "InputOTP"
|
|
11
|
+
<OTPInput
|
|
12
|
+
ref={ref}
|
|
13
|
+
containerClassName={cn(
|
|
14
|
+
"flex items-center gap-2 has-[:disabled]:opacity-50",
|
|
15
|
+
containerClassName,
|
|
16
|
+
)}
|
|
17
|
+
className={cn("disabled:cursor-not-allowed", className)}
|
|
18
|
+
{...props}
|
|
19
|
+
/>
|
|
20
|
+
));
|
|
21
|
+
InputOTP.displayName = "InputOTP";
|
|
23
22
|
|
|
24
23
|
const InputOTPGroup = React.forwardRef<
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
React.ElementRef<"div">,
|
|
25
|
+
React.ComponentPropsWithoutRef<"div">
|
|
27
26
|
>(({ className, ...props }, ref) => (
|
|
28
|
-
|
|
29
|
-
))
|
|
30
|
-
InputOTPGroup.displayName = "InputOTPGroup"
|
|
27
|
+
<div ref={ref} className={cn("flex items-center", className)} {...props} />
|
|
28
|
+
));
|
|
29
|
+
InputOTPGroup.displayName = "InputOTPGroup";
|
|
31
30
|
|
|
32
31
|
const InputOTPSlot = React.forwardRef<
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
React.ElementRef<"div">,
|
|
33
|
+
React.ComponentPropsWithoutRef<"div"> & { index: number }
|
|
35
34
|
>(({ index, className, ...props }, ref) => {
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
const inputOTPContext = React.useContext(OTPInputContext);
|
|
36
|
+
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
</div>
|
|
69
|
-
)}
|
|
38
|
+
return (
|
|
39
|
+
<div
|
|
40
|
+
ref={ref}
|
|
41
|
+
data-slot="input-otp-slot"
|
|
42
|
+
data-active={isActive}
|
|
43
|
+
className={cn(
|
|
44
|
+
"relative mx-1 flex items-center justify-center text-content-presentation-global-primary",
|
|
45
|
+
"min-w-[40px] h-[40px]", // Size M by default
|
|
46
|
+
"border rounded-[8px]",
|
|
47
|
+
"transition-all duration-200 ease-in-out",
|
|
48
|
+
"bg-background-presentation-form-field-primary",
|
|
49
|
+
"border-border-presentation-action-primary",
|
|
50
|
+
"hover:shadow-[0px_1px_6px_0px_rgba(0,0,0,0.30)]",
|
|
51
|
+
"hover:bg-background-presentation-form-field-hover",
|
|
52
|
+
"hover:border-border-presentation-action-hover",
|
|
53
|
+
// Active/Focus styles
|
|
54
|
+
"data-[active=true]:border-border-presentation-state-focus",
|
|
55
|
+
"data-[active=true]:bg-background-presentation-form-field-primary",
|
|
56
|
+
"data-[active=true]:shadow-[0px_1px_6px_0px_rgba(0,0,0,0.30)]",
|
|
57
|
+
// Typography
|
|
58
|
+
"typography-body-small-regular",
|
|
59
|
+
className,
|
|
60
|
+
)}
|
|
61
|
+
{...props}
|
|
62
|
+
>
|
|
63
|
+
{char}
|
|
64
|
+
{hasFakeCaret && (
|
|
65
|
+
<div className="pointer-events-none absolute inset-0 flex items-center justify-center">
|
|
66
|
+
<div className="animate-caret-blink bg-border-presentation-state-focus h-4 w-px duration-1000" />
|
|
70
67
|
</div>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
)}
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
});
|
|
72
|
+
InputOTPSlot.displayName = "InputOTPSlot";
|
|
74
73
|
|
|
75
74
|
const InputOTPSeparator = React.forwardRef<
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
React.ElementRef<"div">,
|
|
76
|
+
React.ComponentPropsWithoutRef<"div">
|
|
78
77
|
>(({ ...props }, ref) => (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
))
|
|
83
|
-
InputOTPSeparator.displayName = "InputOTPSeparator"
|
|
78
|
+
<div ref={ref} role="separator" {...props}>
|
|
79
|
+
<i className="ri-subtract-line text-border-presentation-global-primary"></i>
|
|
80
|
+
</div>
|
|
81
|
+
));
|
|
82
|
+
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
84
83
|
|
|
85
|
-
export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }
|
|
84
|
+
export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
|
|
@@ -17,8 +17,7 @@ const labelComponentVariants = cva("flex", {
|
|
|
17
17
|
});
|
|
18
18
|
|
|
19
19
|
interface Props
|
|
20
|
-
extends LabelHTMLAttributes<HTMLLabelElement>,
|
|
21
|
-
VariantProps<typeof labelComponentVariants> {
|
|
20
|
+
extends LabelHTMLAttributes<HTMLLabelElement>, VariantProps<typeof labelComponentVariants> {
|
|
22
21
|
label?: ReactNode; // main label
|
|
23
22
|
requiredLabel?: ReactNode; // normal text with required style
|
|
24
23
|
secondaryLabel?: ReactNode; // normal text with secondary style
|
|
@@ -26,10 +25,10 @@ interface Props
|
|
|
26
25
|
asChild?: boolean;
|
|
27
26
|
size?: "S" | "M" | "L";
|
|
28
27
|
variant?: "SystemStyle" | "PresentationStyle";
|
|
29
|
-
theme?: Themes
|
|
28
|
+
theme?: Themes;
|
|
30
29
|
labelsClassName?: string;
|
|
31
30
|
labelDirections?: "vertical" | "horizontal";
|
|
32
|
-
childrenDirections?: "vertical" | "horizontal"
|
|
31
|
+
childrenDirections?: "vertical" | "horizontal";
|
|
33
32
|
reverseChildren?: boolean;
|
|
34
33
|
}
|
|
35
34
|
|
|
@@ -48,28 +47,32 @@ export const Label = React.forwardRef<HTMLLabelElement, Props>(
|
|
|
48
47
|
labelsClassName,
|
|
49
48
|
variant = "PresentationStyle",
|
|
50
49
|
theme,
|
|
51
|
-
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
51
|
+
asChild, // excluded from ...props spread
|
|
52
52
|
as: Tag = "label",
|
|
53
53
|
...props
|
|
54
54
|
},
|
|
55
|
-
forwardedRef
|
|
55
|
+
forwardedRef,
|
|
56
56
|
) => {
|
|
57
|
-
|
|
58
57
|
const Component = Tag;
|
|
59
58
|
|
|
60
59
|
return (
|
|
61
60
|
<Component
|
|
62
61
|
data-theme={theme}
|
|
63
62
|
ref={forwardedRef}
|
|
64
|
-
className={cn(
|
|
65
|
-
"flex-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
className={cn(
|
|
64
|
+
"flex flex-0 w-fit [&_p]:!leading-none gap-[8px]",
|
|
65
|
+
{
|
|
66
|
+
"flex-col justify-start items-start": childrenDirections === "vertical",
|
|
67
|
+
"flex-row justify-start items-center": childrenDirections === "horizontal",
|
|
68
|
+
"flex-row-reverse": reverseChildren && childrenDirections === "horizontal",
|
|
69
|
+
"flex-col-reverse": reverseChildren && childrenDirections === "vertical",
|
|
70
|
+
},
|
|
71
|
+
className,
|
|
72
|
+
)}
|
|
70
73
|
{...props}
|
|
71
74
|
>
|
|
72
|
-
<div className={cn(labelComponentVariants({ labelDirections }), labelsClassName)}
|
|
75
|
+
<div className={cn(labelComponentVariants({ labelDirections }), labelsClassName)}>
|
|
73
76
|
{label && (
|
|
74
77
|
<p
|
|
75
78
|
className={cn(
|
|
@@ -80,10 +83,9 @@ export const Label = React.forwardRef<HTMLLabelElement, Props>(
|
|
|
80
83
|
"typography-body-large-regular": size === "L",
|
|
81
84
|
},
|
|
82
85
|
{
|
|
83
|
-
"text-content-presentation-global-primary":
|
|
84
|
-
variant === "PresentationStyle",
|
|
86
|
+
"text-content-presentation-global-primary": variant === "PresentationStyle",
|
|
85
87
|
"text-[#E5E5E5]": variant === "SystemStyle",
|
|
86
|
-
}
|
|
88
|
+
},
|
|
87
89
|
)}
|
|
88
90
|
>
|
|
89
91
|
{label}
|
|
@@ -91,36 +93,30 @@ export const Label = React.forwardRef<HTMLLabelElement, Props>(
|
|
|
91
93
|
)}
|
|
92
94
|
{secondaryLabel && (
|
|
93
95
|
<p
|
|
94
|
-
className={cn(
|
|
95
|
-
"
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"typography-body-small-regular": size === "L",
|
|
100
|
-
}
|
|
101
|
-
)}
|
|
96
|
+
className={cn("text-content-presentation-global-secondary text-start", {
|
|
97
|
+
"typography-labels-small-regular": size === "S",
|
|
98
|
+
"typography-labels-medium-regular": size === "M",
|
|
99
|
+
"typography-body-small-regular": size === "L",
|
|
100
|
+
})}
|
|
102
101
|
>
|
|
103
102
|
{secondaryLabel}
|
|
104
103
|
</p>
|
|
105
104
|
)}
|
|
106
105
|
{requiredLabel && (
|
|
107
106
|
<p
|
|
108
|
-
className={cn(
|
|
109
|
-
"
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"typography-body-small-medium": size === "L",
|
|
114
|
-
}
|
|
115
|
-
)}
|
|
107
|
+
className={cn("text-content-presentation-state-negative text-start", {
|
|
108
|
+
"typography-labels-small-medium": size === "S",
|
|
109
|
+
"typography-labels-medium-medium": size === "M",
|
|
110
|
+
"typography-body-small-medium": size === "L",
|
|
111
|
+
})}
|
|
116
112
|
>
|
|
117
113
|
{requiredLabel}
|
|
118
114
|
</p>
|
|
119
115
|
)}
|
|
120
116
|
</div>
|
|
121
117
|
{children}
|
|
122
|
-
</Component
|
|
118
|
+
</Component>
|
|
123
119
|
);
|
|
124
|
-
}
|
|
120
|
+
},
|
|
125
121
|
);
|
|
126
122
|
Label.displayName = "Label";
|
|
@@ -4,8 +4,7 @@ import { Label } from "./Label";
|
|
|
4
4
|
import { ToolTipSide } from "./Tooltip";
|
|
5
5
|
import { Themes } from "../utils/types";
|
|
6
6
|
|
|
7
|
-
export interface Props
|
|
8
|
-
extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "variant"> {
|
|
7
|
+
export interface Props extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "variant"> {
|
|
9
8
|
size?: "S" | "M"; // this is used to change the size style of the component
|
|
10
9
|
variant?: "SystemStyle" | "PresentationStyle";
|
|
11
10
|
icon?: ReactNode; // to add left side icon if you pass it
|
|
@@ -19,7 +18,7 @@ export interface Props
|
|
|
19
18
|
labelDirections?: "vertical" | "horizontal"; // to change the direction of the label
|
|
20
19
|
childrenDirections?: "vertical" | "horizontal"; // to change the direction of the children
|
|
21
20
|
toolTipSide?: ToolTipSide;
|
|
22
|
-
theme?: Themes
|
|
21
|
+
theme?: Themes;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
export const LabelField = forwardRef<HTMLInputElement, Props>(
|
|
@@ -43,7 +42,7 @@ export const LabelField = forwardRef<HTMLInputElement, Props>(
|
|
|
43
42
|
|
|
44
43
|
...props
|
|
45
44
|
},
|
|
46
|
-
ref
|
|
45
|
+
ref,
|
|
47
46
|
) => {
|
|
48
47
|
return (
|
|
49
48
|
<Label
|
|
@@ -71,7 +70,7 @@ export const LabelField = forwardRef<HTMLInputElement, Props>(
|
|
|
71
70
|
/>
|
|
72
71
|
</Label>
|
|
73
72
|
);
|
|
74
|
-
}
|
|
73
|
+
},
|
|
75
74
|
);
|
|
76
75
|
|
|
77
76
|
LabelField.displayName = "LabelField";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
3
|
import { Label } from "./Label";
|
|
4
4
|
import { Themes } from "../utils/types";
|
|
@@ -10,23 +10,26 @@ interface Props extends Omit<React.ComponentProps<typeof Checkbox>, "size"> {
|
|
|
10
10
|
secondaryLabel?: string;
|
|
11
11
|
requiredLabel?: string;
|
|
12
12
|
size?: "S" | "M" | "L";
|
|
13
|
-
theme?: Themes
|
|
13
|
+
theme?: Themes;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export const LabeledCheckBox = forwardRef<HTMLButtonElement, Props>(
|
|
17
17
|
(
|
|
18
18
|
{
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- excluded from {...props} spread
|
|
19
20
|
id,
|
|
20
21
|
label,
|
|
21
22
|
secondaryLabel,
|
|
22
23
|
requiredLabel,
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- excluded from {...props} spread
|
|
23
25
|
type = "checkbox",
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- excluded from {...props} spread
|
|
24
27
|
theme,
|
|
25
28
|
className,
|
|
26
29
|
size = "M",
|
|
27
30
|
...props
|
|
28
31
|
},
|
|
29
|
-
ref
|
|
32
|
+
ref,
|
|
30
33
|
) => {
|
|
31
34
|
return (
|
|
32
35
|
<Label
|
|
@@ -39,17 +42,10 @@ export const LabeledCheckBox = forwardRef<HTMLButtonElement, Props>(
|
|
|
39
42
|
className={cn(className)}
|
|
40
43
|
reverseChildren
|
|
41
44
|
>
|
|
42
|
-
<Checkbox
|
|
43
|
-
{...props}
|
|
44
|
-
size={size === "L" ? "M" : size}
|
|
45
|
-
ref={ref}
|
|
46
|
-
/>
|
|
45
|
+
<Checkbox {...props} size={size === "L" ? "M" : size} ref={ref} />
|
|
47
46
|
</Label>
|
|
48
|
-
|
|
49
|
-
|
|
50
47
|
);
|
|
51
|
-
}
|
|
48
|
+
},
|
|
52
49
|
);
|
|
53
50
|
|
|
54
51
|
LabeledCheckBox.displayName = "LabeledCheckBox";
|
|
55
|
-
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
3
|
import { Label } from "./Label";
|
|
4
4
|
import { Radio } from "./Radio";
|
|
@@ -20,13 +20,15 @@ export const LabeledRadio = forwardRef<HTMLButtonElement, Props>(
|
|
|
20
20
|
secondaryLabel,
|
|
21
21
|
requiredLabel,
|
|
22
22
|
size = "M",
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- excluded from {...props} spread
|
|
23
24
|
type = "radio",
|
|
24
25
|
className,
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- excluded from {...props} spread
|
|
25
27
|
name,
|
|
26
28
|
id,
|
|
27
29
|
...props
|
|
28
30
|
},
|
|
29
|
-
ref
|
|
31
|
+
ref,
|
|
30
32
|
) => {
|
|
31
33
|
return (
|
|
32
34
|
<Label
|
|
@@ -40,10 +42,10 @@ export const LabeledRadio = forwardRef<HTMLButtonElement, Props>(
|
|
|
40
42
|
id={id}
|
|
41
43
|
reverseChildren
|
|
42
44
|
>
|
|
43
|
-
<Radio id={id}
|
|
45
|
+
<Radio id={id} {...props} data-theme={theme} ref={ref} />
|
|
44
46
|
</Label>
|
|
45
47
|
);
|
|
46
|
-
}
|
|
48
|
+
},
|
|
47
49
|
);
|
|
48
50
|
|
|
49
|
-
LabeledRadio.displayName = "LabeledRadio";
|
|
51
|
+
LabeledRadio.displayName = "LabeledRadio";
|
|
@@ -55,9 +55,7 @@ export const LinkButton: React.FC<Props> = ({
|
|
|
55
55
|
className,
|
|
56
56
|
)}
|
|
57
57
|
>
|
|
58
|
-
<div className="px-[3px] whitespace-nowrap break-keep">
|
|
59
|
-
{props.children}
|
|
60
|
-
</div>
|
|
58
|
+
<div className="px-[3px] whitespace-nowrap break-keep">{props.children}</div>
|
|
61
59
|
<div
|
|
62
60
|
className={cn(
|
|
63
61
|
"rounded-[4px] overflow-hidden",
|
|
@@ -83,12 +81,7 @@ export const LinkButton: React.FC<Props> = ({
|
|
|
83
81
|
};
|
|
84
82
|
|
|
85
83
|
const Arrow = (props: SVGProps<SVGSVGElement>) => (
|
|
86
|
-
<svg
|
|
87
|
-
viewBox="0 0 10 10"
|
|
88
|
-
fill="none"
|
|
89
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
90
|
-
{...props}
|
|
91
|
-
>
|
|
84
|
+
<svg viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
|
|
92
85
|
<path
|
|
93
86
|
d="M1.81582 1.58451L3.2807 0.119629L9.12479 0.875203L9.88037 6.71929L8.41549 8.18417L7.78584 3.31409L3.35267 7.74727L2.25272 6.64733L6.6859 2.21415L1.81582 1.58451Z"
|
|
94
87
|
fill="#F9F9F9"
|
|
@@ -27,14 +27,13 @@ const buttonVariants = cva(
|
|
|
27
27
|
defaultVariants: {
|
|
28
28
|
variant: "default",
|
|
29
29
|
},
|
|
30
|
-
}
|
|
30
|
+
},
|
|
31
31
|
);
|
|
32
32
|
|
|
33
33
|
export interface ButtonProps
|
|
34
|
-
extends ButtonHTMLAttributes<HTMLButtonElement>,
|
|
35
|
-
VariantProps<typeof buttonVariants> {
|
|
34
|
+
extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
36
35
|
isLoading?: boolean;
|
|
37
|
-
theme?: Themes
|
|
36
|
+
theme?: Themes;
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
export function LoginButton({
|
|
@@ -46,11 +45,7 @@ export function LoginButton({
|
|
|
46
45
|
}: ButtonProps) {
|
|
47
46
|
return (
|
|
48
47
|
<button data-theme={theme} {...props} className={cn(buttonVariants({ variant, className }))}>
|
|
49
|
-
{isLoading ?
|
|
50
|
-
<LoadingIcon className="w-[20px] h-[20px]" />
|
|
51
|
-
) : (
|
|
52
|
-
props.children
|
|
53
|
-
)}
|
|
48
|
+
{isLoading ? <LoadingIcon className="w-[20px] h-[20px]" /> : props.children}
|
|
54
49
|
</button>
|
|
55
50
|
);
|
|
56
51
|
}
|
|
@@ -4,7 +4,7 @@ import { HTMLAttributes, useEffect, useState } from "react";
|
|
|
4
4
|
|
|
5
5
|
interface PassCheckProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
6
|
value: string; // The password value to check
|
|
7
|
-
theme?: Themes
|
|
7
|
+
theme?: Themes;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export function PasswordLevel({ theme, value, className, ...props }: PassCheckProps) {
|
|
@@ -26,7 +26,7 @@ export function PasswordLevel({ theme, value, className, ...props }: PassCheckPr
|
|
|
26
26
|
{...props}
|
|
27
27
|
className={cn(
|
|
28
28
|
"bg-background-system-body-secondary rounded-[4px] border border-solid border-border-system-global-primary p-[4px] grid grid-cols-3 gap-[4px] w-full ",
|
|
29
|
-
className
|
|
29
|
+
className,
|
|
30
30
|
)}
|
|
31
31
|
>
|
|
32
32
|
<div
|
|
@@ -34,7 +34,7 @@ export function PasswordLevel({ theme, value, className, ...props }: PassCheckPr
|
|
|
34
34
|
"h-[4px] rounded-[8px] transition-all duration-300 ease-in-out bg-border-system-global-secondary",
|
|
35
35
|
{
|
|
36
36
|
"bg-border-presentation-state-negative": level >= 1,
|
|
37
|
-
}
|
|
37
|
+
},
|
|
38
38
|
)}
|
|
39
39
|
/>
|
|
40
40
|
<div
|
|
@@ -42,7 +42,7 @@ export function PasswordLevel({ theme, value, className, ...props }: PassCheckPr
|
|
|
42
42
|
"h-[4px] rounded-[8px] transition-all duration-300 ease-in-out bg-border-system-global-secondary",
|
|
43
43
|
{
|
|
44
44
|
"bg-border-presentation-state-warning": level >= 2,
|
|
45
|
-
}
|
|
45
|
+
},
|
|
46
46
|
)}
|
|
47
47
|
/>
|
|
48
48
|
<div
|
|
@@ -50,7 +50,7 @@ export function PasswordLevel({ theme, value, className, ...props }: PassCheckPr
|
|
|
50
50
|
"h-[4px] rounded-[8px] transition-all duration-300 ease-in-out bg-border-system-global-secondary",
|
|
51
51
|
{
|
|
52
52
|
"bg-border-presentation-state-success": level >= 3,
|
|
53
|
-
}
|
|
53
|
+
},
|
|
54
54
|
)}
|
|
55
55
|
/>
|
|
56
56
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
import { cva, VariantProps } from "class-variance-authority";
|
|
3
3
|
import { cn } from "../utils/cn";
|
|
4
4
|
import React, { useEffect, useRef } from "react";
|
|
@@ -12,21 +12,17 @@ interface LocalPopOverProps extends VariantProps<typeof popoverStyles> {
|
|
|
12
12
|
overlayBlur?: boolean;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
16
15
|
const Popover = PopoverPrimitive.Root;
|
|
17
16
|
|
|
18
17
|
const PopoverTrigger = React.forwardRef<
|
|
19
18
|
React.ElementRef<typeof PopoverPrimitive.Trigger>,
|
|
20
19
|
React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger> & {
|
|
21
|
-
className?: string
|
|
20
|
+
className?: string;
|
|
22
21
|
}
|
|
23
22
|
>(({ className, ...props }, ref) => (
|
|
24
23
|
<PopoverPrimitive.Trigger
|
|
25
24
|
ref={ref}
|
|
26
|
-
className={cn(
|
|
27
|
-
"z-[20] transition-all duration-300 data-[state=open]:z-[49]",
|
|
28
|
-
className
|
|
29
|
-
)}
|
|
25
|
+
className={cn("z-[20] transition-all duration-300 data-[state=open]:z-[49]", className)}
|
|
30
26
|
{...props}
|
|
31
27
|
/>
|
|
32
28
|
));
|
|
@@ -36,9 +32,9 @@ PopoverTrigger.displayName = PopoverPrimitive.Trigger.displayName;
|
|
|
36
32
|
const PopoverContent = React.forwardRef<
|
|
37
33
|
React.ElementRef<typeof PopoverPrimitive.Content>,
|
|
38
34
|
React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> &
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
LocalPopOverProps & {
|
|
36
|
+
theme?: Themes;
|
|
37
|
+
}
|
|
42
38
|
>(
|
|
43
39
|
(
|
|
44
40
|
{
|
|
@@ -50,7 +46,7 @@ const PopoverContent = React.forwardRef<
|
|
|
50
46
|
theme,
|
|
51
47
|
...props
|
|
52
48
|
},
|
|
53
|
-
ref
|
|
49
|
+
ref,
|
|
54
50
|
) => (
|
|
55
51
|
<PopoverPrimitive.Portal>
|
|
56
52
|
{overlayBlur ? (
|
|
@@ -60,10 +56,7 @@ const PopoverContent = React.forwardRef<
|
|
|
60
56
|
ref={ref}
|
|
61
57
|
align={align}
|
|
62
58
|
sideOffset={sideOffset}
|
|
63
|
-
className={cn(
|
|
64
|
-
popoverStyles({ variant, overlayBlur }),
|
|
65
|
-
className
|
|
66
|
-
)}
|
|
59
|
+
className={cn(popoverStyles({ variant, overlayBlur }), className)}
|
|
67
60
|
{...props}
|
|
68
61
|
/>
|
|
69
62
|
</div>
|
|
@@ -73,22 +66,18 @@ const PopoverContent = React.forwardRef<
|
|
|
73
66
|
ref={ref}
|
|
74
67
|
align={align}
|
|
75
68
|
sideOffset={sideOffset}
|
|
76
|
-
className={cn(
|
|
77
|
-
popoverStyles({ variant, overlayBlur }),
|
|
78
|
-
className
|
|
79
|
-
)}
|
|
69
|
+
className={cn(popoverStyles({ variant, overlayBlur }), className)}
|
|
80
70
|
{...props}
|
|
81
71
|
/>
|
|
82
72
|
)}
|
|
83
73
|
</PopoverPrimitive.Portal>
|
|
84
|
-
)
|
|
74
|
+
),
|
|
85
75
|
);
|
|
86
76
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
87
77
|
|
|
88
78
|
// Define the Props interface with a generic type parameter
|
|
89
79
|
interface Props<T extends React.ElementType = "li">
|
|
90
|
-
extends React.HTMLAttributes<HTMLElement>,
|
|
91
|
-
VariantProps<typeof PopoverItemStyles> {
|
|
80
|
+
extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof PopoverItemStyles> {
|
|
92
81
|
asChild?: boolean;
|
|
93
82
|
as?: T; // The `as` prop can be any valid HTML element or React component
|
|
94
83
|
}
|
|
@@ -123,7 +112,7 @@ const PopoverItem = <T extends React.ElementType = "li">({
|
|
|
123
112
|
size,
|
|
124
113
|
active,
|
|
125
114
|
}),
|
|
126
|
-
className
|
|
115
|
+
className,
|
|
127
116
|
)}
|
|
128
117
|
/// <reference path="" />
|
|
129
118
|
ref={ref}
|
|
@@ -133,11 +122,8 @@ const PopoverItem = <T extends React.ElementType = "li">({
|
|
|
133
122
|
);
|
|
134
123
|
};
|
|
135
124
|
|
|
136
|
-
|
|
137
125
|
export { Popover, PopoverTrigger, PopoverContent, PopoverItem };
|
|
138
126
|
|
|
139
|
-
|
|
140
|
-
|
|
141
127
|
const PopoverItemStyles = cva(
|
|
142
128
|
[
|
|
143
129
|
"text-content-presentation-action-light-primary",
|
|
@@ -155,7 +141,6 @@ const PopoverItemStyles = cva(
|
|
|
155
141
|
"transition-all",
|
|
156
142
|
"ease-in-out",
|
|
157
143
|
"duration-300",
|
|
158
|
-
|
|
159
144
|
],
|
|
160
145
|
{
|
|
161
146
|
variants: {
|
|
@@ -204,10 +189,7 @@ const PopoverItemStyles = cva(
|
|
|
204
189
|
},
|
|
205
190
|
|
|
206
191
|
disabled: {
|
|
207
|
-
true: [
|
|
208
|
-
"text-content-presentation-state-disabled",
|
|
209
|
-
"bg-white-00",
|
|
210
|
-
],
|
|
192
|
+
true: ["text-content-presentation-state-disabled", "bg-white-00"],
|
|
211
193
|
},
|
|
212
194
|
|
|
213
195
|
active: {
|
|
@@ -231,7 +213,7 @@ const PopoverItemStyles = cva(
|
|
|
231
213
|
className: ["text-content-presentation-state-negative"],
|
|
232
214
|
},
|
|
233
215
|
],
|
|
234
|
-
}
|
|
216
|
+
},
|
|
235
217
|
);
|
|
236
218
|
|
|
237
219
|
const popoverStyles = cva(
|
|
@@ -270,5 +252,5 @@ const popoverStyles = cva(
|
|
|
270
252
|
variant: "PresentationStyle",
|
|
271
253
|
},
|
|
272
254
|
},
|
|
273
|
-
}
|
|
255
|
+
},
|
|
274
256
|
);
|