se-design 1.0.90-dev.0 → 1.0.90
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.
- package/dist/assets/style.css +1 -1
- package/dist/components/AnchoredOverlay/index.d.ts +41 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/index.js +132 -130
- package/dist/index.js.map +1 -1
- package/dist/index100.js +1 -1
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +1 -1
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +1 -1
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +1 -1
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +1 -1
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +1 -1
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +1 -1
- package/dist/index106.js.map +1 -1
- package/dist/index107.js +1 -1
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +1 -1
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +1 -1
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +1 -1
- package/dist/index110.js +1 -1
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +1 -1
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +1 -1
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +1 -1
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +2 -2
- package/dist/index114.js.map +1 -1
- package/dist/index115.js +1 -1
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +2 -2
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +1 -1
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +1 -1
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +2 -2
- package/dist/index119.js.map +1 -1
- package/dist/index12.js +3 -3
- package/dist/index120.js +1 -1
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +2 -2
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +1 -1
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +1 -1
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +1 -1
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +1 -1
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +2 -2
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +1 -1
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +2 -2
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +2 -2
- package/dist/index129.js.map +1 -1
- package/dist/index13.js +3 -3
- package/dist/index130.js +1 -1
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +2 -2
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +2 -2
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +1 -1
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +1 -1
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +1 -1
- package/dist/index135.js.map +1 -1
- package/dist/index136.js +2 -2
- package/dist/index136.js.map +1 -1
- package/dist/index137.js +2 -2
- package/dist/index137.js.map +1 -1
- package/dist/index138.js +2 -2
- package/dist/index138.js.map +1 -1
- package/dist/index139.js +1 -1
- package/dist/index139.js.map +1 -1
- package/dist/index140.js +1 -1
- package/dist/index140.js.map +1 -1
- package/dist/index141.js +1 -1
- package/dist/index141.js.map +1 -1
- package/dist/index142.js +1 -1
- package/dist/index142.js.map +1 -1
- package/dist/index143.js +1 -1
- package/dist/index143.js.map +1 -1
- package/dist/index144.js +1 -1
- package/dist/index144.js.map +1 -1
- package/dist/index145.js +1 -1
- package/dist/index145.js.map +1 -1
- package/dist/index146.js +1 -1
- package/dist/index146.js.map +1 -1
- package/dist/index147.js +2 -2
- package/dist/index147.js.map +1 -1
- package/dist/index148.js +2 -2
- package/dist/index148.js.map +1 -1
- package/dist/index149.js +1 -1
- package/dist/index149.js.map +1 -1
- package/dist/index150.js +1 -1
- package/dist/index150.js.map +1 -1
- package/dist/index151.js +1 -1
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +1 -1
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +1 -1
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +1 -1
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +1 -1
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +2 -2
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +1 -1
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +2 -2
- package/dist/index158.js.map +1 -1
- package/dist/index159.js +2 -2
- package/dist/index159.js.map +1 -1
- package/dist/index16.js +3 -3
- package/dist/index160.js +2 -2
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +2 -2
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +1 -1
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +1 -1
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +1 -1
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +1 -1
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +1 -1
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +1 -1
- package/dist/index167.js.map +1 -1
- package/dist/index168.js +1 -1
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +1 -1
- package/dist/index169.js.map +1 -1
- package/dist/index170.js +1 -1
- package/dist/index170.js.map +1 -1
- package/dist/index171.js +1 -1
- package/dist/index171.js.map +1 -1
- package/dist/index172.js +1 -1
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +1 -1
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +1 -1
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +1 -1
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +1 -1
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +1 -1
- package/dist/index177.js.map +1 -1
- package/dist/index178.js +1 -1
- package/dist/index178.js.map +1 -1
- package/dist/index179.js +1 -1
- package/dist/index179.js.map +1 -1
- package/dist/index18.js +3 -3
- package/dist/index180.js +1 -1
- package/dist/index180.js.map +1 -1
- package/dist/index181.js +1 -1
- package/dist/index181.js.map +1 -1
- package/dist/index182.js +1 -1
- package/dist/index182.js.map +1 -1
- package/dist/index183.js +1 -1
- package/dist/index183.js.map +1 -1
- package/dist/index184.js +1 -1
- package/dist/index184.js.map +1 -1
- package/dist/index185.js +1 -1
- package/dist/index185.js.map +1 -1
- package/dist/index186.js +2 -2
- package/dist/index186.js.map +1 -1
- package/dist/index187.js +2 -2
- package/dist/index187.js.map +1 -1
- package/dist/index188.js +1 -1
- package/dist/index188.js.map +1 -1
- package/dist/index189.js +1 -1
- package/dist/index189.js.map +1 -1
- package/dist/index19.js +5 -5
- package/dist/index190.js +2 -2
- package/dist/index190.js.map +1 -1
- package/dist/index191.js +2 -2
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +1 -1
- package/dist/index192.js.map +1 -1
- package/dist/index193.js +1 -1
- package/dist/index193.js.map +1 -1
- package/dist/index194.js +1 -1
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +1 -1
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +1 -1
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +1 -1
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +1 -1
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +1 -1
- package/dist/index199.js.map +1 -1
- package/dist/index20.js +96 -18
- package/dist/index20.js.map +1 -1
- package/dist/index200.js +1 -1
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +2 -2
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +2 -2
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +2 -2
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +2 -149
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +149 -9
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +8 -5
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +5 -42
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +40 -18
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +24 -0
- package/dist/index209.js.map +1 -0
- package/dist/index21.js +17 -32
- package/dist/index21.js.map +1 -1
- package/dist/index216.js +24 -68
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +75 -0
- package/dist/index217.js.map +1 -0
- package/dist/index22.js +33 -66
- package/dist/index22.js.map +1 -1
- package/dist/{index223.js → index224.js} +1 -1
- package/dist/{index223.js.map → index224.js.map} +1 -1
- package/dist/{index225.js → index226.js} +1 -1
- package/dist/{index225.js.map → index226.js.map} +1 -1
- package/dist/index23.js +62 -83
- package/dist/index23.js.map +1 -1
- package/dist/{index233.js → index234.js} +1 -1
- package/dist/{index233.js.map → index234.js.map} +1 -1
- package/dist/{index236.js → index237.js} +1 -1
- package/dist/{index236.js.map → index237.js.map} +1 -1
- package/dist/index24.js +85 -21
- package/dist/index24.js.map +1 -1
- package/dist/index246.js +169 -3
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +7 -0
- package/dist/index247.js.map +1 -0
- package/dist/index249.js +18 -9
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +19 -401
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +9 -9
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +9 -4
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +5 -170
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +170 -11
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +11 -6
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +5 -5
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +5 -37
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +38 -2
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +2 -8
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +7 -326
- package/dist/index259.js.map +1 -1
- package/dist/index26.js +400 -44
- package/dist/index26.js.map +1 -1
- package/dist/index260.js +324 -47
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +50 -2
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +2 -76
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +65 -82
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +89 -48
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +51 -7
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +7 -4
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +4 -51
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +52 -2
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +2 -2
- package/dist/index27.js +48 -23
- package/dist/index27.js.map +1 -1
- package/dist/index270.js +5 -0
- package/dist/index270.js.map +1 -0
- package/dist/index28.js +21 -108
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +107 -147
- package/dist/index29.js.map +1 -1
- package/dist/index3.js +3 -3
- package/dist/index30.js +146 -132
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +136 -76
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +73 -94
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +95 -73
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +72 -38
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +40 -72
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +68 -94
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +98 -77
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +75 -311
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +313 -75
- package/dist/index39.js.map +1 -1
- package/dist/index4.js +4 -4
- package/dist/index40.js +72 -79
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +82 -32
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +26 -43
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +48 -109
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +104 -50
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +53 -142
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +137 -188
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +195 -35
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +34 -32
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +34 -147
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +130 -67
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +78 -453
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +459 -96
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +98 -43
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +40 -35
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +33 -87
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +88 -159
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +157 -143
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +149 -33
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +33 -86
- package/dist/index59.js.map +1 -1
- package/dist/index6.js +125 -125
- package/dist/index60.js +80 -113
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +114 -73
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +73 -147
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +146 -312
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +317 -46
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +45 -142
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +144 -12
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +10 -53
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +52 -110
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +111 -17
- package/dist/index69.js.map +1 -1
- package/dist/index7.js +2 -2
- package/dist/index70.js +17 -64
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +64 -25
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +24 -105
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +104 -58
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +60 -19
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +18 -168
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +171 -18
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +17 -10
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +11 -5
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +5 -62
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +58 -23
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +25 -9
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +14 -0
- package/dist/index82.js.map +1 -0
- package/dist/index84.js +2 -2
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +2 -2
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +2 -2
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +2 -2
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +1 -1
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +1 -1
- package/dist/index89.js.map +1 -1
- package/dist/index9.js +4 -4
- package/dist/index90.js +1 -1
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +1 -1
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +1 -1
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +1 -1
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +1 -1
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +1 -1
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +1 -1
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +1 -1
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +1 -1
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +1 -1
- package/dist/index99.js.map +1 -1
- package/package.json +1 -1
- package/dist/index215.js +0 -31
- package/dist/index215.js.map +0 -1
- package/dist/index245.js +0 -173
- package/dist/index245.js.map +0 -1
- package/dist/index248.js +0 -22
- package/dist/index248.js.map +0 -1
- package/dist/index83.js +0 -5
- package/dist/index83.js.map +0 -1
package/dist/index51.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index51.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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"}
|
|
1
|
+
{"version":3,"file":"index51.js","sources":["../src/components/BreadCrumbs/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Icon } from '../Icon';\nimport { Popover } from '../Popover';\nimport { MenuList } from '../MenuList';\n\nimport './style.scss';\n\ninterface Crumb {\n id: string | number;\n label: string;\n href?: string;\n automationId?: string;\n}\n\nconst breadCrumbsClassNames = {\n container: 'se-design-breadcrumbs flex items-center',\n itemLabel: 'se-design-breadcrumbs-item-label inline-flex items-center w-fit',\n};\n\ninterface BreadCrumbsProps {\n crumbs: Crumb[];\n onCrumbClick?: (crumb: Crumb) => void;\n className?: any;\n /** Accessible name for the breadcrumb navigation landmark. Defaults to \"Breadcrumb\". */\n ariaLabel?: string;\n /** Heading level to use when only a single crumb is provided. Defaults to 1. */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n}\n\nexport const BreadCrumbs: React.FC<BreadCrumbsProps> = ({ crumbs, onCrumbClick, className = '', ariaLabel = 'Breadcrumb', headingLevel = 1 }) => {\n const isSingleCrumb = crumbs?.length === 1;\n\n if (isSingleCrumb) {\n const HeadingTag = `h${headingLevel}` as React.ElementType;\n return (\n <div className={`${breadCrumbsClassNames.container} ${className}`} data-automation-id=\"breadcrumbs-container\">\n <HeadingTag className={`${breadCrumbsClassNames.itemLabel} single-crumb`}>\n {crumbs[0].label}\n </HeadingTag>\n </div>\n );\n }\n\n const shouldShowDropdown = crumbs?.length > 3;\n const visibleCrumbs = shouldShowDropdown ? crumbs?.slice(-2) : crumbs;\n const dropdownCrumbs = shouldShowDropdown ? crumbs?.slice(0, -2) : [];\n\n const isCurrentPage = (index: number) => index === visibleCrumbs?.length - 1;\n\n const getLabelClassNames = (index: number) => {\n if (isCurrentPage(index)) {\n return `${breadCrumbsClassNames.itemLabel} highlighted-crumb`;\n }\n return `${breadCrumbsClassNames.itemLabel} unhighlighted-crumb`;\n };\n\n return (\n <nav className={`${breadCrumbsClassNames.container} ${className}`} aria-label={ariaLabel} data-automation-id=\"breadcrumbs-container\">\n {dropdownCrumbs?.length > 0 && (\n <Popover\n className=\"se-design-overflow-breadcrumbs\"\n position=\"bottom-left\"\n noBorder\n ariaLabel=\"Show more breadcrumbs\"\n renderPopoverSrcElement={({ displayPopover }) => {\n return (\n <div\n className={`overflow-breadcrumbs-src-element px-1.5 py-1.5 rounded-md hover:cursor-pointer ${\n displayPopover ? 'bg-[var(--color-blue-200)]' : ''\n }`}\n data-automation-id=\"breadcrumbs-kebab-menu\"\n >\n <Icon name=\"kebab-menu\" />\n </div>\n );\n }}\n renderPopoverContents={({ closePopoverCb }) => (\n <MenuList\n items={dropdownCrumbs.map((crumb) => ({\n id: String(crumb?.id),\n label: crumb?.label,\n onClick: () => {\n onCrumbClick?.(crumb);\n closePopoverCb();\n }\n }))}\n />\n )}\n />\n )}\n <ol className=\"se-design-breadcrumbs-list inline-flex items-center\">\n {visibleCrumbs?.map((crumb, index) => {\n const Tag = isCurrentPage(index) ? 'span' : 'a';// current page should not be clickable\n return (\n <li key={crumb?.id} className=\"se-design-breadcrumbs-item inline-flex items-center w-fit text-xl\">\n {(index > 0 || shouldShowDropdown) && <Icon name=\"chevron\" rotation={'270'} />}\n <Tag\n {...(isCurrentPage(index)\n ? { 'aria-current': 'page' as const }\n : {\n href: crumb.href ?? '#',\n onClick: (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (!crumb.href) e.preventDefault();\n onCrumbClick?.(crumb);\n }\n })}\n className={`${getLabelClassNames(index)}${!isCurrentPage(index) ? ' cursor-pointer focus-outline' : ''}`}\n data-automation-id={crumb?.automationId || `breadcrumbs-item-${index}`}\n >\n {crumb?.label}\n </Tag>\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"names":["breadCrumbsClassNames","container","itemLabel","BreadCrumbs","crumbs","onCrumbClick","className","ariaLabel","headingLevel","length","HeadingTag","React","createElement","label","shouldShowDropdown","visibleCrumbs","slice","dropdownCrumbs","isCurrentPage","index","getLabelClassNames","Popover","position","noBorder","renderPopoverSrcElement","displayPopover","Icon","name","renderPopoverContents","closePopoverCb","MenuList","items","map","crumb","id","String","onClick","Tag","key","rotation","_extends","href","e","preventDefault","automationId"],"mappings":"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"}
|