pesona-ui 1.0.21 → 1.0.23
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.
- package/dist/index.cjs.js +33 -30
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +33 -30
- package/dist/index.esm.js.map +1 -1
- package/dist/types/components/Form/Checkbox/Checkbox.d.ts +1 -0
- package/dist/types/components/Form/DatePicker/DropdownDatePicker.d.ts +1 -0
- package/dist/types/components/Form/Input/Input.d.ts +1 -0
- package/dist/types/components/Form/Input/InputDate.d.ts +1 -0
- package/dist/types/components/Form/Input/InputFile.d.ts +1 -0
- package/dist/types/components/Form/Input/InputTextArea.d.ts +1 -0
- package/dist/types/components/Form/Input/InputWysiwyg.d.ts +1 -0
- package/dist/types/components/Form/Radio/Radio.d.ts +1 -0
- package/dist/types/components/Form/Radio/RadioButtonGroup.d.ts +1 -0
- package/dist/types/components/Form/Select/Select.d.ts +1 -0
- package/dist/types/components/Form/Select/SelectMultiple.d.ts +1 -0
- package/dist/types/components/Form/Select/SelectWithSearch.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -7938,7 +7938,7 @@ function v4(options, buf, offset) {
|
|
|
7938
7938
|
return unsafeStringify(rnds);
|
|
7939
7939
|
}
|
|
7940
7940
|
|
|
7941
|
-
const Checkbox = forwardRef(({ name, label, error, checked = false, onChange, ...rest }, ref) => {
|
|
7941
|
+
const Checkbox = forwardRef(({ name, label, message, error, checked = false, onChange, ...rest }, ref) => {
|
|
7942
7942
|
const uniqueCheckboxId = v4();
|
|
7943
7943
|
const handleChange = (event) => {
|
|
7944
7944
|
onChange(event);
|
|
@@ -7948,10 +7948,7 @@ const Checkbox = forwardRef(({ name, label, error, checked = false, onChange, ..
|
|
|
7948
7948
|
React.createElement("input", { className: "form-control", type: "checkbox", id: uniqueCheckboxId, name: name, ref: ref, role: "checkbox", checked: checked, onChange: handleChange, ...rest }),
|
|
7949
7949
|
React.createElement("span", { className: "checkmark" }),
|
|
7950
7950
|
label && React.createElement("span", { className: rest.required ? 'required' : '' }, label)),
|
|
7951
|
-
error && React.createElement("small", { className: "form-message" },
|
|
7952
|
-
" (",
|
|
7953
|
-
error,
|
|
7954
|
-
")")));
|
|
7951
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
7955
7952
|
});
|
|
7956
7953
|
Checkbox.displayName = 'Checkbox';
|
|
7957
7954
|
|
|
@@ -8179,7 +8176,7 @@ const useDropdownPositionAndScroll = (isOpen, dropdownOptionsRef) => {
|
|
|
8179
8176
|
}, [isOpen, dropdownOptionsRef]);
|
|
8180
8177
|
};
|
|
8181
8178
|
|
|
8182
|
-
const Select = forwardRef(({ name, label, selectLabel, size = 'md', floatingLabel = false, error, options, value = '', onChange, required, disabled, }, ref) => {
|
|
8179
|
+
const Select = forwardRef(({ name, label, message, selectLabel, size = 'md', floatingLabel = false, error, options, value = '', onChange, required, disabled, }, ref) => {
|
|
8183
8180
|
const [isOpen, setIsOpen] = useState(false);
|
|
8184
8181
|
const dropdownRef = useRef(null);
|
|
8185
8182
|
const dropdownOptionsRef = useRef(null);
|
|
@@ -8217,11 +8214,11 @@ const Select = forwardRef(({ name, label, selectLabel, size = 'md', floatingLabe
|
|
|
8217
8214
|
label,
|
|
8218
8215
|
" ",
|
|
8219
8216
|
required && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8220
|
-
error
|
|
8217
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8221
8218
|
});
|
|
8222
8219
|
Select.displayName = 'Select';
|
|
8223
8220
|
|
|
8224
|
-
const DropdownDatePicker = React.forwardRef(({ name, label, floatingLabel, locale = 'id', error, value, ...rest }, ref) => {
|
|
8221
|
+
const DropdownDatePicker = React.forwardRef(({ name, label, message, floatingLabel, locale = 'id', error, value, ...rest }, ref) => {
|
|
8225
8222
|
// Helper function to safely parse date
|
|
8226
8223
|
const parseDate = (dateString) => {
|
|
8227
8224
|
if (!dateString)
|
|
@@ -8291,7 +8288,7 @@ const DropdownDatePicker = React.forwardRef(({ name, label, floatingLabel, local
|
|
|
8291
8288
|
React.createElement("div", { className: "col-md-4" },
|
|
8292
8289
|
React.createElement(Select, { name: `${name}-year`, disabled: rest.disabled, options: yearOptions, value: dateValues.year.toString(), onChange: (e) => handleChange('year', e.target.value), "aria-label": "Year" }))),
|
|
8293
8290
|
floatingLabel && renderLabel,
|
|
8294
|
-
error
|
|
8291
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8295
8292
|
});
|
|
8296
8293
|
DropdownDatePicker.displayName = 'DropdownDatePicker';
|
|
8297
8294
|
|
|
@@ -8299,7 +8296,7 @@ const ClearInput = ({ type = 'text', className, ...rest }) => {
|
|
|
8299
8296
|
return (React.createElement("input", { type: type, className: `clear ${className}`, ...rest }));
|
|
8300
8297
|
};
|
|
8301
8298
|
|
|
8302
|
-
const Input = React.forwardRef(({ className, name, label, floatingLabel, error, ...rest }, ref) => {
|
|
8299
|
+
const Input = React.forwardRef(({ className, name, label, message, floatingLabel, error, ...rest }, ref) => {
|
|
8303
8300
|
return (React.createElement(React.Fragment, null,
|
|
8304
8301
|
!floatingLabel && label && (React.createElement("label", { htmlFor: name },
|
|
8305
8302
|
label,
|
|
@@ -8310,17 +8307,23 @@ const Input = React.forwardRef(({ className, name, label, floatingLabel, error,
|
|
|
8310
8307
|
label,
|
|
8311
8308
|
" ",
|
|
8312
8309
|
rest.required && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8313
|
-
error
|
|
8310
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8314
8311
|
});
|
|
8315
8312
|
|
|
8316
|
-
const InputDate = React.forwardRef(({ name, label, floatingLabel, value = '', error, ...rest }, ref) => {
|
|
8313
|
+
const InputDate = React.forwardRef(({ name, label, message, floatingLabel, value = '', error, ...rest }, ref) => {
|
|
8317
8314
|
const [showDatePicker, setShowDatePicker] = useState(false);
|
|
8318
|
-
const [selectedDate, setSelectedDate] = useState(value);
|
|
8315
|
+
const [selectedDate, setSelectedDate] = useState(value ?? '');
|
|
8319
8316
|
const datePickerRef = useRef(null);
|
|
8317
|
+
// Sync when external value changes
|
|
8318
|
+
React.useEffect(() => {
|
|
8319
|
+
setSelectedDate(value);
|
|
8320
|
+
}, [value]);
|
|
8321
|
+
// Helper function to safely parse date
|
|
8320
8322
|
const toggleDatePicker = (e) => {
|
|
8321
8323
|
e.stopPropagation();
|
|
8322
8324
|
setShowDatePicker((prevState) => !prevState);
|
|
8323
8325
|
};
|
|
8326
|
+
// Handle date selection from the date picker
|
|
8324
8327
|
const handleDateSelect = (date) => {
|
|
8325
8328
|
setSelectedDate(date);
|
|
8326
8329
|
setShowDatePicker(false);
|
|
@@ -8330,6 +8333,7 @@ const InputDate = React.forwardRef(({ name, label, floatingLabel, value = '', er
|
|
|
8330
8333
|
});
|
|
8331
8334
|
}
|
|
8332
8335
|
};
|
|
8336
|
+
// Close date picker when clicking outside
|
|
8333
8337
|
useOutsideClick([datePickerRef], () => {
|
|
8334
8338
|
setShowDatePicker(false);
|
|
8335
8339
|
});
|
|
@@ -8339,7 +8343,7 @@ const InputDate = React.forwardRef(({ name, label, floatingLabel, value = '', er
|
|
|
8339
8343
|
" ",
|
|
8340
8344
|
rest.required && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8341
8345
|
React.createElement("div", { className: "input-group-icon" },
|
|
8342
|
-
React.createElement(
|
|
8346
|
+
React.createElement(Input, { type: "text", className: "form-control", id: name, name: name, placeholder: !floatingLabel ? ' ' : '', ref: ref, value: selectedDate, ...rest }),
|
|
8343
8347
|
React.createElement("span", { role: "button", className: "icon", onClick: toggleDatePicker },
|
|
8344
8348
|
React.createElement(MdCalendarMonth, null)),
|
|
8345
8349
|
showDatePicker && (React.createElement("div", { ref: datePickerRef },
|
|
@@ -8348,11 +8352,11 @@ const InputDate = React.forwardRef(({ name, label, floatingLabel, value = '', er
|
|
|
8348
8352
|
label,
|
|
8349
8353
|
" ",
|
|
8350
8354
|
rest.required && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8351
|
-
error
|
|
8355
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8352
8356
|
});
|
|
8353
8357
|
InputDate.displayName = 'InputDate';
|
|
8354
8358
|
|
|
8355
|
-
const InputFile = forwardRef(({ name, label, accept, error, onChange, ...rest }, ref) => {
|
|
8359
|
+
const InputFile = forwardRef(({ name, label, message, accept, error, onChange, ...rest }, ref) => {
|
|
8356
8360
|
const handleChange = (event) => {
|
|
8357
8361
|
if (onChange) {
|
|
8358
8362
|
onChange(event);
|
|
@@ -8364,7 +8368,7 @@ const InputFile = forwardRef(({ name, label, accept, error, onChange, ...rest },
|
|
|
8364
8368
|
" ",
|
|
8365
8369
|
rest.required && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8366
8370
|
React.createElement("input", { type: "file", className: "form-control", id: name, name: name, accept: accept, onChange: handleChange, ref: ref, ...rest }),
|
|
8367
|
-
error
|
|
8371
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8368
8372
|
});
|
|
8369
8373
|
InputFile.displayName = 'InputFile';
|
|
8370
8374
|
|
|
@@ -8372,7 +8376,7 @@ const InputImageSize = () => {
|
|
|
8372
8376
|
return (React.createElement("div", null, "InputImageSize"));
|
|
8373
8377
|
};
|
|
8374
8378
|
|
|
8375
|
-
const InputTextArea = React.forwardRef(({ name, label, floatingLabel, error, ...rest }, ref) => {
|
|
8379
|
+
const InputTextArea = React.forwardRef(({ name, label, message, floatingLabel, error, ...rest }, ref) => {
|
|
8376
8380
|
return (React.createElement(React.Fragment, null,
|
|
8377
8381
|
!floatingLabel && (React.createElement("label", { htmlFor: name },
|
|
8378
8382
|
label,
|
|
@@ -8383,7 +8387,7 @@ const InputTextArea = React.forwardRef(({ name, label, floatingLabel, error, ...
|
|
|
8383
8387
|
label,
|
|
8384
8388
|
" ",
|
|
8385
8389
|
rest.required && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8386
|
-
error
|
|
8390
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8387
8391
|
});
|
|
8388
8392
|
InputTextArea.displayName = 'InputTextArea';
|
|
8389
8393
|
|
|
@@ -8394,7 +8398,7 @@ const commands = [
|
|
|
8394
8398
|
{ name: 'insertUnorderedList', label: 'Bullet List', icon: React.createElement(MdFormatListBulleted, { className: "icon" }) },
|
|
8395
8399
|
{ name: 'insertOrderedList', label: 'Number List', icon: React.createElement(MdFormatListNumbered, { className: "icon" }) },
|
|
8396
8400
|
];
|
|
8397
|
-
const InputWysiwyg = forwardRef(({ name, label, floatingLabel, error, value, ...rest }, ref) => {
|
|
8401
|
+
const InputWysiwyg = forwardRef(({ name, label, message, floatingLabel, error, value, ...rest }, ref) => {
|
|
8398
8402
|
const editorRef = useRef(null);
|
|
8399
8403
|
const [history, setHistory] = useState(['']);
|
|
8400
8404
|
const [historyIndex, setHistoryIndex] = useState(0);
|
|
@@ -8505,11 +8509,11 @@ const InputWysiwyg = forwardRef(({ name, label, floatingLabel, error, value, ...
|
|
|
8505
8509
|
label,
|
|
8506
8510
|
" ",
|
|
8507
8511
|
error && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8508
|
-
error
|
|
8512
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8509
8513
|
});
|
|
8510
8514
|
InputWysiwyg.displayName = 'InputWysiwyg';
|
|
8511
8515
|
|
|
8512
|
-
const Radio = React.forwardRef(({ name, label, options, error, ...rest }, ref) => {
|
|
8516
|
+
const Radio = React.forwardRef(({ name, label, message, options, error, ...rest }, ref) => {
|
|
8513
8517
|
return (React.createElement(React.Fragment, null,
|
|
8514
8518
|
label && (React.createElement("label", { htmlFor: name },
|
|
8515
8519
|
label,
|
|
@@ -8523,10 +8527,10 @@ const Radio = React.forwardRef(({ name, label, options, error, ...rest }, ref) =
|
|
|
8523
8527
|
ref: ref, ...rest }),
|
|
8524
8528
|
React.createElement("label", { htmlFor: uniqueRadioId }, option.label)));
|
|
8525
8529
|
})),
|
|
8526
|
-
error
|
|
8530
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8527
8531
|
});
|
|
8528
8532
|
|
|
8529
|
-
const RadioButtonGroup = React.forwardRef(({ name, label, size = 'md', options, selectedValue, error, required, ...rest }, ref) => {
|
|
8533
|
+
const RadioButtonGroup = React.forwardRef(({ name, label, message, size = 'md', options, selectedValue, error, required, ...rest }, ref) => {
|
|
8530
8534
|
return (React.createElement(React.Fragment, null,
|
|
8531
8535
|
label && (React.createElement("label", { htmlFor: name },
|
|
8532
8536
|
label,
|
|
@@ -8535,11 +8539,11 @@ const RadioButtonGroup = React.forwardRef(({ name, label, size = 'md', options,
|
|
|
8535
8539
|
React.createElement("div", { className: "btn-group", "data-toggle": "buttons" }, options.map((option) => (React.createElement("label", { key: option.value, className: `btn auto btn-default btn-${size} ${option.value === selectedValue ? 'active' : ''}` },
|
|
8536
8540
|
React.createElement("input", { type: "radio", id: option.value.toString(), name: name, value: option.value, ref: ref, ...rest }),
|
|
8537
8541
|
React.createElement("span", null, option.label))))),
|
|
8538
|
-
error
|
|
8542
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8539
8543
|
});
|
|
8540
8544
|
RadioButtonGroup.displayName = 'RadioButtonGroup';
|
|
8541
8545
|
|
|
8542
|
-
const SelectMultiple = forwardRef(({ name, label, selectLabel, floatingLabel = false, error, options, value = [], onChange, required, disabled, className, }, ref) => {
|
|
8546
|
+
const SelectMultiple = forwardRef(({ name, label, message, selectLabel, floatingLabel = false, error, options, value = [], onChange, required, disabled, className, }, ref) => {
|
|
8543
8547
|
const [isOpen, setIsOpen] = useState(false);
|
|
8544
8548
|
const [selectedValues, setSelectedValues] = useState(value);
|
|
8545
8549
|
const dropdownRef = useRef(null);
|
|
@@ -8584,11 +8588,11 @@ const SelectMultiple = forwardRef(({ name, label, selectLabel, floatingLabel = f
|
|
|
8584
8588
|
label,
|
|
8585
8589
|
" ",
|
|
8586
8590
|
required && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8587
|
-
error
|
|
8591
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8588
8592
|
});
|
|
8589
8593
|
SelectMultiple.displayName = 'SelectMultiple';
|
|
8590
8594
|
|
|
8591
|
-
const SelectWithSearch = forwardRef(({ name, label, selectLabel, size = 'md', floatingLabel = false, error, options = [], value = '', onChange, required, disabled, selectSearch = '', setSelectSearch, isLoading = false, }, ref) => {
|
|
8595
|
+
const SelectWithSearch = forwardRef(({ name, label, message, selectLabel, size = 'md', floatingLabel = false, error, options = [], value = '', onChange, required, disabled, selectSearch = '', setSelectSearch, isLoading = false, }, ref) => {
|
|
8592
8596
|
const [isOpen, setIsOpen] = useState(false);
|
|
8593
8597
|
const dropdownRef = useRef(null);
|
|
8594
8598
|
const dropdownOptionsRef = useRef(null);
|
|
@@ -8608,7 +8612,6 @@ const SelectWithSearch = forwardRef(({ name, label, selectLabel, size = 'md', fl
|
|
|
8608
8612
|
const displayText = value
|
|
8609
8613
|
? options.find((option) => option.value === value)?.label
|
|
8610
8614
|
: selectLabel || 'Select an option';
|
|
8611
|
-
console.log(isLoading);
|
|
8612
8615
|
return (React.createElement(React.Fragment, null,
|
|
8613
8616
|
label && !floatingLabel && (React.createElement("label", { htmlFor: name },
|
|
8614
8617
|
label,
|
|
@@ -8626,7 +8629,7 @@ const SelectWithSearch = forwardRef(({ name, label, selectLabel, size = 'md', fl
|
|
|
8626
8629
|
label,
|
|
8627
8630
|
" ",
|
|
8628
8631
|
required && React.createElement("span", { className: "text-danger" }, "*"))),
|
|
8629
|
-
error
|
|
8632
|
+
error ? (React.createElement("small", { className: "form-message text-danger" }, error)) : (message && React.createElement("small", { className: "form-message text-muted" }, message))));
|
|
8630
8633
|
});
|
|
8631
8634
|
SelectWithSearch.displayName = 'SelectWithSearch';
|
|
8632
8635
|
|