@payloadcms/ui 4.0.0-internal.183b315 → 4.0.0-internal.293e026

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 (96) hide show
  1. package/dist/css/colors.css +107 -60
  2. package/dist/elements/Chip/index.css +1 -1
  3. package/dist/elements/Combobox/index.css +8 -8
  4. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  5. package/dist/elements/DatePicker/DatePicker.js +4 -2
  6. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  7. package/dist/elements/DatePicker/index.css +5 -0
  8. package/dist/elements/DatePicker/index.js +1 -1
  9. package/dist/elements/DatePicker/index.js.map +1 -1
  10. package/dist/elements/GroupByControl/index.d.ts.map +1 -1
  11. package/dist/elements/GroupByControl/index.js +3 -0
  12. package/dist/elements/GroupByControl/index.js.map +1 -1
  13. package/dist/elements/ListControls/index.d.ts.map +1 -1
  14. package/dist/elements/ListControls/index.js +1 -1
  15. package/dist/elements/ListControls/index.js.map +1 -1
  16. package/dist/elements/ListSelection/index.css +1 -1
  17. package/dist/elements/Pill/index.css +1 -1
  18. package/dist/elements/PillSelector/index.css +1 -1
  19. package/dist/elements/Popup/index.d.ts.map +1 -1
  20. package/dist/elements/Popup/index.js +27 -10
  21. package/dist/elements/Popup/index.js.map +1 -1
  22. package/dist/elements/ReactSelect/index.css +53 -52
  23. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  24. package/dist/elements/ReactSelect/index.js +68 -9
  25. package/dist/elements/ReactSelect/index.js.map +1 -1
  26. package/dist/elements/ReactSelect/types.d.ts +6 -1
  27. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  28. package/dist/elements/ReactSelect/types.js.map +1 -1
  29. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -2
  30. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  31. package/dist/elements/TimezonePicker/index.css +73 -24
  32. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  33. package/dist/elements/TimezonePicker/index.js +31 -4
  34. package/dist/elements/TimezonePicker/index.js.map +1 -1
  35. package/dist/elements/WhereBuilder/Condition/index.css +1 -1
  36. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  37. package/dist/elements/WhereBuilder/Condition/index.js +3 -0
  38. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  39. package/dist/exports/client/index.d.ts +1 -1
  40. package/dist/exports/client/index.d.ts.map +1 -1
  41. package/dist/exports/client/index.js +1 -1
  42. package/dist/exports/client/index.js.map +3 -3
  43. package/dist/exports/shared/index.js +1 -1
  44. package/dist/exports/shared/index.js.map +2 -2
  45. package/dist/fields/Blocks/index.d.ts.map +1 -1
  46. package/dist/fields/Blocks/index.js +6 -11
  47. package/dist/fields/Blocks/index.js.map +1 -1
  48. package/dist/fields/Group/index.css +1 -1
  49. package/dist/fields/Join/index.js +1 -1
  50. package/dist/fields/Join/index.js.map +1 -1
  51. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +3 -3
  52. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
  53. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  54. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
  55. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  56. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
  57. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  58. package/dist/icons/Dots/index.css +4 -4
  59. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  60. package/dist/providers/ListQuery/index.js +1 -8
  61. package/dist/providers/ListQuery/index.js.map +1 -1
  62. package/dist/providers/Theme/index.d.ts +17 -2
  63. package/dist/providers/Theme/index.d.ts.map +1 -1
  64. package/dist/providers/Theme/index.js +122 -73
  65. package/dist/providers/Theme/index.js.map +1 -1
  66. package/dist/styles.css +1 -1
  67. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +1 -1
  68. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  69. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +1 -1
  70. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  71. package/dist/utilities/copyDataFromLocale.js +1 -1
  72. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  73. package/dist/utilities/renderTable.js +1 -1
  74. package/dist/utilities/renderTable.js.map +1 -1
  75. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  76. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  77. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  78. package/dist/views/List/index.js +2 -2
  79. package/dist/views/List/index.js.map +1 -1
  80. package/dist/views/Verify/index.client.d.ts +4 -0
  81. package/dist/views/Verify/index.client.d.ts.map +1 -1
  82. package/dist/views/Verify/index.client.js +81 -0
  83. package/dist/views/Verify/index.client.js.map +1 -1
  84. package/dist/views/Verify/index.css +38 -0
  85. package/dist/views/Verify/index.d.ts +1 -1
  86. package/dist/views/Verify/index.d.ts.map +1 -1
  87. package/dist/views/Verify/index.js +13 -19
  88. package/dist/views/Verify/index.js.map +1 -1
  89. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -2
  90. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  91. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  92. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +3 -3
  93. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  94. package/package.json +4 -4
  95. package/dist/views/Unauthorized/index.scss +0 -14
  96. package/dist/views/Verify/index.scss +0 -18
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","names":["getBlockSelect","getDefaultValue","stripUnselectedFields","fieldAffectsData","tabHasName","iterateFields","defaultValuePromise","id","data","field","locale","req","select","selectMode","siblingData","user","shouldContinue","siblingDoc","name","defaultValue","value","err","payload","logger","error","msg","type","rows","Array","isArray","promises","arraySelect","forEach","row","push","fields","undefined","Promise","all","blockTypeToMatch","blockType","block","blocks","blockReferences","find","slug","blockSelect","blockSelectMode","groupData","groupSelect","tabSiblingData","isNamedTab","tabSelect","tabs","map","tab"],"sources":["../../../../src/forms/fieldSchemasToFormState/calculateDefaultValues/promise.ts"],"sourcesContent":["import type {\n Data,\n Field,\n FlattenedBlock,\n PayloadRequest,\n SelectMode,\n SelectType,\n TabAsField,\n TypedUser,\n} from 'payload'\n\nimport { getBlockSelect, getDefaultValue, stripUnselectedFields } from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nimport { iterateFields } from './iterateFields.js'\n\ntype Args<T> = {\n data: T\n field: Field | TabAsField\n id?: number | string\n locale: string | undefined\n req: PayloadRequest\n select?: SelectType\n selectMode?: SelectMode\n siblingData: Data\n user: TypedUser\n}\n\n// TODO: Make this works for rich text subfields\nexport const defaultValuePromise = async <T>({\n id,\n data,\n field,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n}: Args<T>): Promise<void> => {\n const shouldContinue = stripUnselectedFields({\n field,\n select,\n selectMode,\n siblingDoc: siblingData,\n })\n\n if (!shouldContinue) {\n return\n }\n\n if (fieldAffectsData(field)) {\n if (\n typeof siblingData[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n try {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale,\n req,\n user,\n value: siblingData[field.name],\n })\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error calculating default value for field: ${field.name}`,\n })\n }\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n const arraySelect = select?.[field.name]\n\n rows.forEach((row) => {\n promises.push(\n iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n siblingData: row,\n user,\n }),\n )\n })\n\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n\n rows.forEach((row) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n iterateFields({\n id,\n data,\n fields: block.fields,\n locale,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n siblingData: row,\n user,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'collapsible':\n case 'row': {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n\n break\n }\n case 'group': {\n if (fieldAffectsData(field)) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n siblingData: groupData,\n user,\n })\n } else {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n }\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n\n const isNamedTab = tabHasName(field)\n\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n tabSiblingData = siblingData\n tabSelect = select\n }\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: tabSelect,\n selectMode,\n siblingData: tabSiblingData,\n user,\n })\n\n break\n }\n\n case 'tabs': {\n await iterateFields({\n id,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"promise.js","names":["getBlockSelect","getDefaultValue","stripUnselectedFields","fieldAffectsData","tabHasName","iterateFields","defaultValuePromise","id","data","field","locale","req","select","selectMode","siblingData","user","shouldContinue","siblingDoc","name","defaultValue","value","err","payload","logger","error","msg","type","rows","Array","isArray","promises","arraySelect","forEach","row","push","fields","undefined","Promise","all","blockTypeToMatch","blockType","block","blocks","find","slug","blockSelect","blockSelectMode","groupData","groupSelect","tabSiblingData","isNamedTab","tabSelect","tabs","map","tab"],"sources":["../../../../src/forms/fieldSchemasToFormState/calculateDefaultValues/promise.ts"],"sourcesContent":["import type {\n Data,\n Field,\n FlattenedBlock,\n PayloadRequest,\n SelectMode,\n SelectType,\n TabAsField,\n TypedUser,\n} from 'payload'\n\nimport { getBlockSelect, getDefaultValue, stripUnselectedFields } from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nimport { iterateFields } from './iterateFields.js'\n\ntype Args<T> = {\n data: T\n field: Field | TabAsField\n id?: number | string\n locale: string | undefined\n req: PayloadRequest\n select?: SelectType\n selectMode?: SelectMode\n siblingData: Data\n user: TypedUser\n}\n\n// TODO: Make this works for rich text subfields\nexport const defaultValuePromise = async <T>({\n id,\n data,\n field,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n}: Args<T>): Promise<void> => {\n const shouldContinue = stripUnselectedFields({\n field,\n select,\n selectMode,\n siblingDoc: siblingData,\n })\n\n if (!shouldContinue) {\n return\n }\n\n if (fieldAffectsData(field)) {\n if (\n typeof siblingData[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n try {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale,\n req,\n user,\n value: siblingData[field.name],\n })\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error calculating default value for field: ${field.name}`,\n })\n }\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n const arraySelect = select?.[field.name]\n\n rows.forEach((row) => {\n promises.push(\n iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n siblingData: row,\n user,\n }),\n )\n })\n\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n\n rows.forEach((row) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n if (block) {\n row.blockType = blockTypeToMatch\n\n promises.push(\n iterateFields({\n id,\n data,\n fields: block.fields,\n locale,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n siblingData: row,\n user,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'collapsible':\n case 'row': {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n\n break\n }\n case 'group': {\n if (fieldAffectsData(field)) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n siblingData: groupData,\n user,\n })\n } else {\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n }\n\n break\n }\n\n case 'tab': {\n let tabSiblingData\n\n const isNamedTab = tabHasName(field)\n\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n tabSiblingData = siblingData\n tabSelect = select\n }\n\n await iterateFields({\n id,\n data,\n fields: field.fields,\n locale,\n req,\n select: tabSelect,\n selectMode,\n siblingData: tabSiblingData,\n user,\n })\n\n break\n }\n\n case 'tabs': {\n await iterateFields({\n id,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n locale,\n req,\n select,\n selectMode,\n siblingData,\n user,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -121,7 +121,7 @@ export const renderField = ({
121
121
  }
122
122
  row.lastRenderedPath = rowPath;
123
123
  const blockTypeToMatch = row.blockType;
124
- const blockConfig = req.payload.blocks[blockTypeToMatch] ?? (fieldConfig.blockReferences ?? fieldConfig.blocks).find(block => typeof block !== 'string' && block.slug === blockTypeToMatch);
124
+ const blockConfig = req.payload.blocks[blockTypeToMatch] ?? fieldConfig.blocks.find(block => typeof block !== 'string' && block.slug === blockTypeToMatch);
125
125
  if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {
126
126
  if (!fieldState.rows[rowIndex]?.customComponents) {
127
127
  fieldState.rows[rowIndex].customComponents = {};
@@ -1 +1 @@
1
- {"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","forceCreateClientField","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","readOnly","readOnlyFromProps","renderAllFields","req","schemaPath","siblingData","hasBeforeOrAfterInput","admin","components","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","includes","serverProps","user","value","name","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","blockReferences","find","block","slug","Label","Object","keys","length","description","editor","Error","Field","_jsx","FieldComponent","sanitizedEditorConfig","editorConfig","undefined","Description","t","AfterInput","afterInput","BeforeInput","beforeInput"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n FieldPaths,\n FlattenedBlock,\n ServerComponentProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, MissingEditorProp } from 'payload'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n forceCreateClientField,\n formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n readOnly: readOnlyFromProps,\n renderAllFields,\n req,\n schemaPath,\n siblingData,\n}) => {\n // Fields with beforeInput/afterInput need custom components created, so they require render\n const hasBeforeOrAfterInput =\n fieldConfig.admin?.components &&\n ('beforeInput' in fieldConfig.admin.components || 'afterInput' in fieldConfig.admin.components)\n\n const requiresRender =\n renderAllFields || !lastRenderedPath || lastRenderedPath !== path || hasBeforeOrAfterInput\n\n if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {\n return\n }\n\n const clientField =\n clientFieldSchemaMap && !forceCreateClientField\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly:\n readOnlyFromProps === true\n ? true\n : typeof permissions === 'boolean'\n ? !permissions\n : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n value: 'name' in fieldConfig && data?.[fieldConfig.name],\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!row.customComponents) {\n row.customComponents = {}\n }\n\n row.customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n const blockTypeToMatch: string = row.blockType\n\n const blockConfig =\n req.payload.blocks[blockTypeToMatch] ??\n ((fieldConfig.blockReferences ?? fieldConfig.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {\n if (!fieldState.rows[rowIndex]?.customComponents) {\n fieldState.rows[rowIndex].customComponents = {}\n }\n\n fieldState.rows[rowIndex].customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: blockConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n blockType: row.blockType,\n rowLabel: `${getTranslation(blockConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n }\n\n if (!requiresRender) {\n return\n }\n\n /**\n * Set the `lastRenderedPath` equal to the new path of the field, this will prevent it from being rendered again\n */\n fieldState.lastRenderedPath = path\n\n if (fieldIsHiddenOrDisabled(clientField)) {\n return\n }\n\n /**\n * Only create the `customComponents` object if needed.\n * This will prevent unnecessary data from being transferred to the client.\n */\n if (fieldConfig.admin) {\n if (\n (Object.keys(fieldConfig.admin.components || {}).length > 0 ||\n fieldConfig.type === 'richText' ||\n ('description' in fieldConfig.admin &&\n typeof fieldConfig.admin.description === 'function')) &&\n !fieldState?.customComponents\n ) {\n fieldState.customComponents = {}\n }\n }\n\n switch (fieldConfig.type) {\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n // Manually inject lexical-specific `sanitizedEditorConfig` server prop, in order to reduce the size of the field schema.\n // Otherwise, the editorConfig would be included twice - once on the top-level, and once as part of the `FieldComponent` server props.\n sanitizedEditorConfig:\n 'editorConfig' in fieldConfig.editor ? fieldConfig.editor.editorConfig : undefined,\n },\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n\n const Component = fieldConfig.admin.components[key]\n\n fieldState.customComponents[key] = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component,\n importMap: req.payload.importMap,\n key: `field.admin.components.${key}`,\n serverProps,\n })\n : 'Mock'\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if (\n 'description' in fieldConfig.admin &&\n typeof fieldConfig.admin?.description === 'function'\n ) {\n fieldState.customComponents.Description = !mockRSCs ? (\n <FieldDescription\n description={fieldConfig.admin?.description({\n i18n: req.i18n,\n t: req.i18n.t,\n })}\n path={path}\n />\n ) : (\n 'Mock'\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.afterInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.afterInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.beforeInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.beforeInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Description,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Description',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Error,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Error',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Label',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","forceCreateClientField","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","readOnly","readOnlyFromProps","renderAllFields","req","schemaPath","siblingData","hasBeforeOrAfterInput","admin","components","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","includes","serverProps","user","value","name","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","find","block","slug","Label","Object","keys","length","description","editor","Error","Field","_jsx","FieldComponent","sanitizedEditorConfig","editorConfig","undefined","Description","t","AfterInput","afterInput","BeforeInput","beforeInput"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n FieldPaths,\n FlattenedBlock,\n ServerComponentProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, MissingEditorProp } from 'payload'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n forceCreateClientField,\n formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n readOnly: readOnlyFromProps,\n renderAllFields,\n req,\n schemaPath,\n siblingData,\n}) => {\n // Fields with beforeInput/afterInput need custom components created, so they require render\n const hasBeforeOrAfterInput =\n fieldConfig.admin?.components &&\n ('beforeInput' in fieldConfig.admin.components || 'afterInput' in fieldConfig.admin.components)\n\n const requiresRender =\n renderAllFields || !lastRenderedPath || lastRenderedPath !== path || hasBeforeOrAfterInput\n\n if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {\n return\n }\n\n const clientField =\n clientFieldSchemaMap && !forceCreateClientField\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly:\n readOnlyFromProps === true\n ? true\n : typeof permissions === 'boolean'\n ? !permissions\n : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n value: 'name' in fieldConfig && data?.[fieldConfig.name],\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!row.customComponents) {\n row.customComponents = {}\n }\n\n row.customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n const blockTypeToMatch: string = row.blockType\n\n const blockConfig =\n req.payload.blocks[blockTypeToMatch] ??\n (fieldConfig.blocks.find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {\n if (!fieldState.rows[rowIndex]?.customComponents) {\n fieldState.rows[rowIndex].customComponents = {}\n }\n\n fieldState.rows[rowIndex].customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: blockConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n blockType: row.blockType,\n rowLabel: `${getTranslation(blockConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n }\n\n if (!requiresRender) {\n return\n }\n\n /**\n * Set the `lastRenderedPath` equal to the new path of the field, this will prevent it from being rendered again\n */\n fieldState.lastRenderedPath = path\n\n if (fieldIsHiddenOrDisabled(clientField)) {\n return\n }\n\n /**\n * Only create the `customComponents` object if needed.\n * This will prevent unnecessary data from being transferred to the client.\n */\n if (fieldConfig.admin) {\n if (\n (Object.keys(fieldConfig.admin.components || {}).length > 0 ||\n fieldConfig.type === 'richText' ||\n ('description' in fieldConfig.admin &&\n typeof fieldConfig.admin.description === 'function')) &&\n !fieldState?.customComponents\n ) {\n fieldState.customComponents = {}\n }\n }\n\n switch (fieldConfig.type) {\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n // Manually inject lexical-specific `sanitizedEditorConfig` server prop, in order to reduce the size of the field schema.\n // Otherwise, the editorConfig would be included twice - once on the top-level, and once as part of the `FieldComponent` server props.\n sanitizedEditorConfig:\n 'editorConfig' in fieldConfig.editor ? fieldConfig.editor.editorConfig : undefined,\n },\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n\n const Component = fieldConfig.admin.components[key]\n\n fieldState.customComponents[key] = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component,\n importMap: req.payload.importMap,\n key: `field.admin.components.${key}`,\n serverProps,\n })\n : 'Mock'\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if (\n 'description' in fieldConfig.admin &&\n typeof fieldConfig.admin?.description === 'function'\n ) {\n fieldState.customComponents.Description = !mockRSCs ? (\n <FieldDescription\n description={fieldConfig.admin?.description({\n i18n: req.i18n,\n t: req.i18n.t,\n })}\n path={path}\n />\n ) : (\n 'Mock'\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.afterInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.afterInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.beforeInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.beforeInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Description,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Description',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Error,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Error',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Label',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,13 +6,13 @@
6
6
  justify-content: center;
7
7
  flex-direction: column;
8
8
  gap: 2px;
9
- background-color: var(--theme-elevation-150);
9
+ background-color: var(--color-bg-secondary);
10
10
  border-radius: var(--button-radius);
11
- height: calc(var(--base) * 1.2);
12
- width: calc(var(--base) * 1.2);
11
+ height: var(--spacer-4);
12
+ width: var(--spacer-4);
13
13
 
14
14
  &:hover {
15
- background-color: var(--theme-elevation-250);
15
+ background-color: var(--color-bg-secondary-hover);
16
16
  }
17
17
 
18
18
  &.dots--no-background {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAYnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmMtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAWnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAgMtD,CAAA"}
@@ -8,7 +8,6 @@ import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
8
8
  import { useEffectEvent } from '../../hooks/useEffectEvent.js';
9
9
  import { useRouteTransition } from '../../providers/RouteTransition/index.js';
10
10
  import { parseSearchParams } from '../../utilities/parseSearchParams.js';
11
- import { useConfig } from '../Config/index.js';
12
11
  import { useRouter, useSearchParams } from '../RouterAdapter/index.js';
13
12
  import { ListQueryContext, ListQueryModifiedContext } from './context.js';
14
13
  import { mergeQuery } from './mergeQuery.js';
@@ -32,12 +31,6 @@ export const ListQueryProvider = ({
32
31
  startRouteTransition
33
32
  } = useRouteTransition();
34
33
  const [modified, setModified] = useState(false);
35
- const {
36
- getEntityConfig
37
- } = useConfig();
38
- const collectionConfig = getEntityConfig({
39
- collectionSlug
40
- });
41
34
  const contextRef = useRef({});
42
35
  contextRef.current.modified = modified;
43
36
  const {
@@ -168,7 +161,7 @@ export const ListQueryProvider = ({
168
161
  handleSortChange,
169
162
  handleWhereChange,
170
163
  hasActiveFilters,
171
- isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),
164
+ isGroupingBy: Boolean(query?.groupBy),
172
165
  orderableFieldName,
173
166
  query,
174
167
  refineListData,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["transformWhereQuery","validateWhereQuery","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useConfig","useRouter","useSearchParams","ListQueryContext","ListQueryModifiedContext","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","getEntityConfig","collectionConfig","contextRef","current","onQueryChangeFromContext","queryFromURL","setQuery","limit","sort","refineListData","incomingQuery","newQuery","defaults","search","stringify","columns","JSON","queryByGroup","window","location","replace","scroll","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","where","syncPropsToURL","history","replaceState","hasActiveFilters","normalizedWhere","or","some","orGroup","and","andGroup","field","Object","keys","operatorObj","operator","Boolean","_jsx","value","defaultLimit","isGroupingBy","admin","groupBy"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { type ListQuery, type Where } from 'payload'\nimport { transformWhereQuery, validateWhereQuery } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { useRouter, useSearchParams } from '../RouterAdapter/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const { getEntityConfig } = useConfig()\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const contextRef = useRef({} as IListQueryContext)\n contextRef.current.modified = modified\n\n const { onQueryChange: onQueryChangeFromContext } = useListDrawerContext()\n const onQueryChange = onQueryChangeFromContext || onQueryChangeFromProps\n\n const queryFromURL = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return queryFromURL\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n setModified(modified ?? true)\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n if (window.location.search !== search) {\n startRouteTransition(() => router.replace(search, { scroll: false }))\n }\n } else if (typeof onQueryChange === 'function') {\n onQueryChange(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n /**\n * The server component may pass props to this client component, e.g. from\n * fetching the query from preferences.\n * This effect is responsible for syncing the props back to the URL, without\n * triggering a re-render.\n */\n const syncPropsToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n // Important: do not use router.replace here to avoid re-rendering.\n window.history.replaceState(null, '', search)\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams && queryFromProps) {\n syncPropsToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n const hasActiveFilters = useMemo(() => {\n if (!query?.where) {\n return false\n }\n\n // Normalize flat/invalid where queries (e.g. `{ title: { equals } }`) into the\n // `or/and` structure so they are detected the same way the WhereBuilder reads them.\n const normalizedWhere = validateWhereQuery(query.where)\n ? query.where\n : transformWhereQuery(query.where)\n\n return (normalizedWhere.or ?? []).some((orGroup) =>\n (orGroup.and ?? []).some((andGroup) => {\n const field = Object.keys(andGroup)[0]\n if (!field) {\n return false\n }\n const operatorObj = andGroup[field]\n if (!operatorObj || typeof operatorObj !== 'object') {\n return false\n }\n const operator = Object.keys(operatorObj)[0]\n return Boolean(operator) && (operatorObj as Record<string, unknown>)[operator] !== undefined\n }),\n )\n }, [query?.where])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n defaultLimit: data?.limit,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n hasActiveFilters,\n isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["transformWhereQuery","validateWhereQuery","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useRouter","useSearchParams","ListQueryContext","ListQueryModifiedContext","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","contextRef","current","onQueryChangeFromContext","queryFromURL","setQuery","limit","sort","refineListData","incomingQuery","newQuery","defaults","search","stringify","columns","JSON","queryByGroup","window","location","replace","scroll","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","where","syncPropsToURL","history","replaceState","hasActiveFilters","normalizedWhere","or","some","orGroup","and","andGroup","field","Object","keys","operatorObj","operator","Boolean","_jsx","value","defaultLimit","isGroupingBy","groupBy"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { type ListQuery, type Where } from 'payload'\nimport { transformWhereQuery, validateWhereQuery } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useRouter, useSearchParams } from '../RouterAdapter/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const contextRef = useRef({} as IListQueryContext)\n contextRef.current.modified = modified\n\n const { onQueryChange: onQueryChangeFromContext } = useListDrawerContext()\n const onQueryChange = onQueryChangeFromContext || onQueryChangeFromProps\n\n const queryFromURL = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return queryFromURL\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n setModified(modified ?? true)\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n if (window.location.search !== search) {\n startRouteTransition(() => router.replace(search, { scroll: false }))\n }\n } else if (typeof onQueryChange === 'function') {\n onQueryChange(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n /**\n * The server component may pass props to this client component, e.g. from\n * fetching the query from preferences.\n * This effect is responsible for syncing the props back to the URL, without\n * triggering a re-render.\n */\n const syncPropsToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n // Important: do not use router.replace here to avoid re-rendering.\n window.history.replaceState(null, '', search)\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams && queryFromProps) {\n syncPropsToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n const hasActiveFilters = useMemo(() => {\n if (!query?.where) {\n return false\n }\n\n // Normalize flat/invalid where queries (e.g. `{ title: { equals } }`) into the\n // `or/and` structure so they are detected the same way the WhereBuilder reads them.\n const normalizedWhere = validateWhereQuery(query.where)\n ? query.where\n : transformWhereQuery(query.where)\n\n return (normalizedWhere.or ?? []).some((orGroup) =>\n (orGroup.and ?? []).some((andGroup) => {\n const field = Object.keys(andGroup)[0]\n if (!field) {\n return false\n }\n const operatorObj = andGroup[field]\n if (!operatorObj || typeof operatorObj !== 'object') {\n return false\n }\n const operator = Object.keys(operatorObj)[0]\n return Boolean(operator) && (operatorObj as Record<string, unknown>)[operator] !== undefined\n }),\n )\n }, [query?.where])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n defaultLimit: data?.limit,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n hasActiveFilters,\n isGroupingBy: Boolean(query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,mBAAmB,EAAEC,kBAAkB,QAAQ;AACxD,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAIzE,SAASC,oBAAoB,QAAQ;AACrC,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,SAAS,EAAEC,eAAe,QAAQ;AAC3C,SAASC,gBAAgB,EAAEC,wBAAwB,QAAQ;AAC3D,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAE9B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,iBAAA,GAA8CA,CAAC;EAC1DC,QAAQ;EACRC,cAAc;EACdC,IAAI;EACJC,kBAAkB;EAClBC,aAAA,EAAeC,sBAAsB;EACrCC,kBAAkB;EAClBC,KAAA,EAAOC;AAAc,CACtB;EACC;EACA;;EAEA,MAAMC,MAAA,GAASjB,SAAA;EACf,MAAMkB,eAAA,GAAkBjB,eAAA;EACxB,MAAM;IAAEkB;EAAoB,CAAE,GAAGrB,kBAAA;EACjC,MAAM,CAACsB,QAAA,EAAUC,WAAA,CAAY,GAAG1B,QAAA,CAAS;EACzC,MAAM2B,UAAA,GAAa5B,MAAA,CAAO,CAAC;EAC3B4B,UAAA,CAAWC,OAAO,CAACH,QAAQ,GAAGA,QAAA;EAE9B,MAAM;IAAER,aAAA,EAAeY;EAAwB,CAAE,GAAG5B,oBAAA;EACpD,MAAMgB,aAAA,GAAgBY,wBAAA,IAA4BX,sBAAA;EAElD,MAAMY,YAAA,GAAehC,OAAA,CACnB,MAAMY,aAAA,CAAcN,iBAAA,CAAkBmB,eAAA,IACtC,CAACA,eAAA,CAAgB;EAGnB,MAAM,CAACH,KAAA,EAAOW,QAAA,CAAS,GAAG/B,QAAA,CAAoB;IAC5C,IAAIgB,kBAAA,EAAoB;MACtB,OAAOc,YAAA;IACT,OAAO;MACL,OAAO;QACLE,KAAA,EAAOX,cAAA,CAAeW,KAAK;QAC3BC,IAAA,EAAMZ,cAAA,CAAeY;MACvB;IACF;EACF;EAEA,MAAMC,cAAA,GAAiBtC,WAAA;EACrB;EACA,OAAOuC,aAAA,EAA0BV,UAAA;IAC/BC,WAAA,CAAYD,UAAA,IAAY;IAExB,MAAMW,QAAA,GAAW3B,UAAA,CAAWW,KAAA,EAAOe,aAAA,EAAe;MAChDE,QAAA,EAAU;QACRL,KAAA,EAAOX,cAAA,CAAeW,KAAK;QAC3BC,IAAA,EAAMZ,cAAA,CAAeY;MACvB;IACF;IAEA,IAAIjB,kBAAA,EAAoB;MACtB,MAAMsB,MAAA,GAAS,IAAI5C,EAAA,CAAG6C,SAAS,CAAC;QAC9B,GAAGH,QAAQ;QACXI,OAAA,EAASC,IAAA,CAAKF,SAAS,CAACH,QAAA,CAASI,OAAO;QACxCE,YAAA,EAAcD,IAAA,CAAKF,SAAS,CAACH,QAAA,CAASM,YAAY;MACpD,IAAI;MACJ,IAAIC,MAAA,CAAOC,QAAQ,CAACN,MAAM,KAAKA,MAAA,EAAQ;QACrCd,oBAAA,CAAqB,MAAMF,MAAA,CAAOuB,OAAO,CAACP,MAAA,EAAQ;UAAEQ,MAAA,EAAQ;QAAM;MACpE;IACF,OAAO,IAAI,OAAO7B,aAAA,KAAkB,YAAY;MAC9CA,aAAA,CAAcmB,QAAA;IAChB;IAEAL,QAAA,CAASK,QAAA;EACX,GACA,CACEhB,KAAA,EACAC,cAAA,CAAeW,KAAK,EACpBX,cAAA,CAAeY,IAAI,EACnBjB,kBAAA,EACAC,aAAA,EACAO,oBAAA,EACAF,MAAA,CACD;EAGH,MAAMyB,gBAAA,GAAmBnD,WAAA,CACvB,MAAOoD,GAAA;IACL,MAAMd,cAAA,CAAe;MAAEe,IAAA,EAAMD;IAAI;EACnC,GACA,CAACd,cAAA,CAAe;EAGlB,MAAMgB,mBAAA,GAAsBvD,KAAA,CAAMC,WAAW,CAC3C,MAAOoD,KAAA;IACL,MAAMd,cAAA,CAAe;MAAEF,KAAA,EAAOgB,KAAA;MAAKC,IAAA,EAAM;IAAE;EAC7C,GACA,CAACf,cAAA,CAAe;EAGlB,MAAMiB,kBAAA,GAAqBvD,WAAA,CACzB,MAAOoD,KAAA;IACL,MAAMV,QAAA,GAASU,KAAA,KAAQ,KAAKI,SAAA,GAAYJ,KAAA;IACxC,MAAMd,cAAA,CAAe;MAAEI,MAAA,EAAAA;IAAO;EAChC,GACA,CAACJ,cAAA,CAAe;EAGlB,MAAMmB,gBAAA,GAAmBzD,WAAA,CACvB,MAAOqC,IAAA;IACL,MAAMC,cAAA,CAAe;MAAED;IAAK;EAC9B,GACA,CAACC,cAAA,CAAe;EAGlB,MAAMoB,iBAAA,GAAoB1D,WAAA,CACxB,MAAO2D,KAAA;IACL,MAAMrB,cAAA,CAAe;MAAEqB;IAAM;EAC/B,GACA,CAACrB,cAAA,CAAe;EAGlB;;;;;;EAMA,MAAMsB,cAAA,GAAiBtD,cAAA,CAAe;IACpC,MAAMkC,UAAA,GAAW1B,aAAA,CAAc;MAAE,IAAIU,KAAA,IAAS,CAAC,CAAC;MAAG,IAAIC,cAAA,IAAkB,CAAC,CAAC;IAAE;IAE7E,MAAMiB,QAAA,GAAS,IAAI5C,EAAA,CAAG6C,SAAS,CAAC;MAC9B,GAAGH,UAAQ;MACXI,OAAA,EAASC,IAAA,CAAKF,SAAS,CAACH,UAAA,CAASI,OAAO;MACxCE,YAAA,EAAcD,IAAA,CAAKF,SAAS,CAACH,UAAA,CAASM,YAAY;IACpD,IAAI;IAEJ,IAAIC,MAAA,CAAOC,QAAQ,CAACN,MAAM,KAAKA,QAAA,EAAQ;MACrCP,QAAA,CAASK,UAAA;MACT;MACAO,MAAA,CAAOc,OAAO,CAACC,YAAY,CAAC,MAAM,IAAIpB,QAAA;IACxC;EACF;EAEA;EACA;EACAzC,SAAA,CAAU;IACR,IAAImB,kBAAA,IAAsBK,cAAA,EAAgB;MACxCmC,cAAA;IACF;EACF,GAAG,CAACxC,kBAAA,EAAoBK,cAAA,CAAe;EAEvC,MAAMsC,gBAAA,GAAmB7D,OAAA,CAAQ;IAC/B,IAAI,CAACsB,KAAA,EAAOmC,KAAA,EAAO;MACjB,OAAO;IACT;IAEA;IACA;IACA,MAAMK,eAAA,GAAkBnE,kBAAA,CAAmB2B,KAAA,CAAMmC,KAAK,IAClDnC,KAAA,CAAMmC,KAAK,GACX/D,mBAAA,CAAoB4B,KAAA,CAAMmC,KAAK;IAEnC,OAAO,CAACK,eAAA,CAAgBC,EAAE,IAAI,EAAE,EAAEC,IAAI,CAAEC,OAAA,IACtC,CAACA,OAAA,CAAQC,GAAG,IAAI,EAAE,EAAEF,IAAI,CAAEG,QAAA;MACxB,MAAMC,KAAA,GAAQC,MAAA,CAAOC,IAAI,CAACH,QAAA,CAAS,CAAC,EAAE;MACtC,IAAI,CAACC,KAAA,EAAO;QACV,OAAO;MACT;MACA,MAAMG,WAAA,GAAcJ,QAAQ,CAACC,KAAA,CAAM;MACnC,IAAI,CAACG,WAAA,IAAe,OAAOA,WAAA,KAAgB,UAAU;QACnD,OAAO;MACT;MACA,MAAMC,QAAA,GAAWH,MAAA,CAAOC,IAAI,CAACC,WAAA,CAAY,CAAC,EAAE;MAC5C,OAAOE,OAAA,CAAQD,QAAA,KAAaD,WAAwC,CAACC,QAAA,CAAS,KAAKlB,SAAA;IACrF;EAEJ,GAAG,CAAChC,KAAA,EAAOmC,KAAA,CAAM;EAEjB,oBACEiB,IAAA,CAACjE,gBAAA;IACCkE,KAAA,EAAO;MACL3D,cAAA;MACAC,IAAA;MACA2D,YAAA,EAAc3D,IAAA,EAAMiB,KAAA;MACpBe,gBAAA;MACAG,mBAAA;MACAC,kBAAA;MACAE,gBAAA;MACAC,iBAAA;MACAK,gBAAA;MACAgB,YAAA,EAAcJ,OAAA,CAAQnD,KAAA,EAAOwD,OAAA;MAC7BzD,kBAAA;MACAC,KAAA;MACAc,cAAA;MACAR,WAAA;MACA,GAAGC,UAAA,CAAWC;IAChB;cAEA,aAAA4C,IAAA,CAAChE,wBAAA;MAAyBiE,KAAA,EAAOhD,QAAA;gBAAWZ;;;AAGlD","ignoreList":[]}
@@ -3,11 +3,26 @@ export type Theme = 'dark' | 'light';
3
3
  export type ThemeContext = {
4
4
  autoMode: boolean;
5
5
  highContrastMode: boolean;
6
- setHighContrastMode: (isHighContrast: boolean) => void;
7
- setTheme: (theme: 'auto' | Theme) => void;
6
+ setHighContrastMode: (isHighContrast: boolean, options?: {
7
+ scoped?: boolean;
8
+ }) => void;
9
+ setTheme: (theme: 'auto' | Theme, options?: {
10
+ scoped?: boolean;
11
+ }) => void;
8
12
  theme: Theme;
9
13
  };
10
14
  export declare const defaultTheme: Theme;
15
+ /**
16
+ * Provides theme context to its children.
17
+ *
18
+ * At the root (no parent ThemeProvider): reads/writes cookies, responds to
19
+ * OS preference, owns setTheme and setHighContrastMode.
20
+ *
21
+ * When nested inside another ThemeProvider (e.g. inside a Popup): acts as a
22
+ * scoped visual the `theme` prop sets the local theme, but setThemeoverride
23
+ * and setHighContrastMode bubble up through each level to the root provider so
24
+ * mutations always affect the global user preference.
25
+ */
11
26
  export declare const ThemeProvider: React.FC<{
12
27
  children?: React.ReactNode;
13
28
  highContrastMode?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAInF,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAA;IACtD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,KAAK,IAAI,CAAA;IACzC,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AA4DD,eAAO,MAAM,YAAY,EAAE,KAAe,CAAA;AAE1C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAiEA,CAAA;AAED,eAAO,MAAM,QAAQ,QAAO,YAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAInF,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACtF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACzE,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AA4DD,eAAO,MAAM,YAAY,EAAE,KAAe,CAAA;AAE1C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAwFA,CAAA;AAED,eAAO,MAAM,QAAQ,QAAO,YAA8C,CAAA"}
@@ -11,7 +11,7 @@ const initialContext = {
11
11
  setTheme: () => null,
12
12
  theme: 'light'
13
13
  };
14
- const Context = /*#__PURE__*/createContext(initialContext);
14
+ const Context = /*#__PURE__*/createContext(undefined);
15
15
  function setCookie(cname, cvalue, exdays) {
16
16
  const d = new Date();
17
17
  d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
@@ -38,27 +38,64 @@ const detectHighContrastMode = cookieKey => {
38
38
  return isHighContrast;
39
39
  };
40
40
  export const defaultTheme = 'light';
41
+ /**
42
+ * Provides theme context to its children.
43
+ *
44
+ * At the root (no parent ThemeProvider): reads/writes cookies, responds to
45
+ * OS preference, owns setTheme and setHighContrastMode.
46
+ *
47
+ * When nested inside another ThemeProvider (e.g. inside a Popup): acts as a
48
+ * scoped visual the `theme` prop sets the local theme, but setThemeoverride
49
+ * and setHighContrastMode bubble up through each level to the root provider so
50
+ * mutations always affect the global user preference.
51
+ */
41
52
  export const ThemeProvider = t0 => {
42
- const $ = _c(18);
53
+ const $ = _c(30);
43
54
  const {
44
55
  children,
45
56
  highContrastMode: initialHighContrastMode,
46
- theme: initialTheme
57
+ theme: themeOverride
47
58
  } = t0;
59
+ const outerContext = use(Context);
60
+ const isScoped = outerContext !== undefined;
48
61
  const {
49
62
  config
50
63
  } = useConfig();
51
64
  const preselectedTheme = config.admin.theme;
52
65
  const themeCookieKey = `${config.cookiePrefix || "payload"}-theme`;
53
66
  const contrastCookieKey = `${config.cookiePrefix || "payload"}-high-contrast-mode`;
54
- const [theme, setThemeState] = useState(initialTheme || defaultTheme);
55
- const [autoMode, setAutoMode] = useState(true);
56
- const [highContrastMode, setHighContrastModeState] = useState(initialHighContrastMode ?? false);
67
+ const [theme, setThemeState] = useState(themeOverride ?? defaultTheme);
68
+ const [autoMode, setAutoMode] = useState(!isScoped);
69
+ const [highContrastMode, setHighContrastModeState] = useState(isScoped ? outerContext.highContrastMode ?? false : initialHighContrastMode ?? false);
57
70
  let t1;
58
- let t2;
59
- if ($[0] !== preselectedTheme || $[1] !== themeCookieKey) {
71
+ if ($[0] !== isScoped || $[1] !== outerContext) {
60
72
  t1 = () => {
61
- if (preselectedTheme !== "all") {
73
+ if (isScoped) {
74
+ setHighContrastModeState(outerContext.highContrastMode);
75
+ }
76
+ };
77
+ $[0] = isScoped;
78
+ $[1] = outerContext;
79
+ $[2] = t1;
80
+ } else {
81
+ t1 = $[2];
82
+ }
83
+ const t2 = outerContext?.highContrastMode;
84
+ let t3;
85
+ if ($[3] !== isScoped || $[4] !== t2) {
86
+ t3 = [isScoped, t2];
87
+ $[3] = isScoped;
88
+ $[4] = t2;
89
+ $[5] = t3;
90
+ } else {
91
+ t3 = $[5];
92
+ }
93
+ useEffect(t1, t3);
94
+ let t4;
95
+ let t5;
96
+ if ($[6] !== isScoped || $[7] !== preselectedTheme || $[8] !== themeCookieKey) {
97
+ t4 = () => {
98
+ if (isScoped || preselectedTheme !== "all") {
62
99
  return;
63
100
  }
64
101
  const {
@@ -68,75 +105,87 @@ export const ThemeProvider = t0 => {
68
105
  setThemeState(detectedTheme);
69
106
  setAutoMode(isAutoMode);
70
107
  };
71
- t2 = [preselectedTheme, themeCookieKey];
72
- $[0] = preselectedTheme;
73
- $[1] = themeCookieKey;
74
- $[2] = t1;
75
- $[3] = t2;
108
+ t5 = [isScoped, preselectedTheme, themeCookieKey];
109
+ $[6] = isScoped;
110
+ $[7] = preselectedTheme;
111
+ $[8] = themeCookieKey;
112
+ $[9] = t4;
113
+ $[10] = t5;
76
114
  } else {
77
- t1 = $[2];
78
- t2 = $[3];
115
+ t4 = $[9];
116
+ t5 = $[10];
79
117
  }
80
- useEffect(t1, t2);
81
- let t3;
82
- let t4;
83
- if ($[4] !== contrastCookieKey) {
84
- t3 = () => {
118
+ useEffect(t4, t5);
119
+ let t6;
120
+ let t7;
121
+ if ($[11] !== contrastCookieKey || $[12] !== isScoped) {
122
+ t6 = () => {
123
+ if (isScoped) {
124
+ return;
125
+ }
85
126
  setHighContrastModeState(detectHighContrastMode(contrastCookieKey));
86
127
  };
87
- t4 = [contrastCookieKey];
88
- $[4] = contrastCookieKey;
89
- $[5] = t3;
90
- $[6] = t4;
128
+ t7 = [isScoped, contrastCookieKey];
129
+ $[11] = contrastCookieKey;
130
+ $[12] = isScoped;
131
+ $[13] = t6;
132
+ $[14] = t7;
91
133
  } else {
92
- t3 = $[5];
93
- t4 = $[6];
134
+ t6 = $[13];
135
+ t7 = $[14];
94
136
  }
95
- useEffect(t3, t4);
96
- let t5;
97
- if ($[7] !== themeCookieKey) {
98
- t5 = themeToSet => {
99
- if (themeToSet === "light" || themeToSet === "dark") {
100
- setThemeState(themeToSet);
101
- setAutoMode(false);
102
- setCookie(themeCookieKey, themeToSet, 365);
103
- document.documentElement.setAttribute("data-theme", themeToSet);
104
- } else {
105
- if (themeToSet === "auto") {
106
- setCookie(themeCookieKey, themeToSet, -1);
107
- const themeFromOS = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
108
- document.documentElement.setAttribute("data-theme", themeFromOS);
109
- setAutoMode(true);
110
- setThemeState(themeFromOS);
111
- }
137
+ useEffect(t6, t7);
138
+ let t8;
139
+ if ($[15] !== isScoped || $[16] !== outerContext || $[17] !== themeCookieKey) {
140
+ t8 = (themeToSet, options) => {
141
+ if (isScoped && !options?.scoped) {
142
+ outerContext.setTheme(themeToSet, options);
143
+ return;
144
+ }
145
+ const resolvedTheme = themeToSet === "auto" ? window.matchMedia?.("(prefers-color-scheme: dark)").matches ? "dark" : "light" : themeToSet;
146
+ setThemeState(resolvedTheme);
147
+ setAutoMode(themeToSet === "auto");
148
+ if (!isScoped) {
149
+ setCookie(themeCookieKey, themeToSet, themeToSet === "auto" ? -1 : 365);
150
+ document.documentElement.setAttribute("data-theme", resolvedTheme);
112
151
  }
113
152
  };
114
- $[7] = themeCookieKey;
115
- $[8] = t5;
153
+ $[15] = isScoped;
154
+ $[16] = outerContext;
155
+ $[17] = themeCookieKey;
156
+ $[18] = t8;
116
157
  } else {
117
- t5 = $[8];
158
+ t8 = $[18];
118
159
  }
119
- const setTheme = t5;
120
- let t6;
121
- if ($[9] !== contrastCookieKey) {
122
- t6 = isHighContrast => {
160
+ const setTheme = t8;
161
+ let t9;
162
+ if ($[19] !== contrastCookieKey || $[20] !== isScoped || $[21] !== outerContext) {
163
+ t9 = (isHighContrast, options_0) => {
164
+ if (isScoped && !options_0?.scoped) {
165
+ outerContext.setHighContrastMode(isHighContrast, options_0);
166
+ return;
167
+ }
123
168
  setHighContrastModeState(isHighContrast);
124
- setCookie(contrastCookieKey, String(isHighContrast), 365);
125
- if (isHighContrast) {
126
- document.documentElement.setAttribute("data-enhanced-contrast", "");
127
- } else {
128
- document.documentElement.removeAttribute("data-enhanced-contrast");
169
+ if (!isScoped) {
170
+ setCookie(contrastCookieKey, String(isHighContrast), 365);
171
+ if (isHighContrast) {
172
+ document.documentElement.setAttribute("data-enhanced-contrast", "");
173
+ } else {
174
+ document.documentElement.removeAttribute("data-enhanced-contrast");
175
+ }
129
176
  }
130
177
  };
131
- $[9] = contrastCookieKey;
132
- $[10] = t6;
178
+ $[19] = contrastCookieKey;
179
+ $[20] = isScoped;
180
+ $[21] = outerContext;
181
+ $[22] = t9;
133
182
  } else {
134
- t6 = $[10];
183
+ t9 = $[22];
135
184
  }
136
- const setHighContrastMode = t6;
137
- let t7;
138
- if ($[11] !== autoMode || $[12] !== children || $[13] !== highContrastMode || $[14] !== setHighContrastMode || $[15] !== setTheme || $[16] !== theme) {
139
- t7 = _jsx(Context, {
185
+ const setHighContrastMode = t9;
186
+ let t10;
187
+ if ($[23] !== autoMode || $[24] !== children || $[25] !== highContrastMode || $[26] !== setHighContrastMode || $[27] !== setTheme || $[28] !== theme) {
188
+ t10 = _jsx(Context, {
140
189
  value: {
141
190
  autoMode,
142
191
  highContrastMode,
@@ -146,17 +195,17 @@ export const ThemeProvider = t0 => {
146
195
  },
147
196
  children
148
197
  });
149
- $[11] = autoMode;
150
- $[12] = children;
151
- $[13] = highContrastMode;
152
- $[14] = setHighContrastMode;
153
- $[15] = setTheme;
154
- $[16] = theme;
155
- $[17] = t7;
198
+ $[23] = autoMode;
199
+ $[24] = children;
200
+ $[25] = highContrastMode;
201
+ $[26] = setHighContrastMode;
202
+ $[27] = setTheme;
203
+ $[28] = theme;
204
+ $[29] = t10;
156
205
  } else {
157
- t7 = $[17];
206
+ t10 = $[29];
158
207
  }
159
- return t7;
208
+ return t10;
160
209
  };
161
- export const useTheme = () => use(Context);
210
+ export const useTheme = () => use(Context) ?? initialContext;
162
211
  //# sourceMappingURL=index.js.map