@kelpie/ui 0.7.0 → 0.8.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 (228) hide show
  1. package/dist/api/resource.d.ts +58 -5
  2. package/dist/api/resource.d.ts.map +1 -1
  3. package/dist/api/resource.js +106 -24
  4. package/dist/api/resource.js.map +1 -1
  5. package/dist/api/resources/companies.d.ts +2 -0
  6. package/dist/api/resources/companies.d.ts.map +1 -1
  7. package/dist/api/resources/companies.js +5 -1
  8. package/dist/api/resources/companies.js.map +1 -1
  9. package/dist/api/resources/decisions.d.ts +2 -0
  10. package/dist/api/resources/decisions.d.ts.map +1 -1
  11. package/dist/api/resources/decisions.js +1 -0
  12. package/dist/api/resources/decisions.js.map +1 -1
  13. package/dist/api/resources/emailDomainLinker.d.ts +16 -0
  14. package/dist/api/resources/emailDomainLinker.d.ts.map +1 -0
  15. package/dist/api/resources/emailDomainLinker.js +16 -0
  16. package/dist/api/resources/emailDomainLinker.js.map +1 -0
  17. package/dist/api/resources/forms.d.ts.map +1 -1
  18. package/dist/api/resources/forms.js +6 -20
  19. package/dist/api/resources/forms.js.map +1 -1
  20. package/dist/api/resources/handbookPages.d.ts +1 -1
  21. package/dist/api/resources/handbookPages.js +1 -1
  22. package/dist/api/resources/listMembers.d.ts +27 -0
  23. package/dist/api/resources/listMembers.d.ts.map +1 -0
  24. package/dist/api/resources/listMembers.js +108 -0
  25. package/dist/api/resources/listMembers.js.map +1 -0
  26. package/dist/api/resources/lists.d.ts +14 -0
  27. package/dist/api/resources/lists.d.ts.map +1 -0
  28. package/dist/api/resources/lists.js +34 -0
  29. package/dist/api/resources/lists.js.map +1 -0
  30. package/dist/api/resources/people.d.ts.map +1 -1
  31. package/dist/api/resources/people.js +4 -1
  32. package/dist/api/resources/people.js.map +1 -1
  33. package/dist/api/resources/roles.d.ts +2 -0
  34. package/dist/api/resources/roles.d.ts.map +1 -1
  35. package/dist/api/resources/roles.js +1 -1
  36. package/dist/api/resources/roles.js.map +1 -1
  37. package/dist/api/resources/sampleData.d.ts +17 -0
  38. package/dist/api/resources/sampleData.d.ts.map +1 -0
  39. package/dist/api/resources/sampleData.js +30 -0
  40. package/dist/api/resources/sampleData.js.map +1 -0
  41. package/dist/api/resources/webhooks.d.ts.map +1 -1
  42. package/dist/api/resources/webhooks.js +7 -22
  43. package/dist/api/resources/webhooks.js.map +1 -1
  44. package/dist/app/KelpieApp.d.ts.map +1 -1
  45. package/dist/app/KelpieApp.js +3 -1
  46. package/dist/app/KelpieApp.js.map +1 -1
  47. package/dist/components/ActivitiesPanel.d.ts.map +1 -1
  48. package/dist/components/ActivitiesPanel.js +2 -1
  49. package/dist/components/ActivitiesPanel.js.map +1 -1
  50. package/dist/components/ColumnPicker.d.ts +24 -0
  51. package/dist/components/ColumnPicker.d.ts.map +1 -0
  52. package/dist/components/ColumnPicker.js +56 -0
  53. package/dist/components/ColumnPicker.js.map +1 -0
  54. package/dist/components/DataTable.d.ts +16 -1
  55. package/dist/components/DataTable.d.ts.map +1 -1
  56. package/dist/components/DataTable.js +51 -10
  57. package/dist/components/DataTable.js.map +1 -1
  58. package/dist/components/DecisionsPanel.d.ts.map +1 -1
  59. package/dist/components/DecisionsPanel.js +4 -3
  60. package/dist/components/DecisionsPanel.js.map +1 -1
  61. package/dist/components/EntitySearch.d.ts.map +1 -1
  62. package/dist/components/EntitySearch.js +11 -5
  63. package/dist/components/EntitySearch.js.map +1 -1
  64. package/dist/components/ListsPanel.d.ts +14 -0
  65. package/dist/components/ListsPanel.d.ts.map +1 -0
  66. package/dist/components/ListsPanel.js +56 -0
  67. package/dist/components/ListsPanel.js.map +1 -0
  68. package/dist/components/NotesPanel.d.ts.map +1 -1
  69. package/dist/components/NotesPanel.js +6 -5
  70. package/dist/components/NotesPanel.js.map +1 -1
  71. package/dist/components/Paginator.d.ts +26 -0
  72. package/dist/components/Paginator.d.ts.map +1 -0
  73. package/dist/components/Paginator.js +16 -0
  74. package/dist/components/Paginator.js.map +1 -0
  75. package/dist/components/PlanPanel.d.ts.map +1 -1
  76. package/dist/components/PlanPanel.js +2 -1
  77. package/dist/components/PlanPanel.js.map +1 -1
  78. package/dist/components/Shell.d.ts.map +1 -1
  79. package/dist/components/Shell.js +1 -0
  80. package/dist/components/Shell.js.map +1 -1
  81. package/dist/index.d.ts +8 -2
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +4 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/lib/listView.d.ts +15 -0
  86. package/dist/lib/listView.d.ts.map +1 -0
  87. package/dist/lib/listView.js +66 -0
  88. package/dist/lib/listView.js.map +1 -0
  89. package/dist/lib/sort.d.ts +43 -0
  90. package/dist/lib/sort.d.ts.map +1 -0
  91. package/dist/lib/sort.js +102 -0
  92. package/dist/lib/sort.js.map +1 -0
  93. package/dist/pages/CompaniesPage.d.ts.map +1 -1
  94. package/dist/pages/CompaniesPage.js +88 -3
  95. package/dist/pages/CompaniesPage.js.map +1 -1
  96. package/dist/pages/CompanyDetail.d.ts.map +1 -1
  97. package/dist/pages/CompanyDetail.js +17 -14
  98. package/dist/pages/CompanyDetail.js.map +1 -1
  99. package/dist/pages/DealDetail.d.ts.map +1 -1
  100. package/dist/pages/DealDetail.js +3 -1
  101. package/dist/pages/DealDetail.js.map +1 -1
  102. package/dist/pages/DealsPage.d.ts.map +1 -1
  103. package/dist/pages/DealsPage.js +134 -14
  104. package/dist/pages/DealsPage.js.map +1 -1
  105. package/dist/pages/DecisionsPage.d.ts.map +1 -1
  106. package/dist/pages/DecisionsPage.js +50 -8
  107. package/dist/pages/DecisionsPage.js.map +1 -1
  108. package/dist/pages/FormsPage.d.ts.map +1 -1
  109. package/dist/pages/FormsPage.js +53 -2
  110. package/dist/pages/FormsPage.js.map +1 -1
  111. package/dist/pages/FundraisingPage.d.ts.map +1 -1
  112. package/dist/pages/FundraisingPage.js +116 -14
  113. package/dist/pages/FundraisingPage.js.map +1 -1
  114. package/dist/pages/HiringPage.d.ts.map +1 -1
  115. package/dist/pages/HiringPage.js +27 -4
  116. package/dist/pages/HiringPage.js.map +1 -1
  117. package/dist/pages/ListDetail.d.ts +11 -0
  118. package/dist/pages/ListDetail.d.ts.map +1 -0
  119. package/dist/pages/ListDetail.js +188 -0
  120. package/dist/pages/ListDetail.js.map +1 -0
  121. package/dist/pages/ListsPage.d.ts +9 -0
  122. package/dist/pages/ListsPage.d.ts.map +1 -0
  123. package/dist/pages/ListsPage.js +125 -0
  124. package/dist/pages/ListsPage.js.map +1 -0
  125. package/dist/pages/OpportunitiesPage.d.ts.map +1 -1
  126. package/dist/pages/OpportunitiesPage.js +97 -14
  127. package/dist/pages/OpportunitiesPage.js.map +1 -1
  128. package/dist/pages/OpportunityDetail.d.ts.map +1 -1
  129. package/dist/pages/OpportunityDetail.js +3 -1
  130. package/dist/pages/OpportunityDetail.js.map +1 -1
  131. package/dist/pages/PartnershipDetail.d.ts.map +1 -1
  132. package/dist/pages/PartnershipDetail.js +3 -1
  133. package/dist/pages/PartnershipDetail.js.map +1 -1
  134. package/dist/pages/PartnershipsPage.d.ts.map +1 -1
  135. package/dist/pages/PartnershipsPage.js +111 -14
  136. package/dist/pages/PartnershipsPage.js.map +1 -1
  137. package/dist/pages/PeoplePage.d.ts.map +1 -1
  138. package/dist/pages/PeoplePage.js +102 -3
  139. package/dist/pages/PeoplePage.js.map +1 -1
  140. package/dist/pages/PersonDetail.d.ts.map +1 -1
  141. package/dist/pages/PersonDetail.js +5 -3
  142. package/dist/pages/PersonDetail.js.map +1 -1
  143. package/dist/pages/PlanningPage.d.ts.map +1 -1
  144. package/dist/pages/PlanningPage.js +85 -17
  145. package/dist/pages/PlanningPage.js.map +1 -1
  146. package/dist/pages/RaiseDetail.d.ts.map +1 -1
  147. package/dist/pages/RaiseDetail.js +3 -1
  148. package/dist/pages/RaiseDetail.js.map +1 -1
  149. package/dist/pages/RoleDetail.d.ts.map +1 -1
  150. package/dist/pages/RoleDetail.js +5 -4
  151. package/dist/pages/RoleDetail.js.map +1 -1
  152. package/dist/pages/admin/DataPage.d.ts.map +1 -1
  153. package/dist/pages/admin/DataPage.js +110 -12
  154. package/dist/pages/admin/DataPage.js.map +1 -1
  155. package/dist/pages/admin/WebhookDeliveries.d.ts.map +1 -1
  156. package/dist/pages/admin/WebhookDeliveries.js +3 -2
  157. package/dist/pages/admin/WebhookDeliveries.js.map +1 -1
  158. package/dist/pages/admin/WebhooksPage.d.ts.map +1 -1
  159. package/dist/pages/admin/WebhooksPage.js +3 -2
  160. package/dist/pages/admin/WebhooksPage.js.map +1 -1
  161. package/dist/pages/admin/WorkspaceSettingsPage.d.ts.map +1 -1
  162. package/dist/pages/admin/WorkspaceSettingsPage.js +45 -2
  163. package/dist/pages/admin/WorkspaceSettingsPage.js.map +1 -1
  164. package/dist/pages/forms/SubmissionsTable.d.ts.map +1 -1
  165. package/dist/pages/forms/SubmissionsTable.js +2 -1
  166. package/dist/pages/forms/SubmissionsTable.js.map +1 -1
  167. package/dist/pages/handbook/HandbookPage.js +1 -1
  168. package/dist/pages/hiringDirectory.js +2 -2
  169. package/dist/pages/onboarding/WorkspaceStepPage.d.ts.map +1 -1
  170. package/dist/pages/onboarding/WorkspaceStepPage.js +15 -2
  171. package/dist/pages/onboarding/WorkspaceStepPage.js.map +1 -1
  172. package/dist/pages/positionDirectory.js +2 -2
  173. package/package.json +2 -2
  174. package/src/api/resource.ts +149 -31
  175. package/src/api/resources/companies.ts +7 -1
  176. package/src/api/resources/decisions.ts +3 -0
  177. package/src/api/resources/emailDomainLinker.ts +43 -0
  178. package/src/api/resources/forms.ts +5 -23
  179. package/src/api/resources/handbookPages.ts +1 -1
  180. package/src/api/resources/listMembers.ts +173 -0
  181. package/src/api/resources/lists.ts +61 -0
  182. package/src/api/resources/people.ts +4 -1
  183. package/src/api/resources/roles.ts +3 -1
  184. package/src/api/resources/sampleData.ts +56 -0
  185. package/src/api/resources/webhooks.ts +8 -24
  186. package/src/app/KelpieApp.tsx +4 -0
  187. package/src/components/ActivitiesPanel.tsx +2 -10
  188. package/src/components/ColumnPicker.tsx +124 -0
  189. package/src/components/DataTable.tsx +89 -10
  190. package/src/components/DecisionsPanel.tsx +4 -12
  191. package/src/components/EntitySearch.tsx +12 -5
  192. package/src/components/ListsPanel.tsx +176 -0
  193. package/src/components/NotesPanel.tsx +6 -14
  194. package/src/components/Paginator.tsx +78 -0
  195. package/src/components/PlanPanel.tsx +2 -10
  196. package/src/components/Shell.tsx +1 -0
  197. package/src/index.ts +10 -1
  198. package/src/lib/listView.ts +149 -0
  199. package/src/lib/sort.ts +143 -0
  200. package/src/pages/CompaniesPage.tsx +125 -11
  201. package/src/pages/CompanyDetail.tsx +62 -62
  202. package/src/pages/DealDetail.tsx +3 -0
  203. package/src/pages/DealsPage.tsx +178 -24
  204. package/src/pages/DecisionsPage.tsx +73 -18
  205. package/src/pages/FormsPage.tsx +81 -17
  206. package/src/pages/FundraisingPage.tsx +152 -24
  207. package/src/pages/HiringPage.tsx +39 -11
  208. package/src/pages/ListDetail.tsx +408 -0
  209. package/src/pages/ListsPage.tsx +281 -0
  210. package/src/pages/OpportunitiesPage.tsx +130 -24
  211. package/src/pages/OpportunityDetail.tsx +3 -0
  212. package/src/pages/PartnershipDetail.tsx +3 -0
  213. package/src/pages/PartnershipsPage.tsx +149 -24
  214. package/src/pages/PeoplePage.tsx +137 -11
  215. package/src/pages/PersonDetail.tsx +5 -3
  216. package/src/pages/PlanningPage.tsx +256 -29
  217. package/src/pages/RaiseDetail.tsx +3 -0
  218. package/src/pages/RoleDetail.tsx +21 -26
  219. package/src/pages/admin/DataPage.tsx +276 -13
  220. package/src/pages/admin/WebhookDeliveries.tsx +10 -15
  221. package/src/pages/admin/WebhooksPage.tsx +14 -19
  222. package/src/pages/admin/WorkspaceSettingsPage.tsx +134 -2
  223. package/src/pages/forms/SubmissionsTable.tsx +3 -10
  224. package/src/pages/handbook/HandbookPage.tsx +1 -1
  225. package/src/pages/hiringDirectory.ts +2 -2
  226. package/src/pages/onboarding/WorkspaceStepPage.tsx +31 -3
  227. package/src/pages/positionDirectory.ts +2 -2
  228. package/src/styles.css +3 -3
@@ -1,4 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { SortValue } from '../lib/sort.ts';
2
3
  export interface Column<TRow> {
3
4
  readonly key: string;
4
5
  readonly header: string;
@@ -6,6 +7,14 @@ export interface Column<TRow> {
6
7
  readonly render: (row: TRow) => ReactNode;
7
8
  /** The `?sort=` field this column drives. Omit for a column with no server-side sort. */
8
9
  readonly sortKey?: string | undefined;
10
+ /**
11
+ * Returns the value this column sorts by on the client. Set on any column
12
+ * whose resource cannot sort on it server-side (join columns, computed
13
+ * values, fields not in the resource's `_SORTS` map). When the active sort
14
+ * names a `Column.key` with this set, `DataTable` orders the loaded rows in
15
+ * place and does not forward the change to the server.
16
+ */
17
+ readonly getSortValue?: ((row: TRow) => SortValue) | undefined;
9
18
  }
10
19
  export interface DataTableGroup<TRow> {
11
20
  readonly id: string;
@@ -31,6 +40,12 @@ export interface DataTableProps<TRow> {
31
40
  readonly sort?: string | undefined;
32
41
  /** Fires with the next `?sort=` value when a sortable header is clicked. Required for any column to be clickable. */
33
42
  readonly onSortChange?: ((sort: string | undefined) => void) | undefined;
43
+ /**
44
+ * Restricts rendering to these column keys, in the order the header uses.
45
+ * Undefined shows every column. An unknown key is ignored rather than raising:
46
+ * a stored preference outliving a rename should hide only what it recognises.
47
+ */
48
+ readonly visibleColumnKeys?: readonly string[] | undefined;
34
49
  }
35
- export declare function DataTable<TRow>({ columns, rows, groups, onRowClick, emptyMessage, emptyDescription, emptyAction, getRowId, sort, onSortChange, }: DataTableProps<TRow>): React.JSX.Element;
50
+ export declare function DataTable<TRow>({ columns, rows, groups, onRowClick, emptyMessage, emptyDescription, emptyAction, getRowId, sort, onSortChange, visibleColumnKeys, }: DataTableProps<TRow>): React.JSX.Element;
36
51
  //# sourceMappingURL=DataTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/components/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,MAAM,CAAC,IAAI;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,CAAA;IACzC,yFAAyF;IACzF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC;AAED,MAAM,WAAW,cAAc,CAAC,IAAI;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,cAAc,CAAC,IAAI;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,qFAAqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9C,mIAAmI;IACnI,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAA;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,qHAAqH;IACrH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CACzE;AA2BD,wBAAgB,SAAS,CAAC,IAAI,EAAE,EAC9B,OAAO,EACP,IAAI,EACJ,MAAM,EACN,UAAU,EACV,YAA+B,EAC/B,gBAAiD,EACjD,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,YAAY,GACb,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+E1C"}
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/components/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,WAAW,MAAM,CAAC,IAAI;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,CAAA;IACzC,yFAAyF;IACzF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,SAAS,CAAA;CAC/D;AAED,MAAM,WAAW,cAAc,CAAC,IAAI;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,cAAc,CAAC,IAAI;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,qFAAqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9C,mIAAmI;IACnI,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAA;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,qHAAqH;IACrH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACxE;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;CAC3D;AAwDD,wBAAgB,SAAS,CAAC,IAAI,EAAE,EAC9B,OAAO,EACP,IAAI,EACJ,MAAM,EACN,UAAU,EACV,YAA+B,EAC/B,gBAAiD,EACjD,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,iBAAiB,GAClB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+G1C"}
@@ -1,4 +1,5 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { sortRowsBy } from '../lib/sort.js';
2
3
  function directionOf(sort, field) {
3
4
  if (field === undefined || sort === undefined) {
4
5
  return undefined;
@@ -16,20 +17,60 @@ function nextSort(sort, field) {
16
17
  }
17
18
  return current === 'asc' ? `-${field}` : undefined;
18
19
  }
19
- export function DataTable({ columns, rows, groups, onRowClick, emptyMessage = 'No records yet', emptyDescription = 'Add a record to get started.', emptyAction, getRowId, sort, onSortChange, }) {
20
+ /**
21
+ * The identifier a column contributes to the sort string. Server sorts use the
22
+ * `sortKey` — the field the server knows — so a stored sort keeps working when
23
+ * a column is renamed in the UI. Client-only sorts fall back to the display
24
+ * `key`, since there is no server field to reference.
25
+ */
26
+ function sortFieldOf(column) {
27
+ if (column.sortKey !== undefined) {
28
+ return column.sortKey;
29
+ }
30
+ return column.getSortValue !== undefined ? column.key : undefined;
31
+ }
32
+ function findActiveClientColumn(columns, sort) {
33
+ if (sort === undefined) {
34
+ return undefined;
35
+ }
36
+ const bare = sort.startsWith('-') ? sort.slice(1) : sort;
37
+ return columns.find((column) => column.getSortValue !== undefined && column.sortKey === undefined && column.key === bare);
38
+ }
39
+ export function DataTable({ columns, rows, groups, onRowClick, emptyMessage = 'No records yet', emptyDescription = 'Add a record to get started.', emptyAction, getRowId, sort, onSortChange, visibleColumnKeys, }) {
20
40
  const flatRows = groups === undefined ? (rows ?? []) : groups.flatMap((group) => group.rows);
41
+ const displayedColumns = visibleColumnKeys === undefined
42
+ ? columns
43
+ : columns.filter((column) => visibleColumnKeys.includes(column.key));
44
+ // Client sort is a page-local reorder: the server-returned page order stays
45
+ // the same, and only what is on screen shifts. Groups sort within each group,
46
+ // because the group is the primary key of the view — mixing rows across
47
+ // groups would break what the group header claims to count.
48
+ const clientSortColumn = findActiveClientColumn(displayedColumns, sort);
49
+ const clientDirection = clientSortColumn === undefined
50
+ ? undefined
51
+ : directionOf(sort, clientSortColumn.key) ?? undefined;
52
+ const displayedRows = clientSortColumn === undefined || clientDirection === undefined || rows === undefined
53
+ ? rows
54
+ : sortRowsBy(rows, clientSortColumn.getSortValue, clientDirection);
55
+ const displayedGroups = clientSortColumn === undefined || clientDirection === undefined || groups === undefined
56
+ ? groups
57
+ : groups.map((group) => ({
58
+ ...group,
59
+ rows: sortRowsBy(group.rows, clientSortColumn.getSortValue, clientDirection),
60
+ }));
21
61
  if (flatRows.length === 0) {
22
62
  return (_jsxs("div", { className: "rounded-md border border-dashed border-border px-6 py-12 text-center", children: [_jsx("p", { className: "text-[13px] font-medium text-ink", children: emptyMessage }), _jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: emptyDescription }), emptyAction !== undefined && (_jsx("button", { type: "button", onClick: emptyAction.onClick, className: "mt-3 rounded-md border border-border bg-surface-raised px-3 py-1.5 text-[12px] font-medium text-ink transition hover:border-border-strong hover:bg-surface-sunken", children: emptyAction.label }))] }));
23
63
  }
24
- return (_jsx("div", { className: "overflow-hidden rounded-md border border-border", children: _jsxs("table", { className: "w-full border-collapse text-left text-[13px]", children: [_jsx("thead", { children: _jsx("tr", { className: "border-b border-border", children: columns.map((column) => {
25
- const direction = directionOf(sort, column.sortKey);
26
- const sortable = column.sortKey !== undefined && onSortChange !== undefined;
27
- return (_jsx("th", { className: `px-3 py-2 text-[11px] font-medium text-ink-faint ${column.className ?? ''}`, children: sortable ? (_jsxs("button", { type: "button", onClick: () => {
28
- onSortChange?.(nextSort(sort, column.sortKey ?? ''));
29
- }, className: "inline-flex items-center gap-1 transition hover:text-ink", children: [column.header, _jsx("span", { className: "text-ink-faint", children: direction === 'asc' ? '↑' : direction === 'desc' ? '↓' : '' })] })) : (column.header) }, column.key));
30
- }) }) }), _jsx("tbody", { children: groups === undefined
31
- ? (rows ?? []).map((row) => (_jsx(DataRow, { row: row, columns: columns, onRowClick: onRowClick }, getRowId(row))))
32
- : groups.map((group) => (_jsx(GroupRows, { group: group, columns: columns, onRowClick: onRowClick, getRowId: getRowId }, group.id))) })] }) }));
64
+ return (_jsxs("div", { className: "overflow-hidden rounded-md border border-border", children: [_jsxs("table", { className: "w-full border-collapse text-left text-[13px]", children: [_jsx("thead", { children: _jsx("tr", { className: "border-b border-border", children: displayedColumns.map((column) => {
65
+ const field = sortFieldOf(column);
66
+ const direction = directionOf(sort, field);
67
+ const sortable = field !== undefined && onSortChange !== undefined;
68
+ return (_jsx("th", { className: `px-3 py-2 text-[11px] font-medium text-ink-faint ${column.className ?? ''}`, children: sortable && field !== undefined ? (_jsxs("button", { type: "button", onClick: () => {
69
+ onSortChange?.(nextSort(sort, field));
70
+ }, className: "inline-flex items-center gap-1 transition hover:text-ink", children: [column.header, _jsx("span", { className: "text-ink-faint", children: direction === 'asc' ? '↑' : direction === 'desc' ? '↓' : '' })] })) : (column.header) }, column.key));
71
+ }) }) }), _jsx("tbody", { children: displayedGroups === undefined
72
+ ? (displayedRows ?? []).map((row) => (_jsx(DataRow, { row: row, columns: displayedColumns, onRowClick: onRowClick }, getRowId(row))))
73
+ : displayedGroups.map((group) => (_jsx(GroupRows, { group: group, columns: displayedColumns, onRowClick: onRowClick, getRowId: getRowId }, group.id))) })] }), clientSortColumn !== undefined && (_jsxs("p", { className: "border-t border-border bg-surface-sunken/40 px-3 py-1.5 text-[11px] text-ink-faint", children: ["Sorted by ", clientSortColumn.header.toLowerCase(), " on this page. Other pages sort by their own defaults."] }))] }));
33
74
  }
34
75
  function GroupRows({ group, columns, onRowClick, getRowId, }) {
35
76
  return (_jsxs(_Fragment, { children: [_jsx("tr", { className: "border-b border-border bg-surface-sunken/60", children: _jsx("td", { colSpan: columns.length, className: "px-3 py-1.5", children: _jsxs("span", { className: "inline-flex items-center gap-2", children: [group.label, _jsx("span", { className: "font-mono text-[11px] text-ink-faint", children: group.rows.length })] }) }) }), group.rows.map((row) => (_jsx(DataRow, { row: row, columns: columns, onRowClick: onRowClick }, getRowId(row))))] }));
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","sourceRoot":"","sources":["../../src/components/DataTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","sourceRoot":"","sources":["../../src/components/DataTable.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DecisionsPanel.d.ts","sourceRoot":"","sources":["../../src/components/DecisionsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAYjE;;;;;;GAMG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkK/F"}
1
+ {"version":3,"file":"DecisionsPanel.d.ts","sourceRoot":"","sources":["../../src/components/DecisionsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAajE;;;;;;GAMG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAyJ/F"}
@@ -5,6 +5,7 @@ import { useTimezone } from '../api/resources/account.js';
5
5
  import { useCreateDecision, useDecisions, useDeleteDecision } from '../api/resources/decisions.js';
6
6
  import { useMembers } from '../api/resources/members.js';
7
7
  import { formatDate } from '../lib/dates.js';
8
+ import { Paginator } from './Paginator.js';
8
9
  import { ErrorPanel } from './QueryState.js';
9
10
  import { SectionHeader } from './SectionHeader.js';
10
11
  export function DecisionsPanel({ targetType, targetId }) {
@@ -18,8 +19,8 @@ export function DecisionsPanel({ targetType, targetId }) {
18
19
  const [dueAt, setDueAt] = useState('');
19
20
  // Due date first, decided date otherwise, newest down — the mockup's order.
20
21
  // The list arrives in `-decided_at` order and the API cannot sort on the
21
- // nullable `due_at`, so this reorders what is loaded; across a "Load more"
22
- // boundary the interleave can be wrong, which is the cheaper wrong than a
22
+ // nullable `due_at`, so this reorders what is on this page; across page
23
+ // boundaries the interleave can be wrong, which is the cheaper wrong than a
23
24
  // second request per panel.
24
25
  const ordered = [...decisions.records].sort((left, right) => (right.dueAt ?? right.decidedAt).getTime() - (left.dueAt ?? left.decidedAt).getTime());
25
26
  function reset() {
@@ -55,7 +56,7 @@ export function DecisionsPanel({ targetType, targetId }) {
55
56
  setDueAt(event.target.value);
56
57
  }, className: "rounded-md border border-border bg-surface-raised px-2 py-1 text-[12px] outline-none focus:border-accent" })] }), _jsxs("div", { className: "ml-auto flex gap-2", children: [_jsx("button", { type: "button", onClick: reset, className: "rounded-md px-2.5 py-1.5 text-[12px] font-medium text-ink-muted hover:text-ink", children: "Cancel" }), _jsx("button", { type: "submit", className: "rounded-md bg-accent px-3 py-1.5 text-[12px] font-semibold text-accent-fg hover:bg-accent-hover", children: "Add" })] })] })] })), decisions.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading decisions\u2026" }), !decisions.isLoading && ordered.length === 0 && !adding ? (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No decisions yet." })) : (ordered.length > 0 && (_jsx("ul", { className: "overflow-hidden rounded-md border border-border", children: ordered.map((decision) => (_jsx(DecisionItem, { decision: decision, ownerName: ownerNameFor(decision, members.nameById), onRemove: () => {
57
58
  deleteDecision.run(decision.id);
58
- } }, decision.id))) }))), decisions.hasMore && (_jsx("button", { type: "button", onClick: decisions.loadMore, disabled: decisions.isLoadingMore, className: "mt-3 rounded-md border border-border px-3 py-1.5 text-[12px] font-medium text-ink-muted transition hover:border-border-strong hover:text-ink", children: decisions.isLoadingMore ? 'Loading…' : 'Load more' })), _jsx("p", { className: "mt-2 text-[11px] text-ink-faint", children: _jsx(Link, { to: "/decisions", className: "text-accent hover:underline", children: "View all decisions" }) })] }));
59
+ } }, decision.id))) }))), _jsx(Paginator, { list: decisions }), _jsx("p", { className: "mt-2 text-[11px] text-ink-faint", children: _jsx(Link, { to: "/decisions", className: "text-accent hover:underline", children: "View all decisions" }) })] }));
59
60
  }
60
61
  /**
61
62
  * The mockup shows an owner only when it can name one, so a null owner and a
@@ -1 +1 @@
1
- {"version":3,"file":"DecisionsPanel.js","sourceRoot":"","sources":["../../src/components/DecisionsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DecisionsPanel.js","sourceRoot":"","sources":["../../src/components/DecisionsPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySearch.d.ts","sourceRoot":"","sources":["../../src/components/EntitySearch.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,2FAA2F;IAC3F,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAC9D,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;CACxC;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAA4C,EAC5C,WAAuB,EACvB,YAA2B,EAC3B,KAAS,EACT,QAAQ,EACR,SAAc,EACd,IAAW,GACZ,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0NvC"}
1
+ {"version":3,"file":"EntitySearch.d.ts","sourceRoot":"","sources":["../../src/components/EntitySearch.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,2FAA2F;IAC3F,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAC9D,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;CACxC;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAA4C,EAC5C,WAAuB,EACvB,YAA2B,EAC3B,KAAS,EACT,QAAQ,EACR,SAAc,EACd,IAAW,GACZ,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiOvC"}
@@ -3,10 +3,15 @@ import { useEffect, useId, useMemo, useRef, useState } from 'react';
3
3
  export function EntitySearch({ options, value, onChange, onQueryChange, onCreate, createLabel = (query) => `Create “${query}”`, placeholder = 'Search…', emptyMessage = 'No matches', limit = 8, required, className = '', size = 'sm', }) {
4
4
  const listId = useId();
5
5
  const rootRef = useRef(null);
6
- const selected = options.find((option) => option.id === value);
7
6
  const [query, setQuery] = useState('');
8
7
  const [open, setOpen] = useState(false);
9
8
  const [highlight, setHighlight] = useState(0);
9
+ // A picked option must keep rendering even when the current `options` list
10
+ // no longer contains it — for a server-backed search, clearing the query on
11
+ // pick swaps the answer to a different page that may not include the pick.
12
+ const [remembered, setRemembered] = useState(null);
13
+ const selected = options.find((option) => option.id === value) ??
14
+ (remembered !== null && remembered.id === value ? remembered : undefined);
10
15
  const filtered = useMemo(() => {
11
16
  const term = query.trim().toLowerCase();
12
17
  if (onQueryChange !== undefined || term.length === 0) {
@@ -42,8 +47,9 @@ export function EntitySearch({ options, value, onChange, onQueryChange, onCreate
42
47
  setQuery(next);
43
48
  onQueryChange?.(next);
44
49
  }
45
- function pick(id) {
46
- onChange(id);
50
+ function pick(option) {
51
+ setRemembered(option);
52
+ onChange(option.id);
47
53
  setOpen(false);
48
54
  search('');
49
55
  }
@@ -84,7 +90,7 @@ export function EntitySearch({ options, value, onChange, onQueryChange, onCreate
84
90
  event.preventDefault();
85
91
  const hit = filtered[highlight];
86
92
  if (hit !== undefined) {
87
- pick(hit.id);
93
+ pick(hit);
88
94
  }
89
95
  else if (showCreate) {
90
96
  create();
@@ -97,7 +103,7 @@ export function EntitySearch({ options, value, onChange, onQueryChange, onCreate
97
103
  }, placeholder: placeholder, role: "combobox", "aria-expanded": open, "aria-controls": listId, "aria-autocomplete": "list", className: `w-full rounded-md border border-border bg-surface-raised outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 ${inputClass}` })), open && (_jsxs("ul", { id: listId, role: "listbox", className: "absolute z-20 mt-1 max-h-56 w-full overflow-auto rounded-md border border-border bg-surface-raised py-1", children: [filtered.length === 0 && !showCreate ? (_jsx("li", { className: "px-3 py-2 text-[12px] text-ink-faint", children: emptyMessage })) : (_jsxs(_Fragment, { children: [filtered.map((option, index) => (_jsx("li", { role: "option", "aria-selected": index === highlight, children: _jsxs("button", { type: "button", onMouseEnter: () => {
98
104
  setHighlight(index);
99
105
  }, onClick: () => {
100
- pick(option.id);
106
+ pick(option);
101
107
  }, className: [
102
108
  'flex w-full flex-col px-3 py-1.5 text-left',
103
109
  index === highlight ? 'bg-accent-soft' : 'hover:bg-surface',
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySearch.js","sourceRoot":"","sources":["../../src/components/EntitySearch.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntitySearch.js","sourceRoot":"","sources":["../../src/components/EntitySearch.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { RecordTargetType } from '@kelpie/schemas';
2
+ /**
3
+ * "What lists is this record on?" panel, for any record's detail page.
4
+ *
5
+ * A record can only join a list whose `target_type` matches its own, so the
6
+ * picker is filtered accordingly. Removing a chip calls
7
+ * `DELETE /v1/lists/{id}/members/{memberId}` and the cached counts on the
8
+ * lists index refresh with it.
9
+ */
10
+ export declare function ListsPanel({ targetType, targetId, }: {
11
+ readonly targetType: RecordTargetType;
12
+ readonly targetId: string;
13
+ }): React.JSX.Element;
14
+ //# sourceMappingURL=ListsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListsPanel.d.ts","sourceRoot":"","sources":["../../src/components/ListsPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAe7E;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwDpB"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { RECORD_TARGET_TYPE_LABELS } from '@kelpie/schemas';
3
+ import { useState } from 'react';
4
+ import { Link } from 'react-router';
5
+ import { useAddListMember, useListMembershipsFor, useRemoveListMember, } from '../api/resources/listMembers.js';
6
+ import { useLists } from '../api/resources/lists.js';
7
+ import { EntitySearch } from './EntitySearch.js';
8
+ import { ErrorPanel, LoadingPanel } from './QueryState.js';
9
+ import { SectionHeader } from './SectionHeader.js';
10
+ /**
11
+ * "What lists is this record on?" panel, for any record's detail page.
12
+ *
13
+ * A record can only join a list whose `target_type` matches its own, so the
14
+ * picker is filtered accordingly. Removing a chip calls
15
+ * `DELETE /v1/lists/{id}/members/{memberId}` and the cached counts on the
16
+ * lists index refresh with it.
17
+ */
18
+ export function ListsPanel({ targetType, targetId, }) {
19
+ const memberships = useListMembershipsFor(targetType, targetId);
20
+ const [adding, setAdding] = useState(false);
21
+ return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Lists", onAdd: () => {
22
+ setAdding((current) => !current);
23
+ }, addLabel: "Add to list" }), adding && (_jsxs("div", { className: "mb-3 flex gap-2", children: [_jsx("div", { className: "min-w-0 flex-1", children: _jsx(ListPicker, { targetType: targetType, targetId: targetId, excludeListIds: new Set(memberships.memberships.map((row) => row.listId)), onAdded: () => {
24
+ setAdding(false);
25
+ } }) }), _jsx("button", { type: "button", onClick: () => {
26
+ setAdding(false);
27
+ }, className: "shrink-0 rounded-md px-2.5 py-1.5 text-[12px] font-medium text-ink-muted hover:text-ink", children: "Cancel" })] })), memberships.error !== null && _jsx(ErrorPanel, { error: memberships.error }), memberships.isLoading ? (_jsx(LoadingPanel, { label: "Loading lists\u2026" })) : memberships.memberships.length === 0 && !adding ? (_jsxs("p", { className: "text-[13px] text-ink-faint", children: ["Not on any lists yet. Add this ", RECORD_TARGET_TYPE_LABELS[targetType].toLowerCase(), " to a list to group it with others."] })) : (_jsx("ul", { className: "overflow-hidden rounded-md border border-border", children: memberships.memberships.map((membership) => (_jsx(MembershipRow, { membership: membership }, membership.id))) }))] }));
28
+ }
29
+ function MembershipRow({ membership, }) {
30
+ const remove = useRemoveListMember();
31
+ return (_jsxs("li", { className: "border-b border-border px-4 py-3 last:border-0", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsx(Link, { to: `/lists/${membership.listId}`, className: "text-left text-[13px] font-medium text-ink hover:text-accent", children: membership.listName }), _jsx("button", { type: "button", disabled: remove.isPending, onClick: () => {
32
+ remove.run({ listId: membership.listId, id: membership.id });
33
+ }, className: "text-[11px] font-medium text-danger hover:underline disabled:opacity-50", children: "Remove" })] }), remove.error !== null && (_jsx("div", { className: "mt-2", children: _jsx(ErrorPanel, { error: remove.error }) }))] }));
34
+ }
35
+ function ListPicker({ targetType, targetId, excludeListIds, onAdded, }) {
36
+ const [search, setSearch] = useState('');
37
+ const term = search.trim();
38
+ // Only lists whose type matches — the DB will refuse a mismatched member,
39
+ // but the picker filters up front so the surface never offers one.
40
+ const lists = useLists({
41
+ targetType,
42
+ term: term.length > 0 ? term : undefined,
43
+ });
44
+ const addMember = useAddListMember();
45
+ const options = lists.records
46
+ .filter((row) => !excludeListIds.has(row.id))
47
+ .map((row) => ({ id: row.id, label: row.name }));
48
+ function pick(listId) {
49
+ addMember
50
+ .runAsync({ listId, input: { targetType, targetId } })
51
+ .then(onAdded)
52
+ .catch(() => undefined);
53
+ }
54
+ return (_jsxs("div", { children: [_jsx(EntitySearch, { options: options, value: "", onChange: pick, onQueryChange: setSearch, placeholder: "Search lists\u2026", emptyMessage: "No matching lists", size: "md" }), addMember.error !== null && (_jsx("div", { className: "mt-2", children: _jsx(ErrorPanel, { error: addMember.error }) }))] }));
55
+ }
56
+ //# sourceMappingURL=ListsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListsPanel.js","sourceRoot":"","sources":["../../src/components/ListsPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAkB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAEnD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,UAAU,EACV,QAAQ,GAIT;IACC,MAAM,WAAW,GAAG,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE3C,OAAO,CACL,8BACE,KAAC,aAAa,IACZ,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,GAAG,EAAE;oBACV,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;gBAClC,CAAC,EACD,QAAQ,EAAC,aAAa,GACtB,EAED,MAAM,IAAI,CACT,eAAK,SAAS,EAAC,iBAAiB,aAC9B,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,UAAU,IACT,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACzE,OAAO,EAAE,GAAG,EAAE;gCACZ,SAAS,CAAC,KAAK,CAAC,CAAA;4BAClB,CAAC,GACD,GACE,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;4BACZ,SAAS,CAAC,KAAK,CAAC,CAAA;wBAClB,CAAC,EACD,SAAS,EAAC,yFAAyF,uBAG5F,IACL,CACP,EAEA,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,WAAW,CAAC,KAAK,GAAI,EAEtE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CACvB,KAAC,YAAY,IAAC,KAAK,EAAC,qBAAgB,GAAG,CACxC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACpD,aAAG,SAAS,EAAC,4BAA4B,gDACP,yBAAyB,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,2CAEjF,CACL,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,iDAAiD,YAC5D,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAC3C,KAAC,aAAa,IAAqB,UAAU,EAAE,UAAU,IAArC,UAAU,CAAC,EAAE,CAA4B,CAC9D,CAAC,GACC,CACN,IACO,CACX,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,UAAU,GAGX;IACC,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAA;IAEpC,OAAO,CACL,cAAI,SAAS,EAAC,gDAAgD,aAC5D,eAAK,SAAS,EAAC,mDAAmD,aAChE,KAAC,IAAI,IACH,EAAE,EAAE,UAAU,UAAU,CAAC,MAAM,EAAE,EACjC,SAAS,EAAC,8DAA8D,YAEvE,UAAU,CAAC,QAAQ,GACf,EACP,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,MAAM,CAAC,SAAS,EAC1B,OAAO,EAAE,GAAG,EAAE;4BACZ,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;wBAC9D,CAAC,EACD,SAAS,EAAC,yEAAyE,uBAG5E,IACL,EAEL,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CACxB,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,GAC/B,CACP,IACE,CACN,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,OAAO,GAMR;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1B,0EAA0E;IAC1E,mEAAmE;IACnE,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,UAAU;QACV,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACzC,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAA;IAEpC,MAAM,OAAO,GAA4B,KAAK,CAAC,OAAO;SACnD,MAAM,CAAC,CAAC,GAAS,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,GAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAExD,SAAS,IAAI,CAAC,MAAc;QAC1B,SAAS;aACN,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC;aACrD,IAAI,CAAC,OAAO,CAAC;aACb,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,CACL,0BACE,KAAC,YAAY,IACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAC,EAAE,EACR,QAAQ,EAAE,IAAI,EACd,aAAa,EAAE,SAAS,EACxB,WAAW,EAAC,oBAAe,EAC3B,YAAY,EAAC,mBAAmB,EAChC,IAAI,EAAC,IAAI,GACT,EACD,SAAS,CAAC,KAAK,KAAK,IAAI,IAAI,CAC3B,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,UAAU,IAAC,KAAK,EAAE,SAAS,CAAC,KAAK,GAAI,GAClC,CACP,IACG,CACP,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotesPanel.d.ts","sourceRoot":"","sources":["../../src/components/NotesPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAW7D;;;;;;;;;GASG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuGvF"}
1
+ {"version":3,"file":"NotesPanel.d.ts","sourceRoot":"","sources":["../../src/components/NotesPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAY7D;;;;;;;;;GASG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA8FvF"}
@@ -4,6 +4,7 @@ import { useTimezone } from '../api/resources/account.js';
4
4
  import { useMembers } from '../api/resources/members.js';
5
5
  import { useCreateNote, useNotes } from '../api/resources/notes.js';
6
6
  import { formatDateTime } from '../lib/dates.js';
7
+ import { Paginator } from './Paginator.js';
7
8
  import { ErrorPanel } from './QueryState.js';
8
9
  import { SectionHeader } from './SectionHeader.js';
9
10
  export function NotesPanel({ targetType, targetId }) {
@@ -13,10 +14,10 @@ export function NotesPanel({ targetType, targetId }) {
13
14
  const [adding, setAdding] = useState(false);
14
15
  const [body, setBody] = useState('');
15
16
  // Pinned first, then newest. The list arrives in `-created_at` order and the
16
- // API has no two-column sort, so this reorders what is loaded. Across a
17
- // "Load more" boundary a pinned note on a later page sorts after unpinned
18
- // ones already shown; pinned notes are few enough that this is the cheaper
19
- // wrong than a second request per panel.
17
+ // API has no two-column sort, so this reorders what is on this page. Across
18
+ // page boundaries a pinned note on a later page sorts after unpinned ones on
19
+ // an earlier one; pinned notes are few enough that this is the cheaper wrong
20
+ // than a second request per panel.
20
21
  const ordered = [...notes.records].sort((left, right) => Number(right.pinned) - Number(left.pinned));
21
22
  function reset() {
22
23
  setAdding(false);
@@ -35,7 +36,7 @@ export function NotesPanel({ targetType, targetId }) {
35
36
  setAdding((current) => !current);
36
37
  }, addLabel: "Add note" }), createNote.error !== null && (_jsx("div", { className: "mb-3", children: _jsx(ErrorPanel, { error: createNote.error }) })), notes.error !== null && _jsx(ErrorPanel, { error: notes.error }), adding && (_jsxs("form", { onSubmit: submit, className: "mb-3 space-y-2", children: [_jsx("textarea", { value: body, onChange: (event) => {
37
38
  setBody(event.target.value);
38
- }, placeholder: "Write a note\u2026", rows: 3, autoFocus: true, className: "w-full resize-y rounded-md border border-border bg-surface-raised px-3 py-2 text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20" }), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx("button", { type: "button", onClick: reset, className: "rounded-md px-2.5 py-1 text-[12px] font-medium text-ink-muted hover:text-ink", children: "Cancel" }), _jsx("button", { type: "submit", className: "rounded-md bg-accent px-3 py-1.5 text-[12px] font-semibold text-accent-fg hover:bg-accent-hover", children: "Save note" })] })] })), notes.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading notes\u2026" }), !notes.isLoading && ordered.length === 0 && !adding ? (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No notes yet." })) : (_jsx("ul", { className: "flex flex-col gap-3", children: ordered.map((note) => (_jsx(NoteItem, { note: note, authorName: authorNameFor(note, members.nameById) }, note.id))) })), notes.hasMore && (_jsx("button", { type: "button", onClick: notes.loadMore, disabled: notes.isLoadingMore, className: "mt-3 rounded-md border border-border px-3 py-1.5 text-[12px] font-medium text-ink-muted transition hover:border-border-strong hover:text-ink", children: notes.isLoadingMore ? 'Loading…' : 'Load more' }))] }));
39
+ }, placeholder: "Write a note\u2026", rows: 3, autoFocus: true, className: "w-full resize-y rounded-md border border-border bg-surface-raised px-3 py-2 text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20" }), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx("button", { type: "button", onClick: reset, className: "rounded-md px-2.5 py-1 text-[12px] font-medium text-ink-muted hover:text-ink", children: "Cancel" }), _jsx("button", { type: "submit", className: "rounded-md bg-accent px-3 py-1.5 text-[12px] font-semibold text-accent-fg hover:bg-accent-hover", children: "Save note" })] })] })), notes.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading notes\u2026" }), !notes.isLoading && ordered.length === 0 && !adding ? (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No notes yet." })) : (_jsx("ul", { className: "flex flex-col gap-3", children: ordered.map((note) => (_jsx(NoteItem, { note: note, authorName: authorNameFor(note, members.nameById) }, note.id))) })), _jsx(Paginator, { list: notes })] }));
39
40
  }
40
41
  /**
41
42
  * A null author is a note written by a workspace API key, which belongs to the
@@ -1 +1 @@
1
- {"version":3,"file":"NotesPanel.js","sourceRoot":"","sources":["../../src/components/NotesPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotesPanel.js","sourceRoot":"","sources":["../../src/components/NotesPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Paged } from '../api/resource.ts';
2
+ /**
3
+ * Prev / Next with a page indicator and an optional page size selector.
4
+ *
5
+ * The API is cursor-only (`api.md`), so there is no total count and no jump
6
+ * to page N. `pageIndex` is one-based on screen but zero-based in `Paged` —
7
+ * the label adds one so page 1 does not read as page 0.
8
+ *
9
+ * `Prev` disables when nothing came before, `Next` when the server said the
10
+ * current page was the last one. A cached prior page is instant; going past
11
+ * the fetched set kicks off exactly one fetch, and both buttons hold their
12
+ * disabled state until it settles so a fast double click does not skip two.
13
+ */
14
+ export interface PaginatorProps {
15
+ readonly list: Paged;
16
+ /** Options offered by the page size selector. Omit to hide the selector. */
17
+ readonly pageSizes?: readonly number[];
18
+ /**
19
+ * Where on the list this paginator sits. `top` places it above the rows —
20
+ * the per-page selector then defers to the `bottom` copy so the two do not
21
+ * duplicate the same control side by side.
22
+ */
23
+ readonly placement?: 'top' | 'bottom';
24
+ }
25
+ export declare function Paginator({ list, pageSizes, placement, }: PaginatorProps): React.JSX.Element;
26
+ //# sourceMappingURL=Paginator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Paginator.d.ts","sourceRoot":"","sources":["../../src/components/Paginator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;CACtC;AAOD,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,SAA8B,EAC9B,SAAoB,GACrB,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAyCpC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const DEFAULT_PAGE_SIZES = [25, 50, 100, 200];
3
+ const buttonClass = 'rounded-md border border-border bg-surface-raised px-2.5 py-1 text-[12px] font-medium text-ink transition hover:border-border-strong hover:bg-surface-sunken disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:border-border disabled:hover:bg-surface-raised';
4
+ export function Paginator({ list, pageSizes = DEFAULT_PAGE_SIZES, placement = 'bottom', }) {
5
+ const prevDisabled = !list.hasPrev || list.isChangingPage;
6
+ const nextDisabled = !list.hasNext || list.isChangingPage;
7
+ const options = pageSizes.includes(list.pageSize) ? pageSizes : [...pageSizes, list.pageSize].sort((a, b) => a - b);
8
+ const showPageSize = placement === 'bottom' && pageSizes.length > 0;
9
+ const wrapperClass = placement === 'top'
10
+ ? 'mt-3 mb-3 flex flex-wrap items-center gap-3 text-[12px] text-ink-muted'
11
+ : 'mt-3 flex flex-wrap items-center gap-3 text-[12px] text-ink-muted';
12
+ return (_jsxs("div", { className: wrapperClass, children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx("button", { type: "button", onClick: list.prevPage, disabled: prevDisabled, className: buttonClass, children: "Prev" }), _jsx("button", { type: "button", onClick: list.nextPage, disabled: nextDisabled, className: buttonClass, children: list.isChangingPage ? 'Loading…' : 'Next' })] }), _jsxs("span", { "aria-live": "polite", children: ["Page ", list.pageIndex + 1] }), showPageSize && (_jsxs("label", { className: "ml-auto flex items-center gap-2", children: [_jsx("span", { children: "Per page" }), _jsx("select", { value: list.pageSize, onChange: (event) => {
13
+ list.setPageSize(Number(event.target.value));
14
+ }, className: "rounded-md border border-border bg-surface-raised px-2 py-1 text-[12px] outline-none focus:border-accent", children: options.map((size) => (_jsx("option", { value: size, children: size }, size))) })] }))] }));
15
+ }
16
+ //# sourceMappingURL=Paginator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../src/components/Paginator.tsx"],"names":[],"mappings":";AA2BA,MAAM,kBAAkB,GAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEhE,MAAM,WAAW,GACf,4QAA4Q,CAAA;AAE9Q,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,SAAS,GAAG,kBAAkB,EAC9B,SAAS,GAAG,QAAQ,GACL;IACf,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAA;IACzD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAA;IACzD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACnH,MAAM,YAAY,GAAG,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;IACnE,MAAM,YAAY,GAChB,SAAS,KAAK,KAAK;QACjB,CAAC,CAAC,wEAAwE;QAC1E,CAAC,CAAC,mEAAmE,CAAA;IAEzE,OAAO,CACL,eAAK,SAAS,EAAE,YAAY,aAC1B,eAAK,SAAS,EAAC,yBAAyB,aACtC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,qBAEnF,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,YACzF,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GACnC,IACL,EACN,6BAAgB,QAAQ,sBAAO,IAAI,CAAC,SAAS,GAAG,CAAC,IAAQ,EACxD,YAAY,IAAI,CACf,iBAAO,SAAS,EAAC,iCAAiC,aAChD,sCAAqB,EACrB,iBACE,KAAK,EAAE,IAAI,CAAC,QAAQ,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;wBAC9C,CAAC,EACD,SAAS,EAAC,0GAA0G,YAEnH,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,iBAAmB,KAAK,EAAE,IAAI,YAC3B,IAAI,IADM,IAAI,CAER,CACV,CAAC,GACK,IACH,CACT,IACG,CACP,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanPanel.d.ts","sourceRoot":"","sources":["../../src/components/PlanPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,iBAAiB,CAAA;AAiB7E;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAcD,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqErF"}
1
+ {"version":3,"file":"PlanPanel.d.ts","sourceRoot":"","sources":["../../src/components/PlanPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,iBAAiB,CAAA;AAkB7E;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAcD,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4DrF"}
@@ -6,6 +6,7 @@ import { useCreatePlanItem, useDeletePlanItem, useRecordPlanItems, useUpdatePlan
6
6
  import { formatDay } from '../lib/dates.js';
7
7
  import { planStatusTone } from '../lib/plan.js';
8
8
  import { Chip } from './Chip.js';
9
+ import { Paginator } from './Paginator.js';
9
10
  import { ErrorPanel } from './QueryState.js';
10
11
  import { SectionHeader } from './SectionHeader.js';
11
12
  const EMPTY_FIELDS = { date: '', title: '', ownerId: '', status: 'todo' };
@@ -29,7 +30,7 @@ export function PlanPanel({ targetType, targetId }) {
29
30
  setAdding((current) => !current);
30
31
  }, addLabel: "Add plan item" }), createItem.error !== null && (_jsx("div", { className: "mb-3", children: _jsx(ErrorPanel, { error: createItem.error }) })), items.error !== null && _jsx(ErrorPanel, { error: items.error }), adding && (_jsx(PlanItemForm, { fields: EMPTY_FIELDS, submitLabel: "Add", onSubmit: submit, onCancel: () => {
31
32
  setAdding(false);
32
- } })), items.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading plan\u2026" }), !items.isLoading && items.records.length === 0 && !adding ? (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No plan items yet." })) : (_jsx("ul", { className: "overflow-hidden rounded-md border border-border", children: items.records.map((item) => (_jsx(PlanItemRow, { item: item }, item.id))) })), items.hasMore && (_jsx("button", { type: "button", onClick: items.loadMore, disabled: items.isLoadingMore, className: "mt-3 rounded-md border border-border px-3 py-1.5 text-[12px] font-medium text-ink-muted transition hover:border-border-strong hover:text-ink", children: items.isLoadingMore ? 'Loading…' : 'Load more' }))] }));
33
+ } })), items.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading plan\u2026" }), !items.isLoading && items.records.length === 0 && !adding ? (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No plan items yet." })) : (_jsx("ul", { className: "overflow-hidden rounded-md border border-border", children: items.records.map((item) => (_jsx(PlanItemRow, { item: item }, item.id))) })), _jsx(Paginator, { list: items })] }));
33
34
  }
34
35
  function PlanItemRow({ item }) {
35
36
  const members = useMembers();
@@ -1 +1 @@
1
- {"version":3,"file":"PlanPanel.js","sourceRoot":"","sources":["../../src/components/PlanPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanPanel.js","sourceRoot":"","sources":["../../src/components/PlanPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../src/components/Shell.tsx"],"names":[],"mappings":"AA0EA,wBAAgB,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CA+MzC"}
1
+ {"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../src/components/Shell.tsx"],"names":[],"mappings":"AA2EA,wBAAgB,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CA+MzC"}