@open-mercato/ui 0.9.1-develop.7574.1.837288eec1 → 0.10.1-develop.7576.1.21d5b50435

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 (93) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/ai/parts/MutationResultCard.js +1 -14
  3. package/dist/ai/parts/MutationResultCard.js.map +2 -2
  4. package/dist/backend/CrudForm.js +52 -96
  5. package/dist/backend/CrudForm.js.map +2 -2
  6. package/dist/backend/DataTable.js +14 -40
  7. package/dist/backend/DataTable.js.map +2 -2
  8. package/dist/backend/FlashMessages.js +1 -25
  9. package/dist/backend/FlashMessages.js.map +2 -2
  10. package/dist/backend/columns/ColumnChooserPanel.js +3 -4
  11. package/dist/backend/columns/ColumnChooserPanel.js.map +2 -2
  12. package/dist/backend/confirm-dialog/ConfirmDialog.js +0 -11
  13. package/dist/backend/confirm-dialog/ConfirmDialog.js.map +2 -2
  14. package/dist/backend/detail/InlineEditors.js +6 -17
  15. package/dist/backend/detail/InlineEditors.js.map +2 -2
  16. package/dist/backend/filters/FilterFieldPicker.js +2 -3
  17. package/dist/backend/filters/FilterFieldPicker.js.map +2 -2
  18. package/dist/backend/forms/ActionsDropdown.js +2 -52
  19. package/dist/backend/forms/ActionsDropdown.js.map +2 -2
  20. package/dist/backend/inputs/PhoneNumberField.js +5 -17
  21. package/dist/backend/inputs/PhoneNumberField.js.map +2 -2
  22. package/dist/backend/inputs/TagsInput.js +1 -4
  23. package/dist/backend/inputs/TagsInput.js.map +2 -2
  24. package/dist/backend/inputs/index.js +0 -2
  25. package/dist/backend/inputs/index.js.map +2 -2
  26. package/dist/backend/messages/useMessageCompose.js +10 -29
  27. package/dist/backend/messages/useMessageCompose.js.map +2 -2
  28. package/dist/backend/notifications/NotificationDispatcher.js +0 -5
  29. package/dist/backend/notifications/NotificationDispatcher.js.map +2 -2
  30. package/dist/backend/notifications/useNotificationActions.js +2 -13
  31. package/dist/backend/notifications/useNotificationActions.js.map +2 -2
  32. package/dist/backend/utils/api.js +4 -25
  33. package/dist/backend/utils/api.js.map +2 -2
  34. package/dist/backend/version-history/VersionHistoryPanel.js +2 -18
  35. package/dist/backend/version-history/VersionHistoryPanel.js.map +2 -2
  36. package/dist/theme/QueryProvider.js +1 -7
  37. package/dist/theme/QueryProvider.js.map +2 -2
  38. package/package.json +4 -4
  39. package/src/ai/parts/MutationResultCard.tsx +1 -30
  40. package/src/ai/parts/__tests__/MutationResultCard.test.tsx +0 -48
  41. package/src/backend/CrudForm.tsx +60 -121
  42. package/src/backend/DataTable.tsx +14 -54
  43. package/src/backend/FlashMessages.tsx +1 -34
  44. package/src/backend/__tests__/ActionsDropdown.test.tsx +0 -105
  45. package/src/backend/__tests__/CrudForm.fieldInjection.test.tsx +4 -85
  46. package/src/backend/__tests__/FlashMessages.test.tsx +0 -65
  47. package/src/backend/__tests__/VersionHistoryPanel.test.tsx +1 -81
  48. package/src/backend/columns/ColumnChooserPanel.tsx +3 -4
  49. package/src/backend/confirm-dialog/ConfirmDialog.tsx +0 -16
  50. package/src/backend/confirm-dialog/__tests__/ConfirmDialog.test.tsx +0 -29
  51. package/src/backend/detail/InlineEditors.tsx +6 -28
  52. package/src/backend/detail/__tests__/InlineEditors.test.tsx +6 -121
  53. package/src/backend/filters/FilterFieldPicker.tsx +2 -3
  54. package/src/backend/forms/ActionsDropdown.tsx +2 -71
  55. package/src/backend/inputs/PhoneNumberField.tsx +11 -17
  56. package/src/backend/inputs/TagsInput.tsx +0 -4
  57. package/src/backend/inputs/__tests__/TagsInput.test.tsx +0 -41
  58. package/src/backend/inputs/index.ts +0 -2
  59. package/src/backend/messages/__tests__/useMessageCompose.test.tsx +1 -106
  60. package/src/backend/messages/message-composer.types.ts +0 -2
  61. package/src/backend/messages/useMessageCompose.ts +13 -34
  62. package/src/backend/notifications/NotificationDispatcher.ts +0 -5
  63. package/src/backend/notifications/__tests__/useNotificationActions.test.tsx +1 -86
  64. package/src/backend/notifications/useNotificationActions.ts +4 -19
  65. package/src/backend/utils/__tests__/api.test.ts +0 -67
  66. package/src/backend/utils/api.ts +4 -33
  67. package/src/backend/version-history/VersionHistoryPanel.tsx +2 -24
  68. package/src/theme/QueryProvider.tsx +1 -7
  69. package/dist/backend/crud/injectedFieldGroups.js +0 -50
  70. package/dist/backend/crud/injectedFieldGroups.js.map +0 -7
  71. package/dist/backend/inputs/LookupPickers.js +0 -149
  72. package/dist/backend/inputs/LookupPickers.js.map +0 -7
  73. package/dist/backend/inputs/lookupSources.js +0 -84
  74. package/dist/backend/inputs/lookupSources.js.map +0 -7
  75. package/dist/backend/utils/groupLabels.js +0 -16
  76. package/dist/backend/utils/groupLabels.js.map +0 -7
  77. package/src/backend/__tests__/CrudForm.disabledFields.test.tsx +0 -57
  78. package/src/backend/__tests__/CrudForm.embeddedExtraActions.test.tsx +0 -114
  79. package/src/backend/__tests__/CrudForm.fieldChangeRenders.test.tsx +0 -127
  80. package/src/backend/__tests__/DataTable.injectedColumnPlacement.test.tsx +0 -146
  81. package/src/backend/__tests__/next-dynamic-specifier.test.ts +0 -23
  82. package/src/backend/columns/__tests__/ColumnChooserPanel.groupLabels.test.tsx +0 -72
  83. package/src/backend/crud/__tests__/injectedFieldGroups.test.ts +0 -90
  84. package/src/backend/crud/injectedFieldGroups.ts +0 -75
  85. package/src/backend/filters/__tests__/FilterFieldPicker.groupLabels.test.tsx +0 -77
  86. package/src/backend/inputs/LookupPickers.tsx +0 -181
  87. package/src/backend/inputs/__tests__/LookupPickers.test.tsx +0 -120
  88. package/src/backend/inputs/__tests__/PhoneNumberField.renders.test.tsx +0 -35
  89. package/src/backend/inputs/__tests__/lookupSources.test.ts +0 -87
  90. package/src/backend/inputs/lookupSources.ts +0 -114
  91. package/src/backend/notifications/__tests__/NotificationDispatcher.navigate.test.ts +0 -76
  92. package/src/backend/utils/groupLabels.ts +0 -26
  93. package/src/theme/__tests__/QueryProvider.i18n.test.tsx +0 -40
@@ -52,7 +52,7 @@ import { surfaceRecordConflict } from "./conflicts/index.js";
52
52
  import { ComponentReplacementHandles } from "@open-mercato/shared/modules/widgets/component-registry";
53
53
  import { useRegisteredComponent } from "./injection/useRegisteredComponent.js";
54
54
  import { dataTableExtensionSpotId, extensionSpotChildId } from "@open-mercato/shared/modules/widgets/extension-points";
55
- import { insertByInjectionPlacement, InjectionPosition } from "@open-mercato/shared/modules/widgets/injection-position";
55
+ import { insertByInjectionPlacement } from "@open-mercato/shared/modules/widgets/injection-position";
56
56
  import { useVirtualizer } from "@tanstack/react-virtual";
57
57
  import { getDefaultOperator, isAdvancedFilterState, flatToTree } from "@open-mercato/shared/lib/query/advanced-filter";
58
58
  import {
@@ -111,37 +111,6 @@ function withDataTableNamespaces(mappedRow, sourceItem) {
111
111
  ...namespaced
112
112
  };
113
113
  }
114
- function reconcileColumnOrder(prev, ids, placements = /* @__PURE__ */ new Map()) {
115
- const allowed = new Set(ids);
116
- const result = prev.filter((id) => allowed.has(id));
117
- const known = new Set(result);
118
- ids.forEach((id, index) => {
119
- if (known.has(id)) return;
120
- const placement = placements.get(id);
121
- const anchorIndex = placement?.relativeTo ? result.indexOf(placement.relativeTo) : -1;
122
- if (anchorIndex !== -1 && (placement?.position === InjectionPosition.Before || placement?.position === InjectionPosition.After)) {
123
- result.splice(placement.position === InjectionPosition.Before ? anchorIndex : anchorIndex + 1, 0, id);
124
- known.add(id);
125
- return;
126
- }
127
- const hasKnownSuccessor = ids.slice(index + 1).some((candidate) => known.has(candidate));
128
- if (!hasKnownSuccessor) {
129
- result.push(id);
130
- } else {
131
- let insertAt = 0;
132
- for (let cursor = index - 1; cursor >= 0; cursor -= 1) {
133
- const predecessorIndex = result.indexOf(ids[cursor]);
134
- if (predecessorIndex !== -1) {
135
- insertAt = predecessorIndex + 1;
136
- break;
137
- }
138
- }
139
- result.splice(insertAt, 0, id);
140
- }
141
- known.add(id);
142
- });
143
- return result;
144
- }
145
114
  function resolveDataTableRowId(row, index) {
146
115
  if (row && typeof row === "object") {
147
116
  const candidate = row.id;
@@ -1322,18 +1291,23 @@ function DataTableImpl({
1322
1291
  [baseInjectionContext, hasInjectedBulkActions, rowSelection]
1323
1292
  );
1324
1293
  React.useEffect(() => {
1325
- const ids = table.getAllColumns().flatMap((column) => column.getLeafColumns()).map((column) => column.id);
1294
+ const ids = table.getAllLeafColumns().map((column) => column.id);
1326
1295
  if (!ids.length) return;
1327
- const placements = new Map(
1328
- injectedColumnDefs.map(({ def, placement }) => [def.id ?? "", placement])
1329
- );
1330
1296
  setColumnOrder((prev) => {
1331
1297
  if (!prev.length) return ids;
1332
- const next = reconcileColumnOrder(prev, ids, placements);
1333
- const changed = next.length !== prev.length || next.some((id, index) => id !== prev[index]);
1334
- return changed ? next : prev;
1298
+ const allowed = ids;
1299
+ const filtered = prev.filter((id) => allowed.includes(id));
1300
+ const seen = new Set(filtered);
1301
+ for (const id of allowed) {
1302
+ if (!seen.has(id)) {
1303
+ filtered.push(id);
1304
+ seen.add(id);
1305
+ }
1306
+ }
1307
+ const changed = filtered.length !== prev.length || filtered.some((id, index) => id !== prev[index]);
1308
+ return changed ? filtered : prev;
1335
1309
  });
1336
- }, [table, mergedColumns, injectedColumnDefs]);
1310
+ }, [table, mergedColumns]);
1337
1311
  const visibilityDecidedColumnIds = React.useRef(
1338
1312
  new Set(Object.keys(mergedInitialSettings?.columnVisibility ?? {}))
1339
1313
  );