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.
Files changed (264) hide show
  1. package/README.md +8 -0
  2. package/apps/lib/components/ActionButton.tsx +7 -12
  3. package/apps/lib/components/ActionsGroup.tsx +4 -15
  4. package/apps/lib/components/AlertDialog.tsx +173 -191
  5. package/apps/lib/components/Avatar.tsx +13 -16
  6. package/apps/lib/components/Badge.tsx +1 -3
  7. package/apps/lib/components/BadgeField.tsx +76 -71
  8. package/apps/lib/components/Breadcrumb.tsx +49 -85
  9. package/apps/lib/components/Button.tsx +20 -19
  10. package/apps/lib/components/ButtonGroup.tsx +31 -41
  11. package/apps/lib/components/Calendar.tsx +51 -29
  12. package/apps/lib/components/Card.tsx +2 -13
  13. package/apps/lib/components/ChartBlockTool.ts +17 -52
  14. package/apps/lib/components/Checkbox.tsx +9 -16
  15. package/apps/lib/components/ContextMenu.tsx +97 -96
  16. package/apps/lib/components/CountBadge.tsx +4 -6
  17. package/apps/lib/components/DataTable.tsx +196 -216
  18. package/apps/lib/components/DataViews/DataViewRadio.tsx +1 -6
  19. package/apps/lib/components/DataViews/DataViewsConfigPanel.tsx +13 -47
  20. package/apps/lib/components/DataViews/DataViewsHeader.tsx +1 -3
  21. package/apps/lib/components/DataViews/DataViewsLayout.tsx +5 -12
  22. package/apps/lib/components/DataViews/FilterPanel.tsx +155 -149
  23. package/apps/lib/components/DataViews/HeaderSearch.tsx +1 -5
  24. package/apps/lib/components/DataViews/InboxView.tsx +22 -68
  25. package/apps/lib/components/DataViews/InboxViewCard.tsx +68 -77
  26. package/apps/lib/components/DataViews/KanbanView.tsx +8 -25
  27. package/apps/lib/components/DataViews/PanelControls.tsx +3 -13
  28. package/apps/lib/components/DataViews/SettingsPanel.tsx +83 -89
  29. package/apps/lib/components/DataViews/TableView.tsx +8 -28
  30. package/apps/lib/components/DataViews/TreeView.tsx +12 -40
  31. package/apps/lib/components/DataViews/badgeAdapter.ts +32 -28
  32. package/apps/lib/components/DataViews/fieldRenderers.tsx +106 -141
  33. package/apps/lib/components/DataViews/filters/DatePickerRangeFilter.tsx +30 -23
  34. package/apps/lib/components/DataViews/filters/DateRangePopover.tsx +39 -32
  35. package/apps/lib/components/DataViews/filters/PresetChips.tsx +15 -15
  36. package/apps/lib/components/DataViews/filters/RangeSliderWithInputs.tsx +69 -58
  37. package/apps/lib/components/DataViews/index.ts +26 -26
  38. package/apps/lib/components/DataViews/tree/TreeDrawer.tsx +12 -16
  39. package/apps/lib/components/DataViews/tree/TreeSidebar.tsx +28 -31
  40. package/apps/lib/components/DataViews/types.ts +104 -115
  41. package/apps/lib/components/DatePicker.tsx +198 -196
  42. package/apps/lib/components/Dialog.tsx +92 -105
  43. package/apps/lib/components/Divider.tsx +21 -24
  44. package/apps/lib/components/Drawer.tsx +79 -139
  45. package/apps/lib/components/DropdownMenu.tsx +131 -171
  46. package/apps/lib/components/FieldHint.tsx +4 -11
  47. package/apps/lib/components/Form.tsx +146 -155
  48. package/apps/lib/components/FormStepper.tsx +9 -39
  49. package/apps/lib/components/HeaderBar.tsx +1 -9
  50. package/apps/lib/components/ImageAttachment.tsx +111 -73
  51. package/apps/lib/components/InnerLabelField.tsx +20 -16
  52. package/apps/lib/components/Input.tsx +171 -172
  53. package/apps/lib/components/InputField.tsx +44 -45
  54. package/apps/lib/components/InputOTP.tsx +68 -69
  55. package/apps/lib/components/Label.tsx +31 -35
  56. package/apps/lib/components/LabelField.tsx +4 -5
  57. package/apps/lib/components/LabeledCheckBox.tsx +8 -12
  58. package/apps/lib/components/LabeledRadio.tsx +7 -5
  59. package/apps/lib/components/LinkButton.tsx +2 -9
  60. package/apps/lib/components/LoginButton.tsx +4 -9
  61. package/apps/lib/components/PasswordLevel.tsx +5 -5
  62. package/apps/lib/components/Popover.tsx +15 -33
  63. package/apps/lib/components/ProfileMenu.tsx +67 -72
  64. package/apps/lib/components/Radio.tsx +1 -5
  65. package/apps/lib/components/RadioCard.tsx +9 -28
  66. package/apps/lib/components/ScrollArea.tsx +45 -43
  67. package/apps/lib/components/SearchField.tsx +49 -39
  68. package/apps/lib/components/SearchableSelect.tsx +8 -14
  69. package/apps/lib/components/SearchableTable.tsx +108 -118
  70. package/apps/lib/components/SearchableTree.tsx +469 -0
  71. package/apps/lib/components/SearchableTreeDialog.tsx +493 -0
  72. package/apps/lib/components/SectionBlock.tsx +4 -16
  73. package/apps/lib/components/Select.tsx +53 -80
  74. package/apps/lib/components/SimpleSelect.tsx +196 -187
  75. package/apps/lib/components/Skeleton.tsx +9 -12
  76. package/apps/lib/components/SlideDatePicker.tsx +215 -166
  77. package/apps/lib/components/SpinLoading.tsx +33 -49
  78. package/apps/lib/components/Stepper.tsx +13 -56
  79. package/apps/lib/components/Switch.tsx +8 -10
  80. package/apps/lib/components/TabFormItem.tsx +3 -12
  81. package/apps/lib/components/TabSwitch.tsx +7 -34
  82. package/apps/lib/components/Table.tsx +60 -75
  83. package/apps/lib/components/TableDnDWrapper.ts +15 -48
  84. package/apps/lib/components/TextEditor.tsx +93 -104
  85. package/apps/lib/components/Textarea.tsx +8 -12
  86. package/apps/lib/components/Timeline.tsx +21 -41
  87. package/apps/lib/components/Toast.tsx +83 -83
  88. package/apps/lib/components/Toggle.tsx +112 -114
  89. package/apps/lib/components/ToggleButton.tsx +1 -1
  90. package/apps/lib/components/Tooltip.tsx +24 -19
  91. package/apps/lib/components/TransparentLabel.tsx +61 -62
  92. package/apps/lib/components/TreeDropDown.tsx +86 -52
  93. package/apps/lib/components/TreeFolder/TreeFolder.tsx +15 -48
  94. package/apps/lib/components/TreeFolder/TreeFolderBreadcrumb.tsx +16 -21
  95. package/apps/lib/components/TreeFolder/TreeFolderRow.tsx +9 -20
  96. package/apps/lib/components/TreeFolder/TreeFolderStyles.tsx +3 -3
  97. package/apps/lib/components/TreeFolder/icons.tsx +14 -17
  98. package/apps/lib/components/TreeFolder/index.ts +15 -8
  99. package/apps/lib/components/TreeFolder/treeFolderUtils.ts +47 -52
  100. package/apps/lib/components/TreeFolder/types.ts +32 -32
  101. package/apps/lib/components/TreeFolder/useTreeFolderDnD.ts +117 -123
  102. package/apps/lib/hooks/useActiveTreeItem.ts +52 -55
  103. package/apps/lib/hooks/useClickOutside.ts +21 -20
  104. package/apps/lib/hooks/useDataViewsState.ts +86 -80
  105. package/apps/lib/hooks/useIsMobile.ts +12 -12
  106. package/apps/lib/hooks/useResize.ts +54 -65
  107. package/apps/lib/hooks/useTagSelection.ts +201 -201
  108. package/apps/lib/layouts/CNLayout.tsx +181 -140
  109. package/apps/lib/layouts/DataViewCard.tsx +4 -18
  110. package/apps/lib/layouts/FieldSection.tsx +2 -6
  111. package/apps/lib/layouts/TreeSubLayout.tsx +24 -38
  112. package/apps/lib/providers/ThemeProvider.tsx +8 -23
  113. package/apps/lib/registry.json +1004 -0
  114. package/apps/lib/tsconfig.json +9 -0
  115. package/apps/lib/utils/cn.ts +1 -1
  116. package/apps/lib/utils/dataViews/columnUtils.ts +46 -44
  117. package/apps/lib/utils/dataViews/fieldUtils.ts +70 -71
  118. package/apps/lib/utils/dataViews/nestedDataUtils.tsx +129 -122
  119. package/apps/lib/utils/dataViews/pathUtils.ts +74 -67
  120. package/apps/lib/utils/dataViews/rangeUtils.ts +121 -112
  121. package/apps/lib/utils/dataViews/treeUtils.ts +204 -211
  122. package/apps/lib/utils/dateFormat.ts +64 -54
  123. package/apps/lib/utils/markdownParser.ts +2 -7
  124. package/apps/lib/utils/resize.ts +21 -25
  125. package/apps/lib/utils/types.ts +13 -13
  126. package/dist/bin/index.js +8 -2
  127. package/dist/bin/index.js.map +1 -1
  128. package/dist/src/shared/getAvailableFiles.d.ts.map +1 -1
  129. package/dist/src/shared/getAvailableFiles.js +6 -1
  130. package/dist/src/shared/getAvailableFiles.js.map +1 -1
  131. package/dist/src/shared/loadRegistry.d.ts +7 -0
  132. package/dist/src/shared/loadRegistry.d.ts.map +1 -0
  133. package/dist/src/shared/loadRegistry.js +31 -0
  134. package/dist/src/shared/loadRegistry.js.map +1 -0
  135. package/dist/src/shared/resolveInstallPlan.d.ts +12 -0
  136. package/dist/src/shared/resolveInstallPlan.d.ts.map +1 -0
  137. package/dist/src/shared/resolveInstallPlan.js +39 -0
  138. package/dist/src/shared/resolveInstallPlan.js.map +1 -0
  139. package/dist/src/types/main.d.ts +24 -0
  140. package/dist/src/types/main.d.ts.map +1 -1
  141. package/docs/README.md +10 -2
  142. package/docs/components/action-button.md +30 -24
  143. package/docs/components/actions-group.md +26 -20
  144. package/docs/components/alert-dialog.md +45 -45
  145. package/docs/components/avatar.md +6 -2
  146. package/docs/components/badge-field.md +6 -2
  147. package/docs/components/badge.md +7 -1
  148. package/docs/components/breadcrumb.md +15 -40
  149. package/docs/components/button-group.md +13 -10
  150. package/docs/components/button.md +58 -33
  151. package/docs/components/calendar.md +26 -19
  152. package/docs/components/card.md +19 -16
  153. package/docs/components/chart-block-tool.md +128 -0
  154. package/docs/components/checkbox.md +16 -8
  155. package/docs/components/cn-layout.md +7 -1
  156. package/docs/components/context-menu.md +18 -25
  157. package/docs/components/count-badge.md +7 -1
  158. package/docs/components/data-table.md +45 -33
  159. package/docs/components/data-views-config-panel.md +15 -11
  160. package/docs/components/data-views-layout.md +13 -16
  161. package/docs/components/date-picker.md +30 -23
  162. package/docs/components/dialog.md +43 -42
  163. package/docs/components/divider.md +10 -4
  164. package/docs/components/drawer.md +8 -33
  165. package/docs/components/dropdown-menu.md +25 -34
  166. package/docs/components/field-hint.md +37 -25
  167. package/docs/components/field-section.md +9 -3
  168. package/docs/components/form-stepper.md +6 -0
  169. package/docs/components/form.md +17 -20
  170. package/docs/components/header-bar.md +6 -0
  171. package/docs/components/image-attachment.md +33 -41
  172. package/docs/components/inbox-view.md +16 -5
  173. package/docs/components/inner-label-field.md +34 -24
  174. package/docs/components/input-field.md +18 -10
  175. package/docs/components/input-otp.md +14 -11
  176. package/docs/components/input.md +22 -16
  177. package/docs/components/kanban-view.md +15 -5
  178. package/docs/components/label-field.md +32 -22
  179. package/docs/components/label.md +43 -32
  180. package/docs/components/labeled-check-box.md +16 -8
  181. package/docs/components/labeled-radio.md +18 -11
  182. package/docs/components/link-button.md +7 -1
  183. package/docs/components/login-button.md +8 -2
  184. package/docs/components/password-level.md +37 -24
  185. package/docs/components/popover.md +26 -23
  186. package/docs/components/profile-menu.md +38 -27
  187. package/docs/components/radio-card.md +16 -9
  188. package/docs/components/radio.md +16 -8
  189. package/docs/components/scroll-area.md +6 -2
  190. package/docs/components/search-field.md +14 -6
  191. package/docs/components/searchable-select.md +19 -14
  192. package/docs/components/searchable-table.md +18 -13
  193. package/docs/components/searchable-tree-dialog.md +190 -0
  194. package/docs/components/searchable-tree.md +200 -0
  195. package/docs/components/section-block.md +12 -4
  196. package/docs/components/select.md +23 -18
  197. package/docs/components/simple-select.md +14 -10
  198. package/docs/components/skeleton.md +43 -33
  199. package/docs/components/slide-date-picker.md +37 -29
  200. package/docs/components/spin-loading.md +32 -23
  201. package/docs/components/stepper.md +6 -0
  202. package/docs/components/switch.md +14 -6
  203. package/docs/components/tab-form-item.md +7 -1
  204. package/docs/components/tab-switch.md +13 -6
  205. package/docs/components/table-dnd-wrapper.md +105 -0
  206. package/docs/components/table-view.md +15 -5
  207. package/docs/components/table.md +28 -28
  208. package/docs/components/text-editor.md +19 -13
  209. package/docs/components/textarea.md +15 -7
  210. package/docs/components/timeline.md +6 -0
  211. package/docs/components/toast.md +35 -26
  212. package/docs/components/toggle-button.md +24 -21
  213. package/docs/components/toggle.md +23 -15
  214. package/docs/components/tooltip.md +42 -30
  215. package/docs/components/transparent-label.md +29 -20
  216. package/docs/components/tree-drop-down.md +31 -23
  217. package/docs/components/tree-sub-layout.md +6 -2
  218. package/docs/components/tree-view.md +16 -5
  219. package/docs/explanation/architecture.md +54 -0
  220. package/docs/explanation/design-system.md +52 -0
  221. package/docs/how-to/data-views-from-backend-response.md +6 -4
  222. package/docs/how-to/guides.md +24 -18
  223. package/docs/migration/changelog.md +38 -0
  224. package/docs/reference/cli.md +87 -0
  225. package/docs/reference/components.md +11 -12
  226. package/docs/reference/hooks.md +8 -8
  227. package/docs/reference/providers.md +22 -22
  228. package/docs/reference/tailwind-plugins.md +2 -2
  229. package/docs/reference/theme.md +85 -0
  230. package/docs/reference/types.md +4 -4
  231. package/docs/reference/utilities.md +19 -26
  232. package/docs/tutorials/building-first-form.md +20 -13
  233. package/docs/tutorials/component-composition.md +34 -50
  234. package/docs/tutorials/getting-started.md +2 -2
  235. package/docs/tutorials/theming-basics.md +13 -10
  236. package/package.json +31 -3
  237. package/dist/src/commands/block.d.ts +0 -5
  238. package/dist/src/commands/block.d.ts.map +0 -1
  239. package/dist/src/commands/block.js +0 -255
  240. package/dist/src/commands/block.js.map +0 -1
  241. package/dist/src/shared/configureFonts.d.ts +0 -6
  242. package/dist/src/shared/configureFonts.d.ts.map +0 -1
  243. package/dist/src/shared/configureFonts.js +0 -106
  244. package/dist/src/shared/configureFonts.js.map +0 -1
  245. package/dist/src/shared/configureGlobalCss.d.ts +0 -6
  246. package/dist/src/shared/configureGlobalCss.d.ts.map +0 -1
  247. package/dist/src/shared/configureGlobalCss.js +0 -154
  248. package/dist/src/shared/configureGlobalCss.js.map +0 -1
  249. package/dist/src/shared/configureTailwind.d.ts +0 -7
  250. package/dist/src/shared/configureTailwind.d.ts.map +0 -1
  251. package/dist/src/shared/configureTailwind.js +0 -163
  252. package/dist/src/shared/configureTailwind.js.map +0 -1
  253. package/dist/src/shared/detectFramework.d.ts +0 -23
  254. package/dist/src/shared/detectFramework.d.ts.map +0 -1
  255. package/dist/src/shared/detectFramework.js +0 -119
  256. package/dist/src/shared/detectFramework.js.map +0 -1
  257. package/dist/src/shared/installBaseUtils.d.ts +0 -5
  258. package/dist/src/shared/installBaseUtils.d.ts.map +0 -1
  259. package/dist/src/shared/installBaseUtils.js +0 -79
  260. package/dist/src/shared/installBaseUtils.js.map +0 -1
  261. package/dist/src/shared/resolveAliases.d.ts +0 -24
  262. package/dist/src/shared/resolveAliases.d.ts.map +0 -1
  263. package/dist/src/shared/resolveAliases.js +0 -98
  264. package/dist/src/shared/resolveAliases.js.map +0 -1
@@ -5,86 +5,81 @@ import { Popover, PopoverContent, PopoverTrigger } from "./Popover";
5
5
 
6
6
  // Define the base styles and variants using `cva`
7
7
  export const profileItemStyles = cva(
8
- "flex items-center justify-between group w-full p-[6px] outline-none rounded-[8px] fucus:bg-background-system-action-primary-selected active:bg-background-system-action-primary-selected transition-all ease-in-out duration-150",
9
- {
10
- variants: {
11
- selected: {
12
- true: "bg-background-system-action-primary-selected",
13
- }
14
- },
15
- }
8
+ "flex items-center justify-between group w-full p-[6px] outline-none rounded-[8px] fucus:bg-background-system-action-primary-selected active:bg-background-system-action-primary-selected transition-all ease-in-out duration-150",
9
+ {
10
+ variants: {
11
+ selected: {
12
+ true: "bg-background-system-action-primary-selected",
13
+ },
14
+ },
15
+ },
16
16
  );
17
17
 
18
18
  interface ProfileItemProps extends HTMLAttributes<HTMLButtonElement> {
19
- label: ReactNode;
20
- selected?: boolean
21
- icon?: string;
22
- theme?: "dark" | "light" | "default";
23
- popoverChildren?: ReactNode
24
- overlayBlur?: boolean
19
+ label: ReactNode;
20
+ selected?: boolean;
21
+ icon?: string;
22
+ theme?: "dark" | "light" | "default";
23
+ popoverChildren?: ReactNode;
24
+ overlayBlur?: boolean;
25
25
  }
26
26
 
27
27
  export const ProfileMenu: React.FC<ProfileItemProps> = ({
28
- label,
29
- selected,
30
- icon,
31
- theme,
32
- className,
33
- popoverChildren,
34
- overlayBlur,
35
- ...props
28
+ label,
29
+ selected,
30
+ icon,
31
+ theme,
32
+ className,
33
+ popoverChildren,
34
+ overlayBlur,
35
+ ...props
36
36
  }) => {
37
+ const [isOpen, setIsOpen] = useState(selected);
38
+ const [dropdownWidth, setDropdownWidth] = useState(0);
37
39
 
38
- const [isOpen, setIsOpen] = useState(selected);
39
- const [dropdownWidth, setDropdownWidth] = useState(0);
40
+ useEffect(() => {
41
+ setIsOpen(selected);
42
+ }, [selected]);
43
+ return (
44
+ <Popover onOpenChange={(open) => setIsOpen(open)}>
45
+ <PopoverTrigger asChild>
46
+ <button
47
+ {...props}
48
+ data-theme={theme}
49
+ className={cn(profileItemStyles({ selected }), className)}
50
+ onPointerDown={(e: React.PointerEvent<HTMLButtonElement>) => {
51
+ props.onPointerDown && props.onPointerDown(e);
52
+ setDropdownWidth(e.currentTarget.offsetWidth);
53
+ }}
54
+ >
55
+ <div className="flex items-center gap-2">
56
+ <div className="flex items-center">
57
+ <span className="h-[28px] w-[2px] bg-transparent group-hover:bg-[#9748FF] group-hover:mr-[6px] transition-all ease-in-out duration-150"></span>
58
+ <img className="w-[28px] h-[28px] rounded-full object-cover" src={icon} alt="" />
59
+ </div>
40
60
 
41
- useEffect(() => {
42
- setIsOpen(selected);
43
- }, [selected])
44
- return (
45
- <Popover onOpenChange={(open) => setIsOpen(open)} >
46
- <PopoverTrigger asChild>
47
- <button
48
- {...props}
49
- data-theme={theme}
50
- className={cn(
51
- profileItemStyles({ selected }),
52
- className
53
- )}
54
- onPointerDown={(e: any) => {
55
- props.onPointerDown && props.onPointerDown(e);
56
- setDropdownWidth(e.currentTarget.offsetWidth);
57
- }}
58
- >
59
- <div className="flex items-center gap-2">
60
- <div className="flex items-center">
61
- <span className="h-[28px] w-[2px] bg-transparent group-hover:bg-[#9748FF] group-hover:mr-[6px] transition-all ease-in-out duration-150"></span>
62
- <img className="w-[28px] h-[28px] rounded-full object-cover" src={icon} alt="" />
63
- </div>
61
+ <p className={cn("typography-body-medium-medium text-content-system-global-primary")}>
62
+ {label}
63
+ </p>
64
+ </div>
64
65
 
65
- <p
66
- className={cn(
67
- "typography-body-medium-medium text-content-system-global-primary",
68
- )}
69
- >
70
- {label}
71
- </p>
72
- </div>
73
-
74
-
75
- <i className={cn("ri-arrow-down-s-line text-[18px] text-content-system-global-primary group-hover:text-[#9748FF] transition-all ease-in-out duration-150", { "rotate-180": isOpen && popoverChildren })}></i>
76
- </button>
77
- </PopoverTrigger>
78
- {
79
- popoverChildren &&
80
- <PopoverContent
81
- overlayBlur={overlayBlur}
82
- style={{ width: `${dropdownWidth}px` }}
83
- theme={theme}>
84
- {popoverChildren}
85
- </PopoverContent>
86
- }
87
- </Popover>
88
- );
66
+ <i
67
+ className={cn(
68
+ "ri-arrow-down-s-line text-[18px] text-content-system-global-primary group-hover:text-[#9748FF] transition-all ease-in-out duration-150",
69
+ { "rotate-180": isOpen && popoverChildren },
70
+ )}
71
+ ></i>
72
+ </button>
73
+ </PopoverTrigger>
74
+ {popoverChildren && (
75
+ <PopoverContent
76
+ overlayBlur={overlayBlur}
77
+ style={{ width: `${dropdownWidth}px` }}
78
+ theme={theme}
79
+ >
80
+ {popoverChildren}
81
+ </PopoverContent>
82
+ )}
83
+ </Popover>
84
+ );
89
85
  };
90
-
@@ -9,11 +9,7 @@ const RadioGroup = React.forwardRef<
9
9
  React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>
10
10
  >(({ className, ...props }, ref) => {
11
11
  return (
12
- <RadioGroupPrimitive.Root
13
- className={cn("grid gap-0.5", className)}
14
- {...props}
15
- ref={ref}
16
- />
12
+ <RadioGroupPrimitive.Root className={cn("grid gap-0.5", className)} {...props} ref={ref} />
17
13
  );
18
14
  });
19
15
  RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
@@ -3,7 +3,6 @@ import { cn } from "../utils/cn";
3
3
  import { Radio } from "./Radio";
4
4
  import { Card, CardContent, CardDescription, CardHeader } from "./Card";
5
5
 
6
-
7
6
  interface Props extends Omit<React.ComponentProps<typeof Radio>, "size" | "value"> {
8
7
  headerLabel?: ReactNode;
9
8
  id: string;
@@ -15,10 +14,7 @@ interface Props extends Omit<React.ComponentProps<typeof Radio>, "size" | "value
15
14
  }
16
15
 
17
16
  export const RadioCard = forwardRef<HTMLInputElement, Props>(
18
- (
19
- { headerLabel, description, disabled, className, id, children, theme, value, ...props },
20
- ref
21
- ) => {
17
+ ({ headerLabel, description, disabled, className, id, children, theme, value, ...props }) => {
22
18
  return (
23
19
  <Card
24
20
  data-theme={theme}
@@ -31,37 +27,22 @@ export const RadioCard = forwardRef<HTMLInputElement, Props>(
31
27
  disabled && "!bg-background-presentation-action-disabled",
32
28
  disabled && "cursor-not-allowed",
33
29
  disabled && "hover:border-border-presentation-global-primary",
34
- className
30
+ className,
35
31
  )}
36
32
  >
37
- <section
38
- className={"absolute top-0 left-0 w-full p-[10px] flex justify-end"}
39
- >
40
- <Radio
41
- {...props}
42
- value={value}
43
- size="M"
44
- id={id}
45
- disabled={disabled}
46
- />
33
+ <section className={"absolute top-0 left-0 w-full p-[10px] flex justify-end"}>
34
+ <Radio {...props} value={value} size="M" id={id} disabled={disabled} />
47
35
  </section>
48
36
 
49
- <CardHeader >
50
- {headerLabel}
51
- </CardHeader>
37
+ <CardHeader>{headerLabel}</CardHeader>
52
38
 
53
- <CardContent >
54
- {description && (
55
- <CardDescription >
56
- {description}
57
- </CardDescription>
58
- )}
39
+ <CardContent>
40
+ {description && <CardDescription>{description}</CardDescription>}
59
41
  {children}
60
42
  </CardContent>
61
43
  </Card>
62
44
  );
63
- }
45
+ },
64
46
  );
65
47
 
66
-
67
- RadioCard.displayName = "RadioCard"
48
+ RadioCard.displayName = "RadioCard";
@@ -1,52 +1,54 @@
1
- "use client"
1
+ "use client";
2
2
 
3
- import * as React from "react"
4
- import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"
3
+ import * as React from "react";
4
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
5
5
 
6
- import { cn } from "../utils/cn"
6
+ import { cn } from "../utils/cn";
7
7
 
8
8
  const ScrollArea = React.forwardRef<
9
- React.ElementRef<typeof ScrollAreaPrimitive.Root>,
10
- React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>
9
+ React.ElementRef<typeof ScrollAreaPrimitive.Root>,
10
+ React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>
11
11
  >(({ className, children, ...props }, ref) => (
12
- <ScrollAreaPrimitive.Root
13
- ref={ref}
14
- className={cn(["relative overflow-hidden",
15
- "border-border-presentation-global-primary",
16
- "bg-background-presentation-form-base",
17
- "shadow-[0px_0px_10px_0px_rgba(0,0,0,0.4),0px_4px_4px_0px_rgba(0,0,0,0.2)]",
18
- ], className)}
19
- {...props}
20
- >
21
- <ScrollAreaPrimitive.Viewport className="h-full w-full rounded-[inherit]">
22
- {children}
23
- </ScrollAreaPrimitive.Viewport>
24
- <ScrollBar />
25
- <ScrollAreaPrimitive.Corner />
26
- </ScrollAreaPrimitive.Root>
27
- ))
28
- ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName
12
+ <ScrollAreaPrimitive.Root
13
+ ref={ref}
14
+ className={cn(
15
+ [
16
+ "relative overflow-hidden",
17
+ "border-border-presentation-global-primary",
18
+ "bg-background-presentation-form-base",
19
+ "shadow-[0px_0px_10px_0px_rgba(0,0,0,0.4),0px_4px_4px_0px_rgba(0,0,0,0.2)]",
20
+ ],
21
+ className,
22
+ )}
23
+ {...props}
24
+ >
25
+ <ScrollAreaPrimitive.Viewport className="h-full w-full rounded-[inherit]">
26
+ {children}
27
+ </ScrollAreaPrimitive.Viewport>
28
+ <ScrollBar />
29
+ <ScrollAreaPrimitive.Corner />
30
+ </ScrollAreaPrimitive.Root>
31
+ ));
32
+ ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
29
33
 
30
34
  const ScrollBar = React.forwardRef<
31
- React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,
32
- React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>
35
+ React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,
36
+ React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>
33
37
  >(({ className, orientation = "vertical", ...props }, ref) => (
34
- <ScrollAreaPrimitive.ScrollAreaScrollbar
35
- ref={ref}
36
- orientation={orientation}
37
- className={cn(
38
- "flex touch-none select-none transition-colors",
39
- orientation === "vertical" &&
40
- "h-full w-2.5 border-l border-l-transparent p-[1px]",
41
- orientation === "horizontal" &&
42
- "h-2.5 flex-col border-t border-t-transparent p-[1px]",
43
- className
44
- )}
45
- {...props}
46
- >
47
- <ScrollAreaPrimitive.ScrollAreaThumb className="relative flex-1 rounded-full bg-border" />
48
- </ScrollAreaPrimitive.ScrollAreaScrollbar>
49
- ))
50
- ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName
38
+ <ScrollAreaPrimitive.ScrollAreaScrollbar
39
+ ref={ref}
40
+ orientation={orientation}
41
+ className={cn(
42
+ "flex touch-none select-none transition-colors",
43
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
44
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
45
+ className,
46
+ )}
47
+ {...props}
48
+ >
49
+ <ScrollAreaPrimitive.ScrollAreaThumb className="relative flex-1 rounded-full bg-border" />
50
+ </ScrollAreaPrimitive.ScrollAreaScrollbar>
51
+ ));
52
+ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
51
53
 
52
- export { ScrollArea, ScrollBar }
54
+ export { ScrollArea, ScrollBar };
@@ -2,51 +2,61 @@ import { forwardRef, ReactNode } from "react";
2
2
  import { Props, InputField } from "./InputField";
3
3
 
4
4
  interface SearchProps extends Props {
5
- Searchplaceholder?: ReactNode
6
- secondaryPlaceholder?: ReactNode
7
- childrenSide?: ReactNode
5
+ Searchplaceholder?: ReactNode;
6
+ secondaryPlaceholder?: ReactNode;
7
+ childrenSide?: ReactNode;
8
8
  }
9
9
  // Use InputField types in the SearchInput component
10
10
  export const SearchField = forwardRef<HTMLInputElement, SearchProps>(
11
- ({ Searchplaceholder, secondaryPlaceholder, childrenSide, ...props }, forwardedRef) => {
12
- return (
13
- <div className="mb-[10px] w-full h-fit justify-center items-center rounded-[12px] p-[3px] bg-[rgba(106,112,144,0.60)] shadow-[0px_0px_18px_0px_rgba(0,0,0,0.75)] backdrop-blur-[21px]">
14
- <InputField
15
- {...props}
16
- ref={forwardedRef}
17
- type="text"
18
- variant="SystemStyle"
19
- size="M"
20
- className="h-[54px] rounded-[9px] p-[15px] border-border-system-global-primary bg-[rgba(0,0,0,0.60)]"
21
- icon={
22
- <SearchInputPlaceholder value={props.value} secondaryPlaceholder={secondaryPlaceholder} Searchplaceholder={Searchplaceholder} />
23
- }
24
- childrenSide={
25
- childrenSide
26
- }
27
- />
28
- </div>
29
- );
30
- }
11
+ ({ Searchplaceholder, secondaryPlaceholder, childrenSide, ...props }, forwardedRef) => {
12
+ return (
13
+ <div className="mb-[10px] w-full h-fit justify-center items-center rounded-[12px] p-[3px] bg-[rgba(106,112,144,0.60)] shadow-[0px_0px_18px_0px_rgba(0,0,0,0.75)] backdrop-blur-[21px]">
14
+ <InputField
15
+ {...props}
16
+ ref={forwardedRef}
17
+ type="text"
18
+ variant="SystemStyle"
19
+ size="M"
20
+ className="h-[54px] rounded-[9px] p-[15px] border-border-system-global-primary bg-[rgba(0,0,0,0.60)]"
21
+ icon={
22
+ <SearchInputPlaceholder
23
+ value={props.value}
24
+ secondaryPlaceholder={secondaryPlaceholder}
25
+ Searchplaceholder={Searchplaceholder}
26
+ />
27
+ }
28
+ childrenSide={childrenSide}
29
+ />
30
+ </div>
31
+ );
32
+ },
31
33
  );
32
34
 
33
35
  SearchField.displayName = " SearchField"; // Set displayName for debugging
34
36
 
37
+ function SearchInputPlaceholder({
38
+ Searchplaceholder,
39
+ secondaryPlaceholder,
40
+ value,
41
+ }: {
42
+ Searchplaceholder?: ReactNode;
43
+ secondaryPlaceholder?: ReactNode;
44
+ value?: string | number | readonly string[];
45
+ }) {
46
+ return (
47
+ <div className="flex gap-[10px] justify-center items-center ">
48
+ <i className="ri-search-2-line text-[24px] text-[#E5E5E5]"></i>
35
49
 
36
- function SearchInputPlaceholder({ Searchplaceholder, secondaryPlaceholder, value }: { Searchplaceholder?: ReactNode, secondaryPlaceholder?: ReactNode, value: any }) {
37
- return (
38
- <div className="flex gap-[10px] justify-center items-center ">
39
- <i className="ri-search-2-line text-[24px] text-[#E5E5E5]"></i>
40
-
41
- {
42
- value == "" ? (
43
- <div className="flex gap-[5px] justify-center items-center ">
44
- <p className="text-content-system-global-primary typography-headers-medium-regular leading-none opacity-[0.8]">{Searchplaceholder}</p>
45
- <p className="text-content-system-global-primary typography-body-medium-medium leading-none opacity-30 mix-blend-luminosity mt-[2px]">{secondaryPlaceholder}</p>
46
- </div>
47
- ) : null
48
- }
49
-
50
+ {value == "" ? (
51
+ <div className="flex gap-[5px] justify-center items-center ">
52
+ <p className="text-content-system-global-primary typography-headers-medium-regular leading-none opacity-[0.8]">
53
+ {Searchplaceholder}
54
+ </p>
55
+ <p className="text-content-system-global-primary typography-body-medium-medium leading-none opacity-30 mix-blend-luminosity mt-[2px]">
56
+ {secondaryPlaceholder}
57
+ </p>
50
58
  </div>
51
- )
52
- }
59
+ ) : null}
60
+ </div>
61
+ );
62
+ }
@@ -91,7 +91,7 @@ const menuContentStyles = cva(
91
91
  },
92
92
  },
93
93
  defaultVariants: { variant: "PresentationStyle" },
94
- }
94
+ },
95
95
  );
96
96
 
97
97
  export function SearchableSelect({
@@ -123,10 +123,7 @@ export function SearchableSelect({
123
123
 
124
124
  const groupRef = useClickOutside<HTMLDivElement>((e) => {
125
125
  const target = e?.target as Node;
126
- if (
127
- !groupRef.current?.contains(target) &&
128
- !popoverContentRef.current?.contains(target)
129
- ) {
126
+ if (!groupRef.current?.contains(target) && !popoverContentRef.current?.contains(target)) {
130
127
  setOpen(false);
131
128
  }
132
129
  });
@@ -168,7 +165,7 @@ export function SearchableSelect({
168
165
  };
169
166
 
170
167
  // Solid value: search text while typing, otherwise the selected label.
171
- const displayValue = searching ? search : selectedOption?.label ?? "";
168
+ const displayValue = searching ? search : (selectedOption?.label ?? "");
172
169
 
173
170
  return (
174
171
  <Popover open={open}>
@@ -222,13 +219,13 @@ export function SearchableSelect({
222
219
  }}
223
220
  className={cn(
224
221
  "shrink-0 h-[32px] w-[32px] rounded-[4px]",
225
- open && "bg-background-presentation-action-hover text-white"
222
+ open && "bg-background-presentation-action-hover text-white",
226
223
  )}
227
224
  >
228
225
  <i
229
226
  className={cn(
230
- "ri-arrow-down-s-line text-[16px] transition-all duration-100 ease-in-out",
231
- open && "rotate-180"
227
+ "ri-arrow-down-s-line text-[20px] transition-all duration-100 ease-in-out",
228
+ open && "rotate-180",
232
229
  )}
233
230
  />
234
231
  </Button>
@@ -269,15 +266,13 @@ export function SearchableSelect({
269
266
  data-highlighted={isSelected ? "" : undefined}
270
267
  className={cn(
271
268
  MenuItemStyles({ variant: "Default", size: "M" }),
272
- "shrink-0" // keep full row height; the list scrolls instead of squishing
269
+ "shrink-0", // keep full row height; the list scrolls instead of squishing
273
270
  )}
274
271
  >
275
272
  <div>
276
273
  {option.icon}
277
274
  <span className="flex-1 text-start">{option.label}</span>
278
- {isSelected && (
279
- <i className="ri-check-line text-[16px] shrink-0" />
280
- )}
275
+ {isSelected && <i className="ri-check-line text-[16px] shrink-0" />}
281
276
  </div>
282
277
  </button>
283
278
  );
@@ -298,7 +293,6 @@ export function SearchableSelect({
298
293
  <LoadingIcon size="M" />
299
294
  </div>
300
295
  )}
301
-
302
296
  </div>
303
297
  </PopoverContent>
304
298
  </Popover>