@nccirtu/tablefy 0.8.3 → 0.9.0

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 (251) hide show
  1. package/README.md +224 -200
  2. package/dist/columns/badge-column.d.ts +7 -0
  3. package/dist/columns/columns/badge-column.d.ts +7 -0
  4. package/dist/columns/columns/types.d.ts +7 -0
  5. package/dist/columns/forms/builders/actions-builder.d.ts +14 -0
  6. package/dist/columns/forms/builders/form-schema.d.ts +35 -0
  7. package/dist/columns/forms/builders/index.d.ts +5 -0
  8. package/dist/columns/forms/builders/section-builder.d.ts +16 -0
  9. package/dist/columns/forms/builders/tab-builder.d.ts +16 -0
  10. package/dist/columns/forms/builders/wizard-builder.d.ts +17 -0
  11. package/dist/columns/forms/components/field-renderer.d.ts +12 -0
  12. package/dist/columns/forms/components/form-actions.d.ts +9 -0
  13. package/dist/columns/forms/components/form-renderer.d.ts +14 -0
  14. package/dist/columns/forms/components/grid-layout.d.ts +7 -0
  15. package/dist/columns/forms/components/index.d.ts +9 -0
  16. package/dist/columns/forms/components/section-renderer.d.ts +14 -0
  17. package/dist/columns/forms/components/tab-renderer.d.ts +15 -0
  18. package/dist/columns/forms/components/wizard-renderer.d.ts +17 -0
  19. package/dist/columns/forms/fields/base-field.d.ts +24 -0
  20. package/dist/columns/forms/fields/checkbox-group.d.ts +12 -0
  21. package/dist/columns/forms/fields/checkbox.d.ts +9 -0
  22. package/dist/columns/forms/fields/date-picker.d.ts +15 -0
  23. package/dist/columns/forms/fields/file-upload.d.ts +17 -0
  24. package/dist/columns/forms/fields/hidden.d.ts +9 -0
  25. package/dist/columns/forms/fields/index.d.ts +12 -0
  26. package/dist/columns/forms/fields/radio-group.d.ts +14 -0
  27. package/dist/columns/forms/fields/repeater.d.ts +21 -0
  28. package/dist/columns/forms/fields/select.d.ts +16 -0
  29. package/dist/columns/forms/fields/text-input.d.ts +20 -0
  30. package/dist/columns/forms/fields/textarea.d.ts +14 -0
  31. package/dist/columns/forms/fields/toggle.d.ts +11 -0
  32. package/dist/columns/forms/index.d.ts +26 -0
  33. package/dist/columns/forms/types/actions.d.ts +11 -0
  34. package/dist/columns/forms/types/field.d.ts +98 -0
  35. package/dist/columns/forms/types/form.d.ts +37 -0
  36. package/dist/columns/forms/types/index.d.ts +4 -0
  37. package/dist/columns/forms/types/layout.d.ts +31 -0
  38. package/dist/columns/index.d.ts +2 -0
  39. package/dist/columns/index.esm.js +35 -12
  40. package/dist/columns/index.esm.js.map +1 -1
  41. package/dist/columns/index.js +35 -12
  42. package/dist/columns/index.js.map +1 -1
  43. package/dist/columns/inertia/index.d.ts +4 -0
  44. package/dist/columns/inertia/precognition.d.ts +6 -0
  45. package/dist/columns/inertia/types.d.ts +63 -0
  46. package/dist/columns/inertia/use-inertia-form.d.ts +2 -0
  47. package/dist/columns/inertia/use-server-table.d.ts +2 -0
  48. package/dist/columns/types.d.ts +7 -0
  49. package/dist/forms/builders/actions-builder.d.ts +14 -0
  50. package/dist/forms/builders/empty-state.d.ts +46 -0
  51. package/dist/forms/builders/form-schema.d.ts +35 -0
  52. package/dist/forms/builders/index.d.ts +2 -0
  53. package/dist/forms/builders/section-builder.d.ts +16 -0
  54. package/dist/forms/builders/tab-builder.d.ts +16 -0
  55. package/dist/forms/builders/table-schema.d.ts +45 -0
  56. package/dist/forms/builders/wizard-builder.d.ts +17 -0
  57. package/dist/forms/columns/actions-column.d.ts +26 -0
  58. package/dist/forms/columns/avatar-group-column.d.ts +38 -0
  59. package/dist/forms/columns/badge-column.d.ts +29 -0
  60. package/dist/forms/columns/base-column.d.ts +21 -0
  61. package/dist/forms/columns/button-column.d.ts +14 -0
  62. package/dist/forms/columns/checkbox-column.d.ts +5 -0
  63. package/dist/forms/columns/date-column.d.ts +24 -0
  64. package/dist/forms/columns/dropdown-column.d.ts +17 -0
  65. package/dist/forms/columns/enum-column.d.ts +52 -0
  66. package/dist/forms/columns/icon-column.d.ts +58 -0
  67. package/dist/forms/columns/image-column.d.ts +21 -0
  68. package/dist/forms/columns/index.d.ts +18 -0
  69. package/dist/forms/columns/input-column.d.ts +27 -0
  70. package/dist/forms/columns/link-column.d.ts +27 -0
  71. package/dist/forms/columns/number-column.d.ts +23 -0
  72. package/dist/forms/columns/progress-column.d.ts +30 -0
  73. package/dist/forms/columns/select-column.d.ts +24 -0
  74. package/dist/forms/columns/text-column.d.ts +14 -0
  75. package/dist/forms/columns/types.d.ts +46 -0
  76. package/dist/forms/components/field-renderer.d.ts +12 -0
  77. package/dist/forms/components/form-actions.d.ts +9 -0
  78. package/dist/forms/components/form-renderer.d.ts +14 -0
  79. package/dist/forms/components/grid-layout.d.ts +7 -0
  80. package/dist/forms/components/index.d.ts +9 -0
  81. package/dist/forms/components/section-renderer.d.ts +14 -0
  82. package/dist/forms/components/tab-renderer.d.ts +15 -0
  83. package/dist/forms/components/wizard-renderer.d.ts +17 -0
  84. package/dist/forms/confirm/ConfirmProvider.d.ts +6 -0
  85. package/dist/forms/confirm/confirm.d.ts +3 -0
  86. package/dist/forms/confirm/index.d.ts +3 -0
  87. package/dist/forms/confirm/types.d.ts +10 -0
  88. package/dist/forms/fields/base-field.d.ts +24 -0
  89. package/dist/forms/fields/checkbox-group.d.ts +12 -0
  90. package/dist/forms/fields/checkbox.d.ts +9 -0
  91. package/dist/forms/fields/date-picker.d.ts +15 -0
  92. package/dist/forms/fields/file-upload.d.ts +17 -0
  93. package/dist/forms/fields/hidden.d.ts +9 -0
  94. package/dist/forms/fields/index.d.ts +12 -0
  95. package/dist/forms/fields/radio-group.d.ts +14 -0
  96. package/dist/forms/fields/repeater.d.ts +21 -0
  97. package/dist/forms/fields/select.d.ts +16 -0
  98. package/dist/forms/fields/text-input.d.ts +20 -0
  99. package/dist/forms/fields/textarea.d.ts +14 -0
  100. package/dist/forms/fields/toggle.d.ts +11 -0
  101. package/dist/forms/forms/builders/actions-builder.d.ts +14 -0
  102. package/dist/forms/forms/builders/form-schema.d.ts +35 -0
  103. package/dist/forms/forms/builders/index.d.ts +5 -0
  104. package/dist/forms/forms/builders/section-builder.d.ts +16 -0
  105. package/dist/forms/forms/builders/tab-builder.d.ts +16 -0
  106. package/dist/forms/forms/builders/wizard-builder.d.ts +17 -0
  107. package/dist/forms/forms/components/field-renderer.d.ts +12 -0
  108. package/dist/forms/forms/components/form-actions.d.ts +9 -0
  109. package/dist/forms/forms/components/form-renderer.d.ts +14 -0
  110. package/dist/forms/forms/components/grid-layout.d.ts +7 -0
  111. package/dist/forms/forms/components/index.d.ts +9 -0
  112. package/dist/forms/forms/components/section-renderer.d.ts +14 -0
  113. package/dist/forms/forms/components/tab-renderer.d.ts +15 -0
  114. package/dist/forms/forms/components/wizard-renderer.d.ts +17 -0
  115. package/dist/forms/forms/fields/base-field.d.ts +24 -0
  116. package/dist/forms/forms/fields/checkbox-group.d.ts +12 -0
  117. package/dist/forms/forms/fields/checkbox.d.ts +9 -0
  118. package/dist/forms/forms/fields/date-picker.d.ts +15 -0
  119. package/dist/forms/forms/fields/file-upload.d.ts +17 -0
  120. package/dist/forms/forms/fields/hidden.d.ts +9 -0
  121. package/dist/forms/forms/fields/index.d.ts +12 -0
  122. package/dist/forms/forms/fields/radio-group.d.ts +14 -0
  123. package/dist/forms/forms/fields/repeater.d.ts +21 -0
  124. package/dist/forms/forms/fields/select.d.ts +16 -0
  125. package/dist/forms/forms/fields/text-input.d.ts +20 -0
  126. package/dist/forms/forms/fields/textarea.d.ts +14 -0
  127. package/dist/forms/forms/fields/toggle.d.ts +11 -0
  128. package/dist/forms/forms/index.d.ts +26 -0
  129. package/dist/forms/forms/types/actions.d.ts +11 -0
  130. package/dist/forms/forms/types/field.d.ts +98 -0
  131. package/dist/forms/forms/types/form.d.ts +37 -0
  132. package/dist/forms/forms/types/index.d.ts +4 -0
  133. package/dist/forms/forms/types/layout.d.ts +31 -0
  134. package/dist/forms/index.d.ts +25 -0
  135. package/dist/forms/index.esm.js +1052 -0
  136. package/dist/forms/index.esm.js.map +1 -0
  137. package/dist/forms/index.js +1077 -0
  138. package/dist/forms/index.js.map +1 -0
  139. package/dist/forms/inertia/index.d.ts +4 -0
  140. package/dist/forms/inertia/precognition.d.ts +6 -0
  141. package/dist/forms/inertia/types.d.ts +63 -0
  142. package/dist/forms/inertia/use-inertia-form.d.ts +2 -0
  143. package/dist/forms/inertia/use-server-table.d.ts +2 -0
  144. package/dist/forms/tablefy/avatar-list.d.ts +15 -0
  145. package/dist/forms/tablefy/data-table-empty.d.ts +8 -0
  146. package/dist/forms/tablefy/data-table-header.d.ts +17 -0
  147. package/dist/forms/tablefy/data-table-pagination.d.ts +9 -0
  148. package/dist/forms/tablefy/data-table-schema.d.ts +1 -0
  149. package/dist/forms/tablefy/data-table.d.ts +13 -0
  150. package/dist/forms/tablefy/index.d.ts +6 -0
  151. package/dist/forms/types/actions.d.ts +21 -0
  152. package/dist/forms/types/empty-state.d.ts +18 -0
  153. package/dist/forms/types/field.d.ts +98 -0
  154. package/dist/forms/types/filters.d.ts +25 -0
  155. package/dist/forms/types/form.d.ts +37 -0
  156. package/dist/forms/types/index.d.ts +4 -0
  157. package/dist/forms/types/layout.d.ts +31 -0
  158. package/dist/forms/types/table.d.ts +42 -0
  159. package/dist/forms/utils.d.ts +1 -0
  160. package/dist/index.d.ts +2 -0
  161. package/dist/index.esm.js +1085 -21
  162. package/dist/index.esm.js.map +1 -1
  163. package/dist/index.js +1093 -12
  164. package/dist/index.js.map +1 -1
  165. package/dist/inertia/builders/empty-state.d.ts +46 -0
  166. package/dist/inertia/builders/index.d.ts +2 -0
  167. package/dist/inertia/builders/table-schema.d.ts +45 -0
  168. package/dist/inertia/columns/actions-column.d.ts +26 -0
  169. package/dist/inertia/columns/avatar-group-column.d.ts +38 -0
  170. package/dist/inertia/columns/badge-column.d.ts +29 -0
  171. package/dist/inertia/columns/base-column.d.ts +21 -0
  172. package/dist/inertia/columns/button-column.d.ts +14 -0
  173. package/dist/inertia/columns/checkbox-column.d.ts +5 -0
  174. package/dist/inertia/columns/date-column.d.ts +24 -0
  175. package/dist/inertia/columns/dropdown-column.d.ts +17 -0
  176. package/dist/inertia/columns/enum-column.d.ts +52 -0
  177. package/dist/inertia/columns/icon-column.d.ts +58 -0
  178. package/dist/inertia/columns/image-column.d.ts +21 -0
  179. package/dist/inertia/columns/index.d.ts +18 -0
  180. package/dist/inertia/columns/input-column.d.ts +27 -0
  181. package/dist/inertia/columns/link-column.d.ts +27 -0
  182. package/dist/inertia/columns/number-column.d.ts +23 -0
  183. package/dist/inertia/columns/progress-column.d.ts +30 -0
  184. package/dist/inertia/columns/select-column.d.ts +24 -0
  185. package/dist/inertia/columns/text-column.d.ts +14 -0
  186. package/dist/inertia/columns/types.d.ts +46 -0
  187. package/dist/inertia/confirm/ConfirmProvider.d.ts +6 -0
  188. package/dist/inertia/confirm/confirm.d.ts +3 -0
  189. package/dist/inertia/confirm/index.d.ts +3 -0
  190. package/dist/inertia/confirm/types.d.ts +10 -0
  191. package/dist/inertia/forms/builders/actions-builder.d.ts +14 -0
  192. package/dist/inertia/forms/builders/form-schema.d.ts +35 -0
  193. package/dist/inertia/forms/builders/index.d.ts +5 -0
  194. package/dist/inertia/forms/builders/section-builder.d.ts +16 -0
  195. package/dist/inertia/forms/builders/tab-builder.d.ts +16 -0
  196. package/dist/inertia/forms/builders/wizard-builder.d.ts +17 -0
  197. package/dist/inertia/forms/components/field-renderer.d.ts +12 -0
  198. package/dist/inertia/forms/components/form-actions.d.ts +9 -0
  199. package/dist/inertia/forms/components/form-renderer.d.ts +14 -0
  200. package/dist/inertia/forms/components/grid-layout.d.ts +7 -0
  201. package/dist/inertia/forms/components/index.d.ts +9 -0
  202. package/dist/inertia/forms/components/section-renderer.d.ts +14 -0
  203. package/dist/inertia/forms/components/tab-renderer.d.ts +15 -0
  204. package/dist/inertia/forms/components/wizard-renderer.d.ts +17 -0
  205. package/dist/inertia/forms/fields/base-field.d.ts +24 -0
  206. package/dist/inertia/forms/fields/checkbox-group.d.ts +12 -0
  207. package/dist/inertia/forms/fields/checkbox.d.ts +9 -0
  208. package/dist/inertia/forms/fields/date-picker.d.ts +15 -0
  209. package/dist/inertia/forms/fields/file-upload.d.ts +17 -0
  210. package/dist/inertia/forms/fields/hidden.d.ts +9 -0
  211. package/dist/inertia/forms/fields/index.d.ts +12 -0
  212. package/dist/inertia/forms/fields/radio-group.d.ts +14 -0
  213. package/dist/inertia/forms/fields/repeater.d.ts +21 -0
  214. package/dist/inertia/forms/fields/select.d.ts +16 -0
  215. package/dist/inertia/forms/fields/text-input.d.ts +20 -0
  216. package/dist/inertia/forms/fields/textarea.d.ts +14 -0
  217. package/dist/inertia/forms/fields/toggle.d.ts +11 -0
  218. package/dist/inertia/forms/index.d.ts +26 -0
  219. package/dist/inertia/forms/types/actions.d.ts +11 -0
  220. package/dist/inertia/forms/types/field.d.ts +98 -0
  221. package/dist/inertia/forms/types/form.d.ts +37 -0
  222. package/dist/inertia/forms/types/index.d.ts +4 -0
  223. package/dist/inertia/forms/types/layout.d.ts +31 -0
  224. package/dist/inertia/index.d.ts +25 -0
  225. package/dist/inertia/index.esm.js +149 -0
  226. package/dist/inertia/index.esm.js.map +1 -0
  227. package/dist/inertia/index.js +153 -0
  228. package/dist/inertia/index.js.map +1 -0
  229. package/dist/inertia/inertia/index.d.ts +4 -0
  230. package/dist/inertia/inertia/precognition.d.ts +6 -0
  231. package/dist/inertia/inertia/types.d.ts +63 -0
  232. package/dist/inertia/inertia/use-inertia-form.d.ts +2 -0
  233. package/dist/inertia/inertia/use-server-table.d.ts +2 -0
  234. package/dist/inertia/precognition.d.ts +6 -0
  235. package/dist/inertia/tablefy/avatar-list.d.ts +15 -0
  236. package/dist/inertia/tablefy/data-table-empty.d.ts +8 -0
  237. package/dist/inertia/tablefy/data-table-header.d.ts +17 -0
  238. package/dist/inertia/tablefy/data-table-pagination.d.ts +9 -0
  239. package/dist/inertia/tablefy/data-table-schema.d.ts +1 -0
  240. package/dist/inertia/tablefy/data-table.d.ts +13 -0
  241. package/dist/inertia/tablefy/index.d.ts +6 -0
  242. package/dist/inertia/types/actions.d.ts +21 -0
  243. package/dist/inertia/types/empty-state.d.ts +18 -0
  244. package/dist/inertia/types/filters.d.ts +25 -0
  245. package/dist/inertia/types/index.d.ts +4 -0
  246. package/dist/inertia/types/table.d.ts +42 -0
  247. package/dist/inertia/types.d.ts +63 -0
  248. package/dist/inertia/use-inertia-form.d.ts +2 -0
  249. package/dist/inertia/use-server-table.d.ts +2 -0
  250. package/dist/inertia/utils.d.ts +1 -0
  251. package/package.json +39 -13
@@ -0,0 +1,27 @@
1
+ import { ColumnDef } from "@tanstack/react-table";
2
+ import { BaseColumn } from "./base-column";
3
+ import { BaseColumnConfig } from "./types";
4
+ interface InputColumnConfig<TData> extends BaseColumnConfig<TData> {
5
+ placeholder?: string;
6
+ type?: "text" | "email" | "number" | "password" | "url";
7
+ disabled?: boolean | ((row: TData) => boolean);
8
+ onSave?: (row: TData, newValue: string) => void;
9
+ onChange?: (row: TData, newValue: string) => void;
10
+ debounce?: number;
11
+ }
12
+ export declare class InputColumn<TData> extends BaseColumn<TData, InputColumnConfig<TData>> {
13
+ constructor(accessor: keyof TData | string);
14
+ static make<TData>(accessor: keyof TData | string): InputColumn<TData>;
15
+ placeholder(placeholder: string): this;
16
+ type(type: "text" | "email" | "number" | "password" | "url"): this;
17
+ disabled(disabled: boolean | ((row: TData) => boolean)): this;
18
+ onSave(handler: (row: TData, newValue: string) => void): this;
19
+ onChange(handler: (row: TData, newValue: string) => void): this;
20
+ debounce(ms: number): this;
21
+ email(): this;
22
+ number(): this;
23
+ password(): this;
24
+ url(): this;
25
+ build(): ColumnDef<TData, unknown>;
26
+ }
27
+ export { InputColumn as inputColumn };
@@ -0,0 +1,27 @@
1
+ import { ColumnDef } from "@tanstack/react-table";
2
+ import { ReactNode } from "react";
3
+ import { BaseColumn } from "./base-column";
4
+ import { BaseColumnConfig } from "./types";
5
+ interface LinkColumnConfig<TData> extends BaseColumnConfig<TData> {
6
+ href?: string | ((row: TData) => string);
7
+ external?: boolean;
8
+ icon?: ReactNode;
9
+ showExternalIcon?: boolean;
10
+ underline?: "always" | "hover" | "never";
11
+ openInNewTab?: boolean;
12
+ onClick?: (row: TData) => void;
13
+ }
14
+ export declare class LinkColumn<TData> extends BaseColumn<TData, LinkColumnConfig<TData>> {
15
+ constructor(accessor: keyof TData | string);
16
+ static make<TData>(accessor: keyof TData | string): LinkColumn<TData>;
17
+ href(href: string | ((row: TData) => string)): this;
18
+ urlFromField(field: keyof TData): this;
19
+ external(external?: boolean): this;
20
+ icon(icon: ReactNode): this;
21
+ showExternalIcon(show?: boolean): this;
22
+ underline(style: "always" | "hover" | "never"): this;
23
+ openInNewTab(open?: boolean): this;
24
+ onClick(handler: (row: TData) => void): this;
25
+ build(): ColumnDef<TData, unknown>;
26
+ }
27
+ export {};
@@ -0,0 +1,23 @@
1
+ import { ColumnDef } from "@tanstack/react-table";
2
+ import { BaseColumn } from "./base-column";
3
+ import { BaseColumnConfig } from "./types";
4
+ interface NumberColumnConfig<TData> extends BaseColumnConfig<TData> {
5
+ decimals?: number;
6
+ locale?: string;
7
+ currency?: string;
8
+ percent?: boolean;
9
+ prefix?: string;
10
+ suffix?: string;
11
+ }
12
+ export declare class NumberColumn<TData> extends BaseColumn<TData, NumberColumnConfig<TData>> {
13
+ constructor(accessor: keyof TData | string);
14
+ static make<TData>(accessor: keyof TData | string): NumberColumn<TData>;
15
+ decimals(decimals: number): this;
16
+ locale(locale: string): this;
17
+ money(currency?: string): this;
18
+ percent(): this;
19
+ prefix(prefix: string): this;
20
+ suffix(suffix: string): this;
21
+ build(): ColumnDef<TData, unknown>;
22
+ }
23
+ export {};
@@ -0,0 +1,30 @@
1
+ import { ColumnDef } from "@tanstack/react-table";
2
+ import { BaseColumn } from "./base-column";
3
+ import { BaseColumnConfig } from "./types";
4
+ interface ProgressColumnConfig<TData> extends BaseColumnConfig<TData> {
5
+ max?: number;
6
+ showValue?: boolean;
7
+ showPercentage?: boolean;
8
+ size?: "sm" | "md" | "lg";
9
+ color?: "default" | "success" | "warning" | "danger" | ((value: number, max: number) => string);
10
+ thresholds?: {
11
+ warning?: number;
12
+ danger?: number;
13
+ };
14
+ format?: (value: number, max: number) => string;
15
+ }
16
+ export declare class ProgressColumn<TData> extends BaseColumn<TData, ProgressColumnConfig<TData>> {
17
+ constructor(accessor: keyof TData | string);
18
+ static make<TData>(accessor: keyof TData | string): ProgressColumn<TData>;
19
+ max(max: number): this;
20
+ showValue(show?: boolean): this;
21
+ showPercentage(show?: boolean): this;
22
+ hideLabel(): this;
23
+ size(size: "sm" | "md" | "lg"): this;
24
+ color(color: "default" | "success" | "warning" | "danger"): this;
25
+ colorByThreshold(warning?: number, danger?: number): this;
26
+ colorByThresholdInverse(warning?: number, danger?: number): this;
27
+ format(fn: (value: number, max: number) => string): this;
28
+ build(): ColumnDef<TData, unknown>;
29
+ }
30
+ export {};
@@ -0,0 +1,24 @@
1
+ import { ColumnDef } from "@tanstack/react-table";
2
+ import { BaseColumn } from "./base-column";
3
+ import { BaseColumnConfig } from "./types";
4
+ export interface SelectOption {
5
+ label: string;
6
+ value: string;
7
+ disabled?: boolean;
8
+ }
9
+ interface SelectColumnConfig<TData> extends BaseColumnConfig<TData> {
10
+ options?: SelectOption[];
11
+ placeholder?: string;
12
+ disabled?: boolean | ((row: TData) => boolean);
13
+ onValueChange?: (row: TData, newValue: string) => void;
14
+ }
15
+ export declare class SelectColumn<TData> extends BaseColumn<TData, SelectColumnConfig<TData>> {
16
+ constructor(accessor: keyof TData | string);
17
+ static make<TData>(accessor: keyof TData | string): SelectColumn<TData>;
18
+ options(options: SelectOption[]): this;
19
+ placeholder(placeholder: string): this;
20
+ disabled(disabled: boolean | ((row: TData) => boolean)): this;
21
+ onValueChange(handler: (row: TData, newValue: string) => void): this;
22
+ build(): ColumnDef<TData, unknown>;
23
+ }
24
+ export { SelectColumn as selectColumn };
@@ -0,0 +1,14 @@
1
+ import { ColumnDef, Row } from "@tanstack/react-table";
2
+ import { BaseColumn } from "./base-column";
3
+ import { FormattedColumnConfig } from "./types";
4
+ export declare class TextColumn<TData> extends BaseColumn<TData, FormattedColumnConfig<TData>> {
5
+ static make<TData>(accessor: keyof TData | string): TextColumn<TData>;
6
+ formatter(fn: (value: unknown, row: Row<TData>) => React.ReactNode): this;
7
+ prefix(prefix: string): this;
8
+ suffix(suffix: string): this;
9
+ placeholder(placeholder: string): this;
10
+ uppercase(): this;
11
+ lowercase(): this;
12
+ limit(chars: number): this;
13
+ build(): ColumnDef<TData, unknown>;
14
+ }
@@ -0,0 +1,46 @@
1
+ import { Row } from "@tanstack/react-table";
2
+ import { ReactNode } from "react";
3
+ export interface BaseColumnConfig<TData> {
4
+ accessor: keyof TData | string;
5
+ label?: string;
6
+ sortable?: boolean;
7
+ searchable?: boolean;
8
+ hidden?: boolean;
9
+ visibleByDefault?: boolean;
10
+ visibilityLabel?: string;
11
+ align?: "left" | "center" | "right";
12
+ width?: string | number;
13
+ className?: string;
14
+ headerClassName?: string;
15
+ cellClassName?: string;
16
+ }
17
+ export interface FormattedColumnConfig<TData> extends BaseColumnConfig<TData> {
18
+ formatter?: (value: unknown, row: Row<TData>) => ReactNode;
19
+ prefix?: string;
20
+ suffix?: string;
21
+ placeholder?: string;
22
+ }
23
+ export interface BadgeColumnConfig<TData> extends BaseColumnConfig<TData> {
24
+ variants?: Record<string, {
25
+ label?: string;
26
+ variant?: "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "info" | "muted";
27
+ className?: string;
28
+ icon?: ReactNode;
29
+ }>;
30
+ variantFn?: (value: unknown, row: TData) => {
31
+ label?: string;
32
+ variant?: "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "info" | "muted";
33
+ className?: string;
34
+ icon?: ReactNode;
35
+ };
36
+ classNameFn?: (value: unknown, row: TData) => string;
37
+ }
38
+ export interface ActionConfig<TData> {
39
+ label: string;
40
+ icon?: ReactNode;
41
+ onClick?: (row: TData) => void;
42
+ href?: (row: TData) => string;
43
+ variant?: "default" | "destructive" | "ghost";
44
+ hidden?: (row: TData) => boolean;
45
+ disabled?: (row: TData) => boolean;
46
+ }
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from "react";
2
+ import { BuiltField } from "../types/form";
3
+ export interface FieldRendererProps<TData extends Record<string, any>> {
4
+ field: BuiltField<TData>;
5
+ value: any;
6
+ error?: string;
7
+ disabled?: boolean;
8
+ data: TData;
9
+ onChange: (value: any) => void;
10
+ onBlur?: () => void;
11
+ }
12
+ export declare function FieldRenderer<TData extends Record<string, any>>({ field, value, error, disabled, data, onChange, onBlur, }: FieldRendererProps<TData>): ReactNode;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from "react";
2
+ import { FormActionConfig } from "../types/actions";
3
+ export interface FormActionsProps<TData extends Record<string, any>> {
4
+ actions: FormActionConfig<TData>[];
5
+ position?: "start" | "end" | "between" | "center";
6
+ data: TData;
7
+ processing?: boolean;
8
+ }
9
+ export declare function FormActions<TData extends Record<string, any>>({ actions, position, data, processing, }: FormActionsProps<TData>): ReactNode;
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from "react";
2
+ import { FormBuildResult } from "../types/form";
3
+ export interface FormRendererProps<TData extends Record<string, any>> {
4
+ schema: FormBuildResult<TData>;
5
+ data: TData;
6
+ errors: Partial<Record<keyof TData, string>>;
7
+ onChange: (field: keyof TData, value: any) => void;
8
+ onSubmit: () => void;
9
+ processing?: boolean;
10
+ className?: string;
11
+ disabled?: boolean;
12
+ onBlur?: (field: string) => void;
13
+ }
14
+ export declare function FormRenderer<TData extends Record<string, any>>({ schema, data, errors, onChange, onSubmit, processing, className, disabled, onBlur, }: FormRendererProps<TData>): ReactNode;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from "react";
2
+ export interface GridLayoutProps {
3
+ columns?: number;
4
+ children: ReactNode;
5
+ className?: string;
6
+ }
7
+ export declare function GridLayout({ columns, children, className, }: GridLayoutProps): ReactNode;
@@ -0,0 +1,9 @@
1
+ export { FormRenderer } from "./form-renderer";
2
+ export type { FormRendererProps } from "./form-renderer";
3
+ export { FieldRenderer } from "./field-renderer";
4
+ export type { FieldRendererProps } from "./field-renderer";
5
+ export { GridLayout } from "./grid-layout";
6
+ export { FormActions } from "./form-actions";
7
+ export { SectionRenderer } from "./section-renderer";
8
+ export { TabRenderer } from "./tab-renderer";
9
+ export { WizardRenderer } from "./wizard-renderer";
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from "react";
2
+ import { SectionConfig } from "../types/layout";
3
+ import { BuiltField } from "../types/form";
4
+ export interface SectionRendererProps<TData extends Record<string, any>> {
5
+ section: SectionConfig<TData>;
6
+ fields: BuiltField<TData>[];
7
+ data: TData;
8
+ errors: Partial<Record<keyof TData, string>>;
9
+ onChange: (field: keyof TData, value: any) => void;
10
+ onBlur?: (field: string) => void;
11
+ isFieldVisible: (field: BuiltField<TData>) => boolean;
12
+ isFieldDisabled: (field: BuiltField<TData>) => boolean;
13
+ }
14
+ export declare function SectionRenderer<TData extends Record<string, any>>({ section, fields, data, errors, onChange, onBlur, isFieldVisible, isFieldDisabled, }: SectionRendererProps<TData>): ReactNode;
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from "react";
2
+ import { TabConfig } from "../types/layout";
3
+ import { BuiltField } from "../types/form";
4
+ export interface TabRendererProps<TData extends Record<string, any>> {
5
+ tabs: TabConfig<TData>[];
6
+ fields: BuiltField<TData>[];
7
+ data: TData;
8
+ errors: Partial<Record<keyof TData, string>>;
9
+ onChange: (field: keyof TData, value: any) => void;
10
+ onBlur?: (field: string) => void;
11
+ isFieldVisible: (field: BuiltField<TData>) => boolean;
12
+ isFieldDisabled: (field: BuiltField<TData>) => boolean;
13
+ columns?: number;
14
+ }
15
+ export declare function TabRenderer<TData extends Record<string, any>>({ tabs, fields, data, errors, onChange, onBlur, isFieldVisible, isFieldDisabled, columns, }: TabRendererProps<TData>): ReactNode;
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from "react";
2
+ import { WizardStepConfig } from "../types/layout";
3
+ import { BuiltField } from "../types/form";
4
+ export interface WizardRendererProps<TData extends Record<string, any>> {
5
+ steps: WizardStepConfig<TData>[];
6
+ fields: BuiltField<TData>[];
7
+ data: TData;
8
+ errors: Partial<Record<keyof TData, string>>;
9
+ onChange: (field: keyof TData, value: any) => void;
10
+ onBlur?: (field: string) => void;
11
+ isFieldVisible: (field: BuiltField<TData>) => boolean;
12
+ isFieldDisabled: (field: BuiltField<TData>) => boolean;
13
+ columns?: number;
14
+ onSubmit: () => void;
15
+ processing?: boolean;
16
+ }
17
+ export declare function WizardRenderer<TData extends Record<string, any>>({ steps, fields, data, errors, onChange, onBlur, isFieldVisible, isFieldDisabled, columns, onSubmit, processing, }: WizardRendererProps<TData>): ReactNode;
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from "react";
2
+ interface ConfirmProviderProps {
3
+ children: ReactNode;
4
+ }
5
+ export declare function ConfirmProvider({ children }: ConfirmProviderProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,3 @@
1
+ import { ConfirmOptions, ConfirmHandler } from "./types";
2
+ export declare function registerConfirm(handler: ConfirmHandler | null): void;
3
+ export declare function confirm(options: ConfirmOptions): Promise<boolean>;
@@ -0,0 +1,3 @@
1
+ export { ConfirmProvider } from "./ConfirmProvider";
2
+ export { confirm } from "./confirm";
3
+ export type { ConfirmOptions } from "./types";
@@ -0,0 +1,10 @@
1
+ export interface ConfirmOptions {
2
+ title?: string;
3
+ description?: string;
4
+ confirmLabel?: string;
5
+ cancelLabel?: string;
6
+ variant?: "destructive" | "default";
7
+ icon?: React.ReactNode;
8
+ image?: string;
9
+ }
10
+ export type ConfirmHandler = (options: ConfirmOptions) => Promise<boolean>;
@@ -0,0 +1,24 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseFieldConfig, ValidationRule } from "../types/field";
3
+ import { FieldType, FieldRenderProps, BuiltField } from "../types/form";
4
+ export declare abstract class BaseField<TData extends Record<string, any>, TConfig extends BaseFieldConfig<TData>> {
5
+ protected config: TConfig;
6
+ constructor(name: string);
7
+ label(label: string): this;
8
+ placeholder(placeholder: string): this;
9
+ helperText(text: string): this;
10
+ required(required?: boolean): this;
11
+ disabled(disabled?: boolean | ((data: TData) => boolean)): this;
12
+ readOnly(readOnly?: boolean): this;
13
+ hidden(hidden?: boolean | ((data: TData) => boolean)): this;
14
+ default(value: any): this;
15
+ columnSpan(span: number): this;
16
+ className(className: string): this;
17
+ rules(rules: ValidationRule[]): this;
18
+ zodSchema(schema: any): this;
19
+ dependsOn<K extends string & keyof TData>(field: K, condition: (value: TData[K], data: TData) => boolean, effect?: "show" | "hide" | "enable" | "disable" | "setValue", effectValue?: any): this;
20
+ reactive(reactive?: boolean): this;
21
+ abstract readonly fieldType: FieldType;
22
+ abstract renderField(props: FieldRenderProps<TData>): ReactNode;
23
+ build(): BuiltField<TData>;
24
+ }
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { CheckboxGroupConfig, SelectOption } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class CheckboxGroup<TData extends Record<string, any>> extends BaseField<TData, CheckboxGroupConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ constructor(name: string);
8
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): CheckboxGroup<TData>;
9
+ options(options: SelectOption[]): this;
10
+ columns(columns: number): this;
11
+ renderField({ value, onChange, error, disabled, }: FieldRenderProps<TData>): ReactNode;
12
+ }
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { CheckboxConfig } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class Checkbox<TData extends Record<string, any>> extends BaseField<TData, CheckboxConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): Checkbox<TData>;
8
+ renderField({ value, onChange, error, disabled, }: FieldRenderProps<TData>): ReactNode;
9
+ }
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { DatePickerConfig } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class DatePicker<TData extends Record<string, any>> extends BaseField<TData, DatePickerConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ constructor(name: string);
8
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): DatePicker<TData>;
9
+ minDate(date: Date | ((data: TData) => Date)): this;
10
+ maxDate(date: Date | ((data: TData) => Date)): this;
11
+ format(format: string): this;
12
+ includeTime(includeTime?: boolean): this;
13
+ locale(locale: string): this;
14
+ renderField({ value, onChange, error, disabled, data, }: FieldRenderProps<TData>): ReactNode;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { FileUploadConfig } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class FileUpload<TData extends Record<string, any>> extends BaseField<TData, FileUploadConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ constructor(name: string);
8
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): FileUpload<TData>;
9
+ accept(accept: string): this;
10
+ maxSize(bytes: number): this;
11
+ multiple(multiple?: boolean): this;
12
+ maxFiles(max: number): this;
13
+ preview(preview?: boolean): this;
14
+ image(): this;
15
+ pdf(): this;
16
+ renderField({ value, onChange, error, disabled, }: FieldRenderProps<TData>): ReactNode;
17
+ }
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { HiddenConfig } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class Hidden<TData extends Record<string, any>> extends BaseField<TData, HiddenConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): Hidden<TData>;
8
+ renderField({ value }: FieldRenderProps<TData>): ReactNode;
9
+ }
@@ -0,0 +1,12 @@
1
+ export { BaseField } from "./base-field";
2
+ export { TextInput } from "./text-input";
3
+ export { Textarea } from "./textarea";
4
+ export { Select } from "./select";
5
+ export { Checkbox } from "./checkbox";
6
+ export { Toggle } from "./toggle";
7
+ export { RadioGroup } from "./radio-group";
8
+ export { DatePicker } from "./date-picker";
9
+ export { Hidden } from "./hidden";
10
+ export { FileUpload } from "./file-upload";
11
+ export { CheckboxGroup } from "./checkbox-group";
12
+ export { Repeater } from "./repeater";
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { RadioGroupConfig, SelectOption } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class RadioGroup<TData extends Record<string, any>> extends BaseField<TData, RadioGroupConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ constructor(name: string);
8
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): RadioGroup<TData>;
9
+ options(options: SelectOption[]): this;
10
+ orientation(orientation: "horizontal" | "vertical"): this;
11
+ horizontal(): this;
12
+ vertical(): this;
13
+ renderField({ value, onChange, error, disabled, }: FieldRenderProps<TData>): ReactNode;
14
+ }
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { RepeaterConfig } from "../types/field";
4
+ import { FieldType, FieldRenderProps, BuiltField } from "../types/form";
5
+ type FieldBuilder<TData extends Record<string, any>> = {
6
+ build(): BuiltField<TData>;
7
+ };
8
+ export declare class Repeater<TData extends Record<string, any>> extends BaseField<TData, RepeaterConfig<TData>> {
9
+ readonly fieldType: FieldType;
10
+ private fieldBuilders;
11
+ constructor(name: string);
12
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): Repeater<TData>;
13
+ fields(...builders: FieldBuilder<any>[]): this;
14
+ minItems(min: number): this;
15
+ maxItems(max: number): this;
16
+ addLabel(label: string): this;
17
+ collapsible(collapsible?: boolean): this;
18
+ orderable(orderable?: boolean): this;
19
+ renderField({ value, onChange, error, disabled, data, }: FieldRenderProps<TData>): ReactNode;
20
+ }
21
+ export {};
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { SelectConfig, SelectOption } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class Select<TData extends Record<string, any>> extends BaseField<TData, SelectConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ constructor(name: string);
8
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): Select<TData>;
9
+ options(options: SelectOption[] | ((data: TData) => SelectOption[])): this;
10
+ multiple(multiple?: boolean): this;
11
+ searchable(searchable?: boolean): this;
12
+ clearable(clearable?: boolean): this;
13
+ maxItems(max: number): this;
14
+ loadOptions(fn: (query: string) => Promise<SelectOption[]>): this;
15
+ renderField({ value, onChange, error, disabled, data, }: FieldRenderProps<TData>): ReactNode;
16
+ }
@@ -0,0 +1,20 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { TextInputConfig } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class TextInput<TData extends Record<string, any>> extends BaseField<TData, TextInputConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): TextInput<TData>;
8
+ type(type: "text" | "email" | "password" | "number" | "url" | "tel"): this;
9
+ email(): this;
10
+ password(): this;
11
+ number(): this;
12
+ url(): this;
13
+ tel(): this;
14
+ minLength(min: number): this;
15
+ maxLength(max: number): this;
16
+ prefix(prefix: string | ReactNode): this;
17
+ suffix(suffix: string | ReactNode): this;
18
+ autocomplete(value: string): this;
19
+ renderField({ value, onChange, onBlur, error, disabled, }: FieldRenderProps<TData>): ReactNode;
20
+ }
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { TextareaConfig } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class Textarea<TData extends Record<string, any>> extends BaseField<TData, TextareaConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ constructor(name: string);
8
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): Textarea<TData>;
9
+ rows(rows: number): this;
10
+ minLength(min: number): this;
11
+ maxLength(max: number): this;
12
+ autoResize(autoResize?: boolean): this;
13
+ renderField({ value, onChange, onBlur, error, disabled, }: FieldRenderProps<TData>): ReactNode;
14
+ }
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from "react";
2
+ import { BaseField } from "./base-field";
3
+ import { ToggleConfig } from "../types/field";
4
+ import { FieldType, FieldRenderProps } from "../types/form";
5
+ export declare class Toggle<TData extends Record<string, any>> extends BaseField<TData, ToggleConfig<TData>> {
6
+ readonly fieldType: FieldType;
7
+ static make<TData extends Record<string, any>>(name: string & keyof TData | string): Toggle<TData>;
8
+ onLabel(label: string): this;
9
+ offLabel(label: string): this;
10
+ renderField({ value, onChange, error, disabled, }: FieldRenderProps<TData>): ReactNode;
11
+ }
@@ -0,0 +1,14 @@
1
+ import { FormActionConfig } from "../types/actions";
2
+ export declare class ActionsBuilder<TData extends Record<string, any>> {
3
+ private actionsList;
4
+ submit(opts?: Partial<Omit<FormActionConfig<TData>, "type">> & {
5
+ label?: string;
6
+ }): this;
7
+ cancel(opts?: Partial<Omit<FormActionConfig<TData>, "type">> & {
8
+ label?: string;
9
+ }): this;
10
+ custom(opts: Omit<FormActionConfig<TData>, "type"> & {
11
+ label: string;
12
+ }): this;
13
+ build(): FormActionConfig<TData>[];
14
+ }
@@ -0,0 +1,35 @@
1
+ import { FormBuildResult, BuiltField } from "../types/form";
2
+ import { SectionConfig, TabConfig, WizardStepConfig } from "../types/layout";
3
+ import { ActionsBuilder } from "./actions-builder";
4
+ type FieldBuilder<TData extends Record<string, any>> = {
5
+ build(): BuiltField<TData>;
6
+ };
7
+ /**
8
+ * Form Schema Builder
9
+ * Fluent API for building complete form configurations
10
+ */
11
+ export declare class FormSchema<TData extends Record<string, any>> {
12
+ private fieldBuilders;
13
+ private schemaConfig;
14
+ static make<TData extends Record<string, any>>(): FormSchema<TData>;
15
+ title(title: string | ((data: TData) => string)): this;
16
+ description(description: string | ((data: TData) => string)): this;
17
+ columns(columns: number): this;
18
+ bordered(bordered?: boolean): this;
19
+ spacing(spacing: "compact" | "normal" | "relaxed"): this;
20
+ disabled(disabled: boolean | ((data: TData) => boolean)): this;
21
+ fields(...builders: FieldBuilder<TData>[]): this;
22
+ sections(...sections: {
23
+ build(): SectionConfig<TData>;
24
+ }[]): this;
25
+ tabs(...tabs: {
26
+ build(): TabConfig<TData>;
27
+ }[]): this;
28
+ wizard(...steps: {
29
+ build(): WizardStepConfig<TData>;
30
+ }[]): this;
31
+ actions(fn: (builder: ActionsBuilder<TData>) => ActionsBuilder<TData>): this;
32
+ actionsPosition(position: "start" | "end" | "between" | "center"): this;
33
+ build(): FormBuildResult<TData>;
34
+ }
35
+ export {};
@@ -0,0 +1,5 @@
1
+ export { FormSchema } from "./form-schema";
2
+ export { ActionsBuilder } from "./actions-builder";
3
+ export { SectionBuilder } from "./section-builder";
4
+ export { TabBuilder } from "./tab-builder";
5
+ export { WizardStep } from "./wizard-builder";
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from "react";
2
+ import { SectionConfig } from "../types/layout";
3
+ export declare class SectionBuilder<TData extends Record<string, any>> {
4
+ private sectionConfig;
5
+ constructor(title: string);
6
+ static make<TData extends Record<string, any>>(title: string): SectionBuilder<TData>;
7
+ id(id: string): this;
8
+ description(description: string): this;
9
+ fields(fields: string[]): this;
10
+ columns(columns: number): this;
11
+ collapsible(collapsible?: boolean): this;
12
+ collapsed(collapsed?: boolean): this;
13
+ icon(icon: ReactNode): this;
14
+ hidden(fn: (data: TData) => boolean): this;
15
+ build(): SectionConfig<TData>;
16
+ }