react-restyle-components 0.4.39 → 0.4.40

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 (232) 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 +1332 -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/index.js +30 -1
  136. package/lib/src/core-components/src/components/pdf/pdf-images.components.js +7 -1
  137. package/lib/src/core-components/src/components/pdf/pdf-table.components.js +48 -5
  138. package/lib/src/core-components/src/components/pdf/pdf-typography.components.js +70 -1
  139. package/lib/src/core-components/src/components/pdf/pdf-wrapped-view.components.js +50 -1
  140. package/lib/src/core-components/src/core-components/Avatar.js +33 -4
  141. package/lib/src/core-components/src/core-components/CoreButton/CoreButton.js +10 -1
  142. package/lib/src/core-components/src/core-components/CoreButton/elements.js +176 -67
  143. package/lib/src/core-components/src/core-components/CoreButton/index.js +3 -1
  144. package/lib/src/core-components/src/core-components/CoreButton/types.js +6 -1
  145. package/lib/src/core-components/src/core-components/CoreButton/utils.js +12 -1
  146. package/lib/src/core-components/src/core-components/Divider/Divider.js +19 -4
  147. package/lib/src/core-components/src/core-components/Divider/index.js +1 -1
  148. package/lib/src/core-components/src/core-components/SelectionCardStrip/index.js +1 -1
  149. package/lib/src/core-components/src/core-components/SelectionCardStrip/selectionCardStrip.js +33 -10
  150. package/lib/src/core-components/src/core-components/StateLayer.js +5 -3
  151. package/lib/src/core-components/src/core-components/ToggleCore/elements.js +50 -25
  152. package/lib/src/core-components/src/core-components/ToggleCore/index.js +2 -1
  153. package/lib/src/core-components/src/core-components/ToggleCore/toggleCore.js +14 -1
  154. package/lib/src/core-components/src/core-components/atoms/Input/Input.js +22 -1
  155. package/lib/src/core-components/src/core-components/atoms/Label/Label.js +21 -1
  156. package/lib/src/core-components/src/core-components/atoms/Textarea/Textarea.js +19 -1
  157. package/lib/src/core-components/src/core-components/index.js +3 -1
  158. package/lib/src/core-components/src/helpers/constants.js +11 -1
  159. package/lib/src/core-components/src/hooks/index.js +1 -1
  160. package/lib/src/core-components/src/hooks/outside.hook.js +28 -1
  161. package/lib/src/core-components/src/index.js +12 -1
  162. package/lib/src/core-components/src/tc.global.css +12 -1
  163. package/lib/src/core-components/src/tc.module.css +1 -1
  164. package/lib/src/core-components/src/utils/abstracts/breakpoints/index.js +28 -1
  165. package/lib/src/core-components/src/utils/abstracts/colors/index.js +49 -1
  166. package/lib/src/core-components/src/utils/abstracts/index.js +5 -1
  167. package/lib/src/core-components/src/utils/abstracts/space/index.js +26 -1
  168. package/lib/src/core-components/src/utils/abstracts/theme/ThemeBoundary.js +8 -1
  169. package/lib/src/core-components/src/utils/abstracts/theme/default-themes.js +30 -1
  170. package/lib/src/core-components/src/utils/abstracts/theme/index.js +3 -1
  171. package/lib/src/core-components/src/utils/abstracts/theme/theme.js +30 -1
  172. package/lib/src/core-components/src/utils/abstracts/theme/types.js +1 -1
  173. package/lib/src/core-components/src/utils/abstracts/theme/useTheme.js +17 -1
  174. package/lib/src/core-components/src/utils/abstracts/typography/index.js +25 -1
  175. package/lib/src/core-components/src/utils/context/DefaultsProvider.js +8 -1
  176. package/lib/src/core-components/src/utils/context/InternalProvider.js +24 -1
  177. package/lib/src/core-components/src/utils/context/index.js +2 -1
  178. package/lib/src/core-components/src/utils/designTokens.js +125 -1
  179. package/lib/src/core-components/src/utils/helpers/attachSubComponents.js +23 -1
  180. package/lib/src/core-components/src/utils/helpers/flattenChildren.js +11 -1
  181. package/lib/src/core-components/src/utils/helpers/getChildByType.js +3 -1
  182. package/lib/src/core-components/src/utils/helpers/index.js +5 -1
  183. package/lib/src/core-components/src/utils/helpers/isComponentType.js +16 -1
  184. package/lib/src/core-components/src/utils/helpers/separateChildrenByType.js +12 -1
  185. package/lib/src/core-components/src/utils/hooks/index.js +18 -1
  186. package/lib/src/core-components/src/utils/hooks/useClickOutside.js +18 -1
  187. package/lib/src/core-components/src/utils/hooks/useCombinedRefs.js +17 -1
  188. package/lib/src/core-components/src/utils/hooks/useDebouncedCallback.js +12 -1
  189. package/lib/src/core-components/src/utils/hooks/useDebouncedValue.js +20 -1
  190. package/lib/src/core-components/src/utils/hooks/useDeprecation.js +40 -1
  191. package/lib/src/core-components/src/utils/hooks/useDeviceDetect.js +10 -1
  192. package/lib/src/core-components/src/utils/hooks/useDeviceForm.js +24 -1
  193. package/lib/src/core-components/src/utils/hooks/useDisableBodyScroll.js +16 -1
  194. package/lib/src/core-components/src/utils/hooks/useHoverState.js +36 -1
  195. package/lib/src/core-components/src/utils/hooks/useId.js +7 -1
  196. package/lib/src/core-components/src/utils/hooks/useIsBrowser.js +11 -1
  197. package/lib/src/core-components/src/utils/hooks/useMediaQuery.js +16 -1
  198. package/lib/src/core-components/src/utils/hooks/useOverflow.js +22 -1
  199. package/lib/src/core-components/src/utils/hooks/useSafeLayoutEffect.js +5 -1
  200. package/lib/src/core-components/src/utils/hooks/useScrollingUp.js +18 -1
  201. package/lib/src/core-components/src/utils/hooks/useTrapFocus.js +30 -1
  202. package/lib/src/core-components/src/utils/hooks/useWindowDimensions.js +23 -1
  203. package/lib/src/core-components/src/utils/index.js +9 -1
  204. package/lib/src/core-components/src/utils/stories/Wrappers.js +23 -8
  205. package/lib/src/core-components/src/utils/stories/cleanProps.js +5 -1
  206. package/lib/src/core-components/src/utils/stories/index.js +4 -1
  207. package/lib/src/core-components/src/utils/stories/sleep.js +4 -1
  208. package/lib/src/core-components/src/utils/stories/view-ports.js +50 -1
  209. package/lib/src/core-components/src/utils/styling/calcWidthOfColumns.js +5 -1
  210. package/lib/src/core-components/src/utils/styling/createGridContainer.js +12 -6
  211. package/lib/src/core-components/src/utils/styling/createTransition.js +7 -2
  212. package/lib/src/core-components/src/utils/styling/forwardProps.js +10 -1
  213. package/lib/src/core-components/src/utils/styling/index.js +5 -1
  214. package/lib/src/core-components/src/utils/styling/pxToRem.js +6 -1
  215. package/lib/src/core-components/src/utils/testing/getComputedStyle.js +3 -1
  216. package/lib/src/core-components/src/utils/testing/index.js +1 -1
  217. package/lib/src/core-components/src/utils/utility.util.js +14 -1
  218. package/lib/src/core-components/tailwind.config.js +233 -1
  219. package/lib/src/core-hooks/index.js +3 -1
  220. package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.js +46 -1
  221. package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.js +30 -1
  222. package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.js +8 -1
  223. package/lib/src/core-utils/index.js +7 -1
  224. package/lib/src/core-utils/src/calculation/calculation.util.js +89 -1
  225. package/lib/src/core-utils/src/colors/color.util.js +15 -1
  226. package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.js +145 -1
  227. package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.js +5 -1
  228. package/lib/src/core-utils/src/form-helper/form-helper.util.js +82 -1
  229. package/lib/src/core-utils/src/index.js +7 -1
  230. package/lib/src/core-utils/src/utility/utility.util.js +12 -1
  231. package/lib/src/core-utils/src/uuid/uuid.util.js +8 -1
  232. package/package.json +1 -1
@@ -1 +1,249 @@
1
- "use strict";import{jsx as n,jsxs as C}from"react/jsx-runtime";import{useState as u,useRef as F,useEffect as M}from"react";const W=({isOpen:s,duration:a,variant:r})=>{const i=(()=>{switch(r){case"elevated":return{bg:"rgba(255,255,255,0.2)",stroke:"#ffffff"};case"glass":return{bg:"rgba(99,102,241,0.15)",stroke:"#6366f1"};case"bordered":return{bg:"#f3f4f6",stroke:"#374151"};case"minimal":return{bg:"transparent",stroke:"#6b7280"};default:return{bg:"#e0e7ff",stroke:"#4f46e5"}}})();return n("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:"50%",backgroundColor:i.bg,transition:`all ${a}ms cubic-bezier(0.4, 0, 0.2, 1)`,transform:s?"rotate(180deg)":"rotate(0deg)",flexShrink:0},children:n("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:i.stroke,strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:n("polyline",{points:"6 9 12 15 18 9"})})})},A=(s,a)=>{const r={display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",padding:"16px 20px",fontSize:"15px",fontWeight:600,textAlign:"left",border:"none",cursor:"pointer",outline:"none",gap:"12px"},e={padding:"20px"};switch(s){case"bordered":return{container:{borderRadius:16,border:"1px solid #e5e7eb",overflow:"hidden",backgroundColor:"#ffffff"},button:{...r,backgroundColor:"#ffffff",color:"#1f2937",borderBottom:a?"1px solid #e5e7eb":"none"},content:{...e,backgroundColor:"#fafafa"}};case"elevated":return{container:{borderRadius:20,overflow:"hidden",boxShadow:"0 10px 40px -10px rgba(99, 102, 241, 0.4)"},button:{...r,background:"linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%)",color:"#ffffff"},content:{...e,backgroundColor:"#ffffff"}};case"minimal":return{container:{borderRadius:12},button:{...r,backgroundColor:"transparent",color:"#374151",padding:"12px 16px"},content:{...e,backgroundColor:"transparent",padding:"12px 16px"}};case"glass":return{container:{borderRadius:20,overflow:"hidden",backgroundColor:"rgba(255, 255, 255, 0.7)",backdropFilter:"blur(20px)",border:"1px solid rgba(255, 255, 255, 0.3)",boxShadow:"0 8px 32px rgba(99, 102, 241, 0.15)"},button:{...r,backgroundColor:"transparent",color:"#1f2937"},content:{...e,backgroundColor:"rgba(249, 250, 251, 0.5)"}};default:return{container:{borderRadius:16,overflow:"hidden",backgroundColor:"#ffffff",boxShadow:"0 4px 20px -4px rgba(0, 0, 0, 0.1)",border:"1px solid #f3f4f6"},button:{...r,backgroundColor:"#f8fafc",color:"#1e293b",borderBottom:a?"1px solid #e2e8f0":"none"},content:{...e,backgroundColor:"#ffffff"}}}};export const Collapsible=({label:s,labelClassName:a,className:r,classNames:e={},styles:i={},variant:l="default",animationDuration:c=300,defaultOpen:m=!1,isOpen:g,hideIcon:w=!1,icon:y,onExpand:j,onCollapse:z,children:p})=>{const h=g!==void 0,[H,R]=u(m),t=h?g:H,x=F(null),[S,B]=u(0),[I,f]=u(!1);M(()=>{const o=x.current;if(!o)return;const b=()=>{if(o){const L=o.scrollHeight;B(L)}};b();const k=new ResizeObserver(()=>{b()});k.observe(o);const v=new MutationObserver(()=>{requestAnimationFrame(b)});return v.observe(o,{childList:!0,subtree:!0,attributes:!0,characterData:!0}),()=>{k.disconnect(),v.disconnect()}},[p]);const O=()=>{const o=typeof s=="string"?s:"";t?z?.(o):j?.(o),h||R(!t)},d=A(l,t),$=()=>{if(!I)return{};switch(l){case"elevated":return{filter:"brightness(1.1)"};case"bordered":return{backgroundColor:"#f9fafb"};case"minimal":return{backgroundColor:"#f3f4f6"};case"glass":return{backgroundColor:"rgba(99, 102, 241, 0.05)"};default:return{backgroundColor:"#f1f5f9"}}};return C("div",{className:e.container,style:{display:"flex",flexDirection:"column",width:"100%",transition:`all ${c}ms cubic-bezier(0.4, 0, 0.2, 1)`,...d.container,...i.container},children:[C("button",{className:[a,e.button].filter(Boolean).join(" "),style:{...d.button,...$(),transition:`all ${c}ms cubic-bezier(0.4, 0, 0.2, 1)`,...i.button},type:"button",onClick:O,onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onFocus:()=>f(!0),onBlur:()=>f(!1),"aria-expanded":t,children:[n("span",{style:{flex:1,lineHeight:1.5},children:s}),!w&&n("div",{className:e.iconWrapper,children:y||n(W,{isOpen:t,duration:c,variant:l})})]}),n("div",{style:{height:t?S:0,overflow:"hidden",transition:`height ${c}ms cubic-bezier(0.4, 0, 0.2, 1), opacity ${c}ms cubic-bezier(0.4, 0, 0.2, 1)`,opacity:t?1:0},children:n("div",{ref:x,className:[r,e.content].filter(Boolean).join(" "),style:{...d.content,transform:t?"translateY(0)":"translateY(-10px)",transition:`transform ${c}ms cubic-bezier(0.4, 0, 0.2, 1)`,...i.content},children:p})})]})};
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useRef, useEffect } from 'react';
3
+ // Beautiful chevron icon with circle background
4
+ const ChevronIcon = ({ isOpen, duration, variant }) => {
5
+ const getIconColors = () => {
6
+ switch (variant) {
7
+ case 'elevated':
8
+ return { bg: 'rgba(255,255,255,0.2)', stroke: '#ffffff' };
9
+ case 'glass':
10
+ return { bg: 'rgba(99,102,241,0.15)', stroke: '#6366f1' };
11
+ case 'bordered':
12
+ return { bg: '#f3f4f6', stroke: '#374151' };
13
+ case 'minimal':
14
+ return { bg: 'transparent', stroke: '#6b7280' };
15
+ default:
16
+ return { bg: '#e0e7ff', stroke: '#4f46e5' };
17
+ }
18
+ };
19
+ const colors = getIconColors();
20
+ return (_jsx("div", { style: {
21
+ display: 'flex',
22
+ alignItems: 'center',
23
+ justifyContent: 'center',
24
+ width: 32,
25
+ height: 32,
26
+ borderRadius: '50%',
27
+ backgroundColor: colors.bg,
28
+ transition: `all ${duration}ms cubic-bezier(0.4, 0, 0.2, 1)`,
29
+ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',
30
+ flexShrink: 0,
31
+ }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: colors.stroke, strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "6 9 12 15 18 9" }) }) }));
32
+ };
33
+ // Variant style configurations
34
+ const getVariantStyles = (variant, isOpen) => {
35
+ const baseButton = {
36
+ display: 'flex',
37
+ alignItems: 'center',
38
+ justifyContent: 'space-between',
39
+ width: '100%',
40
+ padding: '16px 20px',
41
+ fontSize: '15px',
42
+ fontWeight: 600,
43
+ textAlign: 'left',
44
+ border: 'none',
45
+ cursor: 'pointer',
46
+ outline: 'none',
47
+ gap: '12px',
48
+ };
49
+ const baseContent = {
50
+ padding: '20px',
51
+ };
52
+ switch (variant) {
53
+ case 'bordered':
54
+ return {
55
+ container: {
56
+ borderRadius: 16,
57
+ border: '1px solid #e5e7eb',
58
+ overflow: 'hidden',
59
+ backgroundColor: '#ffffff',
60
+ },
61
+ button: {
62
+ ...baseButton,
63
+ backgroundColor: '#ffffff',
64
+ color: '#1f2937',
65
+ borderBottom: isOpen ? '1px solid #e5e7eb' : 'none',
66
+ },
67
+ content: {
68
+ ...baseContent,
69
+ backgroundColor: '#fafafa',
70
+ },
71
+ };
72
+ case 'elevated':
73
+ return {
74
+ container: {
75
+ borderRadius: 20,
76
+ overflow: 'hidden',
77
+ boxShadow: '0 10px 40px -10px rgba(99, 102, 241, 0.4)',
78
+ },
79
+ button: {
80
+ ...baseButton,
81
+ background: 'linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%)',
82
+ color: '#ffffff',
83
+ },
84
+ content: {
85
+ ...baseContent,
86
+ backgroundColor: '#ffffff',
87
+ },
88
+ };
89
+ case 'minimal':
90
+ return {
91
+ container: {
92
+ borderRadius: 12,
93
+ },
94
+ button: {
95
+ ...baseButton,
96
+ backgroundColor: 'transparent',
97
+ color: '#374151',
98
+ padding: '12px 16px',
99
+ },
100
+ content: {
101
+ ...baseContent,
102
+ backgroundColor: 'transparent',
103
+ padding: '12px 16px',
104
+ },
105
+ };
106
+ case 'glass':
107
+ return {
108
+ container: {
109
+ borderRadius: 20,
110
+ overflow: 'hidden',
111
+ backgroundColor: 'rgba(255, 255, 255, 0.7)',
112
+ backdropFilter: 'blur(20px)',
113
+ border: '1px solid rgba(255, 255, 255, 0.3)',
114
+ boxShadow: '0 8px 32px rgba(99, 102, 241, 0.15)',
115
+ },
116
+ button: {
117
+ ...baseButton,
118
+ backgroundColor: 'transparent',
119
+ color: '#1f2937',
120
+ },
121
+ content: {
122
+ ...baseContent,
123
+ backgroundColor: 'rgba(249, 250, 251, 0.5)',
124
+ },
125
+ };
126
+ default: // 'default'
127
+ return {
128
+ container: {
129
+ borderRadius: 16,
130
+ overflow: 'hidden',
131
+ backgroundColor: '#ffffff',
132
+ boxShadow: '0 4px 20px -4px rgba(0, 0, 0, 0.1)',
133
+ border: '1px solid #f3f4f6',
134
+ },
135
+ button: {
136
+ ...baseButton,
137
+ backgroundColor: '#f8fafc',
138
+ color: '#1e293b',
139
+ borderBottom: isOpen ? '1px solid #e2e8f0' : 'none',
140
+ },
141
+ content: {
142
+ ...baseContent,
143
+ backgroundColor: '#ffffff',
144
+ },
145
+ };
146
+ }
147
+ };
148
+ export const Collapsible = ({ label, labelClassName, className, classNames = {}, styles = {}, variant = 'default', animationDuration = 300, defaultOpen = false, isOpen: controlledOpen, hideIcon = false, icon, onExpand, onCollapse, children, }) => {
149
+ const isControlled = controlledOpen !== undefined;
150
+ const [internalOpen, setInternalOpen] = useState(defaultOpen);
151
+ const open = isControlled ? controlledOpen : internalOpen;
152
+ const contentRef = useRef(null);
153
+ const [contentHeight, setContentHeight] = useState(0);
154
+ const [isHovered, setIsHovered] = useState(false);
155
+ // Measure content height - always observe for dynamic content changes
156
+ useEffect(() => {
157
+ const element = contentRef.current;
158
+ if (!element)
159
+ return;
160
+ // Function to update height
161
+ const updateHeight = () => {
162
+ if (element) {
163
+ // Use scrollHeight for accurate measurement including all children
164
+ const newHeight = element.scrollHeight;
165
+ setContentHeight(newHeight);
166
+ }
167
+ };
168
+ // Initial measurement
169
+ updateHeight();
170
+ // ResizeObserver for size changes (window resize, content reflow)
171
+ const resizeObserver = new ResizeObserver(() => {
172
+ updateHeight();
173
+ });
174
+ resizeObserver.observe(element);
175
+ // MutationObserver for DOM changes (dynamic content)
176
+ const mutationObserver = new MutationObserver(() => {
177
+ // Use requestAnimationFrame to ensure DOM has settled
178
+ requestAnimationFrame(updateHeight);
179
+ });
180
+ mutationObserver.observe(element, {
181
+ childList: true,
182
+ subtree: true,
183
+ attributes: true,
184
+ characterData: true,
185
+ });
186
+ return () => {
187
+ resizeObserver.disconnect();
188
+ mutationObserver.disconnect();
189
+ };
190
+ }, [children]);
191
+ const toggle = () => {
192
+ const labelText = typeof label === 'string' ? label : '';
193
+ if (open) {
194
+ onCollapse?.(labelText);
195
+ }
196
+ else {
197
+ onExpand?.(labelText);
198
+ }
199
+ if (!isControlled) {
200
+ setInternalOpen(!open);
201
+ }
202
+ };
203
+ const variantStyles = getVariantStyles(variant, open);
204
+ // Hover styles per variant
205
+ const getHoverButtonStyle = () => {
206
+ if (!isHovered)
207
+ return {};
208
+ switch (variant) {
209
+ case 'elevated':
210
+ return { filter: 'brightness(1.1)' };
211
+ case 'bordered':
212
+ return { backgroundColor: '#f9fafb' };
213
+ case 'minimal':
214
+ return { backgroundColor: '#f3f4f6' };
215
+ case 'glass':
216
+ return { backgroundColor: 'rgba(99, 102, 241, 0.05)' };
217
+ default:
218
+ return { backgroundColor: '#f1f5f9' };
219
+ }
220
+ };
221
+ return (_jsxs("div", { className: classNames.container, style: {
222
+ display: 'flex',
223
+ flexDirection: 'column',
224
+ width: '100%',
225
+ transition: `all ${animationDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,
226
+ ...variantStyles.container,
227
+ ...styles.container,
228
+ }, children: [_jsxs("button", { className: [labelClassName, classNames.button]
229
+ .filter(Boolean)
230
+ .join(' '), style: {
231
+ ...variantStyles.button,
232
+ ...getHoverButtonStyle(),
233
+ transition: `all ${animationDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,
234
+ ...styles.button,
235
+ }, type: "button", onClick: toggle, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), onFocus: () => setIsHovered(true), onBlur: () => setIsHovered(false), "aria-expanded": open, children: [_jsx("span", { style: {
236
+ flex: 1,
237
+ lineHeight: 1.5,
238
+ }, children: label }), !hideIcon && (_jsx("div", { className: classNames.iconWrapper, children: icon || (_jsx(ChevronIcon, { isOpen: open, duration: animationDuration, variant: variant })) }))] }), _jsx("div", { style: {
239
+ height: open ? contentHeight : 0,
240
+ overflow: 'hidden',
241
+ transition: `height ${animationDuration}ms cubic-bezier(0.4, 0, 0.2, 1), opacity ${animationDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,
242
+ opacity: open ? 1 : 0,
243
+ }, children: _jsx("div", { ref: contentRef, className: [className, classNames.content].filter(Boolean).join(' '), style: {
244
+ ...variantStyles.content,
245
+ transform: open ? 'translateY(0)' : 'translateY(-10px)',
246
+ transition: `transform ${animationDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,
247
+ ...styles.content,
248
+ }, children: children }) })] }));
249
+ };
@@ -1 +1,8 @@
1
- "use strict";export const ACTION_SIZE=["sm","md","lg"],ACTION_VARIANT=["filled","tonal","outline","flat"],ACTION_STATE=["enabled","disabled","loading","readonly"];
1
+ export const ACTION_SIZE = ['sm', 'md', 'lg'];
2
+ export const ACTION_VARIANT = ['filled', 'tonal', 'outline', 'flat'];
3
+ export const ACTION_STATE = [
4
+ 'enabled',
5
+ 'disabled',
6
+ 'loading',
7
+ 'readonly',
8
+ ];
@@ -1 +1,45 @@
1
- "use strict";"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import{forwardRef as W,useEffect as A,useCallback as x}from"react";import{AlertBannerContainer as z,IconWrapper as b,ContentWrapper as D,Title as j,Message as L,ActionsWrapper as M,ActionButton as N,DismissButton as T}from"./elements";const h=()=>n("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e("circle",{cx:"12",cy:"12",r:"10"}),e("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),e("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]}),E=()=>n("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),e("polyline",{points:"22 4 12 14.01 9 11.01"})]}),O=()=>n("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),e("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),e("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),_=()=>n("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e("circle",{cx:"12",cy:"12",r:"10"}),e("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),e("line",{x1:"9",y1:"9",x2:"15",y2:"15"})]}),R=()=>n("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),S=a=>{switch(a){case"info":return e(h,{});case"success":return e(E,{});case"warning":return e(O,{});case"error":return e(_,{});default:return e(h,{})}};export const AlertBanner=W(function(y,p){const{children:f,type:i="info",variant:m="inline",size:o="medium",isOpen:s=!0,onClose:r,hideDismissButton:C=!1,icon:k,showIcon:v=!0,action:t,title:d,autoDismiss:l,animated:B=!0,className:$,...I}=y;A(()=>{if(l&&s&&r){const c=setTimeout(()=>{r()},l);return()=>clearTimeout(c)}},[l,s,r]);const g=x(c=>{r?.(c)},[r]),w=x(()=>{t?.onClick?.()},[t]),u=k||(v?S(i):null);return n(z,{ref:p,$type:i,$variant:m,$size:o,$isOpen:s,$animated:B,role:"alert","aria-live":"polite","data-aui":"alert-banner",className:$,...I,children:[u&&e(b,{$type:i,$size:o,"aria-hidden":"true",children:u}),n(D,{children:[d&&e(j,{$size:o,children:d}),e(L,{children:f})]}),n(M,{children:[t&&e(N,{$type:i,onClick:w,"aria-label":t.ariaLabel||t.text,children:t.text}),!C&&r&&e(T,{$type:i,$size:o,onClick:g,"aria-label":"Dismiss alert",children:e(R,{})})]})]})});AlertBanner.displayName="AlertBanner";
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef, useEffect, useCallback } from 'react';
4
+ import { AlertBannerContainer, IconWrapper, ContentWrapper, Title, Message, ActionsWrapper, ActionButton, DismissButton, } from './elements';
5
+ // Default icons for each type
6
+ const InfoIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })] }));
7
+ const SuccessIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }), _jsx("polyline", { points: "22 4 12 14.01 9 11.01" })] }));
8
+ const WarningIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }), _jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }), _jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] }));
9
+ const ErrorIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }), _jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })] }));
10
+ const CloseIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }));
11
+ const getDefaultIcon = (type) => {
12
+ switch (type) {
13
+ case 'info':
14
+ return _jsx(InfoIcon, {});
15
+ case 'success':
16
+ return _jsx(SuccessIcon, {});
17
+ case 'warning':
18
+ return _jsx(WarningIcon, {});
19
+ case 'error':
20
+ return _jsx(ErrorIcon, {});
21
+ default:
22
+ return _jsx(InfoIcon, {});
23
+ }
24
+ };
25
+ export const AlertBanner = forwardRef(function AlertBannerComponent(props, ref) {
26
+ const { children, type = 'info', variant = 'inline', size = 'medium', isOpen = true, onClose, hideDismissButton = false, icon, showIcon = true, action, title, autoDismiss, animated = true, className, ...rest } = props;
27
+ // Auto dismiss
28
+ useEffect(() => {
29
+ if (autoDismiss && isOpen && onClose) {
30
+ const timer = setTimeout(() => {
31
+ onClose();
32
+ }, autoDismiss);
33
+ return () => clearTimeout(timer);
34
+ }
35
+ }, [autoDismiss, isOpen, onClose]);
36
+ const handleClose = useCallback((e) => {
37
+ onClose?.(e);
38
+ }, [onClose]);
39
+ const handleAction = useCallback(() => {
40
+ action?.onClick?.();
41
+ }, [action]);
42
+ const displayIcon = icon || (showIcon ? getDefaultIcon(type) : null);
43
+ return (_jsxs(AlertBannerContainer, { ref: ref, "$type": type, "$variant": variant, "$size": size, "$isOpen": isOpen, "$animated": animated, role: "alert", "aria-live": "polite", "data-aui": "alert-banner", className: className, ...rest, children: [displayIcon && (_jsx(IconWrapper, { "$type": type, "$size": size, "aria-hidden": "true", children: displayIcon })), _jsxs(ContentWrapper, { children: [title && _jsx(Title, { "$size": size, children: title }), _jsx(Message, { children: children })] }), _jsxs(ActionsWrapper, { children: [action && (_jsx(ActionButton, { "$type": type, onClick: handleAction, "aria-label": action.ariaLabel || action.text, children: action.text })), !hideDismissButton && onClose && (_jsx(DismissButton, { "$type": type, "$size": size, onClick: handleClose, "aria-label": "Dismiss alert", children: _jsx(CloseIcon, {}) }))] })] }));
44
+ });
45
+ AlertBanner.displayName = 'AlertBanner';
@@ -1,4 +1,8 @@
1
- "use strict";import{styled as o,css as n,keyframes as a}from"styled-components";import{tokens as r}from"../../utils/designTokens";import{breakpoints as s}from"../../utils/abstracts";const f=a`
1
+ import { styled, css, keyframes } from 'styled-components';
2
+ import { tokens } from '../../utils/designTokens';
3
+ import { breakpoints } from '../../utils/abstracts';
4
+ // Animations
5
+ const slideIn = keyframes `
2
6
  from {
3
7
  opacity: 0;
4
8
  transform: translateY(-100%);
@@ -7,7 +11,8 @@
7
11
  opacity: 1;
8
12
  transform: translateY(0);
9
13
  }
10
- `,c=a`
14
+ `;
15
+ const slideOut = keyframes `
11
16
  from {
12
17
  opacity: 1;
13
18
  transform: translateY(0);
@@ -16,35 +21,96 @@
16
21
  opacity: 0;
17
22
  transform: translateY(-100%);
18
23
  }
19
- `,t={info:{bg:"#e7f3ff",border:"#3b82f6",text:"#1e40af",icon:"#3b82f6"},success:{bg:"#ecfdf5",border:"#10b981",text:"#065f46",icon:"#10b981"},warning:{bg:"#fffbeb",border:"#f59e0b",text:"#92400e",icon:"#f59e0b"},error:{bg:"#fef2f2",border:"#ef4444",text:"#991b1b",icon:"#ef4444"},default:{bg:r.surface||"#f8f9fa",border:r.outline||"#e9ecef",text:r.onSurface||"#1a1a2e",icon:r.primary||"#454cbf"},dark:{bg:"#1f2937",border:"#374151",text:"#f9fafb",icon:"#9ca3af"}},i={small:{padding:"0.5rem 0.75rem",fontSize:"0.8125rem",iconSize:"16px"},medium:{padding:"0.75rem 1rem",fontSize:"0.875rem",iconSize:"20px"},large:{padding:"1rem 1.25rem",fontSize:"1rem",iconSize:"24px"}};export const AlertBannerContainer=o.div`
20
- display: ${({$isOpen:e})=>e?"flex":"none"};
24
+ `;
25
+ // Type colors
26
+ const typeStyles = {
27
+ info: {
28
+ bg: '#e7f3ff',
29
+ border: '#3b82f6',
30
+ text: '#1e40af',
31
+ icon: '#3b82f6',
32
+ },
33
+ success: {
34
+ bg: '#ecfdf5',
35
+ border: '#10b981',
36
+ text: '#065f46',
37
+ icon: '#10b981',
38
+ },
39
+ warning: {
40
+ bg: '#fffbeb',
41
+ border: '#f59e0b',
42
+ text: '#92400e',
43
+ icon: '#f59e0b',
44
+ },
45
+ error: {
46
+ bg: '#fef2f2',
47
+ border: '#ef4444',
48
+ text: '#991b1b',
49
+ icon: '#ef4444',
50
+ },
51
+ default: {
52
+ bg: tokens.surface || '#f8f9fa',
53
+ border: tokens.outline || '#e9ecef',
54
+ text: tokens.onSurface || '#1a1a2e',
55
+ icon: tokens.primary || '#454cbf',
56
+ },
57
+ dark: {
58
+ bg: '#1f2937',
59
+ border: '#374151',
60
+ text: '#f9fafb',
61
+ icon: '#9ca3af',
62
+ },
63
+ };
64
+ // Size styles
65
+ const sizeStyles = {
66
+ small: {
67
+ padding: '0.5rem 0.75rem',
68
+ fontSize: '0.8125rem',
69
+ iconSize: '16px',
70
+ },
71
+ medium: {
72
+ padding: '0.75rem 1rem',
73
+ fontSize: '0.875rem',
74
+ iconSize: '20px',
75
+ },
76
+ large: {
77
+ padding: '1rem 1.25rem',
78
+ fontSize: '1rem',
79
+ iconSize: '24px',
80
+ },
81
+ };
82
+ export const AlertBannerContainer = styled.div `
83
+ display: ${({ $isOpen }) => ($isOpen ? 'flex' : 'none')};
21
84
  align-items: flex-start;
22
- gap: ${r.spacing100||"0.5rem"};
85
+ gap: ${tokens.spacing100 || '0.5rem'};
23
86
  width: 100%;
24
87
  box-sizing: border-box;
25
88
 
26
89
  /* Type colors */
27
- background: ${({$type:e})=>t[e].bg};
28
- border: 1px solid ${({$type:e})=>t[e].border};
29
- color: ${({$type:e})=>t[e].text};
90
+ background: ${({ $type }) => typeStyles[$type].bg};
91
+ border: 1px solid ${({ $type }) => typeStyles[$type].border};
92
+ color: ${({ $type }) => typeStyles[$type].text};
30
93
 
31
94
  /* Size styles */
32
- padding: ${({$size:e})=>i[e].padding};
33
- font-size: ${({$size:e})=>i[e].fontSize};
95
+ padding: ${({ $size }) => sizeStyles[$size].padding};
96
+ font-size: ${({ $size }) => sizeStyles[$size].fontSize};
34
97
 
35
98
  /* Variant styles */
36
- ${({$variant:e})=>e==="banner"&&n`
99
+ ${({ $variant }) => $variant === 'banner' &&
100
+ css `
37
101
  border-radius: 0;
38
102
  border-left: none;
39
103
  border-right: none;
40
104
  `}
41
105
 
42
- ${({$variant:e})=>e==="inline"&&n`
43
- border-radius: ${r.borderRadius100||"8px"};
106
+ ${({ $variant }) => $variant === 'inline' &&
107
+ css `
108
+ border-radius: ${tokens.borderRadius100 || '8px'};
44
109
  `}
45
110
 
46
- ${({$variant:e})=>e==="floating"&&n`
47
- border-radius: ${r.borderRadius100||"8px"};
111
+ ${({ $variant }) => $variant === 'floating' &&
112
+ css `
113
+ border-radius: ${tokens.borderRadius100 || '8px'};
48
114
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
49
115
  position: fixed;
50
116
  top: 1rem;
@@ -53,64 +119,72 @@
53
119
  max-width: calc(100% - 2rem);
54
120
  z-index: 1000;
55
121
 
56
- ${s.md} {
122
+ ${breakpoints.md} {
57
123
  max-width: 600px;
58
124
  }
59
125
  `}
60
126
 
61
127
  /* Animation */
62
- ${({$animated:e,$isOpen:d})=>e&&n`
63
- animation: ${d?f:c} 0.3s ease-out;
128
+ ${({ $animated, $isOpen }) => $animated &&
129
+ css `
130
+ animation: ${$isOpen ? slideIn : slideOut} 0.3s ease-out;
64
131
  `}
65
132
 
66
133
  /* Responsive */
67
- ${s.xs} {
134
+ ${breakpoints.xs} {
68
135
  flex-direction: column;
69
136
  align-items: stretch;
70
137
  }
71
- `,IconWrapper=o.span`
138
+ `;
139
+ export const IconWrapper = styled.span `
72
140
  display: flex;
73
141
  align-items: center;
74
142
  justify-content: center;
75
143
  flex-shrink: 0;
76
- color: ${({$type:e})=>t[e].icon};
77
- width: ${({$size:e})=>i[e].iconSize};
78
- height: ${({$size:e})=>i[e].iconSize};
144
+ color: ${({ $type }) => typeStyles[$type].icon};
145
+ width: ${({ $size }) => sizeStyles[$size].iconSize};
146
+ height: ${({ $size }) => sizeStyles[$size].iconSize};
79
147
 
80
148
  svg {
81
149
  width: 100%;
82
150
  height: 100%;
83
151
  }
84
- `,ContentWrapper=o.div`
152
+ `;
153
+ export const ContentWrapper = styled.div `
85
154
  flex: 1;
86
155
  display: flex;
87
156
  flex-direction: column;
88
- gap: ${r.spacing050||"0.25rem"};
157
+ gap: ${tokens.spacing050 || '0.25rem'};
89
158
  min-width: 0;
90
- `,Title=o.strong`
159
+ `;
160
+ export const Title = styled.strong `
91
161
  font-weight: 600;
92
- font-size: ${({$size:e})=>e==="small"?"0.875rem":e==="large"?"1.125rem":"1rem"};
162
+ font-size: ${({ $size }) => $size === 'small' ? '0.875rem' :
163
+ $size === 'large' ? '1.125rem' : '1rem'};
93
164
  line-height: 1.4;
94
- `,Message=o.div`
165
+ `;
166
+ export const Message = styled.div `
95
167
  line-height: 1.5;
96
- `,ActionsWrapper=o.div`
168
+ `;
169
+ export const ActionsWrapper = styled.div `
97
170
  display: flex;
98
171
  align-items: center;
99
- gap: ${r.spacing100||"0.5rem"};
172
+ gap: ${tokens.spacing100 || '0.5rem'};
100
173
  flex-shrink: 0;
101
174
  margin-left: auto;
102
175
 
103
- ${s.xs} {
176
+ ${breakpoints.xs} {
104
177
  margin-left: 0;
105
- margin-top: ${r.spacing100||"0.5rem"};
178
+ margin-top: ${tokens.spacing100 || '0.5rem'};
106
179
  justify-content: flex-end;
107
180
  }
108
- `,ActionButton=o.button`
181
+ `;
182
+ export const ActionButton = styled.button `
109
183
  background: transparent;
110
- border: 1px solid ${({$type:e})=>t[e].border};
111
- color: ${({$type:e})=>t[e].text};
184
+ border: 1px solid ${({ $type }) => typeStyles[$type].border};
185
+ color: ${({ $type }) => typeStyles[$type].text};
112
186
  padding: 0.375rem 0.75rem;
113
- border-radius: ${r.borderRadius050||"4px"};
187
+ border-radius: ${tokens.borderRadius050 || '4px'};
114
188
  font-size: 0.8125rem;
115
189
  font-weight: 500;
116
190
  cursor: pointer;
@@ -118,36 +192,37 @@
118
192
  white-space: nowrap;
119
193
 
120
194
  &:hover {
121
- background: ${({$type:e})=>t[e].border}20;
195
+ background: ${({ $type }) => typeStyles[$type].border}20;
122
196
  }
123
197
 
124
198
  &:focus-visible {
125
- outline: 2px solid ${({$type:e})=>t[e].border};
199
+ outline: 2px solid ${({ $type }) => typeStyles[$type].border};
126
200
  outline-offset: 2px;
127
201
  }
128
- `,DismissButton=o.button`
202
+ `;
203
+ export const DismissButton = styled.button `
129
204
  display: flex;
130
205
  align-items: center;
131
206
  justify-content: center;
132
207
  background: transparent;
133
208
  border: none;
134
- color: ${({$type:e})=>t[e].text};
209
+ color: ${({ $type }) => typeStyles[$type].text};
135
210
  padding: 0.25rem;
136
- border-radius: ${r.borderRadius050||"4px"};
211
+ border-radius: ${tokens.borderRadius050 || '4px'};
137
212
  cursor: pointer;
138
213
  transition: all 0.2s ease;
139
214
  opacity: 0.7;
140
215
  flex-shrink: 0;
141
- width: ${({$size:e})=>i[e].iconSize};
142
- height: ${({$size:e})=>i[e].iconSize};
216
+ width: ${({ $size }) => sizeStyles[$size].iconSize};
217
+ height: ${({ $size }) => sizeStyles[$size].iconSize};
143
218
 
144
219
  &:hover {
145
220
  opacity: 1;
146
- background: ${({$type:e})=>t[e].border}20;
221
+ background: ${({ $type }) => typeStyles[$type].border}20;
147
222
  }
148
223
 
149
224
  &:focus-visible {
150
- outline: 2px solid ${({$type:e})=>t[e].border};
225
+ outline: 2px solid ${({ $type }) => typeStyles[$type].border};
151
226
  outline-offset: 2px;
152
227
  }
153
228
 
@@ -1 +1,2 @@
1
- "use strict";export{AlertBanner}from"./AlertBanner";export*from"./types";
1
+ export { AlertBanner } from './AlertBanner';
2
+ export * from './types';
@@ -1 +1,10 @@
1
- "use strict";export const ALERT_BANNER_TYPES=["info","success","warning","error","default","dark"],ALERT_BANNER_VARIANTS=["banner","inline","floating"],ALERT_BANNER_SIZES=["small","medium","large"];
1
+ export const ALERT_BANNER_TYPES = [
2
+ 'info',
3
+ 'success',
4
+ 'warning',
5
+ 'error',
6
+ 'default',
7
+ 'dark',
8
+ ];
9
+ export const ALERT_BANNER_VARIANTS = ['banner', 'inline', 'floating'];
10
+ export const ALERT_BANNER_SIZES = ['small', 'medium', 'large'];