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,68 +1,61 @@
1
- import type React from "react"
1
+ import type React from "react";
2
2
 
3
- export type ViewType = "table" | "kanban" | "inbox" | "tree"
3
+ export type ViewType = "table" | "kanban" | "inbox" | "tree";
4
4
 
5
5
  export type TreeConfig = {
6
- childrenField?: string
7
- parentField?: string
8
- idField?: string
9
- orderField?: string
10
- nodeLabel?: string
11
- defaultExpanded?: "all" | "roots" | "none"
6
+ childrenField?: string;
7
+ parentField?: string;
8
+ idField?: string;
9
+ orderField?: string;
10
+ nodeLabel?: string;
11
+ defaultExpanded?: "all" | "roots" | "none";
12
12
  /** Right-pane mode for the selected tree node. `"details"` is accepted as a
13
13
  * deprecated alias of `"card"` for backward compatibility. */
14
- defaultRightPane?: "table" | "card" | "details"
15
- dndEnabled?: boolean
16
- }
14
+ defaultRightPane?: "table" | "card" | "details";
15
+ dndEnabled?: boolean;
16
+ };
17
17
 
18
18
  export type ViewVisibility = {
19
- table?: boolean
20
- kanban?: boolean
21
- inbox?: boolean
22
- tree?: boolean
23
- }
19
+ table?: boolean;
20
+ kanban?: boolean;
21
+ inbox?: boolean;
22
+ tree?: boolean;
23
+ };
24
24
 
25
- export type DynamicRecord = Record<string, any>
25
+ export type DynamicRecord = Record<string, unknown>;
26
26
 
27
27
  export type DynamicColumnConfig = {
28
- id: string
29
- label: string
30
- visible: boolean
31
- order: number
32
- type?: "text" | "number" | "date" | "badge" | "array" | "boolean"
33
- render?: (value: any, row: DynamicRecord) => React.ReactNode
34
- }
28
+ id: string;
29
+ label: string;
30
+ visible: boolean;
31
+ order: number;
32
+ type?: "text" | "number" | "date" | "badge" | "array" | "boolean";
33
+ render?: (value: unknown, row: DynamicRecord) => React.ReactNode;
34
+ };
35
35
 
36
36
  export type DynamicFilterConfig = {
37
- id: string
38
- label?: string
39
- enabled?: boolean
40
- order?: number
41
- options?: string[] | { label: string; value: string }[]
42
- render?: (value: string, isSelected: boolean) => React.ReactNode
43
- onChange?: (selectedValues: string[]) => void
44
- }
45
-
46
- export type NumericRangeFilter = { kind: "number"; min?: number; max?: number }
47
- export type DateRangeFilter = { kind: "date"; from?: string; to?: string }
48
- export type RangeFilter = NumericRangeFilter | DateRangeFilter
49
- export type FilterValue = string[] | RangeFilter
50
- export type FilterState = Record<string, FilterValue>
37
+ id: string;
38
+ label?: string;
39
+ enabled?: boolean;
40
+ order?: number;
41
+ options?: string[] | { label: string; value: string }[];
42
+ render?: (value: string, isSelected: boolean) => React.ReactNode;
43
+ onChange?: (selectedValues: string[]) => void;
44
+ };
45
+
46
+ export type NumericRangeFilter = { kind: "number"; min?: number; max?: number };
47
+ export type DateRangeFilter = { kind: "date"; from?: string; to?: string };
48
+ export type RangeFilter = NumericRangeFilter | DateRangeFilter;
49
+ export type FilterValue = string[] | RangeFilter;
50
+ export type FilterState = Record<string, FilterValue>;
51
51
 
52
52
  export type FieldPreset =
53
- | { label: string; min?: number; max?: number }
54
- | { label: string; from?: string; to?: string }
53
+ { label: string; min?: number; max?: number } | { label: string; from?: string; to?: string };
55
54
 
56
55
  // Palette keys for the Kanban column header pill. Kept in lockstep with
57
56
  // `COLUMN_PALETTE` in KanbanView.tsx so consumers can pick a color per status
58
57
  // via `FieldConfig.kanbanVariants`.
59
- export type KanbanColumnColor =
60
- | "gray"
61
- | "purple"
62
- | "orange"
63
- | "blue"
64
- | "green"
65
- | "red"
58
+ export type KanbanColumnColor = "gray" | "purple" | "orange" | "blue" | "green" | "red";
66
59
 
67
60
  export type BadgeVariant =
68
61
  | "green"
@@ -77,7 +70,7 @@ export type BadgeVariant =
77
70
  | "blue"
78
71
  | "navy"
79
72
  | "gray"
80
- | "highlight"
73
+ | "highlight";
81
74
 
82
75
  export type FieldType =
83
76
  | "text"
@@ -96,70 +89,66 @@ export type FieldType =
96
89
  | "avatar"
97
90
  | "link"
98
91
  | "image"
99
- | "date-format"
92
+ | "date-format";
100
93
 
101
94
  export type CurrencyOptions = {
102
- symbol?: string
103
- locale?: string
104
- decimals?: number
105
- code?: string
106
- }
95
+ symbol?: string;
96
+ locale?: string;
97
+ decimals?: number;
98
+ code?: string;
99
+ };
107
100
 
108
101
  export type FieldConfig = {
109
- path: string
110
- label?: string
111
- type?: FieldType
112
- visible?: boolean
113
- order?: number
102
+ path: string;
103
+ label?: string;
104
+ type?: FieldType;
105
+ visible?: boolean;
106
+ order?: number;
114
107
 
115
- variants?: Record<string, BadgeVariant>
116
- defaultVariant?: BadgeVariant
108
+ variants?: Record<string, BadgeVariant>;
109
+ defaultVariant?: BadgeVariant;
117
110
 
118
111
  // Per-status overrides for the Kanban board view. Keys must match
119
112
  // `variants` keys (or any value present in the data). Lets consumers set a
120
113
  // human-friendly column title and pick a column pill color without affecting
121
114
  // the badge color used elsewhere.
122
- kanbanVariants?: Record<
123
- string,
124
- { label?: string; color?: KanbanColumnColor }
125
- >
126
-
115
+ kanbanVariants?: Record<string, { label?: string; color?: KanbanColumnColor }>;
127
116
 
128
- variant?: BadgeVariant
129
- limit?: number
117
+ variant?: BadgeVariant;
118
+ limit?: number;
130
119
 
131
- currency?: string | CurrencyOptions
132
- format?: Intl.NumberFormatOptions
120
+ currency?: string | CurrencyOptions;
121
+ format?: Intl.NumberFormatOptions;
133
122
 
134
- thresholds?: [number, number]
123
+ thresholds?: [number, number];
135
124
 
136
- max?: number
125
+ max?: number;
137
126
 
138
- icon?: string
139
- iconPosition?: "before" | "after"
127
+ icon?: string;
128
+ iconPosition?: "before" | "after";
140
129
 
141
- secondaryPath?: string
130
+ secondaryPath?: string;
142
131
 
143
- linkType?: "mailto" | "tel" | "url"
132
+ linkType?: "mailto" | "tel" | "url";
144
133
 
145
- fallbackPath?: string
134
+ fallbackPath?: string;
146
135
 
147
- dateFormat?: string | Intl.DateTimeFormatOptions
136
+ dateFormat?: string | Intl.DateTimeFormatOptions;
148
137
 
149
- trueLabel?: string
150
- falseLabel?: string
151
- trueVariant?: BadgeVariant
152
- falseVariant?: BadgeVariant
138
+ trueLabel?: string;
139
+ falseLabel?: string;
140
+ trueVariant?: BadgeVariant;
141
+ falseVariant?: BadgeVariant;
153
142
 
154
- filterable?: boolean
155
- filterLabel?: string
156
- filterOptions?: string[] | { label: string; value: string }[]
143
+ filterable?: boolean;
144
+ filterLabel?: string;
145
+ filterOptions?: string[] | { label: string; value: string }[];
157
146
  /**
158
147
  * Categorical filter selection mode.
159
148
  * - "multi" (default): checkboxes, multi-select. FilterValue is the array of picked options.
160
149
  * - "single": radios, single-select. FilterValue is a 1-element array.
161
150
  */
162
- filterMode?: "single" | "multi"
151
+ filterMode?: "single" | "multi";
163
152
  /**
164
153
  * Categorical filter control style.
165
154
  * - "checkbox" (default): inline list of checkboxes (multi) or radios (single).
@@ -167,41 +156,41 @@ export type FieldConfig = {
167
156
  * when a field has many options. Implies single-select; the FilterValue is
168
157
  * a 1-element array (or empty when cleared).
169
158
  */
170
- filterVariant?: "checkbox" | "searchable-select"
171
- presets?: FieldPreset[]
172
- rangeMin?: number
173
- rangeMax?: number
174
- rangeStep?: number
175
- onFilterChange?: (value: FilterValue) => void
159
+ filterVariant?: "checkbox" | "searchable-select";
160
+ presets?: FieldPreset[];
161
+ rangeMin?: number;
162
+ rangeMax?: number;
163
+ rangeStep?: number;
164
+ onFilterChange?: (value: FilterValue) => void;
176
165
 
177
- render?: (value: any, row: DynamicRecord) => React.ReactNode
178
- }
166
+ render?: (value: unknown, row: DynamicRecord) => React.ReactNode;
167
+ };
179
168
 
180
169
  export type InboxConfig = {
181
- starredField?: string | null
182
- readField?: string | null
183
- attachmentField?: string | null
184
- priorityField?: string | null
185
- titlePath?: string
186
- previewPath?: string
187
- }
170
+ starredField?: string | null;
171
+ readField?: string | null;
172
+ attachmentField?: string | null;
173
+ priorityField?: string | null;
174
+ titlePath?: string;
175
+ previewPath?: string;
176
+ };
188
177
 
189
178
  export type ColumnConfig = {
190
- id: string
191
- label: string
192
- visible: boolean
193
- order: number
194
- }
179
+ id: string;
180
+ label: string;
181
+ visible: boolean;
182
+ order: number;
183
+ };
195
184
 
196
185
  export type ViewConfig = {
197
- defaultView: ViewType
198
- tableColumns: ColumnConfig[]
199
- kanbanGroupBy: string
200
- showFilters: boolean
201
- showPreviewPane: boolean
202
- sortBy: string
203
- sortOrder: "asc" | "desc"
204
- }
186
+ defaultView: ViewType;
187
+ tableColumns: ColumnConfig[];
188
+ kanbanGroupBy: string;
189
+ showFilters: boolean;
190
+ showPreviewPane: boolean;
191
+ sortBy: string;
192
+ sortOrder: "asc" | "desc";
193
+ };
205
194
 
206
195
  export const defaultConfig: ViewConfig = {
207
196
  defaultView: "table",
@@ -211,4 +200,4 @@ export const defaultConfig: ViewConfig = {
211
200
  showPreviewPane: true,
212
201
  sortBy: "",
213
202
  sortOrder: "desc",
214
- }
203
+ };