{"version":3,"file":"index-BjpCODkB.mjs","sources":["../../admin/src/pluginId.ts","../../admin/src/components/Initializer.tsx","../../admin/src/components/PluginIcon.tsx","../../admin/src/index.ts"],"sourcesContent":["export const PLUGIN_ID = 'icons-field';\n","import { useEffect, useRef } from 'react';\n\nimport { PLUGIN_ID } from '../pluginId';\n\ntype InitializerProps = {\n  setPlugin: (id: string) => void;\n};\n\nconst Initializer = ({ setPlugin }: InitializerProps) => {\n  const ref = useRef(setPlugin);\n\n  useEffect(() => {\n    ref.current(PLUGIN_ID);\n  }, []);\n\n  return null;\n};\n\nexport { Initializer };\n","import { Flex } from '@strapi/design-system';\nimport styled from 'styled-components';\nimport { Rocket } from '@strapi/icons';\n\nconst IconBox = styled(Flex)`\n  background-color: #ddfaf2;\n  border: 1px solid #87cec5;\n\n  svg > path {\n    fill: #19a796;\n  }\n`;\n\nexport const PluginIcon = () => {\n  return (\n    <IconBox justifyContent=\"center\" alignItems=\"center\" width={7} height={6} hasRadius aria-hidden>\n      <Rocket />\n    </IconBox>\n  );\n};\n","import { PLUGIN_ID } from './pluginId';\nimport { Initializer } from './components/Initializer';\nimport { PluginIcon } from './components/PluginIcon';\n\n\nexport default {\n  register(app: any) {\n    app.customFields.register({\n      name: \"icon\",\n      pluginId: \"icons-field\",\n      type: \"text\",\n      icon: PluginIcon,\n      intlLabel: {\n        id: `${PLUGIN_ID}.label`,\n        defaultMessage: \"Icon Selector\",\n      },\n      intlDescription: {\n        id: `${PLUGIN_ID}.description`,\n        defaultMessage: \"Select any icon from your own config\",\n      },\n      components: {\n        Input: async () =>\n          import(\"./components/IconSelect\"),\n      },\n      options: {\n        base: [\n          {\n            name: 'options.selection',\n            type: 'text',\n            intlLabel: {\n              id: `${PLUGIN_ID}.options.base.selection`,\n              defaultMessage: 'Choose a specific icons folder',\n            },\n            description: {\n              id: `${PLUGIN_ID}.options.base.selection.description`,\n              defaultMessage: 'Leave empty to select all icones library',\n            },\n            placeholder: {\n              id: `${PLUGIN_ID}.options.base.selection.placeholder`,\n              defaultMessage: 'One folder name per line',\n            },\n          },\n        ],\n        advanced: [\n          {\n            sectionTitle: {\n              id: 'global.settings',\n              defaultMessage: 'Settings',\n            },\n            items: [\n              {\n                name: 'required',\n                type: 'checkbox',\n                intlLabel: {\n                  id: `${PLUGIN_ID}.options.advanced.requiredField`,\n                  defaultMessage: 'Required field',\n                },\n                description: {\n                  id: `${PLUGIN_ID}.options.advanced.requiredField.description`,\n                  defaultMessage: \"You won't be able to create an entry if this field is empty\",\n                },\n              },\n              {\n                name: 'options.showIconLabel',\n                type: 'checkbox',\n                intlLabel: {\n                  id: `${PLUGIN_ID}.options.advanced.showIconLabel`,\n                  defaultMessage: 'Show icon label',\n                },\n                description: {\n                  id: `${PLUGIN_ID}.options.advanced.showIconLabel.description`,\n                  defaultMessage: 'Show the icon label in the selected icon',\n                },\n              },\n              {\n                name: 'options.outputFormat',\n                type: 'select',\n                defaultValue: 'svg',\n                intlLabel: {\n                  id: `${PLUGIN_ID}.options.advanced.outputFormat`,\n                  defaultMessage: 'API output format',\n                },\n                description: {\n                  id: `${PLUGIN_ID}.options.advanced.outputFormat.description`,\n                  defaultMessage: 'Choose what value is stored: the full SVG code or just the icon name (useful for SVG sprites)',\n                },\n                options: [\n                  {\n                    key: 'svg',\n                    value: 'svg',\n                    metadatas: {\n                      intlLabel: {\n                        id: `${PLUGIN_ID}.options.advanced.outputFormat.svg`,\n                        defaultMessage: 'SVG code (HTML)',\n                      },\n                    },\n                  },\n                  {\n                    key: 'name',\n                    value: 'name',\n                    metadatas: {\n                      intlLabel: {\n                        id: `${PLUGIN_ID}.options.advanced.outputFormat.name`,\n                        defaultMessage: 'Icon name',\n                      },\n                    },\n                  },\n                ],\n              },\n            ],\n          },\n        ],\n      },\n    })\n\n    app.registerPlugin({\n      id: PLUGIN_ID,\n      initializer: Initializer,\n      isReady: false,\n      name: PLUGIN_ID,\n    });\n  },\n\n  async registerTrads({ locales }: { locales: string[] }) {\n    return Promise.all(\n      locales.map(async (locale) => {\n        try {\n          const { default: data } = await import(`./translations/${locale}.json`);\n\n          return { data, locale };\n        } catch {\n          return { data: {}, locale };\n        }\n      })\n    );\n  },\n};\n"],"names":[],"mappings":"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"}