react-restyle-components 0.4.39 → 0.4.41

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 (243) hide show
  1. package/lib/index.js +3 -1
  2. package/lib/src/core-components/index.js +1 -1
  3. package/lib/src/core-components/src/components/Accordion/AccordionSection/Accordion.js +15 -1
  4. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionContext.js +6 -1
  5. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionSection.js +39 -1
  6. package/lib/src/core-components/src/components/Accordion/AccordionSection/Header.js +39 -1
  7. package/lib/src/core-components/src/components/Accordion/AccordionSection/elements.js +94 -57
  8. package/lib/src/core-components/src/components/Accordion/AccordionSection/hooks/useCurrentAccordionIndex.js +13 -1
  9. package/lib/src/core-components/src/components/Accordion/AccordionSection/index.js +3 -1
  10. package/lib/src/core-components/src/components/Accordion/AccordionSection/types.js +9 -1
  11. package/lib/src/core-components/src/components/Accordion/Collapsible/Collapsible2.component.js +249 -1
  12. package/lib/src/core-components/src/components/Action/types.js +8 -1
  13. package/lib/src/core-components/src/components/AlertBanner/AlertBanner.js +45 -1
  14. package/lib/src/core-components/src/components/AlertBanner/elements.js +120 -45
  15. package/lib/src/core-components/src/components/AlertBanner/index.js +2 -1
  16. package/lib/src/core-components/src/components/AlertBanner/types.js +10 -1
  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 +334 -1
  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 +229 -1
  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 +174 -1
  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 +129 -2
  21. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select/auto-complete-filter-single-select.component.js +55 -1
  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 +308 -2
  23. package/lib/src/core-components/src/components/AutoComplete/auto-complete-group-by/auto-complete-group-by.component.js +115 -1
  24. package/lib/src/core-components/src/components/AutoComplete/autocomplete/autocomplete.js +442 -2
  25. package/lib/src/core-components/src/components/AutoComplete/index.js +8 -1
  26. package/lib/src/core-components/src/components/Avatar/Avatar.js +148 -14
  27. package/lib/src/core-components/src/components/Badge/Badge.js +25 -2
  28. package/lib/src/core-components/src/components/Badge/InnerBadge/Inline.js +25 -1
  29. package/lib/src/core-components/src/components/Badge/InnerBadge/InnerBadge.js +25 -1
  30. package/lib/src/core-components/src/components/Badge/InnerBadge/elements.js +78 -32
  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 +5 -1
  34. package/lib/src/core-components/src/components/Breadcrumb/Breadcrumb.js +83 -1
  35. package/lib/src/core-components/src/components/Breadcrumb/elements.js +166 -94
  36. package/lib/src/core-components/src/components/Breadcrumb/index.js +3 -1
  37. package/lib/src/core-components/src/components/Breadcrumb/types.js +3 -1
  38. package/lib/src/core-components/src/components/Button/button.component.js +18 -1
  39. package/lib/src/core-components/src/components/Button/buttonGroup/buttonGroup.component.js +4 -1
  40. package/lib/src/core-components/src/components/Button/index.js +2 -1
  41. package/lib/src/core-components/src/components/Button/types.js +1 -1
  42. package/lib/src/core-components/src/components/Chip/Chip.js +64 -1
  43. package/lib/src/core-components/src/components/Chip/elements.js +148 -48
  44. package/lib/src/core-components/src/components/Chip/index.js +2 -1
  45. package/lib/src/core-components/src/components/Chip/types.js +4 -1
  46. package/lib/src/core-components/src/components/Divider/Divider.js +25 -1
  47. package/lib/src/core-components/src/components/Divider/elements.js +68 -31
  48. package/lib/src/core-components/src/components/Divider/index.js +2 -1
  49. package/lib/src/core-components/src/components/Divider/types.js +4 -1
  50. package/lib/src/core-components/src/components/DynamicGrid/DynamicGrid.js +147 -1
  51. package/lib/src/core-components/src/components/DynamicGrid/GridContainer.js +24 -17
  52. package/lib/src/core-components/src/components/DynamicGrid/elements.js +162 -100
  53. package/lib/src/core-components/src/components/DynamicGrid/index.js +3 -1
  54. package/lib/src/core-components/src/components/DynamicGrid/types.js +28 -1
  55. package/lib/src/core-components/src/components/DynamicGrid/utils.js +193 -1
  56. package/lib/src/core-components/src/components/FormField/FormField.js +103 -1
  57. package/lib/src/core-components/src/components/FormField/components/CheckboxGroupInput.js +37 -1
  58. package/lib/src/core-components/src/components/FormField/components/CheckboxInput.js +8 -1
  59. package/lib/src/core-components/src/components/FormField/components/CssMultilineInput.js +192 -1
  60. package/lib/src/core-components/src/components/FormField/components/DatePickerInput.js +99 -1
  61. package/lib/src/core-components/src/components/FormField/components/DropdownInput.js +70 -1
  62. package/lib/src/core-components/src/components/FormField/components/OtpInput.js +81 -1
  63. package/lib/src/core-components/src/components/FormField/components/PasswordInput.js +40 -1
  64. package/lib/src/core-components/src/components/FormField/components/PinInput.js +75 -1
  65. package/lib/src/core-components/src/components/FormField/components/RadioInput.js +54 -1
  66. package/lib/src/core-components/src/components/FormField/components/TextDropdownInput.js +94 -1
  67. package/lib/src/core-components/src/components/FormField/components/ToggleInput.js +36 -1
  68. package/lib/src/core-components/src/components/FormField/components/index.js +11 -1
  69. package/lib/src/core-components/src/components/FormField/css-properties.js +161 -1
  70. package/lib/src/core-components/src/components/FormField/index.js +2 -1
  71. package/lib/src/core-components/src/components/Icon/Icon.js +79 -1
  72. package/lib/src/core-components/src/components/Icon/index.js +2 -1
  73. package/lib/src/core-components/src/components/Icon/types.js +9 -1
  74. package/lib/src/core-components/src/components/Loader/loader.component.js +215 -2
  75. package/lib/src/core-components/src/components/Masonry/Masonry.js +73 -1
  76. package/lib/src/core-components/src/components/Masonry/elements.js +46 -29
  77. package/lib/src/core-components/src/components/Masonry/hooks.js +100 -1
  78. package/lib/src/core-components/src/components/Masonry/index.js +3 -1
  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 +116 -1
  81. package/lib/src/core-components/src/components/Modal/index.js +2 -1
  82. package/lib/src/core-components/src/components/Modal/modal-confirm/modal-confirm.component.js +147 -1
  83. package/lib/src/core-components/src/components/Picker/color-picker/color-picker.component.js +12 -1
  84. package/lib/src/core-components/src/components/Picker/color-picker-modal/color-picker-modal.component.js +40 -1
  85. package/lib/src/core-components/src/components/Picker/index.js +2 -1
  86. package/lib/src/core-components/src/components/Selection/index.js +4 -1
  87. package/lib/src/core-components/src/components/Selection/multi-select/multi-select.component.js +49 -1
  88. package/lib/src/core-components/src/components/Selection/multi-select-with-field/multi-select-with-field.component.js +58 -1
  89. package/lib/src/core-components/src/components/Selection/multi-selection-dropdown/multi-selection-dropdown.component.js +43 -1
  90. package/lib/src/core-components/src/components/Selection/single-select/single-select.component.js +87 -1
  91. package/lib/src/core-components/src/components/Skeleton/Skeleton.js +51 -1
  92. package/lib/src/core-components/src/components/Skeleton/elements.js +143 -54
  93. package/lib/src/core-components/src/components/Skeleton/index.js +2 -1
  94. package/lib/src/core-components/src/components/Skeleton/types.js +4 -1
  95. package/lib/src/core-components/src/components/SpeedDial/SpeedDial.js +128 -1
  96. package/lib/src/core-components/src/components/SpeedDial/elements.js +132 -62
  97. package/lib/src/core-components/src/components/SpeedDial/index.js +2 -1
  98. package/lib/src/core-components/src/components/SpeedDial/types.js +3 -1
  99. package/lib/src/core-components/src/components/Stepper2/stepper.component.js +139 -1
  100. package/lib/src/core-components/src/components/Switch/Switch.js +26 -1
  101. package/lib/src/core-components/src/components/Switch/elements.js +103 -34
  102. package/lib/src/core-components/src/components/Switch/index.js +2 -1
  103. package/lib/src/core-components/src/components/Switch/types.js +3 -1
  104. package/lib/src/core-components/src/components/Table/Table.js +1357 -1
  105. package/lib/src/core-components/src/components/Table/columnReorder.d.ts +128 -0
  106. package/lib/src/core-components/src/components/Table/columnReorder.js +530 -0
  107. package/lib/src/core-components/src/components/Table/columnResize.d.ts +99 -0
  108. package/lib/src/core-components/src/components/Table/columnResize.js +399 -0
  109. package/lib/src/core-components/src/components/Table/elements.d.ts +9 -1
  110. package/lib/src/core-components/src/components/Table/elements.js +324 -155
  111. package/lib/src/core-components/src/components/Table/filters.js +555 -30
  112. package/lib/src/core-components/src/components/Table/hooks.js +536 -2
  113. package/lib/src/core-components/src/components/Table/index.d.ts +4 -0
  114. package/lib/src/core-components/src/components/Table/index.js +6 -1
  115. package/lib/src/core-components/src/components/Table/types.d.ts +58 -0
  116. package/lib/src/core-components/src/components/Table/types.js +1 -1
  117. package/lib/src/core-components/src/components/Tabs/tabs.component.js +22 -1
  118. package/lib/src/core-components/src/components/Tags1/Tags.component.js +118 -1
  119. package/lib/src/core-components/src/components/Tags1/types.js +20 -1
  120. package/lib/src/core-components/src/components/Timer1/timer.component.js +76 -1
  121. package/lib/src/core-components/src/components/Toast/Toast.js +50 -1
  122. package/lib/src/core-components/src/components/Toast/elements.js +122 -41
  123. package/lib/src/core-components/src/components/Toast/index.js +2 -1
  124. package/lib/src/core-components/src/components/Toast/types.js +9 -1
  125. package/lib/src/core-components/src/components/Tooltip/Tooltip.js +200 -1
  126. package/lib/src/core-components/src/components/Tooltip/elements.js +117 -55
  127. package/lib/src/core-components/src/components/Tooltip/index.js +2 -1
  128. package/lib/src/core-components/src/components/Tooltip/types.js +17 -1
  129. package/lib/src/core-components/src/components/Tooltip/utils.js +140 -1
  130. package/lib/src/core-components/src/components/TreeSelect/TreeSelect.js +303 -1
  131. package/lib/src/core-components/src/components/TreeSelect/elements.js +216 -117
  132. package/lib/src/core-components/src/components/TreeSelect/hooks.js +252 -1
  133. package/lib/src/core-components/src/components/TreeSelect/index.js +3 -1
  134. package/lib/src/core-components/src/components/TreeSelect/types.js +1 -1
  135. package/lib/src/core-components/src/components/ag-grid/AgGrid.d.ts +11 -0
  136. package/lib/src/core-components/src/components/ag-grid/AgGrid.js +733 -0
  137. package/lib/src/core-components/src/components/ag-grid/elements.d.ts +246 -0
  138. package/lib/src/core-components/src/components/ag-grid/elements.js +1156 -0
  139. package/lib/src/core-components/src/components/ag-grid/hooks.d.ts +196 -0
  140. package/lib/src/core-components/src/components/ag-grid/hooks.js +943 -0
  141. package/lib/src/core-components/src/components/ag-grid/index.d.ts +9 -0
  142. package/lib/src/core-components/src/components/ag-grid/index.js +13 -0
  143. package/lib/src/core-components/src/components/ag-grid/types.d.ts +1367 -0
  144. package/lib/src/core-components/src/components/ag-grid/types.js +6 -0
  145. package/lib/src/core-components/src/components/index.d.ts +1 -0
  146. package/lib/src/core-components/src/components/index.js +31 -1
  147. package/lib/src/core-components/src/components/pdf/pdf-images.components.js +7 -1
  148. package/lib/src/core-components/src/components/pdf/pdf-table.components.js +48 -5
  149. package/lib/src/core-components/src/components/pdf/pdf-typography.components.js +70 -1
  150. package/lib/src/core-components/src/components/pdf/pdf-wrapped-view.components.js +50 -1
  151. package/lib/src/core-components/src/core-components/Avatar.js +33 -4
  152. package/lib/src/core-components/src/core-components/CoreButton/CoreButton.js +10 -1
  153. package/lib/src/core-components/src/core-components/CoreButton/elements.js +176 -67
  154. package/lib/src/core-components/src/core-components/CoreButton/index.js +3 -1
  155. package/lib/src/core-components/src/core-components/CoreButton/types.js +6 -1
  156. package/lib/src/core-components/src/core-components/CoreButton/utils.js +12 -1
  157. package/lib/src/core-components/src/core-components/Divider/Divider.js +19 -4
  158. package/lib/src/core-components/src/core-components/Divider/index.js +1 -1
  159. package/lib/src/core-components/src/core-components/SelectionCardStrip/index.js +1 -1
  160. package/lib/src/core-components/src/core-components/SelectionCardStrip/selectionCardStrip.js +33 -10
  161. package/lib/src/core-components/src/core-components/StateLayer.js +5 -3
  162. package/lib/src/core-components/src/core-components/ToggleCore/elements.js +50 -25
  163. package/lib/src/core-components/src/core-components/ToggleCore/index.js +2 -1
  164. package/lib/src/core-components/src/core-components/ToggleCore/toggleCore.js +14 -1
  165. package/lib/src/core-components/src/core-components/atoms/Input/Input.js +22 -1
  166. package/lib/src/core-components/src/core-components/atoms/Label/Label.js +21 -1
  167. package/lib/src/core-components/src/core-components/atoms/Textarea/Textarea.js +19 -1
  168. package/lib/src/core-components/src/core-components/index.js +3 -1
  169. package/lib/src/core-components/src/helpers/constants.js +11 -1
  170. package/lib/src/core-components/src/hooks/index.js +1 -1
  171. package/lib/src/core-components/src/hooks/outside.hook.js +28 -1
  172. package/lib/src/core-components/src/index.js +12 -1
  173. package/lib/src/core-components/src/tc.global.css +16 -3
  174. package/lib/src/core-components/src/tc.module.css +2 -2
  175. package/lib/src/core-components/src/utils/abstracts/breakpoints/index.js +28 -1
  176. package/lib/src/core-components/src/utils/abstracts/colors/index.js +49 -1
  177. package/lib/src/core-components/src/utils/abstracts/index.js +5 -1
  178. package/lib/src/core-components/src/utils/abstracts/space/index.js +26 -1
  179. package/lib/src/core-components/src/utils/abstracts/theme/ThemeBoundary.js +8 -1
  180. package/lib/src/core-components/src/utils/abstracts/theme/default-themes.js +30 -1
  181. package/lib/src/core-components/src/utils/abstracts/theme/index.js +3 -1
  182. package/lib/src/core-components/src/utils/abstracts/theme/theme.js +30 -1
  183. package/lib/src/core-components/src/utils/abstracts/theme/types.js +1 -1
  184. package/lib/src/core-components/src/utils/abstracts/theme/useTheme.js +17 -1
  185. package/lib/src/core-components/src/utils/abstracts/typography/index.js +25 -1
  186. package/lib/src/core-components/src/utils/context/DefaultsProvider.js +8 -1
  187. package/lib/src/core-components/src/utils/context/InternalProvider.js +24 -1
  188. package/lib/src/core-components/src/utils/context/index.js +2 -1
  189. package/lib/src/core-components/src/utils/designTokens.js +125 -1
  190. package/lib/src/core-components/src/utils/helpers/attachSubComponents.js +23 -1
  191. package/lib/src/core-components/src/utils/helpers/flattenChildren.js +11 -1
  192. package/lib/src/core-components/src/utils/helpers/getChildByType.js +3 -1
  193. package/lib/src/core-components/src/utils/helpers/index.js +5 -1
  194. package/lib/src/core-components/src/utils/helpers/isComponentType.js +16 -1
  195. package/lib/src/core-components/src/utils/helpers/separateChildrenByType.js +12 -1
  196. package/lib/src/core-components/src/utils/hooks/index.js +18 -1
  197. package/lib/src/core-components/src/utils/hooks/useClickOutside.js +18 -1
  198. package/lib/src/core-components/src/utils/hooks/useCombinedRefs.js +17 -1
  199. package/lib/src/core-components/src/utils/hooks/useDebouncedCallback.js +12 -1
  200. package/lib/src/core-components/src/utils/hooks/useDebouncedValue.js +20 -1
  201. package/lib/src/core-components/src/utils/hooks/useDeprecation.js +40 -1
  202. package/lib/src/core-components/src/utils/hooks/useDeviceDetect.js +10 -1
  203. package/lib/src/core-components/src/utils/hooks/useDeviceForm.js +24 -1
  204. package/lib/src/core-components/src/utils/hooks/useDisableBodyScroll.js +16 -1
  205. package/lib/src/core-components/src/utils/hooks/useHoverState.js +36 -1
  206. package/lib/src/core-components/src/utils/hooks/useId.js +7 -1
  207. package/lib/src/core-components/src/utils/hooks/useIsBrowser.js +11 -1
  208. package/lib/src/core-components/src/utils/hooks/useMediaQuery.js +16 -1
  209. package/lib/src/core-components/src/utils/hooks/useOverflow.js +22 -1
  210. package/lib/src/core-components/src/utils/hooks/useSafeLayoutEffect.js +5 -1
  211. package/lib/src/core-components/src/utils/hooks/useScrollingUp.js +18 -1
  212. package/lib/src/core-components/src/utils/hooks/useTrapFocus.js +30 -1
  213. package/lib/src/core-components/src/utils/hooks/useWindowDimensions.js +23 -1
  214. package/lib/src/core-components/src/utils/index.js +9 -1
  215. package/lib/src/core-components/src/utils/stories/Wrappers.js +23 -8
  216. package/lib/src/core-components/src/utils/stories/cleanProps.js +5 -1
  217. package/lib/src/core-components/src/utils/stories/index.js +4 -1
  218. package/lib/src/core-components/src/utils/stories/sleep.js +4 -1
  219. package/lib/src/core-components/src/utils/stories/view-ports.js +50 -1
  220. package/lib/src/core-components/src/utils/styling/calcWidthOfColumns.js +5 -1
  221. package/lib/src/core-components/src/utils/styling/createGridContainer.js +12 -6
  222. package/lib/src/core-components/src/utils/styling/createTransition.js +7 -2
  223. package/lib/src/core-components/src/utils/styling/forwardProps.js +10 -1
  224. package/lib/src/core-components/src/utils/styling/index.js +5 -1
  225. package/lib/src/core-components/src/utils/styling/pxToRem.js +6 -1
  226. package/lib/src/core-components/src/utils/testing/getComputedStyle.js +3 -1
  227. package/lib/src/core-components/src/utils/testing/index.js +1 -1
  228. package/lib/src/core-components/src/utils/utility.util.js +14 -1
  229. package/lib/src/core-components/tailwind.config.js +233 -1
  230. package/lib/src/core-hooks/index.js +3 -1
  231. package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.js +46 -1
  232. package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.js +30 -1
  233. package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.js +8 -1
  234. package/lib/src/core-utils/index.js +7 -1
  235. package/lib/src/core-utils/src/calculation/calculation.util.js +89 -1
  236. package/lib/src/core-utils/src/colors/color.util.js +15 -1
  237. package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.js +145 -1
  238. package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.js +5 -1
  239. package/lib/src/core-utils/src/form-helper/form-helper.util.js +82 -1
  240. package/lib/src/core-utils/src/index.js +7 -1
  241. package/lib/src/core-utils/src/utility/utility.util.js +12 -1
  242. package/lib/src/core-utils/src/uuid/uuid.util.js +8 -1
  243. package/package.json +1 -1
@@ -1 +1,36 @@
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
+ 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 +1,11 @@
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
+ 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 +1,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
+ /* 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 +1,2 @@
1
- "use strict";export*from"./FormField";export*from"./components";
1
+ export * from './FormField';
2
+ export * from './components';
@@ -1 +1,79 @@
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
+ 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 +1,2 @@
1
- "use strict";export*from"./Icon";export*from"./types";
1
+ export * from './Icon';
2
+ export * from './types';
@@ -1 +1,9 @@
1
- "use strict";export const ICON_SIZES=["xsmall","small","normal","medium","large","xlarge","xxlarge"];
1
+ export const ICON_SIZES = [
2
+ 'xsmall',
3
+ 'small',
4
+ 'normal',
5
+ 'medium',
6
+ 'large',
7
+ 'xlarge',
8
+ 'xxlarge',
9
+ ];
@@ -1,4 +1,216 @@
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:`
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: `
2
214
  @keyframes spin {
3
215
  from {
4
216
  transform: rotate(0deg);
@@ -31,4 +243,5 @@
31
243
  opacity: 0.8;
32
244
  }
33
245
  }
34
- `}),M()]})};
246
+ ` }), renderLoader()] }));
247
+ };
@@ -1 +1,73 @@
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";
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';