se-design 1.0.83-dev.4 → 1.0.83-r-dev.1

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 (269) hide show
  1. package/dist/assets/icons/tag.svg +2 -2
  2. package/dist/assets/style.css +1 -1
  3. package/dist/components/AccessibleDiv/index.d.ts +1 -23
  4. package/dist/components/Dropdown/index.d.ts +0 -2
  5. package/dist/components/DropdownWithInputTags/index.d.ts +0 -3
  6. package/dist/components/Link/index.d.ts +2 -6
  7. package/dist/components/NLSearch/ClearAiFiltersBar.d.ts +21 -0
  8. package/dist/components/NLSearch/NLDynamicChip.d.ts +26 -0
  9. package/dist/components/NLSearch/NLSearchInput.d.ts +46 -0
  10. package/dist/components/NLSearch/index.d.ts +6 -0
  11. package/dist/components/index.d.ts +2 -0
  12. package/dist/index.js +139 -140
  13. package/dist/index.js.map +1 -1
  14. package/dist/index100.js.map +1 -1
  15. package/dist/index101.js.map +1 -1
  16. package/dist/index102.js.map +1 -1
  17. package/dist/index103.js.map +1 -1
  18. package/dist/index104.js.map +1 -1
  19. package/dist/index105.js.map +1 -1
  20. package/dist/index106.js.map +1 -1
  21. package/dist/index107.js.map +1 -1
  22. package/dist/index108.js.map +1 -1
  23. package/dist/index109.js.map +1 -1
  24. package/dist/index11.js +1 -1
  25. package/dist/index110.js.map +1 -1
  26. package/dist/index111.js.map +1 -1
  27. package/dist/index112.js.map +1 -1
  28. package/dist/index113.js.map +1 -1
  29. package/dist/index114.js.map +1 -1
  30. package/dist/index115.js.map +1 -1
  31. package/dist/index116.js.map +1 -1
  32. package/dist/index117.js.map +1 -1
  33. package/dist/index118.js.map +1 -1
  34. package/dist/index119.js.map +1 -1
  35. package/dist/index12.js +1 -1
  36. package/dist/index120.js.map +1 -1
  37. package/dist/index121.js.map +1 -1
  38. package/dist/index122.js.map +1 -1
  39. package/dist/index123.js.map +1 -1
  40. package/dist/index124.js.map +1 -1
  41. package/dist/index125.js.map +1 -1
  42. package/dist/index126.js.map +1 -1
  43. package/dist/index127.js.map +1 -1
  44. package/dist/index128.js.map +1 -1
  45. package/dist/index129.js.map +1 -1
  46. package/dist/index13.js +1 -1
  47. package/dist/index130.js.map +1 -1
  48. package/dist/index131.js.map +1 -1
  49. package/dist/index132.js.map +1 -1
  50. package/dist/index133.js.map +1 -1
  51. package/dist/index134.js.map +1 -1
  52. package/dist/index135.js.map +1 -1
  53. package/dist/index136.js.map +1 -1
  54. package/dist/index137.js.map +1 -1
  55. package/dist/index138.js.map +1 -1
  56. package/dist/index139.js.map +1 -1
  57. package/dist/index140.js.map +1 -1
  58. package/dist/index141.js.map +1 -1
  59. package/dist/index142.js.map +1 -1
  60. package/dist/index143.js.map +1 -1
  61. package/dist/index144.js.map +1 -1
  62. package/dist/index145.js.map +1 -1
  63. package/dist/index146.js.map +1 -1
  64. package/dist/index147.js.map +1 -1
  65. package/dist/index148.js.map +1 -1
  66. package/dist/index149.js.map +1 -1
  67. package/dist/index150.js.map +1 -1
  68. package/dist/index151.js.map +1 -1
  69. package/dist/index152.js.map +1 -1
  70. package/dist/index153.js.map +1 -1
  71. package/dist/index154.js.map +1 -1
  72. package/dist/index155.js.map +1 -1
  73. package/dist/index156.js.map +1 -1
  74. package/dist/index157.js.map +1 -1
  75. package/dist/index158.js.map +1 -1
  76. package/dist/index159.js.map +1 -1
  77. package/dist/index16.js +23 -25
  78. package/dist/index16.js.map +1 -1
  79. package/dist/index160.js.map +1 -1
  80. package/dist/index161.js.map +1 -1
  81. package/dist/index162.js.map +1 -1
  82. package/dist/index163.js.map +1 -1
  83. package/dist/index164.js.map +1 -1
  84. package/dist/index165.js.map +1 -1
  85. package/dist/index166.js.map +1 -1
  86. package/dist/index167.js.map +1 -1
  87. package/dist/index168.js.map +1 -1
  88. package/dist/index169.js.map +1 -1
  89. package/dist/index17.js +29 -29
  90. package/dist/index17.js.map +1 -1
  91. package/dist/index170.js.map +1 -1
  92. package/dist/index171.js.map +1 -1
  93. package/dist/index172.js.map +1 -1
  94. package/dist/index173.js.map +1 -1
  95. package/dist/index174.js.map +1 -1
  96. package/dist/index175.js.map +1 -1
  97. package/dist/index176.js.map +1 -1
  98. package/dist/index177.js.map +1 -1
  99. package/dist/index178.js.map +1 -1
  100. package/dist/index179.js.map +1 -1
  101. package/dist/index18.js +63 -85
  102. package/dist/index18.js.map +1 -1
  103. package/dist/index180.js.map +1 -1
  104. package/dist/index181.js.map +1 -1
  105. package/dist/index182.js.map +1 -1
  106. package/dist/index183.js.map +1 -1
  107. package/dist/index184.js.map +1 -1
  108. package/dist/index185.js.map +1 -1
  109. package/dist/index186.js.map +1 -1
  110. package/dist/index187.js.map +1 -1
  111. package/dist/index188.js.map +1 -1
  112. package/dist/index189.js.map +1 -1
  113. package/dist/index19.js +167 -182
  114. package/dist/index19.js.map +1 -1
  115. package/dist/index190.js.map +1 -1
  116. package/dist/index191.js.map +1 -1
  117. package/dist/index192.js.map +1 -1
  118. package/dist/index193.js +1 -1
  119. package/dist/index193.js.map +1 -1
  120. package/dist/index194.js.map +1 -1
  121. package/dist/index195.js.map +1 -1
  122. package/dist/index196.js.map +1 -1
  123. package/dist/index197.js.map +1 -1
  124. package/dist/index198.js.map +1 -1
  125. package/dist/index199.js.map +1 -1
  126. package/dist/index200.js.map +1 -1
  127. package/dist/index201.js.map +1 -1
  128. package/dist/index202.js.map +1 -1
  129. package/dist/index203.js.map +1 -1
  130. package/dist/index207.js +2 -2
  131. package/dist/index208.js +3 -3
  132. package/dist/index208.js.map +1 -1
  133. package/dist/index216.js +9 -13
  134. package/dist/index216.js.map +1 -1
  135. package/dist/index23.js +2 -2
  136. package/dist/index244.js +1 -1
  137. package/dist/index25.js +160 -174
  138. package/dist/index25.js.map +1 -1
  139. package/dist/index27.js +1 -1
  140. package/dist/index28.js +4 -4
  141. package/dist/index28.js.map +1 -1
  142. package/dist/index29.js +30 -34
  143. package/dist/index29.js.map +1 -1
  144. package/dist/index3.js +50 -60
  145. package/dist/index3.js.map +1 -1
  146. package/dist/index30.js +3 -3
  147. package/dist/index32.js +10 -11
  148. package/dist/index35.js +3 -3
  149. package/dist/index36.js +4 -4
  150. package/dist/index38.js +195 -210
  151. package/dist/index38.js.map +1 -1
  152. package/dist/index39.js +2 -2
  153. package/dist/index4.js +3 -3
  154. package/dist/index42.js +7 -8
  155. package/dist/index43.js +13 -14
  156. package/dist/index43.js.map +1 -1
  157. package/dist/index45.js +60 -61
  158. package/dist/index45.js.map +1 -1
  159. package/dist/index46.js +198 -194
  160. package/dist/index46.js.map +1 -1
  161. package/dist/index47.js +40 -38
  162. package/dist/index47.js.map +1 -1
  163. package/dist/index48.js +36 -33
  164. package/dist/index48.js.map +1 -1
  165. package/dist/index50.js +189 -78
  166. package/dist/index50.js.map +1 -1
  167. package/dist/index51.js +36 -459
  168. package/dist/index51.js.map +1 -1
  169. package/dist/index52.js +33 -98
  170. package/dist/index52.js.map +1 -1
  171. package/dist/index53.js +151 -36
  172. package/dist/index53.js.map +1 -1
  173. package/dist/index54.js +84 -36
  174. package/dist/index54.js.map +1 -1
  175. package/dist/index55.js +456 -88
  176. package/dist/index55.js.map +1 -1
  177. package/dist/index56.js +96 -161
  178. package/dist/index56.js.map +1 -1
  179. package/dist/index57.js +35 -146
  180. package/dist/index57.js.map +1 -1
  181. package/dist/index58.js +38 -33
  182. package/dist/index58.js.map +1 -1
  183. package/dist/index59.js +89 -83
  184. package/dist/index59.js.map +1 -1
  185. package/dist/index6.js +237 -239
  186. package/dist/index6.js.map +1 -1
  187. package/dist/index60.js +157 -113
  188. package/dist/index60.js.map +1 -1
  189. package/dist/index61.js +143 -62
  190. package/dist/index61.js.map +1 -1
  191. package/dist/index62.js +33 -152
  192. package/dist/index62.js.map +1 -1
  193. package/dist/index63.js +80 -312
  194. package/dist/index63.js.map +1 -1
  195. package/dist/index64.js +118 -46
  196. package/dist/index64.js.map +1 -1
  197. package/dist/index65.js +62 -140
  198. package/dist/index65.js.map +1 -1
  199. package/dist/index66.js +152 -12
  200. package/dist/index66.js.map +1 -1
  201. package/dist/index67.js +316 -44
  202. package/dist/index67.js.map +1 -1
  203. package/dist/index68.js +44 -104
  204. package/dist/index68.js.map +1 -1
  205. package/dist/index69.js +143 -18
  206. package/dist/index69.js.map +1 -1
  207. package/dist/index7.js +8 -9
  208. package/dist/index70.js +9 -63
  209. package/dist/index70.js.map +1 -1
  210. package/dist/index71.js +45 -26
  211. package/dist/index71.js.map +1 -1
  212. package/dist/index72.js +78 -102
  213. package/dist/index72.js.map +1 -1
  214. package/dist/index73.js +18 -61
  215. package/dist/index73.js.map +1 -1
  216. package/dist/index74.js +63 -18
  217. package/dist/index74.js.map +1 -1
  218. package/dist/index75.js +24 -105
  219. package/dist/index75.js.map +1 -1
  220. package/dist/index76.js +108 -18
  221. package/dist/index76.js.map +1 -1
  222. package/dist/index77.js +61 -10
  223. package/dist/index77.js.map +1 -1
  224. package/dist/index78.js +21 -5
  225. package/dist/index78.js.map +1 -1
  226. package/dist/index79.js +5 -56
  227. package/dist/index79.js.map +1 -1
  228. package/dist/index80.js +50 -23
  229. package/dist/index80.js.map +1 -1
  230. package/dist/index81.js +22 -7
  231. package/dist/index81.js.map +1 -1
  232. package/dist/index82.js +12 -0
  233. package/dist/index82.js.map +1 -0
  234. package/dist/index84.js +2 -2
  235. package/dist/index84.js.map +1 -1
  236. package/dist/index85.js +2 -2
  237. package/dist/index85.js.map +1 -1
  238. package/dist/index86.js +2 -2
  239. package/dist/index86.js.map +1 -1
  240. package/dist/index87.js +2 -2
  241. package/dist/index87.js.map +1 -1
  242. package/dist/index88.js +1 -1
  243. package/dist/index88.js.map +1 -1
  244. package/dist/index89.js +1 -1
  245. package/dist/index89.js.map +1 -1
  246. package/dist/index9.js +3 -3
  247. package/dist/index90.js +1 -1
  248. package/dist/index90.js.map +1 -1
  249. package/dist/index91.js +1 -1
  250. package/dist/index91.js.map +1 -1
  251. package/dist/index92.js +1 -1
  252. package/dist/index92.js.map +1 -1
  253. package/dist/index93.js +1 -1
  254. package/dist/index93.js.map +1 -1
  255. package/dist/index94.js +1 -1
  256. package/dist/index94.js.map +1 -1
  257. package/dist/index95.js +1 -1
  258. package/dist/index95.js.map +1 -1
  259. package/dist/index96.js +1 -1
  260. package/dist/index96.js.map +1 -1
  261. package/dist/index97.js.map +1 -1
  262. package/dist/index98.js.map +1 -1
  263. package/dist/index99.js.map +1 -1
  264. package/package.json +1 -1
  265. package/dist/assets/icons/chat.svg +0 -4
  266. package/dist/index49.js +0 -152
  267. package/dist/index49.js.map +0 -1
  268. package/dist/index83.js +0 -5
  269. package/dist/index83.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index55.js","sources":["../src/components/ShimmerLoader/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport './style.scss';\n\nexport interface ShimmerElement {\n type: 'text' | 'rect' | 'rect-sm' | 'circle' | 'avatar' | 'image' | 'button';\n width: number | string;\n height: number | string;\n borderRadius?: number | string;\n margin?: string;\n className?: string;\n children?: ShimmerElement[];\n}\n\nexport interface ShimmerContainer {\n type: 'container';\n direction?: 'row' | 'column';\n gap?: number | string;\n padding?: string;\n margin?: string;\n alignItems?: string;\n flex?: number | string;\n className?: string;\n children: (ShimmerElement | ShimmerContainer)[];\n}\n\nexport type ShimmerStructure = (ShimmerElement | ShimmerContainer)[];\n\nexport interface ShimmerLoaderProps {\n structure: ShimmerStructure;\n className?: string;\n animationDuration?: number;\n baseColor?: string;\n highlightColor?: string;\n width?: number | string;\n height?: number | string;\n}\n\nconst ShimmerElementComponent: FC<{\n element: ShimmerElement;\n animationDuration: number;\n baseColor: string;\n highlightColor: string;\n}> = ({ element, animationDuration, baseColor, highlightColor }) => {\n const style: React.CSSProperties = {\n width: typeof element.width === 'number' ? `${element.width}px` : element.width,\n height: typeof element.height === 'number' ? `${element.height}px` : element.height,\n borderRadius: element.borderRadius\n ? typeof element.borderRadius === 'number'\n ? `${element.borderRadius}px`\n : element.borderRadius\n : undefined,\n margin: element.margin,\n '--shimmer-duration': `${animationDuration}s`,\n '--shimmer-base-color': baseColor,\n '--shimmer-highlight-color': highlightColor\n } as React.CSSProperties;\n\n const shimmerClass = `se-design-shimmer-element se-design-shimmer-${element.type}`;\n\n return (\n <div className={shimmerClass} style={style}>\n {element.children &&\n element.children.map((child, index) => (\n <ShimmerElementComponent\n key={index}\n element={child}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n ))}\n </div>\n );\n};\n\nconst ShimmerContainerComponent: FC<{\n container: ShimmerContainer;\n animationDuration: number;\n baseColor: string;\n highlightColor: string;\n}> = ({ container, animationDuration, baseColor, highlightColor }) => {\n const style: React.CSSProperties = {\n display: 'flex',\n flexDirection: container.direction || 'column',\n gap: typeof container.gap === 'number' ? `${container.gap}px` : container.gap,\n padding: container.padding,\n margin: container.margin,\n alignItems: container.alignItems,\n flex: container.flex\n };\n\n return (\n <div className={`se-design-shimmer-container ${container.className || ''}`} style={style}>\n {container.children.map((element, index) =>\n element.type === 'container' ? (\n <ShimmerContainerComponent\n key={index}\n container={element}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n ) : (\n <ShimmerElementComponent\n key={index}\n element={element}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n )\n )}\n </div>\n );\n};\n\nexport const ShimmerLoader: FC<ShimmerLoaderProps> = ({\n structure,\n className = '',\n animationDuration = 3,\n baseColor = 'var(--color-gray-700)',\n highlightColor = 'var(--color-gray-600)',\n width,\n height\n}) => {\n const containerStyle: React.CSSProperties = {\n width: width ? (typeof width === 'number' ? `${width}px` : width) : '100%',\n height: height ? (typeof height === 'number' ? `${height}px` : height) : 'auto',\n '--shimmer-duration': `${animationDuration}s`,\n '--shimmer-base-color': baseColor,\n '--shimmer-highlight-color': highlightColor\n } as React.CSSProperties;\n\n return (\n <div className={`se-design-shimmer-loader ${className}`} style={containerStyle}>\n {structure.map((item, index) => {\n if (item.type === 'container') {\n return (\n <ShimmerContainerComponent\n key={index}\n container={item}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n );\n } else {\n return (\n <ShimmerElementComponent\n key={index}\n element={item}\n animationDuration={animationDuration}\n baseColor={baseColor}\n highlightColor={highlightColor}\n />\n );\n }\n })}\n </div>\n );\n};\n\nexport default ShimmerLoader;\n"],"names":["ShimmerElementComponent","element","animationDuration","baseColor","highlightColor","style","width","height","borderRadius","undefined","margin","shimmerClass","type","React","createElement","className","children","map","child","index","key","ShimmerContainerComponent","container","display","flexDirection","direction","gap","padding","alignItems","flex","ShimmerLoader","structure","containerStyle","item"],"mappings":"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"}
1
+ {"version":3,"file":"index55.js","sources":["../src/components/DatePicker/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { Dropdown } from '../Dropdown';\nimport { useDatePickerA11y, formatDateId, getCellAriaLabel } from './useDatePickerA11y';\n\nimport './style.scss';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\nexport interface DatePickerProps {\n title?: string;\n isOpen?: boolean;\n initialStartDate?: Date;\n initialEndDate?: Date;\n onApply?: (dateRange: DateRange) => void;\n onClose?: () => void;\n shouldAllowFutureDateSelection?: boolean;\n maxDays?: number;\n disablePastDates?: boolean;\n singleDateSelection?: boolean;\n minYearOption?: number;\n showQuickActions?: boolean;\n className?: string;\n automationId?: string;\n showHeader?: boolean;\n showSingleMonth?: boolean;\n labels?: {\n title?: string;\n clear?: string;\n apply?: string;\n };\n}\n\nconst weekDays = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\nconst weekDaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\nconst quickActions = ['Today', 'Yesterday', 'This Week', 'Last Week', 'This Month', 'Last Month'];\n\nconst months = [\n { value: 'january', label: 'January' },\n { value: 'february', label: 'February' },\n { value: 'march', label: 'March' },\n { value: 'april', label: 'April' },\n { value: 'may', label: 'May' },\n { value: 'june', label: 'June' },\n { value: 'july', label: 'July' },\n { value: 'august', label: 'August' },\n { value: 'september', label: 'September' },\n { value: 'october', label: 'October' },\n { value: 'november', label: 'November' },\n { value: 'december', label: 'December' }\n];\n\n// Pure helpers — no component state dependency\nconst getDaysInMonth = (year: number, month: number) => new Date(year, month + 1, 0).getDate();\nconst getFirstDayOfMonth = (year: number, month: number) => new Date(year, month, 1).getDay();\n\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n title = 'Select modified date',\n // isOpen = true,\n showHeader = true,\n initialStartDate,\n initialEndDate,\n onApply = () => {},\n onClose,\n shouldAllowFutureDateSelection = false,\n maxDays,\n disablePastDates = false,\n singleDateSelection = false,\n minYearOption,\n showQuickActions = false,\n showSingleMonth = false,\n className = '',\n automationId = 'datepicker',\n labels = {\n clear: 'Clear',\n apply: 'Apply'\n }\n}) => {\n const getDefaultDateRange = (): DateRange => {\n // If initial start and end dates are provided, use them\n if (initialStartDate && initialEndDate) {\n return {\n startDate: initialStartDate,\n endDate: initialEndDate\n };\n }\n\n // If no initial dates are provided, use today's date\n const endDate = new Date();\n endDate.setHours(23, 59, 59, 999); // End of today\n\n const startDate = new Date();\n startDate.setHours(0, 0, 0, 0); // Start of today\n\n return { startDate, endDate };\n };\n\n const getDefaultMonths = (): [Date, Date] => {\n const today = new Date();\n const lastMonth = new Date();\n\n // Set both to first day of their respective months\n today.setDate(1);\n lastMonth.setDate(1);\n\n if (!showSingleMonth) {\n lastMonth.setMonth(lastMonth.getMonth() - 1);\n }\n\n today.setHours(0, 0, 0, 0);\n lastMonth.setHours(0, 0, 0, 0);\n\n return [lastMonth, today];\n };\n\n const [selectedRange, setSelectedRange] = useState<DateRange>(getDefaultDateRange);\n const [defaultMonths, _] = useState(getDefaultMonths);\n const [leftMonth, setLeftMonth] = useState(() => defaultMonths[0]);\n const [rightMonth, setRightMonth] = useState(() => defaultMonths[1]);\n\n const ensureDateInCorrectOrder = (leftDate: Date, rightDate: Date): [Date, Date] => {\n if (leftDate.getTime() > rightDate.getTime()) {\n return [rightDate, leftDate];\n }\n return [leftDate, rightDate];\n };\n\n const handleMonthChange = (newDate: Date, isLeftCalendar: boolean) => {\n if (showSingleMonth) {\n setLeftMonth(newDate);\n return;\n }\n if (isLeftCalendar) {\n const [newLeft, newRight] = ensureDateInCorrectOrder(newDate, rightMonth);\n setLeftMonth(newLeft);\n if (newRight !== rightMonth) setRightMonth(newRight);\n } else {\n const [newLeft, newRight] = ensureDateInCorrectOrder(leftMonth, newDate);\n if (newLeft !== leftMonth) setLeftMonth(newLeft);\n setRightMonth(newRight);\n }\n };\n\n const {\n getGridCellProps,\n getLeftContainerProps,\n getRightContainerProps\n } = useDatePickerA11y({\n leftMonth,\n rightMonth,\n showSingleMonth,\n selectedRange,\n onMonthChange: handleMonthChange\n });\n\n const generateCalendarDays = (year: number, month: number) => {\n const daysInMonth = getDaysInMonth(year, month);\n const firstDay = getFirstDayOfMonth(year, month);\n const days = [];\n\n // Add empty cells for days before the first day of the month\n for (let i = 0; i < firstDay; i++) {\n days.push(null);\n }\n\n // Add the days of the month\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n date.setHours(0, 0, 0, 0); // Normalize to start of day for consistent comparisons\n days.push(date);\n }\n\n return days;\n };\n\n const isSameDay = (date1: Date, date2: Date): boolean => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n };\n\n const isDateInRange = (date: Date) => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n\n const compareDate = new Date(date);\n compareDate.setHours(12, 0, 0, 0); // Noon to avoid any timezone issues\n\n const startDate = new Date(selectedRange.startDate);\n startDate.setHours(0, 0, 0, 0);\n\n const endDate = new Date(selectedRange.endDate);\n endDate.setHours(23, 59, 59, 999);\n\n return compareDate >= startDate && compareDate <= endDate;\n };\n\n const isToday = (date: Date) => {\n const today = new Date();\n return (\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n );\n };\n\n const isDateDisabled = (date: Date | null) => {\n if (!date) return true;\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n const dateToCheck = new Date(date);\n dateToCheck.setHours(0, 0, 0, 0);\n\n // If disablePastDates is true, disable dates before today\n if (disablePastDates && dateToCheck < today) {\n return true;\n }\n\n // If maxDays is specified, disable dates after maxDays from today\n if (maxDays !== undefined && maxDays !== null) {\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n maxDate.setHours(0, 0, 0, 0); // Normalize to start of day\n // Disable all dates after maxDays (dates strictly after maxDate should be disabled)\n // Dates up to and including maxDate (today + maxDays) are allowed\n if (dateToCheck > maxDate) {\n return true;\n }\n // If maxDays is set, we're done checking - don't check shouldAllowFutureDateSelection\n return false;\n }\n\n // If shouldAllowFutureDateSelection is false and maxDays is not specified, disable dates after today\n if (!shouldAllowFutureDateSelection) {\n return dateToCheck > today;\n }\n\n return false;\n };\n\n const handleDateClick = (date: Date) => {\n if (isDateDisabled(date)) return;\n\n const clickedDate = new Date(date);\n clickedDate.setHours(12, 0, 0, 0); // Set to noon to avoid timezone issues\n\n // Single date selection mode - immediately apply on click\n if (singleDateSelection) {\n setSelectedRange({ startDate: clickedDate, endDate: clickedDate });\n onApply({ startDate: clickedDate, endDate: clickedDate });\n onClose?.();\n return;\n }\n\n // Range selection mode (original behavior)\n if (!selectedRange.startDate || selectedRange.endDate) {\n // No dates selected yet, or both dates are selected - start new selection\n setSelectedRange({ startDate: clickedDate, endDate: null });\n } else {\n // Only start date is selected, set end date\n const currentStart = new Date(selectedRange.startDate);\n currentStart.setHours(12, 0, 0, 0);\n\n const endDate = clickedDate > currentStart ? clickedDate : currentStart;\n const startDate = clickedDate > currentStart ? currentStart : clickedDate;\n\n setSelectedRange({ startDate, endDate });\n }\n };\n\n const handleMonthNavigation = (date: Date, increment: boolean) => {\n const newDate = new Date(date);\n newDate.setMonth(newDate.getMonth() + (increment ? 1 : -1));\n return newDate;\n };\n\n const isStartDate = (date: Date): boolean => {\n if (!selectedRange?.startDate) return false;\n return isSameDay(date, selectedRange.startDate);\n };\n\n const isEndDate = (date: Date): boolean => {\n if (!selectedRange?.endDate) return false;\n return isSameDay(date, selectedRange?.endDate);\n };\n\n const isSameStartAndEndDate = (date: Date): boolean => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n return isSameDay(selectedRange.startDate, selectedRange.endDate) && isSameDay(date, selectedRange.startDate);\n };\n\n const getYearOptions = (currentYear: number, calendarYear: number) => {\n const startYear = minYearOption || currentYear - 10;\n let endYear = shouldAllowFutureDateSelection ? currentYear + 10 : currentYear;\n\n // If maxDays is specified, calculate the maximum year\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n const maxYear = maxDate.getFullYear();\n // Use the smaller of the two limits\n endYear = Math.min(endYear, maxYear);\n }\n\n endYear = Math.max(endYear, calendarYear);\n\n const yearCount = endYear - startYear + 1;\n\n return Array.from({ length: yearCount }, (_, i) => ({\n value: startYear + i,\n label: (startYear + i).toString()\n })).filter((year) => {\n if (year.value === calendarYear) {\n return true;\n }\n if (!shouldAllowFutureDateSelection && year.value > currentYear) {\n return false;\n }\n // If maxDays is specified, filter out years beyond maxDate\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return year.value <= maxDate.getFullYear();\n }\n return true;\n });\n };\n\n const handleClear = () => {\n const today = new Date();\n const startDate = new Date();\n\n // Set start date to beginning of today\n startDate.setHours(0, 0, 0, 0);\n\n // Set end date to end of today\n today.setHours(23, 59, 59, 999);\n\n const defaultRange = { startDate, endDate: today };\n setSelectedRange(defaultRange);\n };\n\n const getStartOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(0, 0, 0, 0);\n return newDate;\n };\n\n const getEndOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(23, 59, 59, 999);\n return newDate;\n };\n\n const handleQuickAction = (action: string) => {\n const today = new Date();\n let startDate = new Date();\n let endDate = new Date();\n\n switch (action) {\n case 'Today':\n startDate = getStartOfDay(today);\n endDate = getEndOfDay(today);\n break;\n case 'Yesterday':\n startDate = getStartOfDay(new Date(today.setDate(today.getDate() - 1)));\n endDate = getEndOfDay(new Date(today));\n break;\n case 'This Week':\n const firstDayOfWeek = new Date(today.setDate(today.getDate() - today.getDay()));\n startDate = getStartOfDay(firstDayOfWeek);\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Week':\n const lastWeekStart = new Date(today.setDate(today.getDate() - today.getDay() - 7));\n const lastWeekEnd = new Date(today.setDate(lastWeekStart.getDate() + 6));\n startDate = getStartOfDay(lastWeekStart);\n endDate = getEndOfDay(lastWeekEnd);\n break;\n case 'This Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth(), 1));\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth() - 1, 1));\n endDate = getEndOfDay(new Date(today.getFullYear(), today.getMonth(), 0));\n break;\n }\n\n setSelectedRange({ startDate, endDate });\n };\n\n const renderQuickActions = () => {\n return (\n <div className=\"w-[147px] p-4 border-r border-[var(--color-gray-200)]\">\n <div role=\"group\" aria-label=\"Quick date selections\" className=\"flex flex-col gap-3\">\n {quickActions.map((action) => (\n <Button key={action} label={action} type=\"link\" onClick={() => handleQuickAction(action)} />\n ))}\n </div>\n </div>\n );\n };\n\n const handleApply = () => {\n const { startDate = null, endDate = null } = selectedRange;\n\n if (startDate && endDate) {\n onApply({ startDate, endDate });\n return;\n }\n\n if (startDate || endDate) {\n const selectedDate = startDate || endDate;\n onApply({ startDate: selectedDate, endDate: selectedDate });\n }\n };\n\n const renderCalendar = (date: Date, isLeftCalendar: boolean) => {\n const year = date.getFullYear();\n const month = date.getMonth();\n const days = generateCalendarDays(year, month);\n const currentYear = new Date().getFullYear();\n const yearOptions = getYearOptions(currentYear, year);\n const monthHeading = new Date(year, month, 1).toLocaleString('en-US', { month: 'long', year: 'numeric' });\n const getGridContainerProps = isLeftCalendar ? getLeftContainerProps : getRightContainerProps;\n const gridInstructionsId = `calendar-instructions-${isLeftCalendar ? 'left' : 'right'}`;\n const gridInstructions = singleDateSelection\n ? 'Press Enter or Space to select a date. Use arrow keys to navigate days, Page Up and Page Down to change months.'\n : 'Press Enter or Space to select a start date, then again to select an end date. Use arrow keys to navigate days, Page Up and Page Down to change months.';\n\n const getCellProps = getGridCellProps({ isLeftCalendar, isDateDisabled, handleDateClick });\n\n // Group flat days array into rows of 7 for ARIA grid row/gridcell structure\n const rows: (Date | null)[][] = [];\n for (let i = 0; i < days.length; i += 7) {\n const row = days.slice(i, i + 7);\n while (row.length < 7) row.push(null);\n rows.push(row);\n }\n\n const today = new Date();\n const isPrevMonthDisabled =\n disablePastDates &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear();\n const isNextMonthDisabled =\n (!shouldAllowFutureDateSelection &&\n month === today.getMonth() &&\n year === today.getFullYear()) ||\n (maxDays !== undefined &&\n (() => {\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return date.getMonth() === maxDate.getMonth() && date.getFullYear() === maxDate.getFullYear();\n })());\n\n return (\n <div className=\"se-design-calendar-container w-fit p-4\">\n <div className=\"flex justify-between items-center\">\n <Icon\n name=\"chevron\"\n rotation=\"90\"\n size={16}\n disabled={isPrevMonthDisabled}\n onClick={() => {\n const newDate = handleMonthNavigation(date, false);\n // Check if navigating back would go before today when disablePastDates is true\n if (disablePastDates) {\n const todayCheck = new Date();\n todayCheck.setHours(0, 0, 0, 0);\n if (newDate < todayCheck && newDate.getMonth() !== todayCheck.getMonth()) {\n return; // Don't navigate to past months\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n automationId={`${automationId}-previous-month`}\n ariaLabel={showSingleMonth ? 'Previous month' : isLeftCalendar ? 'Previous month of starting date' : 'Previous month of end date'}\n />\n\n <div className=\"flex gap-2\" onClick={(e) => e.stopPropagation()}>\n <Dropdown\n type=\"select\"\n dropDownOptions={months}\n defaultSelectedValue={months[month]}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n label={showSingleMonth ? 'Month' : isLeftCalendar ? 'Start month' : 'End month'}\n firstOptionAsHeading={true}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setMonth(months.findIndex((m) => m.value === selectedOption.value));\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[124px] dropdown-option-container\"\n />\n <Dropdown\n type=\"select\"\n dropDownOptions={yearOptions}\n defaultSelectedValue={yearOptions.find((y) => y.value === year)}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n label={showSingleMonth ? 'Year' : isLeftCalendar ? 'Start year' : 'End year'}\n firstOptionAsHeading={true}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setFullYear(selectedOption.value);\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[104px] dropdown-option-container\"\n />\n </div>\n\n <Icon\n name=\"chevron\"\n rotation=\"270\"\n size={16}\n disabled={isNextMonthDisabled}\n onClick={() => {\n const newDate = handleMonthNavigation(date, true);\n // Check if the new date would exceed maxDays\n if (maxDays !== undefined) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n if (newDate > maxDate) {\n return;\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n automationId={`${automationId}-next-month`}\n ariaLabel={showSingleMonth ? 'Next month' : isLeftCalendar ? 'Next month of starting date' : 'Next month of end date'}\n />\n </div>\n\n {/* Calendar grid with ARIA grid/row/gridcell/columnheader roles */}\n <span id={gridInstructionsId} className=\"sr-only\">\n {gridInstructions}\n </span>\n <div {...getGridContainerProps({ ariaLabel: monthHeading, ariaDescribedBy: gridInstructionsId })} className=\"mt-3\">\n {/* Column headers (week days) */}\n <div role=\"row\" className=\"grid grid-cols-7 gap-2\">\n {weekDays.map((day, index) => (\n <abbr\n key={`${day}-${index}`}\n role=\"columnheader\"\n title={weekDaysFull[index]}\n className=\"datepicker-weekdays\"\n >\n {day}\n </abbr>\n ))}\n </div>\n\n {/* Day rows */}\n {rows.map((row, rowIdx) => (\n <div key={rowIdx} role=\"row\" className=\"grid grid-cols-7 gap-2\">\n {row.map((cellDate, colIdx) => {\n if (!cellDate) {\n return (\n <div\n key={`empty-${rowIdx}-${colIdx}`}\n role=\"gridcell\"\n aria-hidden=\"true\"\n className=\"h-10 w-10\"\n />\n );\n }\n\n const cellId = formatDateId(cellDate);\n const isStart = isStartDate(cellDate);\n const isEnd = isEndDate(cellDate);\n const isSameStartEnd = isSameStartAndEndDate(cellDate);\n const inRange = !isStart && !isEnd && isDateInRange(cellDate);\n const todayDate = isToday(cellDate);\n const disabled = isDateDisabled(cellDate);\n\n const { ref: cellRef, ...cellProps } = getCellProps({\n cellId,\n cellDate,\n disabled,\n ariaLabel: getCellAriaLabel(cellDate, isStart, isEnd, isSameStartEnd, singleDateSelection, inRange),\n ariaCurrent: todayDate ? 'date' : undefined,\n ariaDisabled: disabled || undefined\n });\n\n return (\n <div\n key={cellId}\n role=\"gridcell\"\n aria-selected={isStart || isEnd || undefined}\n className=\"relative h-10 w-10\"\n >\n <button\n type=\"button\"\n {...cellProps}\n ref={cellRef as React.Ref<HTMLButtonElement>}\n className={`\n datepicker-cell-button\n h-full w-full flex items-center justify-center\n rounded-md focus-outline transition-colors\n ${\n disabled ? 'cursor-not-allowed text-[var(--color-gray-600)] hover:bg-transparent' : 'cursor-pointer'\n }\n ${\n isSameStartEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isStart\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${!isStart && !isEnd && inRange ? 'bg-[var(--color-blue-100)] text-[var(--color-blue-600)] outline outline-1 outline-[var(--color-blue-500)]' : ''}\n ${!isStart && !isEnd && !inRange && !disabled ? 'hover:bg-[var(--color-blue-100)] hover:outline hover:outline-1 hover:outline-[var(--color-blue-500)]' : ''}\n ${todayDate && !isStart && !isEnd ? 'text-[var(--color-blue-500)] bg-[var(--color-blue-100)] outline outline-1 outline-[var(--color-blue-500)]' : ''}\n ${!disabled && !isStart && !isEnd && !todayDate ? 'text-[var(--color-blue-500)]' : ''}\n `}\n data-automation-id={`${automationId}-date-${cellDate.getDate()}`}\n >\n {cellDate.getDate()}\n </button>\n {!isSameStartEnd && (isStart || isEnd) && (\n <div\n aria-hidden=\"true\"\n className={`absolute top-0 bottom-0 ${isStart ? 'right-[-8px]' : 'left-[-8px]'} w-[8px]\n bg-[var(--color-blue-100)] -z-10`}\n />\n )}\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n );\n };\n\n return (\n <div\n className={`se-design-datepicker-container flex flex-col bg-[var(--color-white)] rounded-md shadow-md w-max max-w-full ${className}`}\n >\n {showHeader && (\n <div className=\"se-design-datepicker-header flex justify-between items-center border-b border-[var(--color-gray-200)] p-4\">\n <h2 className=\"datepicker-title\">{title}</h2>\n {onClose && (\n <Icon\n name=\"close\"\n size={16}\n onClick={onClose}\n className=\"cursor-pointer\"\n automationId={`${automationId}-close`}\n ariaLabel=\"Close date picker\"\n />\n )}\n </div>\n )}\n <div className=\"se-design-datepicker-content flex\">\n {showQuickActions && renderQuickActions()}\n <div className=\"flex\">\n {showSingleMonth ? (\n renderCalendar(leftMonth, true)\n ) : (\n <>\n {renderCalendar(leftMonth, true)}\n <div className=\"h-full w-[1px] border-r border-[var(--color-gray-200)]\" aria-hidden=\"true\"></div>\n {renderCalendar(rightMonth, false)}\n </>\n )}\n </div>\n </div>\n {!singleDateSelection && (\n <div className=\"se-design-datepicker-footer flex justify-end items-center gap-5 p-4 border-t border-[var(--color-gray-200)]\">\n <Button\n label={labels?.clear || 'Clear'}\n type=\"ghost\"\n onClick={handleClear}\n data-automation-id={`${automationId}-clear-button`}\n />\n <Button\n label={labels?.apply || 'Apply'}\n type=\"primary\"\n onClick={handleApply}\n data-automation-id={`${automationId}-apply-button`}\n />\n </div>\n )}\n\n </div>\n );\n};\n"],"names":["weekDays","weekDaysFull","quickActions","months","value","label","getDaysInMonth","year","month","Date","getDate","getFirstDayOfMonth","getDay","DatePicker","title","showHeader","initialStartDate","initialEndDate","onApply","onClose","shouldAllowFutureDateSelection","maxDays","disablePastDates","singleDateSelection","minYearOption","showQuickActions","showSingleMonth","className","automationId","labels","clear","apply","getDefaultDateRange","startDate","endDate","setHours","getDefaultMonths","today","lastMonth","setDate","setMonth","getMonth","selectedRange","setSelectedRange","useState","defaultMonths","leftMonth","setLeftMonth","rightMonth","setRightMonth","ensureDateInCorrectOrder","leftDate","rightDate","getTime","handleMonthChange","newDate","isLeftCalendar","newLeft","newRight","getGridCellProps","getLeftContainerProps","getRightContainerProps","useDatePickerA11y","onMonthChange","generateCalendarDays","daysInMonth","firstDay","days","i","push","day","date","isSameDay","date1","date2","getFullYear","isDateInRange","compareDate","isToday","isDateDisabled","dateToCheck","maxDate","handleDateClick","clickedDate","currentStart","handleMonthNavigation","increment","isStartDate","isEndDate","isSameStartAndEndDate","getYearOptions","currentYear","calendarYear","startYear","endYear","maxYear","Math","min","max","yearCount","Array","from","length","_","toString","filter","handleClear","getStartOfDay","getEndOfDay","handleQuickAction","action","firstDayOfWeek","lastWeekStart","lastWeekEnd","renderQuickActions","React","createElement","role","map","Button","key","type","onClick","handleApply","selectedDate","renderCalendar","yearOptions","monthHeading","toLocaleString","getGridContainerProps","gridInstructionsId","gridInstructions","getCellProps","rows","row","slice","isPrevMonthDisabled","isNextMonthDisabled","undefined","Icon","name","rotation","size","disabled","todayCheck","ariaLabel","e","stopPropagation","Dropdown","dropDownOptions","defaultSelectedValue","selectBy","optionsUniqueBy","displaySelected","firstOptionAsHeading","onOptionClick","selectedOption","findIndex","m","find","y","setFullYear","id","_extends","ariaDescribedBy","index","rowIdx","cellDate","colIdx","cellId","formatDateId","isStart","isEnd","isSameStartEnd","inRange","todayDate","ref","cellRef","cellProps","getCellAriaLabel","ariaCurrent","ariaDisabled","Fragment"],"mappings":"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"}
package/dist/index56.js CHANGED
@@ -1,166 +1,101 @@
1
- import e, { useState as p, useEffect as w } from "react";
2
- import { Icon as o } from "./index6.js";
3
- import { ProgressBar as B } from "./index41.js";
1
+ import t from "react";
2
+ import { Icon as W } from "./index6.js";
3
+ import { useStableId as j } from "./index205.js";
4
+ import { getA11yNameAttributes as q } from "./index82.js";
5
+ import "./index76.js";
4
6
  /* empty css */
5
- function m() {
6
- return m = Object.assign ? Object.assign.bind() : function(r) {
7
- for (var c = 1; c < arguments.length; c++) {
8
- var t = arguments[c];
9
- for (var n in t) ({}).hasOwnProperty.call(t, n) && (r[n] = t[n]);
10
- }
11
- return r;
12
- }, m.apply(null, arguments);
7
+ function U({
8
+ disabled: c,
9
+ error: a,
10
+ errorMessage: E,
11
+ id: N,
12
+ inputStyle: r,
13
+ label: s,
14
+ leftIcon: l,
15
+ maxLength: n,
16
+ onChange: m,
17
+ onClick: o,
18
+ onKeyDown: $,
19
+ placeholder: b,
20
+ readOnly: d,
21
+ rightIcon: u,
22
+ style: y,
23
+ tag: I,
24
+ type: k = "text",
25
+ value: p,
26
+ className: D = "",
27
+ automationId: g = "",
28
+ ariaLabel: A,
29
+ ariaLabelledBy: C,
30
+ ariaDescribedBy: K,
31
+ ariaHasPopup: R,
32
+ inputProps: _,
33
+ inputRef: x
34
+ }) {
35
+ const v = j(N, "se-input-icon"), F = I || "input", H = q({
36
+ ariaLabel: A,
37
+ ariaLabelledBy: C,
38
+ ariaDescribedBy: K
39
+ }), i = !!d && !!o, h = (e) => {
40
+ if (!e) return null;
41
+ const w = c || e.disabled, f = i || w ? void 0 : e.onClick;
42
+ return /* @__PURE__ */ t.createElement("div", {
43
+ className: `input-with-icon-icon input-with-icon-icon-${e.position} ${e.className || ""} ${w ? "disabled" : ""} ${e.disableHover ? "no-hover" : ""}`,
44
+ style: e.style
45
+ }, /* @__PURE__ */ t.createElement(W, {
46
+ name: e.name,
47
+ onClick: f,
48
+ ariaLabel: f ? e.ariaLabel : void 0
49
+ }));
50
+ }, M = (e) => {
51
+ i && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), o(e)), $?.(e);
52
+ }, S = !!l, T = !!u;
53
+ return /* @__PURE__ */ t.createElement("div", {
54
+ className: `input-with-icon-main-container ${D}`,
55
+ style: y,
56
+ "data-automation-id": g
57
+ }, s && /* @__PURE__ */ t.createElement("label", {
58
+ className: "label-container",
59
+ htmlFor: v
60
+ }, s), /* @__PURE__ */ t.createElement("div", {
61
+ className: `input-with-icon-wrapper ${S ? "has-left-icon" : ""} ${T ? "has-right-icon" : ""}`,
62
+ onClick: i ? (e) => o(e) : void 0,
63
+ style: i ? {
64
+ cursor: "pointer"
65
+ } : void 0
66
+ }, h(l), /* @__PURE__ */ t.createElement(F, {
67
+ ref: x,
68
+ id: v,
69
+ value: p,
70
+ onChange: m ? (e) => m(e.target.value) : void 0,
71
+ // In trigger mode don't attach onClick to the input — the wrapper handles it.
72
+ onClick: i ? void 0 : o,
73
+ onKeyDown: M,
74
+ disabled: c,
75
+ readOnly: d,
76
+ type: k,
77
+ className: `input-with-icon-element ${a ? "input-with-icon-container-error" : "input-with-icon-container-default"} ${c ? "input-with-icon-container-disabled" : ""}`,
78
+ maxLength: n || void 0,
79
+ placeholder: b,
80
+ // In trigger mode: pointer cursor so it matches the wrapper, and no text selection
81
+ // since the value is display-only — selecting "90 days" with a caret is misleading.
82
+ style: i ? {
83
+ cursor: "pointer",
84
+ userSelect: "none",
85
+ ...r
86
+ } : r,
87
+ "aria-haspopup": R,
88
+ ...H,
89
+ ..._
90
+ }), h(u)), (a || n) && /* @__PURE__ */ t.createElement("div", {
91
+ className: `${a ? "error-and-max-word" : "max-word-container"}`
92
+ }, a && /* @__PURE__ */ t.createElement("div", {
93
+ className: "error-message"
94
+ }, E), n && /* @__PURE__ */ t.createElement("div", {
95
+ className: "max-word"
96
+ }, n && p?.length + "/" + n)));
13
97
  }
14
- const A = ({
15
- open: r,
16
- onClose: c,
17
- title: t,
18
- description: n,
19
- position: b = "bottom-right",
20
- variant: h = "default",
21
- autoHideDuration: k = 6e3,
22
- showCloseButton: y = !0,
23
- action: i,
24
- className: C = "",
25
- style: x,
26
- showProgress: u = !1,
27
- progress: E = 0,
28
- iconProps: s,
29
- items: l,
30
- defaultExpanded: z = !1,
31
- compact: g = !1,
32
- automationId: $ = ""
33
- }) => {
34
- const [T, v] = p(!1), [I, d] = p(!1), [f, M] = p(z);
35
- w(() => {
36
- if (r && (v(!0), d(!1), k > 0)) {
37
- const a = setTimeout(() => {
38
- N();
39
- }, k);
40
- return () => clearTimeout(a);
41
- }
42
- }, [r, k]);
43
- const N = () => {
44
- d(!0), setTimeout(() => {
45
- v(!1), d(!1), c();
46
- }, 300);
47
- }, S = () => {
48
- M(!f);
49
- }, O = (a) => a.icon ? a.icon : a.type === "folder" ? "folder-empty" : (a.type === "file", "file-empty");
50
- if (!T) return null;
51
- const V = () => ({
52
- "top-right": "top-4 right-4",
53
- "top-left": "top-4 left-4",
54
- "bottom-right": "bottom-4 right-4",
55
- "bottom-left": "bottom-4 left-4",
56
- "top-center": "top-4 snackbar-center",
57
- "bottom-center": "bottom-4 snackbar-center"
58
- })[b], _ = () => ({
59
- default: "snackbar-default",
60
- success: "snackbar-success",
61
- warning: "snackbar-warning",
62
- error: "snackbar-error",
63
- info: "snackbar-info"
64
- })[h], j = () => {
65
- const a = x || {};
66
- return b === "top-center" || b === "bottom-center" ? {
67
- ...a,
68
- left: "50%",
69
- // Initial transform for center - animation will override but preserve translateX(-50%)
70
- transform: "translateX(-50%)"
71
- } : a;
72
- };
73
- return /* @__PURE__ */ e.createElement("div", {
74
- className: "snackbar-backdrop fixed inset-0 z-[1000] pointer-events-none"
75
- }, /* @__PURE__ */ e.createElement("div", {
76
- className: `
77
- snackbar-container
78
- ${V()}
79
- ${_()}
80
- ${I ? "snackbar-exit" : "snackbar-enter"}
81
- ${g ? "snackbar-compact" : ""}
82
- ${C}
83
- `,
84
- style: j(),
85
- role: "alert",
86
- "aria-live": "polite",
87
- "data-automation-id": $
88
- }, g ? (
89
- // Compact mode - simple inline notification
90
- /* @__PURE__ */ e.createElement("div", {
91
- className: "snackbar-compact-content"
92
- }, s?.name && /* @__PURE__ */ e.createElement(o, m({}, s, {
93
- size: s.size ?? 16,
94
- className: "snackbar-compact-icon"
95
- })), t && /* @__PURE__ */ e.createElement("span", {
96
- className: "snackbar-compact-title"
97
- }, t))
98
- ) : (
99
- // Full mode - standard snackbar with all features
100
- /* @__PURE__ */ e.createElement("div", {
101
- className: "snackbar-content"
102
- }, /* @__PURE__ */ e.createElement("div", {
103
- className: "snackbar-header"
104
- }, /* @__PURE__ */ e.createElement("div", {
105
- className: "snackbar-title-section"
106
- }, s?.name && /* @__PURE__ */ e.createElement(o, m({}, s, {
107
- size: s.size ?? 20,
108
- className: "snackbar-icon"
109
- })), t && /* @__PURE__ */ e.createElement("h4", {
110
- className: "snackbar-title"
111
- }, t)), /* @__PURE__ */ e.createElement("div", {
112
- className: "snackbar-header-actions"
113
- }, l && l.length > 0 && /* @__PURE__ */ e.createElement(o, {
114
- name: "chevron",
115
- size: 16,
116
- stroke: "var(--color-gray-100)",
117
- rotation: f ? "0" : "180",
118
- className: "snackbar-expand-icon",
119
- onClick: S
120
- }), y && !u && /* @__PURE__ */ e.createElement(o, {
121
- name: "close",
122
- size: 16,
123
- fill: "var(--color-gray-600)",
124
- className: "snackbar-close-icon",
125
- onClick: N
126
- }))), n && /* @__PURE__ */ e.createElement("div", {
127
- className: "snackbar-description"
128
- }, n), u && /* @__PURE__ */ e.createElement("div", {
129
- className: "snackbar-progress-container"
130
- }, E === -1 ? /* @__PURE__ */ e.createElement("div", {
131
- className: "snackbar-indeterminate-progress"
132
- }, /* @__PURE__ */ e.createElement("div", {
133
- className: "snackbar-progress-gradient"
134
- })) : /* @__PURE__ */ e.createElement(B, {
135
- totalTasks: 100,
136
- completedTasks: E,
137
- needPercentageCompleted: !1,
138
- progressBarColor: "var(--color-green-500)"
139
- })), l && l.length > 0 && /* @__PURE__ */ e.createElement("div", {
140
- className: `snackbar-items-container ${f ? "snackbar-items-expanded" : "snackbar-items-collapsed"}`
141
- }, /* @__PURE__ */ e.createElement("div", {
142
- className: "snackbar-items-list"
143
- }, l.map((a) => /* @__PURE__ */ e.createElement("div", {
144
- key: a.id,
145
- className: "snackbar-item",
146
- onClick: a.onClick
147
- }, /* @__PURE__ */ e.createElement("div", {
148
- className: "snackbar-item-content"
149
- }, /* @__PURE__ */ e.createElement(o, {
150
- name: O(a),
151
- size: 16,
152
- className: "snackbar-item-icon"
153
- }), /* @__PURE__ */ e.createElement("span", {
154
- className: "snackbar-item-name"
155
- }, a.name)))))), i && /* @__PURE__ */ e.createElement("div", {
156
- className: "snackbar-actions"
157
- }, /* @__PURE__ */ e.createElement("button", {
158
- className: `snackbar-action-button snackbar-action-${i.variant || "primary"}`,
159
- onClick: i.onClick
160
- }, i.label)))
161
- )));
162
- };
163
98
  export {
164
- A as Snackbar
99
+ U as InputWithIcon
165
100
  };
166
101
  //# sourceMappingURL=index56.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index56.js","sources":["../src/components/SnackBar/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Icon, IconProps } from '../Icon';\nimport { ProgressBar } from '../ProgressBar';\nimport './style.scss';\n\nexport type SnackbarPosition =\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n | 'top-center'\n | 'bottom-center';\n\nexport type SnackbarVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n\nexport type SnackbarAction = {\n label: string;\n onClick: () => void;\n variant?: 'primary' | 'secondary';\n};\n\nexport type SnackbarItem = {\n id: string | number;\n name: string;\n type: 'file' | 'folder';\n fileType?: 'doc' | 'pdf' | 'image' | 'other';\n icon?: string;\n onClick?: () => void;\n};\n\nexport interface SnackbarProps {\n /** Whether the snackbar is open */\n open: boolean;\n /** Function to close the snackbar */\n onClose: () => void;\n /** Title text displayed prominently */\n title?: string;\n /** Description text displayed below title */\n description?: string;\n /** Position of the snackbar on screen */\n position?: SnackbarPosition;\n /** Visual variant of the snackbar */\n variant?: SnackbarVariant;\n /** Auto-hide duration in milliseconds (0 = no auto-hide) */\n autoHideDuration?: number;\n /** Whether to show close button */\n showCloseButton?: boolean;\n /** Optional action button */\n action?: SnackbarAction;\n /** Custom className for additional styling */\n className?: string;\n /** Custom styles */\n style?: React.CSSProperties;\n /** Whether to show progress indicator */\n showProgress?: boolean;\n /** Progress value (0-100) */\n progress?: number;\n /** Icon props object (name, fill, stroke, rotation, size, etc.) */\n iconProps?: Omit<IconProps, 'className'>;\n /** List of items to display in expandable section */\n items?: SnackbarItem[];\n /** Whether items list is expanded by default */\n defaultExpanded?: boolean;\n /** Compact mode - renders a simple inline notification with just icon and title */\n compact?: boolean;\n /** Automation ID for testing */\n automationId?: string;\n}\n\nexport const Snackbar: React.FC<SnackbarProps> = ({\n open,\n onClose,\n title,\n description,\n position = 'bottom-right',\n variant = 'default',\n autoHideDuration = 6000,\n showCloseButton = true,\n action,\n className = '',\n style,\n showProgress = false,\n progress = 0,\n iconProps,\n items,\n defaultExpanded = false,\n compact = false,\n automationId = ''\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isExiting, setIsExiting] = useState(false);\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\n\n useEffect(() => {\n if (open) {\n setIsVisible(true);\n setIsExiting(false);\n\n // Auto-hide functionality\n if (autoHideDuration > 0) {\n const timer = setTimeout(() => {\n handleClose();\n }, autoHideDuration);\n\n return () => clearTimeout(timer);\n }\n }\n }, [open, autoHideDuration]);\n\n const handleClose = () => {\n setIsExiting(true);\n setTimeout(() => {\n setIsVisible(false);\n setIsExiting(false);\n onClose();\n }, 300); // Animation duration\n };\n\n const handleToggleExpanded = () => {\n setIsExpanded(!isExpanded);\n };\n\n const getFileIcon = (item: SnackbarItem) => {\n if (item.icon) return item.icon;\n\n if (item.type === 'folder') return 'folder-empty';\n if (item.type === 'file') return 'file-empty';\n\n return 'file-empty';\n\n // switch (item.fileType) {\n // case 'doc':\n // return 'docFile';\n // case 'pdf':\n // return 'pdf-file';\n // case 'image':\n // return 'file-empty';\n // default:\n // return 'file-empty';\n // }\n };\n\n if (!isVisible) return null;\n\n const getPositionClasses = () => {\n const positionMap = {\n 'top-right': 'top-4 right-4',\n 'top-left': 'top-4 left-4',\n 'bottom-right': 'bottom-4 right-4',\n 'bottom-left': 'bottom-4 left-4',\n 'top-center': 'top-4 snackbar-center',\n 'bottom-center': 'bottom-4 snackbar-center'\n };\n return positionMap[position];\n };\n\n const getVariantClasses = () => {\n const variantMap = {\n default: 'snackbar-default',\n success: 'snackbar-success',\n warning: 'snackbar-warning',\n error: 'snackbar-error',\n info: 'snackbar-info'\n };\n return variantMap[variant];\n };\n\n const getContainerStyle = (): React.CSSProperties => {\n const baseStyle = style || {};\n\n if (position === 'top-center' || position === 'bottom-center') {\n return {\n ...baseStyle,\n left: '50%',\n // Initial transform for center - animation will override but preserve translateX(-50%)\n transform: 'translateX(-50%)'\n };\n }\n\n return baseStyle;\n };\n\n return (\n <div className=\"snackbar-backdrop fixed inset-0 z-[1000] pointer-events-none\">\n <div\n className={`\n snackbar-container\n ${getPositionClasses()}\n ${getVariantClasses()}\n ${isExiting ? 'snackbar-exit' : 'snackbar-enter'}\n ${compact ? 'snackbar-compact' : ''}\n ${className}\n `}\n style={getContainerStyle()}\n role=\"alert\"\n aria-live=\"polite\"\n data-automation-id={automationId}\n >\n {compact ? (\n // Compact mode - simple inline notification\n <div className=\"snackbar-compact-content\">\n {iconProps?.name && <Icon {...iconProps} size={iconProps.size ?? 16} className=\"snackbar-compact-icon\" />}\n {title && <span className=\"snackbar-compact-title\">{title}</span>}\n </div>\n ) : (\n // Full mode - standard snackbar with all features\n <div className=\"snackbar-content\">\n {/* Header with icon, title, expand/collapse, and close button */}\n <div className=\"snackbar-header\">\n <div className=\"snackbar-title-section\">\n {iconProps?.name && <Icon {...iconProps} size={iconProps.size ?? 20} className=\"snackbar-icon\" />}\n {title && <h4 className=\"snackbar-title\">{title}</h4>}\n </div>\n <div className=\"snackbar-header-actions\">\n {items && items.length > 0 && (\n <Icon\n name=\"chevron\"\n size={16}\n stroke=\"var(--color-gray-100)\"\n rotation={isExpanded ? '0' : '180'}\n className=\"snackbar-expand-icon\"\n onClick={handleToggleExpanded}\n />\n )}\n {showCloseButton && !showProgress && (\n <Icon\n name=\"close\"\n size={16}\n fill=\"var(--color-gray-600)\"\n className=\"snackbar-close-icon\"\n onClick={handleClose}\n />\n )}\n </div>\n </div>\n\n {/* Description */}\n {description && <div className=\"snackbar-description\">{description}</div>}\n\n {/* Progress bar */}\n {showProgress && (\n <div className=\"snackbar-progress-container\">\n {progress === -1 ? (\n <div className=\"snackbar-indeterminate-progress\">\n <div className=\"snackbar-progress-gradient\"></div>\n </div>\n ) : (\n <ProgressBar\n totalTasks={100}\n completedTasks={progress}\n needPercentageCompleted={false}\n progressBarColor=\"var(--color-green-500)\"\n />\n )}\n </div>\n )}\n\n {/* Expandable Items List */}\n {items && items.length > 0 && (\n <div\n className={`snackbar-items-container ${\n isExpanded ? 'snackbar-items-expanded' : 'snackbar-items-collapsed'\n }`}\n >\n <div className=\"snackbar-items-list\">\n {items.map((item) => (\n <div key={item.id} className=\"snackbar-item\" onClick={item.onClick}>\n <div className=\"snackbar-item-content\">\n <Icon name={getFileIcon(item)} size={16} className=\"snackbar-item-icon\" />\n <span className=\"snackbar-item-name\">{item.name}</span>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Action button */}\n {action && (\n <div className=\"snackbar-actions\">\n <button\n className={`snackbar-action-button snackbar-action-${action.variant || 'primary'}`}\n onClick={action.onClick}\n >\n {action.label}\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["Snackbar","open","onClose","title","description","position","variant","autoHideDuration","showCloseButton","action","className","style","showProgress","progress","iconProps","items","defaultExpanded","compact","automationId","isVisible","setIsVisible","useState","isExiting","setIsExiting","isExpanded","setIsExpanded","useEffect","timer","setTimeout","handleClose","clearTimeout","handleToggleExpanded","getFileIcon","item","icon","type","getPositionClasses","getVariantClasses","default","success","warning","error","info","getContainerStyle","baseStyle","left","transform","React","createElement","role","name","Icon","_extends","size","length","stroke","rotation","onClick","fill","ProgressBar","totalTasks","completedTasks","needPercentageCompleted","progressBarColor","map","key","id","label"],"mappings":"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"}
1
+ {"version":3,"file":"index56.js","sources":["../src/components/InputWithIcon/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Icon } from '../Icon';\nimport { useStableId } from '../../utils/useStableId';\nimport { getA11yNameAttributes } from '../../utils/a11y';\nimport './styles.scss';\n\nexport interface InputIconProps {\n className?: string;\n disabled?: boolean;\n disableHover?: boolean;\n name: string;\n onClick?: () => void;\n position: 'left' | 'right';\n style?: React.CSSProperties;\n /**\n * Accessible name for the icon when it is interactive (onClick provided).\n * Required for a11y when the icon has its own onClick.\n */\n ariaLabel?: string;\n}\n\nexport interface InputWithIconProps {\n disabled?: boolean;\n error?: boolean;\n errorMessage?: string;\n id?: string;\n inputStyle?: React.CSSProperties;\n label?: string;\n leftIcon?: InputIconProps;\n maxLength?: number | undefined;\n onChange?: (value: string) => void;\n onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n placeholder?: string;\n readOnly?: boolean;\n rightIcon?: InputIconProps;\n style?: React.CSSProperties;\n tag?: string;\n type?: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';\n value: string;\n className?: string;\n automationId?: string;\n /**\n * Accessible name when no visible label exists.\n * Prefer a visible label prop instead where possible.\n */\n ariaLabel?: string;\n /**\n * ID(s) of external visible element(s) that label this input.\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) that describe this input (hints, notes, constraints).\n * Announced by screen readers after the label and value, giving extra context.\n */\n ariaDescribedBy?: string;\n /**\n * Set to \"dialog\" when this input opens a date picker or other dialog.\n */\n ariaHasPopup?: 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n /**\n * Additional props spread directly onto the inner <input> element.\n */\n inputProps?: Record<string, any>;\n /**\n * Ref forwarded to the inner <input> element.\n */\n inputRef?: React.Ref<HTMLInputElement>;\n}\n\nexport function InputWithIcon({\n disabled,\n error,\n errorMessage,\n id,\n inputStyle,\n label,\n leftIcon,\n maxLength,\n onChange,\n onClick,\n onKeyDown,\n placeholder,\n readOnly,\n rightIcon,\n style,\n tag,\n type = 'text',\n value,\n className = '',\n automationId = '',\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy,\n ariaHasPopup,\n inputProps,\n inputRef\n}: InputWithIconProps) {\n const inputId = useStableId(id, 'se-input-icon');\n const Element = tag || 'input';\n\n const accessibleNameProps = getA11yNameAttributes({ ariaLabel, ariaLabelledBy, ariaDescribedBy });\n\n // Trigger mode: readOnly + onClick means the whole widget acts as one interactive element\n // (e.g. a date picker trigger). ONE tab stop — the input — and the icon is always decorative.\n // The wrapper div becomes the unified mouse click zone so clicking anywhere, including the\n // icon area, fires the action without a second focusable element.\n //\n // Non-trigger mode: normal editable input. If an icon has its own onClick it is an independent\n // action (e.g. show/hide password) and becomes its own accessible button via Icon's useAccessiblePress.\n const isTriggerMode = !!readOnly && !!onClick;\n\n const renderIcon = (iconProps: InputIconProps) => {\n if (!iconProps) return null;\n\n const isIconDisabled = disabled || iconProps.disabled;\n // In trigger mode icon is always decorative — the wrapper is the click zone for the whole widget.\n // In non-trigger mode pass onClick to Icon so it uses useAccessiblePress:\n // role=\"button\", tabIndex=0, Enter/Space, focus-outline. Decorative when no onClick.\n const iconOnClick = isTriggerMode || isIconDisabled ? undefined : iconProps.onClick;\n\n return (\n <div\n className={`input-with-icon-icon input-with-icon-icon-${iconProps.position} ${iconProps.className || ''} ${isIconDisabled ? 'disabled' : ''} ${iconProps.disableHover ? 'no-hover' : ''}`}\n style={iconProps.style}\n >\n <Icon\n name={iconProps.name}\n onClick={iconOnClick}\n ariaLabel={iconOnClick ? iconProps.ariaLabel : undefined}\n />\n </div>\n );\n };\n\n // In trigger mode Enter/Space on the focused input fires the action, same as a button would.\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (isTriggerMode && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onClick!(e as any);\n }\n onKeyDown?.(e);\n };\n\n const hasLeftIcon = !!leftIcon;\n const hasRightIcon = !!rightIcon;\n\n return (\n <div className={`input-with-icon-main-container ${className}`} style={style} data-automation-id={automationId}>\n {label && <label className=\"label-container\" htmlFor={inputId}>{label}</label>}\n <div\n className={`input-with-icon-wrapper ${hasLeftIcon ? 'has-left-icon' : ''} ${hasRightIcon ? 'has-right-icon' : ''}`}\n // In trigger mode the wrapper is the unified mouse click zone — clicking anywhere in the\n // widget (including the icon area) fires the action. Don't also put onClick on the input\n // element or it would double-fire when the input itself is clicked.\n onClick={isTriggerMode ? (e) => onClick!(e as any) : undefined}\n style={isTriggerMode ? { cursor: 'pointer' } : undefined}\n >\n {renderIcon(leftIcon!)}\n {React.createElement(Element, {\n ref: inputRef,\n id: inputId,\n value,\n onChange: onChange\n ? (e: React.ChangeEvent<HTMLInputElement>) => onChange(e.target.value)\n : undefined,\n // In trigger mode don't attach onClick to the input — the wrapper handles it.\n onClick: isTriggerMode ? undefined : onClick,\n onKeyDown: handleKeyDown,\n disabled,\n readOnly,\n type,\n className: `input-with-icon-element ${error ? 'input-with-icon-container-error' : 'input-with-icon-container-default'} ${disabled ? 'input-with-icon-container-disabled' : ''}`,\n maxLength: maxLength ? maxLength : undefined,\n placeholder: placeholder,\n // In trigger mode: pointer cursor so it matches the wrapper, and no text selection\n // since the value is display-only — selecting \"90 days\" with a caret is misleading.\n style: isTriggerMode\n ? { cursor: 'pointer', userSelect: 'none', ...inputStyle }\n : inputStyle,\n 'aria-haspopup': ariaHasPopup,\n ...accessibleNameProps,\n ...inputProps\n })}\n {renderIcon(rightIcon!)}\n </div>\n {(error || maxLength) &&\n <div className={`${error ? 'error-and-max-word' : 'max-word-container'}`}>\n {error && <div className=\"error-message\">{errorMessage}</div>}\n {maxLength && <div className=\"max-word\">{maxLength && value?.length + '/' + maxLength}</div>}\n </div>\n }\n </div>\n );\n}\n"],"names":["React__default","Icon","useStableId","getA11yNameAttributes","InputWithIcon","disabled","error","errorMessage","id","inputStyle","label","leftIcon","maxLength","onChange","onClick","onKeyDown","placeholder","readOnly","rightIcon","style","tag","type","value","className","automationId","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaHasPopup","inputProps","inputRef","inputId","Element","accessibleNameProps","isTriggerMode","renderIcon","iconProps","isIconDisabled","iconOnClick","undefined","React","createElement","position","disableHover","name","handleKeyDown","e","key","preventDefault","hasLeftIcon","hasRightIcon","htmlFor","cursor","ref","target","userSelect","length"],"mappings":"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"}