torch-glare 2.4.0 → 2.4.2

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 (318) 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 +21 -20
  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 +40 -24
  13. package/apps/lib/components/Checkbox.tsx +9 -16
  14. package/apps/lib/components/ColorPicker.tsx +441 -0
  15. package/apps/lib/components/ConclusionHeader.tsx +148 -0
  16. package/apps/lib/components/ContextMenu.tsx +97 -96
  17. package/apps/lib/components/CountBadge.tsx +4 -6
  18. package/apps/lib/components/DataTable.tsx +196 -216
  19. package/apps/lib/components/DataViews/DataViewRadio.tsx +1 -6
  20. package/apps/lib/components/DataViews/DataViewsConfigPanel.tsx +13 -47
  21. package/apps/lib/components/DataViews/DataViewsHeader.tsx +1 -3
  22. package/apps/lib/components/DataViews/DataViewsLayout.tsx +5 -12
  23. package/apps/lib/components/DataViews/FilterPanel.tsx +155 -149
  24. package/apps/lib/components/DataViews/HeaderSearch.tsx +1 -5
  25. package/apps/lib/components/DataViews/InboxView.tsx +22 -68
  26. package/apps/lib/components/DataViews/InboxViewCard.tsx +68 -77
  27. package/apps/lib/components/DataViews/KanbanView.tsx +8 -25
  28. package/apps/lib/components/DataViews/PanelControls.tsx +3 -13
  29. package/apps/lib/components/DataViews/SettingsPanel.tsx +83 -89
  30. package/apps/lib/components/DataViews/TableView.tsx +8 -28
  31. package/apps/lib/components/DataViews/TreeView.tsx +12 -40
  32. package/apps/lib/components/DataViews/badgeAdapter.ts +32 -28
  33. package/apps/lib/components/DataViews/fieldRenderers.tsx +106 -141
  34. package/apps/lib/components/DataViews/filters/DatePickerRangeFilter.tsx +30 -23
  35. package/apps/lib/components/DataViews/filters/DateRangePopover.tsx +39 -32
  36. package/apps/lib/components/DataViews/filters/PresetChips.tsx +15 -15
  37. package/apps/lib/components/DataViews/filters/RangeSliderWithInputs.tsx +69 -58
  38. package/apps/lib/components/DataViews/index.ts +26 -26
  39. package/apps/lib/components/DataViews/tree/TreeDrawer.tsx +12 -16
  40. package/apps/lib/components/DataViews/tree/TreeSidebar.tsx +28 -31
  41. package/apps/lib/components/DataViews/types.ts +104 -115
  42. package/apps/lib/components/DatePicker.tsx +200 -196
  43. package/apps/lib/components/Dialog.tsx +92 -105
  44. package/apps/lib/components/Divider.tsx +21 -24
  45. package/apps/lib/components/Drawer.tsx +124 -142
  46. package/apps/lib/components/DropdownMenu.tsx +131 -171
  47. package/apps/lib/components/FieldHint.tsx +4 -11
  48. package/apps/lib/components/Form.tsx +146 -155
  49. package/apps/lib/components/FormBuilder/DisplayField.tsx +40 -0
  50. package/apps/lib/components/FormBuilder/context.ts +71 -0
  51. package/apps/lib/components/FormBuilder/fields/ChoiceFields.tsx +65 -0
  52. package/apps/lib/components/FormBuilder/fields/ColorField.tsx +76 -0
  53. package/apps/lib/components/FormBuilder/fields/CustomField.tsx +16 -0
  54. package/apps/lib/components/FormBuilder/fields/DateField.tsx +34 -0
  55. package/apps/lib/components/FormBuilder/fields/FieldArray.tsx +79 -0
  56. package/apps/lib/components/FormBuilder/fields/FieldShell.tsx +174 -0
  57. package/apps/lib/components/FormBuilder/fields/FileField.tsx +40 -0
  58. package/apps/lib/components/FormBuilder/fields/OptionListFields.tsx +139 -0
  59. package/apps/lib/components/FormBuilder/fields/OtpField.tsx +32 -0
  60. package/apps/lib/components/FormBuilder/fields/PhoneField.tsx +82 -0
  61. package/apps/lib/components/FormBuilder/fields/RichTextEditorField.tsx +37 -0
  62. package/apps/lib/components/FormBuilder/fields/SelectField.tsx +101 -0
  63. package/apps/lib/components/FormBuilder/fields/SignatureField.tsx +175 -0
  64. package/apps/lib/components/FormBuilder/fields/SliderField.tsx +72 -0
  65. package/apps/lib/components/FormBuilder/fields/SwitchBoxField.tsx +42 -0
  66. package/apps/lib/components/FormBuilder/fields/TableField.tsx +312 -0
  67. package/apps/lib/components/FormBuilder/fields/TextField.tsx +222 -0
  68. package/apps/lib/components/FormBuilder/fields/TreeSelectField.tsx +49 -0
  69. package/apps/lib/components/FormBuilder/fields/countries.ts +303 -0
  70. package/apps/lib/components/FormBuilder/fields/index.ts +25 -0
  71. package/apps/lib/components/FormBuilder/form-builder.tsx +292 -0
  72. package/apps/lib/components/FormBuilder/header.tsx +105 -0
  73. package/apps/lib/components/FormBuilder/index.ts +37 -0
  74. package/apps/lib/components/FormBuilder/numberFormat.ts +16 -0
  75. package/apps/lib/components/FormBuilder/stepper.tsx +217 -0
  76. package/apps/lib/components/FormBuilder/submit.tsx +41 -0
  77. package/apps/lib/components/FormBuilder/types.ts +264 -0
  78. package/apps/lib/components/FormBuilder/viewFormat.tsx +137 -0
  79. package/apps/lib/components/FormRenderer/FormDrawer.tsx +121 -0
  80. package/apps/lib/components/FormRenderer/form-renderer.tsx +113 -0
  81. package/apps/lib/components/FormRenderer/index.ts +9 -0
  82. package/apps/lib/components/FormRenderer/types.ts +79 -0
  83. package/apps/lib/components/FormStepper.tsx +9 -39
  84. package/apps/lib/components/FormSummary.tsx +282 -0
  85. package/apps/lib/components/HeaderBar.tsx +1 -9
  86. package/apps/lib/components/ImageAttachment.tsx +106 -93
  87. package/apps/lib/components/InnerLabelField.tsx +20 -16
  88. package/apps/lib/components/Input.tsx +171 -172
  89. package/apps/lib/components/InputField.tsx +44 -45
  90. package/apps/lib/components/InputOTP.tsx +68 -69
  91. package/apps/lib/components/Label.tsx +61 -58
  92. package/apps/lib/components/LabelField.tsx +4 -5
  93. package/apps/lib/components/LabeledCheckBox.tsx +8 -12
  94. package/apps/lib/components/LabeledRadio.tsx +7 -5
  95. package/apps/lib/components/LinkButton.tsx +2 -9
  96. package/apps/lib/components/LoginButton.tsx +4 -9
  97. package/apps/lib/components/PasswordLevel.tsx +5 -5
  98. package/apps/lib/components/Popover.tsx +15 -33
  99. package/apps/lib/components/ProfileMenu.tsx +67 -72
  100. package/apps/lib/components/Radio.tsx +1 -5
  101. package/apps/lib/components/RadioCard.tsx +11 -28
  102. package/apps/lib/components/ScrollArea.tsx +45 -43
  103. package/apps/lib/components/SearchField.tsx +49 -39
  104. package/apps/lib/components/SearchableSelect.tsx +16 -16
  105. package/apps/lib/components/SearchableTable.tsx +108 -118
  106. package/apps/lib/components/SearchableTree.tsx +469 -0
  107. package/apps/lib/components/SearchableTreeDialog.tsx +493 -0
  108. package/apps/lib/components/SectionBlock.tsx +19 -23
  109. package/apps/lib/components/Select.tsx +80 -186
  110. package/apps/lib/components/SimpleSelect.tsx +196 -187
  111. package/apps/lib/components/Skeleton.tsx +9 -12
  112. package/apps/lib/components/SlideDatePicker.tsx +215 -166
  113. package/apps/lib/components/SpinLoading.tsx +33 -49
  114. package/apps/lib/components/Stepper.tsx +13 -56
  115. package/apps/lib/components/Switch.tsx +8 -10
  116. package/apps/lib/components/TabFormItem.tsx +3 -12
  117. package/apps/lib/components/TabSwitch.tsx +7 -34
  118. package/apps/lib/components/Table.tsx +60 -75
  119. package/apps/lib/components/{ChartBlockTool.ts → TextEditor/ChartBlockTool.ts} +17 -52
  120. package/apps/lib/components/TextEditor/RichTextField.tsx +46 -0
  121. package/apps/lib/components/{TableDnDWrapper.ts → TextEditor/TableDnDWrapper.ts} +15 -48
  122. package/apps/lib/components/{TextEditor.tsx → TextEditor/TextEditor.tsx} +156 -113
  123. package/apps/lib/components/TextEditor/TextEditorToolbar.tsx +429 -0
  124. package/apps/lib/components/TextEditor/editor-tools/AlignmentTune.ts +70 -0
  125. package/apps/lib/components/TextEditor/editor-tools/ColorInlineTool.ts +50 -0
  126. package/apps/lib/components/TextEditor/editor-tools/StrikethroughInlineTool.ts +48 -0
  127. package/apps/lib/components/TextEditor/editor-tools/inlineFormat.ts +98 -0
  128. package/apps/lib/{types → components/TextEditor}/editorjs.d.ts +19 -0
  129. package/apps/lib/components/TextEditor/index.ts +7 -0
  130. package/apps/lib/{utils → components/TextEditor}/markdownParser.ts +2 -7
  131. package/apps/lib/components/Textarea.tsx +9 -13
  132. package/apps/lib/components/Timeline.tsx +21 -41
  133. package/apps/lib/components/Toast.tsx +83 -83
  134. package/apps/lib/components/Toggle.tsx +112 -114
  135. package/apps/lib/components/ToggleButton.tsx +1 -1
  136. package/apps/lib/components/Tooltip.tsx +24 -19
  137. package/apps/lib/components/TransparentLabel.tsx +61 -62
  138. package/apps/lib/components/TreeDropDown.tsx +86 -52
  139. package/apps/lib/components/TreeFolder/TreeFolder.tsx +15 -48
  140. package/apps/lib/components/TreeFolder/TreeFolderBreadcrumb.tsx +16 -21
  141. package/apps/lib/components/TreeFolder/TreeFolderRow.tsx +9 -20
  142. package/apps/lib/components/TreeFolder/TreeFolderStyles.tsx +3 -3
  143. package/apps/lib/components/TreeFolder/icons.tsx +14 -17
  144. package/apps/lib/components/TreeFolder/index.ts +15 -8
  145. package/apps/lib/components/TreeFolder/treeFolderUtils.ts +47 -52
  146. package/apps/lib/components/TreeFolder/types.ts +32 -32
  147. package/apps/lib/components/TreeFolder/useTreeFolderDnD.ts +117 -123
  148. package/apps/lib/hooks/useActiveTreeItem.ts +52 -55
  149. package/apps/lib/hooks/useClickOutside.ts +21 -20
  150. package/apps/lib/hooks/useDataViewsState.ts +86 -80
  151. package/apps/lib/hooks/useIsMobile.ts +12 -12
  152. package/apps/lib/hooks/useResize.ts +54 -65
  153. package/apps/lib/hooks/useTagSelection.ts +201 -201
  154. package/apps/lib/layouts/CNLayout.tsx +181 -140
  155. package/apps/lib/layouts/DataViewCard.tsx +4 -18
  156. package/apps/lib/layouts/FieldSection.tsx +2 -6
  157. package/apps/lib/layouts/TreeSubLayout.tsx +24 -38
  158. package/apps/lib/providers/ThemeProvider.tsx +8 -23
  159. package/apps/lib/registry.json +997 -0
  160. package/apps/lib/tsconfig.json +9 -0
  161. package/apps/lib/tsconfig.tsbuildinfo +1 -0
  162. package/apps/lib/utils/cn.ts +1 -1
  163. package/apps/lib/utils/color.ts +175 -0
  164. package/apps/lib/utils/dataViews/columnUtils.ts +46 -44
  165. package/apps/lib/utils/dataViews/fieldUtils.ts +70 -71
  166. package/apps/lib/utils/dataViews/nestedDataUtils.tsx +129 -122
  167. package/apps/lib/utils/dataViews/pathUtils.ts +74 -67
  168. package/apps/lib/utils/dataViews/rangeUtils.ts +121 -112
  169. package/apps/lib/utils/dataViews/treeUtils.ts +204 -211
  170. package/apps/lib/utils/dateFormat.ts +64 -54
  171. package/apps/lib/utils/resize.ts +21 -25
  172. package/apps/lib/utils/types.ts +13 -13
  173. package/dist/bin/index.js +8 -2
  174. package/dist/bin/index.js.map +1 -1
  175. package/dist/src/shared/getAvailableFiles.d.ts.map +1 -1
  176. package/dist/src/shared/getAvailableFiles.js +6 -1
  177. package/dist/src/shared/getAvailableFiles.js.map +1 -1
  178. package/dist/src/shared/loadRegistry.d.ts +7 -0
  179. package/dist/src/shared/loadRegistry.d.ts.map +1 -0
  180. package/dist/src/shared/loadRegistry.js +31 -0
  181. package/dist/src/shared/loadRegistry.js.map +1 -0
  182. package/dist/src/shared/resolveInstallPlan.d.ts +12 -0
  183. package/dist/src/shared/resolveInstallPlan.d.ts.map +1 -0
  184. package/dist/src/shared/resolveInstallPlan.js +39 -0
  185. package/dist/src/shared/resolveInstallPlan.js.map +1 -0
  186. package/dist/src/types/main.d.ts +24 -0
  187. package/dist/src/types/main.d.ts.map +1 -1
  188. package/docs/README.md +10 -2
  189. package/docs/components/action-button.md +30 -24
  190. package/docs/components/actions-group.md +26 -20
  191. package/docs/components/alert-dialog.md +45 -45
  192. package/docs/components/avatar.md +6 -2
  193. package/docs/components/badge-field.md +6 -2
  194. package/docs/components/badge.md +7 -1
  195. package/docs/components/breadcrumb.md +15 -40
  196. package/docs/components/button-group.md +13 -10
  197. package/docs/components/button.md +58 -33
  198. package/docs/components/calendar.md +26 -19
  199. package/docs/components/card.md +23 -18
  200. package/docs/components/chart-block-tool.md +129 -0
  201. package/docs/components/checkbox.md +16 -8
  202. package/docs/components/cn-layout.md +7 -1
  203. package/docs/components/color-picker.md +101 -0
  204. package/docs/components/conclusion-header.md +80 -0
  205. package/docs/components/context-menu.md +18 -25
  206. package/docs/components/count-badge.md +7 -1
  207. package/docs/components/data-table.md +45 -33
  208. package/docs/components/data-views-config-panel.md +15 -11
  209. package/docs/components/data-views-layout.md +13 -16
  210. package/docs/components/date-picker.md +30 -23
  211. package/docs/components/dialog.md +43 -42
  212. package/docs/components/divider.md +10 -4
  213. package/docs/components/drawer.md +161 -135
  214. package/docs/components/dropdown-menu.md +25 -34
  215. package/docs/components/field-hint.md +37 -25
  216. package/docs/components/field-section.md +9 -3
  217. package/docs/components/form-builder.md +270 -0
  218. package/docs/components/form-renderer.md +228 -0
  219. package/docs/components/form-stepper.md +6 -0
  220. package/docs/components/form-summary.md +123 -0
  221. package/docs/components/form.md +17 -20
  222. package/docs/components/header-bar.md +6 -0
  223. package/docs/components/image-attachment.md +43 -45
  224. package/docs/components/inbox-view.md +16 -5
  225. package/docs/components/inner-label-field.md +34 -24
  226. package/docs/components/input-field.md +18 -10
  227. package/docs/components/input-otp.md +14 -11
  228. package/docs/components/input.md +22 -16
  229. package/docs/components/kanban-view.md +15 -5
  230. package/docs/components/label-field.md +32 -22
  231. package/docs/components/label.md +43 -32
  232. package/docs/components/labeled-check-box.md +16 -8
  233. package/docs/components/labeled-radio.md +18 -11
  234. package/docs/components/link-button.md +7 -1
  235. package/docs/components/login-button.md +8 -2
  236. package/docs/components/password-level.md +37 -24
  237. package/docs/components/popover.md +26 -23
  238. package/docs/components/profile-menu.md +38 -27
  239. package/docs/components/radio-card.md +16 -9
  240. package/docs/components/radio.md +16 -8
  241. package/docs/components/scroll-area.md +6 -2
  242. package/docs/components/search-field.md +14 -6
  243. package/docs/components/searchable-select.md +19 -14
  244. package/docs/components/searchable-table.md +18 -13
  245. package/docs/components/searchable-tree-dialog.md +190 -0
  246. package/docs/components/searchable-tree.md +200 -0
  247. package/docs/components/section-block.md +12 -4
  248. package/docs/components/select.md +23 -18
  249. package/docs/components/simple-select.md +14 -10
  250. package/docs/components/skeleton.md +43 -33
  251. package/docs/components/slide-date-picker.md +37 -29
  252. package/docs/components/spin-loading.md +32 -23
  253. package/docs/components/stepper.md +6 -0
  254. package/docs/components/switch.md +14 -6
  255. package/docs/components/tab-form-item.md +7 -1
  256. package/docs/components/tab-switch.md +13 -6
  257. package/docs/components/table-dnd-wrapper.md +107 -0
  258. package/docs/components/table-view.md +15 -5
  259. package/docs/components/table.md +28 -28
  260. package/docs/components/text-editor.md +37 -13
  261. package/docs/components/textarea.md +15 -7
  262. package/docs/components/timeline.md +6 -0
  263. package/docs/components/toast.md +35 -26
  264. package/docs/components/toggle-button.md +24 -21
  265. package/docs/components/toggle.md +23 -15
  266. package/docs/components/tooltip.md +42 -30
  267. package/docs/components/transparent-label.md +29 -20
  268. package/docs/components/tree-drop-down.md +31 -23
  269. package/docs/components/tree-sub-layout.md +6 -2
  270. package/docs/components/tree-view.md +16 -5
  271. package/docs/explanation/architecture.md +54 -0
  272. package/docs/explanation/design-system.md +52 -0
  273. package/docs/how-to/data-views-from-backend-response.md +6 -4
  274. package/docs/how-to/form-and-list-recipes.md +26 -19
  275. package/docs/how-to/forms-with-form-builder.md +408 -0
  276. package/docs/how-to/guides.md +177 -197
  277. package/docs/migration/changelog.md +38 -0
  278. package/docs/reference/cli.md +87 -0
  279. package/docs/reference/components.md +11 -12
  280. package/docs/reference/hooks.md +8 -8
  281. package/docs/reference/providers.md +22 -22
  282. package/docs/reference/tailwind-plugins.md +2 -2
  283. package/docs/reference/theme.md +85 -0
  284. package/docs/reference/types.md +4 -4
  285. package/docs/reference/utilities.md +19 -26
  286. package/docs/tutorials/building-first-form.md +170 -172
  287. package/docs/tutorials/component-composition.md +34 -50
  288. package/docs/tutorials/getting-started.md +2 -2
  289. package/docs/tutorials/theming-basics.md +13 -10
  290. package/package.json +31 -3
  291. package/dist/src/commands/block.d.ts +0 -5
  292. package/dist/src/commands/block.d.ts.map +0 -1
  293. package/dist/src/commands/block.js +0 -255
  294. package/dist/src/commands/block.js.map +0 -1
  295. package/dist/src/shared/configureFonts.d.ts +0 -6
  296. package/dist/src/shared/configureFonts.d.ts.map +0 -1
  297. package/dist/src/shared/configureFonts.js +0 -106
  298. package/dist/src/shared/configureFonts.js.map +0 -1
  299. package/dist/src/shared/configureGlobalCss.d.ts +0 -6
  300. package/dist/src/shared/configureGlobalCss.d.ts.map +0 -1
  301. package/dist/src/shared/configureGlobalCss.js +0 -154
  302. package/dist/src/shared/configureGlobalCss.js.map +0 -1
  303. package/dist/src/shared/configureTailwind.d.ts +0 -7
  304. package/dist/src/shared/configureTailwind.d.ts.map +0 -1
  305. package/dist/src/shared/configureTailwind.js +0 -163
  306. package/dist/src/shared/configureTailwind.js.map +0 -1
  307. package/dist/src/shared/detectFramework.d.ts +0 -23
  308. package/dist/src/shared/detectFramework.d.ts.map +0 -1
  309. package/dist/src/shared/detectFramework.js +0 -119
  310. package/dist/src/shared/detectFramework.js.map +0 -1
  311. package/dist/src/shared/installBaseUtils.d.ts +0 -5
  312. package/dist/src/shared/installBaseUtils.d.ts.map +0 -1
  313. package/dist/src/shared/installBaseUtils.js +0 -79
  314. package/dist/src/shared/installBaseUtils.js.map +0 -1
  315. package/dist/src/shared/resolveAliases.d.ts +0 -24
  316. package/dist/src/shared/resolveAliases.d.ts.map +0 -1
  317. package/dist/src/shared/resolveAliases.js +0 -98
  318. package/dist/src/shared/resolveAliases.js.map +0 -1
@@ -1,4 +1,4 @@
1
- 'use client'
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
- LocalPopOverProps & {
40
- theme?: Themes
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
  );
@@ -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,15 +14,14 @@ 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}
25
21
  htmlFor={id}
26
22
  as="label"
23
+ // The whole card is the radio's label — an interactive target, so it keeps the hover.
24
+ variant="clickable"
27
25
  className={cn(
28
26
  "relative [&>button]:data-[state=checked]:!border-none",
29
27
  '[&:has(button[data-state="checked"])]:border-border-presentation-state-focus',
@@ -31,37 +29,22 @@ export const RadioCard = forwardRef<HTMLInputElement, Props>(
31
29
  disabled && "!bg-background-presentation-action-disabled",
32
30
  disabled && "cursor-not-allowed",
33
31
  disabled && "hover:border-border-presentation-global-primary",
34
- className
32
+ className,
35
33
  )}
36
34
  >
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
- />
35
+ <section className={"absolute top-0 left-0 w-full p-[10px] flex justify-end"}>
36
+ <Radio {...props} value={value} size="M" id={id} disabled={disabled} />
47
37
  </section>
48
38
 
49
- <CardHeader >
50
- {headerLabel}
51
- </CardHeader>
39
+ <CardHeader>{headerLabel}</CardHeader>
52
40
 
53
- <CardContent >
54
- {description && (
55
- <CardDescription >
56
- {description}
57
- </CardDescription>
58
- )}
41
+ <CardContent>
42
+ {description && <CardDescription>{description}</CardDescription>}
59
43
  {children}
60
44
  </CardContent>
61
45
  </Card>
62
46
  );
63
- }
47
+ },
64
48
  );
65
49
 
66
-
67
- RadioCard.displayName = "RadioCard"
50
+ 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
+ }