torch-glare 2.3.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +7 -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 +110 -106
  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 +10 -8
  19. package/apps/lib/components/DataViews/DataViewsConfigPanel.tsx +21 -55
  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 +173 -150
  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 +87 -0
  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 +111 -114
  41. package/apps/lib/components/DatePicker.tsx +198 -191
  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 +144 -181
  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 +119 -0
  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 +46 -52
  69. package/apps/lib/components/SearchableTable.tsx +199 -219
  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 +47 -24
  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 +18 -14
  160. package/docs/components/data-views-layout.md +20 -17
  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 +51 -32
  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 +187 -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 +60 -41
  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 +130 -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 +7 -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
@@ -1,130 +1,128 @@
1
- import React, { forwardRef, HTMLAttributes, InputHTMLAttributes } from 'react'
2
- import { cn } from '../utils/cn'
3
- import { cva } from 'class-variance-authority';
1
+ import React, { forwardRef, HTMLAttributes, InputHTMLAttributes } from "react";
2
+ import { cn } from "../utils/cn";
3
+ import { cva } from "class-variance-authority";
4
4
 
5
5
  interface InputGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, "size"> {
6
- size?: 'S' | 'M';
7
- variant?: 'PresentationStyle' | 'SystemStyle';
8
- error?: boolean;
9
- onTable?: boolean;
10
- ref?: any
11
- className?: string;
6
+ size?: "S" | "M";
7
+ variant?: "PresentationStyle" | "SystemStyle";
8
+ error?: boolean;
9
+ onTable?: boolean;
10
+ ref?: React.Ref<HTMLDivElement>;
11
+ className?: string;
12
12
  }
13
13
 
14
14
  export const Group = forwardRef<HTMLDivElement, InputGroupProps>(
15
- ({ size = 'M', variant = "PresentationStyle", error = false, onTable = false, className, ...props }, ref) => {
16
- return (
17
- <div
18
- className={cn(GroupStyles({ size, variant, error, onTable }), className)}
19
- ref={ref}
20
- {...props}>
21
- </div>
22
- )
23
- }
15
+ (
16
+ {
17
+ size = "M",
18
+ variant = "PresentationStyle",
19
+ error = false,
20
+ onTable = false,
21
+ className,
22
+ ...props
23
+ },
24
+ ref,
25
+ ) => {
26
+ return (
27
+ <div
28
+ className={cn(GroupStyles({ size, variant, error, onTable }), className)}
29
+ ref={ref}
30
+ {...props}
31
+ ></div>
32
+ );
33
+ },
24
34
  );
25
35
 
26
36
  Group.displayName = "Group";
27
37
 
28
38
  interface IconProps {
29
- children: React.ReactNode;
30
- className?: string;
39
+ children: React.ReactNode;
40
+ className?: string;
31
41
  }
32
42
 
33
43
  export const Icon = ({ children, className }: IconProps) => {
34
- return (
35
- <div
36
- className={cn(
37
- "flex items-center justify-center",
38
- "transition-all duration-200 ease-in-out",
39
- "leading-0 text-content-presentation-action-light-secondary",
40
- className
41
- )} data-role="icon">
42
- {children}
43
- </div>
44
- );
44
+ return (
45
+ <div
46
+ className={cn(
47
+ "flex items-center justify-center",
48
+ "transition-all duration-200 ease-in-out",
49
+ "leading-0 text-content-presentation-action-light-secondary",
50
+ className,
51
+ )}
52
+ data-role="icon"
53
+ >
54
+ {children}
55
+ </div>
56
+ );
45
57
  };
46
58
 
47
-
48
59
  interface TrillingProps extends HTMLAttributes<HTMLDivElement> {
49
- children: React.ReactNode;
50
- className?: string;
60
+ children: React.ReactNode;
61
+ className?: string;
51
62
  }
52
63
  export const Trilling = ({ children, className, ...props }: TrillingProps) => {
53
- return (
54
- <div
55
- {...props}
56
- className={cn(
57
- "flex items-center justify-center h-full gap-1 py-1",
58
- className
59
- )}
60
- >
61
- {children}
62
- </div>
63
- )
64
- }
65
-
66
-
67
-
68
-
69
- interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
70
- }
71
-
72
- export const Input = forwardRef<HTMLInputElement, InputProps>(
73
- ({ className, ...props }, ref) => {
74
- const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {
75
- // Force scroll to the end
76
- const input = e.target;
77
- input.scrollLeft = input.scrollWidth;
78
- // Call the original onFocus if it exists
79
- if (props.onFocus) {
80
- props.onFocus(e);
81
- }
82
- };
64
+ return (
65
+ <div {...props} className={cn("flex items-center justify-center h-full gap-1 py-1", className)}>
66
+ {children}
67
+ </div>
68
+ );
69
+ };
83
70
 
84
- const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {
85
- // Force scroll to the end
86
- const input = e.target as HTMLInputElement;
87
- input.scrollLeft = input.scrollWidth;
88
- // Call the original onClick if it exists
89
- if (props.onClick) {
90
- props.onClick(e);
91
- }
92
- };
71
+ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {}
93
72
 
94
- return (
95
- <input
96
- {...props}
97
- autoComplete="off"
98
- className={cn(
99
- // Base styles
100
- "typography-body-large-regular",
101
- "text-content-presentation-action-light-primary",
102
- "bg-transparent",
103
- "h-full",
104
- "px-[4px]",
105
- "flex-[1_1_0%]",
106
- "min-w-[30px]",
107
- "outline-none",
108
- "transition-all duration-200 ease-in-out",
109
- // Remove mask image completely when focused
110
- "[mask-image:linear-gradient(to_right,black_0%,black_0%,black_85%,transparent_100%)]",
111
- "focus:[mask-image:none]",
112
- "rtl:[mask-image:linear-gradient(to_left,black_0%,black_0%,black_85%,transparent_100%)]",
113
- "focus:rtl:[mask-image:none]",
114
- "hover:placeholder:text-content-presentation-action-light-primary",
115
- className
116
- )}
117
- onFocus={handleFocus}
118
- onClick={handleClick}
119
- ref={ref}
120
- />
121
- );
73
+ export const Input = forwardRef<HTMLInputElement, InputProps>(({ className, ...props }, ref) => {
74
+ const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {
75
+ // Force scroll to the end
76
+ const input = e.target;
77
+ input.scrollLeft = input.scrollWidth;
78
+ // Call the original onFocus if it exists
79
+ if (props.onFocus) {
80
+ props.onFocus(e);
122
81
  }
123
- );
82
+ };
83
+
84
+ const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {
85
+ // Force scroll to the end
86
+ const input = e.target as HTMLInputElement;
87
+ input.scrollLeft = input.scrollWidth;
88
+ // Call the original onClick if it exists
89
+ if (props.onClick) {
90
+ props.onClick(e);
91
+ }
92
+ };
93
+
94
+ return (
95
+ <input
96
+ {...props}
97
+ autoComplete="off"
98
+ className={cn(
99
+ // Base styles
100
+ "typography-body-large-regular",
101
+ "text-content-presentation-action-light-primary",
102
+ "bg-transparent",
103
+ "h-full",
104
+ "px-[4px]",
105
+ "flex-[1_1_0%]",
106
+ "min-w-[30px]",
107
+ "outline-none",
108
+ "transition-all duration-200 ease-in-out",
109
+ // Remove mask image completely when focused
110
+ "[mask-image:linear-gradient(to_right,black_0%,black_0%,black_85%,transparent_100%)]",
111
+ "focus:[mask-image:none]",
112
+ "rtl:[mask-image:linear-gradient(to_left,black_0%,black_0%,black_85%,transparent_100%)]",
113
+ "focus:rtl:[mask-image:none]",
114
+ "hover:placeholder:text-content-presentation-action-light-primary",
115
+ className,
116
+ )}
117
+ onFocus={handleFocus}
118
+ onClick={handleClick}
119
+ ref={ref}
120
+ />
121
+ );
122
+ });
124
123
 
125
124
  Input.displayName = "Input";
126
125
 
127
-
128
126
  /* // solution to fix autofill issue
129
127
  input:-webkit-autofill,
130
128
  input:-webkit-autofill:hover,
@@ -135,73 +133,74 @@ input:-webkit-autofill:active {
135
133
  }
136
134
  */
137
135
 
138
-
139
136
  export const GroupStyles = cva(
140
- [
141
- "flex w-full min-w-0 px-1 justify-center items-center",
142
- "typography-body-small-regular",
143
- "border",
144
- "transition-all duration-200 ease-in-out",
145
- "hover:shadow-[0px_1px_6px_0px_rgba(0,0,0,0.30)]",
146
- "[&_i]:leading-[0px] leading-[0px]",
147
- '[&:has(input[disabled])]:!border-border-presentation-action-disabled',
148
- '[&:has(input[disabled])]:!bg-background-presentation-action-disabled',
149
- '[&:has(input[disabled])]:hover:border-border-presentation-action-disabled',
150
- '[&:has(input[disabled])]:hover:bg-background-presentation-action-disabled',
151
- ],
152
- {
153
- variants: {
154
- variant: {
155
- PresentationStyle: [
156
- "bg-background-presentation-form-field-primary",
157
- "border-border-presentation-action-primary",
158
- "hover:bg-background-presentation-form-field-hover",
159
- "hover:border-border-presentation-action-hover",
160
- "hover:text-content-presentation-action-light-primary",
161
- 'focus-within:border-border-presentation-state-focus',
162
- 'focus-within:bg-background-presentation-form-field-primary',
163
- 'focus-within:shadow-[0px_1px_6px_0px_rgba(0,0,0,0.30)]',
164
- 'focus-within:hover:border-border-presentation-state-focus',
165
- 'focus-within:caret-border-presentation-state-focus',
166
- 'focus-within:hover:caret-border-presentation-state-focus',
167
- ],
168
- SystemStyle: [
169
- "bg-black-alpha-20",
170
- "text-white",
171
- "border-[#2C2D2E]",
172
- "hover:border-[#9748FF]",
173
- "hover:bg-purple-alpha-10",
174
- 'focus-within:border-border-presentation-state-focus',
175
- 'focus-within:shadow-[0px_1px_6px_0px_rgba(0,0,0,0.30)]',
176
- 'focus-within:hover:border-border-presentation-state-focus',
177
- 'focus-within:caret-border-presentation-state-focus',
178
- 'focus-within:hover:caret-border-presentation-state-focus',
179
- 'focus-within:hover:bg-black-alpha-20',
180
- "[&_div[data-role='icon']]:focus-within:text-white",
181
- "[&_input]:placeholder:text-[#A0A0A0]",
182
- "[&_input]:hover:placeholder:text-[#A0A0A0]",
183
- "[&_input]:text-white"
184
- ],
185
- },
186
- size: {
187
- S: ["h-[30px] min-h-[30px]", "rounded-[6px] [&_input]:h-[30px] [&_div[data-role='icon']]:text-[16px]"],
188
- M: ["h-[40px] min-h-[40px]", "rounded-[8px] [&_input]:h-[40px] [&_div[data-role='icon']]:text-[18px] [&_div[data-role='icon']]:px-[2px]"],
189
- },
190
- error: {
191
- true: [
192
- "border-border-presentation-state-negative",
193
- "caret-border-presentation-state-negative",
194
- "hover:border-border-presentation-state-negative",
195
- "hover:caret-border-presentation-state-negative",
196
- ],
197
- },
198
- onTable: {
199
- true: [
200
- 'border-transparent',
201
- 'bg-transparent',
202
- ],
203
- },
204
- },
205
-
206
- }
207
- );
137
+ [
138
+ "flex w-full min-w-0 px-1 justify-center items-center",
139
+ "typography-body-small-regular",
140
+ "border",
141
+ "transition-all duration-200 ease-in-out",
142
+ "hover:shadow-[0px_1px_6px_0px_rgba(0,0,0,0.30)]",
143
+ "[&_i]:leading-[0px] leading-[0px]",
144
+ "[&:has(input[disabled])]:!border-border-presentation-action-disabled",
145
+ "[&:has(input[disabled])]:!bg-background-presentation-action-disabled",
146
+ "[&:has(input[disabled])]:hover:border-border-presentation-action-disabled",
147
+ "[&:has(input[disabled])]:hover:bg-background-presentation-action-disabled",
148
+ ],
149
+ {
150
+ variants: {
151
+ variant: {
152
+ PresentationStyle: [
153
+ "bg-background-presentation-form-field-primary",
154
+ "border-border-presentation-action-primary",
155
+ "hover:bg-background-presentation-form-field-hover",
156
+ "hover:border-border-presentation-action-hover",
157
+ "hover:text-content-presentation-action-light-primary",
158
+ "focus-within:border-border-presentation-state-focus",
159
+ "focus-within:bg-background-presentation-form-field-primary",
160
+ "focus-within:shadow-[0px_1px_6px_0px_rgba(0,0,0,0.30)]",
161
+ "focus-within:hover:border-border-presentation-state-focus",
162
+ "focus-within:caret-border-presentation-state-focus",
163
+ "focus-within:hover:caret-border-presentation-state-focus",
164
+ ],
165
+ SystemStyle: [
166
+ "bg-black-alpha-20",
167
+ "text-white",
168
+ "border-[#2C2D2E]",
169
+ "hover:border-[#9748FF]",
170
+ "hover:bg-purple-alpha-10",
171
+ "focus-within:border-border-presentation-state-focus",
172
+ "focus-within:shadow-[0px_1px_6px_0px_rgba(0,0,0,0.30)]",
173
+ "focus-within:hover:border-border-presentation-state-focus",
174
+ "focus-within:caret-border-presentation-state-focus",
175
+ "focus-within:hover:caret-border-presentation-state-focus",
176
+ "focus-within:hover:bg-black-alpha-20",
177
+ "[&_div[data-role='icon']]:focus-within:text-white",
178
+ "[&_input]:placeholder:text-[#A0A0A0]",
179
+ "[&_input]:hover:placeholder:text-[#A0A0A0]",
180
+ "[&_input]:text-white",
181
+ ],
182
+ },
183
+ size: {
184
+ S: [
185
+ "h-[30px] min-h-[30px]",
186
+ "rounded-[6px] [&_input]:h-[30px] [&_div[data-role='icon']]:text-[16px]",
187
+ ],
188
+ M: [
189
+ "h-[40px] min-h-[40px]",
190
+ "rounded-[8px] [&_input]:h-[40px] [&_div[data-role='icon']]:text-[18px] [&_div[data-role='icon']]:px-[2px]",
191
+ ],
192
+ },
193
+ error: {
194
+ true: [
195
+ "border-border-presentation-state-negative",
196
+ "caret-border-presentation-state-negative",
197
+ "hover:border-border-presentation-state-negative",
198
+ "hover:caret-border-presentation-state-negative",
199
+ ],
200
+ },
201
+ onTable: {
202
+ true: ["border-transparent", "bg-transparent"],
203
+ },
204
+ },
205
+ },
206
+ );
@@ -1,12 +1,5 @@
1
1
  "use client";
2
- import {
3
- forwardRef,
4
- InputHTMLAttributes,
5
- ReactNode,
6
- useEffect,
7
- useRef,
8
- useState,
9
- } from "react";
2
+ import { forwardRef, InputHTMLAttributes, ReactNode, useEffect, useRef, useState } from "react";
10
3
  import { cn } from "../utils/cn";
11
4
  import { Tooltip, ToolTipSide } from "./Tooltip";
12
5
  import { Popover, PopoverContent, PopoverTrigger } from "./Popover";
@@ -14,8 +7,7 @@ import { ActionButton } from "./ActionButton";
14
7
  import { Themes } from "../utils/types";
15
8
  import { Icon, Input, Group, Trilling } from "./Input";
16
9
 
17
- export interface Props
18
- extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "variant"> {
10
+ export interface Props extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "variant"> {
19
11
  size?: "S" | "M"; // this is used to change the size style of the component
20
12
  variant?: "SystemStyle" | "PresentationStyle";
21
13
  icon?: ReactNode; // to add left side icon if you pass it
@@ -24,10 +16,9 @@ export interface Props
24
16
  errorMessage?: string; // to show tooltip component when error_message not null
25
17
  onTable?: boolean; // to change the border style of the component when it is on table
26
18
  toolTipSide?: ToolTipSide;
27
- theme?: Themes
19
+ theme?: Themes;
28
20
  }
29
21
 
30
-
31
22
  export const InputField = forwardRef<HTMLInputElement, Props>(
32
23
  (
33
24
  {
@@ -43,7 +34,7 @@ export const InputField = forwardRef<HTMLInputElement, Props>(
43
34
  className,
44
35
  ...props
45
36
  },
46
- forwardedRef
37
+ forwardedRef,
47
38
  ) => {
48
39
  const [isPopoverOpen, setIsPopoverOpen] = useState(false);
49
40
  const [PopoverWidth, setPopoverWidth] = useState(0);
@@ -78,58 +69,66 @@ export const InputField = forwardRef<HTMLInputElement, Props>(
78
69
  }}
79
70
  className={className}
80
71
  >
81
- {icon && (
82
- <Icon>
83
- {icon}
84
- </Icon>
85
- )}
72
+ {icon && <Icon>{icon}</Icon>}
86
73
  <Input
87
74
  {...props}
88
75
  onFocus={(e) => {
89
- setIsPopoverOpen(true)
90
- props.onFocus?.(e)
76
+ setIsPopoverOpen(true);
77
+ props.onFocus?.(e);
91
78
  }}
92
79
  onBlur={(e) => {
93
- setIsPopoverOpen(false)
94
- props.onBlur?.(e)
80
+ setIsPopoverOpen(false);
81
+ props.onBlur?.(e);
95
82
  }}
96
83
  ref={inputRef}
97
84
  />
98
85
 
99
- <Trilling >
86
+ <Trilling>
100
87
  {childrenSide}
101
88
  {popoverChildren && (
102
- <PopoverActionButton size={size} variant={variant} isPopoverOpen={isPopoverOpen} disabled={props.disabled} />
89
+ <PopoverActionButton
90
+ size={size}
91
+ variant={variant}
92
+ isPopoverOpen={isPopoverOpen}
93
+ disabled={props.disabled}
94
+ />
103
95
  )}
104
96
  </Trilling>
105
97
  </Group>
106
98
  </PopoverTrigger>
107
99
  </Tooltip>
108
100
 
109
-
110
- {
111
- (popoverChildren && !props.disabled) && (
112
- <PopoverContent
113
- theme={theme}
114
- variant={variant}
115
- onOpenAutoFocus={(e: any) => e.preventDefault()}
116
- style={{ width: PopoverWidth }}
117
- onClick={(e) => {
118
- triggerRef.current?.click();
119
- }}
120
- >
121
- {popoverChildren}
122
- </PopoverContent>
123
- )
124
- }
125
- </Popover >
101
+ {popoverChildren && !props.disabled && (
102
+ <PopoverContent
103
+ theme={theme}
104
+ variant={variant}
105
+ onOpenAutoFocus={(e: Event) => e.preventDefault()}
106
+ style={{ width: PopoverWidth }}
107
+ onClick={() => {
108
+ triggerRef.current?.click();
109
+ }}
110
+ >
111
+ {popoverChildren}
112
+ </PopoverContent>
113
+ )}
114
+ </Popover>
126
115
  );
127
- }
116
+ },
128
117
  );
129
118
 
130
119
  InputField.displayName = "InputField";
131
120
 
132
- const PopoverActionButton = ({ size, variant, isPopoverOpen, disabled }: { size: "S" | "M", variant: "SystemStyle" | "PresentationStyle", isPopoverOpen: boolean, disabled?: boolean }) => {
121
+ const PopoverActionButton = ({
122
+ size,
123
+ variant,
124
+ isPopoverOpen,
125
+ disabled,
126
+ }: {
127
+ size: "S" | "M";
128
+ variant: "SystemStyle" | "PresentationStyle";
129
+ isPopoverOpen: boolean;
130
+ disabled?: boolean;
131
+ }) => {
133
132
  return (
134
133
  <ActionButton disabled={disabled} size={size}>
135
134
  <i
@@ -138,10 +137,10 @@ const PopoverActionButton = ({ size, variant, isPopoverOpen, disabled }: { size:
138
137
  "transition-[transform,rotate]",
139
138
  "duration-200",
140
139
  "ease-in-out",
141
- { "rotate-180": (isPopoverOpen && !disabled) },
140
+ { "rotate-180": isPopoverOpen && !disabled },
142
141
  { "!text-[16px]": size === "S" },
143
142
  { "!text-[26px]": size === "M" },
144
- { "text-white": variant === "SystemStyle" }
143
+ { "text-white": variant === "SystemStyle" },
145
144
  )}
146
145
  />
147
146
  </ActionButton>