@payloadcms/ui 3.43.0-internal.c5bbc84 → 3.43.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 (157) hide show
  1. package/dist/elements/AddNewRelation/index.js +9 -8
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  4. package/dist/elements/BulkUpload/EditForm/index.js +1 -1
  5. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  6. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/FileSidebar/index.js +1 -0
  8. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/index.js +4 -1
  11. package/dist/elements/BulkUpload/index.js.map +1 -1
  12. package/dist/elements/Button/index.scss +19 -0
  13. package/dist/elements/Button/types.d.ts +1 -1
  14. package/dist/elements/Button/types.d.ts.map +1 -1
  15. package/dist/elements/Button/types.js.map +1 -1
  16. package/dist/elements/ColumnSelector/index.d.ts +0 -1
  17. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  18. package/dist/elements/ColumnSelector/index.js +34 -38
  19. package/dist/elements/ColumnSelector/index.js.map +1 -1
  20. package/dist/elements/Drawer/index.d.ts.map +1 -1
  21. package/dist/elements/Drawer/index.js +51 -67
  22. package/dist/elements/Drawer/index.js.map +1 -1
  23. package/dist/elements/FieldDiffContainer/index.d.ts +15 -0
  24. package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -0
  25. package/dist/elements/FieldDiffContainer/index.js +40 -0
  26. package/dist/elements/FieldDiffContainer/index.js.map +1 -0
  27. package/dist/elements/FieldDiffContainer/index.scss +45 -0
  28. package/dist/elements/FieldDiffLabel/index.scss +6 -1
  29. package/dist/elements/HTMLDiff/colors.scss +35 -0
  30. package/dist/elements/HTMLDiff/diff/index.d.ts +75 -0
  31. package/dist/elements/HTMLDiff/diff/index.d.ts.map +1 -0
  32. package/dist/elements/HTMLDiff/diff/index.js +536 -0
  33. package/dist/elements/HTMLDiff/diff/index.js.map +1 -0
  34. package/dist/elements/HTMLDiff/index.d.ts +11 -0
  35. package/dist/elements/HTMLDiff/index.d.ts.map +1 -0
  36. package/dist/elements/HTMLDiff/index.js +32 -0
  37. package/dist/elements/HTMLDiff/index.js.map +1 -0
  38. package/dist/elements/HTMLDiff/index.scss +170 -0
  39. package/dist/elements/ListControls/index.scss +2 -2
  40. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +1 -0
  41. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  42. package/dist/elements/ListHeader/index.scss +1 -1
  43. package/dist/elements/Nav/context.d.ts.map +1 -1
  44. package/dist/elements/Nav/context.js +4 -1
  45. package/dist/elements/Nav/context.js.map +1 -1
  46. package/dist/elements/Pill/index.d.ts +5 -1
  47. package/dist/elements/Pill/index.d.ts.map +1 -1
  48. package/dist/elements/Pill/index.js.map +1 -1
  49. package/dist/elements/PillSelector/index.d.ts +26 -0
  50. package/dist/elements/PillSelector/index.d.ts.map +1 -0
  51. package/dist/elements/PillSelector/index.js +72 -0
  52. package/dist/elements/PillSelector/index.js.map +1 -0
  53. package/dist/elements/{ColumnSelector → PillSelector}/index.scss +5 -5
  54. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -1
  55. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  56. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  57. package/dist/elements/Popup/PopupTrigger/index.scss +4 -0
  58. package/dist/elements/Popup/index.d.ts +1 -1
  59. package/dist/elements/Popup/index.d.ts.map +1 -1
  60. package/dist/elements/Popup/index.js.map +1 -1
  61. package/dist/elements/Popup/index.scss +11 -0
  62. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +1 -0
  63. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  64. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +1 -0
  65. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  66. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  67. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +1 -0
  68. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  69. package/dist/elements/QueryPresets/fields/WhereField/index.js +1 -0
  70. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  71. package/dist/elements/ReactSelect/ValueContainer/index.d.ts.map +1 -1
  72. package/dist/elements/ReactSelect/ValueContainer/index.js +7 -4
  73. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  74. package/dist/elements/ReactSelect/ValueContainer/index.scss +8 -0
  75. package/dist/elements/ReactSelect/types.d.ts +1 -0
  76. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  77. package/dist/elements/ReactSelect/types.js.map +1 -1
  78. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  79. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  80. package/dist/elements/RelationshipTable/index.js +3 -1
  81. package/dist/elements/RelationshipTable/index.js.map +1 -1
  82. package/dist/elements/SelectMany/index.d.ts.map +1 -1
  83. package/dist/elements/SelectMany/index.js +1 -0
  84. package/dist/elements/SelectMany/index.js.map +1 -1
  85. package/dist/elements/Table/index.js +2 -2
  86. package/dist/elements/Table/index.js.map +1 -1
  87. package/dist/elements/Upload/index.d.ts +1 -0
  88. package/dist/elements/Upload/index.d.ts.map +1 -1
  89. package/dist/elements/Upload/index.js +53 -15
  90. package/dist/elements/Upload/index.js.map +1 -1
  91. package/dist/elements/Upload/index.scss +1 -0
  92. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  93. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +7 -7
  94. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  95. package/dist/exports/client/{DatePicker-JDD2RARJ.js → DatePicker-QBWPYX2E.js} +2 -2
  96. package/dist/exports/client/{chunk-L7Q3DZ67.js → chunk-TIQCV7VX.js} +1 -1
  97. package/dist/exports/client/{chunk-L7Q3DZ67.js.map → chunk-TIQCV7VX.js.map} +2 -2
  98. package/dist/exports/client/index.d.ts +7 -1
  99. package/dist/exports/client/index.d.ts.map +1 -1
  100. package/dist/exports/client/index.js +10 -10
  101. package/dist/exports/client/index.js.map +4 -4
  102. package/dist/exports/rsc/index.d.ts +2 -0
  103. package/dist/exports/rsc/index.d.ts.map +1 -1
  104. package/dist/exports/rsc/index.js +2 -0
  105. package/dist/exports/rsc/index.js.map +1 -1
  106. package/dist/exports/shared/index.js.map +1 -1
  107. package/dist/fields/Checkbox/index.scss +1 -1
  108. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  109. package/dist/fields/FieldLabel/index.js +3 -2
  110. package/dist/fields/FieldLabel/index.js.map +1 -1
  111. package/dist/fields/Join/index.d.ts.map +1 -1
  112. package/dist/fields/Join/index.js +1 -0
  113. package/dist/fields/Join/index.js.map +1 -1
  114. package/dist/fields/Relationship/Input.js +4 -5
  115. package/dist/fields/Relationship/Input.js.map +1 -1
  116. package/dist/providers/Auth/index.d.ts.map +1 -1
  117. package/dist/providers/Auth/index.js +10 -5
  118. package/dist/providers/Auth/index.js.map +1 -1
  119. package/dist/providers/ServerFunctions/index.d.ts +22 -13
  120. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  121. package/dist/providers/ServerFunctions/index.js +1 -1
  122. package/dist/providers/ServerFunctions/index.js.map +1 -1
  123. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  124. package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -2
  125. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  126. package/dist/providers/Translation/index.d.ts.map +1 -1
  127. package/dist/providers/Translation/index.js.map +1 -1
  128. package/dist/providers/UploadControls/index.d.ts +14 -0
  129. package/dist/providers/UploadControls/index.d.ts.map +1 -0
  130. package/dist/providers/UploadControls/index.js +45 -0
  131. package/dist/providers/UploadControls/index.js.map +1 -0
  132. package/dist/styles.css +1 -1
  133. package/dist/utilities/buildFormState.d.ts +2 -2
  134. package/dist/utilities/buildFormState.d.ts.map +1 -1
  135. package/dist/utilities/buildFormState.js.map +1 -1
  136. package/dist/utilities/buildTableState.d.ts +2 -2
  137. package/dist/utilities/buildTableState.d.ts.map +1 -1
  138. package/dist/utilities/buildTableState.js.map +1 -1
  139. package/dist/utilities/copyDataFromLocale.d.ts +2 -2
  140. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  141. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  142. package/dist/utilities/formatDocTitle/formatDateTitle.js +1 -1
  143. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  144. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  145. package/dist/utilities/generateFieldID.js +4 -1
  146. package/dist/utilities/generateFieldID.js.map +1 -1
  147. package/dist/utilities/getFolderResultsComponentAndData.d.ts +2 -2
  148. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
  149. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  150. package/dist/utilities/renderTable.js +1 -0
  151. package/dist/utilities/renderTable.js.map +1 -1
  152. package/dist/views/Edit/index.d.ts +1 -1
  153. package/dist/views/Edit/index.d.ts.map +1 -1
  154. package/dist/views/Edit/index.js +11 -6
  155. package/dist/views/Edit/index.js.map +1 -1
  156. package/package.json +4 -4
  157. /package/dist/exports/client/{DatePicker-JDD2RARJ.js.map → DatePicker-QBWPYX2E.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldIsHiddenOrDisabled","fieldIsID","React","useId","useMemo","FieldLabel","PlusIcon","XIcon","useEditDepth","useTableColumns","DraggableSortable","Pill","baseClass","ColumnSelector","collectionSlug","columns","moveColumn","toggleColumn","uuid","editDepth","filteredColumns","filter","col","field","admin","disableListColumn","_jsx","className","ids","map","accessor","onDragEnd","moveFromIndex","moveToIndex","fromIndex","toIndex","i","active","label","labelWithPrefix","undefined","name","alignIcon","Boolean","join","draggable","icon","id","onClick","size","CustomLabel","unstyled"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport { fieldIsHiddenOrDisabled, fieldIsID } from 'payload/shared'\nimport React, { useId, useMemo } from 'react'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTableColumns } from '../../providers/TableColumns/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n const filteredColumns = useMemo(\n () =>\n columns.filter(\n (col) =>\n !(fieldIsHiddenOrDisabled(col.field) && !fieldIsID(col.field)) &&\n !col?.field?.admin?.disableListColumn,\n ),\n [columns],\n )\n\n if (!columns) {\n return null\n }\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={filteredColumns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n void moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {filteredColumns.map((col, i) => {\n const { accessor, active, field } = col\n\n const label =\n 'labelWithPrefix' in field && field.labelWithPrefix !== undefined\n ? field.labelWithPrefix\n : 'label' in field && field.label !== undefined\n ? field.label\n : 'name' in field && field.name !== undefined\n ? field.name\n : undefined\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <XIcon /> : <PlusIcon />}\n id={accessor}\n key={`${collectionSlug}-${accessor}-${i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n void toggleColumn(accessor)\n }}\n size=\"small\"\n >\n {col.CustomLabel ?? <FieldLabel label={label as StaticLabel} unstyled />}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,uBAAuB,EAAEC,SAAS,QAAQ;AACnD,OAAOC,KAAA,IAASC,KAAK,EAAEC,OAAO,QAAQ;AAEtC,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,KAAK,QAAQ;AACtB,SAASC,YAAY,QAAQ;AAC7B,SAASC,eAAe,QAAQ;AAChC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,IAAI,QAAQ;AACrB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAMlB,OAAO,MAAMC,cAAA,GAAkCA,CAAC;EAAEC;AAAc,CAAE;EAChE,MAAM;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAY,CAAE,GAAGR,eAAA;EAE9C,MAAMS,IAAA,GAAOf,KAAA;EACb,MAAMgB,SAAA,GAAYX,YAAA;EAElB,MAAMY,eAAA,GAAkBhB,OAAA,CACtB,MACEW,OAAA,CAAQM,MAAM,CACXC,GAAA,IACC,EAAEtB,uBAAA,CAAwBsB,GAAA,CAAIC,KAAK,KAAK,CAACtB,SAAA,CAAUqB,GAAA,CAAIC,KAAK,MAC5D,CAACD,GAAA,EAAKC,KAAA,EAAOC,KAAA,EAAOC,iBAAA,GAE1B,CAACV,OAAA,CAAQ;EAGX,IAAI,CAACA,OAAA,EAAS;IACZ,OAAO;EACT;EAEA,oBACEW,IAAA,CAAChB,iBAAA;IACCiB,SAAA,EAAWf,SAAA;IACXgB,GAAA,EAAKR,eAAA,CAAgBS,GAAG,CAAEP,KAAA,IAAQA,KAAA,EAAKQ,QAAA;IACvCC,SAAA,EAAWA,CAAC;MAAEC,aAAa;MAAEC;IAAW,CAAE;MACxC,KAAKjB,UAAA,CAAW;QACdkB,SAAA,EAAWF,aAAA;QACXG,OAAA,EAASF;MACX;IACF;cAECb,eAAA,CAAgBS,GAAG,CAAC,CAACP,KAAA,EAAKc,CAAA;MACzB,MAAM;QAAEN,QAAQ;QAAEO,MAAM;QAAEd;MAAK,CAAE,GAAGD,KAAA;MAEpC,MAAMgB,KAAA,GACJ,qBAAqBf,KAAA,IAASA,KAAA,CAAMgB,eAAe,KAAKC,SAAA,GACpDjB,KAAA,CAAMgB,eAAe,GACrB,WAAWhB,KAAA,IAASA,KAAA,CAAMe,KAAK,KAAKE,SAAA,GAClCjB,KAAA,CAAMe,KAAK,GACX,UAAUf,KAAA,IAASA,KAAA,CAAMkB,IAAI,KAAKD,SAAA,GAChCjB,KAAA,CAAMkB,IAAI,GACVD,SAAA;MAEV,oBACEd,IAAA,CAACf,IAAA;QACC+B,SAAA,EAAU;QACV,gBAAcL,MAAA;QACdV,SAAA,EAAW,CAAC,GAAGf,SAAA,UAAmB,EAAEyB,MAAA,IAAU,GAAGzB,SAAA,kBAA2B,CAAC,CAC1ES,MAAM,CAACsB,OAAA,EACPC,IAAI,CAAC;QACRC,SAAS;QACTC,IAAA,EAAMT,MAAA,gBAASX,IAAA,CAACnB,KAAA,qBAAWmB,IAAA,CAACpB,QAAA;QAC5ByC,EAAA,EAAIjB,QAAA;QAEJkB,OAAA,EAASA,CAAA;UACP,KAAK/B,YAAA,CAAaa,QAAA;QACpB;QACAmB,IAAA,EAAK;kBAEJ3B,KAAA,CAAI4B,WAAW,iBAAIxB,IAAA,CAACrB,UAAA;UAAWiC,KAAA,EAAOA,KAAA;UAAsBa,QAAQ;;SANhE,GAAGrC,cAAA,IAAkBgB,QAAA,IAAYM,CAAA,GAAIjB,SAAA,GAAY,IAAIA,SAAA,GAAY,GAAG,KAAKD,IAAA,EAAM;IAS1F;;AAGN","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldIsHiddenOrDisabled","fieldIsID","React","useId","useMemo","FieldLabel","useEditDepth","useTableColumns","PillSelector","ColumnSelector","collectionSlug","columns","moveColumn","toggleColumn","uuid","editDepth","filteredColumns","filter","col","field","admin","disableListColumn","pills","map","i","accessor","active","label","labelWithPrefix","undefined","name","key","Label","_jsx","unstyled","selected","draggable","onDragEnd","moveFromIndex","moveToIndex","fromIndex","toIndex","onClick","pill"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport { fieldIsHiddenOrDisabled, fieldIsID } from 'payload/shared'\nimport React, { useId, useMemo } from 'react'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTableColumns } from '../../providers/TableColumns/index.js'\nimport { PillSelector, type SelectablePill } from '../PillSelector/index.js'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n const filteredColumns = useMemo(\n () =>\n columns.filter(\n (col) =>\n !(fieldIsHiddenOrDisabled(col.field) && !fieldIsID(col.field)) &&\n !col?.field?.admin?.disableListColumn,\n ),\n [columns],\n )\n\n const pills: SelectablePill[] = useMemo(() => {\n return filteredColumns\n ? filteredColumns.map((col, i) => {\n const { accessor, active, field } = col\n\n const label =\n 'labelWithPrefix' in field && field.labelWithPrefix !== undefined\n ? field.labelWithPrefix\n : 'label' in field && field.label !== undefined\n ? field.label\n : 'name' in field && field.name !== undefined\n ? field.name\n : undefined\n\n return {\n name: accessor,\n key: `${collectionSlug}-${accessor}-${i}${editDepth ? `-${editDepth}-` : ''}${uuid}`,\n Label: <FieldLabel label={label as StaticLabel} unstyled />,\n selected: active,\n } as SelectablePill\n })\n : null\n }, [collectionSlug, editDepth, filteredColumns, uuid])\n\n if (!pills) {\n return null\n }\n\n return (\n <PillSelector\n draggable={{\n onDragEnd: ({ moveFromIndex, moveToIndex }) => {\n void moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n },\n }}\n onClick={({ pill }) => {\n void toggleColumn(pill.name)\n }}\n pills={pills}\n />\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,uBAAuB,EAAEC,SAAS,QAAQ;AACnD,OAAOC,KAAA,IAASC,KAAK,EAAEC,OAAO,QAAQ;AAEtC,SAASC,UAAU,QAAQ;AAC3B,SAASC,YAAY,QAAQ;AAC7B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAA6B;AAMlD,OAAO,MAAMC,cAAA,GAAkCA,CAAC;EAAEC;AAAc,CAAE;EAChE,MAAM;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAY,CAAE,GAAGN,eAAA;EAE9C,MAAMO,IAAA,GAAOX,KAAA;EACb,MAAMY,SAAA,GAAYT,YAAA;EAElB,MAAMU,eAAA,GAAkBZ,OAAA,CACtB,MACEO,OAAA,CAAQM,MAAM,CACXC,GAAA,IACC,EAAElB,uBAAA,CAAwBkB,GAAA,CAAIC,KAAK,KAAK,CAAClB,SAAA,CAAUiB,GAAA,CAAIC,KAAK,MAC5D,CAACD,GAAA,EAAKC,KAAA,EAAOC,KAAA,EAAOC,iBAAA,GAE1B,CAACV,OAAA,CAAQ;EAGX,MAAMW,KAAA,GAA0BlB,OAAA,CAAQ;IACtC,OAAOY,eAAA,GACHA,eAAA,CAAgBO,GAAG,CAAC,CAACL,KAAA,EAAKM,CAAA;MACxB,MAAM;QAAEC,QAAQ;QAAEC,MAAM;QAAEP;MAAK,CAAE,GAAGD,KAAA;MAEpC,MAAMS,KAAA,GACJ,qBAAqBR,KAAA,IAASA,KAAA,CAAMS,eAAe,KAAKC,SAAA,GACpDV,KAAA,CAAMS,eAAe,GACrB,WAAWT,KAAA,IAASA,KAAA,CAAMQ,KAAK,KAAKE,SAAA,GAClCV,KAAA,CAAMQ,KAAK,GACX,UAAUR,KAAA,IAASA,KAAA,CAAMW,IAAI,KAAKD,SAAA,GAChCV,KAAA,CAAMW,IAAI,GACVD,SAAA;MAEV,OAAO;QACLC,IAAA,EAAML,QAAA;QACNM,GAAA,EAAK,GAAGrB,cAAA,IAAkBe,QAAA,IAAYD,CAAA,GAAIT,SAAA,GAAY,IAAIA,SAAA,GAAY,GAAG,KAAKD,IAAA,EAAM;QACpFkB,KAAA,eAAOC,IAAA,CAAC5B,UAAA;UAAWsB,KAAA,EAAOA,KAAA;UAAsBO,QAAQ;;QACxDC,QAAA,EAAUT;MACZ;IACF,KACA;EACN,GAAG,CAAChB,cAAA,EAAgBK,SAAA,EAAWC,eAAA,EAAiBF,IAAA,CAAK;EAErD,IAAI,CAACQ,KAAA,EAAO;IACV,OAAO;EACT;EAEA,oBACEW,IAAA,CAACzB,YAAA;IACC4B,SAAA,EAAW;MACTC,SAAA,EAAWA,CAAC;QAAEC,aAAa;QAAEC;MAAW,CAAE;QACxC,KAAK3B,UAAA,CAAW;UACd4B,SAAA,EAAWF,aAAA;UACXG,OAAA,EAASF;QACX;MACF;IACF;IACAG,OAAA,EAASA,CAAC;MAAEC;IAAI,CAAE;MAChB,KAAK9B,YAAA,CAAa8B,IAAA,CAAKb,IAAI;IAC7B;IACAR,KAAA,EAAOA;;AAGb","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Drawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAEnF,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAKrD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,MAAM,CAAA;AAE9B,eAAO,MAAM,gBAAgB,oBAAqB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAG,MACzD,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAyBhD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuFlC,CAAA;AAED,eAAO,MAAM,kBAAkB,uBAAmB,CAAA;AAElD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAKvE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,MAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Drawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqE,MAAM,OAAO,CAAA;AAEzF,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAKrD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,MAAM,CAAA;AAE9B,eAAO,MAAM,gBAAgB,oBAAqB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAG,MACzD,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAyBhD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoFlC,CAAA;AAED,eAAO,MAAM,kBAAkB,uBAAmB,CAAA;AAElD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAKvE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,MAAiC,CAAA"}
@@ -3,7 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { Modal, useModal } from '@faceless-ui/modal';
6
- import React, { createContext, use, useCallback, useEffect, useState } from 'react';
6
+ import React, { createContext, use, useCallback, useLayoutEffect, useState } from 'react';
7
7
  import { XIcon } from '../../icons/X/index.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
9
  import { Gutter } from '../Gutter/index.js';
@@ -88,7 +88,7 @@ export const DrawerToggler = t0 => {
88
88
  return t2;
89
89
  };
90
90
  export const Drawer = t0 => {
91
- const $ = _c(26);
91
+ const $ = _c(22);
92
92
  const {
93
93
  slug,
94
94
  children,
@@ -107,71 +107,55 @@ export const Drawer = t0 => {
107
107
  modalState
108
108
  } = useModal();
109
109
  const drawerDepth = useDrawerDepth();
110
- const [isOpen, setIsOpen] = useState(false);
111
- const [animateIn, setAnimateIn] = useState(false);
110
+ const isOpen = !!modalState[slug]?.isOpen;
111
+ const [animateIn, setAnimateIn] = useState(isOpen);
112
112
  let t2;
113
113
  let t3;
114
- if ($[0] !== modalState || $[1] !== slug) {
114
+ if ($[0] !== isOpen) {
115
115
  t2 = () => {
116
- setIsOpen(modalState[slug]?.isOpen);
117
- };
118
- t3 = [slug, modalState];
119
- $[0] = modalState;
120
- $[1] = slug;
121
- $[2] = t2;
122
- $[3] = t3;
123
- } else {
124
- t2 = $[2];
125
- t3 = $[3];
126
- }
127
- useEffect(t2, t3);
128
- let t4;
129
- let t5;
130
- if ($[4] !== isOpen) {
131
- t4 = () => {
132
116
  setAnimateIn(isOpen);
133
117
  };
134
- t5 = [isOpen];
135
- $[4] = isOpen;
136
- $[5] = t4;
137
- $[6] = t5;
118
+ t3 = [isOpen];
119
+ $[0] = isOpen;
120
+ $[1] = t2;
121
+ $[2] = t3;
138
122
  } else {
139
- t4 = $[5];
140
- t5 = $[6];
123
+ t2 = $[1];
124
+ t3 = $[2];
141
125
  }
142
- useEffect(t4, t5);
126
+ useLayoutEffect(t2, t3);
143
127
  if (isOpen) {
144
- const t6 = animateIn && `${baseClass}--is-open`;
145
- const t7 = drawerDepth > 1 && `${baseClass}--nested`;
146
- let t8;
147
- if ($[7] !== className || $[8] !== t6 || $[9] !== t7) {
148
- t8 = [className, baseClass, t6, t7].filter(Boolean);
149
- $[7] = className;
150
- $[8] = t6;
151
- $[9] = t7;
152
- $[10] = t8;
128
+ const t4 = animateIn && `${baseClass}--is-open`;
129
+ const t5 = drawerDepth > 1 && `${baseClass}--nested`;
130
+ let t6;
131
+ if ($[3] !== className || $[4] !== t4 || $[5] !== t5) {
132
+ t6 = [className, baseClass, t4, t5].filter(Boolean);
133
+ $[3] = className;
134
+ $[4] = t4;
135
+ $[5] = t5;
136
+ $[6] = t6;
153
137
  } else {
154
- t8 = $[10];
138
+ t6 = $[6];
155
139
  }
156
- const t9 = t8.join(" ");
157
- const t10 = drawerZBase + drawerDepth;
158
- let t11;
159
- if ($[11] !== Header || $[12] !== children || $[13] !== closeModal || $[14] !== drawerDepth || $[15] !== gutter || $[16] !== hoverTitle || $[17] !== slug || $[18] !== t || $[19] !== t10 || $[20] !== t9 || $[21] !== title) {
160
- let t12;
161
- if ($[23] !== closeModal || $[24] !== slug) {
162
- t12 = () => closeModal(slug);
163
- $[23] = closeModal;
164
- $[24] = slug;
165
- $[25] = t12;
140
+ const t7 = t6.join(" ");
141
+ const t8 = drawerZBase + drawerDepth;
142
+ let t9;
143
+ if ($[7] !== Header || $[8] !== children || $[9] !== closeModal || $[10] !== drawerDepth || $[11] !== gutter || $[12] !== hoverTitle || $[13] !== slug || $[14] !== t || $[15] !== t7 || $[16] !== t8 || $[17] !== title) {
144
+ let t10;
145
+ if ($[19] !== closeModal || $[20] !== slug) {
146
+ t10 = () => closeModal(slug);
147
+ $[19] = closeModal;
148
+ $[20] = slug;
149
+ $[21] = t10;
166
150
  } else {
167
- t12 = $[25];
151
+ t10 = $[21];
168
152
  }
169
- t11 = _jsx(DrawerDepthProvider, {
153
+ t9 = _jsx(DrawerDepthProvider, {
170
154
  children: _jsxs(Modal, {
171
- className: t9,
155
+ className: t7,
172
156
  slug,
173
157
  style: {
174
- zIndex: t10
158
+ zIndex: t8
175
159
  },
176
160
  children: [(!drawerDepth || drawerDepth === 1) && _jsx("div", {
177
161
  className: `${baseClass}__blur-bg`
@@ -179,7 +163,7 @@ export const Drawer = t0 => {
179
163
  "aria-label": t("general:close"),
180
164
  className: `${baseClass}__close`,
181
165
  id: `close-drawer__${slug}`,
182
- onClick: t12,
166
+ onClick: t10,
183
167
  type: "button"
184
168
  }), _jsxs("div", {
185
169
  className: `${baseClass}__content`,
@@ -211,22 +195,22 @@ export const Drawer = t0 => {
211
195
  })]
212
196
  })
213
197
  });
214
- $[11] = Header;
215
- $[12] = children;
216
- $[13] = closeModal;
217
- $[14] = drawerDepth;
218
- $[15] = gutter;
219
- $[16] = hoverTitle;
220
- $[17] = slug;
221
- $[18] = t;
222
- $[19] = t10;
223
- $[20] = t9;
224
- $[21] = title;
225
- $[22] = t11;
198
+ $[7] = Header;
199
+ $[8] = children;
200
+ $[9] = closeModal;
201
+ $[10] = drawerDepth;
202
+ $[11] = gutter;
203
+ $[12] = hoverTitle;
204
+ $[13] = slug;
205
+ $[14] = t;
206
+ $[15] = t7;
207
+ $[16] = t8;
208
+ $[17] = title;
209
+ $[18] = t9;
226
210
  } else {
227
- t11 = $[22];
211
+ t9 = $[18];
228
212
  }
229
- return t11;
213
+ return t9;
230
214
  }
231
215
  return null;
232
216
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","createContext","use","useCallback","useEffect","useState","XIcon","useTranslation","Gutter","baseClass","drawerZBase","formatDrawerSlug","slug","depth","useDrawerSlug","DrawerToggler","t0","$","children","className","disabled","onClick","rest","openModal","t1","e","handleClick","t2","_jsx","type","Drawer","gutter","Header","hoverTitle","title","undefined","t","closeModal","modalState","drawerDepth","useDrawerDepth","isOpen","setIsOpen","animateIn","setAnimateIn","t3","t4","t5","t6","t7","t8","filter","Boolean","t9","join","t10","t11","t12","DrawerDepthProvider","_jsxs","style","zIndex","id","width","left","right","DrawerDepthContext","parentDepth","value"],"sources":["../../../src/elements/Drawer/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { createContext, use, useCallback, useEffect, useState } from 'react'\n\nimport type { Props, TogglerProps } from './types.js'\n\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawer'\n\nexport const drawerZBase = 100\n\nexport const formatDrawerSlug = ({ slug, depth }: { depth: number; slug: string }): string =>\n `drawer_${depth}_${slug}`\n\nexport { useDrawerSlug } from './useDrawerSlug.js'\n\nexport const DrawerToggler: React.FC<TogglerProps> = ({\n slug,\n children,\n className,\n disabled,\n onClick,\n ...rest\n}) => {\n const { openModal } = useModal()\n\n const handleClick = useCallback(\n (e) => {\n openModal(slug)\n if (typeof onClick === 'function') {\n onClick(e)\n }\n },\n [openModal, slug, onClick],\n )\n\n return (\n <button className={className} disabled={disabled} onClick={handleClick} type=\"button\" {...rest}>\n {children}\n </button>\n )\n}\n\nexport const Drawer: React.FC<Props> = ({\n slug,\n children,\n className,\n gutter = true,\n Header,\n hoverTitle,\n title,\n}) => {\n const { t } = useTranslation()\n const { closeModal, modalState } = useModal()\n const drawerDepth = useDrawerDepth()\n\n const [isOpen, setIsOpen] = useState(false)\n const [animateIn, setAnimateIn] = useState(false)\n\n useEffect(() => {\n setIsOpen(modalState[slug]?.isOpen)\n }, [slug, modalState])\n\n useEffect(() => {\n setAnimateIn(isOpen)\n }, [isOpen])\n\n if (isOpen) {\n // IMPORTANT: do not render the drawer until it is explicitly open, this is to avoid large html trees especially when nesting drawers\n return (\n <DrawerDepthProvider>\n <Modal\n className={[\n className,\n baseClass,\n animateIn && `${baseClass}--is-open`,\n drawerDepth > 1 && `${baseClass}--nested`,\n ]\n .filter(Boolean)\n .join(' ')}\n slug={slug}\n style={{\n zIndex: drawerZBase + drawerDepth,\n }}\n >\n {(!drawerDepth || drawerDepth === 1) && <div className={`${baseClass}__blur-bg`} />}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n />\n <div\n className={`${baseClass}__content`}\n style={{\n width: `calc(100% - (${drawerDepth} * var(--gutter-h)))`,\n }}\n >\n <div className={`${baseClass}__blur-bg-content`} />\n <Gutter className={`${baseClass}__content-children`} left={gutter} right={gutter}>\n {Header}\n {Header === undefined && (\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`} title={hoverTitle ? title : null}>\n {title}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )}\n {children}\n </Gutter>\n </div>\n </Modal>\n </DrawerDepthProvider>\n )\n }\n\n return null\n}\n\nexport const DrawerDepthContext = createContext(1)\n\nexport const DrawerDepthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const parentDepth = useDrawerDepth()\n const depth = parentDepth + 1\n\n return <DrawerDepthContext value={depth}>{children}</DrawerDepthContext>\n}\n\nexport const useDrawerDepth = (): number => use(DrawerDepthContext)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","createContext","use","useCallback","useLayoutEffect","useState","XIcon","useTranslation","Gutter","baseClass","drawerZBase","formatDrawerSlug","slug","depth","useDrawerSlug","DrawerToggler","t0","$","children","className","disabled","onClick","rest","openModal","t1","e","handleClick","t2","_jsx","type","Drawer","gutter","Header","hoverTitle","title","undefined","t","closeModal","modalState","drawerDepth","useDrawerDepth","isOpen","animateIn","setAnimateIn","t3","t4","t5","t6","filter","Boolean","t7","join","t8","t9","t10","DrawerDepthProvider","_jsxs","style","zIndex","id","width","left","right","DrawerDepthContext","parentDepth","value"],"sources":["../../../src/elements/Drawer/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { createContext, use, useCallback, useLayoutEffect, useState } from 'react'\n\nimport type { Props, TogglerProps } from './types.js'\n\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawer'\n\nexport const drawerZBase = 100\n\nexport const formatDrawerSlug = ({ slug, depth }: { depth: number; slug: string }): string =>\n `drawer_${depth}_${slug}`\n\nexport { useDrawerSlug } from './useDrawerSlug.js'\n\nexport const DrawerToggler: React.FC<TogglerProps> = ({\n slug,\n children,\n className,\n disabled,\n onClick,\n ...rest\n}) => {\n const { openModal } = useModal()\n\n const handleClick = useCallback(\n (e) => {\n openModal(slug)\n if (typeof onClick === 'function') {\n onClick(e)\n }\n },\n [openModal, slug, onClick],\n )\n\n return (\n <button className={className} disabled={disabled} onClick={handleClick} type=\"button\" {...rest}>\n {children}\n </button>\n )\n}\n\nexport const Drawer: React.FC<Props> = ({\n slug,\n children,\n className,\n gutter = true,\n Header,\n hoverTitle,\n title,\n}) => {\n const { t } = useTranslation()\n const { closeModal, modalState } = useModal()\n const drawerDepth = useDrawerDepth()\n\n const isOpen = !!modalState[slug]?.isOpen\n\n const [animateIn, setAnimateIn] = useState(isOpen)\n\n useLayoutEffect(() => {\n setAnimateIn(isOpen)\n }, [isOpen])\n\n if (isOpen) {\n // IMPORTANT: do not render the drawer until it is explicitly open, this is to avoid large html trees especially when nesting drawers\n return (\n <DrawerDepthProvider>\n <Modal\n className={[\n className,\n baseClass,\n animateIn && `${baseClass}--is-open`,\n drawerDepth > 1 && `${baseClass}--nested`,\n ]\n .filter(Boolean)\n .join(' ')}\n slug={slug}\n style={{\n zIndex: drawerZBase + drawerDepth,\n }}\n >\n {(!drawerDepth || drawerDepth === 1) && <div className={`${baseClass}__blur-bg`} />}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n />\n <div\n className={`${baseClass}__content`}\n style={{\n width: `calc(100% - (${drawerDepth} * var(--gutter-h)))`,\n }}\n >\n <div className={`${baseClass}__blur-bg-content`} />\n <Gutter className={`${baseClass}__content-children`} left={gutter} right={gutter}>\n {Header}\n {Header === undefined && (\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`} title={hoverTitle ? title : null}>\n {title}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )}\n {children}\n </Gutter>\n </div>\n </Modal>\n </DrawerDepthProvider>\n )\n }\n\n return null\n}\n\nexport const DrawerDepthContext = createContext(1)\n\nexport const DrawerDepthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const parentDepth = useDrawerDepth()\n const depth = parentDepth + 1\n\n return <DrawerDepthContext value={depth}>{children}</DrawerDepthContext>\n}\n\nexport const useDrawerDepth = (): number => use(DrawerDepthContext)\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import type { LabelFunction, StaticLabel } from 'payload';
2
+ import './index.scss';
3
+ import { type I18nClient } from '@payloadcms/translations';
4
+ export declare const FieldDiffContainer: React.FC<{
5
+ className?: string;
6
+ From: React.ReactNode;
7
+ i18n: I18nClient;
8
+ label: {
9
+ label?: false | LabelFunction | StaticLabel;
10
+ locale?: string;
11
+ };
12
+ nestingLevel?: number;
13
+ To: React.ReactNode;
14
+ }>;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FieldDiffContainer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEzD,OAAO,cAAc,CAAA;AAErB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAM1E,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,WAAW,CAAA;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,EAAE,EAAE,KAAK,CAAC,SAAS,CAAA;CACpB,CA2CA,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import './index.scss';
3
+ import { getTranslation } from '@payloadcms/translations';
4
+ import { FieldDiffLabel } from '../FieldDiffLabel/index.js';
5
+ const baseClass = 'field-diff';
6
+ export const FieldDiffContainer = args => {
7
+ const {
8
+ className,
9
+ From,
10
+ i18n,
11
+ label: {
12
+ label,
13
+ locale
14
+ },
15
+ nestingLevel = 0,
16
+ To
17
+ } = args;
18
+ return /*#__PURE__*/_jsxs("div", {
19
+ className: `${baseClass}-container${className ? ` ${className}` : ''} nested-level-${nestingLevel}`,
20
+ style: nestingLevel ? {
21
+ // Need to use % instead of fr, as calc() doesn't work with fr when this is used in gridTemplateColumns
22
+ '--left-offset': `calc(50% - (${nestingLevel} * calc( calc(var(--base)* 0.5) - 2.5px )))`
23
+ } : {
24
+ '--left-offset': '50%'
25
+ },
26
+ children: [/*#__PURE__*/_jsxs(FieldDiffLabel, {
27
+ children: [locale && /*#__PURE__*/_jsx("span", {
28
+ className: `${baseClass}__locale-label`,
29
+ children: locale
30
+ }), typeof label !== 'function' && getTranslation(label || '', i18n)]
31
+ }), /*#__PURE__*/_jsxs("div", {
32
+ className: `${baseClass}-content`,
33
+ style: nestingLevel ? {
34
+ gridTemplateColumns: `calc(var(--left-offset) - calc(var(--base)*0.5) ) calc(50% - calc(var(--base)*0.5) + calc(50% - var(--left-offset)))`
35
+ } : undefined,
36
+ children: [From, To]
37
+ })]
38
+ });
39
+ };
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["getTranslation","FieldDiffLabel","baseClass","FieldDiffContainer","args","className","From","i18n","label","locale","nestingLevel","To","_jsxs","style","_jsx","gridTemplateColumns","undefined"],"sources":["../../../src/elements/FieldDiffContainer/index.tsx"],"sourcesContent":["import type { LabelFunction, StaticLabel } from 'payload'\n\nimport './index.scss'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\n\nimport { FieldDiffLabel } from '../FieldDiffLabel/index.js'\n\nconst baseClass = 'field-diff'\n\nexport const FieldDiffContainer: React.FC<{\n className?: string\n From: React.ReactNode\n i18n: I18nClient\n label: {\n label?: false | LabelFunction | StaticLabel\n locale?: string\n }\n nestingLevel?: number\n To: React.ReactNode\n}> = (args) => {\n const {\n className,\n From,\n i18n,\n label: { label, locale },\n nestingLevel = 0,\n To,\n } = args\n\n return (\n <div\n className={`${baseClass}-container${className ? ` ${className}` : ''} nested-level-${nestingLevel}`}\n style={\n nestingLevel\n ? ({\n // Need to use % instead of fr, as calc() doesn't work with fr when this is used in gridTemplateColumns\n '--left-offset': `calc(50% - (${nestingLevel} * calc( calc(var(--base)* 0.5) - 2.5px )))`,\n } as React.CSSProperties)\n : ({\n '--left-offset': '50%',\n } as React.CSSProperties)\n }\n >\n <FieldDiffLabel>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {typeof label !== 'function' && getTranslation(label || '', i18n)}\n </FieldDiffLabel>\n <div\n className={`${baseClass}-content`}\n style={\n nestingLevel\n ? {\n gridTemplateColumns: `calc(var(--left-offset) - calc(var(--base)*0.5) ) calc(50% - calc(var(--base)*0.5) + calc(50% - var(--left-offset)))`,\n }\n : undefined\n }\n >\n {From}\n {To}\n </div>\n </div>\n )\n}\n"],"mappings":";AAEA,OAAO;AAEP,SAASA,cAAc,QAAyB;AAEhD,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,kBAAA,GAUPC,IAAA;EACJ,MAAM;IACJC,SAAS;IACTC,IAAI;IACJC,IAAI;IACJC,KAAA,EAAO;MAAEA,KAAK;MAAEC;IAAM,CAAE;IACxBC,YAAA,GAAe,CAAC;IAChBC;EAAE,CACH,GAAGP,IAAA;EAEJ,oBACEQ,KAAA,CAAC;IACCP,SAAA,EAAW,GAAGH,SAAA,aAAsBG,SAAA,GAAY,IAAIA,SAAA,EAAW,GAAG,mBAAmBK,YAAA,EAAc;IACnGG,KAAA,EACEH,YAAA,GACK;MACC;MACA,iBAAiB,gBAAgBA,YAAA;IACnC,IACC;MACC,iBAAiB;IACnB;4BAGNE,KAAA,CAACX,cAAA;iBACEQ,MAAA,iBAAUK,IAAA,CAAC;QAAKT,SAAA,EAAW,GAAGH,SAAA,gBAAyB;kBAAGO;UAC1D,OAAOD,KAAA,KAAU,cAAcR,cAAA,CAAeQ,KAAA,IAAS,IAAID,IAAA;qBAE9DK,KAAA,CAAC;MACCP,SAAA,EAAW,GAAGH,SAAA,UAAmB;MACjCW,KAAA,EACEH,YAAA,GACI;QACEK,mBAAA,EAAqB;MACvB,IACAC,SAAA;iBAGLV,IAAA,EACAK,EAAA;;;AAIT","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .field-diff {
5
+ &__locale-label {
6
+ background: var(--theme-elevation-100);
7
+ border-radius: var(--style-radius-s);
8
+ padding: calc(var(--base) * 0.2);
9
+ // border-radius: $style-radius-m;
10
+ [dir='ltr'] & {
11
+ margin-right: calc(var(--base) * 0.25);
12
+ }
13
+ [dir='rtl'] & {
14
+ margin-left: calc(var(--base) * 0.25);
15
+ }
16
+ }
17
+
18
+ &-container {
19
+ position: relative;
20
+
21
+ // Vertical separator line - not needed anymore, as the parent version view container adds a vertical line that spans the entire height of the container.
22
+ /*
23
+ &::after {
24
+ content: '';
25
+ position: absolute;
26
+ top: 0;
27
+ bottom: 0;
28
+ left: var(--left-offset);
29
+ width: 1px;
30
+ background-color: var(--theme-elevation-100);
31
+ transform: translateX(-50%); // Center the line
32
+ }*/
33
+ }
34
+
35
+ &-content {
36
+ display: grid;
37
+ // Need to use 50% 50% so that we can apply overflow-x without the column shrinking to the content width.
38
+ // Need -base(0.5) to enure the gap is center aligned - this is required when using 50% over 1fr.
39
+ grid-template-columns: calc(50% - base(0.5)) calc(50% - base(0.5));
40
+ gap: base(1);
41
+ background: var(--theme-elevation-50);
42
+ padding: base(0.5);
43
+ }
44
+ }
45
+ }
@@ -1,6 +1,11 @@
1
1
  @layer payload-default {
2
2
  .field-diff-label {
3
- margin-bottom: calc(var(--base) * 0.25);
3
+ margin-bottom: calc(var(--base) * 0.35);
4
4
  font-weight: 600;
5
+ display: flex;
6
+ flex-direction: row;
7
+ height: 100%;
8
+ align-items: center;
9
+ line-height: normal;
5
10
  }
6
11
  }
@@ -0,0 +1,35 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ :root {
5
+ --diff-delete-pill-bg: var(--theme-error-200);
6
+ --diff-delete-pill-color: var(--theme-error-600);
7
+ --diff-delete-pill-border: var(--theme-error-400);
8
+ --diff-delete-parent-bg: var(--theme-error-100);
9
+ --diff-delete-parent-color: var(--theme-error-800);
10
+ --diff-delete-link-color: var(--theme-error-600);
11
+
12
+ --diff-create-pill-bg: var(--theme-success-200);
13
+ --diff-create-pill-color: var(--theme-success-600);
14
+ --diff-create-pill-border: var(--theme-success-400);
15
+ --diff-create-parent-bg: var(--theme-success-100);
16
+ --diff-create-parent-color: var(--theme-success-800);
17
+ --diff-create-link-color: var(--theme-success-600);
18
+ }
19
+
20
+ html[data-theme='dark'] {
21
+ --diff-delete-pill-bg: var(--theme-error-200);
22
+ --diff-delete-pill-color: var(--theme-error-650);
23
+ --diff-delete-pill-border: var(--theme-error-400);
24
+ --diff-delete-parent-bg: var(--theme-error-100);
25
+ --diff-delete-parent-color: var(--theme-error-900);
26
+ --diff-delete-link-color: var(--theme-error-750);
27
+
28
+ --diff-create-pill-bg: var(--theme-success-200);
29
+ --diff-create-pill-color: var(--theme-success-650);
30
+ --diff-create-pill-border: var(--theme-success-400);
31
+ --diff-create-parent-bg: var(--theme-success-100);
32
+ --diff-create-parent-color: var(--theme-success-900);
33
+ --diff-create-link-color: var(--theme-success-750);
34
+ }
35
+ }
@@ -0,0 +1,75 @@
1
+ export interface HtmlDiffOptions {
2
+ /**
3
+ * The classNames for wrapper DOM.
4
+ * Use this to configure your own styles without importing the built-in CSS file
5
+ */
6
+ classNames?: Partial<{
7
+ createBlock?: string;
8
+ createInline?: string;
9
+ deleteBlock?: string;
10
+ deleteInline?: string;
11
+ }>;
12
+ /**
13
+ * @defaultValue 1000
14
+ */
15
+ greedyBoundary?: number;
16
+ /**
17
+ * When greedyMatch is enabled, if the length of the sub-tokens exceeds greedyBoundary,
18
+ * we will use the matched sub-tokens that are sufficiently good, even if they are not optimal, to enhance performance.
19
+ * @defaultValue true
20
+ */
21
+ greedyMatch?: boolean;
22
+ /**
23
+ * Determine the minimum threshold for calculating common sub-tokens.
24
+ * You may adjust it to a value larger than 2, but not lower, due to the potential inclusion of HTML tags in the count.
25
+ * @defaultValue 2
26
+ */
27
+ minMatchedSize?: number;
28
+ /**
29
+ * Whether to tokenize by character or by word.
30
+ * @defaultValue false
31
+ */
32
+ tokenizeByCharacter?: boolean;
33
+ }
34
+ export declare class HtmlDiff {
35
+ private readonly config;
36
+ private leastCommonLength;
37
+ private readonly matchedBlockList;
38
+ private readonly newTokens;
39
+ private readonly oldTokens;
40
+ private readonly operationList;
41
+ private sideBySideContents?;
42
+ private unifiedContent?;
43
+ constructor(oldHtml: string, newHtml: string, { classNames, greedyBoundary, greedyMatch, minMatchedSize, tokenizeByCharacter, }?: HtmlDiffOptions);
44
+ private computeBestMatchedBlock;
45
+ private computeMatchedBlockList;
46
+ private dressUpBlockTag;
47
+ private dressUpDiffContent;
48
+ private dressUpInlineTag;
49
+ private dressupMatchEnabledHtmlTag;
50
+ private dressUpText;
51
+ /**
52
+ * Generates a list of token entries that are matched between the old and new HTML. This list will not
53
+ * include token ranges that differ.
54
+ */
55
+ private getMatchedBlockList;
56
+ private getOperationList;
57
+ private slideBestMatchedBlock;
58
+ /**
59
+ * Convert HTML to tokens at character level, preserving HTML tags as complete tokens
60
+ * @example
61
+ * tokenize("<a> Hello World </a>")
62
+ * ["<a>", " ", "H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d", " ", "</a>"]
63
+ */
64
+ private tokenizeByCharacter;
65
+ /**
66
+ * convert HTML to tokens
67
+ * @example
68
+ * tokenize("<a> Hello World </a>")
69
+ * ["<a>"," ", "Hello", " ", "World", " ", "</a>"]
70
+ */
71
+ private tokenizeByWord;
72
+ getSideBySideContents(): string[];
73
+ getUnifiedContent(): string;
74
+ }
75
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/HTMLDiff/diff/index.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAC,CAAA;IACF;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAWD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,kBAAkB,CAAC,CAAkB;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAQ;gBAG7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EACE,UAKC,EACD,cAAqB,EACrB,WAAkB,EAClB,cAAkB,EAClB,mBAA2B,GAC5B,GAAE,eAAoB;IA4CzB,OAAO,CAAC,uBAAuB;IA8B/B,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,kBAAkB;IAwD1B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,WAAW;IAcnB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA+D3B,OAAO,CAAC,gBAAgB;IAoDxB,OAAO,CAAC,qBAAqB;IA0B7B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IASf,qBAAqB,IAAI,MAAM,EAAE;IAiEjC,iBAAiB,IAAI,MAAM;CA4HnC"}