@drivy/cobalt 1.2.0 → 1.2.2

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.
@@ -3,6 +3,7 @@ import cx from 'classnames';
3
3
  import '../Icon/index.js';
4
4
  import { validateFile } from '../utils/validateFile.js';
5
5
  import Popover from '../Popover/index.js';
6
+ import Modal from '../Modal/index.js';
6
7
  import BinIcon from '../Icon/__generated__/BinIcon.js';
7
8
  import PlusIcon from '../Icon/__generated__/PlusIcon.js';
8
9
  import ContextualWarningCircleFilledIcon from '../Icon/__generated__/ContextualWarningCircleFilledIcon.js';
@@ -17,7 +18,7 @@ const preventEventDefaults = (e) => {
17
18
  e.stopPropagation && e.stopPropagation();
18
19
  };
19
20
  const isEnterOrSpaceKey = (event) => event.key === "Enter" || event.key === " ";
20
- const PhotoDropzone = ({ className, description, deletePopoverContent, errorContent, onDropped, onPhotoDelete, initialImageUrl = "", }) => {
21
+ const PhotoDropzone = ({ className, description, deleteContent, errorContent, onDropped, onPhotoDelete, deleteContentMode = "popover", initialImageUrl = "", }) => {
21
22
  const fileInputRef = useRef(null);
22
23
  const deleteButtonRef = useRef(null);
23
24
  const [isDragging, setIsDragging] = useState(false);
@@ -161,7 +162,8 @@ const PhotoDropzone = ({ className, description, deletePopoverContent, errorCont
161
162
  // in order to have the correct events bubbling
162
163
  onTouchEnd: onDeleteButtonClick, onMouseUp: onDeleteButtonClick, onKeyUp: onDeleteKey },
163
164
  React.createElement(BinIcon, { color: "indigo" })),
164
- React.createElement(Popover, { targetRef: deleteButtonRef, isOpen: showDeletePopover, close: closeDeletePopover, placement: "left-start", distance: 12, bodySpacing: false, arrow: true }, deletePopoverContent(onDelete, closeDeletePopover))))) : (React.createElement("div", { className: "cobalt-photo-dropzone__description cobalt-photo-dropzone__description--strong" },
165
+ deleteContentMode === "modal" && (React.createElement(Modal, { isOpen: showDeletePopover, "aria-label": "delete", bodySpacing: false }, deleteContent(onDelete, closeDeletePopover))),
166
+ deleteContentMode === "popover" && (React.createElement(Popover, { targetRef: deleteButtonRef, isOpen: showDeletePopover, close: closeDeletePopover, placement: "left-start", distance: 12, bodySpacing: false, arrow: true }, deleteContent(onDelete, closeDeletePopover)))))) : (React.createElement("div", { className: "cobalt-photo-dropzone__description cobalt-photo-dropzone__description--strong" },
165
167
  description && React.createElement("div", null, description),
166
168
  React.createElement(PlusIcon, null)))),
167
169
  React.createElement("input", { ref: fileInputRef, className: "cobalt-photo-dropzone__hidden-input", type: "file", onChange: onFileInputChanged, accept: ACCEPTED_PHOTOS_TYPES.map((ext) => `.${ext}`).join(","), multiple: false })));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/PhotoDropzone/index.tsx"],"sourcesContent":["import React, {\n useState,\n DragEvent as ReactDragEvent,\n useRef,\n TouchEvent as ReactTouchEvent,\n ChangeEvent as ReactChangeEvent,\n MouseEvent as ReactMouseEvent,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n} from \"react\"\nimport cx from \"classnames\"\nimport {\n PlusIcon,\n BinIcon,\n LoadingIcon,\n ContextualWarningCircleFilledIcon,\n} from \"../Icon\"\nimport { validateFile } from \"../utils/validateFile\"\nimport Popover from \"../Popover\"\n\nconst ACCEPTED_MAX_SIZE_MB = 10\nconst ACCEPTED_PHOTOS_TYPES = [\"jpg\", \"jpeg\", \"png\", \"gif\"]\nconst ERROR_DISPLAY_TIME = 6000\nconst ACCEPTED_TYPES_LOCALE_STRING = ACCEPTED_PHOTOS_TYPES.join(\", \")\n\nexport type PhotoDropzonePropsType = {\n className?: string\n description?: string\n deletePopoverContent: (onDelete: () => void, close: () => void) => ReactNode\n errorContent: (acceptedTypes: string, maxFileSize: number) => ReactNode\n onDropped: (file: File) => Promise<void> | void\n onPhotoDelete?: () => void\n initialImageUrl?: string\n}\n\nconst preventEventDefaults = (\n e: ReactDragEvent | ReactMouseEvent | ReactKeyboardEvent | ReactTouchEvent\n) => {\n e.preventDefault && e.preventDefault()\n e.stopPropagation && e.stopPropagation()\n}\n\nconst isEnterOrSpaceKey = (event: ReactKeyboardEvent) =>\n event.key === \"Enter\" || event.key === \" \"\n\nconst PhotoDropzone = ({\n className,\n description,\n deletePopoverContent,\n errorContent,\n onDropped,\n onPhotoDelete,\n initialImageUrl = \"\",\n}: PhotoDropzonePropsType) => {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const deleteButtonRef = useRef<HTMLButtonElement>(null)\n const [isDragging, setIsDragging] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const [isErrored, setIsErrored] = useState(false)\n const [imagePreviewUrl, setImagePreviewUrl] = useState(initialImageUrl)\n const [displayDeletion, setDisplayDeletion] = useState(false)\n const [showDeletePopover, setShowDeletePopover] = useState(false)\n\n const openDeletePopover = (\n event?: ReactMouseEvent | ReactKeyboardEvent | ReactTouchEvent\n ) => {\n event && preventEventDefaults(event)\n setShowDeletePopover(true)\n }\n const closeDeletePopover = (event?: ReactMouseEvent | ReactTouchEvent) => {\n event && preventEventDefaults(event)\n setShowDeletePopover(false)\n }\n\n const onDropzoneMouseEnter = (event?: ReactMouseEvent) => {\n event && preventEventDefaults(event)\n if (imagePreviewUrl) setDisplayDeletion(true)\n }\n\n const onDropzoneMouseLeave = (event?: ReactMouseEvent) => {\n event && preventEventDefaults(event)\n if (displayDeletion && !showDeletePopover) setDisplayDeletion(false)\n }\n\n const onDropzoneClick = (event?: ReactMouseEvent | ReactTouchEvent) => {\n event && preventEventDefaults(event)\n if (isLoading) return\n if (isErrored) setIsErrored(false)\n if (imagePreviewUrl) {\n if (showDeletePopover) closeDeletePopover()\n return setDisplayDeletion(!displayDeletion)\n }\n fileInputRef.current?.click()\n }\n\n const onDropzoneKey = (event: ReactKeyboardEvent) => {\n if (showDeletePopover) return\n if (isEnterOrSpaceKey(event)) {\n onDropzoneClick()\n }\n }\n\n const onDeleteKey = (event: ReactKeyboardEvent) => {\n if (isEnterOrSpaceKey(event)) {\n openDeletePopover(event)\n }\n }\n\n const onDelete = () => {\n if (fileInputRef.current) fileInputRef.current.value = \"\"\n closeDeletePopover()\n setImagePreviewUrl(\"\")\n onPhotoDelete && onPhotoDelete()\n }\n\n const onDragEnter = (event: ReactDragEvent) => {\n preventEventDefaults(event)\n if (isErrored) setIsErrored(false)\n !imagePreviewUrl && setIsDragging(true)\n }\n\n const onDragLeave = (event: ReactDragEvent) => {\n preventEventDefaults(event)\n setIsDragging(false)\n }\n\n const processFile = async (fileToProcess: File) => {\n setIsDragging(false)\n setIsErrored(false)\n setIsLoading(true)\n\n const isValidFile = await validateFile(\n fileToProcess,\n (fileToValidate, extension) => {\n const maxFileSize = ACCEPTED_MAX_SIZE_MB * 1000 * 1000\n const acceptedFileTypes = ACCEPTED_PHOTOS_TYPES\n\n if (fileToValidate.size > maxFileSize) {\n return false\n } else if (!extension || !acceptedFileTypes.includes(extension)) {\n return false\n } else {\n return true\n }\n }\n )\n\n if (isValidFile) {\n const imageSrc = URL.createObjectURL(fileToProcess)\n setImagePreviewUrl(imageSrc)\n await onDropped(fileToProcess)\n setIsLoading(false)\n } else {\n setIsLoading(false)\n setIsErrored(true)\n setTimeout(() => {\n setIsErrored(false)\n }, ERROR_DISPLAY_TIME)\n }\n }\n\n const onFileInputChanged = (event: ReactChangeEvent<HTMLInputElement>) => {\n if (event.target.files?.length) {\n processFile(event.target.files[0])\n }\n }\n\n const onDrop = (event: ReactDragEvent<HTMLDivElement>) => {\n preventEventDefaults(event)\n if (event.dataTransfer?.files?.length && !imagePreviewUrl) {\n processFile(event.dataTransfer.files[0])\n }\n }\n\n const onDeleteButtonClick = showDeletePopover\n ? closeDeletePopover\n : openDeletePopover\n\n return (\n <div\n tabIndex={0}\n className={cx(\"cobalt-photo-dropzone\", className, {\n \"cobalt-photo-dropzone--filled\": imagePreviewUrl,\n \"cobalt-photo-dropzone--dragging\": isDragging,\n \"cobalt-photo-dropzone--loading\": isLoading,\n \"cobalt-photo-dropzone--errored\": isErrored,\n })}\n onMouseEnter={onDropzoneMouseEnter}\n onMouseLeave={onDropzoneMouseLeave}\n onDragEnter={onDragEnter}\n onDragLeave={onDragLeave}\n // Not on click because we also use mouseEnter listener\n onMouseUp={onDropzoneClick}\n onTouchEnd={onDropzoneClick}\n onKeyUp={onDropzoneKey}\n onDrop={onDrop}\n // Need to reset those listeners to avoid default browser behaviour\n onDragStart={preventEventDefaults}\n onDragEnd={preventEventDefaults}\n onDragOver={preventEventDefaults}\n >\n {isErrored && (\n <div className=\"cobalt-photo-dropzone__description\">\n <ContextualWarningCircleFilledIcon color=\"red\" />\n {errorContent(ACCEPTED_TYPES_LOCALE_STRING, ACCEPTED_MAX_SIZE_MB)}\n </div>\n )}\n {isLoading && (\n <div className=\"cobalt-photo-dropzone__description\">\n <LoadingIcon />\n </div>\n )}\n {!isLoading &&\n !isErrored &&\n (imagePreviewUrl ? (\n <>\n <img\n className=\"cobalt-photo-dropzone__preview\"\n src={imagePreviewUrl}\n />\n <div>\n <button\n className={cx(\"cobalt-photo-dropzone__delete-button\", {\n \"cobalt-photo-dropzone__delete-button--triggered\":\n displayDeletion,\n })}\n ref={deleteButtonRef}\n // Must follow the click listeners on the dropzone,\n // in order to have the correct events bubbling\n onTouchEnd={onDeleteButtonClick}\n onMouseUp={onDeleteButtonClick}\n onKeyUp={onDeleteKey}\n >\n <BinIcon color=\"indigo\" />\n </button>\n <Popover\n targetRef={deleteButtonRef}\n isOpen={showDeletePopover}\n close={closeDeletePopover}\n placement=\"left-start\"\n distance={12}\n bodySpacing={false}\n arrow\n >\n {deletePopoverContent(onDelete, closeDeletePopover)}\n </Popover>\n </div>\n </>\n ) : (\n <div className=\"cobalt-photo-dropzone__description cobalt-photo-dropzone__description--strong\">\n {description && <div>{description}</div>}\n <PlusIcon />\n </div>\n ))}\n <input\n ref={fileInputRef}\n className=\"cobalt-photo-dropzone__hidden-input\"\n type=\"file\"\n onChange={onFileInputChanged}\n accept={ACCEPTED_PHOTOS_TYPES.map((ext) => `.${ext}`).join(\",\")}\n multiple={false}\n />\n </div>\n )\n}\n\nexport default PhotoDropzone\n"],"names":[],"mappings":";;;;;;;;;;AAoBA,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAC/B,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAC/B,MAAM,4BAA4B,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAYrE,MAAM,oBAAoB,GAAG,CAC3B,CAA0E,KACxE;AACF,IAAA,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,EAAE,CAAA;AACtC,IAAA,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,EAAE,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAyB,KAClD,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAA;AAEtC,MAAA,aAAa,GAAG,CAAC,EACrB,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,eAAe,GAAG,EAAE,GACG,KAAI;AAC3B,IAAA,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;AACnD,IAAA,MAAM,eAAe,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;IACvE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEjE,IAAA,MAAM,iBAAiB,GAAG,CACxB,KAA8D,KAC5D;AACF,QAAA,KAAK,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACpC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5B,KAAC,CAAA;AACD,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAyC,KAAI;AACvE,QAAA,KAAK,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACpC,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAC7B,KAAC,CAAA;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAuB,KAAI;AACvD,QAAA,KAAK,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAA;AACpC,QAAA,IAAI,eAAe;YAAE,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC/C,KAAC,CAAA;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAuB,KAAI;AACvD,QAAA,KAAK,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,eAAe,IAAI,CAAC,iBAAiB;YAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;AACtE,KAAC,CAAA;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,KAAyC,KAAI;;AACpE,QAAA,KAAK,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAA;AACpC,QAAA,IAAI,SAAS;YAAE,OAAM;AACrB,QAAA,IAAI,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;QAClC,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,iBAAiB;AAAE,gBAAA,kBAAkB,EAAE,CAAA;AAC3C,YAAA,OAAO,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAA;SAC5C;AACD,QAAA,CAAA,EAAA,GAAA,YAAY,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAA;AAC/B,KAAC,CAAA;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,KAAyB,KAAI;AAClD,QAAA,IAAI,iBAAiB;YAAE,OAAM;AAC7B,QAAA,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,eAAe,EAAE,CAAA;SAClB;AACH,KAAC,CAAA;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,KAAyB,KAAI;AAChD,QAAA,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;YAC5B,iBAAiB,CAAC,KAAK,CAAC,CAAA;SACzB;AACH,KAAC,CAAA;IAED,MAAM,QAAQ,GAAG,MAAK;QACpB,IAAI,YAAY,CAAC,OAAO;AAAE,YAAA,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;AACzD,QAAA,kBAAkB,EAAE,CAAA;QACpB,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACtB,aAAa,IAAI,aAAa,EAAE,CAAA;AAClC,KAAC,CAAA;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,KAAqB,KAAI;QAC5C,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAC3B,QAAA,IAAI,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;AAClC,QAAA,CAAC,eAAe,IAAI,aAAa,CAAC,IAAI,CAAC,CAAA;AACzC,KAAC,CAAA;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,KAAqB,KAAI;QAC5C,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAC3B,aAAa,CAAC,KAAK,CAAC,CAAA;AACtB,KAAC,CAAA;AAED,IAAA,MAAM,WAAW,GAAG,OAAO,aAAmB,KAAI;QAChD,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,YAAY,CAAC,IAAI,CAAC,CAAA;AAElB,QAAA,MAAM,WAAW,GAAG,MAAM,YAAY,CACpC,aAAa,EACb,CAAC,cAAc,EAAE,SAAS,KAAI;AAC5B,YAAA,MAAM,WAAW,GAAG,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAA;YACtD,MAAM,iBAAiB,GAAG,qBAAqB,CAAA;AAE/C,YAAA,IAAI,cAAc,CAAC,IAAI,GAAG,WAAW,EAAE;AACrC,gBAAA,OAAO,KAAK,CAAA;aACb;iBAAM,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC/D,gBAAA,OAAO,KAAK,CAAA;aACb;iBAAM;AACL,gBAAA,OAAO,IAAI,CAAA;aACZ;AACH,SAAC,CACF,CAAA;QAED,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;YACnD,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AAC5B,YAAA,MAAM,SAAS,CAAC,aAAa,CAAC,CAAA;YAC9B,YAAY,CAAC,KAAK,CAAC,CAAA;SACpB;aAAM;YACL,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,YAAY,CAAC,IAAI,CAAC,CAAA;YAClB,UAAU,CAAC,MAAK;gBACd,YAAY,CAAC,KAAK,CAAC,CAAA;aACpB,EAAE,kBAAkB,CAAC,CAAA;SACvB;AACH,KAAC,CAAA;AAED,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAyC,KAAI;;QACvE,IAAI,CAAA,EAAA,GAAA,KAAK,CAAC,MAAM,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,EAAE;YAC9B,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;SACnC;AACH,KAAC,CAAA;AAED,IAAA,MAAM,MAAM,GAAG,CAAC,KAAqC,KAAI;;QACvD,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAC3B,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,KAAI,CAAC,eAAe,EAAE;YACzD,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;SACzC;AACH,KAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,iBAAiB;AAC3C,UAAE,kBAAkB;UAClB,iBAAiB,CAAA;AAErB,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,EAAE;AAChD,YAAA,+BAA+B,EAAE,eAAe;AAChD,YAAA,iCAAiC,EAAE,UAAU;AAC7C,YAAA,gCAAgC,EAAE,SAAS;AAC3C,YAAA,gCAAgC,EAAE,SAAS;AAC5C,SAAA,CAAC,EACF,YAAY,EAAE,oBAAoB,EAClC,YAAY,EAAE,oBAAoB,EAClC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW;;AAExB,QAAA,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM;;QAEd,WAAW,EAAE,oBAAoB,EACjC,SAAS,EAAE,oBAAoB,EAC/B,UAAU,EAAE,oBAAoB,EAAA;AAE/B,QAAA,SAAS,KACR,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,oCAAoC,EAAA;AACjD,YAAA,KAAA,CAAA,aAAA,CAAC,iCAAiC,EAAA,EAAC,KAAK,EAAC,KAAK,EAAG,CAAA;AAChD,YAAA,YAAY,CAAC,4BAA4B,EAAE,oBAAoB,CAAC,CAC7D,CACP;AACA,QAAA,SAAS,KACR,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,oCAAoC,EAAA;YACjD,KAAC,CAAA,aAAA,CAAA,WAAW,EAAG,IAAA,CAAA,CACX,CACP;AACA,QAAA,CAAC,SAAS;AACT,YAAA,CAAC,SAAS;AACV,aAAC,eAAe,IACd,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACE,gBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,gCAAgC,EAC1C,GAAG,EAAE,eAAe,EACpB,CAAA;AACF,gBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;AACE,oBAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAE,EAAE,CAAC,sCAAsC,EAAE;AACpD,4BAAA,iDAAiD,EAC/C,eAAe;yBAClB,CAAC,EACF,GAAG,EAAE,eAAe;;;wBAGpB,UAAU,EAAE,mBAAmB,EAC/B,SAAS,EAAE,mBAAmB,EAC9B,OAAO,EAAE,WAAW,EAAA;AAEpB,wBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,EAAC,EAAA,KAAK,EAAC,QAAQ,GAAG,CACnB;oBACT,KAAC,CAAA,aAAA,CAAA,OAAO,IACN,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAC,YAAY,EACtB,QAAQ,EAAE,EAAE,EACZ,WAAW,EAAE,KAAK,EAClB,KAAK,EAAA,IAAA,EAAA,EAEJ,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAC3C,CACN,CACL,KAEH,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+EAA+E,EAAA;gBAC3F,WAAW,IAAI,KAAM,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAA,WAAW,CAAO;AACxC,gBAAA,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,IAAA,CAAG,CACR,CACP,CAAC;AACJ,QAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,YAAY,EACjB,SAAS,EAAC,qCAAqC,EAC/C,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/D,QAAQ,EAAE,KAAK,EACf,CAAA,CACE,EACP;AACH;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/PhotoDropzone/index.tsx"],"sourcesContent":["import React, {\n useState,\n DragEvent as ReactDragEvent,\n useRef,\n TouchEvent as ReactTouchEvent,\n ChangeEvent as ReactChangeEvent,\n MouseEvent as ReactMouseEvent,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n} from \"react\"\nimport cx from \"classnames\"\nimport {\n PlusIcon,\n BinIcon,\n LoadingIcon,\n ContextualWarningCircleFilledIcon,\n} from \"../Icon\"\nimport { validateFile } from \"../utils/validateFile\"\nimport Popover from \"../Popover\"\nimport Modal from \"../Modal\"\n\nconst ACCEPTED_MAX_SIZE_MB = 10\nconst ACCEPTED_PHOTOS_TYPES = [\"jpg\", \"jpeg\", \"png\", \"gif\"]\nconst ERROR_DISPLAY_TIME = 6000\nconst ACCEPTED_TYPES_LOCALE_STRING = ACCEPTED_PHOTOS_TYPES.join(\", \")\n\nexport type PhotoDropzonePropsType = {\n className?: string\n description?: string\n deleteContent: (onDelete: () => void, close: () => void) => ReactNode\n deleteContentMode?: \"popover\" | \"modal\"\n errorContent: (acceptedTypes: string, maxFileSize: number) => ReactNode\n onDropped: (file: File) => Promise<void> | void\n onPhotoDelete?: () => void\n initialImageUrl?: string\n}\n\nconst preventEventDefaults = (\n e: ReactDragEvent | ReactMouseEvent | ReactKeyboardEvent | ReactTouchEvent\n) => {\n e.preventDefault && e.preventDefault()\n e.stopPropagation && e.stopPropagation()\n}\n\nconst isEnterOrSpaceKey = (event: ReactKeyboardEvent) =>\n event.key === \"Enter\" || event.key === \" \"\n\nconst PhotoDropzone = ({\n className,\n description,\n deleteContent,\n errorContent,\n onDropped,\n onPhotoDelete,\n deleteContentMode = \"popover\",\n initialImageUrl = \"\",\n}: PhotoDropzonePropsType) => {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const deleteButtonRef = useRef<HTMLButtonElement>(null)\n const [isDragging, setIsDragging] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const [isErrored, setIsErrored] = useState(false)\n const [imagePreviewUrl, setImagePreviewUrl] = useState(initialImageUrl)\n const [displayDeletion, setDisplayDeletion] = useState(false)\n const [showDeletePopover, setShowDeletePopover] = useState(false)\n\n const openDeletePopover = (\n event?: ReactMouseEvent | ReactKeyboardEvent | ReactTouchEvent\n ) => {\n event && preventEventDefaults(event)\n setShowDeletePopover(true)\n }\n const closeDeletePopover = (event?: ReactMouseEvent | ReactTouchEvent) => {\n event && preventEventDefaults(event)\n setShowDeletePopover(false)\n }\n\n const onDropzoneMouseEnter = (event?: ReactMouseEvent) => {\n event && preventEventDefaults(event)\n if (imagePreviewUrl) setDisplayDeletion(true)\n }\n\n const onDropzoneMouseLeave = (event?: ReactMouseEvent) => {\n event && preventEventDefaults(event)\n if (displayDeletion && !showDeletePopover) setDisplayDeletion(false)\n }\n\n const onDropzoneClick = (event?: ReactMouseEvent | ReactTouchEvent) => {\n event && preventEventDefaults(event)\n if (isLoading) return\n if (isErrored) setIsErrored(false)\n if (imagePreviewUrl) {\n if (showDeletePopover) closeDeletePopover()\n return setDisplayDeletion(!displayDeletion)\n }\n fileInputRef.current?.click()\n }\n\n const onDropzoneKey = (event: ReactKeyboardEvent) => {\n if (showDeletePopover) return\n if (isEnterOrSpaceKey(event)) {\n onDropzoneClick()\n }\n }\n\n const onDeleteKey = (event: ReactKeyboardEvent) => {\n if (isEnterOrSpaceKey(event)) {\n openDeletePopover(event)\n }\n }\n\n const onDelete = () => {\n if (fileInputRef.current) fileInputRef.current.value = \"\"\n closeDeletePopover()\n setImagePreviewUrl(\"\")\n onPhotoDelete && onPhotoDelete()\n }\n\n const onDragEnter = (event: ReactDragEvent) => {\n preventEventDefaults(event)\n if (isErrored) setIsErrored(false)\n !imagePreviewUrl && setIsDragging(true)\n }\n\n const onDragLeave = (event: ReactDragEvent) => {\n preventEventDefaults(event)\n setIsDragging(false)\n }\n\n const processFile = async (fileToProcess: File) => {\n setIsDragging(false)\n setIsErrored(false)\n setIsLoading(true)\n\n const isValidFile = await validateFile(\n fileToProcess,\n (fileToValidate, extension) => {\n const maxFileSize = ACCEPTED_MAX_SIZE_MB * 1000 * 1000\n const acceptedFileTypes = ACCEPTED_PHOTOS_TYPES\n\n if (fileToValidate.size > maxFileSize) {\n return false\n } else if (!extension || !acceptedFileTypes.includes(extension)) {\n return false\n } else {\n return true\n }\n }\n )\n\n if (isValidFile) {\n const imageSrc = URL.createObjectURL(fileToProcess)\n setImagePreviewUrl(imageSrc)\n await onDropped(fileToProcess)\n setIsLoading(false)\n } else {\n setIsLoading(false)\n setIsErrored(true)\n setTimeout(() => {\n setIsErrored(false)\n }, ERROR_DISPLAY_TIME)\n }\n }\n\n const onFileInputChanged = (event: ReactChangeEvent<HTMLInputElement>) => {\n if (event.target.files?.length) {\n processFile(event.target.files[0])\n }\n }\n\n const onDrop = (event: ReactDragEvent<HTMLDivElement>) => {\n preventEventDefaults(event)\n if (event.dataTransfer?.files?.length && !imagePreviewUrl) {\n processFile(event.dataTransfer.files[0])\n }\n }\n\n const onDeleteButtonClick = showDeletePopover\n ? closeDeletePopover\n : openDeletePopover\n\n return (\n <div\n tabIndex={0}\n className={cx(\"cobalt-photo-dropzone\", className, {\n \"cobalt-photo-dropzone--filled\": imagePreviewUrl,\n \"cobalt-photo-dropzone--dragging\": isDragging,\n \"cobalt-photo-dropzone--loading\": isLoading,\n \"cobalt-photo-dropzone--errored\": isErrored,\n })}\n onMouseEnter={onDropzoneMouseEnter}\n onMouseLeave={onDropzoneMouseLeave}\n onDragEnter={onDragEnter}\n onDragLeave={onDragLeave}\n // Not on click because we also use mouseEnter listener\n onMouseUp={onDropzoneClick}\n onTouchEnd={onDropzoneClick}\n onKeyUp={onDropzoneKey}\n onDrop={onDrop}\n // Need to reset those listeners to avoid default browser behaviour\n onDragStart={preventEventDefaults}\n onDragEnd={preventEventDefaults}\n onDragOver={preventEventDefaults}\n >\n {isErrored && (\n <div className=\"cobalt-photo-dropzone__description\">\n <ContextualWarningCircleFilledIcon color=\"red\" />\n {errorContent(ACCEPTED_TYPES_LOCALE_STRING, ACCEPTED_MAX_SIZE_MB)}\n </div>\n )}\n {isLoading && (\n <div className=\"cobalt-photo-dropzone__description\">\n <LoadingIcon />\n </div>\n )}\n {!isLoading &&\n !isErrored &&\n (imagePreviewUrl ? (\n <>\n <img\n className=\"cobalt-photo-dropzone__preview\"\n src={imagePreviewUrl}\n />\n <div>\n <button\n className={cx(\"cobalt-photo-dropzone__delete-button\", {\n \"cobalt-photo-dropzone__delete-button--triggered\":\n displayDeletion,\n })}\n ref={deleteButtonRef}\n // Must follow the click listeners on the dropzone,\n // in order to have the correct events bubbling\n onTouchEnd={onDeleteButtonClick}\n onMouseUp={onDeleteButtonClick}\n onKeyUp={onDeleteKey}\n >\n <BinIcon color=\"indigo\" />\n </button>\n {deleteContentMode === \"modal\" && (\n <Modal\n isOpen={showDeletePopover}\n aria-label=\"delete\"\n bodySpacing={false}\n >\n {deleteContent(onDelete, closeDeletePopover)}\n </Modal>\n )}\n\n {deleteContentMode === \"popover\" && (\n <Popover\n targetRef={deleteButtonRef}\n isOpen={showDeletePopover}\n close={closeDeletePopover}\n placement=\"left-start\"\n distance={12}\n bodySpacing={false}\n arrow\n >\n {deleteContent(onDelete, closeDeletePopover)}\n </Popover>\n )}\n </div>\n </>\n ) : (\n <div className=\"cobalt-photo-dropzone__description cobalt-photo-dropzone__description--strong\">\n {description && <div>{description}</div>}\n <PlusIcon />\n </div>\n ))}\n <input\n ref={fileInputRef}\n className=\"cobalt-photo-dropzone__hidden-input\"\n type=\"file\"\n onChange={onFileInputChanged}\n accept={ACCEPTED_PHOTOS_TYPES.map((ext) => `.${ext}`).join(\",\")}\n multiple={false}\n />\n </div>\n )\n}\n\nexport default PhotoDropzone\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drivy/cobalt",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Opinionated design system for Drivy's projects.",
5
5
  "main": "src/index.js",
6
6
  "types": "types/src/index.d.ts",
@@ -53,13 +53,13 @@
53
53
  "@storybook/react-webpack5": "7.6.20",
54
54
  "@svgr/cli": "7.0.0",
55
55
  "@testing-library/jest-dom": "6.6.3",
56
- "@testing-library/react": "16.2.0",
56
+ "@testing-library/react": "16.3.0",
57
57
  "@testing-library/react-hooks": "8.0.1",
58
58
  "@types/fs-extra": "11.0.4",
59
59
  "@types/jest": "29.5.14",
60
60
  "@types/lodash.throttle": "4.1.9",
61
61
  "@types/media-typer": "1.1.3",
62
- "@types/node": "22.13.17",
62
+ "@types/node": "22.14.1",
63
63
  "@types/react": "18.3.18",
64
64
  "@types/react-dom": "18.3.5",
65
65
  "autoprefixer": "10.4.21",
@@ -76,7 +76,7 @@
76
76
  "np": "10.2.0",
77
77
  "postcss-flexbugs-fixes": "5.0.2",
78
78
  "postcss-loader": "8.1.1",
79
- "prettier": "3.4.2",
79
+ "prettier": "3.5.3",
80
80
  "raw-loader": "4.0.2",
81
81
  "react": "18.3.1",
82
82
  "react-dom": "18.3.1",
@@ -89,16 +89,15 @@
89
89
  "rollup-plugin-copy": "3.5.0",
90
90
  "rollup-plugin-svgo": "2.0.0",
91
91
  "rollup-plugin-typescript2": "0.36.0",
92
- "sass": "1.86.1",
92
+ "sass": "1.86.2",
93
93
  "sass-loader": "13.3.3",
94
- "sharp": "0.33.5",
95
94
  "sharp-cli": "5.1.0",
96
95
  "storybook": "7.6.20",
97
96
  "style-loader": "4.0.0",
98
97
  "stylelint": "15.11.0",
99
98
  "svg2vectordrawable": "2.9.1",
100
99
  "svgo": "3.3.2",
101
- "ts-jest": "29.3.1",
100
+ "ts-jest": "29.3.2",
102
101
  "tsx": "4.19.3",
103
102
  "typescript": "5.4.5"
104
103
  },
@@ -84,6 +84,8 @@
84
84
 
85
85
  @apply c-rounded-lg;
86
86
  object-fit: cover;
87
+
88
+ overflow-clip-margin: unset; // To avoid pixalated image when used as cover (chrome)
87
89
  }
88
90
 
89
91
  .cobalt-photo-dropzone__delete-button {
@@ -2,11 +2,12 @@ import React, { ReactNode } from "react";
2
2
  export type PhotoDropzonePropsType = {
3
3
  className?: string;
4
4
  description?: string;
5
- deletePopoverContent: (onDelete: () => void, close: () => void) => ReactNode;
5
+ deleteContent: (onDelete: () => void, close: () => void) => ReactNode;
6
+ deleteContentMode?: "popover" | "modal";
6
7
  errorContent: (acceptedTypes: string, maxFileSize: number) => ReactNode;
7
8
  onDropped: (file: File) => Promise<void> | void;
8
9
  onPhotoDelete?: () => void;
9
10
  initialImageUrl?: string;
10
11
  };
11
- declare const PhotoDropzone: ({ className, description, deletePopoverContent, errorContent, onDropped, onPhotoDelete, initialImageUrl, }: PhotoDropzonePropsType) => React.JSX.Element;
12
+ declare const PhotoDropzone: ({ className, description, deleteContent, errorContent, onDropped, onPhotoDelete, deleteContentMode, initialImageUrl, }: PhotoDropzonePropsType) => React.JSX.Element;
12
13
  export default PhotoDropzone;
@@ -1 +1 @@
1
- {"version":3,"file":"getCobaltTailwindcssConfig.js","sources":["../../utils/getCobaltTailwindcssConfig.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireGetCobaltTailwindcssConfig } from \"/Users/cedric/Dev/drivy/cobalt/utils/getCobaltTailwindcssConfig.js\";\nvar getCobaltTailwindcssConfigExports = requireGetCobaltTailwindcssConfig();\nexport { getCobaltTailwindcssConfigExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(getCobaltTailwindcssConfigExports);"],"names":[],"mappings":";;;AAEA,IAAI,iCAAiC,GAAG,iCAAiC,EAAE,CAAC;AAE5E,iCAAe,aAAa,uBAAuB,CAAC,iCAAiC,CAAC;;;;"}
1
+ {"version":3,"file":"getCobaltTailwindcssConfig.js","sources":["../../utils/getCobaltTailwindcssConfig.js?commonjs-entry"],"sourcesContent":["import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireGetCobaltTailwindcssConfig } from \"/Users/thibaudesnouf/sources/cobalt/utils/getCobaltTailwindcssConfig.js\";\nvar getCobaltTailwindcssConfigExports = requireGetCobaltTailwindcssConfig();\nexport { getCobaltTailwindcssConfigExports as __moduleExports };\nexport default /*@__PURE__*/getDefaultExportFromCjs(getCobaltTailwindcssConfigExports);"],"names":[],"mappings":";;;AAEA,IAAI,iCAAiC,GAAG,iCAAiC,EAAE,CAAC;AAE5E,iCAAe,aAAa,uBAAuB,CAAC,iCAAiC,CAAC;;;;"}
@@ -175,6 +175,30 @@ function requireGetCobaltTailwindcssConfig () {
175
175
  ),
176
176
  // custom properties, not processed by Tailwindcss itself
177
177
  customText: ({ theme }) => ({
178
+ link: {
179
+ cursor: "pointer",
180
+ textDecoration: "underline",
181
+ fontWeight: 500,
182
+ textUnderlineOffset: "2px",
183
+ hover: {
184
+ textDecoration: "none",
185
+ },
186
+ focus: {
187
+ textDecoration: "none",
188
+ },
189
+ },
190
+ linkVariant: {
191
+ cursor: "pointer",
192
+ textDecoration: "none",
193
+ fontWeight: 500,
194
+ textUnderlineOffset: "2px",
195
+ hover: {
196
+ textDecoration: "underline",
197
+ },
198
+ focus: {
199
+ textDecoration: "underline",
200
+ },
201
+ },
178
202
  heading: {
179
203
  fontFamily: theme("fontFamily").brand,
180
204
  fontSize: rem(REM._36px),
@@ -1 +1 @@
1
- {"version":3,"file":"getCobaltTailwindcssConfig2.js","sources":["../../utils/getCobaltTailwindcssConfig.js"],"sourcesContent":["/*\n FOR NODE ENVIRONMENT ONLY\n Do never import tailwind file config (or helpers importing it) into Cobalt\n components/stories on src/ side, it will result to have tailwindcss unecessary\n dependencies into build files.\n See https://github.com/tailwindcss/tailwindcss/issues/634#issuecomment-459740859\n If you need data from the theme configuration, you can do the same as we did\n for colors:\n - create a json token file with the data needed (will be the single source of data)\n - In the tailwindcss config file: import and use this json file\n - In the src/ side: import and use this json file also\n*/\nconst defaultTheme = require(\"tailwindcss/defaultTheme\")\nconst breakpoints = require(\"../src/tokens/breakpoints.json\")\nconst legacyColors = require(\"../src/tokens/colors.json\")\nconst zIndexes = require(\"../src/tokens/zIndexes.json\")\nconst { getColorsUsingCSSVariables } = require(\"./helpers\")\nconst generators = require(\"./tailwindcssGenerators\")\n\nconst CSS_VAR_STATE_INTERACTIVE_COLOR = \"--c-state-interactive-color\"\n\nconst rem = (value) => `${value}rem`\n\nconst REM = {\n _12px: 0.75,\n _14px: 0.875,\n _15px: 0.9375,\n _16px: 1,\n _18px: 1.125,\n _20px: 1.25,\n _24px: 1.5,\n _28px: 1.75,\n _32px: 2,\n _36px: 2.25,\n _40px: 2.5,\n _44px: 2.75,\n _56px: 3.5,\n _60px: 3.75,\n _64px: 4,\n}\n\nconst {\n stroke: borderColors,\n background: bgColors,\n fill: fillColors,\n text: textColors,\n} = getColorsUsingCSSVariables({\n additionalColors: { transparent: \"transparent\" },\n})\n\nconst baseFont =\n \"BlinkMacSystemFont,-apple-system,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Fira Sans','Droid Sans','Helvetica Neue',Helvetica,Arial,sans-serif\"\n\nconst getCobaltTailwindcssConfig = ({ content, safelist = undefined }) => ({\n content,\n safelist: safelist,\n prefix: \"c-\",\n // utilities to disable\n corePlugins: {\n // Don't use Tailwindcss reset and default styles\n preflight: false,\n // Handle by custom classes via generators\n letterSpacing: false,\n lineHeight: false,\n borderStyle: false,\n borderWidth: false,\n fontSize: false,\n // Not needed, at least for now\n textOpacity: false,\n backgroundOpacity: false,\n caretColor: false,\n boxShadowColor: false,\n ringOffsetColor: false,\n gradientColorStops: false,\n gradientColorStopPositions: false,\n textDecorationColor: false,\n // SVG color\n stroke: false,\n fill: false,\n },\n theme: {\n extend: {\n transitionProperty: {\n interactive: `${CSS_VAR_STATE_INTERACTIVE_COLOR}`,\n DEFAULT: `${CSS_VAR_STATE_INTERACTIVE_COLOR}, ${defaultTheme.transitionProperty.DEFAULT}`,\n colors: `${CSS_VAR_STATE_INTERACTIVE_COLOR}, ${defaultTheme.transitionProperty.colors}`,\n },\n },\n colors: {\n ...legacyColors, // deprecated\n current: \"currentColor\",\n },\n semanticStateColor: {\n interactive: {\n DEFAULT: \"#00000000\",\n hover: \"#00000005\",\n press: \"#0000000F\",\n },\n onDrag: \"#00000029\",\n none: {\n DEFAULT: \"transparent\",\n hover: \"transparent\",\n press: \"transparent\",\n },\n },\n semanticBorderColor: borderColors,\n semanticBackgroundColor: {\n ...bgColors,\n ...{ fill: fillColors },\n },\n semanticFillColor: fillColors,\n borderStyle: {\n solid: \"solid\",\n dashed: \"dashed\",\n none: \"none\",\n },\n borderWidth: {\n 0: \"0\",\n \"0_5\": \"0.5px\",\n DEFAULT: \"1px\",\n 2: \"0.125rem\",\n 4: \".25rem\",\n },\n borderRadius: {\n none: \"0\",\n DEFAULT: \".25rem\", // c-rounded\n md: \".375rem\",\n lg: \".5rem\",\n xl: \".75rem\",\n \"2xl\": \"1rem\",\n full: \"9999px\", // full rounded\n },\n boxShadow: {\n DEFAULT: \"0 0.125rem 0.75rem rgba(0, 0, 0, 0.1)\", // c-shadow\n md: \"0 0.25rem 1.5rem rgba(0, 0, 0, 0.15)\",\n lg: \"0 0.375rem 2.25rem rgba(0, 0, 0, 0.2)\",\n },\n semanticTextColor: textColors,\n fontFamily: {\n base: baseFont,\n brand: `BrownPro,${baseFont}`,\n mono: \"Consolas,'Liberation Mono',Menlo,Courier,monospace\",\n },\n fontWeight: {\n regular: \"400\",\n bold: \"600\",\n },\n spacing: {\n none: \"0\",\n \"2xs\": \".25rem\",\n xs: \".5rem\",\n sm: \"1rem\",\n md: \"1.5rem\",\n lg: \"2rem\",\n xl: \"3rem\",\n \"2xl\": \"4rem\",\n },\n screens: { ...breakpoints },\n zIndex: Object.fromEntries(\n Object.entries(zIndexes).map(([key, value]) => [key, value.toString()])\n ),\n // custom properties, not processed by Tailwindcss itself\n customText: ({ theme }) => ({\n heading: {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._36px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: \"-0.5px\",\n from: {\n sm: {\n fontSize: rem(REM._56px),\n },\n },\n },\n subheading: {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._20px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: \"-0.5px\",\n from: {\n sm: {\n fontSize: rem(REM._28px),\n },\n },\n },\n \"title-xl\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._32px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: rem((-2 / 100) * REM._32px),\n from: {\n sm: {\n fontSize: rem(REM._40px),\n letterSpacing: rem((-2 / 100) * REM._40px),\n },\n },\n },\n \"title-lg\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._24px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: rem((-2 / 100) * REM._24px),\n from: {\n sm: {\n fontSize: rem(REM._32px),\n letterSpacing: rem((-2 / 100) * REM._32px),\n },\n },\n },\n \"title-md\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._20px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: rem((-2 / 100) * REM._20px),\n from: {\n sm: {\n fontSize: rem(REM._24px),\n letterSpacing: rem((-2 / 100) * REM._24px),\n },\n },\n },\n \"title-sm\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._16px),\n lineHeight: \"125%\",\n fontWeight: 600,\n letterSpacing: rem((-2 / 100) * REM._16px),\n from: {\n sm: {\n fontSize: rem(REM._20px),\n letterSpacing: rem((-2 / 100) * REM._20px),\n },\n },\n },\n \"title-xs\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._16px),\n lineHeight: \"125%\",\n fontWeight: 600,\n letterSpacing: rem((-2 / 100) * REM._16px),\n },\n //\n \"body-lg\": {\n fontFamily: theme(\"fontFamily\").base,\n fontSize: rem(REM._18px),\n lineHeight: rem(REM._24px),\n },\n \"body-md\": {\n fontFamily: theme(\"fontFamily\").base,\n fontSize: rem(REM._16px),\n lineHeight: rem(REM._24px),\n },\n \"body-sm\": {\n fontFamily: theme(\"fontFamily\").base,\n fontSize: rem(REM._12px),\n lineHeight: rem(REM._16px),\n },\n \"section-heading\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._14px),\n lineHeight: \"175%\",\n fontWeight: 700,\n textTransform: \"uppercase\",\n letterSpacing: \"-0.2px\",\n color: theme(\"semanticTextColor\").subdued,\n },\n }),\n },\n plugins: [\n // custom typography classes\n generators.text,\n // custom border width classes (width default solid style)\n generators.borderWidth,\n // custom border style classes, must be after border width plugin\n generators.borderStyle,\n // Semantic colors (handling hover/press color states)\n generators.getSemanticColorGenerator({\n type: \"semanticTextColor\",\n classPrefix: \"text\",\n cssProperty: \"color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticTextColor\",\n classPrefix: \"placeholder\",\n selectorSuffix: \"::placeholder\",\n cssProperty: \"color\",\n enableInteractiveColors: false,\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticTextColor\",\n classPrefix: \"placeholder\",\n selectorSuffix: \"::-moz-placeholder\",\n cssProperty: \"color\",\n enableInteractiveColors: false,\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBackgroundColor\",\n classPrefix: \"bg\",\n cssProperty: \"background-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticStateColor\",\n classPrefix: \"state\",\n cssProperty: CSS_VAR_STATE_INTERACTIVE_COLOR,\n additionalRules: {\n interactive: {\n \"background-image\": `linear-gradient(var(${CSS_VAR_STATE_INTERACTIVE_COLOR}), var(${CSS_VAR_STATE_INTERACTIVE_COLOR}))`,\n },\n },\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticFillColor\",\n classPrefix: \"accent\",\n cssProperty: \"accent-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border\",\n cssProperty: \"border-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-t\",\n cssProperty: \"border-top-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-b\",\n cssProperty: \"border-bottom-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-l\",\n cssProperty: \"border-left-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-r\",\n cssProperty: \"border-right-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-e\",\n cssProperty: \"border-inline-end-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-s\",\n cssProperty: \"border-inline-start-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-y\",\n cssProperty: \"border-top\",\n cssProperty2: \"border-bottom\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-x\",\n cssProperty: \"border-left\",\n cssProperty2: \"border-right\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"divide\",\n cssProperty: \"border-color\",\n selectorSuffix: \" > :not([hidden]) ~ :not([hidden])\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"outline\",\n cssProperty: \"outline-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"ring\",\n cssProperty: \"--tw-ring-color\",\n }),\n ],\n})\n\nmodule.exports = getCobaltTailwindcssConfig\n"],"names":["require$$4","require$$5"],"mappings":"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"}
1
+ {"version":3,"file":"getCobaltTailwindcssConfig2.js","sources":["../../utils/getCobaltTailwindcssConfig.js"],"sourcesContent":["/*\n FOR NODE ENVIRONMENT ONLY\n Do never import tailwind file config (or helpers importing it) into Cobalt\n components/stories on src/ side, it will result to have tailwindcss unecessary\n dependencies into build files.\n See https://github.com/tailwindcss/tailwindcss/issues/634#issuecomment-459740859\n If you need data from the theme configuration, you can do the same as we did\n for colors:\n - create a json token file with the data needed (will be the single source of data)\n - In the tailwindcss config file: import and use this json file\n - In the src/ side: import and use this json file also\n*/\nconst defaultTheme = require(\"tailwindcss/defaultTheme\")\nconst breakpoints = require(\"../src/tokens/breakpoints.json\")\nconst legacyColors = require(\"../src/tokens/colors.json\")\nconst zIndexes = require(\"../src/tokens/zIndexes.json\")\nconst { getColorsUsingCSSVariables } = require(\"./helpers\")\nconst generators = require(\"./tailwindcssGenerators\")\n\nconst CSS_VAR_STATE_INTERACTIVE_COLOR = \"--c-state-interactive-color\"\n\nconst rem = (value) => `${value}rem`\n\nconst REM = {\n _12px: 0.75,\n _14px: 0.875,\n _15px: 0.9375,\n _16px: 1,\n _18px: 1.125,\n _20px: 1.25,\n _24px: 1.5,\n _28px: 1.75,\n _32px: 2,\n _36px: 2.25,\n _40px: 2.5,\n _44px: 2.75,\n _56px: 3.5,\n _60px: 3.75,\n _64px: 4,\n}\n\nconst {\n stroke: borderColors,\n background: bgColors,\n fill: fillColors,\n text: textColors,\n} = getColorsUsingCSSVariables({\n additionalColors: { transparent: \"transparent\" },\n})\n\nconst baseFont =\n \"BlinkMacSystemFont,-apple-system,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Fira Sans','Droid Sans','Helvetica Neue',Helvetica,Arial,sans-serif\"\n\nconst getCobaltTailwindcssConfig = ({ content, safelist = undefined }) => ({\n content,\n safelist: safelist,\n prefix: \"c-\",\n // utilities to disable\n corePlugins: {\n // Don't use Tailwindcss reset and default styles\n preflight: false,\n // Handle by custom classes via generators\n letterSpacing: false,\n lineHeight: false,\n borderStyle: false,\n borderWidth: false,\n fontSize: false,\n // Not needed, at least for now\n textOpacity: false,\n backgroundOpacity: false,\n caretColor: false,\n boxShadowColor: false,\n ringOffsetColor: false,\n gradientColorStops: false,\n gradientColorStopPositions: false,\n textDecorationColor: false,\n // SVG color\n stroke: false,\n fill: false,\n },\n theme: {\n extend: {\n transitionProperty: {\n interactive: `${CSS_VAR_STATE_INTERACTIVE_COLOR}`,\n DEFAULT: `${CSS_VAR_STATE_INTERACTIVE_COLOR}, ${defaultTheme.transitionProperty.DEFAULT}`,\n colors: `${CSS_VAR_STATE_INTERACTIVE_COLOR}, ${defaultTheme.transitionProperty.colors}`,\n },\n },\n colors: {\n ...legacyColors, // deprecated\n current: \"currentColor\",\n },\n semanticStateColor: {\n interactive: {\n DEFAULT: \"#00000000\",\n hover: \"#00000005\",\n press: \"#0000000F\",\n },\n onDrag: \"#00000029\",\n none: {\n DEFAULT: \"transparent\",\n hover: \"transparent\",\n press: \"transparent\",\n },\n },\n semanticBorderColor: borderColors,\n semanticBackgroundColor: {\n ...bgColors,\n ...{ fill: fillColors },\n },\n semanticFillColor: fillColors,\n borderStyle: {\n solid: \"solid\",\n dashed: \"dashed\",\n none: \"none\",\n },\n borderWidth: {\n 0: \"0\",\n \"0_5\": \"0.5px\",\n DEFAULT: \"1px\",\n 2: \"0.125rem\",\n 4: \".25rem\",\n },\n borderRadius: {\n none: \"0\",\n DEFAULT: \".25rem\", // c-rounded\n md: \".375rem\",\n lg: \".5rem\",\n xl: \".75rem\",\n \"2xl\": \"1rem\",\n full: \"9999px\", // full rounded\n },\n boxShadow: {\n DEFAULT: \"0 0.125rem 0.75rem rgba(0, 0, 0, 0.1)\", // c-shadow\n md: \"0 0.25rem 1.5rem rgba(0, 0, 0, 0.15)\",\n lg: \"0 0.375rem 2.25rem rgba(0, 0, 0, 0.2)\",\n },\n semanticTextColor: textColors,\n fontFamily: {\n base: baseFont,\n brand: `BrownPro,${baseFont}`,\n mono: \"Consolas,'Liberation Mono',Menlo,Courier,monospace\",\n },\n fontWeight: {\n regular: \"400\",\n bold: \"600\",\n },\n spacing: {\n none: \"0\",\n \"2xs\": \".25rem\",\n xs: \".5rem\",\n sm: \"1rem\",\n md: \"1.5rem\",\n lg: \"2rem\",\n xl: \"3rem\",\n \"2xl\": \"4rem\",\n },\n screens: { ...breakpoints },\n zIndex: Object.fromEntries(\n Object.entries(zIndexes).map(([key, value]) => [key, value.toString()])\n ),\n // custom properties, not processed by Tailwindcss itself\n customText: ({ theme }) => ({\n link: {\n cursor: \"pointer\",\n textDecoration: \"underline\",\n fontWeight: 500,\n textUnderlineOffset: \"2px\",\n hover: {\n textDecoration: \"none\",\n },\n focus: {\n textDecoration: \"none\",\n },\n },\n linkVariant: {\n cursor: \"pointer\",\n textDecoration: \"none\",\n fontWeight: 500,\n textUnderlineOffset: \"2px\",\n hover: {\n textDecoration: \"underline\",\n },\n focus: {\n textDecoration: \"underline\",\n },\n },\n heading: {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._36px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: \"-0.5px\",\n from: {\n sm: {\n fontSize: rem(REM._56px),\n },\n },\n },\n subheading: {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._20px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: \"-0.5px\",\n from: {\n sm: {\n fontSize: rem(REM._28px),\n },\n },\n },\n \"title-xl\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._32px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: rem((-2 / 100) * REM._32px),\n from: {\n sm: {\n fontSize: rem(REM._40px),\n letterSpacing: rem((-2 / 100) * REM._40px),\n },\n },\n },\n \"title-lg\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._24px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: rem((-2 / 100) * REM._24px),\n from: {\n sm: {\n fontSize: rem(REM._32px),\n letterSpacing: rem((-2 / 100) * REM._32px),\n },\n },\n },\n \"title-md\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._20px),\n lineHeight: \"125%\",\n fontWeight: 700,\n letterSpacing: rem((-2 / 100) * REM._20px),\n from: {\n sm: {\n fontSize: rem(REM._24px),\n letterSpacing: rem((-2 / 100) * REM._24px),\n },\n },\n },\n \"title-sm\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._16px),\n lineHeight: \"125%\",\n fontWeight: 600,\n letterSpacing: rem((-2 / 100) * REM._16px),\n from: {\n sm: {\n fontSize: rem(REM._20px),\n letterSpacing: rem((-2 / 100) * REM._20px),\n },\n },\n },\n \"title-xs\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._16px),\n lineHeight: \"125%\",\n fontWeight: 600,\n letterSpacing: rem((-2 / 100) * REM._16px),\n },\n //\n \"body-lg\": {\n fontFamily: theme(\"fontFamily\").base,\n fontSize: rem(REM._18px),\n lineHeight: rem(REM._24px),\n },\n \"body-md\": {\n fontFamily: theme(\"fontFamily\").base,\n fontSize: rem(REM._16px),\n lineHeight: rem(REM._24px),\n },\n \"body-sm\": {\n fontFamily: theme(\"fontFamily\").base,\n fontSize: rem(REM._12px),\n lineHeight: rem(REM._16px),\n },\n \"section-heading\": {\n fontFamily: theme(\"fontFamily\").brand,\n fontSize: rem(REM._14px),\n lineHeight: \"175%\",\n fontWeight: 700,\n textTransform: \"uppercase\",\n letterSpacing: \"-0.2px\",\n color: theme(\"semanticTextColor\").subdued,\n },\n }),\n },\n plugins: [\n // custom typography classes\n generators.text,\n // custom border width classes (width default solid style)\n generators.borderWidth,\n // custom border style classes, must be after border width plugin\n generators.borderStyle,\n // Semantic colors (handling hover/press color states)\n generators.getSemanticColorGenerator({\n type: \"semanticTextColor\",\n classPrefix: \"text\",\n cssProperty: \"color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticTextColor\",\n classPrefix: \"placeholder\",\n selectorSuffix: \"::placeholder\",\n cssProperty: \"color\",\n enableInteractiveColors: false,\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticTextColor\",\n classPrefix: \"placeholder\",\n selectorSuffix: \"::-moz-placeholder\",\n cssProperty: \"color\",\n enableInteractiveColors: false,\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBackgroundColor\",\n classPrefix: \"bg\",\n cssProperty: \"background-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticStateColor\",\n classPrefix: \"state\",\n cssProperty: CSS_VAR_STATE_INTERACTIVE_COLOR,\n additionalRules: {\n interactive: {\n \"background-image\": `linear-gradient(var(${CSS_VAR_STATE_INTERACTIVE_COLOR}), var(${CSS_VAR_STATE_INTERACTIVE_COLOR}))`,\n },\n },\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticFillColor\",\n classPrefix: \"accent\",\n cssProperty: \"accent-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border\",\n cssProperty: \"border-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-t\",\n cssProperty: \"border-top-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-b\",\n cssProperty: \"border-bottom-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-l\",\n cssProperty: \"border-left-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-r\",\n cssProperty: \"border-right-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-e\",\n cssProperty: \"border-inline-end-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-s\",\n cssProperty: \"border-inline-start-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-y\",\n cssProperty: \"border-top\",\n cssProperty2: \"border-bottom\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"border-x\",\n cssProperty: \"border-left\",\n cssProperty2: \"border-right\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"divide\",\n cssProperty: \"border-color\",\n selectorSuffix: \" > :not([hidden]) ~ :not([hidden])\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"outline\",\n cssProperty: \"outline-color\",\n }),\n generators.getSemanticColorGenerator({\n type: \"semanticBorderColor\",\n classPrefix: \"ring\",\n cssProperty: \"--tw-ring-color\",\n }),\n ],\n})\n\nmodule.exports = getCobaltTailwindcssConfig\n"],"names":["require$$4","require$$5"],"mappings":"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"}
@@ -21,18 +21,23 @@ function requireTailwindcssGenerators () {
21
21
  const mediaQueries = {};
22
22
  const textUtilities = Object.keys(textTheme).reduce((acc, propName) => {
23
23
  const props = textTheme[propName];
24
- acc[`.text-${propName}`] = {
25
- fontFamily: props.fontFamily,
26
- fontSize: props.fontSize,
27
- lineHeight: props.lineHeight,
28
- }
29
- ;["fontWeight", "textTransform", "color", "letterSpacing"].forEach(
30
- (cssPropName) => {
31
- if (props[cssPropName]) {
32
- acc[`.text-${propName}`][cssPropName] = props[cssPropName];
33
- }
24
+ acc[`.text-${propName}`] = {}
25
+ ;[
26
+ "fontFamily",
27
+ "fontSize",
28
+ "lineHeight",
29
+ "fontWeight",
30
+ "textTransform",
31
+ "color",
32
+ "letterSpacing",
33
+ "textDecoration",
34
+ "textUnderlineOffset",
35
+ "cursor",
36
+ ].forEach((cssPropName) => {
37
+ if (props[cssPropName]) {
38
+ acc[`.text-${propName}`][cssPropName] = props[cssPropName];
34
39
  }
35
- );
40
+ });
36
41
  if (props.from) {
37
42
  Object.keys(props.from).forEach((breakpoint) => {
38
43
  const breakpointRule = `@media (min-width: ${breakpoints[breakpoint]})`;
@@ -45,6 +50,16 @@ function requireTailwindcssGenerators () {
45
50
  };
46
51
  });
47
52
  }
53
+ if (props.hover) {
54
+ acc[`.text-${propName}:hover`] = {
55
+ ...props.hover,
56
+ };
57
+ }
58
+ if (props.focus) {
59
+ acc[`.text-${propName}:focus`] = {
60
+ ...props.focus,
61
+ };
62
+ }
48
63
  return acc
49
64
  }, {});
50
65
  // For CSS priority, we have to put media queries after all text utilities
@@ -1 +1 @@
1
- {"version":3,"file":"tailwindcssGenerators.js","sources":["../../utils/tailwindcssGenerators.js"],"sourcesContent":["const breakpoints = require(\"../src/tokens/breakpoints.json\")\nconst { hasProp } = require(\"./helpers\")\n\nconst COLOR_STATES = {\n DEFAULT: \"DEFAULT\",\n HOVER: \"hover\",\n PRESS: \"press\",\n}\n\nconst textGenerator = ({ addUtilities, theme }) => {\n const textTheme = theme(\"customText\")\n const mediaQueries = {}\n const textUtilities = Object.keys(textTheme).reduce((acc, propName) => {\n const props = textTheme[propName]\n acc[`.text-${propName}`] = {\n fontFamily: props.fontFamily,\n fontSize: props.fontSize,\n lineHeight: props.lineHeight,\n }\n ;[\"fontWeight\", \"textTransform\", \"color\", \"letterSpacing\"].forEach(\n (cssPropName) => {\n if (props[cssPropName]) {\n acc[`.text-${propName}`][cssPropName] = props[cssPropName]\n }\n }\n )\n if (props.from) {\n Object.keys(props.from).forEach((breakpoint) => {\n const breakpointRule = `@media (min-width: ${breakpoints[breakpoint]})`\n if (!hasProp(mediaQueries, breakpointRule)) {\n mediaQueries[breakpointRule] = {}\n }\n mediaQueries[breakpointRule] = {\n ...mediaQueries[breakpointRule],\n [`.text-${propName}`]: props.from[breakpoint],\n }\n })\n }\n return acc\n }, {})\n // For CSS priority, we have to put media queries after all text utilities\n addUtilities(\n { ...textUtilities, ...mediaQueries },\n { variants: [\"responsive\"] }\n )\n}\n\nconst borderWidthGenerator = ({ addUtilities, theme }) => {\n const widthTheme = theme(\"borderWidth\")\n const widthUtilities = Object.keys(widthTheme).reduce((acc, propName) => {\n const modifier = propName === \"DEFAULT\" ? \"\" : `-${propName}`\n acc[`.border${modifier}`] = {\n borderWidth: widthTheme[propName],\n // add default solid style only if width is not 0\n ...(widthTheme[propName] === \"0\" ? {} : { borderStyle: \"solid\" }),\n }\n acc[`.border-t${modifier}`] = {\n borderTopWidth: widthTheme[propName],\n ...(widthTheme[propName] === \"0\" ? {} : { borderTopStyle: \"solid\" }),\n }\n acc[`.border-r${modifier}`] = {\n borderRightWidth: widthTheme[propName],\n ...(widthTheme[propName] === \"0\" ? {} : { borderRightStyle: \"solid\" }),\n }\n acc[`.border-b${modifier}`] = {\n borderBottomWidth: widthTheme[propName],\n ...(widthTheme[propName] === \"0\" ? {} : { borderBottomStyle: \"solid\" }),\n }\n acc[`.border-l${modifier}`] = {\n borderLeftWidth: widthTheme[propName],\n ...(widthTheme[propName] === \"0\" ? {} : { borderLeftStyle: \"solid\" }),\n }\n return acc\n }, {})\n addUtilities(widthUtilities)\n}\n\nconst borderStyleGenerator = ({ addUtilities, theme }) => {\n const styleTheme = theme(\"borderStyle\")\n const styleUtilities = Object.keys(styleTheme).reduce((acc, propName) => {\n acc[`.border-${propName}`] = { borderStyle: styleTheme[propName] }\n acc[`.border-t-${propName}`] = { borderTopStyle: styleTheme[propName] }\n acc[`.border-r-${propName}`] = { borderRightStyle: styleTheme[propName] }\n acc[`.border-b-${propName}`] = { borderBottomStyle: styleTheme[propName] }\n acc[`.border-l-${propName}`] = { borderLeftStyle: styleTheme[propName] }\n return acc\n }, {})\n addUtilities(styleUtilities)\n}\n\nconst getSemanticColorGenerator = ({\n type,\n classPrefix,\n selectorSuffix = \"\",\n cssProperty,\n cssProperty2,\n enableInteractiveColors = true,\n additionalRules = {},\n}) => {\n return ({ addUtilities, theme }) => {\n const themeProps = theme(type)\n if (!themeProps)\n throw new Error(`Didn't found theme properties for \"${type}\".`)\n const utilities = Object.keys(themeProps).reduce((acc, propName) => {\n const colorProp = themeProps[propName]\n if (typeof colorProp === \"string\") {\n acc[`.${classPrefix}-${propName}${selectorSuffix}`] = {\n [cssProperty]: colorProp,\n ...(cssProperty2 ? { [cssProperty2]: colorProp } : {}),\n ...(additionalRules[propName] || {}),\n }\n } else {\n Object.keys(colorProp).map((colorState) => {\n const subColorProp = colorProp[colorState]\n if (colorState === COLOR_STATES.DEFAULT) {\n acc[`.${classPrefix}-${propName}${selectorSuffix}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n ...(additionalRules[propName] || {}),\n }\n } else if (\n colorState === COLOR_STATES.HOVER &&\n enableInteractiveColors\n ) {\n acc[`.${classPrefix}-${propName}:hover${selectorSuffix}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n }\n acc[`.${classPrefix}-${propName}:focus${selectorSuffix}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n }\n } else if (\n colorState === COLOR_STATES.PRESS &&\n enableInteractiveColors\n ) {\n acc[`.${classPrefix}-${propName}:active${selectorSuffix}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n }\n } else if (typeof subColorProp === \"string\") {\n acc[`.${classPrefix}-${propName}-${colorState}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n }\n } else {\n Object.keys(colorProp).map((subColorState) => {\n const subSubColorProp = colorProp[colorState][subColorState]\n if (subColorState === COLOR_STATES.DEFAULT) {\n acc[`.${classPrefix}-${propName}${selectorSuffix}`] = {\n [cssProperty]: subSubColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subSubColorProp } : {}),\n }\n } else if (\n subColorState === COLOR_STATES.HOVER &&\n enableInteractiveColors\n ) {\n acc[`.${classPrefix}-${propName}:hover${selectorSuffix}`] = {\n [cssProperty]: subSubColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subSubColorProp } : {}),\n }\n acc[`.${classPrefix}-${propName}:focus${selectorSuffix}`] = {\n [cssProperty]: subSubColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subSubColorProp } : {}),\n }\n } else if (\n subColorState === COLOR_STATES.PRESS &&\n enableInteractiveColors\n ) {\n acc[`.${classPrefix}-${propName}:active${selectorSuffix}`] = {\n [cssProperty]: subSubColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subSubColorProp } : {}),\n }\n }\n })\n }\n })\n }\n return acc\n }, {})\n addUtilities(utilities)\n }\n}\n\nmodule.exports = {\n text: textGenerator,\n borderWidth: borderWidthGenerator,\n borderStyle: borderStyleGenerator,\n getSemanticColorGenerator,\n}\n"],"names":["require$$0","require$$1"],"mappings":"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"}
1
+ {"version":3,"file":"tailwindcssGenerators.js","sources":["../../utils/tailwindcssGenerators.js"],"sourcesContent":["const breakpoints = require(\"../src/tokens/breakpoints.json\")\nconst { hasProp } = require(\"./helpers\")\n\nconst COLOR_STATES = {\n DEFAULT: \"DEFAULT\",\n HOVER: \"hover\",\n PRESS: \"press\",\n}\n\nconst textGenerator = ({ addUtilities, theme }) => {\n const textTheme = theme(\"customText\")\n const mediaQueries = {}\n const textUtilities = Object.keys(textTheme).reduce((acc, propName) => {\n const props = textTheme[propName]\n acc[`.text-${propName}`] = {}\n ;[\n \"fontFamily\",\n \"fontSize\",\n \"lineHeight\",\n \"fontWeight\",\n \"textTransform\",\n \"color\",\n \"letterSpacing\",\n \"textDecoration\",\n \"textUnderlineOffset\",\n \"cursor\",\n ].forEach((cssPropName) => {\n if (props[cssPropName]) {\n acc[`.text-${propName}`][cssPropName] = props[cssPropName]\n }\n })\n if (props.from) {\n Object.keys(props.from).forEach((breakpoint) => {\n const breakpointRule = `@media (min-width: ${breakpoints[breakpoint]})`\n if (!hasProp(mediaQueries, breakpointRule)) {\n mediaQueries[breakpointRule] = {}\n }\n mediaQueries[breakpointRule] = {\n ...mediaQueries[breakpointRule],\n [`.text-${propName}`]: props.from[breakpoint],\n }\n })\n }\n if (props.hover) {\n acc[`.text-${propName}:hover`] = {\n ...props.hover,\n }\n }\n if (props.focus) {\n acc[`.text-${propName}:focus`] = {\n ...props.focus,\n }\n }\n return acc\n }, {})\n // For CSS priority, we have to put media queries after all text utilities\n addUtilities(\n { ...textUtilities, ...mediaQueries },\n { variants: [\"responsive\"] }\n )\n}\n\nconst borderWidthGenerator = ({ addUtilities, theme }) => {\n const widthTheme = theme(\"borderWidth\")\n const widthUtilities = Object.keys(widthTheme).reduce((acc, propName) => {\n const modifier = propName === \"DEFAULT\" ? \"\" : `-${propName}`\n acc[`.border${modifier}`] = {\n borderWidth: widthTheme[propName],\n // add default solid style only if width is not 0\n ...(widthTheme[propName] === \"0\" ? {} : { borderStyle: \"solid\" }),\n }\n acc[`.border-t${modifier}`] = {\n borderTopWidth: widthTheme[propName],\n ...(widthTheme[propName] === \"0\" ? {} : { borderTopStyle: \"solid\" }),\n }\n acc[`.border-r${modifier}`] = {\n borderRightWidth: widthTheme[propName],\n ...(widthTheme[propName] === \"0\" ? {} : { borderRightStyle: \"solid\" }),\n }\n acc[`.border-b${modifier}`] = {\n borderBottomWidth: widthTheme[propName],\n ...(widthTheme[propName] === \"0\" ? {} : { borderBottomStyle: \"solid\" }),\n }\n acc[`.border-l${modifier}`] = {\n borderLeftWidth: widthTheme[propName],\n ...(widthTheme[propName] === \"0\" ? {} : { borderLeftStyle: \"solid\" }),\n }\n return acc\n }, {})\n addUtilities(widthUtilities)\n}\n\nconst borderStyleGenerator = ({ addUtilities, theme }) => {\n const styleTheme = theme(\"borderStyle\")\n const styleUtilities = Object.keys(styleTheme).reduce((acc, propName) => {\n acc[`.border-${propName}`] = { borderStyle: styleTheme[propName] }\n acc[`.border-t-${propName}`] = { borderTopStyle: styleTheme[propName] }\n acc[`.border-r-${propName}`] = { borderRightStyle: styleTheme[propName] }\n acc[`.border-b-${propName}`] = { borderBottomStyle: styleTheme[propName] }\n acc[`.border-l-${propName}`] = { borderLeftStyle: styleTheme[propName] }\n return acc\n }, {})\n addUtilities(styleUtilities)\n}\n\nconst getSemanticColorGenerator = ({\n type,\n classPrefix,\n selectorSuffix = \"\",\n cssProperty,\n cssProperty2,\n enableInteractiveColors = true,\n additionalRules = {},\n}) => {\n return ({ addUtilities, theme }) => {\n const themeProps = theme(type)\n if (!themeProps)\n throw new Error(`Didn't found theme properties for \"${type}\".`)\n const utilities = Object.keys(themeProps).reduce((acc, propName) => {\n const colorProp = themeProps[propName]\n if (typeof colorProp === \"string\") {\n acc[`.${classPrefix}-${propName}${selectorSuffix}`] = {\n [cssProperty]: colorProp,\n ...(cssProperty2 ? { [cssProperty2]: colorProp } : {}),\n ...(additionalRules[propName] || {}),\n }\n } else {\n Object.keys(colorProp).map((colorState) => {\n const subColorProp = colorProp[colorState]\n if (colorState === COLOR_STATES.DEFAULT) {\n acc[`.${classPrefix}-${propName}${selectorSuffix}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n ...(additionalRules[propName] || {}),\n }\n } else if (\n colorState === COLOR_STATES.HOVER &&\n enableInteractiveColors\n ) {\n acc[`.${classPrefix}-${propName}:hover${selectorSuffix}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n }\n acc[`.${classPrefix}-${propName}:focus${selectorSuffix}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n }\n } else if (\n colorState === COLOR_STATES.PRESS &&\n enableInteractiveColors\n ) {\n acc[`.${classPrefix}-${propName}:active${selectorSuffix}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n }\n } else if (typeof subColorProp === \"string\") {\n acc[`.${classPrefix}-${propName}-${colorState}`] = {\n [cssProperty]: subColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subColorProp } : {}),\n }\n } else {\n Object.keys(colorProp).map((subColorState) => {\n const subSubColorProp = colorProp[colorState][subColorState]\n if (subColorState === COLOR_STATES.DEFAULT) {\n acc[`.${classPrefix}-${propName}${selectorSuffix}`] = {\n [cssProperty]: subSubColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subSubColorProp } : {}),\n }\n } else if (\n subColorState === COLOR_STATES.HOVER &&\n enableInteractiveColors\n ) {\n acc[`.${classPrefix}-${propName}:hover${selectorSuffix}`] = {\n [cssProperty]: subSubColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subSubColorProp } : {}),\n }\n acc[`.${classPrefix}-${propName}:focus${selectorSuffix}`] = {\n [cssProperty]: subSubColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subSubColorProp } : {}),\n }\n } else if (\n subColorState === COLOR_STATES.PRESS &&\n enableInteractiveColors\n ) {\n acc[`.${classPrefix}-${propName}:active${selectorSuffix}`] = {\n [cssProperty]: subSubColorProp,\n ...(cssProperty2 ? { [cssProperty2]: subSubColorProp } : {}),\n }\n }\n })\n }\n })\n }\n return acc\n }, {})\n addUtilities(utilities)\n }\n}\n\nmodule.exports = {\n text: textGenerator,\n borderWidth: borderWidthGenerator,\n borderStyle: borderStyleGenerator,\n getSemanticColorGenerator,\n}\n"],"names":["require$$0","require$$1"],"mappings":"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"}