@jenesei-software/jenesei-kit-react 1.3.30 → 1.3.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/build/area-preview.cjs.js +1 -1
  2. package/build/area-preview.es.js +1 -1
  3. package/build/area-skeleton.cjs.js +1 -1
  4. package/build/area-skeleton.es.js +1 -1
  5. package/build/build-info.txt +3 -3
  6. package/build/{component-BnqGhIYn.js → component-BEkYgajE.js} +2 -2
  7. package/build/{component-BnqGhIYn.js.map → component-BEkYgajE.js.map} +1 -1
  8. package/build/{component-CJ_IYmXp.js → component-BFDCc96N.js} +2 -2
  9. package/build/{component-CJ_IYmXp.js.map → component-BFDCc96N.js.map} +1 -1
  10. package/build/{component-qRPasLxk.cjs → component-BFLPbIpv.cjs} +2 -2
  11. package/build/{component-qRPasLxk.cjs.map → component-BFLPbIpv.cjs.map} +1 -1
  12. package/build/{component-Ud_GRMAS.js → component-BV20JUqs.js} +3 -3
  13. package/build/{component-Ud_GRMAS.js.map → component-BV20JUqs.js.map} +1 -1
  14. package/build/{component-BJxTgP87.js → component-BpgbR-JI.js} +2 -2
  15. package/build/{component-BJxTgP87.js.map → component-BpgbR-JI.js.map} +1 -1
  16. package/build/{component-JqUoQ-8S.js → component-BqSYYCb3.js} +2 -2
  17. package/build/{component-JqUoQ-8S.js.map → component-BqSYYCb3.js.map} +1 -1
  18. package/build/{component-Cy1LF62n.js → component-BsjFCBxJ.js} +3 -3
  19. package/build/{component-Cy1LF62n.js.map → component-BsjFCBxJ.js.map} +1 -1
  20. package/build/{component-AtGU3rIh.cjs → component-ByU2po_i.cjs} +2 -2
  21. package/build/{component-AtGU3rIh.cjs.map → component-ByU2po_i.cjs.map} +1 -1
  22. package/build/{component-DjIZRLtN.js → component-C-oN9gXq.js} +2 -2
  23. package/build/{component-DjIZRLtN.js.map → component-C-oN9gXq.js.map} +1 -1
  24. package/build/{component-Ch9eF_4H.js → component-CJWnWh-4.js} +4 -4
  25. package/build/{component-Ch9eF_4H.js.map → component-CJWnWh-4.js.map} +1 -1
  26. package/build/{component-DXZrlFCa.js → component-CMUWN8YO.js} +3 -3
  27. package/build/{component-DXZrlFCa.js.map → component-CMUWN8YO.js.map} +1 -1
  28. package/build/{component-DxjC5ZDY.cjs → component-CSY_QAf5.cjs} +2 -2
  29. package/build/{component-DxjC5ZDY.cjs.map → component-CSY_QAf5.cjs.map} +1 -1
  30. package/build/{component-BkAJZ9bN.cjs → component-D8qNfh_3.cjs} +2 -2
  31. package/build/{component-BkAJZ9bN.cjs.map → component-D8qNfh_3.cjs.map} +1 -1
  32. package/build/{component-COVO0g4K.cjs → component-DE1S-lZ5.cjs} +2 -2
  33. package/build/{component-COVO0g4K.cjs.map → component-DE1S-lZ5.cjs.map} +1 -1
  34. package/build/{component-B0KY9CML.cjs → component-DfZKriX4.cjs} +2 -2
  35. package/build/{component-B0KY9CML.cjs.map → component-DfZKriX4.cjs.map} +1 -1
  36. package/build/{component-DAtaP1gP.cjs → component-Dl6zU2mb.cjs} +2 -2
  37. package/build/{component-DAtaP1gP.cjs.map → component-Dl6zU2mb.cjs.map} +1 -1
  38. package/build/{component-CQmuGUIt.cjs → component-Dmn44ouM.cjs} +2 -2
  39. package/build/{component-CQmuGUIt.cjs.map → component-Dmn44ouM.cjs.map} +1 -1
  40. package/build/{component-CVODnsK7.js → component-Tjc4KXtU.js} +2 -2
  41. package/build/{component-CVODnsK7.js.map → component-Tjc4KXtU.js.map} +1 -1
  42. package/build/{component-BI6fe9pl.js → component-UAARmvBH.js} +2 -2
  43. package/build/{component-BI6fe9pl.js.map → component-UAARmvBH.js.map} +1 -1
  44. package/build/component-accordion.cjs.js +1 -1
  45. package/build/component-accordion.es.js +2 -2
  46. package/build/component-button-group.cjs.js +1 -1
  47. package/build/component-button-group.es.js +2 -2
  48. package/build/component-button.cjs.js +1 -1
  49. package/build/component-button.es.js +1 -1
  50. package/build/component-checkbox-group.cjs.js +1 -1
  51. package/build/component-checkbox-group.es.js +2 -2
  52. package/build/component-checkbox.cjs.js +1 -1
  53. package/build/component-checkbox.es.js +2 -2
  54. package/build/component-date-picker.cjs.js +1 -1
  55. package/build/component-date-picker.es.js +2 -2
  56. package/build/component-icon.cjs.js +1 -1
  57. package/build/component-icon.es.js +1 -1
  58. package/build/component-image-button.cjs.js +1 -1
  59. package/build/component-image-button.es.js +1 -1
  60. package/build/component-image-select.cjs.js +1 -1
  61. package/build/component-image-select.es.js +2 -2
  62. package/build/component-image-slider.cjs.js +1 -1
  63. package/build/component-image-slider.es.js +2 -2
  64. package/build/component-image.cjs.js +1 -1
  65. package/build/component-image.es.js +2 -2
  66. package/build/component-input-otp.cjs.js +1 -1
  67. package/build/component-input-otp.es.js +2 -2
  68. package/build/component-input.cjs.js +1 -1
  69. package/build/component-input.es.js +2 -2
  70. package/build/{component-D5Bg68Aq.cjs → component-jeO6CsTP.cjs} +2 -2
  71. package/build/{component-D5Bg68Aq.cjs.map → component-jeO6CsTP.cjs.map} +1 -1
  72. package/build/component-map.cjs.js +1 -1
  73. package/build/component-map.es.js +2 -2
  74. package/build/component-pagination.cjs.js +1 -1
  75. package/build/component-pagination.es.js +1 -1
  76. package/build/component-range.cjs.js +1 -1
  77. package/build/component-range.es.js +2 -2
  78. package/build/component-select.cjs.js +1 -1
  79. package/build/component-select.es.js +1 -1
  80. package/build/{component-BHINcJGw.cjs → component-ssaD7jJ-.cjs} +2 -2
  81. package/build/{component-BHINcJGw.cjs.map → component-ssaD7jJ-.cjs.map} +1 -1
  82. package/build/component-textarea.cjs.js +1 -1
  83. package/build/component-textarea.d.ts +3 -0
  84. package/build/component-textarea.es.js +1 -1
  85. package/build/component-toggle.cjs.js +1 -1
  86. package/build/component-toggle.es.js +2 -2
  87. package/build/component-tooltip.cjs.js +1 -1
  88. package/build/component-tooltip.d.ts +107 -0
  89. package/build/component-tooltip.es.js +1 -1
  90. package/build/component-typography.cjs.js +1 -1
  91. package/build/component-typography.d.ts +107 -0
  92. package/build/component-typography.es.js +1 -1
  93. package/build/{component-CQ4haQho.cjs → component-zyoew755.cjs} +2 -2
  94. package/build/{component-CQ4haQho.cjs.map → component-zyoew755.cjs.map} +1 -1
  95. package/build/{component.components-BJ1nh728.js → component.components-CFsHZ-xd.js} +2 -2
  96. package/build/{component.components-BJ1nh728.js.map → component.components-CFsHZ-xd.js.map} +1 -1
  97. package/build/{component.components-0OAiJjsR.cjs → component.components-DnPZVXuo.cjs} +2 -2
  98. package/build/{component.components-0OAiJjsR.cjs.map → component.components-DnPZVXuo.cjs.map} +1 -1
  99. package/build/{component.constants-DLrolRBs.cjs → component.constants-4oL81SFS.cjs} +2 -2
  100. package/build/{component.constants-DLrolRBs.cjs.map → component.constants-4oL81SFS.cjs.map} +1 -1
  101. package/build/{component.constants-4Zuzymaj.js → component.constants-B3aCG9Aq.js} +3 -3
  102. package/build/{component.constants-4Zuzymaj.js.map → component.constants-B3aCG9Aq.js.map} +1 -1
  103. package/build/{component.constants-B1XT0pqP.cjs → component.constants-DIRNAI_M.cjs} +2 -2
  104. package/build/{component.constants-B1XT0pqP.cjs.map → component.constants-DIRNAI_M.cjs.map} +1 -1
  105. package/build/{component.constants-ASMqRXmH.js → component.constants-DWE902Cf.js} +2 -2
  106. package/build/{component.constants-ASMqRXmH.js.map → component.constants-DWE902Cf.js.map} +1 -1
  107. package/build/{component.types-haccSZSq.cjs → component.types-D7_uJxuD.cjs} +2 -2
  108. package/build/{component.types-haccSZSq.cjs.map → component.types-D7_uJxuD.cjs.map} +1 -1
  109. package/build/{component.types-BXYLxQWv.js → component.types-DhrhPsES.js} +2 -2
  110. package/build/{component.types-BXYLxQWv.js.map → component.types-DhrhPsES.js.map} +1 -1
  111. package/build/consts.cjs.js +1 -1
  112. package/build/consts.es.js +1 -1
  113. package/build/context-app.cjs.js +1 -1
  114. package/build/context-app.es.js +2 -2
  115. package/build/context-sonner.cjs.js +1 -1
  116. package/build/context-sonner.es.js +2 -2
  117. package/build/{context.constants-p2bRkgM3.cjs → context.constants-CPdsUeiQ.cjs} +259 -258
  118. package/build/context.constants-CPdsUeiQ.cjs.map +1 -0
  119. package/build/{context.constants-Dop398a2.js → context.constants-D8UVM6GL.js} +112 -11
  120. package/build/{context.constants-Dop398a2.js.map → context.constants-D8UVM6GL.js.map} +1 -1
  121. package/build/{context.hooks-b1w6_aK9.js → context.hooks-1u3F7jId.js} +2 -2
  122. package/build/{context.hooks-b1w6_aK9.js.map → context.hooks-1u3F7jId.js.map} +1 -1
  123. package/build/{context.hooks-Spdhsa4j.cjs → context.hooks-Bi7-SukA.cjs} +2 -2
  124. package/build/{context.hooks-Spdhsa4j.cjs.map → context.hooks-Bi7-SukA.cjs.map} +1 -1
  125. package/build/{context.hooks-BFjFm8iR.cjs → context.hooks-CEM899ZV.cjs} +2 -2
  126. package/build/{context.hooks-BFjFm8iR.cjs.map → context.hooks-CEM899ZV.cjs.map} +1 -1
  127. package/build/{context.hooks-CUlqrzfP.js → context.hooks-Ds6nn4po.js} +2 -2
  128. package/build/{context.hooks-CUlqrzfP.js.map → context.hooks-Ds6nn4po.js.map} +1 -1
  129. package/build/index.cjs.js +1 -1
  130. package/build/index.d.ts +110 -0
  131. package/build/index.es.js +18 -18
  132. package/build/style-error.cjs.js +1 -1
  133. package/build/style-error.es.js +1 -1
  134. package/build/style-theme.cjs.js +1 -1
  135. package/build/style-theme.es.js +1 -1
  136. package/build/{use-CHyIgo-M.cjs → use-BwhyveId.cjs} +2 -2
  137. package/build/{use-CHyIgo-M.cjs.map → use-BwhyveId.cjs.map} +1 -1
  138. package/build/{use-DLn-Y7_0.js → use-CjnNUWWw.js} +3 -3
  139. package/build/{use-DLn-Y7_0.js.map → use-CjnNUWWw.js.map} +1 -1
  140. package/package.json +2 -2
  141. package/build/context.constants-p2bRkgM3.cjs.map +0 -1
@@ -3729,13 +3729,34 @@ function useFloating(options) {
3729
3729
  elements
3730
3730
  }), [position, refs, elements, context]);
3731
3731
  }
3732
+ const getFocusableElements = (container) => {
3733
+ const focusableSelectors = [
3734
+ "a[href]",
3735
+ "button:not([disabled])",
3736
+ "textarea:not([disabled])",
3737
+ "input:not([disabled])",
3738
+ "select:not([disabled])",
3739
+ '[tabindex]:not([tabindex="-1"])',
3740
+ '[contenteditable="true"]'
3741
+ ].join(",");
3742
+ return Array.from(container.querySelectorAll(focusableSelectors));
3743
+ };
3744
+ const getNextFocusableElement = (currentElement, backward = false) => {
3745
+ const allFocusableElements = getFocusableElements(document.body);
3746
+ const currentIndex = allFocusableElements.indexOf(currentElement);
3747
+ if (currentIndex === -1) return null;
3748
+ if (backward) {
3749
+ return currentIndex > 0 ? allFocusableElements[currentIndex - 1] : null;
3750
+ } else {
3751
+ return currentIndex < allFocusableElements.length - 1 ? allFocusableElements[currentIndex + 1] : null;
3752
+ }
3753
+ };
3732
3754
  const Popover = (props) => {
3733
3755
  var _a, _b;
3734
3756
  return ReactDOM__default.createPortal(
3735
3757
  /* @__PURE__ */ jsxRuntimeExports.jsx(AnimatePresence, { children: props.isOpen && /* @__PURE__ */ jsxRuntimeExports.jsx(
3736
3758
  "div",
3737
3759
  {
3738
- tabIndex: -1,
3739
3760
  ref: props.ref,
3740
3761
  style: {
3741
3762
  position: "absolute",
@@ -3743,7 +3764,9 @@ const Popover = (props) => {
3743
3764
  left: 0,
3744
3765
  ...props.floatingStyles,
3745
3766
  transform: props.floatingStyles.transform,
3746
- zIndex: 9999
3767
+ zIndex: 9998,
3768
+ outline: "0px transparent solid !important",
3769
+ border: "0px transparent solid !important"
3747
3770
  },
3748
3771
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
3749
3772
  PopoverWrapper,
@@ -3779,6 +3802,7 @@ const usePopover = (props) => {
3779
3802
  const [isOpen, setIsOpen] = useState(false);
3780
3803
  const [minWidth, setMinWidth] = useState(void 0);
3781
3804
  const [wasEverOpen, setWasEverOpen] = useState(false);
3805
+ const previousActiveElement = useRef(null);
3782
3806
  const {
3783
3807
  refs,
3784
3808
  floatingStyles,
@@ -3967,6 +3991,65 @@ const usePopover = (props) => {
3967
3991
  if (refEl instanceof HTMLElement) refEl.removeEventListener("blur", handleBlur, true);
3968
3992
  };
3969
3993
  }, [refs.reference, props.isDisabled, onBlurReference, props.refsExcludeBlur]);
3994
+ useEffect(() => {
3995
+ if (!props.isFocusTrap) return;
3996
+ if (!isOpen || !refs.floating.current) return;
3997
+ const floatingEl = refs.floating.current;
3998
+ const refEl = refs.reference.current;
3999
+ previousActiveElement.current = document.activeElement;
4000
+ const focusFirstInPopover = () => {
4001
+ const elements = getFocusableElements(floatingEl);
4002
+ if (elements.length > 0) {
4003
+ elements[0].focus();
4004
+ return true;
4005
+ }
4006
+ return false;
4007
+ };
4008
+ let mutationObserver = null;
4009
+ const hasFocusedInitial = focusFirstInPopover();
4010
+ if (!hasFocusedInitial) {
4011
+ mutationObserver = new MutationObserver(() => {
4012
+ if (focusFirstInPopover()) {
4013
+ mutationObserver == null ? void 0 : mutationObserver.disconnect();
4014
+ mutationObserver = null;
4015
+ }
4016
+ });
4017
+ mutationObserver.observe(floatingEl, { childList: true, subtree: true });
4018
+ }
4019
+ const handleKeyDown = (e) => {
4020
+ if (e.key !== "Tab") return;
4021
+ const focusableElements = getFocusableElements(floatingEl);
4022
+ if (focusableElements.length === 0) return;
4023
+ const firstElement = focusableElements[0];
4024
+ const lastElement = focusableElements[focusableElements.length - 1];
4025
+ if (e.shiftKey) {
4026
+ if (document.activeElement === firstElement) {
4027
+ e.preventDefault();
4028
+ const prevElement = getNextFocusableElement(refEl, true);
4029
+ if (prevElement) {
4030
+ prevElement.focus();
4031
+ }
4032
+ return;
4033
+ }
4034
+ return;
4035
+ }
4036
+ if (document.activeElement === lastElement) {
4037
+ e.preventDefault();
4038
+ const nextElement = getNextFocusableElement(refEl, false);
4039
+ if (nextElement) {
4040
+ nextElement.focus();
4041
+ }
4042
+ return;
4043
+ }
4044
+ };
4045
+ document.addEventListener("keydown", handleKeyDown);
4046
+ return () => {
4047
+ if (mutationObserver) {
4048
+ mutationObserver.disconnect();
4049
+ }
4050
+ document.removeEventListener("keydown", handleKeyDown);
4051
+ };
4052
+ }, [isOpen, refs.floating, refs.reference.current, props.isFocusTrap]);
3970
4053
  const getIsInside = useCallback(
3971
4054
  (target) => {
3972
4055
  if (!target) return false;
@@ -4290,6 +4373,7 @@ const Button = (props) => {
4290
4373
  };
4291
4374
  const refDefault = useRef(null);
4292
4375
  const ref = useMergeRefs([refDefault, props.ref]);
4376
+ const isInteractive = !props.isDisabled && props.isWhileTapEffect;
4293
4377
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
4294
4378
  StyledButton,
4295
4379
  {
@@ -4299,7 +4383,8 @@ const Button = (props) => {
4299
4383
  weight: ((_b = props.font) == null ? void 0 : _b.weight) ?? 700
4300
4384
  },
4301
4385
  $isNotHoverEffect: props.isNotHoverEffect,
4302
- whileTap: props.isWhileTapEffect ? { scale: 0.9, transition: { duration: 0.01 } } : {},
4386
+ whileTap: isInteractive ? { scale: 1.1, transition: { duration: 0.08, ease: "easeOut" } } : void 0,
4387
+ whileHover: isInteractive ? { scale: 0.97, transition: { duration: 0.2, ease: "easeOut" } } : void 0,
4303
4388
  id: props.id,
4304
4389
  tabIndex: props.tabIndex ?? 0,
4305
4390
  $isFullSize: props.isFullSize,
@@ -4558,6 +4643,7 @@ const Select = (props) => {
4558
4643
  floatingStyles,
4559
4644
  toggle
4560
4645
  } = usePopover({
4646
+ isFocusTrap: true,
4561
4647
  placement: "bottom-start",
4562
4648
  offset: sizePadding,
4563
4649
  mode: "independence",
@@ -4748,12 +4834,16 @@ const Select = (props) => {
4748
4834
  $sx: props.sx,
4749
4835
  $isOpen: isOpen,
4750
4836
  ref: refReference,
4751
- onClick: () => {
4752
- open();
4837
+ onMouseDown: (e) => {
4838
+ e.preventDefault();
4839
+ toggle();
4753
4840
  onChangeShowSearch(true);
4754
4841
  },
4755
4842
  onFocus: () => {
4756
- open();
4843
+ if (!isOpen) {
4844
+ open();
4845
+ onChangeShowSearch(true);
4846
+ }
4757
4847
  },
4758
4848
  children: [
4759
4849
  isShowSearch && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -4769,6 +4859,9 @@ const Select = (props) => {
4769
4859
  var _a2;
4770
4860
  (_a2 = props == null ? void 0 : props.onChangeSearch) == null ? void 0 : _a2.call(props, value);
4771
4861
  },
4862
+ onMouseDown: (e) => {
4863
+ e.stopPropagation();
4864
+ },
4772
4865
  value: props.valueSearch,
4773
4866
  placeholder: labelPlaceholder
4774
4867
  }
@@ -4781,6 +4874,7 @@ const Select = (props) => {
4781
4874
  $isWrapSelectOption: props.isWrapSelectOption,
4782
4875
  onMouseDown: (e) => {
4783
4876
  e.preventDefault();
4877
+ e.stopPropagation();
4784
4878
  },
4785
4879
  onClick: (e) => {
4786
4880
  e.preventDefault();
@@ -4847,6 +4941,7 @@ const Select = (props) => {
4847
4941
  $size: props.size,
4848
4942
  onMouseDown: (e) => {
4849
4943
  e.preventDefault();
4944
+ e.stopPropagation();
4850
4945
  },
4851
4946
  children: [
4852
4947
  isShowIconSearchClear && /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -5123,8 +5218,11 @@ const SelectLanguage = (props) => {
5123
5218
  const option = LIST_LANGUAGE;
5124
5219
  const [viewOption] = useState(option);
5125
5220
  const handleSelectChange = (value2) => {
5126
- if (value2.length === 0) onChange(null);
5127
- onChange(value2[0].value.toString());
5221
+ if (value2.length === 0) {
5222
+ onChange(null);
5223
+ } else {
5224
+ onChange(value2[0].value.toString());
5225
+ }
5128
5226
  };
5129
5227
  const valueLocal = useMemo(() => {
5130
5228
  const findOption = option.find((e) => e.value === value);
@@ -5387,6 +5485,8 @@ const TextArea = (props) => {
5387
5485
  onBlur: props.onBlur,
5388
5486
  onFocus: props.onFocus,
5389
5487
  onKeyDown: props.onKeyDown,
5488
+ onMouseDown: props.onMouseDown,
5489
+ onClick: props.onClick,
5390
5490
  name: props.name,
5391
5491
  "aria-label": props.ariaLabel ?? props.name,
5392
5492
  autoComplete: props.autoComplete,
@@ -5548,6 +5648,7 @@ const addSelectWrapperSize = css`
5548
5648
  min-height: ${(props) => KEY_SIZE_DATA[props.$size].height}px;
5549
5649
  border-radius: ${(props) => KEY_SIZE_DATA[props.$size].radius}px;
5550
5650
  justify-content: ${(props) => props.$isCenter ? "center" : "flex-start"};
5651
+
5551
5652
  ${(props) => props.$isOpen && css`
5552
5653
  outline: 2px ${(props2) => props2.theme.states.focus} solid;
5553
5654
  outline-offset: 1px;
@@ -5663,12 +5764,12 @@ const DropdownListOption = styled.li`
5663
5764
  `;
5664
5765
  const addDropdownOptionIconSize = css`
5665
5766
  right: ${(props) => KEY_SIZE_DATA[props.$size].padding - 6}px;
5666
- height: ${(props) => KEY_SIZE_DATA[props.$size].height}px;
5767
+ /* height: ${(props) => KEY_SIZE_DATA[props.$size].height}px;
5768
+ width: ${(props) => KEY_SIZE_DATA[props.$size].height}px; */
5667
5769
  `;
5668
5770
  const DropdownListOptionIcon = styled(Icon)`
5669
5771
  position: absolute;
5670
5772
  right: 0;
5671
- height: 100%;
5672
5773
  align-items: center;
5673
5774
  ${addDropdownOptionIconSize};
5674
5775
  ${addRemoveOutline};
@@ -8554,4 +8655,4 @@ export {
8554
8655
  addDateInputWrapperSize as y,
8555
8656
  DateInputWrapper as z
8556
8657
  };
8557
- //# sourceMappingURL=context.constants-Dop398a2.js.map
8658
+ //# sourceMappingURL=context.constants-D8UVM6GL.js.map