@open-mercato/ui 0.8.1-develop.7297.1.67605e74f9 → 0.8.1-develop.7442.1.4c1dbf1f0e

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 (84) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/backend/CrudForm.js +19 -6
  3. package/dist/backend/CrudForm.js.map +2 -2
  4. package/dist/backend/DataTable.js +61 -9
  5. package/dist/backend/DataTable.js.map +2 -2
  6. package/dist/backend/RowActions.js +54 -5
  7. package/dist/backend/RowActions.js.map +2 -2
  8. package/dist/backend/charts/KpiCard.js +2 -1
  9. package/dist/backend/charts/KpiCard.js.map +2 -2
  10. package/dist/backend/detail/AttachmentsSection.js +17 -5
  11. package/dist/backend/detail/AttachmentsSection.js.map +2 -2
  12. package/dist/backend/detail/NotesSection.js +38 -20
  13. package/dist/backend/detail/NotesSection.js.map +2 -2
  14. package/dist/backend/dev/DevRuntimeDiagnosticsBanner.js +11 -1
  15. package/dist/backend/dev/DevRuntimeDiagnosticsBanner.js.map +2 -2
  16. package/dist/backend/icons/lucideRegistry.generated.js +26 -0
  17. package/dist/backend/icons/lucideRegistry.generated.js.map +2 -2
  18. package/dist/backend/injection/eventBridge.js +33 -0
  19. package/dist/backend/injection/eventBridge.js.map +2 -2
  20. package/dist/backend/inputs/LookupSelect.js +20 -3
  21. package/dist/backend/inputs/LookupSelect.js.map +2 -2
  22. package/dist/backend/inputs/PhoneNumberField.js +1 -1
  23. package/dist/backend/inputs/PhoneNumberField.js.map +2 -2
  24. package/dist/backend/inputs/TagsInput.js +20 -2
  25. package/dist/backend/inputs/TagsInput.js.map +2 -2
  26. package/dist/backend/messages/EmailThreadsPanel.js +2 -1
  27. package/dist/backend/messages/EmailThreadsPanel.js.map +2 -2
  28. package/dist/backend/messages/MessageComposer.js.map +2 -2
  29. package/dist/backend/messages/index.js.map +2 -2
  30. package/dist/backend/messages/message-compose-form-groups.js +24 -0
  31. package/dist/backend/messages/message-compose-form-groups.js.map +2 -2
  32. package/dist/backend/messages/useMessageCompose.js +27 -0
  33. package/dist/backend/messages/useMessageCompose.js.map +2 -2
  34. package/dist/backend/messages/useMessageComposeOperations.js +1 -0
  35. package/dist/backend/messages/useMessageComposeOperations.js.map +2 -2
  36. package/dist/backend/notifications/NotificationItem.js +8 -1
  37. package/dist/backend/notifications/NotificationItem.js.map +2 -2
  38. package/dist/portal/PortalShell.js +2 -2
  39. package/dist/portal/PortalShell.js.map +2 -2
  40. package/dist/primitives/calendar.js +69 -14
  41. package/dist/primitives/calendar.js.map +2 -2
  42. package/package.json +3 -3
  43. package/src/backend/CrudForm.tsx +30 -8
  44. package/src/backend/DataTable.tsx +92 -19
  45. package/src/backend/RowActions.tsx +114 -6
  46. package/src/backend/__tests__/AttachmentsSection.upload.test.tsx +183 -0
  47. package/src/backend/__tests__/CrudForm.fieldInjection.test.tsx +139 -2
  48. package/src/backend/__tests__/CrudForm.hiddenGroups.test.tsx +1 -1
  49. package/src/backend/__tests__/DataTable.extensions.test.tsx +30 -0
  50. package/src/backend/__tests__/DataTable.perspectiveReconcile.test.tsx +320 -2
  51. package/src/backend/__tests__/DevRuntimeDiagnosticsBanner.test.tsx +117 -0
  52. package/src/backend/__tests__/NotesSection.test.tsx +138 -0
  53. package/src/backend/__tests__/RowActions.test.tsx +202 -0
  54. package/src/backend/charts/KpiCard.tsx +1 -0
  55. package/src/backend/charts/__tests__/KpiCard.test.tsx +20 -0
  56. package/src/backend/detail/AttachmentsSection.tsx +17 -5
  57. package/src/backend/detail/NotesSection.tsx +122 -66
  58. package/src/backend/dev/DevRuntimeDiagnosticsBanner.tsx +24 -1
  59. package/src/backend/icons/lucideRegistry.generated.tsx +26 -0
  60. package/src/backend/injection/__tests__/eventBridge.test.tsx +47 -1
  61. package/src/backend/injection/eventBridge.ts +35 -0
  62. package/src/backend/inputs/LookupSelect.tsx +32 -3
  63. package/src/backend/inputs/PhoneNumberField.tsx +1 -1
  64. package/src/backend/inputs/TagsInput.tsx +24 -3
  65. package/src/backend/inputs/__tests__/LookupSelect.test.tsx +166 -1
  66. package/src/backend/inputs/__tests__/PhoneNumberField.typeahead.test.tsx +43 -0
  67. package/src/backend/inputs/__tests__/TagsInput.test.tsx +81 -0
  68. package/src/backend/messages/EmailThreadsPanel.tsx +21 -1
  69. package/src/backend/messages/MessageComposer.tsx +1 -0
  70. package/src/backend/messages/__tests__/EmailThreadsPanel.senderLabel.test.tsx +99 -0
  71. package/src/backend/messages/__tests__/MessageComposer.test.tsx +44 -0
  72. package/src/backend/messages/__tests__/useMessageCompose.test.tsx +69 -0
  73. package/src/backend/messages/__tests__/useMessageComposeSender.test.tsx +208 -0
  74. package/src/backend/messages/index.ts +1 -0
  75. package/src/backend/messages/message-compose-form-groups.tsx +41 -0
  76. package/src/backend/messages/message-composer.types.ts +26 -0
  77. package/src/backend/messages/useMessageCompose.ts +46 -0
  78. package/src/backend/messages/useMessageComposeOperations.ts +8 -0
  79. package/src/backend/notifications/NotificationItem.tsx +7 -0
  80. package/src/backend/notifications/__tests__/NotificationItem.customRenderer.test.tsx +139 -0
  81. package/src/portal/PortalShell.tsx +7 -4
  82. package/src/portal/__tests__/PortalShell.test.tsx +29 -1
  83. package/src/primitives/__tests__/calendar.test.tsx +174 -1
  84. package/src/primitives/calendar.tsx +168 -96
@@ -1,3 +1,3 @@
1
- Generated lucide registry with 169 icons -> /home/runner/work/open-mercato/open-mercato/packages/ui/src/backend/icons/lucideRegistry.generated.tsx
1
+ Generated lucide registry with 182 icons -> /home/runner/work/open-mercato/open-mercato/packages/ui/src/backend/icons/lucideRegistry.generated.tsx
2
2
  [build:ui] found 452 entry points
3
3
  [build:ui] built successfully
@@ -1422,6 +1422,19 @@ function CrudForm({
1422
1422
  () => new Set(injectedFieldDefinitions.map((definition) => definition.id)),
1423
1423
  [injectedFieldDefinitions]
1424
1424
  );
1425
+ const hostFieldIdSet = React.useMemo(() => {
1426
+ const ids = new Set(fields.map((field) => field.id));
1427
+ for (const group of groups ?? []) {
1428
+ for (const entry of group.fields ?? []) {
1429
+ if (typeof entry !== "string") ids.add(entry.id);
1430
+ }
1431
+ }
1432
+ return ids;
1433
+ }, [fields, groups]);
1434
+ const injectedOnlyFieldIdSet = React.useMemo(
1435
+ () => new Set(Array.from(injectedFieldIdSet).filter((id) => !hostFieldIdSet.has(id))),
1436
+ [injectedFieldIdSet, hostFieldIdSet]
1437
+ );
1425
1438
  const injectedCrudFields = React.useMemo(() => {
1426
1439
  return injectedFieldDefinitions.map((definition) => {
1427
1440
  const injectedFieldRendersOwnLabel = !(definition.type === "custom" && definition.customComponent);
@@ -1472,13 +1485,13 @@ function CrudForm({
1472
1485
  for (const field of allFields) {
1473
1486
  const fieldId = field.id;
1474
1487
  if (!fieldId.includes(".")) continue;
1475
- if (injectedFieldIdSet.has(fieldId)) continue;
1488
+ if (injectedOnlyFieldIdSet.has(fieldId)) continue;
1476
1489
  if (fieldId.startsWith("cf_") || fieldId.startsWith("cf:")) continue;
1477
1490
  if (cfFieldIds.has(fieldId)) continue;
1478
1491
  ids.add(fieldId);
1479
1492
  }
1480
1493
  return ids;
1481
- }, [allFields, injectedFieldIdSet, cfFields]);
1494
+ }, [allFields, injectedOnlyFieldIdSet, cfFields]);
1482
1495
  const validateFieldOnBlur = React.useCallback(async (fieldId, sourceValues) => {
1483
1496
  if (formReadOnly) return;
1484
1497
  const field = fieldById.get(fieldId);
@@ -1528,7 +1541,7 @@ function CrudForm({
1528
1541
  delete widgetValues[hiddenId];
1529
1542
  }
1530
1543
  const coreValues = { ...widgetValues };
1531
- for (const injectedId of injectedFieldIdSet) {
1544
+ for (const injectedId of injectedOnlyFieldIdSet) {
1532
1545
  delete coreValues[injectedId];
1533
1546
  }
1534
1547
  const result = schema.safeParse(collapseDotPathFields(coreValues, dotPathBaseFieldIds));
@@ -1566,7 +1579,7 @@ function CrudForm({
1566
1579
  hiddenBaseFieldIds,
1567
1580
  hiddenGroupFieldIds,
1568
1581
  hiddenInjectedFieldIds,
1569
- injectedFieldIdSet,
1582
+ injectedOnlyFieldIdSet,
1570
1583
  mapDefsForValidation,
1571
1584
  schema,
1572
1585
  t,
@@ -2242,7 +2255,7 @@ function CrudForm({
2242
2255
  delete widgetValues[hiddenId];
2243
2256
  }
2244
2257
  const coreValues = { ...widgetValues };
2245
- for (const injectedId of injectedFieldIdSet) {
2258
+ for (const injectedId of injectedOnlyFieldIdSet) {
2246
2259
  delete coreValues[injectedId];
2247
2260
  }
2248
2261
  if (customEntity) {
@@ -2280,7 +2293,7 @@ function CrudForm({
2280
2293
  if (result.data) {
2281
2294
  submitValues = result.data;
2282
2295
  const projectedCoreValues = { ...result.data };
2283
- for (const injectedId of injectedFieldIdSet) {
2296
+ for (const injectedId of injectedOnlyFieldIdSet) {
2284
2297
  delete projectedCoreValues[injectedId];
2285
2298
  }
2286
2299
  if (customEntity) {