@skiddph/prui 0.7.0 → 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 (79) hide show
  1. package/dist/app/resource.d.ts +44 -1
  2. package/dist/app.js +1 -1
  3. package/dist/chunks/auth-shell-DQJ4UmUv.js +1208 -0
  4. package/dist/chunks/data-table-toolbar-B-5J2Ozl.js +736 -0
  5. package/dist/core/accordion.d.ts +16 -0
  6. package/dist/core/accordion.js +108 -0
  7. package/dist/core/alert.d.ts +20 -0
  8. package/dist/core/alert.js +63 -0
  9. package/dist/core/anchor.d.ts +35 -0
  10. package/dist/core/anchor.js +39 -0
  11. package/dist/core/breadcrumb.d.ts +30 -0
  12. package/dist/core/breadcrumb.js +67 -0
  13. package/dist/core/button.d.ts +8 -1
  14. package/dist/core/button.js +23 -18
  15. package/dist/core/calendar.d.ts +29 -0
  16. package/dist/core/calendar.js +180 -0
  17. package/dist/core/card.d.ts +5 -1
  18. package/dist/core/card.js +33 -29
  19. package/dist/core/checkbox.d.ts +19 -0
  20. package/dist/core/checkbox.js +55 -0
  21. package/dist/core/combobox.d.ts +32 -0
  22. package/dist/core/combobox.js +193 -0
  23. package/dist/core/date-picker.d.ts +62 -0
  24. package/dist/core/date-picker.js +314 -0
  25. package/dist/core/dialog.d.ts +15 -0
  26. package/dist/core/dialog.js +77 -60
  27. package/dist/core/drawer.d.ts +34 -0
  28. package/dist/core/drawer.js +129 -0
  29. package/dist/core/dropdown.d.ts +8 -4
  30. package/dist/core/dropdown.js +136 -51
  31. package/dist/core/file-upload.d.ts +28 -0
  32. package/dist/core/file-upload.js +111 -0
  33. package/dist/core/index.d.ts +23 -1
  34. package/dist/core/list-nav.d.ts +27 -0
  35. package/dist/core/list-nav.js +51 -0
  36. package/dist/core/modal.d.ts +14 -5
  37. package/dist/core/modal.js +163 -156
  38. package/dist/core/overlay.d.ts +93 -0
  39. package/dist/core/overlay.js +189 -0
  40. package/dist/core/popover.d.ts +29 -0
  41. package/dist/core/popover.js +124 -0
  42. package/dist/core/progress.d.ts +21 -0
  43. package/dist/core/progress.js +59 -0
  44. package/dist/core/radio.d.ts +20 -0
  45. package/dist/core/radio.js +115 -0
  46. package/dist/core/select.d.ts +6 -0
  47. package/dist/core/select.js +187 -98
  48. package/dist/core/skeleton.d.ts +20 -0
  49. package/dist/core/skeleton.js +41 -0
  50. package/dist/core/spinner.d.ts +15 -0
  51. package/dist/core/spinner.js +41 -0
  52. package/dist/core/tabs.js +82 -53
  53. package/dist/core/time-picker.d.ts +68 -0
  54. package/dist/core/time-picker.js +305 -0
  55. package/dist/core/timeline.d.ts +22 -0
  56. package/dist/core/timeline.js +57 -0
  57. package/dist/core/toast.d.ts +36 -0
  58. package/dist/core/toast.js +123 -0
  59. package/dist/core/tooltip.d.ts +23 -0
  60. package/dist/core/tooltip.js +96 -0
  61. package/dist/core/tree-view.d.ts +34 -0
  62. package/dist/core/tree-view.js +133 -0
  63. package/dist/core.js +160 -62
  64. package/dist/data-table/data-table.d.ts +22 -1
  65. package/dist/data-table.js +1 -1
  66. package/dist/forms/form.d.ts +8 -0
  67. package/dist/forms.js +213 -200
  68. package/dist/i18n/index.d.ts +89 -0
  69. package/dist/i18n.js +105 -0
  70. package/dist/index.d.ts +1 -0
  71. package/dist/index.js +263 -155
  72. package/dist/prui-utilities.css +1 -1
  73. package/dist/prui.css +111 -4
  74. package/dist/theme/base.css +110 -3
  75. package/dist/theme/index.d.ts +27 -0
  76. package/dist/theme.js +86 -58
  77. package/package.json +9 -2
  78. package/dist/chunks/auth-shell-BG5vx9eG.js +0 -1054
  79. package/dist/chunks/data-table-toolbar-BUy2EWPy.js +0 -581
@@ -42,6 +42,21 @@ export interface ResourceColumn<T extends ResourceRow> extends Column<T> {
42
42
  formField?: boolean;
43
43
  }
44
44
  export type ResourceAction = "create" | "edit" | "delete";
45
+ /** The full interactive state of a Resource screen. */
46
+ export interface ResourceState {
47
+ page: number;
48
+ pageSize: number;
49
+ search: string;
50
+ filters: ToolbarFilterValues;
51
+ sort: {
52
+ key: string;
53
+ direction: "asc" | "desc";
54
+ } | null;
55
+ /** Keys of selected rows (rowKey or row.id). */
56
+ selection: (string | number)[];
57
+ /** Keys of expanded rows (requires renderExpandedRow). */
58
+ expandedRows: (string | number)[];
59
+ }
45
60
  export interface ResourceProps<T extends ResourceRow> {
46
61
  /** Resource display name, e.g. "employees". */
47
62
  name: string;
@@ -64,8 +79,36 @@ export interface ResourceProps<T extends ResourceRow> {
64
79
  /** Get a row identity, defaults to row.id then index. */
65
80
  rowKey?: (row: T, index: number) => string;
66
81
  searchPlaceholder?: string;
82
+ /** Default page size (alias of defaultState.pageSize). */
67
83
  pageSize?: number;
84
+ /**
85
+ * Controlled state: any subset of { page, pageSize, search, filters, sort,
86
+ * selection, expandedRows }. Omitted keys stay uncontrolled.
87
+ */
88
+ state?: Partial<ResourceState>;
89
+ /** Initial values for the uncontrolled keys. */
90
+ defaultState?: Partial<ResourceState>;
91
+ /** Fires on every state change with the complete state. */
92
+ onStateChange?: (state: ResourceState) => void;
93
+ /** Granular callbacks (also fired alongside onStateChange). */
94
+ onPageChange?: (page: number) => void;
95
+ onFilterChange?: (filters: ToolbarFilterValues) => void;
96
+ onSortChange?: (sort: ResourceState["sort"]) => void;
97
+ onSearchChange?: (search: string) => void;
98
+ /** Fires when the page size control changes. */
99
+ onPageSizeChange?: (size: number) => void;
100
+ onSelectionChange?: (keys: (string | number)[], rows: T[]) => void;
101
+ /** Row selection: true = multiple, { multiple: false } = single. */
102
+ selectable?: boolean | {
103
+ multiple?: boolean;
104
+ };
105
+ /** Expandable row detail (rendered under the row when expanded). */
106
+ renderExpandedRow?: (row: T) => React.ReactNode;
107
+ /** Window-render large row sets. */
108
+ virtualized?: boolean;
109
+ /** Debounce for the search input before list() refires, in ms. Default 250. */
110
+ searchDebounce?: number;
68
111
  className?: string;
69
112
  }
70
- export declare function Resource<T extends ResourceRow>({ name, columns, list, create, update, remove, delete: deleteAlias, actions, form, formSchema, rowKey, searchPlaceholder, pageSize: initialPageSize, className, }: ResourceProps<T>): React.JSX.Element;
113
+ export declare function Resource<T extends ResourceRow>({ name, columns, list, create, update, remove, delete: deleteAlias, actions, form, formSchema, rowKey, searchPlaceholder, pageSize: initialPageSize, state: stateProp, defaultState, onStateChange, onPageChange, onFilterChange, onSortChange, onSearchChange, onPageSizeChange, onSelectionChange, selectable, renderExpandedRow, virtualized, searchDebounce, className, }: ResourceProps<T>): React.JSX.Element;
71
114
  export declare const resourcePropsMeta: PropsMeta;
package/dist/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Link as e, NavLink as t, Navigate as o, Outlet as r, Route as p, Routes as u } from "react-router-dom";
2
- import { A as m, a as P, b as S, c as l, C as h, F as n, R as M, S as R, d as g, e as A, f, g as c, h as d, i as k, r as v, s as N, j as T, k as b, u as w } from "./chunks/auth-shell-BG5vx9eG.js";
2
+ import { A as m, a as P, b as S, c as l, C as h, F as n, R as M, S as R, d as g, e as A, f, g as c, h as d, i as k, r as v, s as N, j as T, k as b, u as w } from "./chunks/auth-shell-DQJ4UmUv.js";
3
3
  export {
4
4
  m as App,
5
5
  P as AppShell,