krl-alfred 2.23.7 → 2.23.8

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.
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { UploaderProps } from './props';
3
- declare const Uploader: ({ className, title, description, images, maxCount, columnCount, uploadLabel, coverBadgeText, variant, selectedIndex, showCoverBadge, accept, disabled, imagePadding, onUpload, onRemove, onSelect, }: UploaderProps) => React.JSX.Element;
3
+ declare const Uploader: ({ className, title, description, images, maxCount, columnCount, uploadLabel, coverBadgeText, variant, selectedIndexes, selectedIndex, showCoverBadge, accept, disabled, imagePadding, onUpload, onRemove, onSelect, }: UploaderProps) => React.JSX.Element;
4
4
  export default Uploader;
@@ -21,13 +21,14 @@ var Uploader_styled_1 = require("./Uploader.styled");
21
21
  var Icon_1 = __importDefault(require("../Icon/Icon"));
22
22
  var Badges_1 = __importDefault(require("../Badges/Badges"));
23
23
  var Uploader = function (_a) {
24
- var className = _a.className, title = _a.title, description = _a.description, _b = _a.images, images = _b === void 0 ? props_1.UploaderDefault.images : _b, _c = _a.maxCount, maxCount = _c === void 0 ? props_1.UploaderDefault.maxCount : _c, _d = _a.columnCount, columnCount = _d === void 0 ? props_1.UploaderDefault.columnCount : _d, _e = _a.uploadLabel, uploadLabel = _e === void 0 ? props_1.UploaderDefault.uploadLabel : _e, _f = _a.coverBadgeText, coverBadgeText = _f === void 0 ? props_1.UploaderDefault.coverBadgeText : _f, _g = _a.variant, variant = _g === void 0 ? props_1.UploaderDefault.variant : _g, _h = _a.selectedIndex, selectedIndex = _h === void 0 ? props_1.UploaderDefault.selectedIndex : _h, _j = _a.showCoverBadge, showCoverBadge = _j === void 0 ? props_1.UploaderDefault.showCoverBadge : _j, _k = _a.accept, accept = _k === void 0 ? props_1.UploaderDefault.accept : _k, _l = _a.disabled, disabled = _l === void 0 ? props_1.UploaderDefault.disabled : _l, _m = _a.imagePadding, imagePadding = _m === void 0 ? props_1.UploaderDefault.imagePadding : _m, onUpload = _a.onUpload, onRemove = _a.onRemove, onSelect = _a.onSelect;
24
+ var className = _a.className, title = _a.title, description = _a.description, _b = _a.images, images = _b === void 0 ? props_1.UploaderDefault.images : _b, _c = _a.maxCount, maxCount = _c === void 0 ? props_1.UploaderDefault.maxCount : _c, _d = _a.columnCount, columnCount = _d === void 0 ? props_1.UploaderDefault.columnCount : _d, _e = _a.uploadLabel, uploadLabel = _e === void 0 ? props_1.UploaderDefault.uploadLabel : _e, _f = _a.coverBadgeText, coverBadgeText = _f === void 0 ? props_1.UploaderDefault.coverBadgeText : _f, _g = _a.variant, variant = _g === void 0 ? props_1.UploaderDefault.variant : _g, selectedIndexes = _a.selectedIndexes, selectedIndex = _a.selectedIndex, _h = _a.showCoverBadge, showCoverBadge = _h === void 0 ? props_1.UploaderDefault.showCoverBadge : _h, _j = _a.accept, accept = _j === void 0 ? props_1.UploaderDefault.accept : _j, _k = _a.disabled, disabled = _k === void 0 ? props_1.UploaderDefault.disabled : _k, _l = _a.imagePadding, imagePadding = _l === void 0 ? props_1.UploaderDefault.imagePadding : _l, onUpload = _a.onUpload, onRemove = _a.onRemove, onSelect = _a.onSelect;
25
25
  var fileInputRef = (0, react_1.useRef)(null);
26
26
  var uploadIndexRef = (0, react_1.useRef)(null);
27
27
  var localPreviewsRef = (0, react_1.useRef)({});
28
- var _o = (0, react_1.useState)({}), localPreviews = _o[0], setLocalPreviews = _o[1];
28
+ var _m = (0, react_1.useState)({}), localPreviews = _m[0], setLocalPreviews = _m[1];
29
29
  var slots = Array.from({ length: maxCount }, function (_, index) { var _a, _b; return (_b = (_a = images[index]) !== null && _a !== void 0 ? _a : localPreviews[index]) !== null && _b !== void 0 ? _b : null; });
30
30
  var isCoverSelect = variant === 'coverSelect';
31
+ var activeSelectedIndexes = selectedIndexes !== null && selectedIndexes !== void 0 ? selectedIndexes : (selectedIndex !== undefined && selectedIndex !== null ? [selectedIndex] : props_1.UploaderDefault.selectedIndexes);
31
32
  localPreviewsRef.current = localPreviews;
32
33
  (0, react_1.useEffect)(function () {
33
34
  return function () {
@@ -107,7 +108,7 @@ var Uploader = function (_a) {
107
108
  return ((0, jsx_runtime_1.jsxs)(Uploader_styled_1.UploaderStyled, __assign({ className: className }, { children: [(title || description) && ((0, jsx_runtime_1.jsxs)(Uploader_styled_1.UploaderHeader, { children: [title && (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderTitle, { children: title }), description && (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderDescription, { children: description })] })), (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderGrid, __assign({ "$columnCount": columnCount }, { children: slots.map(function (image, index) {
108
109
  var _a, _b;
109
110
  var isEmpty = !image;
110
- var isSelected = isCoverSelect && selectedIndex === index && !isEmpty;
111
+ var isSelected = isCoverSelect && !isEmpty && activeSelectedIndexes.includes(index);
111
112
  var showCoverOnSlot = !isCoverSelect && showCoverBadge && index === 0;
112
113
  var showUploadContent = isEmpty || showCoverOnSlot;
113
114
  return ((0, jsx_runtime_1.jsxs)(Uploader_styled_1.UploaderSlot, __assign({ type: "button", "$isEmpty": isEmpty, "$isSelected": isSelected, "$disabled": disabled, disabled: disabled, onClick: function () { return handleSlotClick(index, image); } }, { children: [image && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderSlotMedia, __assign({ "$padding": imagePadding }, { children: (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderSlotImage, { src: image.src, alt: (_a = image.alt) !== null && _a !== void 0 ? _a : '' }) })), !isCoverSelect && ((0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderRemoveButton, __assign({ type: "button", "aria-label": "G\u00F6rseli kald\u0131r", onClick: function (event) { return handleRemove(event, index); } }, { children: (0, jsx_runtime_1.jsx)(Icon_1.default, { name: "Closebig" }) })))] })), showUploadContent && ((0, jsx_runtime_1.jsxs)(Uploader_styled_1.UploaderUploadContent, __assign({ "$hasImage": !isEmpty }, { children: [showCoverOnSlot && ((0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderUploadBadgeWrapper, { children: renderCoverBadge() })), (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderUploadLabel, __assign({ "$isHidden": !isEmpty && showCoverOnSlot }, { children: uploadLabel })), (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderUploadIcon, __assign({ "$isHidden": !isEmpty && showCoverOnSlot }, { children: (0, jsx_runtime_1.jsx)(Icon_1.default, { name: "PlusMd", width: "1.5rem", height: "1.5rem", color: "var(--primary)" }) }))] })))] }), (_b = image === null || image === void 0 ? void 0 : image.id) !== null && _b !== void 0 ? _b : "slot-".concat(index)));
@@ -15,6 +15,9 @@ export interface UploaderProps {
15
15
  uploadLabel?: string;
16
16
  coverBadgeText?: string;
17
17
  variant?: UploaderVariant;
18
+ /** Seçili slot index'leri (birden fazla olabilir) */
19
+ selectedIndexes?: number[];
20
+ /** @deprecated `selectedIndexes` kullan. Tek seçim için `[index]` geç. */
18
21
  selectedIndex?: number;
19
22
  showCoverBadge?: boolean;
20
23
  accept?: string;
@@ -23,6 +26,7 @@ export interface UploaderProps {
23
26
  imagePadding?: string;
24
27
  onUpload?: (index: number, file: File) => void;
25
28
  onRemove?: (index: number) => void;
29
+ /** Slot seçildiğinde çağrılır; parent selectedIndexes'i yönetir */
26
30
  onSelect?: (index: number) => void;
27
31
  }
28
32
  export declare const UploaderDefault: {
@@ -32,6 +36,7 @@ export declare const UploaderDefault: {
32
36
  uploadLabel: string;
33
37
  coverBadgeText: string;
34
38
  variant: UploaderVariant;
39
+ selectedIndexes: number[];
35
40
  selectedIndex: number;
36
41
  showCoverBadge: boolean;
37
42
  accept: string;
@@ -8,7 +8,8 @@ exports.UploaderDefault = {
8
8
  uploadLabel: 'Yükle',
9
9
  coverBadgeText: 'Kapak',
10
10
  variant: 'default',
11
- selectedIndex: 0,
11
+ selectedIndexes: [],
12
+ selectedIndex: undefined,
12
13
  showCoverBadge: true,
13
14
  accept: 'image/*',
14
15
  disabled: false,
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { UploaderImage } from '../props';
3
3
  declare const _default: {
4
4
  title: string;
5
- component: ({ className, title, description, images, maxCount, columnCount, uploadLabel, coverBadgeText, variant, selectedIndex, showCoverBadge, accept, disabled, imagePadding, onUpload, onRemove, onSelect, }: import("../props").UploaderProps) => React.JSX.Element;
5
+ component: ({ className, title, description, images, maxCount, columnCount, uploadLabel, coverBadgeText, variant, selectedIndexes, selectedIndex, showCoverBadge, accept, disabled, imagePadding, onUpload, onRemove, onSelect, }: import("../props").UploaderProps) => React.JSX.Element;
6
6
  tags: string[];
7
7
  argTypes: {
8
8
  variant: {
@@ -24,6 +24,9 @@ declare const _default: {
24
24
  imagePadding: {
25
25
  control: string;
26
26
  };
27
+ selectedIndexes: {
28
+ control: string;
29
+ };
27
30
  };
28
31
  };
29
32
  export default _default;
@@ -58,7 +61,7 @@ export declare const CoverSelect: {
58
61
  title: string;
59
62
  variant: string;
60
63
  images: UploaderImage[];
61
- selectedIndex: number;
64
+ selectedIndexes: number[];
62
65
  maxCount: number;
63
66
  };
64
67
  };
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
14
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
15
  if (ar || !(i in from)) {
@@ -36,6 +47,7 @@ exports.default = {
36
47
  showCoverBadge: { control: 'boolean' },
37
48
  disabled: { control: 'boolean' },
38
49
  imagePadding: { control: 'text' },
50
+ selectedIndexes: { control: 'object' },
39
51
  },
40
52
  };
41
53
  exports.Empty = {
@@ -69,7 +81,7 @@ exports.CoverSelect = {
69
81
  title: 'Ana görselden seç',
70
82
  variant: 'coverSelect',
71
83
  images: [sampleImage],
72
- selectedIndex: 0,
84
+ selectedIndexes: [0],
73
85
  maxCount: 4,
74
86
  },
75
87
  };
@@ -94,8 +106,15 @@ exports.Interactive = {
94
106
  render: function () { return (0, jsx_runtime_1.jsx)(UploaderInteractiveStory, {}); },
95
107
  };
96
108
  var UploaderCoverSelectStory = function () {
97
- var _a = (0, react_1.useState)(0), selectedIndex = _a[0], setSelectedIndex = _a[1];
98
- return ((0, jsx_runtime_1.jsx)(Uploader_1.default, { title: "Ana g\u00F6rselden se\u00E7", variant: "coverSelect", images: [sampleImage], selectedIndex: selectedIndex, maxCount: 4, onSelect: setSelectedIndex }));
109
+ var _a = (0, react_1.useState)([0]), selectedIndexes = _a[0], setSelectedIndexes = _a[1];
110
+ var images = [sampleImage, __assign(__assign({}, sampleImage), { id: 'sample-2' }), __assign(__assign({}, sampleImage), { id: 'sample-3' })];
111
+ return ((0, jsx_runtime_1.jsx)(Uploader_1.default, { title: "Ana g\u00F6rselden se\u00E7", variant: "coverSelect", images: images, selectedIndexes: selectedIndexes, maxCount: 4, onSelect: function (index) {
112
+ setSelectedIndexes(function (prev) {
113
+ return prev.includes(index)
114
+ ? prev.filter(function (item) { return item !== index; })
115
+ : __spreadArray(__spreadArray([], prev, true), [index], false);
116
+ });
117
+ } }));
99
118
  };
100
119
  exports.CoverSelectInteractive = {
101
120
  render: function () { return (0, jsx_runtime_1.jsx)(UploaderCoverSelectStory, {}); },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "krl-alfred",
3
- "version": "2.23.7",
3
+ "version": "2.23.8",
4
4
  "files": [
5
5
  "dist"
6
6
  ],