@itilite/lumina-ui 1.1.13 → 1.2.0

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 (115) hide show
  1. package/dist/AdvancedDateRangePicker-D7xn4So6.d.mts +59 -0
  2. package/dist/AdvancedDateRangePicker-D7xn4So6.d.ts +59 -0
  3. package/dist/AdvancedDateRangePicker-D9Sdk4rK.d.mts +64 -0
  4. package/dist/AdvancedDateRangePicker-D9Sdk4rK.d.ts +64 -0
  5. package/dist/AdvancedDateRangePicker-DGg-rucL.d.mts +62 -0
  6. package/dist/AdvancedDateRangePicker-DGg-rucL.d.ts +62 -0
  7. package/dist/AdvancedDateRangePicker-DOSprRQR.d.mts +52 -0
  8. package/dist/AdvancedDateRangePicker-DOSprRQR.d.ts +52 -0
  9. package/dist/AdvancedDateRangePicker-Di3rHxqf.d.mts +64 -0
  10. package/dist/AdvancedDateRangePicker-Di3rHxqf.d.ts +64 -0
  11. package/dist/AdvancedDateRangePicker-Dxug2Mcf.d.mts +60 -0
  12. package/dist/AdvancedDateRangePicker-Dxug2Mcf.d.ts +60 -0
  13. package/dist/AdvancedDateRangePicker-ozItnkhp.d.mts +57 -0
  14. package/dist/AdvancedDateRangePicker-ozItnkhp.d.ts +57 -0
  15. package/dist/Table-BOq-_9Nr.d.mts +121 -0
  16. package/dist/Table-BOq-_9Nr.d.ts +121 -0
  17. package/dist/Table-BxaCiQmh.d.mts +82 -0
  18. package/dist/Table-BxaCiQmh.d.ts +82 -0
  19. package/dist/Table-DNvoh2P8.d.mts +127 -0
  20. package/dist/Table-DNvoh2P8.d.ts +127 -0
  21. package/dist/Table-DSFYzrpU.d.mts +129 -0
  22. package/dist/Table-DSFYzrpU.d.ts +129 -0
  23. package/dist/Table-DoCPt3ri.d.mts +129 -0
  24. package/dist/Table-DoCPt3ri.d.ts +129 -0
  25. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.d.mts +2 -0
  26. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.d.ts +2 -0
  27. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.js +1648 -0
  28. package/dist/atom/AdvancedDateRangePicker/AdvancedDateRangePicker.mjs +15 -0
  29. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.d.mts +17 -0
  30. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.d.ts +17 -0
  31. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.js +370 -0
  32. package/dist/atom/AdvancedDateRangePicker/InternalCalendar.mjs +8 -0
  33. package/dist/atom/LoadingSpinner/LoadingSpinner.d.mts +2 -2
  34. package/dist/atom/LoadingSpinner/LoadingSpinner.d.ts +2 -2
  35. package/dist/atom/RangePicker/RangePicker.js +105 -102
  36. package/dist/atom/RangePicker/RangePicker.mjs +3 -3
  37. package/dist/atom/Select/Select.d.mts +1 -4
  38. package/dist/atom/Select/Select.d.ts +1 -4
  39. package/dist/atom/Select/Select.js +105 -102
  40. package/dist/atom/Select/Select.mjs +1 -1
  41. package/dist/atom/Table/Table.d.mts +3 -0
  42. package/dist/atom/Table/Table.d.ts +3 -0
  43. package/dist/atom/Table/Table.js +340 -0
  44. package/dist/atom/Table/Table.mjs +9 -0
  45. package/dist/chunk-27LRL4RO.mjs +428 -0
  46. package/dist/chunk-2IT3XM7C.mjs +473 -0
  47. package/dist/chunk-3HXZIFV6.mjs +438 -0
  48. package/dist/{chunk-Y3BIY4DW.mjs → chunk-4JX54OKI.mjs} +27 -18
  49. package/dist/chunk-53O7JM5I.mjs +424 -0
  50. package/dist/chunk-5JXIJTAS.mjs +448 -0
  51. package/dist/chunk-5PQ43JFX.mjs +440 -0
  52. package/dist/chunk-62VAYFZA.mjs +437 -0
  53. package/dist/chunk-6ON32H2N.mjs +431 -0
  54. package/dist/chunk-6RIZXTFP.mjs +290 -0
  55. package/dist/chunk-6XIT27XY.mjs +269 -0
  56. package/dist/chunk-772C454L.mjs +438 -0
  57. package/dist/chunk-7L267Y4P.mjs +429 -0
  58. package/dist/chunk-7WSVCE2C.mjs +269 -0
  59. package/dist/chunk-ANJI6SPV.mjs +283 -0
  60. package/dist/chunk-BFFLWW7N.mjs +250 -0
  61. package/dist/chunk-C5VYFNVC.mjs +441 -0
  62. package/dist/chunk-DL7BZMGE.mjs +295 -0
  63. package/dist/chunk-DXPVJNGY.mjs +284 -0
  64. package/dist/chunk-FPH63V2R.mjs +269 -0
  65. package/dist/chunk-FTL3PFC2.mjs +438 -0
  66. package/dist/chunk-G4P6XGQX.mjs +278 -0
  67. package/dist/chunk-GGWY2SYX.mjs +452 -0
  68. package/dist/{chunk-E4FCLHYA.mjs → chunk-GU5F7Z7I.mjs} +107 -104
  69. package/dist/chunk-GZ4P7OL3.mjs +429 -0
  70. package/dist/chunk-I6GLPWHS.mjs +278 -0
  71. package/dist/chunk-IPVJEGDI.mjs +476 -0
  72. package/dist/chunk-J4YYP4IZ.mjs +0 -0
  73. package/dist/chunk-J5JDQ4R6.mjs +278 -0
  74. package/dist/chunk-K2A4TWA3.mjs +430 -0
  75. package/dist/chunk-L3L42SIL.mjs +429 -0
  76. package/dist/chunk-LRNKIRH3.mjs +289 -0
  77. package/dist/chunk-MA23J4WQ.mjs +430 -0
  78. package/dist/chunk-N4DPPZVJ.mjs +269 -0
  79. package/dist/chunk-PQ3B2FEB.mjs +249 -0
  80. package/dist/{chunk-35KDS27M.mjs → chunk-PSBEYGD4.mjs} +1 -1
  81. package/dist/chunk-QRGHJP7U.mjs +437 -0
  82. package/dist/chunk-QU73KNTT.mjs +452 -0
  83. package/dist/chunk-RC6IGURJ.mjs +428 -0
  84. package/dist/chunk-SKPCOHON.mjs +473 -0
  85. package/dist/chunk-SRKN7WS7.mjs +448 -0
  86. package/dist/chunk-TQDZWJZP.mjs +269 -0
  87. package/dist/chunk-UAGSPM3T.mjs +288 -0
  88. package/dist/chunk-UC4NTBDH.mjs +439 -0
  89. package/dist/chunk-UPSQTJJ4.mjs +294 -0
  90. package/dist/chunk-V3CHJHUX.mjs +424 -0
  91. package/dist/chunk-X3NDICAU.mjs +284 -0
  92. package/dist/chunk-XECXKSTC.mjs +453 -0
  93. package/dist/chunk-XIVTXS3Y.mjs +439 -0
  94. package/dist/chunk-ZGV6QMVM.mjs +437 -0
  95. package/dist/index.d.mts +16 -13
  96. package/dist/index.d.ts +16 -13
  97. package/dist/index.js +1121 -117
  98. package/dist/index.mjs +22 -13
  99. package/dist/styles.css +1221 -130
  100. package/package.json +1 -1
  101. package/dist/Avatar-DX2JwvAs.d.mts +0 -17
  102. package/dist/Avatar-DX2JwvAs.d.ts +0 -17
  103. package/dist/Tag-l7I5oeyk.d.mts +0 -13
  104. package/dist/Tag-l7I5oeyk.d.ts +0 -13
  105. package/dist/chunk-3S4X3YO2.mjs +0 -64
  106. package/dist/chunk-DLLT6V65.mjs +0 -141
  107. package/dist/chunk-HISCHZ5H.mjs +0 -77
  108. package/dist/chunk-I5VHKSQR.mjs +0 -64
  109. package/dist/chunk-N355RJGH.mjs +0 -141
  110. package/dist/chunk-N3YFQDW7.mjs +0 -77
  111. package/dist/chunk-QWK3MYDM.mjs +0 -64
  112. package/dist/chunk-SWRFCTJW.mjs +0 -77
  113. package/dist/chunk-UUEPD2FH.mjs +0 -141
  114. package/dist/chunk-X76GNSBB.mjs +0 -87
  115. package/dist/chunk-ZGFE3OPJ.mjs +0 -678
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-FWCSY2DS.mjs";
12
12
 
13
13
  // src/atom/Select/Select.tsx
14
- import { memo as memo3, useCallback, useEffect, useMemo, useRef, useState } from "react";
14
+ import { useCallback, useEffect, useMemo, useRef, useState, memo as memo3 } from "react";
15
15
  import clsx from "clsx";
16
16
 
17
17
  // src/icons/Chevron.tsx
@@ -97,7 +97,47 @@ var Lock = React3.memo((_a) => {
97
97
  });
98
98
 
99
99
  // src/atom/Select/Select.tsx
100
- import { jsx as jsx4, jsxs } from "react/jsx-runtime";
100
+ import { Fragment, jsx as jsx4, jsxs } from "react/jsx-runtime";
101
+ var InputWrapper = memo3(({ children, disabled, disabledTooltip }) => {
102
+ if (disabled && disabledTooltip)
103
+ return /* @__PURE__ */ jsx4(Tooltip_default, { title: disabledTooltip, children });
104
+ return /* @__PURE__ */ jsx4(Fragment, { children });
105
+ });
106
+ var OptionItem = memo3(({
107
+ option,
108
+ index,
109
+ isSelected,
110
+ isHighlighted,
111
+ experience,
112
+ size,
113
+ optionClassName,
114
+ onSelectHandler,
115
+ onMouseEnterHandler
116
+ }) => {
117
+ return /* @__PURE__ */ jsx4(
118
+ "div",
119
+ {
120
+ onClick: () => onSelectHandler(option),
121
+ onMouseEnter: () => onMouseEnterHandler(index),
122
+ className: clsx(
123
+ "tw-transition-all tw-duration-150",
124
+ { "tw-typography-body2": size !== "small" },
125
+ { "tw-typography-caption1": size === "small" },
126
+ optionClassName
127
+ ),
128
+ children: /* @__PURE__ */ jsx4(
129
+ "div",
130
+ {
131
+ className: clsx(
132
+ "tw-px-4 tw-cursor-pointer tw-py-2 tw-mx-0.5 tw-rounded-xl",
133
+ isSelected ? experience === "personal" ? "tw-bg-[#f1e8fa]" : "tw-bg-[#fff1e1]" : isHighlighted ? "tw-bg-[#f3f4f6] tw-text-gray-900" : "tw-text-gray-900 hover:tw-bg-[#1118270a]"
134
+ ),
135
+ children: option.label
136
+ }
137
+ )
138
+ }
139
+ );
140
+ });
101
141
  var Select = ({
102
142
  label,
103
143
  mandatory = false,
@@ -336,6 +376,31 @@ var Select = ({
336
376
  }
337
377
  return "";
338
378
  }, [selectedValue, validatedOptions, showDisplayValue, normalizeValue]);
379
+ const displayValue = useMemo(() => getDisplayValue(), [getDisplayValue]);
380
+ const inputClasses = useMemo(() => {
381
+ return clsx(
382
+ "tw-w-full tw-rounded-xl tw-outline-none tw-transition-all tw-duration-200 tw-cursor-pointer tw-border-solid tw-text-color-text-default",
383
+ sizeClasses.input,
384
+ sizeClasses.padding,
385
+ variantClasses,
386
+ {
387
+ "tw-bg-white": valueSelected || displayValue || isFocused,
388
+ "tw-bg-color-gray-5": !valueSelected || !displayValue,
389
+ "!tw-bg-[#F8F7F6] tw-cursor-not-allowed tw-pointer-events-none": disabled
390
+ },
391
+ !label && "tw-flex tw-items-center",
392
+ {
393
+ "!tw-border-color-primary": isFocused && experience === "business"
394
+ },
395
+ {
396
+ "!tw-border-[#804D7B]": isFocused && experience === "personal"
397
+ },
398
+ error ? "!tw-border-color-text-critical " : "tw-border-[#EBE3DD] hover:tw-border-[#C5B7AC]",
399
+ "focus:tw-shadow-sm focus:tw-ring-offset-1",
400
+ className,
401
+ inputClassName
402
+ );
403
+ }, [sizeClasses, variantClasses, valueSelected, displayValue, isFocused, disabled, label, experience, error, className, inputClassName]);
339
404
  const filteredOptions = useMemo(() => {
340
405
  var _a;
341
406
  if (!enableSearch) {
@@ -430,7 +495,7 @@ var Select = ({
430
495
  }, [highlightedIndex]);
431
496
  useEffect(() => {
432
497
  optionRefs.current = [];
433
- }, [filteredOptions]);
498
+ }, [filteredOptions.length]);
434
499
  const handleMouseEnter = useCallback(() => {
435
500
  if (hoverTimeoutRef.current) {
436
501
  clearTimeout(hoverTimeoutRef.current);
@@ -467,12 +532,23 @@ var Select = ({
467
532
  },
468
533
  [isOpen, handleInputInteraction]
469
534
  );
470
- const InputWrapper = ({ children }) => {
471
- if (disabled && disabledTooltip)
472
- return /* @__PURE__ */ jsx4(Tooltip_default, { title: disabledTooltip, children });
473
- return children;
474
- };
475
- return /* @__PURE__ */ jsx4(InputWrapper, { children: /* @__PURE__ */ jsxs(
535
+ const handleChevronMouseDown = useCallback(
536
+ (e) => {
537
+ if (isHovering && selectedValue && allowClear) {
538
+ handleClear(e);
539
+ } else {
540
+ handleChevronClick(e);
541
+ }
542
+ },
543
+ [isHovering, selectedValue, allowClear, handleClear, handleChevronClick]
544
+ );
545
+ const handleOptionClick = useCallback((option) => {
546
+ handleOptionSelect(option);
547
+ }, [handleOptionSelect]);
548
+ const handleOptionMouseEnter = useCallback((index) => {
549
+ setHighlightedIndex(index);
550
+ }, []);
551
+ return /* @__PURE__ */ jsx4(InputWrapper, { disabled, disabledTooltip, children: /* @__PURE__ */ jsxs(
476
552
  "div",
477
553
  {
478
554
  style,
@@ -496,35 +572,11 @@ var Select = ({
496
572
  autoCorrect: "off",
497
573
  autoCapitalize: "off",
498
574
  spellCheck: "false",
499
- value: isFocused && enableSearch ? searchTerm : getDisplayValue(),
575
+ value: isFocused && enableSearch ? searchTerm : displayValue,
500
576
  onChange: enableSearch ? handleSearchChange : void 0,
501
577
  onClick: handleInputInteraction,
502
578
  onKeyDown: handleKeyDown,
503
- className: clsx(
504
- "tw-w-full tw-rounded-xl tw-outline-none tw-transition-all tw-duration-200 tw-cursor-pointer tw-border-solid tw-text-color-text-default",
505
- sizeClasses.input,
506
- sizeClasses.padding,
507
- variantClasses,
508
- {
509
- "tw-bg-white": valueSelected || getDisplayValue() || isFocused,
510
- "tw-bg-color-gray-5": !valueSelected || !getDisplayValue(),
511
- "!tw-bg-[#F8F7F6] tw-cursor-not-allowed tw-pointer-events-none": disabled
512
- },
513
- // Conditional padding based on label presence
514
- !label && "tw-flex tw-items-center",
515
- {
516
- "!tw-border-color-primary": isFocused && experience === "business"
517
- },
518
- {
519
- "!tw-border-[#804D7B]": isFocused && experience === "personal"
520
- },
521
- error ? "!tw-border-color-text-critical " : "tw-border-[#EBE3DD] hover:tw-border-[#C5B7AC]",
522
- // Add focus state styling
523
- "focus:tw-shadow-sm focus:tw-ring-offset-1",
524
- className,
525
- inputClassName
526
- // Put inputClassName last so it can override default classes
527
- ),
579
+ className: inputClasses,
528
580
  readOnly: !isFocused || !enableSearch
529
581
  }
530
582
  ),
@@ -565,13 +617,7 @@ var Select = ({
565
617
  // Only rotate chevron when open and not showing clear icon
566
618
  isOpen && !(isHovering && selectedValue && allowClear) && "-tw-rotate-180"
567
619
  ),
568
- onMouseDown: (e) => {
569
- if (isHovering && selectedValue && allowClear) {
570
- handleClear(e);
571
- } else {
572
- handleChevronClick(e);
573
- }
574
- },
620
+ onMouseDown: handleChevronMouseDown,
575
621
  children: disabled ? null : isHovering && selectedValue && allowClear ? /* @__PURE__ */ jsx4(
576
622
  CrossV2,
577
623
  {
@@ -602,75 +648,32 @@ var Select = ({
602
648
  dropdownClassName
603
649
  ),
604
650
  ref: optionListRef,
605
- children: filteredOptions.length > 0 ? filteredOptions.map((option, index) => /* @__PURE__ */ jsx4(
606
- "div",
607
- {
608
- ref: (el) => optionRefs.current[index] = el,
609
- onClick: () => handleOptionSelect(option),
610
- onMouseEnter: () => setHighlightedIndex(index),
611
- className: clsx(
612
- "tw-transition-all tw-duration-150",
613
- { "tw-typography-body2": size !== "small" },
614
- { "tw-typography-caption1": size === "small" },
615
- optionClassName
616
- ),
617
- children: /* @__PURE__ */ jsx4(
618
- "div",
619
- {
620
- className: clsx(
621
- "tw-px-4 tw-cursor-pointer tw-py-2 tw-mx-0.5 tw-rounded-xl",
622
- normalizeValue(selectedValue) === normalizeValue(option.value) ? experience === "personal" ? "tw-bg-[#f1e8fa]" : "tw-bg-[#fff1e1]" : (
623
- // Highlighted option styling (keyboard navigation)
624
- index === highlightedIndex ? "tw-bg-[#f3f4f6] tw-text-gray-900" : (
625
- // Default option styling
626
- "tw-text-gray-900 hover:tw-bg-[#1118270a]"
627
- )
628
- )
629
- ),
630
- children: option.label
631
- }
632
- )
633
- },
634
- doubleCharSearch ? option.label : option.value
635
- )) : /* @__PURE__ */ jsx4("div", { className: "tw-px-4 tw-py-3 tw-text-gray-500 tw-text-sm", children: "No options found" })
651
+ children: filteredOptions.length > 0 ? filteredOptions.map((option, index) => {
652
+ const isSelected = normalizeValue(selectedValue) === normalizeValue(option.value);
653
+ const isHighlighted = index === highlightedIndex;
654
+ return /* @__PURE__ */ jsx4("div", { ref: (el) => optionRefs.current[index] = el, children: /* @__PURE__ */ jsx4(
655
+ OptionItem,
656
+ {
657
+ option,
658
+ index,
659
+ isSelected,
660
+ isHighlighted,
661
+ experience,
662
+ size,
663
+ optionClassName,
664
+ onSelectHandler: handleOptionClick,
665
+ onMouseEnterHandler: handleOptionMouseEnter
666
+ }
667
+ ) }, doubleCharSearch ? option.label : option.value);
668
+ }) : /* @__PURE__ */ jsx4("div", { className: "tw-px-4 tw-py-3 tw-text-gray-500 tw-text-sm", children: "No options found" })
636
669
  }
637
670
  )
638
671
  ]
639
672
  }
640
673
  ) });
641
674
  };
642
- var arePropsEqual = (prevProps, nextProps) => {
643
- var _a, _b;
644
- const criticalProps = [
645
- "value",
646
- "valueSelected",
647
- "options",
648
- "error",
649
- "disabled",
650
- "label",
651
- "mandatory"
652
- ];
653
- for (const prop of criticalProps) {
654
- if (prevProps[prop] !== nextProps[prop]) {
655
- return false;
656
- }
657
- }
658
- if (((_a = prevProps.options) == null ? void 0 : _a.length) !== ((_b = nextProps.options) == null ? void 0 : _b.length)) {
659
- return false;
660
- }
661
- if (prevProps.options && nextProps.options) {
662
- for (let i = 0; i < prevProps.options.length; i++) {
663
- const prevOpt = prevProps.options[i];
664
- const nextOpt = nextProps.options[i];
665
- if ((prevOpt == null ? void 0 : prevOpt.value) !== (nextOpt == null ? void 0 : nextOpt.value) || (prevOpt == null ? void 0 : prevOpt.label) !== (nextOpt == null ? void 0 : nextOpt.label)) {
666
- return false;
667
- }
668
- }
669
- }
670
- return true;
671
- };
672
675
  Select.displayName = "Select";
673
- var Select_default = memo3(Select, arePropsEqual);
676
+ var Select_default = Select;
674
677
 
675
678
  export {
676
679
  Select,