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
@@ -5,6 +5,7 @@ import { cn } from "../utils/cn";
5
5
  import { cva, VariantProps } from "class-variance-authority";
6
6
  import { Button } from "./Button";
7
7
  import { Tooltip } from "./Tooltip";
8
+ import { MenuItemStyles } from "./DropdownMenu";
8
9
  import { Themes } from "../utils/types";
9
10
 
10
11
  const Select = SelectPrimitive.Root;
@@ -16,11 +17,11 @@ const SelectValue = SelectPrimitive.Value;
16
17
  const SelectTrigger = React.forwardRef<
17
18
  React.ElementRef<typeof SelectPrimitive.Trigger>,
18
19
  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> &
19
- VariantProps<typeof PopoverTriggerStyles> & {
20
- errors?: string;
21
- icon?: string
22
- theme?: Themes
23
- }
20
+ VariantProps<typeof PopoverTriggerStyles> & {
21
+ errors?: string;
22
+ icon?: string;
23
+ theme?: Themes;
24
+ }
24
25
  >(
25
26
  (
26
27
  {
@@ -31,9 +32,10 @@ const SelectTrigger = React.forwardRef<
31
32
  errors,
32
33
  theme,
33
34
  icon,
35
+ onTable,
34
36
  ...props
35
37
  },
36
- ref
38
+ ref,
37
39
  ) => {
38
40
  return (
39
41
  <Tooltip toolTipSide={"top"} open={errors !== undefined} text={errors}>
@@ -45,24 +47,28 @@ const SelectTrigger = React.forwardRef<
45
47
  size,
46
48
  variant,
47
49
  error: errors !== undefined,
50
+ onTable,
48
51
  }),
49
- className
52
+ className,
50
53
  )}
51
54
  {...props}
52
55
  >
53
- <p className={cn({
54
- "[&_span]:text-[#A0A0A0]": !props.value
55
- })}>{children}</p>
56
+ <p
57
+ className={cn({
58
+ "[&_span]:text-[#A0A0A0]": !props.value,
59
+ })}
60
+ >
61
+ {children}
62
+ </p>
56
63
 
57
64
  <Button
58
65
  as={"span"}
59
66
  buttonType="icon"
60
- className={cn(
61
- [
62
- "group-aria-expanded:bg-background-presentation-action-hover",
63
- "group-aria-expanded:text-white",
64
- ]
65
- )}
67
+ size={"L"}
68
+ className={cn([
69
+ "group-aria-expanded:bg-background-presentation-action-hover",
70
+ "group-aria-expanded:text-white",
71
+ ])}
66
72
  >
67
73
  <i
68
74
  className={cn(
@@ -71,14 +77,14 @@ const SelectTrigger = React.forwardRef<
71
77
  { "!text-[16px]": size === "M" },
72
78
  { "!text-[18px]": size === "L" },
73
79
  { "!text-[26px]": size === "XL" },
74
- { icon: icon }
80
+ { icon: icon },
75
81
  )}
76
82
  />
77
83
  </Button>
78
84
  </SelectPrimitive.Trigger>
79
85
  </Tooltip>
80
86
  );
81
- }
87
+ },
82
88
  );
83
89
  SelectTrigger.displayName = "SelectTrigger";
84
90
 
@@ -88,10 +94,7 @@ const SelectScrollUpButton = React.forwardRef<
88
94
  >(({ className, ...props }, ref) => (
89
95
  <SelectPrimitive.ScrollUpButton
90
96
  ref={ref}
91
- className={cn(
92
- "flex cursor-default items-center justify-center py-1 ",
93
- className
94
- )}
97
+ className={cn("flex cursor-default items-center justify-center py-1 ", className)}
95
98
  {...props}
96
99
  >
97
100
  <i
@@ -108,10 +111,7 @@ const SelectScrollDownButton = React.forwardRef<
108
111
  >(({ className, ...props }, ref) => (
109
112
  <SelectPrimitive.ScrollDownButton
110
113
  ref={ref}
111
- className={cn(
112
- "flex cursor-default items-center justify-center py-1",
113
- className
114
- )}
114
+ className={cn("flex cursor-default items-center justify-center py-1", className)}
115
115
  {...props}
116
116
  >
117
117
  <i
@@ -125,20 +125,13 @@ SelectScrollDownButton.displayName = "SelectScrollDownButton";
125
125
  const SelectContent = React.forwardRef<
126
126
  React.ElementRef<typeof SelectPrimitive.Content>,
127
127
  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> &
128
- VariantProps<typeof SelectContentStyles> & {
129
- theme?: Themes
130
- }
128
+ VariantProps<typeof SelectContentStyles> & {
129
+ theme?: Themes;
130
+ }
131
131
  >(
132
132
  (
133
- {
134
- className,
135
- children,
136
- variant = "PresentationStyle",
137
- position = "popper",
138
- theme,
139
- ...props
140
- },
141
- ref
133
+ { className, children, variant = "PresentationStyle", position = "popper", theme, ...props },
134
+ ref,
142
135
  ) => (
143
136
  <SelectPrimitive.Portal>
144
137
  <SelectPrimitive.Content
@@ -148,10 +141,13 @@ const SelectContent = React.forwardRef<
148
141
  position={position}
149
142
  {...props}
150
143
  >
151
- <SelectPrimitive.Viewport>{children}</SelectPrimitive.Viewport>
144
+ {/* Dedicated scroll viewport + boxed group, matching SearchableSelect's menu surface. */}
145
+ <SelectPrimitive.Viewport className="overflow-y-auto overflow-x-hidden rounded-[10px] scrollbar-hide">
146
+ <div className="flex flex-col gap-[1px] overflow-hidden rounded-[10px]">{children}</div>
147
+ </SelectPrimitive.Viewport>
152
148
  </SelectPrimitive.Content>
153
149
  </SelectPrimitive.Portal>
154
- )
150
+ ),
155
151
  );
156
152
  SelectContent.displayName = "SelectContent";
157
153
 
@@ -169,29 +165,23 @@ SelectLabel.displayName = "SelectLabel";
169
165
 
170
166
  const SelectItem = React.forwardRef<
171
167
  React.ElementRef<typeof SelectPrimitive.Item>,
172
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> &
173
- VariantProps<typeof SelectItemStyles>
174
- >(
175
- (
176
- { className, children, size = "M", variant = "Default", active, ...props },
177
- ref
178
- ) => (
179
- <SelectPrimitive.Item
180
- ref={ref}
181
- className={cn(
182
- SelectItemStyles({
183
- variant,
184
- active,
185
- size,
186
- }),
187
- className
188
- )}
189
- {...props}
190
- >
168
+ React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & VariantProps<typeof MenuItemStyles>
169
+ >(({ className, children, size = "M", variant = "Default", active, ...props }, ref) => (
170
+ // Same structure as DropdownMenuItem / SearchableSelect: MenuItemStyles on the element
171
+ // + a single inner <div> the styles target via [&>div], and a check on the selected row.
172
+ <SelectPrimitive.Item
173
+ ref={ref}
174
+ className={cn(MenuItemStyles({ variant, active, size }), "shrink-0", className)}
175
+ {...props}
176
+ >
177
+ <div>
191
178
  <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
192
- </SelectPrimitive.Item>
193
- )
194
- );
179
+ <SelectPrimitive.ItemIndicator className="ml-auto flex shrink-0">
180
+ <i className="ri-check-line text-[16px]" />
181
+ </SelectPrimitive.ItemIndicator>
182
+ </div>
183
+ </SelectPrimitive.Item>
184
+ ));
195
185
 
196
186
  SelectItem.displayName = "SelectItem";
197
187
 
@@ -220,146 +210,50 @@ export {
220
210
  SelectScrollDownButton,
221
211
  };
222
212
 
223
-
224
213
  // NOTE: radix select as DropDownButton
225
214
 
215
+ // Panel surface mirrors SearchableSelect's `menuContentStyles` (translucent, backdrop-blurred,
216
+ // borderless, rounded-14). `min-w`/`z-index` are kept for the Radix Select portal.
226
217
  const SelectContentStyles = cva(
227
218
  [
228
219
  "p-1",
229
- "rounded-[8px]",
220
+ "rounded-[14px]",
221
+ // Match the dropdown to the trigger's width (Radix popper exposes it as a CSS var),
222
+ // but never narrower than 240px.
223
+ "w-[var(--radix-select-trigger-width)]",
230
224
  "min-w-[240px]",
231
- "border",
225
+ "border-0",
232
226
  "outline-none",
233
- "overflow-scroll",
227
+ "overflow-hidden",
228
+ "backdrop-blur-[21px]",
229
+ "flex flex-col gap-1",
234
230
  "data-[state=open]:animate-in",
235
- "data-[state=closed]:animate-out",
236
- "data-[state=closed]:fade-out-0",
237
231
  "data-[state=open]:fade-in-0",
238
- "overflow-x-hidden",
239
- "scrollbar-hide",
240
232
  "z-[1000]",
233
+ "max-h-[368px]",
241
234
  ],
242
235
  {
243
236
  variants: {
244
237
  variant: {
245
238
  SystemStyle: [
246
- "border-border-system-global-secondary",
247
239
  "bg-background-system-body-primary",
248
240
  "shadow-[0px_0px_18px_0px_rgba(0,0,0,0.75)]",
249
241
  ],
250
242
  PresentationStyle: [
251
- "border-border-presentation-global-primary",
252
- "bg-background-presentation-form-base",
253
- "shadow-[0px_0px_10px_0px_rgba(0,0,0,0.4),0px_4px_4px_0px_rgba(0,0,0,0.2)]",
243
+ "bg-[rgba(61,64,69,0.72)]",
244
+ "shadow-[0_0_32px_2px_rgba(0,0,0,0.20),0_0_48px_2px_rgba(0,0,0,0.05)]",
254
245
  ],
255
246
  },
256
247
  defaultVariants: {
257
248
  variant: "PresentationStyle",
258
249
  },
259
250
  },
260
- }
261
- );
262
-
263
- const SelectItemStyles = cva(
264
- [
265
- "text-content-presentation-action-light-primary",
266
- "outline-none",
267
- "border",
268
- "border-transparent",
269
- "flex",
270
- "gap-[8px]",
271
- "items-center",
272
- "justify-start",
273
- "text-overflow",
274
- "overflow-hidden",
275
- "px-[12px]",
276
- "rounded-[4px]",
277
- "transition-all",
278
- "ease-in-out",
279
- "duration-300",
280
-
281
- ],
282
- {
283
- variants: {
284
- variant: {
285
- Default: [
286
- "text-content-presentation-action-light-primary",
287
- "bg-background-presentation-action-dropdown-primary",
288
- "hover:bg-background-presentation-action-hover",
289
- "hover:text-content-presentation-global-primary-inverse",
290
- "focus:bg-background-presentation-action-hover",
291
- "focus:text-content-presentation-global-primary-inverse",
292
- "disabled:text-content-presentation-state-disabled",
293
- "disabled:bg-white-00",
294
- ],
295
- Warning: [
296
- "text-content-presentation-state-information",
297
- "hover:bg-background-presentation-state-information-primary",
298
- "focus:bg-background-presentation-state-information-primary",
299
- "focus:text-content-presentation-global-primary-inverse",
300
- "hover:text-content-presentation-global-primary-inverse",
301
- ],
302
- Negative: [
303
- "text-content-presentation-state-negative",
304
- "hover:bg-background-presentation-state-negative-primary",
305
- "hover:text-content-presentation-global-primary-inverse",
306
- "focus:bg-background-presentation-state-negative-primary",
307
- "focus:text-content-presentation-global-primary-inverse",
308
- "active:text-content-presentation-state-negative",
309
- ],
310
- SystemStyle: [
311
- "bg-background-system-body-primary",
312
- "text-content-system-global-primary",
313
- "hover:bg-background-system-action-secondary-hover",
314
- "hover:text-content-system-action-primary-hover",
315
- "hover:border-border-system-action-primary-hover",
316
- "focus:bg-background-system-action-secondary-hover",
317
- "focus:text-content-system-action-primary-hover",
318
- "focus:border-border-system-action-primary-hover",
319
- "disabled:bg-background-system-body-secondary",
320
- "disabled:text-content-system-global-disabled",
321
- ],
322
- },
323
- size: {
324
- S: ["typography-body-small-regular", "h-[24px]"],
325
- M: ["typography-body-medium-regular", "h-[32px]"],
326
- },
327
-
328
- disabled: {
329
- true: [
330
- "text-content-presentation-state-disabled",
331
- "bg-white-00",
332
- ],
333
- },
334
-
335
- active: {
336
- true: [
337
- "bg-background-presentation-action-selected",
338
- "text-content-presentation-action-light-primary",
339
- ],
340
- },
341
-
342
- defaultVariants: {
343
- variant: "Default",
344
- size: "M",
345
- active: false,
346
- disabled: false,
347
- },
348
- },
349
- compoundVariants: [
350
- {
351
- active: true,
352
- variant: "Warning",
353
- className: ["text-content-presentation-state-negative"],
354
- },
355
- ],
356
- }
251
+ },
357
252
  );
358
253
 
359
254
  const PopoverTriggerStyles = cva(
360
255
  [
361
- "flex flex-row rounded-[4px] justify-between items-center outline-none",
362
- "rounded-[4px]",
256
+ "flex flex-row rounded-[8px] justify-between items-center outline-none",
363
257
  "[&_span]:text-content-presentation-action-light-primary",
364
258
  "typography-body-small-regular",
365
259
  "[&_p]:px-[10px] [&_p]:whitespace-nowrap",
@@ -375,9 +269,11 @@ const PopoverTriggerStyles = cva(
375
269
  variant: {
376
270
  PresentationStyle: [
377
271
  "bg-background-presentation-form-field-primary",
272
+ "border-border-presentation-action-primary",
378
273
  "hover:bg-background-presentation-form-field-hover",
274
+ "hover:border-border-presentation-action-hover",
379
275
  "focus:bg-background-presentation-form-field-hover",
380
- "border-none",
276
+ "focus:border-border-presentation-state-focus",
381
277
  ],
382
278
  SystemStyle: [
383
279
  "bg-black-alpha-20",
@@ -397,23 +293,21 @@ const PopoverTriggerStyles = cva(
397
293
  "hover:caret-border-presentation-state-negative",
398
294
  ],
399
295
  },
296
+ // Transparent border/background so the trigger blends into a table cell.
297
+ onTable: {
298
+ true: ["border-transparent", "bg-transparent"],
299
+ },
400
300
  size: {
401
- S: [
402
- "[&_span]:h-[22px] [&_span]:w-[22px] [&_p]:typography-body-small-medium",
403
- ],
404
- M: [
405
- "[&_span]:h-[26px] [&_span]:w-[26px] [&_p]:typography-body-medium-medium",
406
- ],
407
- L: [
408
- "[&_span]:h-[28px] [&_span]:w-[28px] [&_p]:typography-body-large-medium",
409
- ],
301
+ S: ["rounded-[6px] [&_span]:h-[22px] [&_span]:w-[22px] [&_p]:typography-body-small-medium"],
302
+ M: ["[&_span]:h-[26px] [&_span]:w-[26px] [&_p]:typography-body-medium-medium"],
303
+ L: ["[&_span]:h-[28px] [&_span]:w-[28px] [&_p]:typography-body-large-medium"],
410
304
  XL: [
411
- "h-[40px] p-[4px] rounded-[6px] [&_span]:h-[32px] [&_span]:w-[32px] [&_p]:typography-body-large-regular [&_p]:px-[4px]",
305
+ "h-[40px] p-[4px] rounded-[8px] [&_span]:h-[32px] [&_span]:w-[32px] [&_p]:typography-body-large-regular [&_p]:px-[4px]",
412
306
  ],
413
307
  },
414
308
  },
415
309
  defaultVariants: {
416
310
  size: "M",
417
311
  },
418
- }
419
- );
312
+ },
313
+ );