@rulab/adminjs-components 0.0.13 → 0.1.0-alpha.1

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 (71) hide show
  1. package/LICENSE +21 -21
  2. package/dist/index.cjs +97 -299
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +10 -21
  5. package/dist/index.d.ts +10 -21
  6. package/dist/index.js +84 -288
  7. package/dist/index.js.map +1 -0
  8. package/package.json +12 -8
  9. package/src/components/ColorStatus/ColorStatusEdit.tsx +94 -94
  10. package/src/components/ColorStatus/ColorStatusList.tsx +20 -20
  11. package/src/components/ColorStatus/ColorStatusShow.tsx +23 -23
  12. package/src/components/ColorStatus/index.ts +3 -3
  13. package/src/components/ColorStatus/styles.ts +30 -30
  14. package/src/components/ColorStatus/types.ts +5 -5
  15. package/src/components/Editor/Editor.jsx +49 -49
  16. package/src/components/Editor/EditorList.jsx +22 -22
  17. package/src/components/Editor/EditorShow.jsx +24 -24
  18. package/src/components/Editor/config.ts +35 -35
  19. package/src/components/Editor/index.ts +3 -3
  20. package/src/components/Editor/styles.ts +151 -151
  21. package/src/components/{CustomSlug/CustomSlug.tsx → Slug/SlugEdit.tsx} +68 -68
  22. package/src/components/Slug/SlugFeature.ts +30 -0
  23. package/src/components/Slug/index.ts +1 -0
  24. package/src/components/{CustomSlug → Slug}/styles.ts +24 -24
  25. package/src/components/StringList/SortableList/SortableList.tsx +98 -98
  26. package/src/components/StringList/SortableList/components/SortableItem/DragHandle.tsx +20 -20
  27. package/src/components/StringList/SortableList/components/SortableItem/SortableItem.tsx +59 -59
  28. package/src/components/StringList/SortableList/components/SortableItem/styles.ts +22 -22
  29. package/src/components/StringList/SortableList/components/SortableItem/types.ts +7 -7
  30. package/src/components/StringList/SortableList/components/index.ts +2 -2
  31. package/src/components/StringList/SortableList/index.ts +1 -1
  32. package/src/components/StringList/SortableList/styles.ts +9 -9
  33. package/src/components/StringList/StringList.tsx +136 -136
  34. package/src/components/StringList/StringListShow.tsx +37 -37
  35. package/src/components/StringList/constants.ts +1 -1
  36. package/src/components/StringList/index.ts +2 -2
  37. package/src/components/StringList/styles.ts +41 -41
  38. package/src/components/index.ts +10 -9
  39. package/dist/bundle.js +0 -8
  40. package/dist/components/CustomSlug/CustomSlug.jsx +0 -29
  41. package/dist/components/CustomSlug/index.js +0 -1
  42. package/dist/components/CustomSlug/styles.js +0 -15
  43. package/dist/components/Editor/config.js +0 -11
  44. package/dist/components/Editor/index.js +0 -1
  45. package/dist/components/Editor/styles.js +0 -64
  46. package/dist/components/StringList/SortableList/SortableList.jsx +0 -43
  47. package/dist/components/StringList/SortableList/components/SortableItem/DragHandle.jsx +0 -10
  48. package/dist/components/StringList/SortableList/components/SortableItem/SortableItem.jsx +0 -32
  49. package/dist/components/StringList/SortableList/components/SortableItem/styles.js +0 -20
  50. package/dist/components/StringList/SortableList/components/SortableItem/types.js +0 -1
  51. package/dist/components/StringList/SortableList/components/index.js +0 -2
  52. package/dist/components/StringList/SortableList/index.js +0 -1
  53. package/dist/components/StringList/SortableList/styles.js +0 -8
  54. package/dist/components/StringList/StringList.jsx +0 -67
  55. package/dist/components/StringList/index.js +0 -1
  56. package/dist/components/StringList/styles.js +0 -16
  57. package/dist/components/index.js +0 -3
  58. package/dist/editorFeature.js +0 -16
  59. package/dist/index.d.mts +0 -8
  60. package/dist/index.mjs +0 -37
  61. package/dist/utils/index.js +0 -1
  62. package/dist/utils/slugifyImport.js +0 -3
  63. package/dist/utils/slugifyTitle.js +0 -10
  64. package/src/components/CustomSlug/index.ts +0 -1
  65. package/src/index.ts +0 -2
  66. package/src/types.d.ts +0 -3
  67. package/src/utils/index.ts +0 -3
  68. package/src/utils/parseHtml.ts +0 -56
  69. package/src/utils/slugifyImport.ts +0 -4
  70. package/src/utils/slugifyTitle.ts +0 -11
  71. package/tsconfig.json +0 -17
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../node_modules/.pnpm/tsup@8.3.5_typescript@5.4.5/node_modules/tsup/assets/cjs_shims.js","../src/components/ColorStatus/ColorStatusEdit.tsx","../src/components/ColorStatus/styles.ts","../src/components/ColorStatus/ColorStatusShow.tsx","../src/components/ColorStatus/ColorStatusList.tsx","../src/components/Slug/SlugEdit.tsx","../src/utils/parseHtml.ts","../src/utils/slugifyImport.ts","../src/utils/slugifyTitle.ts","../src/components/Slug/styles.ts","../src/components/StringList/StringList.tsx","../src/components/StringList/styles.ts","../src/components/StringList/SortableList/SortableList.tsx","../src/components/StringList/SortableList/components/SortableItem/SortableItem.tsx","../src/components/StringList/SortableList/components/SortableItem/DragHandle.tsx","../src/components/StringList/SortableList/components/SortableItem/styles.ts","../src/components/StringList/SortableList/styles.ts","../src/components/StringList/constants.ts","../src/components/StringList/StringListShow.tsx","../src/components/Slug/SlugFeature.ts","../src/utils/bundle-component.ts"],"sourcesContent":["export * from \"./components/index.js\";\r\nexport { parseHtml } from \"./utils/parseHtml.js\";\r\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","import React, { FC, useState, useEffect } from \"react\";\r\n\r\nimport { EditPropertyProps } from \"adminjs\";\r\nimport Select, { MultiValue, SingleValue, StylesConfig } from \"react-select\";\r\nimport chroma from \"chroma-js\";\r\n\r\nimport { ColorStatusWrapper, Label } from \"./styles\";\r\n\r\nimport type { AvailableValueType } from \"./types\";\r\n\r\ntype ColorStatusTypes = Omit<EditPropertyProps, \"where\" | \"resource\">;\r\n\r\nconst dot = (color = \"transparent\") => ({\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n\r\n \":before\": {\r\n backgroundColor: color,\r\n borderRadius: 10,\r\n content: '\" \"',\r\n display: \"block\",\r\n marginRight: 8,\r\n height: 10,\r\n width: 10,\r\n },\r\n});\r\n\r\nconst colorStyles: StylesConfig<AvailableValueType> = {\r\n control: (styles) => ({ ...styles, backgroundColor: \"white\" }),\r\n option: (styles, { data, isDisabled, isFocused, isSelected }) => {\r\n const color = chroma(data.color);\r\n return {\r\n ...styles,\r\n backgroundColor: isSelected\r\n ? data.color\r\n : isFocused\r\n ? color.alpha(0.1).css()\r\n : undefined,\r\n color: isSelected\r\n ? chroma.contrast(color, \"white\") > 2\r\n ? \"white\"\r\n : \"black\"\r\n : data.color,\r\n\r\n \":active\": {\r\n ...styles[\":active\"],\r\n backgroundColor: isSelected ? data.color : color.alpha(0.3).css(),\r\n },\r\n };\r\n },\r\n input: (styles) => ({ ...styles, ...dot() }),\r\n placeholder: (styles) => ({ ...styles, ...dot(\"#ccc\") }),\r\n singleValue: (styles, { data }) => ({ ...styles, ...dot(data.color) }),\r\n};\r\n\r\nconst ColorStatus: FC<ColorStatusTypes> = ({ property, record, onChange }) => {\r\n const availableValues = property.availableValues as AvailableValueType[];\r\n\r\n const currentOption = availableValues.find(\r\n (item) => item.value === record.params[property.path],\r\n ) as AvailableValueType;\r\n\r\n const [selectOption, setCurrentOption] = useState<\r\n SingleValue<AvailableValueType> | undefined\r\n >(currentOption);\r\n\r\n const handleSelectChange = (\r\n option: SingleValue<AvailableValueType> | MultiValue<AvailableValueType>,\r\n ) => {\r\n setCurrentOption(option as SingleValue<AvailableValueType>);\r\n };\r\n\r\n useEffect(() => {\r\n onChange(property.path, selectOption?.value);\r\n }, [selectOption]);\r\n\r\n return (\r\n <ColorStatusWrapper>\r\n <Label>{property.path}</Label>\r\n <Select\r\n className=\"basic-single\"\r\n classNamePrefix=\"select\"\r\n defaultValue={selectOption ?? availableValues[0]}\r\n onChange={handleSelectChange}\r\n isClearable={true}\r\n name=\"color\"\r\n options={availableValues}\r\n styles={colorStyles}\r\n />\r\n </ColorStatusWrapper>\r\n );\r\n};\r\n\r\nexport default ColorStatus;\r\n","import { styled } from \"@adminjs/design-system/styled-components\";\r\n\r\nexport const ColorStatusWrapper = styled.div`\r\n margin-bottom: 24px;\r\n`;\r\n\r\nexport const Label = styled.div`\r\n font-size: 12px;\r\n margin-bottom: 8px;\r\n`;\r\n\r\nexport const ShowLabel = styled.div`\r\n font-size: 12px;\r\n margin-bottom: 8px;\r\n color: rgb(137, 138, 154);\r\n`;\r\n\r\nexport const ColorStatusBadgeWrapper = styled.div`\r\n margin-bottom: 20px;\r\n`;\r\n\r\nexport const ColorStatusBadge = styled.div`\r\n background-color: ${(props: any) => props.color};\r\n width: fit-content;\r\n padding: 5px 10px;\r\n border-radius: 20px;\r\n font-size: 12px;\r\n color: white;\r\n white-space: nowrap;\r\n`;\r\n","import React, { FC } from \"react\";\r\nimport { ShowPropertyProps } from \"adminjs\";\r\n\r\nimport { ColorStatusBadgeWrapper, ColorStatusBadge, ShowLabel } from \"./styles\";\r\n\r\nimport type { AvailableValueType } from \"./types\";\r\n\r\nconst ColorStatusShow: FC<ShowPropertyProps> = ({ property, record }) => {\r\n const currentOption = property.availableValues?.find(\r\n (item) => item.value === record.params[property.path],\r\n ) as AvailableValueType;\r\n\r\n return (\r\n <ColorStatusBadgeWrapper>\r\n <ShowLabel>{property.path}</ShowLabel>\r\n <ColorStatusBadge color={currentOption.color}>\r\n {record.params[property.path]}\r\n </ColorStatusBadge>\r\n </ColorStatusBadgeWrapper>\r\n );\r\n};\r\n\r\nexport default ColorStatusShow;\r\n","import React, { FC } from \"react\";\r\nimport { ShowPropertyProps } from \"adminjs\";\r\n\r\nimport { ColorStatusBadge } from \"./styles\";\r\n\r\nimport type { AvailableValueType } from \"./types\";\r\n\r\nconst ColorStatusList: FC<ShowPropertyProps> = ({ property, record }) => {\r\n const currentOption = property.availableValues?.find(\r\n (item) => item.value === record.params[property.path],\r\n ) as AvailableValueType;\r\n\r\n return (\r\n <ColorStatusBadge color={currentOption.color}>\r\n {record.params[property.path]}\r\n </ColorStatusBadge>\r\n );\r\n};\r\n\r\nexport default ColorStatusList;\r\n","import { EditPropertyProps } from \"adminjs\";\r\nimport React, {\r\n ChangeEvent,\r\n FC,\r\n SyntheticEvent,\r\n useEffect,\r\n useState,\r\n} from \"react\";\r\nimport { ThemeProvider } from \"styled-components\";\r\n\r\nimport { theme } from \"@adminjs/design-system\";\r\n\r\nimport { slugifyTitle } from \"../../utils\";\r\n\r\nimport {\r\n StyledCustomInput,\r\n StyledGenerateButton,\r\n StyledInputWrapper,\r\n StyledLabel,\r\n} from \"./styles.js\";\r\n\r\ntype CustomSlugTypes = Omit<EditPropertyProps, \"where\">;\r\n\r\nconst SlugEdit: FC<CustomSlugTypes> = ({\r\n property,\r\n record,\r\n resource,\r\n onChange,\r\n}) => {\r\n const [inputValue, setInputValue] = useState(record.params.slug);\r\n\r\n useEffect(() => {\r\n onChange(property.path, inputValue);\r\n }, [inputValue]);\r\n\r\n return (\r\n <ThemeProvider theme={theme}>\r\n <StyledLabel htmlFor=\"customSlug\">{property.path}</StyledLabel>\r\n <StyledInputWrapper>\r\n <StyledCustomInput\r\n id={property.path}\r\n name={property.path}\r\n value={inputValue}\r\n onChange={handleInput}\r\n />\r\n <StyledGenerateButton variant=\"outlined\" onClick={generateSlug}>\r\n Generate Slug\r\n </StyledGenerateButton>\r\n </StyledInputWrapper>\r\n </ThemeProvider>\r\n );\r\n\r\n function handleInput(e: ChangeEvent<HTMLInputElement>) {\r\n setInputValue(e.target.value);\r\n }\r\n\r\n function generateSlug(e: SyntheticEvent<HTMLInputElement>) {\r\n e.preventDefault();\r\n const slugSource =\r\n record.params[property.props.sourceField ?? resource.titleProperty.name];\r\n\r\n if (slugSource) {\r\n setInputValue(slugifyTitle(slugSource));\r\n }\r\n }\r\n};\r\n\r\nexport default SlugEdit;\r\n","import edjsHTML from \"editorjs-html\";\r\n\r\ntype TableBlockType = {\r\n type: \"table\";\r\n data: {\r\n content: string[][];\r\n withHeadings: boolean;\r\n };\r\n};\r\n\r\ntype AudioPlayerBlockType = {\r\n type: \"audioPlayer\";\r\n data: {\r\n src: string;\r\n };\r\n};\r\n\r\nconst tableParser = (block: TableBlockType) => {\r\n const rows = block.data.content.map((row, index) => {\r\n const tableHtml = [];\r\n if (block.data.withHeadings && index === 0) {\r\n tableHtml.push(`<tr>${row.map((cell) => `<th>${cell}</th>`)}</tr>`);\r\n } else {\r\n tableHtml.push(`<tr>${row.map((cell) => `<td>${cell}</td>`)}</tr>`);\r\n }\r\n\r\n return tableHtml;\r\n });\r\n\r\n if (block.data.withHeadings) {\r\n const heading = rows[0] as string[];\r\n const [, ...content] = rows;\r\n\r\n return `<table><thead>${heading.join(\"\")}</thead><tbody>${content.join(\"\")}</tbody></table>`;\r\n } else {\r\n return `<table><tbody>${rows.join(\"\")}</tbody></table>`;\r\n }\r\n};\r\n\r\nconst audioPlayerParser = (block: AudioPlayerBlockType) => {\r\n return `<audio controls src={${block.data.src}} />`;\r\n};\r\n\r\nexport const parseHtml = (jsonData: string) => {\r\n const edjsParser = edjsHTML({\r\n table: tableParser,\r\n audioPlayer: audioPlayerParser,\r\n });\r\n\r\n try {\r\n const data = edjsParser.parse(JSON.parse(jsonData));\r\n return String(data).replace(/>,</g, \"><\");\r\n } catch (e) {\r\n console.log(\"error\", e);\r\n }\r\n};\r\n","// This is a fix of typescript module import error\r\nimport slugify from \"slugify\";\r\n\r\nexport default slugify as unknown as typeof slugify.default;\r\n","import slugify from \"./slugifyImport.js\";\r\n\r\nexport const slugifyTitle = (title: string) => {\r\n return slugify(title, {\r\n replacement: \"-\",\r\n remove: /[*+~.()'\"!:@]/g,\r\n lower: true,\r\n locale: \"vi\",\r\n trim: true,\r\n });\r\n};\r\n","// @ts-ignore\r\nimport { styled } from \"@adminjs/design-system/styled-components\";\r\n// @ts-ignore\r\nimport { Box, Button, Input } from \"@adminjs/design-system\";\r\n\r\nexport const StyledInputWrapper = styled(Box)`\r\n display: flex;\r\n margin-bottom: 40px;\r\n`;\r\n\r\nexport const StyledCustomInput = styled(Input)`\r\n width: 100%;\r\n margin-right: 10px;\r\n`;\r\n\r\nexport const StyledGenerateButton = styled(Button)`\r\n white-space: nowrap;\r\n`;\r\n\r\nexport const StyledLabel = styled.div`\r\n font-size: 12px;\r\n margin-bottom: 8px;\r\n text-transform: capitalize;\r\n`;\r\n","import { Button, Input, theme } from \"@adminjs/design-system\";\r\nimport { EditPropertyProps } from \"adminjs\";\r\nimport React, {\r\n ChangeEvent,\r\n FC,\r\n KeyboardEvent,\r\n SyntheticEvent,\r\n useEffect,\r\n useState,\r\n} from \"react\";\r\nimport { ThemeProvider } from \"styled-components\";\r\n\r\nimport {\r\n StyledCustomInput,\r\n StyledInputWrapper,\r\n StyledLabel,\r\n StyledListWrapper,\r\n StyledWrapper,\r\n} from \"./styles.js\";\r\n\r\nimport { SortableList } from \"./SortableList/SortableList.js\";\r\nimport { separator } from \"./constants.js\";\r\n\r\ntype ListDataTypes = {\r\n id: string;\r\n value: string;\r\n};\r\n\r\ntype StringListTypes = Omit<EditPropertyProps, \"where\" | \"resource\">;\r\n\r\ninterface StringListShowPropsType extends StringListTypes {\r\n stringListSeparator?: string;\r\n}\r\n\r\nconst StringList: FC<StringListShowPropsType> = ({\r\n record,\r\n onChange,\r\n property,\r\n stringListSeparator = separator,\r\n}) => {\r\n const stringListValue =\r\n record.params?.[property.path] ?? property.props.value ?? \"\";\r\n\r\n const initialList = stringListValue\r\n ? prepareDataForList(stringListValue)\r\n : [];\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [list, setList] = useState<ListDataTypes[]>(initialList);\r\n\r\n const serializedData = prepareDataForDatabase(list);\r\n\r\n useEffect(() => {\r\n onChange(property.path, serializedData);\r\n }, [serializedData]);\r\n\r\n return (\r\n <ThemeProvider theme={theme}>\r\n <StyledLabel htmlFor=\"custom\">{property.path}</StyledLabel>\r\n <StyledWrapper>\r\n <StyledListWrapper>\r\n <SortableList\r\n items={list}\r\n onChange={setList}\r\n renderItem={(item) => (\r\n <SortableList.Item id={item.id} onDelete={handleDeleteButton}>\r\n {item.value}\r\n </SortableList.Item>\r\n )}\r\n />\r\n </StyledListWrapper>\r\n <StyledInputWrapper>\r\n <Input\r\n id=\"stringList\"\r\n name={property.path}\r\n value={serializedData}\r\n hidden\r\n />\r\n <StyledCustomInput\r\n id=\"custom\"\r\n name=\"customInput\"\r\n value={inputValue}\r\n onChange={handleInput}\r\n onKeyPress={handleEnterPress}\r\n />\r\n <Button variant=\"outlined\" onClick={handleAddButton}>\r\n Add\r\n </Button>\r\n </StyledInputWrapper>\r\n </StyledWrapper>\r\n </ThemeProvider>\r\n );\r\n\r\n function handleInput(e: ChangeEvent<HTMLInputElement>) {\r\n setInputValue(e.target.value);\r\n }\r\n\r\n function handleEnterPress(e: KeyboardEvent<HTMLInputElement>) {\r\n if (e.key === \"Enter\") {\r\n handleAddButton(e);\r\n }\r\n }\r\n\r\n function handleAddButton(e: SyntheticEvent<HTMLInputElement>) {\r\n e.preventDefault();\r\n\r\n if (Boolean(inputValue)) {\r\n setList([...list, createListObject(inputValue)]);\r\n\r\n setInputValue(\"\");\r\n }\r\n }\r\n\r\n function handleDeleteButton(e: ChangeEvent<HTMLInputElement>, id: string) {\r\n e.preventDefault();\r\n const newData = list.filter((item: ListDataTypes) => item.id !== id);\r\n setList(newData);\r\n }\r\n\r\n function prepareDataForDatabase(list: ListDataTypes[]) {\r\n return list.map(({ value }) => value).join(stringListSeparator);\r\n }\r\n\r\n function prepareDataForList(str: string) {\r\n return str.split(stringListSeparator).map((item) => createListObject(item));\r\n }\r\n\r\n function createListObject(value: string) {\r\n return {\r\n id: `${Date.now()}-${Math.floor(Math.random() * 1000)}`,\r\n value: value,\r\n };\r\n }\r\n};\r\n\r\nexport default StringList;\r\n","import { Box, Input } from \"@adminjs/design-system\";\r\nimport { styled } from \"@adminjs/design-system/styled-components\";\r\n\r\nexport const StyledWrapper = styled(Box)`\r\n display: flex;\r\n flex-direction: column;\r\n margin-bottom: 45px;\r\n`;\r\n\r\nexport const StyledCustomInput = styled(Input)`\r\n width: 100%;\r\n margin-right: 10px;\r\n`;\r\n\r\nexport const StyledInputWrapper = styled(Box)`\r\n display: flex;\r\n`;\r\n\r\nexport const StyledListWrapper = styled(Box)`\r\n margin-bottom: 15px;\r\n`;\r\n\r\nexport const StyledLabel = styled.div`\r\n font-size: 12px;\r\n margin-bottom: 8px;\r\n text-transform: capitalize;\r\n`;\r\n\r\nexport const StyledShowLabel = styled(StyledLabel)`\r\n line-height: 16px;\r\n color: rgb(137, 138, 154);\r\n font-weight: 300;\r\n`;\r\n\r\nexport const StyledShowWrapper = styled(Box)`\r\n margin-bottom: 35px;\r\n`;\r\n\r\nexport const StyledListItem = styled.li`\r\n margin-bottom: 5px;\r\n`;\r\n","import React, { Fragment, useMemo, useState } from \"react\";\r\nimport type { ReactNode } from \"react\";\r\n\r\nimport {\r\n DndContext,\r\n KeyboardSensor,\r\n PointerSensor,\r\n useSensor,\r\n useSensors,\r\n DragOverlay,\r\n defaultDropAnimationSideEffects,\r\n} from \"@dnd-kit/core\";\r\nimport {\r\n SortableContext,\r\n arrayMove,\r\n sortableKeyboardCoordinates,\r\n verticalListSortingStrategy,\r\n} from \"@dnd-kit/sortable\";\r\n\r\nimport type { DropAnimation } from \"@dnd-kit/core\";\r\n\r\nimport { SortableItem } from \"./components/index.js\";\r\nimport { StyledListWrapper } from \"./styles.js\";\r\n\r\nimport type { Active, UniqueIdentifier } from \"@dnd-kit/core\";\r\n\r\ninterface BaseItem {\r\n id: UniqueIdentifier;\r\n value: string;\r\n}\r\n\r\ninterface Props<T extends BaseItem> {\r\n items: T[];\r\n onChange(items: T[]): void;\r\n renderItem(item: T): ReactNode;\r\n}\r\n\r\nconst dropAnimationConfig: DropAnimation = {\r\n sideEffects: defaultDropAnimationSideEffects({\r\n styles: {\r\n active: {\r\n opacity: \"0.4\",\r\n },\r\n },\r\n }),\r\n};\r\n\r\nexport function SortableList<T extends BaseItem>({\r\n items,\r\n onChange,\r\n renderItem,\r\n}: Props<T>) {\r\n const [active, setActive] = useState<Active | null>(null);\r\n const activeItem = useMemo(\r\n () => items.find((item) => item.id === active?.id),\r\n [active, items],\r\n );\r\n const sensors = useSensors(\r\n useSensor(PointerSensor),\r\n useSensor(KeyboardSensor, {\r\n coordinateGetter: sortableKeyboardCoordinates,\r\n }),\r\n );\r\n\r\n return (\r\n <DndContext\r\n sensors={sensors}\r\n onDragStart={({ active }) => {\r\n setActive(active);\r\n }}\r\n onDragEnd={({ active, over }) => {\r\n if (over && active.id !== over?.id) {\r\n const activeIndex = items.findIndex(({ id }) => id === active.id);\r\n const overIndex = items.findIndex(({ id }) => id === over.id);\r\n\r\n onChange(arrayMove(items, activeIndex, overIndex));\r\n }\r\n setActive(null);\r\n }}\r\n onDragCancel={() => {\r\n setActive(null);\r\n }}\r\n >\r\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\r\n <StyledListWrapper role=\"application\">\r\n {items.map((item, index) => (\r\n <Fragment key={index}>{renderItem(item)}</Fragment>\r\n ))}\r\n </StyledListWrapper>\r\n </SortableContext>\r\n <DragOverlay dropAnimation={dropAnimationConfig}>\r\n {activeItem ? renderItem(activeItem) : null}\r\n </DragOverlay>\r\n </DndContext>\r\n );\r\n}\r\n\r\nSortableList.Item = SortableItem;\r\n","import React, { createContext, useMemo, ChangeEvent } from 'react';\r\nimport type { CSSProperties, PropsWithChildren } from 'react';\r\nimport { useSortable } from '@dnd-kit/sortable';\r\nimport { Button, Icon } from '@adminjs/design-system';\r\n\r\nimport { DragHandle } from './DragHandle.js';\r\nimport { StyledListItem } from './styles.js';\r\nimport type { DragContext } from './types.js';\r\n\r\ninterface SortableItemPropsType {\r\n id: string;\r\n onDelete: (e: ChangeEvent<HTMLInputElement>, id: string) => void;\r\n}\r\n\r\nconst SortableItemContext = createContext<DragContext>({\r\n attributes: {},\r\n listeners: undefined,\r\n ref() {},\r\n});\r\n\r\nexport function SortableItem({\r\n children,\r\n id,\r\n onDelete,\r\n}: PropsWithChildren<SortableItemPropsType>) {\r\n const { attributes, isDragging, listeners, setNodeRef, setActivatorNodeRef } =\r\n useSortable({ id });\r\n const context = useMemo(\r\n () => ({\r\n attributes,\r\n listeners,\r\n ref: setActivatorNodeRef,\r\n }),\r\n [attributes, listeners, setActivatorNodeRef],\r\n );\r\n\r\n const style: CSSProperties = {\r\n opacity: isDragging ? 0.4 : undefined,\r\n };\r\n\r\n return (\r\n <SortableItemContext.Provider value={context}>\r\n <StyledListItem ref={setNodeRef} style={style}>\r\n <div>\r\n <DragHandle context={SortableItemContext} />\r\n {children}\r\n </div>\r\n <Button\r\n variant=\"outlined\"\r\n color=\"danger\"\r\n size=\"icon\"\r\n onClick={(e: ChangeEvent<HTMLInputElement>) => onDelete(e, id)}\r\n >\r\n <Icon icon=\"X\" color=\"red\" />\r\n </Button>\r\n </StyledListItem>\r\n </SortableItemContext.Provider>\r\n );\r\n}\r\n","import React, { Context, FC, useContext } from \"react\";\r\n\r\nimport { StyledDragButton } from \"./styles.js\";\r\nimport type { DragContext } from \"./types.js\";\r\n\r\ninterface DragHandlePropsType {\r\n context: Context<DragContext>;\r\n}\r\n\r\nexport const DragHandle: FC<DragHandlePropsType> = ({ context }) => {\r\n const { attributes, listeners, ref } = useContext(context);\r\n\r\n return (\r\n <StyledDragButton {...attributes} {...listeners} ref={ref}>\r\n <svg viewBox=\"0 0 20 20\" width=\"13\">\r\n <path d=\"M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z\"></path>\r\n </svg>\r\n </StyledDragButton>\r\n );\r\n};\r\n","import { styled } from \"@adminjs/design-system/styled-components\";\r\n\r\nexport const StyledListItem = styled.li`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background-color: #fff;\r\n padding: 10px 20px 10px 15px;\r\n box-shadow:\r\n 0 0 0 calc(1px / var(--scale-x, 1)) rgba(63, 63, 68, 0.05),\r\n 0 1px calc(3px / var(--scale-x, 1)) 0 rgba(34, 33, 81, 0.15);\r\n border-radius: 5px;\r\n list-style: none;\r\n`;\r\n\r\nexport const StyledDragButton = styled.button`\r\n padding: 3px;\r\n margin-right: 15px;\r\n cursor: move;\r\n background: none;\r\n border: none;\r\n`;\r\n","import { styled } from '@adminjs/design-system/styled-components';\r\n\r\nexport const StyledListWrapper = styled.ul`\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n padding: 0;\r\n list-style: none;\r\n`;\r\n","export const separator = \"|\";\r\n","import React, { memo, useState, useEffect, useRef, FC } from \"react\";\r\nimport { ShowPropertyProps } from \"adminjs\";\r\n\r\nimport { ThemeProvider } from \"styled-components\";\r\nimport { theme } from \"@adminjs/design-system\";\r\n\r\nimport { StyledShowLabel, StyledShowWrapper, StyledListItem } from \"./styles\";\r\nimport { separator } from \"./constants\";\r\n\r\ninterface StringListShowPropsType extends ShowPropertyProps {\r\n stringListSeparator?: string;\r\n}\r\n\r\nconst StringListShow: FC<StringListShowPropsType> = ({\r\n property,\r\n record,\r\n stringListSeparator = separator,\r\n}) => {\r\n return (\r\n <ThemeProvider theme={theme}>\r\n <StyledShowWrapper>\r\n <StyledShowLabel>{property.path}</StyledShowLabel>\r\n {record.params.facts && (\r\n <ul>\r\n {record.params.facts\r\n .split(stringListSeparator)\r\n .map((item: string, index: number) => (\r\n <StyledListItem key={index}>{`- ${item}`}</StyledListItem>\r\n ))}\r\n </ul>\r\n )}\r\n </StyledShowWrapper>\r\n </ThemeProvider>\r\n );\r\n};\r\n\r\nexport default StringListShow;\r\n","import {buildFeature, ComponentLoader, FeatureType} from \"adminjs\";\r\nimport {bundleComponent} from \"../../utils/bundle-component\";\r\n\r\nconst COMPONENT_NAME = 'Slug'\r\n\r\ntype SlugOptions = {\r\n componentLoader: ComponentLoader\r\n key: string\r\n}\r\nconst SlugFeature = (config: SlugOptions): FeatureType => {\r\n const {componentLoader,key} = config\r\n\r\n const uploadFeature = () => {\r\n const editComponent = bundleComponent(componentLoader, COMPONENT_NAME, 'SlugEdit.tsx')\r\n return buildFeature({\r\n properties: {\r\n [key]: {\r\n isVisible: { show: false, edit: true, list: false, filter: false },\r\n components: {\r\n edit: editComponent,\r\n },\r\n },\r\n },\r\n })\r\n }\r\n\r\n return uploadFeature()\r\n}\r\n\r\nexport default SlugFeature","import path from 'path'\r\nimport * as url from 'url'\r\nimport { createRequire } from 'module'\r\n\r\nimport type { ComponentLoader } from 'adminjs'\r\n\r\nconst dirname = url.fileURLToPath(new URL('.', import.meta.url))\r\n//const __filename = url.fileURLToPath(new URL('.', import.meta.url))\r\n//const __dirname = path.dirname(__filename)\r\n//const require = createRequire(import.meta.url)\r\n//const basePath = path.dirname(require.resolve('@rulab/adminjs-components'))\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nexport const bundleComponent = (\r\n loader: ComponentLoader,\r\n componentName: string,\r\n componentFile: string,\r\n) => {\r\n const componentPath = path.join( dirname,'../src/components',componentName,componentFile)\r\n console.log('[bundleComponent] Registering:', componentPath)\r\n return loader.add(componentName, componentPath)\r\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKA,IAAM,mBAAmB,MACvB,OAAO,aAAa,cAChB,IAAI,IAAI,QAAQ,UAAU,EAAE,EAAE,OAC7B,SAAS,iBAAiB,SAAS,cAAc,OAClD,IAAI,IAAI,WAAW,SAAS,OAAO,EAAE;AAEpC,IAAM,gBAAgC,iCAAiB;;;ACX9D,mBAA+C;AAG/C,0BAA8D;AAC9D,uBAAmB;;;ACJnB,+BAAuB;AAEhB,IAAM,qBAAqB,gCAAO;AAAA;AAAA;AAIlC,IAAM,QAAQ,gCAAO;AAAA;AAAA;AAAA;AAKrB,IAAM,YAAY,gCAAO;AAAA;AAAA;AAAA;AAAA;AAMzB,IAAM,0BAA0B,gCAAO;AAAA;AAAA;AAIvC,IAAM,mBAAmB,gCAAO;AAAA,sBACjB,CAAC,UAAe,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ADVjD,IAAM,MAAM,CAAC,QAAQ,mBAAmB;AAAA,EACtC,YAAY;AAAA,EACZ,SAAS;AAAA,EAET,WAAW;AAAA,IACT,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAM,cAAgD;AAAA,EACpD,SAAS,CAAC,YAAY,EAAE,GAAG,QAAQ,iBAAiB,QAAQ;AAAA,EAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,YAAY,WAAW,WAAW,MAAM;AAC/D,UAAM,YAAQ,iBAAAA,SAAO,KAAK,KAAK;AAC/B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,iBAAiB,aACb,KAAK,QACL,YACE,MAAM,MAAM,GAAG,EAAE,IAAI,IACrB;AAAA,MACN,OAAO,aACH,iBAAAA,QAAO,SAAS,OAAO,OAAO,IAAI,IAChC,UACA,UACF,KAAK;AAAA,MAET,WAAW;AAAA,QACT,GAAG,OAAO,SAAS;AAAA,QACnB,iBAAiB,aAAa,KAAK,QAAQ,MAAM,MAAM,GAAG,EAAE,IAAI;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,IAAI,EAAE;AAAA,EAC1C,aAAa,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,IAAI,MAAM,EAAE;AAAA,EACtD,aAAa,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,GAAG,QAAQ,GAAG,IAAI,KAAK,KAAK,EAAE;AACtE;AAEA,IAAM,cAAoC,CAAC,EAAE,UAAU,QAAQ,SAAS,MAAM;AAC5E,QAAM,kBAAkB,SAAS;AAEjC,QAAM,gBAAgB,gBAAgB;AAAA,IACpC,CAAC,SAAS,KAAK,UAAU,OAAO,OAAO,SAAS,IAAI;AAAA,EACtD;AAEA,QAAM,CAAC,cAAc,gBAAgB,QAAI,uBAEvC,aAAa;AAEf,QAAM,qBAAqB,CACzB,WACG;AACH,qBAAiB,MAAyC;AAAA,EAC5D;AAEA,8BAAU,MAAM;AACd,aAAS,SAAS,MAAM,cAAc,KAAK;AAAA,EAC7C,GAAG,CAAC,YAAY,CAAC;AAEjB,SACE,6BAAAC,QAAA,cAAC,0BACC,6BAAAA,QAAA,cAAC,aAAO,SAAS,IAAK,GACtB,6BAAAA,QAAA;AAAA,IAAC,oBAAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,iBAAgB;AAAA,MAChB,cAAc,gBAAgB,gBAAgB,CAAC;AAAA,MAC/C,UAAU;AAAA,MACV,aAAa;AAAA,MACb,MAAK;AAAA,MACL,SAAS;AAAA,MACT,QAAQ;AAAA;AAAA,EACV,CACF;AAEJ;AAEA,IAAO,0BAAQ;;;AE7Ff,IAAAC,gBAA0B;AAO1B,IAAM,kBAAyC,CAAC,EAAE,UAAU,OAAO,MAAM;AACvE,QAAM,gBAAgB,SAAS,iBAAiB;AAAA,IAC9C,CAAC,SAAS,KAAK,UAAU,OAAO,OAAO,SAAS,IAAI;AAAA,EACtD;AAEA,SACE,8BAAAC,QAAA,cAAC,+BACC,8BAAAA,QAAA,cAAC,iBAAW,SAAS,IAAK,GAC1B,8BAAAA,QAAA,cAAC,oBAAiB,OAAO,cAAc,SACpC,OAAO,OAAO,SAAS,IAAI,CAC9B,CACF;AAEJ;AAEA,IAAO,0BAAQ;;;ACtBf,IAAAC,gBAA0B;AAO1B,IAAM,kBAAyC,CAAC,EAAE,UAAU,OAAO,MAAM;AACvE,QAAM,gBAAgB,SAAS,iBAAiB;AAAA,IAC9C,CAAC,SAAS,KAAK,UAAU,OAAO,OAAO,SAAS,IAAI;AAAA,EACtD;AAEA,SACE,8BAAAC,QAAA,cAAC,oBAAiB,OAAO,cAAc,SACpC,OAAO,OAAO,SAAS,IAAI,CAC9B;AAEJ;AAEA,IAAO,0BAAQ;;;AClBf,IAAAC,gBAMO;AACP,IAAAC,4BAA8B;AAE9B,IAAAC,wBAAsB;;;ACVtB,2BAAqB;AAiBrB,IAAM,cAAc,CAAC,UAA0B;AAC7C,QAAM,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,UAAU;AAClD,UAAM,YAAY,CAAC;AACnB,QAAI,MAAM,KAAK,gBAAgB,UAAU,GAAG;AAC1C,gBAAU,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,OAAO,IAAI,OAAO,CAAC,OAAO;AAAA,IACpE,OAAO;AACL,gBAAU,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,OAAO,IAAI,OAAO,CAAC,OAAO;AAAA,IACpE;AAEA,WAAO;AAAA,EACT,CAAC;AAED,MAAI,MAAM,KAAK,cAAc;AAC3B,UAAM,UAAU,KAAK,CAAC;AACtB,UAAM,CAAC,EAAE,GAAG,OAAO,IAAI;AAEvB,WAAO,iBAAiB,QAAQ,KAAK,EAAE,CAAC,kBAAkB,QAAQ,KAAK,EAAE,CAAC;AAAA,EAC5E,OAAO;AACL,WAAO,iBAAiB,KAAK,KAAK,EAAE,CAAC;AAAA,EACvC;AACF;AAEA,IAAM,oBAAoB,CAAC,UAAgC;AACzD,SAAO,wBAAwB,MAAM,KAAK,GAAG;AAC/C;AAEO,IAAM,YAAY,CAAC,aAAqB;AAC7C,QAAM,iBAAa,qBAAAC,SAAS;AAAA,IAC1B,OAAO;AAAA,IACP,aAAa;AAAA,EACf,CAAC;AAED,MAAI;AACF,UAAM,OAAO,WAAW,MAAM,KAAK,MAAM,QAAQ,CAAC;AAClD,WAAO,OAAO,IAAI,EAAE,QAAQ,QAAQ,IAAI;AAAA,EAC1C,SAAS,GAAG;AACV,YAAQ,IAAI,SAAS,CAAC;AAAA,EACxB;AACF;;;ACtDA,qBAAoB;AAEpB,IAAO,wBAAQ,eAAAC;;;ACDR,IAAM,eAAe,CAAC,UAAkB;AAC7C,SAAO,sBAAQ,OAAO;AAAA,IACpB,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACR,CAAC;AACH;;;ACTA,IAAAC,4BAAuB;AAEvB,2BAAmC;AAE5B,IAAM,yBAAqB,kCAAO,wBAAG;AAAA;AAAA;AAAA;AAKrC,IAAM,wBAAoB,kCAAO,0BAAK;AAAA;AAAA;AAAA;AAKtC,IAAM,2BAAuB,kCAAO,2BAAM;AAAA;AAAA;AAI1C,IAAM,cAAc,iCAAO;AAAA;AAAA;AAAA;AAAA;;;AJIlC,IAAM,WAAgC,CAAC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,YAAY,aAAa,QAAI,wBAAS,OAAO,OAAO,IAAI;AAE/D,+BAAU,MAAM;AACd,aAAS,SAAS,MAAM,UAAU;AAAA,EACpC,GAAG,CAAC,UAAU,CAAC;AAEf,SACE,8BAAAC,QAAA,cAAC,2CAAc,OAAO,+BACpB,8BAAAA,QAAA,cAAC,eAAY,SAAQ,gBAAc,SAAS,IAAK,GACjD,8BAAAA,QAAA,cAAC,0BACC,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,IAAI,SAAS;AAAA,MACb,MAAM,SAAS;AAAA,MACf,OAAO;AAAA,MACP,UAAU;AAAA;AAAA,EACZ,GACA,8BAAAA,QAAA,cAAC,wBAAqB,SAAQ,YAAW,SAAS,gBAAc,eAEhE,CACF,CACF;AAGF,WAAS,YAAY,GAAkC;AACrD,kBAAc,EAAE,OAAO,KAAK;AAAA,EAC9B;AAEA,WAAS,aAAa,GAAqC;AACzD,MAAE,eAAe;AACjB,UAAM,aACJ,OAAO,OAAO,SAAS,MAAM,eAAe,SAAS,cAAc,IAAI;AAEzE,QAAI,YAAY;AACd,oBAAc,aAAa,UAAU,CAAC;AAAA,IACxC;AAAA,EACF;AACF;AAEA,IAAO,mBAAQ;;;AKnEf,IAAAC,wBAAqC;AAErC,IAAAC,gBAOO;AACP,IAAAC,4BAA8B;;;ACV9B,IAAAC,wBAA2B;AAC3B,IAAAC,4BAAuB;AAEhB,IAAM,oBAAgB,kCAAO,yBAAG;AAAA;AAAA;AAAA;AAAA;AAMhC,IAAMC,yBAAoB,kCAAO,2BAAK;AAAA;AAAA;AAAA;AAKtC,IAAMC,0BAAqB,kCAAO,yBAAG;AAAA;AAAA;AAIrC,IAAM,wBAAoB,kCAAO,yBAAG;AAAA;AAAA;AAIpC,IAAMC,eAAc,iCAAO;AAAA;AAAA;AAAA;AAAA;AAM3B,IAAM,sBAAkB,kCAAOA,YAAW;AAAA;AAAA;AAAA;AAAA;AAM1C,IAAM,wBAAoB,kCAAO,yBAAG;AAAA;AAAA;AAIpC,IAAM,iBAAiB,iCAAO;AAAA;AAAA;;;ACtCrC,IAAAC,gBAAmD;AAGnD,kBAQO;AACP,IAAAC,mBAKO;;;ACjBP,IAAAC,gBAA2D;AAE3D,sBAA4B;AAC5B,IAAAC,wBAA6B;;;ACH7B,IAAAC,gBAA+C;;;ACA/C,IAAAC,4BAAuB;AAEhB,IAAMC,kBAAiB,iCAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAa9B,IAAM,mBAAmB,iCAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ADNhC,IAAM,aAAsC,CAAC,EAAE,QAAQ,MAAM;AAClE,QAAM,EAAE,YAAY,WAAW,IAAI,QAAI,0BAAW,OAAO;AAEzD,SACE,8BAAAC,QAAA,cAAC,oBAAkB,GAAG,YAAa,GAAG,WAAW,OAC/C,8BAAAA,QAAA,cAAC,SAAI,SAAQ,aAAY,OAAM,QAC7B,8BAAAA,QAAA,cAAC,UAAK,GAAE,yPAAwP,CAClQ,CACF;AAEJ;;;ADLA,IAAM,0BAAsB,6BAA2B;AAAA,EACrD,YAAY,CAAC;AAAA,EACb,WAAW;AAAA,EACX,MAAM;AAAA,EAAC;AACT,CAAC;AAEM,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,GAA6C;AAC3C,QAAM,EAAE,YAAY,YAAY,WAAW,YAAY,oBAAoB,QACzE,6BAAY,EAAE,GAAG,CAAC;AACpB,QAAM,cAAU;AAAA,IACd,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAK;AAAA,IACP;AAAA,IACA,CAAC,YAAY,WAAW,mBAAmB;AAAA,EAC7C;AAEA,QAAM,QAAuB;AAAA,IAC3B,SAAS,aAAa,MAAM;AAAA,EAC9B;AAEA,SACE,8BAAAC,QAAA,cAAC,oBAAoB,UAApB,EAA6B,OAAO,WACnC,8BAAAA,QAAA,cAACC,iBAAA,EAAe,KAAK,YAAY,SAC/B,8BAAAD,QAAA,cAAC,aACC,8BAAAA,QAAA,cAAC,cAAW,SAAS,qBAAqB,GACzC,QACH,GACA,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,MAAK;AAAA,MACL,SAAS,CAAC,MAAqC,SAAS,GAAG,EAAE;AAAA;AAAA,IAE7D,8BAAAA,QAAA,cAAC,8BAAK,MAAK,KAAI,OAAM,OAAM;AAAA,EAC7B,CACF,CACF;AAEJ;;;AG1DA,IAAAE,4BAAuB;AAEhB,IAAMC,qBAAoB,iCAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AJmCxC,IAAM,sBAAqC;AAAA,EACzC,iBAAa,6CAAgC;AAAA,IAC3C,QAAQ;AAAA,MACN,QAAQ;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,aAAiC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AACF,GAAa;AACX,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAAwB,IAAI;AACxD,QAAM,iBAAa;AAAA,IACjB,MAAM,MAAM,KAAK,CAAC,SAAS,KAAK,OAAO,QAAQ,EAAE;AAAA,IACjD,CAAC,QAAQ,KAAK;AAAA,EAChB;AACA,QAAM,cAAU;AAAA,QACd,uBAAU,yBAAa;AAAA,QACvB,uBAAU,4BAAgB;AAAA,MACxB,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAEA,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAa,CAAC,EAAE,QAAAC,QAAO,MAAM;AAC3B,kBAAUA,OAAM;AAAA,MAClB;AAAA,MACA,WAAW,CAAC,EAAE,QAAAA,SAAQ,KAAK,MAAM;AAC/B,YAAI,QAAQA,QAAO,OAAO,MAAM,IAAI;AAClC,gBAAM,cAAc,MAAM,UAAU,CAAC,EAAE,GAAG,MAAM,OAAOA,QAAO,EAAE;AAChE,gBAAM,YAAY,MAAM,UAAU,CAAC,EAAE,GAAG,MAAM,OAAO,KAAK,EAAE;AAE5D,uBAAS,4BAAU,OAAO,aAAa,SAAS,CAAC;AAAA,QACnD;AACA,kBAAU,IAAI;AAAA,MAChB;AAAA,MACA,cAAc,MAAM;AAClB,kBAAU,IAAI;AAAA,MAChB;AAAA;AAAA,IAEA,8BAAAD,QAAA,cAAC,oCAAgB,OAAc,UAAU,gDACvC,8BAAAA,QAAA,cAACE,oBAAA,EAAkB,MAAK,iBACrB,MAAM,IAAI,CAAC,MAAM,UAChB,8BAAAF,QAAA,cAAC,0BAAS,KAAK,SAAQ,WAAW,IAAI,CAAE,CACzC,CACH,CACF;AAAA,IACA,8BAAAA,QAAA,cAAC,2BAAY,eAAe,uBACzB,aAAa,WAAW,UAAU,IAAI,IACzC;AAAA,EACF;AAEJ;AAEA,aAAa,OAAO;;;AKjGb,IAAM,YAAY;;;APkCzB,IAAM,aAA0C,CAAC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AACxB,MAAM;AACJ,QAAM,kBACJ,OAAO,SAAS,SAAS,IAAI,KAAK,SAAS,MAAM,SAAS;AAE5D,QAAM,cAAc,kBAChB,mBAAmB,eAAe,IAClC,CAAC;AAEL,QAAM,CAAC,YAAY,aAAa,QAAI,wBAAS,EAAE;AAC/C,QAAM,CAAC,MAAM,OAAO,QAAI,wBAA0B,WAAW;AAE7D,QAAM,iBAAiB,uBAAuB,IAAI;AAElD,+BAAU,MAAM;AACd,aAAS,SAAS,MAAM,cAAc;AAAA,EACxC,GAAG,CAAC,cAAc,CAAC;AAEnB,SACE,8BAAAG,QAAA,cAAC,2CAAc,OAAO,+BACpB,8BAAAA,QAAA,cAACC,cAAA,EAAY,SAAQ,YAAU,SAAS,IAAK,GAC7C,8BAAAD,QAAA,cAAC,qBACC,8BAAAA,QAAA,cAAC,yBACC,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,YAAY,CAAC,SACX,8BAAAA,QAAA,cAAC,aAAa,MAAb,EAAkB,IAAI,KAAK,IAAI,UAAU,sBACvC,KAAK,KACR;AAAA;AAAA,EAEJ,CACF,GACA,8BAAAA,QAAA,cAACE,qBAAA,MACC,8BAAAF,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,MAAM,SAAS;AAAA,MACf,OAAO;AAAA,MACP,QAAM;AAAA;AAAA,EACR,GACA,8BAAAA,QAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,IAAG;AAAA,MACH,MAAK;AAAA,MACL,OAAO;AAAA,MACP,UAAU;AAAA,MACV,YAAY;AAAA;AAAA,EACd,GACA,8BAAAH,QAAA,cAAC,gCAAO,SAAQ,YAAW,SAAS,mBAAiB,KAErD,CACF,CACF,CACF;AAGF,WAAS,YAAY,GAAkC;AACrD,kBAAc,EAAE,OAAO,KAAK;AAAA,EAC9B;AAEA,WAAS,iBAAiB,GAAoC;AAC5D,QAAI,EAAE,QAAQ,SAAS;AACrB,sBAAgB,CAAC;AAAA,IACnB;AAAA,EACF;AAEA,WAAS,gBAAgB,GAAqC;AAC5D,MAAE,eAAe;AAEjB,QAAI,QAAQ,UAAU,GAAG;AACvB,cAAQ,CAAC,GAAG,MAAM,iBAAiB,UAAU,CAAC,CAAC;AAE/C,oBAAc,EAAE;AAAA,IAClB;AAAA,EACF;AAEA,WAAS,mBAAmB,GAAkC,IAAY;AACxE,MAAE,eAAe;AACjB,UAAM,UAAU,KAAK,OAAO,CAAC,SAAwB,KAAK,OAAO,EAAE;AACnE,YAAQ,OAAO;AAAA,EACjB;AAEA,WAAS,uBAAuBI,OAAuB;AACrD,WAAOA,MAAK,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK,EAAE,KAAK,mBAAmB;AAAA,EAChE;AAEA,WAAS,mBAAmB,KAAa;AACvC,WAAO,IAAI,MAAM,mBAAmB,EAAE,IAAI,CAAC,SAAS,iBAAiB,IAAI,CAAC;AAAA,EAC5E;AAEA,WAAS,iBAAiB,OAAe;AACvC,WAAO;AAAA,MACL,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,KAAK,OAAO,IAAI,GAAI,CAAC;AAAA,MACrD;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,qBAAQ;;;AQvIf,IAAAC,gBAA6D;AAG7D,IAAAC,4BAA8B;AAC9B,IAAAC,wBAAsB;AAStB,IAAM,iBAA8C,CAAC;AAAA,EACnD;AAAA,EACA;AAAA,EACA,sBAAsB;AACxB,MAAM;AACJ,SACE,8BAAAC,QAAA,cAAC,2CAAc,OAAO,+BACpB,8BAAAA,QAAA,cAAC,yBACC,8BAAAA,QAAA,cAAC,uBAAiB,SAAS,IAAK,GAC/B,OAAO,OAAO,SACb,8BAAAA,QAAA,cAAC,YACE,OAAO,OAAO,MACZ,MAAM,mBAAmB,EACzB,IAAI,CAAC,MAAc,UAClB,8BAAAA,QAAA,cAAC,kBAAe,KAAK,SAAQ,KAAK,IAAI,EAAG,CAC1C,CACL,CAEJ,CACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACpCf,qBAAyD;;;ACAzD,kBAAiB;AACjB,UAAqB;AAKrB,IAAM,UAAc,kBAAc,IAAI,IAAI,KAAK,aAAe,CAAC;AAOxD,IAAM,kBAAkB,CAC3B,QACA,eACA,kBACC;AACD,QAAM,gBAAgB,YAAAC,QAAK,KAAM,SAAQ,qBAAoB,eAAc,aAAa;AACxF,UAAQ,IAAI,kCAAkC,aAAa;AAC3D,SAAO,OAAO,IAAI,eAAe,aAAa;AAClD;;;ADlBA,IAAM,iBAAiB;AAMvB,IAAM,cAAc,CAAC,WAAqC;AACtD,QAAM,EAAC,iBAAgB,IAAG,IAAI;AAE9B,QAAM,gBAAgB,MAAM;AACxB,UAAM,gBAAgB,gBAAgB,iBAAiB,gBAAgB,cAAc;AACrF,eAAO,6BAAa;AAAA,MAChB,YAAY;AAAA,QACR,CAAC,GAAG,GAAG;AAAA,UACH,WAAW,EAAE,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,QAAQ,MAAM;AAAA,UACjE,YAAY;AAAA,YACR,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,SAAO,cAAc;AACzB;AAEA,IAAO,sBAAQ;","names":["chroma","React","Select","import_react","React","import_react","React","import_react","import_styled_components","import_design_system","edjsHTML","slugify","import_styled_components","React","import_design_system","import_react","import_styled_components","import_design_system","import_styled_components","StyledCustomInput","StyledInputWrapper","StyledLabel","import_react","import_sortable","import_react","import_design_system","import_react","import_styled_components","StyledListItem","React","React","StyledListItem","import_styled_components","StyledListWrapper","React","active","StyledListWrapper","React","StyledLabel","StyledInputWrapper","StyledCustomInput","list","import_react","import_styled_components","import_design_system","React","path"]}
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import React, { FC } from 'react';
2
- import { EditPropertyProps, ShowPropertyProps } from 'adminjs';
1
+ import { FC } from 'react';
2
+ import { EditPropertyProps, ShowPropertyProps, ComponentLoader, FeatureType } from 'adminjs';
3
3
 
4
4
  type ColorStatusTypes = Omit<EditPropertyProps, "where" | "resource">;
5
5
  declare const ColorStatus: FC<ColorStatusTypes>;
@@ -9,24 +9,7 @@ declare const ColorStatusShow: FC<ShowPropertyProps>;
9
9
  declare const ColorStatusList: FC<ShowPropertyProps>;
10
10
 
11
11
  type CustomSlugTypes = Omit<EditPropertyProps, "where">;
12
- declare const CustomSlug: FC<CustomSlugTypes>;
13
-
14
- declare function Editor({ property, record, onChangeAdmin, editorId }: {
15
- property: any;
16
- record: any;
17
- onChangeAdmin: any;
18
- editorId: any;
19
- }): React.JSX.Element;
20
-
21
- declare function EditorList({ property, record }: {
22
- property: any;
23
- record: any;
24
- }): React.JSX.Element;
25
-
26
- declare function EditorShow({ property, record }: {
27
- property: any;
28
- record: any;
29
- }): React.JSX.Element;
12
+ declare const SlugEdit: FC<CustomSlugTypes>;
30
13
 
31
14
  type StringListTypes = Omit<EditPropertyProps, "where" | "resource">;
32
15
  interface StringListShowPropsType$1 extends StringListTypes {
@@ -39,6 +22,12 @@ interface StringListShowPropsType extends ShowPropertyProps {
39
22
  }
40
23
  declare const StringListShow: FC<StringListShowPropsType>;
41
24
 
25
+ type SlugOptions = {
26
+ componentLoader: ComponentLoader;
27
+ key: string;
28
+ };
29
+ declare const SlugFeature: (config: SlugOptions) => FeatureType;
30
+
42
31
  declare const parseHtml: (jsonData: string) => string | undefined;
43
32
 
44
- export { ColorStatus as ColorStatusEdit, ColorStatusList, ColorStatusShow, CustomSlug, Editor, EditorList, EditorShow, StringList, StringListShow, parseHtml };
33
+ export { ColorStatus as ColorStatusEdit, ColorStatusList, ColorStatusShow, SlugEdit, SlugFeature, StringList, StringListShow, parseHtml };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import React, { FC } from 'react';
2
- import { EditPropertyProps, ShowPropertyProps } from 'adminjs';
1
+ import { FC } from 'react';
2
+ import { EditPropertyProps, ShowPropertyProps, ComponentLoader, FeatureType } from 'adminjs';
3
3
 
4
4
  type ColorStatusTypes = Omit<EditPropertyProps, "where" | "resource">;
5
5
  declare const ColorStatus: FC<ColorStatusTypes>;
@@ -9,24 +9,7 @@ declare const ColorStatusShow: FC<ShowPropertyProps>;
9
9
  declare const ColorStatusList: FC<ShowPropertyProps>;
10
10
 
11
11
  type CustomSlugTypes = Omit<EditPropertyProps, "where">;
12
- declare const CustomSlug: FC<CustomSlugTypes>;
13
-
14
- declare function Editor({ property, record, onChangeAdmin, editorId }: {
15
- property: any;
16
- record: any;
17
- onChangeAdmin: any;
18
- editorId: any;
19
- }): React.JSX.Element;
20
-
21
- declare function EditorList({ property, record }: {
22
- property: any;
23
- record: any;
24
- }): React.JSX.Element;
25
-
26
- declare function EditorShow({ property, record }: {
27
- property: any;
28
- record: any;
29
- }): React.JSX.Element;
12
+ declare const SlugEdit: FC<CustomSlugTypes>;
30
13
 
31
14
  type StringListTypes = Omit<EditPropertyProps, "where" | "resource">;
32
15
  interface StringListShowPropsType$1 extends StringListTypes {
@@ -39,6 +22,12 @@ interface StringListShowPropsType extends ShowPropertyProps {
39
22
  }
40
23
  declare const StringListShow: FC<StringListShowPropsType>;
41
24
 
25
+ type SlugOptions = {
26
+ componentLoader: ComponentLoader;
27
+ key: string;
28
+ };
29
+ declare const SlugFeature: (config: SlugOptions) => FeatureType;
30
+
42
31
  declare const parseHtml: (jsonData: string) => string | undefined;
43
32
 
44
- export { ColorStatus as ColorStatusEdit, ColorStatusList, ColorStatusShow, CustomSlug, Editor, EditorList, EditorShow, StringList, StringListShow, parseHtml };
33
+ export { ColorStatus as ColorStatusEdit, ColorStatusList, ColorStatusShow, SlugEdit, SlugFeature, StringList, StringListShow, parseHtml };