react-restyle-components 0.4.37 → 0.4.39

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 (225) hide show
  1. package/lib/index.js +1 -3
  2. package/lib/src/core-components/index.js +1 -1
  3. package/lib/src/core-components/src/components/Accordion/AccordionSection/Accordion.js +1 -15
  4. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionContext.js +1 -6
  5. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionSection.js +1 -39
  6. package/lib/src/core-components/src/components/Accordion/AccordionSection/Header.js +1 -39
  7. package/lib/src/core-components/src/components/Accordion/AccordionSection/elements.js +57 -94
  8. package/lib/src/core-components/src/components/Accordion/AccordionSection/hooks/useCurrentAccordionIndex.js +1 -13
  9. package/lib/src/core-components/src/components/Accordion/AccordionSection/index.js +1 -3
  10. package/lib/src/core-components/src/components/Accordion/AccordionSection/types.js +1 -9
  11. package/lib/src/core-components/src/components/Accordion/Collapsible/Collapsible2.component.js +1 -249
  12. package/lib/src/core-components/src/components/Action/types.js +1 -8
  13. package/lib/src/core-components/src/components/AlertBanner/AlertBanner.js +1 -45
  14. package/lib/src/core-components/src/components/AlertBanner/elements.js +45 -120
  15. package/lib/src/core-components/src/components/AlertBanner/index.js +1 -2
  16. package/lib/src/core-components/src/components/AlertBanner/types.js +1 -10
  17. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-group-by-multiple-select-multiple-fields-display/auto-complete-filter-group-by-multiple-select-multiple-fields-display.component.js +1 -334
  18. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-multi-fields-display-drag-drop/auto-complete-filter-multi-select-multi-fields-display-drag-drop.component.js +1 -229
  19. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-selected-top-display/auto-complete-filter-multi-select-selected-top-display.component.js +1 -174
  20. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.js +2 -129
  21. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select/auto-complete-filter-single-select.component.js +1 -55
  22. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +2 -308
  23. package/lib/src/core-components/src/components/AutoComplete/auto-complete-group-by/auto-complete-group-by.component.js +1 -115
  24. package/lib/src/core-components/src/components/AutoComplete/autocomplete/autocomplete.js +2 -442
  25. package/lib/src/core-components/src/components/AutoComplete/index.js +1 -8
  26. package/lib/src/core-components/src/components/Avatar/Avatar.js +14 -148
  27. package/lib/src/core-components/src/components/Badge/Badge.js +2 -25
  28. package/lib/src/core-components/src/components/Badge/InnerBadge/Inline.js +1 -25
  29. package/lib/src/core-components/src/components/Badge/InnerBadge/InnerBadge.js +1 -25
  30. package/lib/src/core-components/src/components/Badge/InnerBadge/elements.js +32 -78
  31. package/lib/src/core-components/src/components/Badge/InnerBadge/index.js +1 -1
  32. package/lib/src/core-components/src/components/Badge/index.js +1 -1
  33. package/lib/src/core-components/src/components/Badge/types.js +1 -5
  34. package/lib/src/core-components/src/components/Breadcrumb/Breadcrumb.js +1 -83
  35. package/lib/src/core-components/src/components/Breadcrumb/elements.js +94 -166
  36. package/lib/src/core-components/src/components/Breadcrumb/index.js +1 -3
  37. package/lib/src/core-components/src/components/Breadcrumb/types.js +1 -3
  38. package/lib/src/core-components/src/components/Button/button.component.js +1 -18
  39. package/lib/src/core-components/src/components/Button/buttonGroup/buttonGroup.component.js +1 -4
  40. package/lib/src/core-components/src/components/Button/index.js +1 -2
  41. package/lib/src/core-components/src/components/Button/types.js +1 -1
  42. package/lib/src/core-components/src/components/Chip/Chip.js +1 -64
  43. package/lib/src/core-components/src/components/Chip/elements.js +48 -148
  44. package/lib/src/core-components/src/components/Chip/index.js +1 -2
  45. package/lib/src/core-components/src/components/Chip/types.js +1 -4
  46. package/lib/src/core-components/src/components/Divider/Divider.js +1 -25
  47. package/lib/src/core-components/src/components/Divider/elements.js +31 -68
  48. package/lib/src/core-components/src/components/Divider/index.js +1 -2
  49. package/lib/src/core-components/src/components/Divider/types.js +1 -4
  50. package/lib/src/core-components/src/components/DynamicGrid/DynamicGrid.js +1 -147
  51. package/lib/src/core-components/src/components/DynamicGrid/GridContainer.js +17 -24
  52. package/lib/src/core-components/src/components/DynamicGrid/elements.js +100 -162
  53. package/lib/src/core-components/src/components/DynamicGrid/index.js +1 -3
  54. package/lib/src/core-components/src/components/DynamicGrid/types.js +1 -28
  55. package/lib/src/core-components/src/components/DynamicGrid/utils.js +1 -193
  56. package/lib/src/core-components/src/components/FormField/FormField.js +1 -103
  57. package/lib/src/core-components/src/components/FormField/components/CheckboxGroupInput.js +1 -37
  58. package/lib/src/core-components/src/components/FormField/components/CheckboxInput.js +1 -8
  59. package/lib/src/core-components/src/components/FormField/components/CssMultilineInput.js +1 -192
  60. package/lib/src/core-components/src/components/FormField/components/DatePickerInput.js +1 -99
  61. package/lib/src/core-components/src/components/FormField/components/DropdownInput.js +1 -70
  62. package/lib/src/core-components/src/components/FormField/components/OtpInput.js +1 -81
  63. package/lib/src/core-components/src/components/FormField/components/PasswordInput.js +1 -40
  64. package/lib/src/core-components/src/components/FormField/components/PinInput.js +1 -75
  65. package/lib/src/core-components/src/components/FormField/components/RadioInput.js +1 -54
  66. package/lib/src/core-components/src/components/FormField/components/TextDropdownInput.js +1 -94
  67. package/lib/src/core-components/src/components/FormField/components/ToggleInput.js +1 -36
  68. package/lib/src/core-components/src/components/FormField/components/index.js +1 -11
  69. package/lib/src/core-components/src/components/FormField/css-properties.js +1 -161
  70. package/lib/src/core-components/src/components/FormField/index.js +1 -2
  71. package/lib/src/core-components/src/components/Icon/Icon.js +1 -79
  72. package/lib/src/core-components/src/components/Icon/index.js +1 -2
  73. package/lib/src/core-components/src/components/Icon/types.js +1 -9
  74. package/lib/src/core-components/src/components/Loader/loader.component.js +2 -215
  75. package/lib/src/core-components/src/components/Masonry/Masonry.js +1 -73
  76. package/lib/src/core-components/src/components/Masonry/elements.js +29 -46
  77. package/lib/src/core-components/src/components/Masonry/hooks.js +1 -100
  78. package/lib/src/core-components/src/components/Masonry/index.js +1 -3
  79. package/lib/src/core-components/src/components/Masonry/types.js +1 -1
  80. package/lib/src/core-components/src/components/Modal/BasicModal/modal.component.js +1 -116
  81. package/lib/src/core-components/src/components/Modal/index.js +1 -2
  82. package/lib/src/core-components/src/components/Modal/modal-confirm/modal-confirm.component.js +1 -147
  83. package/lib/src/core-components/src/components/Picker/color-picker/color-picker.component.js +1 -12
  84. package/lib/src/core-components/src/components/Picker/color-picker-modal/color-picker-modal.component.js +1 -40
  85. package/lib/src/core-components/src/components/Picker/index.js +1 -2
  86. package/lib/src/core-components/src/components/Selection/index.js +1 -4
  87. package/lib/src/core-components/src/components/Selection/multi-select/multi-select.component.js +1 -49
  88. package/lib/src/core-components/src/components/Selection/multi-select-with-field/multi-select-with-field.component.js +1 -58
  89. package/lib/src/core-components/src/components/Selection/multi-selection-dropdown/multi-selection-dropdown.component.js +1 -43
  90. package/lib/src/core-components/src/components/Selection/single-select/single-select.component.js +1 -87
  91. package/lib/src/core-components/src/components/Skeleton/Skeleton.js +1 -51
  92. package/lib/src/core-components/src/components/Skeleton/elements.js +54 -143
  93. package/lib/src/core-components/src/components/Skeleton/index.js +1 -2
  94. package/lib/src/core-components/src/components/Skeleton/types.js +1 -4
  95. package/lib/src/core-components/src/components/SpeedDial/SpeedDial.js +1 -128
  96. package/lib/src/core-components/src/components/SpeedDial/elements.js +62 -132
  97. package/lib/src/core-components/src/components/SpeedDial/index.js +1 -2
  98. package/lib/src/core-components/src/components/SpeedDial/types.js +1 -3
  99. package/lib/src/core-components/src/components/Stepper2/stepper.component.js +1 -139
  100. package/lib/src/core-components/src/components/Switch/Switch.js +1 -26
  101. package/lib/src/core-components/src/components/Switch/elements.js +34 -103
  102. package/lib/src/core-components/src/components/Switch/index.js +1 -2
  103. package/lib/src/core-components/src/components/Switch/types.js +1 -3
  104. package/lib/src/core-components/src/components/Table/Table.js +1 -1100
  105. package/lib/src/core-components/src/components/Table/elements.js +153 -240
  106. package/lib/src/core-components/src/components/Table/filters.js +30 -555
  107. package/lib/src/core-components/src/components/Table/hooks.js +2 -536
  108. package/lib/src/core-components/src/components/Table/index.js +1 -4
  109. package/lib/src/core-components/src/components/Table/types.js +1 -1
  110. package/lib/src/core-components/src/components/Tabs/tabs.component.js +1 -22
  111. package/lib/src/core-components/src/components/Tags1/Tags.component.js +1 -118
  112. package/lib/src/core-components/src/components/Tags1/types.js +1 -20
  113. package/lib/src/core-components/src/components/Timer1/timer.component.js +1 -76
  114. package/lib/src/core-components/src/components/Toast/Toast.js +1 -50
  115. package/lib/src/core-components/src/components/Toast/elements.js +41 -122
  116. package/lib/src/core-components/src/components/Toast/index.js +1 -2
  117. package/lib/src/core-components/src/components/Toast/types.js +1 -9
  118. package/lib/src/core-components/src/components/Tooltip/Tooltip.js +1 -200
  119. package/lib/src/core-components/src/components/Tooltip/elements.js +55 -117
  120. package/lib/src/core-components/src/components/Tooltip/index.js +1 -2
  121. package/lib/src/core-components/src/components/Tooltip/types.js +1 -17
  122. package/lib/src/core-components/src/components/Tooltip/utils.js +1 -140
  123. package/lib/src/core-components/src/components/TreeSelect/TreeSelect.js +1 -303
  124. package/lib/src/core-components/src/components/TreeSelect/elements.js +117 -216
  125. package/lib/src/core-components/src/components/TreeSelect/hooks.js +1 -252
  126. package/lib/src/core-components/src/components/TreeSelect/index.js +1 -3
  127. package/lib/src/core-components/src/components/TreeSelect/types.js +1 -1
  128. package/lib/src/core-components/src/components/index.js +1 -30
  129. package/lib/src/core-components/src/components/pdf/pdf-images.components.js +1 -7
  130. package/lib/src/core-components/src/components/pdf/pdf-table.components.js +5 -48
  131. package/lib/src/core-components/src/components/pdf/pdf-typography.components.js +1 -70
  132. package/lib/src/core-components/src/components/pdf/pdf-wrapped-view.components.js +1 -50
  133. package/lib/src/core-components/src/core-components/Avatar.js +4 -33
  134. package/lib/src/core-components/src/core-components/CoreButton/CoreButton.js +1 -10
  135. package/lib/src/core-components/src/core-components/CoreButton/elements.js +67 -176
  136. package/lib/src/core-components/src/core-components/CoreButton/index.js +1 -3
  137. package/lib/src/core-components/src/core-components/CoreButton/types.js +1 -6
  138. package/lib/src/core-components/src/core-components/CoreButton/utils.js +1 -12
  139. package/lib/src/core-components/src/core-components/Divider/Divider.js +4 -19
  140. package/lib/src/core-components/src/core-components/Divider/index.js +1 -1
  141. package/lib/src/core-components/src/core-components/SelectionCardStrip/index.js +1 -1
  142. package/lib/src/core-components/src/core-components/SelectionCardStrip/selectionCardStrip.js +10 -33
  143. package/lib/src/core-components/src/core-components/StateLayer.js +3 -5
  144. package/lib/src/core-components/src/core-components/ToggleCore/elements.js +25 -50
  145. package/lib/src/core-components/src/core-components/ToggleCore/index.js +1 -2
  146. package/lib/src/core-components/src/core-components/ToggleCore/toggleCore.js +1 -14
  147. package/lib/src/core-components/src/core-components/atoms/Input/Input.js +1 -22
  148. package/lib/src/core-components/src/core-components/atoms/Label/Label.js +1 -21
  149. package/lib/src/core-components/src/core-components/atoms/Textarea/Textarea.js +1 -19
  150. package/lib/src/core-components/src/core-components/index.js +1 -3
  151. package/lib/src/core-components/src/helpers/constants.js +1 -11
  152. package/lib/src/core-components/src/hooks/index.js +1 -1
  153. package/lib/src/core-components/src/hooks/outside.hook.js +1 -28
  154. package/lib/src/core-components/src/index.js +1 -12
  155. package/lib/src/core-components/src/tc.global.css +1 -0
  156. package/lib/src/core-components/src/utils/abstracts/breakpoints/index.js +1 -28
  157. package/lib/src/core-components/src/utils/abstracts/colors/index.js +1 -49
  158. package/lib/src/core-components/src/utils/abstracts/index.js +1 -5
  159. package/lib/src/core-components/src/utils/abstracts/space/index.js +1 -26
  160. package/lib/src/core-components/src/utils/abstracts/theme/ThemeBoundary.js +1 -8
  161. package/lib/src/core-components/src/utils/abstracts/theme/default-themes.js +1 -30
  162. package/lib/src/core-components/src/utils/abstracts/theme/index.js +1 -3
  163. package/lib/src/core-components/src/utils/abstracts/theme/theme.js +1 -30
  164. package/lib/src/core-components/src/utils/abstracts/theme/types.js +1 -1
  165. package/lib/src/core-components/src/utils/abstracts/theme/useTheme.js +1 -17
  166. package/lib/src/core-components/src/utils/abstracts/typography/index.js +1 -25
  167. package/lib/src/core-components/src/utils/context/DefaultsProvider.js +1 -8
  168. package/lib/src/core-components/src/utils/context/InternalProvider.js +1 -24
  169. package/lib/src/core-components/src/utils/context/index.js +1 -2
  170. package/lib/src/core-components/src/utils/designTokens.js +1 -125
  171. package/lib/src/core-components/src/utils/helpers/attachSubComponents.js +1 -23
  172. package/lib/src/core-components/src/utils/helpers/flattenChildren.js +1 -11
  173. package/lib/src/core-components/src/utils/helpers/getChildByType.js +1 -3
  174. package/lib/src/core-components/src/utils/helpers/index.js +1 -5
  175. package/lib/src/core-components/src/utils/helpers/isComponentType.js +1 -16
  176. package/lib/src/core-components/src/utils/helpers/separateChildrenByType.js +1 -12
  177. package/lib/src/core-components/src/utils/hooks/index.js +1 -18
  178. package/lib/src/core-components/src/utils/hooks/useClickOutside.js +1 -18
  179. package/lib/src/core-components/src/utils/hooks/useCombinedRefs.js +1 -17
  180. package/lib/src/core-components/src/utils/hooks/useDebouncedCallback.js +1 -12
  181. package/lib/src/core-components/src/utils/hooks/useDebouncedValue.js +1 -20
  182. package/lib/src/core-components/src/utils/hooks/useDeprecation.js +1 -40
  183. package/lib/src/core-components/src/utils/hooks/useDeviceDetect.js +1 -10
  184. package/lib/src/core-components/src/utils/hooks/useDeviceForm.js +1 -24
  185. package/lib/src/core-components/src/utils/hooks/useDisableBodyScroll.js +1 -16
  186. package/lib/src/core-components/src/utils/hooks/useHoverState.js +1 -36
  187. package/lib/src/core-components/src/utils/hooks/useId.js +1 -7
  188. package/lib/src/core-components/src/utils/hooks/useIsBrowser.js +1 -11
  189. package/lib/src/core-components/src/utils/hooks/useMediaQuery.js +1 -16
  190. package/lib/src/core-components/src/utils/hooks/useOverflow.js +1 -22
  191. package/lib/src/core-components/src/utils/hooks/useSafeLayoutEffect.js +1 -5
  192. package/lib/src/core-components/src/utils/hooks/useScrollingUp.js +1 -18
  193. package/lib/src/core-components/src/utils/hooks/useTrapFocus.js +1 -30
  194. package/lib/src/core-components/src/utils/hooks/useWindowDimensions.js +1 -23
  195. package/lib/src/core-components/src/utils/index.js +1 -9
  196. package/lib/src/core-components/src/utils/stories/Wrappers.js +8 -23
  197. package/lib/src/core-components/src/utils/stories/cleanProps.js +1 -5
  198. package/lib/src/core-components/src/utils/stories/index.js +1 -4
  199. package/lib/src/core-components/src/utils/stories/sleep.js +1 -4
  200. package/lib/src/core-components/src/utils/stories/view-ports.js +1 -50
  201. package/lib/src/core-components/src/utils/styling/calcWidthOfColumns.js +1 -5
  202. package/lib/src/core-components/src/utils/styling/createGridContainer.js +6 -12
  203. package/lib/src/core-components/src/utils/styling/createTransition.js +2 -7
  204. package/lib/src/core-components/src/utils/styling/forwardProps.js +1 -10
  205. package/lib/src/core-components/src/utils/styling/index.js +1 -5
  206. package/lib/src/core-components/src/utils/styling/pxToRem.js +1 -6
  207. package/lib/src/core-components/src/utils/testing/getComputedStyle.js +1 -3
  208. package/lib/src/core-components/src/utils/testing/index.js +1 -1
  209. package/lib/src/core-components/src/utils/utility.util.js +1 -14
  210. package/lib/src/core-components/tailwind.config.js +1 -233
  211. package/lib/src/core-hooks/index.js +1 -3
  212. package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.js +1 -46
  213. package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.js +1 -30
  214. package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.js +1 -8
  215. package/lib/src/core-utils/index.js +1 -7
  216. package/lib/src/core-utils/src/calculation/calculation.util.js +1 -89
  217. package/lib/src/core-utils/src/colors/color.util.js +1 -15
  218. package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.js +1 -145
  219. package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.js +1 -5
  220. package/lib/src/core-utils/src/form-helper/form-helper.util.js +1 -82
  221. package/lib/src/core-utils/src/index.js +1 -7
  222. package/lib/src/core-utils/src/utility/utility.util.js +1 -12
  223. package/lib/src/core-utils/src/uuid/uuid.util.js +1 -8
  224. package/package.json +2 -1
  225. package/lib/src/core-components/src/assets/styles/fontface.css +0 -17
@@ -1,36 +1 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState, useEffect } from 'react';
3
- import classNames from 'classnames';
4
- import { Label } from '../../../core-components/atoms/Label/Label';
5
- import s from '../../../tc.module.css';
6
- import { cn } from '../../../utils';
7
- import '../toggle.css';
8
- export const ToggleInput = React.forwardRef(({ id, label, error, required, value, onChange, disabled, isToggleLabel = true, className, labelProps, ...props }, ref) => {
9
- const [toggleValue, setToggleValue] = useState(value ?? false);
10
- useEffect(() => {
11
- if (value !== undefined) {
12
- setToggleValue(value);
13
- }
14
- }, [value]);
15
- const handleToggleClick = () => {
16
- if (disabled)
17
- return;
18
- const newValue = !toggleValue;
19
- setToggleValue(newValue);
20
- if (onChange) {
21
- onChange(newValue);
22
- }
23
- };
24
- const toggleClasses = classNames('wrg-toggle', {
25
- 'wrg-toggle--checked': toggleValue,
26
- 'wrg-toggle--disabled': disabled,
27
- }, className);
28
- return (_jsxs("div", { className: cn(s['w-full'], className), children: [label && (_jsx(Label, { id: id, required: required, label: label, ...labelProps })), _jsxs("div", { onClick: handleToggleClick, className: toggleClasses, children: [_jsx("div", { className: cn('wrg-toggle-container', {
29
- [s['bg-green-700']]: toggleValue,
30
- [s['bg-black']]: !toggleValue,
31
- }), children: isToggleLabel && (_jsxs(_Fragment, { children: [_jsx("div", { className: cn('wrg-toggle-check'), children: _jsx("span", { className: cn(s['text-white'], s['ml-1']), children: "Yes" }) }), _jsx("div", { className: cn('wrg-toggle-uncheck'), children: _jsx("span", { className: cn(s['dark:text-black']), children: "No" }) })] })) }), _jsx("div", { className: cn('wrg-toggle-circle', s['dark:bg-black'], {
32
- 'ml-1': toggleValue,
33
- 'mr-1': !toggleValue,
34
- }) }), _jsx("input", { ref: ref, type: "checkbox", "aria-label": "Toggle Button", className: cn('wrg-toggle-input'), checked: toggleValue, readOnly: true, ...props })] }), error && (_jsx("p", { className: cn(s['mt-1'], s['text-sm'], s['text-red-600'], s['dark:text-red-400']), children: error }))] }));
35
- });
36
- ToggleInput.displayName = 'ToggleInput';
1
+ "use strict";import{jsx as t,Fragment as b,jsxs as a}from"react/jsx-runtime";import T,{useState as j,useEffect as v}from"react";import y from"classnames";import{Label as V}from"../../../core-components/atoms/Label/Label";import e from"../../../tc.module.css";import{cn as l}from"../../../utils";import"../toggle.css";export const ToggleInput=T.forwardRef(({id:f,label:c,error:g,required:p,value:s,onChange:o,disabled:i,isToggleLabel:h=!0,className:n,labelProps:u,...k},w)=>{const[r,m]=j(s??!1);v(()=>{s!==void 0&&m(s)},[s]);const N=()=>{if(i)return;const d=!r;m(d),o&&o(d)},x=y("wrg-toggle",{"wrg-toggle--checked":r,"wrg-toggle--disabled":i},n);return a("div",{className:l(e["w-full"],n),children:[c&&t(V,{id:f,required:p,label:c,...u}),a("div",{onClick:N,className:x,children:[t("div",{className:l("wrg-toggle-container",{[e["bg-green-700"]]:r,[e["bg-black"]]:!r}),children:h&&a(b,{children:[t("div",{className:l("wrg-toggle-check"),children:t("span",{className:l(e["text-white"],e["ml-1"]),children:"Yes"})}),t("div",{className:l("wrg-toggle-uncheck"),children:t("span",{className:l(e["dark:text-black"]),children:"No"})})]})}),t("div",{className:l("wrg-toggle-circle",e["dark:bg-black"],{"ml-1":r,"mr-1":!r})}),t("input",{ref:w,type:"checkbox","aria-label":"Toggle Button",className:l("wrg-toggle-input"),checked:r,readOnly:!0,...k})]}),g&&t("p",{className:l(e["mt-1"],e["text-sm"],e["text-red-600"],e["dark:text-red-400"]),children:g})]})});ToggleInput.displayName="ToggleInput";
@@ -1,11 +1 @@
1
- export { PasswordInput } from './PasswordInput';
2
- export { ToggleInput } from './ToggleInput';
3
- export { RadioInput } from './RadioInput';
4
- export { CheckboxInput } from './CheckboxInput';
5
- export { CheckboxGroupInput } from './CheckboxGroupInput';
6
- export { DatePickerInput } from './DatePickerInput';
7
- export { DropdownInput } from './DropdownInput';
8
- export { TextDropdownInput } from './TextDropdownInput';
9
- export { PinInput } from './PinInput';
10
- export { OtpInput } from './OtpInput';
11
- export { CssMultilineInput } from './CssMultilineInput';
1
+ "use strict";export{PasswordInput}from"./PasswordInput";export{ToggleInput}from"./ToggleInput";export{RadioInput}from"./RadioInput";export{CheckboxInput}from"./CheckboxInput";export{CheckboxGroupInput}from"./CheckboxGroupInput";export{DatePickerInput}from"./DatePickerInput";export{DropdownInput}from"./DropdownInput";export{TextDropdownInput}from"./TextDropdownInput";export{PinInput}from"./PinInput";export{OtpInput}from"./OtpInput";export{CssMultilineInput}from"./CssMultilineInput";
@@ -1,161 +1 @@
1
- /* eslint-disable no-sparse-arrays */
2
- export const properties = [
3
- {
4
- alignContent: [
5
- 'flex-start',
6
- 'flex-end',
7
- 'center',
8
- 'stretch',
9
- 'space-between',
10
- 'space-around',
11
- ],
12
- },
13
- { alignItems: ['flex-start', 'flex-end', 'center', 'stretch', 'baseline'] },
14
- {
15
- alignSelf: [
16
- 'auto',
17
- 'flex-start',
18
- 'flex-end',
19
- 'center',
20
- 'baseline',
21
- 'stretch',
22
- ],
23
- },
24
- { flex: ['number'] },
25
- { flexDirection: ['row', 'row-reverse', 'column', 'column-reverse'] },
26
- { flexWrap: ['nowrap', 'wrap', 'wrap-reverse'] },
27
- { flexFlow: ['number'] },
28
- { flexGrow: ['number'] },
29
- { flexShrink: ['number'] },
30
- { flexBasis: ['number'] },
31
- {
32
- justifyContent: [
33
- ,
34
- 'flex-start',
35
- 'flex-end',
36
- 'center',
37
- 'space-around',
38
- 'space-between',
39
- 'space-evenly',
40
- ],
41
- },
42
- { gap: ['number'] },
43
- { rowGap: ['number'] },
44
- { columnGap: ['number'] },
45
- // Layout
46
- { aspectRatio: ['number'] },
47
- { bottom: ['number'] },
48
- { display: ['flex', 'none'] },
49
- { left: ['number'] },
50
- { position: ['absolute', 'relative'] },
51
- { right: ['number'] },
52
- { top: ['number'] },
53
- { overflow: ['hidden'] },
54
- { zIndex: ['number'] },
55
- // Dimension
56
- { height: ['number'] },
57
- { maxHeight: ['number'] },
58
- { maxWidth: ['number'] },
59
- { minHeight: ['number'] },
60
- { minWidth: ['number'] },
61
- { width: ['number'] },
62
- // Color
63
- { backgroundColor: ['string'] },
64
- { color: ['string'] },
65
- { opacity: ['number'] },
66
- // Text
67
- { fontSize: ['number'] },
68
- { fontFamily: ['string'] },
69
- { fontStyle: ['string', 'normal'] },
70
- {
71
- fontWeight: [
72
- ,
73
- 'number',
74
- 'thin',
75
- 'hairline',
76
- 'ultralight',
77
- 'extralight',
78
- 'light',
79
- 'normal',
80
- 'medium',
81
- 'semibold',
82
- 'demibold',
83
- 'bold',
84
- 'ultrabold',
85
- 'extrabold',
86
- 'heavy',
87
- 'black',
88
- ],
89
- },
90
- { letterSpacing: ['number'] },
91
- { lineHeight: ['number'] },
92
- { maxLines: ['number'] },
93
- { textAlign: ['left', 'right', 'center', 'justify'] },
94
- {
95
- textDecoration: [
96
- ,
97
- 'line-through',
98
- 'underline',
99
- 'none',
100
- 'line-through underline',
101
- 'underline line-through',
102
- ],
103
- },
104
- { textDecorationColor: ['string'] },
105
- { textDecorationStyle: ['dashed', 'dotted', 'solid', 'string'] },
106
- { textIndent: ['any'] },
107
- { textOverflow: ['ellipsis'] },
108
- { textTransform: ['capitalize', 'lowercase', 'uppercase'] },
109
- { verticalAlign: ['sub', 'super'] },
110
- // Sizing/positioning
111
- { objectFit: ['string'] },
112
- { objectPosition: ['number'] },
113
- { objectPositionX: ['number'] },
114
- { objectPositionY: ['number'] },
115
- // Margin/padding
116
- { margin: ['number'] },
117
- { marginHorizontal: ['number'] },
118
- { marginVertical: ['number'] },
119
- { marginTop: ['number'] },
120
- { marginRight: ['number'] },
121
- { marginBottom: ['number'] },
122
- { marginLeft: ['number'] },
123
- { padding: ['number'] },
124
- { paddingHorizontal: ['number'] },
125
- { paddingVertical: ['number'] },
126
- { paddingTop: ['number'] },
127
- { paddingRight: ['number'] },
128
- { paddingBottom: ['number'] },
129
- { paddingLeft: ['number'] },
130
- // Transformations
131
- { transform: ['string'] },
132
- { transformOrigin: ['number'] },
133
- { transformOriginX: ['number'] },
134
- { transformOriginY: ['number'] },
135
- // Borders
136
- { border: ['number'] },
137
- { borderWidth: ['number'] },
138
- { borderColor: ['string'] },
139
- { borderStyle: ['dashed', 'dotted', 'solid'] },
140
- { borderTop: ['number'] },
141
- { borderTopColor: ['string'] },
142
- { borderTopStyle: ['dashed', 'dotted', 'solid'] },
143
- { borderTopWidth: ['number'] },
144
- { borderRight: ['number'] },
145
- { borderRightColor: ['string'] },
146
- { borderRightStyle: ['dashed', 'dotted', 'solid'] },
147
- { borderRightWidth: ['number'] },
148
- { borderBottom: ['number'] },
149
- { borderBottomColor: ['string'] },
150
- { borderBottomStyle: ['dashed', 'dotted', 'solid'] },
151
- { borderBottomWidth: ['number'] },
152
- { borderLeft: ['number'] },
153
- { borderLeftColor: ['string'] },
154
- { borderLeftStyle: ['dashed', 'dotted', 'solid'] },
155
- { borderLeftWidth: ['number'] },
156
- { borderTopLeftRadius: ['number'] },
157
- { borderTopRightRadius: ['number'] },
158
- { borderBottomRightRadius: ['number'] },
159
- { borderBottomLeftRadius: ['number'] },
160
- { borderRadius: ['number'] },
161
- ];
1
+ "use strict";export const properties=[{alignContent:["flex-start","flex-end","center","stretch","space-between","space-around"]},{alignItems:["flex-start","flex-end","center","stretch","baseline"]},{alignSelf:["auto","flex-start","flex-end","center","baseline","stretch"]},{flex:["number"]},{flexDirection:["row","row-reverse","column","column-reverse"]},{flexWrap:["nowrap","wrap","wrap-reverse"]},{flexFlow:["number"]},{flexGrow:["number"]},{flexShrink:["number"]},{flexBasis:["number"]},{justifyContent:[,"flex-start","flex-end","center","space-around","space-between","space-evenly"]},{gap:["number"]},{rowGap:["number"]},{columnGap:["number"]},{aspectRatio:["number"]},{bottom:["number"]},{display:["flex","none"]},{left:["number"]},{position:["absolute","relative"]},{right:["number"]},{top:["number"]},{overflow:["hidden"]},{zIndex:["number"]},{height:["number"]},{maxHeight:["number"]},{maxWidth:["number"]},{minHeight:["number"]},{minWidth:["number"]},{width:["number"]},{backgroundColor:["string"]},{color:["string"]},{opacity:["number"]},{fontSize:["number"]},{fontFamily:["string"]},{fontStyle:["string","normal"]},{fontWeight:[,"number","thin","hairline","ultralight","extralight","light","normal","medium","semibold","demibold","bold","ultrabold","extrabold","heavy","black"]},{letterSpacing:["number"]},{lineHeight:["number"]},{maxLines:["number"]},{textAlign:["left","right","center","justify"]},{textDecoration:[,"line-through","underline","none","line-through underline","underline line-through"]},{textDecorationColor:["string"]},{textDecorationStyle:["dashed","dotted","solid","string"]},{textIndent:["any"]},{textOverflow:["ellipsis"]},{textTransform:["capitalize","lowercase","uppercase"]},{verticalAlign:["sub","super"]},{objectFit:["string"]},{objectPosition:["number"]},{objectPositionX:["number"]},{objectPositionY:["number"]},{margin:["number"]},{marginHorizontal:["number"]},{marginVertical:["number"]},{marginTop:["number"]},{marginRight:["number"]},{marginBottom:["number"]},{marginLeft:["number"]},{padding:["number"]},{paddingHorizontal:["number"]},{paddingVertical:["number"]},{paddingTop:["number"]},{paddingRight:["number"]},{paddingBottom:["number"]},{paddingLeft:["number"]},{transform:["string"]},{transformOrigin:["number"]},{transformOriginX:["number"]},{transformOriginY:["number"]},{border:["number"]},{borderWidth:["number"]},{borderColor:["string"]},{borderStyle:["dashed","dotted","solid"]},{borderTop:["number"]},{borderTopColor:["string"]},{borderTopStyle:["dashed","dotted","solid"]},{borderTopWidth:["number"]},{borderRight:["number"]},{borderRightColor:["string"]},{borderRightStyle:["dashed","dotted","solid"]},{borderRightWidth:["number"]},{borderBottom:["number"]},{borderBottomColor:["string"]},{borderBottomStyle:["dashed","dotted","solid"]},{borderBottomWidth:["number"]},{borderLeft:["number"]},{borderLeftColor:["string"]},{borderLeftStyle:["dashed","dotted","solid"]},{borderLeftWidth:["number"]},{borderTopLeftRadius:["number"]},{borderTopRightRadius:["number"]},{borderBottomRightRadius:["number"]},{borderBottomLeftRadius:["number"]},{borderRadius:["number"]}];
@@ -1,2 +1 @@
1
- export * from './FormField';
2
- export * from './components';
1
+ "use strict";export*from"./FormField";export*from"./components";
@@ -1,79 +1 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Suspense } from 'react';
3
- import _ from 'lodash';
4
- import { Tooltip } from '../Tooltip';
5
- import loadable from '@loadable/component';
6
- import s from '../../tc.module.css';
7
- import { cn } from '../../utils';
8
- const CompatIcon = ({ src, className, style, ...props }) => {
9
- if (typeof src === 'string') {
10
- return (_jsx("img", { src: src, className: cn(s.icon, className), style: style, ...props, alt: "" }));
11
- }
12
- return (_jsx("div", { className: cn(s.icon, className), style: style, ...props, children: src }));
13
- };
14
- const SSRIcon = ({ nameIcon, classNames = {}, styles = {}, ...props }) => {
15
- return (_jsx("span", { className: cn(s.icon, props.className, classNames.icon), style: styles.icon, "aria-hidden": "true", children: "\u26AB" }));
16
- };
17
- export const Icon = ({ nameIcon, propsIcon, className, tooltip = '', isDisable = false, classNames = {}, styles = {}, onClick, }) => {
18
- try {
19
- const iconProps = {
20
- ...propsIcon,
21
- color: isDisable ? '#808080' : propsIcon?.color || 'rgb(36 48 63)',
22
- };
23
- const lib = nameIcon.startsWith('IoIo')
24
- ? 'io'
25
- : nameIcon.startsWith('Io')
26
- ? 'io5'
27
- : nameIcon
28
- .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
29
- .split(' ')[0]
30
- .toLowerCase();
31
- const iconLibraries = {
32
- fa: () => import('react-icons/fa'),
33
- md: () => import('react-icons/md'),
34
- io: () => import('react-icons/io'),
35
- fi: () => import('react-icons/fi'),
36
- bs: () => import('react-icons/bs'),
37
- hi: () => import('react-icons/hi'),
38
- go: () => import('react-icons/go'),
39
- si: () => import('react-icons/si'),
40
- ti: () => import('react-icons/ti'),
41
- wi: () => import('react-icons/wi'),
42
- di: () => import('react-icons/di'),
43
- ri: () => import('react-icons/ri'),
44
- fc: () => import('react-icons/fc'),
45
- gr: () => import('react-icons/gr'),
46
- lu: () => import('react-icons/lu'),
47
- gi: () => import('react-icons/gi'),
48
- tb: () => import('react-icons/tb'),
49
- rx: () => import('react-icons/rx'),
50
- im: () => import('react-icons/im'),
51
- cg: () => import('react-icons/cg'),
52
- io5: () => import('react-icons/io5'),
53
- ai: () => import('react-icons/ai'),
54
- vsc: () => import('react-icons/vsc'),
55
- bi: () => import('react-icons/bi'),
56
- fa2: () => import('react-icons/fa'),
57
- ci: () => import('react-icons/ci'),
58
- lib: () => import('react-icons/lib'),
59
- lia: () => import('react-icons/lia'),
60
- pi: () => import('react-icons/pi'),
61
- tfi: () => import('react-icons/tfi'),
62
- fa6: () => import('react-icons/fa6'),
63
- };
64
- const loadLibrary = iconLibraries[lib] || (() => import('react-icons/md'));
65
- const ElementIcon = loadable(loadLibrary, {
66
- resolveComponent: (el) => el[nameIcon] != null ? el[nameIcon] : el[Object.keys(el.default)[0]],
67
- });
68
- return (_jsx("div", { className: cn(s.iconContainer, className, classNames.container), style: styles.container, onClick: () => {
69
- if (!isDisable)
70
- onClick && onClick();
71
- }, children: !_.isEmpty(tooltip) ? (_jsx(Tooltip, { content: tooltip, children: _jsx(ElementIcon, { ...iconProps, className: cn(s.icon, classNames.icon), style: styles.icon }) })) : (_jsx(Suspense, { fallback: _jsx("div", { children: "Loading..." }), children: _jsx(ElementIcon, { ...iconProps, className: cn(s.icon, classNames.icon), style: styles.icon }) })) }));
72
- }
73
- catch (error) {
74
- return _jsx(_Fragment, {});
75
- }
76
- };
77
- // Attach sub-components
78
- Icon.SSR = SSRIcon;
79
- Icon.Compat = CompatIcon;
1
+ "use strict";import{jsx as o,Fragment as h}from"react/jsx-runtime";import{Suspense as u}from"react";import y from"lodash";import{Tooltip as v}from"../Tooltip";import C from"@loadable/component";import n from"../../tc.module.css";import{cn as c}from"../../utils";const L=({src:i,className:r,style:m,...t})=>typeof i=="string"?o("img",{src:i,className:c(n.icon,r),style:m,...t,alt:""}):o("div",{className:c(n.icon,r),style:m,...t,children:i}),S=({nameIcon:i,classNames:r={},styles:m={},...t})=>o("span",{className:c(n.icon,t.className,r.icon),style:m.icon,"aria-hidden":"true",children:"\u26AB"});export const Icon=({nameIcon:i,propsIcon:r,className:m,tooltip:t="",isDisable:l=!1,classNames:e={},styles:a={},onClick:f})=>{try{const s={...r,color:l?"#808080":r?.color||"rgb(36 48 63)"},b=i.startsWith("IoIo")?"io":i.startsWith("Io")?"io5":i.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(" ")[0].toLowerCase(),g={fa:()=>import("react-icons/fa"),md:()=>import("react-icons/md"),io:()=>import("react-icons/io"),fi:()=>import("react-icons/fi"),bs:()=>import("react-icons/bs"),hi:()=>import("react-icons/hi"),go:()=>import("react-icons/go"),si:()=>import("react-icons/si"),ti:()=>import("react-icons/ti"),wi:()=>import("react-icons/wi"),di:()=>import("react-icons/di"),ri:()=>import("react-icons/ri"),fc:()=>import("react-icons/fc"),gr:()=>import("react-icons/gr"),lu:()=>import("react-icons/lu"),gi:()=>import("react-icons/gi"),tb:()=>import("react-icons/tb"),rx:()=>import("react-icons/rx"),im:()=>import("react-icons/im"),cg:()=>import("react-icons/cg"),io5:()=>import("react-icons/io5"),ai:()=>import("react-icons/ai"),vsc:()=>import("react-icons/vsc"),bi:()=>import("react-icons/bi"),fa2:()=>import("react-icons/fa"),ci:()=>import("react-icons/ci"),lib:()=>import("react-icons/lib"),lia:()=>import("react-icons/lia"),pi:()=>import("react-icons/pi"),tfi:()=>import("react-icons/tfi"),fa6:()=>import("react-icons/fa6")}[b]||(()=>import("react-icons/md")),d=C(g,{resolveComponent:p=>p[i]!=null?p[i]:p[Object.keys(p.default)[0]]});return o("div",{className:c(n.iconContainer,m,e.container),style:a.container,onClick:()=>{l||f&&f()},children:y.isEmpty(t)?o(u,{fallback:o("div",{children:"Loading..."}),children:o(d,{...s,className:c(n.icon,e.icon),style:a.icon})}):o(v,{content:t,children:o(d,{...s,className:c(n.icon,e.icon),style:a.icon})})})}catch{return o(h,{})}};Icon.SSR=S,Icon.Compat=L;
@@ -1,2 +1 @@
1
- export * from './Icon';
2
- export * from './types';
1
+ "use strict";export*from"./Icon";export*from"./types";
@@ -1,9 +1 @@
1
- export const ICON_SIZES = [
2
- 'xsmall',
3
- 'small',
4
- 'normal',
5
- 'medium',
6
- 'large',
7
- 'xlarge',
8
- 'xxlarge',
9
- ];
1
+ "use strict";export const ICON_SIZES=["xsmall","small","normal","medium","large","xlarge","xxlarge"];
@@ -1,216 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import s from '../../tc.module.css';
3
- import { cn } from '../../utils';
4
- const sizeClasses = {
5
- sm: {
6
- wrapper: cn(s['w-4'], s['h-4']),
7
- spinner: cn(s['w-4'], s['h-4']),
8
- dots: cn(s['w-1'], s['h-1']),
9
- bars: cn(s['w-1'], s['h-6']),
10
- pulse: cn(s['w-4'], s['h-4']),
11
- },
12
- md: {
13
- wrapper: cn(s['w-8'], s['h-8']),
14
- spinner: cn(s['w-8'], s['h-8']),
15
- dots: cn(s['w-2'], s['h-2']),
16
- bars: cn(s['w-1'], s['h-8']),
17
- pulse: cn(s['w-8'], s['h-8']),
18
- },
19
- lg: {
20
- wrapper: cn(s['w-10'], s['h-10']),
21
- spinner: cn(s['w-10'], s['h-10']),
22
- dots: cn(s['w-3'], s['h-3']),
23
- bars: cn(s['w-2'], s['h-10']),
24
- pulse: cn(s['w-10'], s['h-10']),
25
- },
26
- };
27
- const getColorValue = (color) => {
28
- const colors = {
29
- blue: 'rgb(59 130 246)',
30
- green: 'rgb(34 197 94)',
31
- gray: 'rgb(156 163 175)',
32
- primary: 'rgb(59 130 246)',
33
- white: 'rgb(255 255 255)',
34
- black: 'rgb(0 0 0)',
35
- };
36
- // If it's a predefined color, return the mapped value
37
- if (colors[color]) {
38
- return colors[color];
39
- }
40
- // If it's already a valid CSS color (hex, rgb, rgba, hsl, named color, etc.), return it as-is
41
- // Check if it looks like a CSS color value (starts with #, rgb, rgba, hsl, hsla, or is a valid CSS color name)
42
- if (color.startsWith('#') ||
43
- color.startsWith('rgb') ||
44
- color.startsWith('hsl') ||
45
- color.startsWith('rgba') ||
46
- color.startsWith('hsla') ||
47
- /^[a-z]+$/i.test(color) // Named colors like 'coral', 'tomato', etc.
48
- ) {
49
- return color;
50
- }
51
- // Default fallback
52
- return colors.blue;
53
- };
54
- // Helper function to extract RGB values from any color format for opacity borders
55
- const extractRgbForOpacity = (colorValue) => {
56
- // Handle rgb/rgba format: rgb(59 130 246) or rgba(59, 130, 246, 0.5)
57
- const rgbMatch = colorValue.match(/rgba?\((\d+)[,\s]+(\d+)[,\s]+(\d+)/);
58
- if (rgbMatch) {
59
- return [
60
- parseInt(rgbMatch[1]),
61
- parseInt(rgbMatch[2]),
62
- parseInt(rgbMatch[3]),
63
- ];
64
- }
65
- // Handle hex format: #3b82f6 or #3bf
66
- if (colorValue.startsWith('#')) {
67
- const hex = colorValue.slice(1);
68
- if (hex.length === 3) {
69
- // Short hex: #3bf -> #33bbff
70
- const r = parseInt(hex[0] + hex[0], 16);
71
- const g = parseInt(hex[1] + hex[1], 16);
72
- const b = parseInt(hex[2] + hex[2], 16);
73
- return [r, g, b];
74
- }
75
- else if (hex.length === 6) {
76
- // Full hex: #3b82f6
77
- const r = parseInt(hex.slice(0, 2), 16);
78
- const g = parseInt(hex.slice(2, 4), 16);
79
- const b = parseInt(hex.slice(4, 6), 16);
80
- return [r, g, b];
81
- }
82
- }
83
- // For named colors or other formats, create a temporary element to get computed color
84
- // This is a fallback for named CSS colors like 'coral', 'tomato', etc.
85
- if (typeof document !== 'undefined') {
86
- try {
87
- const tempEl = document.createElement('div');
88
- tempEl.style.color = colorValue;
89
- document.body.appendChild(tempEl);
90
- const computedColor = window.getComputedStyle(tempEl).color;
91
- document.body.removeChild(tempEl);
92
- const computedRgb = computedColor.match(/\d+/g);
93
- if (computedRgb && computedRgb.length >= 3) {
94
- return [
95
- parseInt(computedRgb[0]),
96
- parseInt(computedRgb[1]),
97
- parseInt(computedRgb[2]),
98
- ];
99
- }
100
- }
101
- catch (e) {
102
- // Fallback if DOM manipulation fails
103
- }
104
- }
105
- // Default fallback to white
106
- return [255, 255, 255];
107
- };
108
- // Helper to calculate proportional border width based on spinner size
109
- // Default ratio: 10px border for 4rem (64px) spinner = ~15.6%
110
- const calculateBorderWidth = (sizeValue, explicitBorderWidth) => {
111
- // If explicit borderWidth is provided, use it
112
- if (explicitBorderWidth) {
113
- return explicitBorderWidth;
114
- }
115
- // Default border width if no size specified
116
- if (!sizeValue) {
117
- return '10px';
118
- }
119
- // Parse the size value to pixels
120
- let sizeInPx;
121
- if (sizeValue.endsWith('rem')) {
122
- sizeInPx = parseFloat(sizeValue) * 16;
123
- }
124
- else if (sizeValue.endsWith('px')) {
125
- sizeInPx = parseFloat(sizeValue);
126
- }
127
- else if (sizeValue.endsWith('em')) {
128
- sizeInPx = parseFloat(sizeValue) * 16;
129
- }
130
- else {
131
- // Fallback for unknown units
132
- return '10px';
133
- }
134
- // Calculate proportional border (about 15.6% of size, min 2px, max 16px)
135
- const borderPx = Math.max(2, Math.min(16, Math.round(sizeInPx * 0.156)));
136
- return `${borderPx}px`;
137
- };
138
- export const LoadingAnimateSpin = ({ classWarper = '', className = '', variant = 'spinner', size = 'md', color = 'blue', borderWidth, width, height, textFontSize = '1.125rem', loadingText, classNames = {}, styles = {}, 'aria-label': ariaLabel = 'Loading', }) => {
139
- const sizeConfig = sizeClasses[size];
140
- const renderSpinner = () => {
141
- const colorValue = getColorValue(color);
142
- // Extract RGB values for opacity border - making it more subtle
143
- const [r, g, b] = extractRgbForOpacity(colorValue);
144
- const baseBorderColor = `rgba(${r}, ${g}, ${b}, 0.15)`;
145
- // Calculate spinner dimensions
146
- const spinnerWidth = width || '4rem';
147
- const spinnerHeight = height || '4rem';
148
- // Calculate proportional border width based on spinner size
149
- const calculatedBorderWidth = calculateBorderWidth(spinnerWidth, borderWidth);
150
- return (_jsxs("div", { className: cn(s['flex'], s['flex-col'], s['items-center'], s['justify-center'], className, classNames.container), style: styles.container, "aria-label": ariaLabel, role: "status", children: [_jsx("div", { className: cn(sizeConfig.spinner, s['rounded-full'], s['animate-spin'], classNames.spinner), style: {
151
- width: spinnerWidth,
152
- height: spinnerHeight,
153
- borderWidth: calculatedBorderWidth,
154
- borderStyle: 'solid',
155
- borderTopColor: colorValue,
156
- borderRightColor: colorValue,
157
- borderBottomColor: baseBorderColor,
158
- borderLeftColor: baseBorderColor,
159
- animation: 'spin 1s linear infinite',
160
- ...styles.spinner,
161
- } }), loadingText && (_jsx("p", { className: cn(s['mt-4'], s['text-white'], s['text-lg'], s['font-semibold'], s['animate-pulse'], classNames.text), style: {
162
- marginTop: '1rem',
163
- color: colorValue,
164
- fontSize: textFontSize,
165
- fontWeight: 600,
166
- animation: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',
167
- ...styles.text,
168
- }, children: loadingText }))] }));
169
- };
170
- const renderDots = () => {
171
- const colorValue = getColorValue(color);
172
- return (_jsx("div", { className: cn(s['flex'], s['gap-2'], s['items-center'], className, classNames.container), style: styles.container, "aria-label": ariaLabel, role: "status", children: [0, 1, 2].map((i) => (_jsx("div", { className: cn(sizeConfig.dots, s['rounded-full'], classNames.dot), style: {
173
- backgroundColor: colorValue,
174
- animation: `bounce 1.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite`,
175
- animationDelay: `${i * 0.16}s`,
176
- animationFillMode: 'both',
177
- ...styles.dot,
178
- } }, i))) }));
179
- };
180
- const renderBars = () => {
181
- const colorValue = getColorValue(color);
182
- return (_jsx("div", { className: cn(s['flex'], s['gap-1'], s['items-center'], className, classNames.container), style: styles.container, "aria-label": ariaLabel, role: "status", children: [0, 1, 2].map((i) => (_jsx("div", { className: cn(sizeConfig.bars, s.rounded, classNames.bar), style: {
183
- backgroundColor: colorValue,
184
- borderRadius: '0.125rem',
185
- animation: `pulse 1.2s ease-in-out infinite`,
186
- animationDelay: `${i * 0.15}s`,
187
- animationFillMode: 'both',
188
- ...styles.bar,
189
- } }, i))) }));
190
- };
191
- const renderPulse = () => {
192
- const colorValue = getColorValue(color);
193
- return (_jsx("div", { className: cn(sizeConfig.pulse, s['rounded-full'], className, classNames.pulse), style: {
194
- backgroundColor: colorValue,
195
- animation: `pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite`,
196
- animationFillMode: 'both',
197
- ...styles.pulse,
198
- }, "aria-label": ariaLabel, role: "status" }));
199
- };
200
- const renderLoader = () => {
201
- switch (variant) {
202
- case 'dots':
203
- return renderDots();
204
- case 'bars':
205
- return renderBars();
206
- case 'pulse':
207
- return renderPulse();
208
- case 'spinner':
209
- default:
210
- return renderSpinner();
211
- }
212
- };
213
- return (_jsxs("div", { className: cn(s['flex'], s['justify-center'], s['items-center'], classWarper, classNames.wrapper), style: styles.wrapper, children: [_jsx("style", { children: `
1
+ "use strict";import{jsx as d,jsxs as y}from"react/jsx-runtime";import e from"../../tc.module.css";import{cn as n}from"../../utils";const P={sm:{wrapper:n(e["w-4"],e["h-4"]),spinner:n(e["w-4"],e["h-4"]),dots:n(e["w-1"],e["h-1"]),bars:n(e["w-1"],e["h-6"]),pulse:n(e["w-4"],e["h-4"])},md:{wrapper:n(e["w-8"],e["h-8"]),spinner:n(e["w-8"],e["h-8"]),dots:n(e["w-2"],e["h-2"]),bars:n(e["w-1"],e["h-8"]),pulse:n(e["w-8"],e["h-8"])},lg:{wrapper:n(e["w-10"],e["h-10"]),spinner:n(e["w-10"],e["h-10"]),dots:n(e["w-3"],e["h-3"]),bars:n(e["w-2"],e["h-10"]),pulse:n(e["w-10"],e["h-10"])}},b=t=>{const s={blue:"rgb(59 130 246)",green:"rgb(34 197 94)",gray:"rgb(156 163 175)",primary:"rgb(59 130 246)",white:"rgb(255 255 255)",black:"rgb(0 0 0)"};return s[t]?s[t]:t.startsWith("#")||t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("rgba")||t.startsWith("hsla")||/^[a-z]+$/i.test(t)?t:s.blue},R=t=>{const s=t.match(/rgba?\((\d+)[,\s]+(\d+)[,\s]+(\d+)/);if(s)return[parseInt(s[1]),parseInt(s[2]),parseInt(s[3])];if(t.startsWith("#")){const r=t.slice(1);if(r.length===3){const c=parseInt(r[0]+r[0],16),o=parseInt(r[1]+r[1],16),u=parseInt(r[2]+r[2],16);return[c,o,u]}else if(r.length===6){const c=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),u=parseInt(r.slice(4,6),16);return[c,o,u]}}if(typeof document<"u")try{const r=document.createElement("div");r.style.color=t,document.body.appendChild(r);const c=window.getComputedStyle(r).color;document.body.removeChild(r);const o=c.match(/\d+/g);if(o&&o.length>=3)return[parseInt(o[0]),parseInt(o[1]),parseInt(o[2])]}catch{}return[255,255,255]},D=(t,s)=>{if(s)return s;if(!t)return"10px";let r;if(t.endsWith("rem"))r=parseFloat(t)*16;else if(t.endsWith("px"))r=parseFloat(t);else if(t.endsWith("em"))r=parseFloat(t)*16;else return"10px";return`${Math.max(2,Math.min(16,Math.round(r*.156)))}px`};export const LoadingAnimateSpin=({classWarper:t="",className:s="",variant:r="spinner",size:c="md",color:o="blue",borderWidth:u,width:x,height:C,textFontSize:I="1.125rem",loadingText:f,classNames:a={},styles:l={},"aria-label":m="Loading"})=>{const h=P[c],W=()=>{const i=b(o),[p,$,j]=R(i),g=`rgba(${p}, ${$}, ${j}, 0.15)`,w=x||"4rem",S=C||"4rem",B=D(w,u);return y("div",{className:n(e.flex,e["flex-col"],e["items-center"],e["justify-center"],s,a.container),style:l.container,"aria-label":m,role:"status",children:[d("div",{className:n(h.spinner,e["rounded-full"],e["animate-spin"],a.spinner),style:{width:w,height:S,borderWidth:B,borderStyle:"solid",borderTopColor:i,borderRightColor:i,borderBottomColor:g,borderLeftColor:g,animation:"spin 1s linear infinite",...l.spinner}}),f&&d("p",{className:n(e["mt-4"],e["text-white"],e["text-lg"],e["font-semibold"],e["animate-pulse"],a.text),style:{marginTop:"1rem",color:i,fontSize:I,fontWeight:600,animation:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",...l.text},children:f})]})},v=()=>{const i=b(o);return d("div",{className:n(e.flex,e["gap-2"],e["items-center"],s,a.container),style:l.container,"aria-label":m,role:"status",children:[0,1,2].map(p=>d("div",{className:n(h.dots,e["rounded-full"],a.dot),style:{backgroundColor:i,animation:"bounce 1.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite",animationDelay:`${p*.16}s`,animationFillMode:"both",...l.dot}},p))})},k=()=>{const i=b(o);return d("div",{className:n(e.flex,e["gap-1"],e["items-center"],s,a.container),style:l.container,"aria-label":m,role:"status",children:[0,1,2].map(p=>d("div",{className:n(h.bars,e.rounded,a.bar),style:{backgroundColor:i,borderRadius:"0.125rem",animation:"pulse 1.2s ease-in-out infinite",animationDelay:`${p*.15}s`,animationFillMode:"both",...l.bar}},p))})},F=()=>{const i=b(o);return d("div",{className:n(h.pulse,e["rounded-full"],s,a.pulse),style:{backgroundColor:i,animation:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",animationFillMode:"both",...l.pulse},"aria-label":m,role:"status"})},M=()=>{switch(r){case"dots":return v();case"bars":return k();case"pulse":return F();default:return W()}};return y("div",{className:n(e.flex,e["justify-center"],e["items-center"],t,a.wrapper),style:l.wrapper,children:[d("style",{children:`
214
2
  @keyframes spin {
215
3
  from {
216
4
  transform: rotate(0deg);
@@ -243,5 +31,4 @@ export const LoadingAnimateSpin = ({ classWarper = '', className = '', variant =
243
31
  opacity: 0.8;
244
32
  }
245
33
  }
246
- ` }), renderLoader()] }));
247
- };
34
+ `}),M()]})};
@@ -1,73 +1 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { forwardRef, useCallback, useState, useEffect } from 'react';
4
- import { MasonryContainer, MasonryColumn, MasonryItemWrapper, MasonryImage, ImagePlaceholder, EmptyState, MasonryCard, MasonryCardContent, } from './elements';
5
- import { useResponsiveValue, useColumnDistribution, useImageLoading } from './hooks';
6
- // Default empty icon
7
- const EmptyIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [_jsx("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1" }), _jsx("rect", { x: "14", y: "3", width: "7", height: "7", rx: "1" }), _jsx("rect", { x: "3", y: "14", width: "7", height: "7", rx: "1" }), _jsx("rect", { x: "14", y: "14", width: "7", height: "7", rx: "1" })] }));
8
- export const Masonry = forwardRef(function MasonryComponent(props, ref) {
9
- const { items, columns = 3, gutter = 16, renderItem, sequential = false, animationDuration = 300, animated = true, staggerDelay = 50, classNames = {}, styles = {}, className, style, onImageLoad, onLayoutComplete, minItemHeight, loadingPlaceholder, emptyState, } = props;
10
- // Get responsive values
11
- const columnCount = useResponsiveValue(columns, 3);
12
- const gutterSize = useResponsiveValue(gutter, 16);
13
- // Distribute items into columns
14
- const columnData = useColumnDistribution(items, columnCount, sequential);
15
- // Image loading state
16
- const { setLoading, isLoading } = useImageLoading();
17
- // Track global item index for stagger animation
18
- let globalIndex = 0;
19
- // Layout complete callback
20
- useEffect(() => {
21
- if (items.length > 0) {
22
- const timeout = setTimeout(() => {
23
- onLayoutComplete?.();
24
- }, animationDuration + staggerDelay * items.length);
25
- return () => clearTimeout(timeout);
26
- }
27
- }, [items, animationDuration, staggerDelay, onLayoutComplete]);
28
- // Handle image load
29
- const handleImageLoad = useCallback((item, e) => {
30
- const img = e.currentTarget;
31
- setLoading(item.id, false);
32
- onImageLoad?.(item, img.naturalWidth, img.naturalHeight);
33
- }, [setLoading, onImageLoad]);
34
- // Default render function
35
- const defaultRenderItem = useCallback((item, index, columnIndex) => {
36
- if (item.src) {
37
- // Image item
38
- return (_jsxs(MasonryCard, { "$borderRadius": 8, children: [isLoading(item.id) && (_jsx(ImagePlaceholder, { "$height": item.height, "$borderRadius": 8 })), _jsx(MasonryImage, { src: item.src, alt: item.alt || '', "$objectFit": "cover", "$borderRadius": 0, "$isLoading": isLoading(item.id), onLoad: (e) => handleImageLoad(item, e), onError: () => setLoading(item.id, false) }), item.content && (_jsx(MasonryCardContent, { children: item.content }))] }));
39
- }
40
- // Content item
41
- if (item.content) {
42
- return item.content;
43
- }
44
- return null;
45
- }, [isLoading, handleImageLoad, setLoading]);
46
- // Use custom render or default
47
- const render = renderItem || defaultRenderItem;
48
- // Empty state
49
- if (items.length === 0) {
50
- return (_jsx(EmptyState, { className: classNames.root, style: styles.root, children: emptyState || (_jsxs(_Fragment, { children: [_jsx(EmptyIcon, {}), _jsx("span", { children: "No items to display" })] })) }));
51
- }
52
- return (_jsx(MasonryContainer, { ref: ref, "$gutter": gutterSize, className: className || classNames.root, style: { ...styles.root, ...style }, role: "grid", "aria-label": "Masonry layout", children: columnData.map((columnItems, columnIndex) => (_jsx(MasonryColumn, { "$gutter": gutterSize, "$columnCount": columnCount, className: classNames.column, style: styles.column, role: "gridcell", children: columnItems.map((item, itemIndex) => {
53
- const currentGlobalIndex = globalIndex++;
54
- return (_jsx(MasonryItemWrapper, { "$animated": animated, "$animationDuration": animationDuration, "$staggerIndex": currentGlobalIndex, "$staggerDelay": staggerDelay, "$minHeight": minItemHeight, className: classNames.item, style: styles.item, children: render(item, itemIndex, columnIndex) }, item.id));
55
- }) }, columnIndex))) }));
56
- });
57
- // Display name
58
- Masonry.displayName = 'Masonry';
59
- // MasonryImage component for standalone use
60
- export const MasonryImageComponent = forwardRef(function MasonryImageComponent(props, ref) {
61
- const { src, alt = '', className, style, onLoad, onError, objectFit = 'cover', borderRadius = 8, } = props;
62
- const [isLoading, setIsLoading] = useState(true);
63
- const handleLoad = (e) => {
64
- setIsLoading(false);
65
- onLoad?.(e);
66
- };
67
- const handleError = (e) => {
68
- setIsLoading(false);
69
- onError?.(e);
70
- };
71
- return (_jsxs(_Fragment, { children: [isLoading && _jsx(ImagePlaceholder, { "$borderRadius": borderRadius }), _jsx(MasonryImage, { ref: ref, src: src, alt: alt, className: className, style: style, "$objectFit": objectFit, "$borderRadius": borderRadius, "$isLoading": isLoading, onLoad: handleLoad, onError: handleError })] }));
72
- });
73
- MasonryImageComponent.displayName = 'MasonryImage';
1
+ "use strict";"use client";import{jsx as t,jsxs as u,Fragment as j}from"react/jsx-runtime";import{forwardRef as E,useCallback as w,useState as z,useEffect as B}from"react";import{MasonryContainer as G,MasonryColumn as V,MasonryItemWrapper as A,MasonryImage as D,ImagePlaceholder as v,EmptyState as J,MasonryCard as K,MasonryCardContent as O}from"./elements";import{useResponsiveValue as F,useColumnDistribution as Q,useImageLoading as U}from"./hooks";const X=()=>u("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[t("rect",{x:"3",y:"3",width:"7",height:"7",rx:"1"}),t("rect",{x:"14",y:"3",width:"7",height:"7",rx:"1"}),t("rect",{x:"3",y:"14",width:"7",height:"7",rx:"1"}),t("rect",{x:"14",y:"14",width:"7",height:"7",rx:"1"})]});export const Masonry=E(function(m,g){const{items:r,columns:h=3,gutter:y=16,renderItem:f,sequential:p=!1,animationDuration:i=300,animated:x=!0,staggerDelay:a=50,classNames:o={},styles:n={},className:$,style:I,onImageLoad:s,onLayoutComplete:L,minItemHeight:k,loadingPlaceholder:Y,emptyState:H}=m,M=F(h,3),N=F(y,16),T=Q(r,M,p),{setLoading:d,isLoading:b}=U();let W=0;B(()=>{if(r.length>0){const e=setTimeout(()=>{L?.()},i+a*r.length);return()=>clearTimeout(e)}},[r,i,a,L]);const R=w((e,c)=>{const l=c.currentTarget;d(e.id,!1),s?.(e,l.naturalWidth,l.naturalHeight)},[d,s]),_=w((e,c,l)=>e.src?u(K,{$borderRadius:8,children:[b(e.id)&&t(v,{$height:e.height,$borderRadius:8}),t(D,{src:e.src,alt:e.alt||"",$objectFit:"cover",$borderRadius:0,$isLoading:b(e.id),onLoad:C=>R(e,C),onError:()=>d(e.id,!1)}),e.content&&t(O,{children:e.content})]}):e.content?e.content:null,[b,R,d]),P=f||_;return r.length===0?t(J,{className:o.root,style:n.root,children:H||u(j,{children:[t(X,{}),t("span",{children:"No items to display"})]})}):t(G,{ref:g,$gutter:N,className:$||o.root,style:{...n.root,...I},role:"grid","aria-label":"Masonry layout",children:T.map((e,c)=>t(V,{$gutter:N,$columnCount:M,className:o.column,style:n.column,role:"gridcell",children:e.map((l,C)=>{const q=W++;return t(A,{$animated:x,$animationDuration:i,$staggerIndex:q,$staggerDelay:a,$minHeight:k,className:o.item,style:n.item,children:P(l,C,c)},l.id)})},c))})});Masonry.displayName="Masonry";export const MasonryImageComponent=E(function(m,g){const{src:r,alt:h="",className:y,style:f,onLoad:p,onError:i,objectFit:x="cover",borderRadius:a=8}=m,[o,n]=z(!0),$=s=>{n(!1),p?.(s)},I=s=>{n(!1),i?.(s)};return u(j,{children:[o&&t(v,{$borderRadius:a}),t(D,{ref:g,src:r,alt:h,className:y,style:f,$objectFit:x,$borderRadius:a,$isLoading:o,onLoad:$,onError:I})]})});MasonryImageComponent.displayName="MasonryImage";