@lumx/react 3.20.1-alpha.11 → 3.20.1-alpha.12
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/_internal/{8fcceef3.js → 0420e67b.js} +13 -14
- package/_internal/{8fcceef3.js.map → 0420e67b.js.map} +1 -1
- package/_internal/{7b214f74.js → 0a490b07.js} +29 -24
- package/_internal/{7b214f74.js.map → 0a490b07.js.map} +1 -1
- package/_internal/{4d92e13b.js → 0be1006e.js} +25 -25
- package/_internal/{4d92e13b.js.map → 0be1006e.js.map} +1 -1
- package/_internal/{dd0a245d.js → 0d1a078c.js} +44 -42
- package/_internal/{dd0a245d.js.map → 0d1a078c.js.map} +1 -1
- package/_internal/{1eab656b.js → 15eab19b.js} +25 -25
- package/_internal/{1eab656b.js.map → 15eab19b.js.map} +1 -1
- package/_internal/{87bada02.js → 179a84d1.js} +64 -67
- package/_internal/{87bada02.js.map → 179a84d1.js.map} +1 -1
- package/_internal/{4c5a7b63.js → 193521fa.js} +11 -12
- package/_internal/{4c5a7b63.js.map → 193521fa.js.map} +1 -1
- package/_internal/{f57d4eb8.js → 1a90ea3d.js} +15 -17
- package/_internal/{f57d4eb8.js.map → 1a90ea3d.js.map} +1 -1
- package/_internal/1deba7d7.js +224 -0
- package/_internal/{2d6bde7d.js.map → 1deba7d7.js.map} +1 -1
- package/_internal/{2938a251.js → 1ea72630.js} +16 -17
- package/_internal/{2938a251.js.map → 1ea72630.js.map} +1 -1
- package/_internal/21b83d16.js +137 -0
- package/_internal/{5ba8fae8.js.map → 21b83d16.js.map} +1 -1
- package/_internal/297bed8f.js +457 -0
- package/_internal/{e53b5a39.js.map → 297bed8f.js.map} +1 -1
- package/_internal/{432c85a7.js → 2c2b6a89.js} +9 -7
- package/_internal/{432c85a7.js.map → 2c2b6a89.js.map} +1 -1
- package/_internal/{bba7d4c4.js → 2f1716fa.js} +75 -63
- package/_internal/{bba7d4c4.js.map → 2f1716fa.js.map} +1 -1
- package/_internal/{2c7942af.js → 2f6c7f84.js} +16 -21
- package/_internal/{2c7942af.js.map → 2f6c7f84.js.map} +1 -1
- package/_internal/{64046d7a.js → 329b5f12.js} +10 -12
- package/_internal/{64046d7a.js.map → 329b5f12.js.map} +1 -1
- package/_internal/332e9844.js +2 -0
- package/_internal/332e9844.js.map +1 -0
- package/_internal/{85d992d2.js → 34c59f5b.js} +101 -98
- package/_internal/{85d992d2.js.map → 34c59f5b.js.map} +1 -1
- package/_internal/{30f4c83c.js → 370bdaed.js} +7 -5
- package/_internal/{30f4c83c.js.map → 370bdaed.js.map} +1 -1
- package/_internal/{7c4f4643.js → 37b007a4.js} +2 -2
- package/_internal/{7c4f4643.js.map → 37b007a4.js.map} +1 -1
- package/_internal/{07e0bd90.js → 3a4e4636.js} +51 -36
- package/_internal/{07e0bd90.js.map → 3a4e4636.js.map} +1 -1
- package/_internal/{3683d267.js → 3e653144.js} +8 -11
- package/_internal/{3683d267.js.map → 3e653144.js.map} +1 -1
- package/_internal/{c43d098b.js → 3f86608e.js} +5 -2
- package/_internal/{c43d098b.js.map → 3f86608e.js.map} +1 -1
- package/_internal/{b3bfbe72.js → 478b5c92.js} +2 -2
- package/_internal/{b3bfbe72.js.map → 478b5c92.js.map} +1 -1
- package/_internal/4962be5b.js +121 -0
- package/_internal/{70cf341b.js.map → 4962be5b.js.map} +1 -1
- package/_internal/{407735b4.js → 4cd870a5.js} +2 -2
- package/_internal/{407735b4.js.map → 4cd870a5.js.map} +1 -1
- package/_internal/{e4613195.js → 501f2f9f.js} +8 -9
- package/_internal/{e4613195.js.map → 501f2f9f.js.map} +1 -1
- package/_internal/5e7b90e2.js +2 -0
- package/_internal/5e7b90e2.js.map +1 -0
- package/_internal/{18334f0d.js → 5ec059fe.js} +48 -43
- package/_internal/{18334f0d.js.map → 5ec059fe.js.map} +1 -1
- package/_internal/{fc47f2da.js → 5f8f9454.js} +10 -12
- package/_internal/{fc47f2da.js.map → 5f8f9454.js.map} +1 -1
- package/_internal/{3f3de25e.js → 5fe09341.js} +3 -3
- package/_internal/{3f3de25e.js.map → 5fe09341.js.map} +1 -1
- package/_internal/{714809cc.js → 628468c4.js} +47 -46
- package/_internal/{714809cc.js.map → 628468c4.js.map} +1 -1
- package/_internal/{d3321a86.js → 6589b796.js} +2 -12
- package/_internal/{d3321a86.js.map → 6589b796.js.map} +1 -1
- package/_internal/{2368cb68.js → 65f91970.js} +43 -43
- package/_internal/{2368cb68.js.map → 65f91970.js.map} +1 -1
- package/_internal/66f691d3.js +74 -0
- package/_internal/{1921f348.js.map → 66f691d3.js.map} +1 -1
- package/_internal/{bdd41804.js → 68c10f98.js} +50 -41
- package/_internal/{bdd41804.js.map → 68c10f98.js.map} +1 -1
- package/_internal/{9cfa3e10.js → 690ca33e.js} +36 -35
- package/_internal/{9cfa3e10.js.map → 690ca33e.js.map} +1 -1
- package/_internal/6ca04271.js +108 -0
- package/_internal/{a67f26a8.js.map → 6ca04271.js.map} +1 -1
- package/_internal/{cdc3efab.js → 6da19518.js} +24 -32
- package/_internal/{cdc3efab.js.map → 6da19518.js.map} +1 -1
- package/_internal/{bcce6ceb.js → 7093ba23.js} +6 -4
- package/_internal/{bcce6ceb.js.map → 7093ba23.js.map} +1 -1
- package/_internal/{bc4cb4c0.js → 74a4a214.js} +29 -33
- package/_internal/{bc4cb4c0.js.map → 74a4a214.js.map} +1 -1
- package/_internal/{95a2e851.js → 76be70dd.js} +3 -3
- package/_internal/{95a2e851.js.map → 76be70dd.js.map} +1 -1
- package/_internal/{60f8e509.js → 7f54e947.js} +114 -101
- package/_internal/{60f8e509.js.map → 7f54e947.js.map} +1 -1
- package/_internal/{72407886.js → 84dfe68f.js} +50 -44
- package/_internal/{72407886.js.map → 84dfe68f.js.map} +1 -1
- package/_internal/{e2440593.js → 85e3a5ca.js} +32 -35
- package/_internal/{e2440593.js.map → 85e3a5ca.js.map} +1 -1
- package/_internal/{742d4906.js → 86aa4aa4.js} +60 -54
- package/_internal/{742d4906.js.map → 86aa4aa4.js.map} +1 -1
- package/_internal/{4e1dde79.js → 8ab42752.js} +25 -26
- package/_internal/{4e1dde79.js.map → 8ab42752.js.map} +1 -1
- package/_internal/{0f4b35b2.js → 95cfd814.js} +14 -20
- package/_internal/{0f4b35b2.js.map → 95cfd814.js.map} +1 -1
- package/_internal/{d6b3a3c0.js → 9a4dfad0.js} +48 -39
- package/_internal/{d6b3a3c0.js.map → 9a4dfad0.js.map} +1 -1
- package/_internal/{80e5c950.js → 9c9df5f2.js} +19 -19
- package/_internal/{80e5c950.js.map → 9c9df5f2.js.map} +1 -1
- package/_internal/{21aeb1c7.js → 9d1336a1.js} +6 -6
- package/_internal/{21aeb1c7.js.map → 9d1336a1.js.map} +1 -1
- package/_internal/{ee64ab0d.js → 9fdc715b.js} +37 -34
- package/_internal/{ee64ab0d.js.map → 9fdc715b.js.map} +1 -1
- package/_internal/a003602b.js +116 -0
- package/_internal/{32698205.js.map → a003602b.js.map} +1 -1
- package/_internal/{baa0a23b.js → a34639bd.js} +31 -29
- package/_internal/{baa0a23b.js.map → a34639bd.js.map} +1 -1
- package/_internal/{cb036703.js → a84f4981.js} +35 -26
- package/_internal/{cb036703.js.map → a84f4981.js.map} +1 -1
- package/_internal/{9210e2f3.js → b0a7a999.js} +10 -12
- package/_internal/{9210e2f3.js.map → b0a7a999.js.map} +1 -1
- package/_internal/{3646abc3.js → b0b2e33d.js} +117 -104
- package/_internal/{3646abc3.js.map → b0b2e33d.js.map} +1 -1
- package/_internal/{1aaa0341.js → b1af5979.js} +168 -160
- package/_internal/{1aaa0341.js.map → b1af5979.js.map} +1 -1
- package/_internal/{21cf275f.js → b477da26.js} +63 -57
- package/_internal/{21cf275f.js.map → b477da26.js.map} +1 -1
- package/_internal/{60923026.js → b8667090.js} +2 -2
- package/_internal/{60923026.js.map → b8667090.js.map} +1 -1
- package/_internal/{1e4b7ad5.js → bae266a9.js} +19 -18
- package/_internal/{1e4b7ad5.js.map → bae266a9.js.map} +1 -1
- package/_internal/{9d8130ae.js → be6da9b0.js} +69 -74
- package/_internal/{9d8130ae.js.map → be6da9b0.js.map} +1 -1
- package/_internal/{9452daf7.js → c0414b89.js} +10 -12
- package/_internal/{9452daf7.js.map → c0414b89.js.map} +1 -1
- package/_internal/{e566d502.js → c2388b10.js} +21 -17
- package/_internal/{e566d502.js.map → c2388b10.js.map} +1 -1
- package/_internal/{9cf0d217.js → c459a04d.js} +55 -54
- package/_internal/{9cf0d217.js.map → c459a04d.js.map} +1 -1
- package/_internal/c6ca7494.js +2 -0
- package/_internal/c6ca7494.js.map +1 -0
- package/_internal/{01bc8fcf.js → cdddaed8.js} +20 -18
- package/_internal/{01bc8fcf.js.map → cdddaed8.js.map} +1 -1
- package/_internal/{0361b7fb.js → d45e3f16.js} +2 -2
- package/_internal/{0361b7fb.js.map → d45e3f16.js.map} +1 -1
- package/_internal/{d66c4375.js → d5f316cb.js} +2 -2
- package/_internal/{d66c4375.js.map → d5f316cb.js.map} +1 -1
- package/_internal/{0a31e895.js → db4fdc7b.js} +63 -57
- package/_internal/{0a31e895.js.map → db4fdc7b.js.map} +1 -1
- package/_internal/dbe0cf24.js +75 -0
- package/_internal/{803945f7.js.map → dbe0cf24.js.map} +1 -1
- package/_internal/{4ceaf17c.js → e2afb13f.js} +2 -2
- package/_internal/{4ceaf17c.js.map → e2afb13f.js.map} +1 -1
- package/_internal/{b925072d.js → e52f0d3f.js} +37 -34
- package/_internal/{b925072d.js.map → e52f0d3f.js.map} +1 -1
- package/_internal/{aa8c5d9b.js → e6dd117e.js} +2 -2
- package/_internal/{aa8c5d9b.js.map → e6dd117e.js.map} +1 -1
- package/_internal/{077b7bef.js → ea04260d.js} +6 -6
- package/_internal/{077b7bef.js.map → ea04260d.js.map} +1 -1
- package/_internal/{77eb8ef3.js → eaa8b1d8.js} +39 -38
- package/_internal/{77eb8ef3.js.map → eaa8b1d8.js.map} +1 -1
- package/_internal/{aafcf80e.js → edab29ce.js} +61 -65
- package/_internal/{aafcf80e.js.map → edab29ce.js.map} +1 -1
- package/_internal/{38b3ecf3.js → f0900583.js} +54 -45
- package/_internal/{38b3ecf3.js.map → f0900583.js.map} +1 -1
- package/_internal/{881714a1.js → f23cdf84.js} +45 -51
- package/_internal/{881714a1.js.map → f23cdf84.js.map} +1 -1
- package/_internal/f52e979e.js +3 -0
- package/_internal/f52e979e.js.map +1 -0
- package/_internal/{1ce667fb.js → f5508d3d.js} +53 -51
- package/_internal/{1ce667fb.js.map → f5508d3d.js.map} +1 -1
- package/_internal/{43262bfe.js → f93fe83e.js} +11 -13
- package/_internal/{43262bfe.js.map → f93fe83e.js.map} +1 -1
- package/index.js +63 -63
- package/package.json +3 -11
- package/utils/index.js +3 -3
- package/_internal/1921f348.js +0 -72
- package/_internal/286fc728.js +0 -2
- package/_internal/286fc728.js.map +0 -1
- package/_internal/2d6bde7d.js +0 -209
- package/_internal/32698205.js +0 -107
- package/_internal/5ba8fae8.js +0 -120
- package/_internal/70cf341b.js +0 -117
- package/_internal/803945f7.js +0 -65
- package/_internal/a67f26a8.js +0 -98
- package/_internal/ac3bc511.js +0 -2
- package/_internal/ac3bc511.js.map +0 -1
- package/_internal/cc995526.js +0 -2
- package/_internal/cc995526.js.map +0 -1
- package/_internal/e2122a37.js +0 -3
- package/_internal/e2122a37.js.map +0 -1
- package/_internal/e53b5a39.js +0 -407
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1aaa0341.js","sources":["../../src/utils/date/addMonthResetDay.ts","../../src/utils/date/isDateValid.ts","../../src/components/date-picker/constants.ts","../../src/utils/date/getFirstDayOfWeek.ts","../../src/utils/date/getWeekDays.ts","../../src/utils/date/getMonthCalendar.ts","../../src/utils/date/isSameDay.ts","../../src/utils/locale/getCurrentLocale.ts","../../src/utils/locale/parseLocale.ts","../../src/hooks/usePreviousValue.ts","../../src/utils/date/getYearDisplayName.ts","../../src/utils/date/formatDayNumber.ts","../../src/components/date-picker/DatePickerControlled.tsx","../../src/components/date-picker/DatePicker.tsx","../../src/components/date-picker/DatePickerField.tsx","../../src/components/popover-dialog/PopoverDialog.tsx"],"sourcesContent":["/**\n * Add a number of months from a date while resetting the day to prevent month length mismatches.\n */\nexport function addMonthResetDay(date: Date, monthOffset: number) {\n const newDate = new Date(date.getTime());\n newDate.setDate(1);\n newDate.setMonth(date.getMonth() + monthOffset);\n return newDate;\n}\n","/**\n * Check if given date is valid.\n */\nexport const isDateValid = (date?: Date) => date instanceof Date && !Number.isNaN(date.getTime());\n","import { getRootClassName } from '@lumx/core/js/utils/className';\n\n/**\n * Component display name.\n */\nexport const COMPONENT_NAME = 'DatePicker';\n\n/**\n * Component default class name and class prefix.\n */\nexport const CLASSNAME = getRootClassName(COMPONENT_NAME);\n","import { Locale } from '@lumx/react/utils/locale/types';\n\n/** Get first day of week for locale from the browser API */\nexport const getFromBrowser = (locale: Locale): number | undefined => {\n try {\n const localeMetadata = new Intl.Locale(locale.code) as any;\n const { firstDay } = localeMetadata.getWeekInfo?.() || localeMetadata.weekInfo;\n // Sunday is represented as `0` in Date.getDay()\n if (firstDay === 7) return 0;\n return firstDay;\n } catch (e) {\n return undefined;\n }\n};\n\n/** List first day for each locale (could be removed when all browser implement Locale weekInfo) */\nconst FIRST_DAY_FOR_LOCALES = [\n {\n // Locales with Sunday as the first day of the week\n localeRX: /^(af|ar-(dz|eg|sa)|bn|cy|en-(ca|us|za)|fr-ca|gd|he|hi|ja|km|ko|pt-br|te|th|ug|zh-hk)$/i,\n firstDay: 0,\n },\n {\n // Locales with Monday as the first day of the week\n localeRX:\n /^(ar-(ma|tn)|az|be|bg|bs|ca|cs|da|de|el|en-(au|gb|ie|in|nz)|eo|es|et|eu|fi|fr|fy|gl|gu|hr|ht|hu|hy|id|is|it|ka|kk|kn|lb|lt|lv|mk|mn|ms|mt|nb|nl|nn|oc|pl|pt|ro|ru|sk|sl|sq|sr|sv|ta|tr|uk|uz|vi|zh-(cn|tw))$/i,\n firstDay: 1,\n },\n {\n // Locales with Saturday as the first day of the week\n localeRX: /^(ar|fa-ir)$/i,\n firstDay: 6,\n },\n];\n\n/** Find first day of week for locale from the constant */\nconst getFromConstant = (locale: Locale, searchBy: keyof Locale = 'code'): number | undefined => {\n // Search for locale (lang + region)\n for (const { localeRX, firstDay } of FIRST_DAY_FOR_LOCALES) {\n if (localeRX.test(locale[searchBy] as string)) return firstDay;\n }\n // Fallback search for locale lang\n if (locale.code !== locale.language) {\n return getFromConstant(locale, 'language');\n }\n return undefined;\n};\n\n/**\n * Get first day of the week for the given locale code (language + region).\n */\nexport const getFirstDayOfWeek = (locale: Locale): number | undefined => {\n // Get from browser API\n const firstDay = getFromBrowser(locale);\n if (firstDay !== undefined) return firstDay;\n\n // Get from constant\n return getFromConstant(locale);\n};\n","import { Locale } from '@lumx/react/utils/locale/types';\nimport { getFirstDayOfWeek } from './getFirstDayOfWeek';\n\nexport type WeekDayInfo = { letter: string; number: number; long: string };\n\nexport const DAYS_PER_WEEK = 7;\n\n/**\n * List week days (based on locale) with the week day letter (ex: \"M\" for \"Monday\") and week day number\n * (0-based index starting on Sunday).\n */\nexport const getWeekDays = (locale: Locale): Array<WeekDayInfo> => {\n const iterDate = new Date();\n const firstDay = getFirstDayOfWeek(locale) ?? 1;\n\n // Go to start of the week\n const offset = firstDay - iterDate.getDay();\n iterDate.setDate(iterDate.getDate() + offset);\n\n // Iterate through the days of the week\n const weekDays: Array<WeekDayInfo> = [];\n for (let i = 0; i < DAYS_PER_WEEK; i++) {\n // Single letter week day (ex: \"M\" for \"Monday\", \"L\" for \"Lundi\", etc.)\n const letter = iterDate.toLocaleDateString(locale.code, { weekday: 'narrow' });\n // Weed day long notation\n const long = iterDate.toLocaleDateString(locale.code, { weekday: 'long' });\n // Day number (1-based index starting on Monday)\n const number = iterDate.getDay();\n\n weekDays.push({ letter, number, long });\n iterDate.setDate(iterDate.getDate() + 1);\n }\n return weekDays;\n};\n","import last from 'lodash/last';\n\nimport { getWeekDays, WeekDayInfo } from '@lumx/react/utils/date/getWeekDays';\nimport { Locale } from '@lumx/react/utils/locale/types';\n\ntype AnnotatedDay = { date: Date; isOutOfRange?: boolean };\ntype AnnotatedWeek = Partial<Record<number, AnnotatedDay>>;\n\ninterface MonthCalendar {\n weekDays: Array<WeekDayInfo>;\n weeks: Array<AnnotatedWeek>;\n}\n\n/** Up to 6 rows can appear in a month calendar => 4 weeks + 1 start of month partial week + 1 send of month partial week */\nconst MONTH_ROW_COUNT = 6;\n\n/**\n * Get month calendar.\n * A list of weeks with days indexed by week day number\n */\nexport const getMonthCalendar = (\n locale: Locale,\n referenceDate = new Date(),\n rangeMinDate?: Date,\n rangeMaxDate?: Date,\n): MonthCalendar => {\n const month = referenceDate.getMonth();\n const iterDate = new Date(referenceDate);\n iterDate.setDate(1);\n\n const minDate = rangeMinDate && new Date(rangeMinDate);\n const maxDate = rangeMaxDate && new Date(rangeMaxDate);\n // Reset time to compare dates only.\n iterDate.setUTCHours(0, 0, 0, 0);\n minDate?.setUTCHours(0, 0, 0, 0);\n maxDate?.setUTCHours(0, 0, 0, 0);\n\n const weekDays = getWeekDays(locale);\n const lastDayOfWeek = last(weekDays) as WeekDayInfo;\n\n const weeks: Array<AnnotatedWeek> = [];\n let week: AnnotatedWeek = {};\n let rowCount = 0;\n\n while (rowCount < MONTH_ROW_COUNT) {\n const weekDayNumber = iterDate.getDay();\n const day: AnnotatedDay = { date: new Date(iterDate.getTime()) };\n\n // If a range is specified, check if the day is out of range.\n // min and max date are included within the valid range.\n if ((minDate && iterDate < minDate) || (maxDate && iterDate > maxDate)) {\n day.isOutOfRange = true;\n }\n\n if (iterDate.getMonth() === month) {\n week[weekDayNumber] = day;\n }\n\n if (weekDayNumber === lastDayOfWeek.number) {\n weeks.push(week);\n rowCount += 1;\n week = {};\n }\n iterDate.setDate(iterDate.getDate() + 1);\n }\n if (Object.keys(week).length) weeks.push(week);\n\n return { weeks, weekDays };\n};\n","import { isDateValid } from '@lumx/react/utils/date/isDateValid';\n\n/**\n * Check `date1` is on the same day as `date2`.\n */\nexport const isSameDay = (date1: Date, date2: Date) =>\n isDateValid(date1) &&\n isDateValid(date2) &&\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate();\n","/**\n * Get current browser locale.\n */\nexport const getCurrentLocale = (): string => navigator.languages?.[0] || navigator.language;\n","import { Locale } from '@lumx/react/utils/locale/types';\n\n/**\n * Parse locale code\n * @example\n * parseLocale('EN') // => { code: 'en', language: 'en' }\n * parseLocale('en_us') // => { code: 'en-US', language: 'en', region: 'US' }\n * parseLocale('EN-US') // => { code: 'en-US', language: 'en', region: 'US' }\n */\nexport function parseLocale(locale: string): Locale | undefined {\n const [rawLanguage, rawRegion] = locale.split(/[-_]/);\n if (!rawLanguage) {\n return undefined;\n }\n const language = rawLanguage.toLowerCase();\n let region: string | undefined;\n let code = language;\n if (rawRegion) {\n region = rawRegion.toUpperCase();\n code += `-${region}`;\n }\n return { code, region, language };\n}\n","import React from 'react';\n/**\n * Returns the value from the previous render.\n */\nexport function usePreviousValue<V>(value: V): V | undefined {\n const prevValueRef = React.useRef<V>();\n const prevValue = prevValueRef.current;\n React.useEffect(() => {\n prevValueRef.current = value;\n }, [value]);\n return prevValue;\n}\n","export const getYearDisplayName = (locale: string) => {\n let label: string | undefined;\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const displayNames = new Intl.DisplayNames(locale, { type: 'dateTimeField' });\n label = displayNames.of('year');\n } catch (error) {\n label = '';\n }\n return label;\n};\n","export function formatDayNumber(locale: string, date: Date): string {\n const formattedDate = date.toLocaleDateString(locale, { day: 'numeric' });\n if (formattedDate.match(/\\d/)) return formattedDate.replace(/\\D*(\\d+)\\D*/g, '$1');\n return formattedDate;\n}\n","import React, { KeyboardEventHandler } from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n Button,\n DatePickerProps,\n Emphasis,\n FlexBox,\n IconButton,\n Text,\n TextField,\n TextFieldProps,\n Toolbar,\n} from '@lumx/react';\nimport { mdiChevronLeft, mdiChevronRight } from '@lumx/icons';\nimport { getMonthCalendar } from '@lumx/react/utils/date/getMonthCalendar';\nimport { isSameDay } from '@lumx/react/utils/date/isSameDay';\nimport { getCurrentLocale } from '@lumx/react/utils/locale/getCurrentLocale';\nimport { parseLocale } from '@lumx/react/utils/locale/parseLocale';\nimport { Locale } from '@lumx/react/utils/locale/types';\nimport { usePreviousValue } from '@lumx/react/hooks/usePreviousValue';\nimport { getYearDisplayName } from '@lumx/react/utils/date/getYearDisplayName';\nimport { onEnterPressed } from '@lumx/core/js/utils';\nimport { addMonthResetDay } from '@lumx/react/utils/date/addMonthResetDay';\nimport { formatDayNumber } from '@lumx/react/utils/date/formatDayNumber';\nimport { VISUALLY_HIDDEN } from '@lumx/react/constants';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { CLASSNAME } from './constants';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerControlledProps extends DatePickerProps {\n /** Selected month to display. */\n selectedMonth: Date;\n /** On previous month change callback. */\n onPrevMonthChange(): void;\n /** On next month change callback. */\n onNextMonthChange(): void;\n /** On month/year change callback. */\n onMonthChange?: (newMonth: Date) => void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerControlled';\n\n/**\n * DatePickerControlled component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerControlled = forwardRef<DatePickerControlledProps, HTMLDivElement>((props, ref) => {\n const {\n locale = getCurrentLocale(),\n maxDate,\n minDate,\n nextButtonProps,\n onChange,\n onNextMonthChange,\n onPrevMonthChange,\n previousButtonProps,\n selectedMonth,\n todayOrSelectedDateRef,\n value,\n onMonthChange,\n style,\n } = props;\n const { weeks, weekDays } = React.useMemo(() => {\n const localeObj = parseLocale(locale) as Locale;\n return getMonthCalendar(localeObj, selectedMonth, minDate, maxDate);\n }, [locale, minDate, maxDate, selectedMonth]);\n\n const selectedYear = selectedMonth.getFullYear();\n const formattedYear = selectedMonth.toLocaleDateString(locale, { year: 'numeric' }).slice(0, 4);\n const [currentYear, setCurrentYear] = React.useState(String(selectedYear));\n\n // Updates month offset when validating year. Adds or removes 12 months per year when updating year value.\n const updateMonthOffset = React.useCallback(\n (newYearValue: string) => {\n const yearNumber = Number(newYearValue);\n if (yearNumber < 0 && yearNumber >= 9999) {\n return;\n }\n\n const previousYearNumber = selectedMonth.getFullYear();\n const offset = (yearNumber - previousYearNumber) * 12;\n onMonthChange?.(addMonthResetDay(selectedMonth, offset));\n },\n [selectedMonth, onMonthChange],\n );\n\n const onYearChange = React.useCallback<TextFieldProps['onChange']>(\n (newYearValue, _, event) => {\n setCurrentYear(newYearValue);\n\n // Detect if change is coming from the spin up/down arrows\n const inputType = (event?.nativeEvent as any)?.inputType;\n if (\n // Chrome/Safari\n !inputType ||\n // Firefox\n inputType === 'insertReplacementText'\n ) {\n updateMonthOffset(newYearValue);\n }\n },\n [updateMonthOffset],\n );\n\n const updateYear = React.useCallback(() => {\n updateMonthOffset(currentYear);\n }, [updateMonthOffset, currentYear]);\n\n const updateYearOnEnterPressed: KeyboardEventHandler = React.useMemo(\n () => onEnterPressed(updateYear),\n [updateYear],\n );\n\n const monthYear = selectedMonth.toLocaleDateString(locale, { year: 'numeric', month: 'long' });\n\n // Update current year when selected year changes\n React.useEffect(() => {\n setCurrentYear(String(selectedYear));\n }, [selectedYear]);\n\n const prevSelectedMonth = usePreviousValue(selectedMonth);\n const monthHasChanged = prevSelectedMonth && !isSameDay(selectedMonth, prevSelectedMonth);\n\n // Only set the aria-live after the month has changed otherwise it can get announced on mount when used in the popover dialog\n const [labelAriaLive, setLabelAriaLive] = React.useState<'polite'>();\n React.useEffect(() => {\n if (monthHasChanged) setLabelAriaLive('polite');\n }, [monthHasChanged]);\n\n const yearLabel = getYearDisplayName(locale);\n\n return (\n <div ref={ref} className={`${CLASSNAME}`} style={style}>\n <Toolbar\n className={`${CLASSNAME}__toolbar`}\n after={\n <IconButton\n {...nextButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronRight}\n onClick={onNextMonthChange}\n />\n }\n before={\n <IconButton\n {...previousButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronLeft}\n onClick={onPrevMonthChange}\n />\n }\n label={\n <>\n <span aria-live={labelAriaLive} className={onMonthChange ? VISUALLY_HIDDEN : ''} dir=\"auto\">\n {monthYear}\n </span>\n {onMonthChange && (\n <FlexBox\n className={`${CLASSNAME}__month`}\n orientation=\"horizontal\"\n hAlign=\"center\"\n gap=\"regular\"\n vAlign=\"center\"\n dir=\"auto\"\n >\n {RegExp(`(.*)(${formattedYear})(.*)`)\n .exec(monthYear)\n ?.slice(1)\n .filter((part) => part !== '')\n .map((part) =>\n part === formattedYear ? (\n <TextField\n value={currentYear}\n aria-label={yearLabel}\n onChange={onYearChange}\n type=\"number\"\n max={9999}\n min={0}\n onBlur={updateYear}\n onKeyPress={updateYearOnEnterPressed}\n key=\"year\"\n className={`${CLASSNAME}__year`}\n />\n ) : (\n <Text as=\"p\" key={part}>\n {part}\n </Text>\n ),\n )}\n </FlexBox>\n )}\n </>\n }\n />\n <div className={`${CLASSNAME}__calendar`}>\n <div className={`${CLASSNAME}__week-days ${CLASSNAME}__days-wrapper`}>\n {weekDays.map(({ letter, number, long }) => (\n <div key={number} className={`${CLASSNAME}__day-wrapper`}>\n <span className={`${CLASSNAME}__week-day`} aria-hidden>\n {letter.toLocaleUpperCase()}\n </span>\n <span className=\"visually-hidden\">{long}</span>\n </div>\n ))}\n </div>\n\n <div className={`${CLASSNAME}__month-days ${CLASSNAME}__days-wrapper`}>\n {weeks.flatMap((week, weekIndex) => {\n return weekDays.map((weekDay, dayIndex) => {\n const { date, isOutOfRange } = week[weekDay.number] || {};\n const key = `${weekIndex}-${dayIndex}`;\n const isToday = !isOutOfRange && date && isSameDay(date, new Date());\n const isSelected = date && value && isSameDay(value, date);\n\n return (\n <div key={key} className={`${CLASSNAME}__day-wrapper`}>\n {date && (\n <Button\n ref={isSelected || (!value && isToday) ? todayOrSelectedDateRef : null}\n className={classNames(`${CLASSNAME}__month-day`, {\n [`${CLASSNAME}__month-day--is-today`]: isToday,\n })}\n disabled={isOutOfRange}\n isSelected={isSelected}\n emphasis=\"low\"\n onClick={() => onChange(date)}\n >\n <span aria-hidden>{formatDayNumber(locale, date)}</span>\n <span className={VISUALLY_HIDDEN}>\n {date.toLocaleDateString(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n })}\n </span>\n </Button>\n )}\n </div>\n );\n });\n })}\n </div>\n </div>\n </div>\n );\n});\nDatePickerControlled.displayName = COMPONENT_NAME;\nDatePickerControlled.className = CLASSNAME;\n","import { useState } from 'react';\n\nimport { addMonthResetDay } from '@lumx/react/utils/date/addMonthResetDay';\nimport { isDateValid } from '@lumx/react/utils/date/isDateValid';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { CLASSNAME, COMPONENT_NAME } from './constants';\nimport { DatePickerControlled } from './DatePickerControlled';\nimport { DatePickerProps } from './types';\n\n/**\n * DatePicker component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePicker = forwardRef<DatePickerProps, HTMLDivElement>((props, ref) => {\n const { defaultMonth, locale, value, onChange, ...forwardedProps } = props;\n\n let referenceDate = value || defaultMonth || new Date();\n if (!isDateValid(referenceDate)) {\n // eslint-disable-next-line no-console\n console.warn(`[@lumx/react/DatePicker] Invalid date provided ${referenceDate}`);\n referenceDate = new Date();\n }\n\n const [selectedMonth, setSelectedMonth] = useState(referenceDate);\n const setPrevMonth = () => setSelectedMonth((current) => addMonthResetDay(current, -1));\n const setNextMonth = () => setSelectedMonth((current) => addMonthResetDay(current, +1));\n\n const onDatePickerChange = (newDate?: Date) => {\n onChange(newDate);\n };\n\n return (\n <DatePickerControlled\n ref={ref}\n {...forwardedProps}\n defaultMonth={defaultMonth}\n locale={locale}\n value={value}\n onPrevMonthChange={setPrevMonth}\n onNextMonthChange={setNextMonth}\n selectedMonth={selectedMonth}\n onChange={onDatePickerChange}\n onMonthChange={setSelectedMonth}\n />\n );\n});\nDatePicker.displayName = COMPONENT_NAME;\nDatePicker.className = CLASSNAME;\n","import React, { SyntheticEvent, useCallback, useRef } from 'react';\n\nimport { DatePicker, IconButtonProps, Placement, PopoverDialog, TextField, TextFieldProps } from '@lumx/react';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getCurrentLocale } from '@lumx/react/utils/locale/getCurrentLocale';\nimport { useBooleanState } from '@lumx/react/hooks/useBooleanState';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerFieldProps extends Omit<TextFieldProps, 'value' | 'onChange'>, GenericProps {\n /** Default month. */\n defaultMonth?: Date;\n /** Locale (language or region) to use. */\n locale?: string;\n /** Date after which dates can't be selected. */\n maxDate?: Date;\n /** Date before which dates can't be selected. */\n minDate?: Date;\n /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */\n nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */\n previousButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Currently selected date. */\n value: Date | undefined;\n /** On change callback. */\n onChange(value: Date | undefined, name?: string, event?: SyntheticEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerField';\n\n/**\n * DatePickerField component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerField = forwardRef<DatePickerFieldProps, HTMLDivElement>((props, ref) => {\n const { disabledStateProps, otherProps } = useDisableStateProps(props);\n const {\n defaultMonth,\n locale = getCurrentLocale(),\n maxDate,\n minDate,\n name,\n nextButtonProps,\n onChange,\n previousButtonProps,\n value,\n ...forwardedProps\n } = otherProps;\n const anchorRef = useRef(null);\n\n const [isOpen, close, , toggleOpen] = useBooleanState(false);\n\n const handleKeyboardNav = useCallback(\n (evt: React.KeyboardEvent) => {\n if (evt.key === 'Enter' || evt.key === ' ') {\n toggleOpen();\n }\n },\n [toggleOpen],\n );\n const onTextFieldChange = useCallback(\n (textFieldValue: string, textFieldName?: string, event?: SyntheticEvent) => {\n if (!textFieldValue) {\n onChange(undefined, textFieldName, event);\n }\n },\n [onChange],\n );\n const onDatePickerChange = useCallback(\n (newDate?: Date) => {\n onChange(newDate, name);\n close();\n },\n [name, onChange, close],\n );\n\n // Format date for text field\n const textFieldValue = value?.toLocaleDateString(locale, { year: 'numeric', month: 'long', day: 'numeric' }) || '';\n\n const todayOrSelectedDateRef = React.useRef(null);\n\n return (\n <>\n <TextField\n ref={ref}\n {...forwardedProps}\n name={name}\n forceFocusStyle={isOpen}\n textFieldRef={anchorRef}\n value={textFieldValue}\n onClick={toggleOpen}\n onChange={onTextFieldChange}\n onKeyPress={handleKeyboardNav}\n {...disabledStateProps}\n readOnly\n aria-haspopup=\"dialog\"\n />\n {isOpen ? (\n <PopoverDialog\n // Can't use `aria-labelledby` targeting the text field label element (not correctly read on some screen readers)\n aria-label={forwardedProps.label}\n anchorRef={anchorRef}\n placement={Placement.BOTTOM_START}\n isOpen={isOpen}\n onClose={close}\n // On open, focus the selected day or today\n focusElement={todayOrSelectedDateRef}\n >\n <DatePicker\n locale={locale}\n maxDate={maxDate}\n minDate={minDate}\n value={value}\n todayOrSelectedDateRef={todayOrSelectedDateRef}\n onChange={onDatePickerChange}\n defaultMonth={defaultMonth}\n nextButtonProps={nextButtonProps}\n previousButtonProps={previousButtonProps}\n />\n </PopoverDialog>\n ) : null}\n </>\n );\n});\nDatePickerField.displayName = COMPONENT_NAME;\n","import classNames from 'classnames';\n\nimport { HasAriaLabelOrLabelledBy } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { HeadingLevelProvider } from '@lumx/react/components/heading';\nimport { Popover, PopoverProps } from '../popover/Popover';\n\n/**\n * PopoverDialog props.\n * The PopoverDialog has the same props as the Popover but requires an accessible label.\n */\nexport type PopoverDialogProps = PopoverProps & HasAriaLabelOrLabelledBy;\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'PopoverDialog';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<PopoverDialogProps> = {};\n\n/**\n * PopoverDialog component.\n * Defines a popover that acts like a dialog\n * * Has a dialog aria role\n * * Sets a focus trap within the popover\n * * Closes on click away and escape.\n */\nexport const PopoverDialog = forwardRef<PopoverDialogProps, HTMLDivElement>((props, ref) => {\n const {\n children,\n isOpen,\n focusElement,\n 'aria-label': ariaLabel,\n label = ariaLabel,\n className,\n ...forwardedProps\n } = props;\n\n return (\n <Popover\n {...forwardedProps}\n ref={ref}\n className={classNames(className, CLASSNAME)}\n role=\"dialog\"\n aria-modal=\"true\"\n /**\n * If a label is set, set as aria-label.\n * If it is undefined, the label can be set using the `aria-label` and `aria-labelledby` props\n */\n aria-label={label}\n isOpen={isOpen}\n focusElement={focusElement}\n closeOnClickAway\n closeOnEscape\n withFocusTrap\n >\n <HeadingLevelProvider level={2}>{children}</HeadingLevelProvider>\n </Popover>\n );\n});\n\nPopoverDialog.displayName = COMPONENT_NAME;\nPopoverDialog.className = CLASSNAME;\nPopoverDialog.defaultProps = DEFAULT_PROPS;\n"],"names":["addMonthResetDay","date","monthOffset","newDate","Date","getTime","setDate","setMonth","getMonth","isDateValid","Number","isNaN","COMPONENT_NAME","CLASSNAME","getRootClassName","getFromBrowser","locale","localeMetadata","Intl","Locale","code","firstDay","getWeekInfo","weekInfo","e","undefined","FIRST_DAY_FOR_LOCALES","localeRX","getFromConstant","searchBy","test","language","getFirstDayOfWeek","DAYS_PER_WEEK","getWeekDays","iterDate","offset","getDay","getDate","weekDays","i","letter","toLocaleDateString","weekday","long","number","push","MONTH_ROW_COUNT","getMonthCalendar","referenceDate","rangeMinDate","rangeMaxDate","month","minDate","maxDate","setUTCHours","lastDayOfWeek","last","weeks","week","rowCount","weekDayNumber","day","isOutOfRange","Object","keys","length","isSameDay","date1","date2","getFullYear","getCurrentLocale","navigator","languages","parseLocale","rawLanguage","rawRegion","split","toLowerCase","region","toUpperCase","usePreviousValue","value","prevValueRef","React","useRef","prevValue","current","useEffect","getYearDisplayName","label","displayNames","DisplayNames","type","of","error","formatDayNumber","formattedDate","match","replace","DatePickerControlled","forwardRef","props","ref","nextButtonProps","onChange","onNextMonthChange","onPrevMonthChange","previousButtonProps","selectedMonth","todayOrSelectedDateRef","onMonthChange","style","useMemo","localeObj","selectedYear","formattedYear","year","slice","currentYear","setCurrentYear","useState","String","updateMonthOffset","useCallback","newYearValue","yearNumber","previousYearNumber","onYearChange","_","event","inputType","nativeEvent","updateYear","updateYearOnEnterPressed","onEnterPressed","monthYear","prevSelectedMonth","monthHasChanged","labelAriaLive","setLabelAriaLive","yearLabel","createElement","className","Toolbar","after","IconButton","_extends","emphasis","Emphasis","low","icon","mdiChevronRight","onClick","before","mdiChevronLeft","Fragment","VISUALLY_HIDDEN","dir","FlexBox","orientation","hAlign","gap","vAlign","RegExp","exec","filter","part","map","TextField","max","min","onBlur","onKeyPress","key","Text","as","toLocaleUpperCase","flatMap","weekIndex","weekDay","dayIndex","isToday","isSelected","Button","classNames","disabled","displayName","DatePicker","defaultMonth","forwardedProps","console","warn","setSelectedMonth","setPrevMonth","setNextMonth","onDatePickerChange","DatePickerField","disabledStateProps","otherProps","useDisableStateProps","name","anchorRef","isOpen","close","toggleOpen","useBooleanState","handleKeyboardNav","evt","onTextFieldChange","textFieldValue","textFieldName","forceFocusStyle","textFieldRef","readOnly","PopoverDialog","placement","Placement","BOTTOM_START","onClose","focusElement","DEFAULT_PROPS","children","ariaLabel","Popover","role","closeOnClickAway","closeOnEscape","withFocusTrap","HeadingLevelProvider","level","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"b1af5979.js","sources":["../../src/utils/date/addMonthResetDay.ts","../../src/utils/date/isDateValid.ts","../../src/components/date-picker/constants.ts","../../src/utils/date/getFirstDayOfWeek.ts","../../src/utils/date/getWeekDays.ts","../../src/utils/date/getMonthCalendar.ts","../../src/utils/date/isSameDay.ts","../../src/utils/locale/getCurrentLocale.ts","../../src/utils/locale/parseLocale.ts","../../src/hooks/usePreviousValue.ts","../../src/utils/date/getYearDisplayName.ts","../../src/utils/date/formatDayNumber.ts","../../src/components/date-picker/DatePickerControlled.tsx","../../src/components/date-picker/DatePicker.tsx","../../src/components/date-picker/DatePickerField.tsx","../../src/components/popover-dialog/PopoverDialog.tsx"],"sourcesContent":["/**\n * Add a number of months from a date while resetting the day to prevent month length mismatches.\n */\nexport function addMonthResetDay(date: Date, monthOffset: number) {\n const newDate = new Date(date.getTime());\n newDate.setDate(1);\n newDate.setMonth(date.getMonth() + monthOffset);\n return newDate;\n}\n","/**\n * Check if given date is valid.\n */\nexport const isDateValid = (date?: Date) => date instanceof Date && !Number.isNaN(date.getTime());\n","import { getRootClassName } from '@lumx/core/js/utils/className';\n\n/**\n * Component display name.\n */\nexport const COMPONENT_NAME = 'DatePicker';\n\n/**\n * Component default class name and class prefix.\n */\nexport const CLASSNAME = getRootClassName(COMPONENT_NAME);\n","import { Locale } from '@lumx/react/utils/locale/types';\n\n/** Get first day of week for locale from the browser API */\nexport const getFromBrowser = (locale: Locale): number | undefined => {\n try {\n const localeMetadata = new Intl.Locale(locale.code) as any;\n const { firstDay } = localeMetadata.getWeekInfo?.() || localeMetadata.weekInfo;\n // Sunday is represented as `0` in Date.getDay()\n if (firstDay === 7) return 0;\n return firstDay;\n } catch (e) {\n return undefined;\n }\n};\n\n/** List first day for each locale (could be removed when all browser implement Locale weekInfo) */\nconst FIRST_DAY_FOR_LOCALES = [\n {\n // Locales with Sunday as the first day of the week\n localeRX: /^(af|ar-(dz|eg|sa)|bn|cy|en-(ca|us|za)|fr-ca|gd|he|hi|ja|km|ko|pt-br|te|th|ug|zh-hk)$/i,\n firstDay: 0,\n },\n {\n // Locales with Monday as the first day of the week\n localeRX:\n /^(ar-(ma|tn)|az|be|bg|bs|ca|cs|da|de|el|en-(au|gb|ie|in|nz)|eo|es|et|eu|fi|fr|fy|gl|gu|hr|ht|hu|hy|id|is|it|ka|kk|kn|lb|lt|lv|mk|mn|ms|mt|nb|nl|nn|oc|pl|pt|ro|ru|sk|sl|sq|sr|sv|ta|tr|uk|uz|vi|zh-(cn|tw))$/i,\n firstDay: 1,\n },\n {\n // Locales with Saturday as the first day of the week\n localeRX: /^(ar|fa-ir)$/i,\n firstDay: 6,\n },\n];\n\n/** Find first day of week for locale from the constant */\nconst getFromConstant = (locale: Locale, searchBy: keyof Locale = 'code'): number | undefined => {\n // Search for locale (lang + region)\n for (const { localeRX, firstDay } of FIRST_DAY_FOR_LOCALES) {\n if (localeRX.test(locale[searchBy] as string)) return firstDay;\n }\n // Fallback search for locale lang\n if (locale.code !== locale.language) {\n return getFromConstant(locale, 'language');\n }\n return undefined;\n};\n\n/**\n * Get first day of the week for the given locale code (language + region).\n */\nexport const getFirstDayOfWeek = (locale: Locale): number | undefined => {\n // Get from browser API\n const firstDay = getFromBrowser(locale);\n if (firstDay !== undefined) return firstDay;\n\n // Get from constant\n return getFromConstant(locale);\n};\n","import { Locale } from '@lumx/react/utils/locale/types';\nimport { getFirstDayOfWeek } from './getFirstDayOfWeek';\n\nexport type WeekDayInfo = { letter: string; number: number; long: string };\n\nexport const DAYS_PER_WEEK = 7;\n\n/**\n * List week days (based on locale) with the week day letter (ex: \"M\" for \"Monday\") and week day number\n * (0-based index starting on Sunday).\n */\nexport const getWeekDays = (locale: Locale): Array<WeekDayInfo> => {\n const iterDate = new Date();\n const firstDay = getFirstDayOfWeek(locale) ?? 1;\n\n // Go to start of the week\n const offset = firstDay - iterDate.getDay();\n iterDate.setDate(iterDate.getDate() + offset);\n\n // Iterate through the days of the week\n const weekDays: Array<WeekDayInfo> = [];\n for (let i = 0; i < DAYS_PER_WEEK; i++) {\n // Single letter week day (ex: \"M\" for \"Monday\", \"L\" for \"Lundi\", etc.)\n const letter = iterDate.toLocaleDateString(locale.code, { weekday: 'narrow' });\n // Weed day long notation\n const long = iterDate.toLocaleDateString(locale.code, { weekday: 'long' });\n // Day number (1-based index starting on Monday)\n const number = iterDate.getDay();\n\n weekDays.push({ letter, number, long });\n iterDate.setDate(iterDate.getDate() + 1);\n }\n return weekDays;\n};\n","import last from 'lodash/last';\n\nimport { getWeekDays, WeekDayInfo } from '@lumx/react/utils/date/getWeekDays';\nimport { Locale } from '@lumx/react/utils/locale/types';\n\ntype AnnotatedDay = { date: Date; isOutOfRange?: boolean };\ntype AnnotatedWeek = Partial<Record<number, AnnotatedDay>>;\n\ninterface MonthCalendar {\n weekDays: Array<WeekDayInfo>;\n weeks: Array<AnnotatedWeek>;\n}\n\n/** Up to 6 rows can appear in a month calendar => 4 weeks + 1 start of month partial week + 1 send of month partial week */\nconst MONTH_ROW_COUNT = 6;\n\n/**\n * Get month calendar.\n * A list of weeks with days indexed by week day number\n */\nexport const getMonthCalendar = (\n locale: Locale,\n referenceDate = new Date(),\n rangeMinDate?: Date,\n rangeMaxDate?: Date,\n): MonthCalendar => {\n const month = referenceDate.getMonth();\n const iterDate = new Date(referenceDate);\n iterDate.setDate(1);\n\n const minDate = rangeMinDate && new Date(rangeMinDate);\n const maxDate = rangeMaxDate && new Date(rangeMaxDate);\n // Reset time to compare dates only.\n iterDate.setUTCHours(0, 0, 0, 0);\n minDate?.setUTCHours(0, 0, 0, 0);\n maxDate?.setUTCHours(0, 0, 0, 0);\n\n const weekDays = getWeekDays(locale);\n const lastDayOfWeek = last(weekDays) as WeekDayInfo;\n\n const weeks: Array<AnnotatedWeek> = [];\n let week: AnnotatedWeek = {};\n let rowCount = 0;\n\n while (rowCount < MONTH_ROW_COUNT) {\n const weekDayNumber = iterDate.getDay();\n const day: AnnotatedDay = { date: new Date(iterDate.getTime()) };\n\n // If a range is specified, check if the day is out of range.\n // min and max date are included within the valid range.\n if ((minDate && iterDate < minDate) || (maxDate && iterDate > maxDate)) {\n day.isOutOfRange = true;\n }\n\n if (iterDate.getMonth() === month) {\n week[weekDayNumber] = day;\n }\n\n if (weekDayNumber === lastDayOfWeek.number) {\n weeks.push(week);\n rowCount += 1;\n week = {};\n }\n iterDate.setDate(iterDate.getDate() + 1);\n }\n if (Object.keys(week).length) weeks.push(week);\n\n return { weeks, weekDays };\n};\n","import { isDateValid } from '@lumx/react/utils/date/isDateValid';\n\n/**\n * Check `date1` is on the same day as `date2`.\n */\nexport const isSameDay = (date1: Date, date2: Date) =>\n isDateValid(date1) &&\n isDateValid(date2) &&\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate();\n","/**\n * Get current browser locale.\n */\nexport const getCurrentLocale = (): string => navigator.languages?.[0] || navigator.language;\n","import { Locale } from '@lumx/react/utils/locale/types';\n\n/**\n * Parse locale code\n * @example\n * parseLocale('EN') // => { code: 'en', language: 'en' }\n * parseLocale('en_us') // => { code: 'en-US', language: 'en', region: 'US' }\n * parseLocale('EN-US') // => { code: 'en-US', language: 'en', region: 'US' }\n */\nexport function parseLocale(locale: string): Locale | undefined {\n const [rawLanguage, rawRegion] = locale.split(/[-_]/);\n if (!rawLanguage) {\n return undefined;\n }\n const language = rawLanguage.toLowerCase();\n let region: string | undefined;\n let code = language;\n if (rawRegion) {\n region = rawRegion.toUpperCase();\n code += `-${region}`;\n }\n return { code, region, language };\n}\n","import React from 'react';\n/**\n * Returns the value from the previous render.\n */\nexport function usePreviousValue<V>(value: V): V | undefined {\n const prevValueRef = React.useRef<V>();\n const prevValue = prevValueRef.current;\n React.useEffect(() => {\n prevValueRef.current = value;\n }, [value]);\n return prevValue;\n}\n","export const getYearDisplayName = (locale: string) => {\n let label: string | undefined;\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const displayNames = new Intl.DisplayNames(locale, { type: 'dateTimeField' });\n label = displayNames.of('year');\n } catch (error) {\n label = '';\n }\n return label;\n};\n","export function formatDayNumber(locale: string, date: Date): string {\n const formattedDate = date.toLocaleDateString(locale, { day: 'numeric' });\n if (formattedDate.match(/\\d/)) return formattedDate.replace(/\\D*(\\d+)\\D*/g, '$1');\n return formattedDate;\n}\n","import React, { KeyboardEventHandler } from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n Button,\n DatePickerProps,\n Emphasis,\n FlexBox,\n IconButton,\n Text,\n TextField,\n TextFieldProps,\n Toolbar,\n} from '@lumx/react';\nimport { mdiChevronLeft, mdiChevronRight } from '@lumx/icons';\nimport { getMonthCalendar } from '@lumx/react/utils/date/getMonthCalendar';\nimport { isSameDay } from '@lumx/react/utils/date/isSameDay';\nimport { getCurrentLocale } from '@lumx/react/utils/locale/getCurrentLocale';\nimport { parseLocale } from '@lumx/react/utils/locale/parseLocale';\nimport { Locale } from '@lumx/react/utils/locale/types';\nimport { usePreviousValue } from '@lumx/react/hooks/usePreviousValue';\nimport { getYearDisplayName } from '@lumx/react/utils/date/getYearDisplayName';\nimport { onEnterPressed } from '@lumx/core/js/utils';\nimport { addMonthResetDay } from '@lumx/react/utils/date/addMonthResetDay';\nimport { formatDayNumber } from '@lumx/react/utils/date/formatDayNumber';\nimport { VISUALLY_HIDDEN } from '@lumx/react/constants';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { CLASSNAME } from './constants';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerControlledProps extends DatePickerProps {\n /** Selected month to display. */\n selectedMonth: Date;\n /** On previous month change callback. */\n onPrevMonthChange(): void;\n /** On next month change callback. */\n onNextMonthChange(): void;\n /** On month/year change callback. */\n onMonthChange?: (newMonth: Date) => void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerControlled';\n\n/**\n * DatePickerControlled component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerControlled = forwardRef<DatePickerControlledProps, HTMLDivElement>((props, ref) => {\n const {\n locale = getCurrentLocale(),\n maxDate,\n minDate,\n nextButtonProps,\n onChange,\n onNextMonthChange,\n onPrevMonthChange,\n previousButtonProps,\n selectedMonth,\n todayOrSelectedDateRef,\n value,\n onMonthChange,\n style,\n } = props;\n const { weeks, weekDays } = React.useMemo(() => {\n const localeObj = parseLocale(locale) as Locale;\n return getMonthCalendar(localeObj, selectedMonth, minDate, maxDate);\n }, [locale, minDate, maxDate, selectedMonth]);\n\n const selectedYear = selectedMonth.getFullYear();\n const formattedYear = selectedMonth.toLocaleDateString(locale, { year: 'numeric' }).slice(0, 4);\n const [currentYear, setCurrentYear] = React.useState(String(selectedYear));\n\n // Updates month offset when validating year. Adds or removes 12 months per year when updating year value.\n const updateMonthOffset = React.useCallback(\n (newYearValue: string) => {\n const yearNumber = Number(newYearValue);\n if (yearNumber < 0 && yearNumber >= 9999) {\n return;\n }\n\n const previousYearNumber = selectedMonth.getFullYear();\n const offset = (yearNumber - previousYearNumber) * 12;\n onMonthChange?.(addMonthResetDay(selectedMonth, offset));\n },\n [selectedMonth, onMonthChange],\n );\n\n const onYearChange = React.useCallback<TextFieldProps['onChange']>(\n (newYearValue, _, event) => {\n setCurrentYear(newYearValue);\n\n // Detect if change is coming from the spin up/down arrows\n const inputType = (event?.nativeEvent as any)?.inputType;\n if (\n // Chrome/Safari\n !inputType ||\n // Firefox\n inputType === 'insertReplacementText'\n ) {\n updateMonthOffset(newYearValue);\n }\n },\n [updateMonthOffset],\n );\n\n const updateYear = React.useCallback(() => {\n updateMonthOffset(currentYear);\n }, [updateMonthOffset, currentYear]);\n\n const updateYearOnEnterPressed: KeyboardEventHandler = React.useMemo(\n () => onEnterPressed(updateYear),\n [updateYear],\n );\n\n const monthYear = selectedMonth.toLocaleDateString(locale, { year: 'numeric', month: 'long' });\n\n // Update current year when selected year changes\n React.useEffect(() => {\n setCurrentYear(String(selectedYear));\n }, [selectedYear]);\n\n const prevSelectedMonth = usePreviousValue(selectedMonth);\n const monthHasChanged = prevSelectedMonth && !isSameDay(selectedMonth, prevSelectedMonth);\n\n // Only set the aria-live after the month has changed otherwise it can get announced on mount when used in the popover dialog\n const [labelAriaLive, setLabelAriaLive] = React.useState<'polite'>();\n React.useEffect(() => {\n if (monthHasChanged) setLabelAriaLive('polite');\n }, [monthHasChanged]);\n\n const yearLabel = getYearDisplayName(locale);\n\n return (\n <div ref={ref} className={`${CLASSNAME}`} style={style}>\n <Toolbar\n className={`${CLASSNAME}__toolbar`}\n after={\n <IconButton\n {...nextButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronRight}\n onClick={onNextMonthChange}\n />\n }\n before={\n <IconButton\n {...previousButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronLeft}\n onClick={onPrevMonthChange}\n />\n }\n label={\n <>\n <span aria-live={labelAriaLive} className={onMonthChange ? VISUALLY_HIDDEN : ''} dir=\"auto\">\n {monthYear}\n </span>\n {onMonthChange && (\n <FlexBox\n className={`${CLASSNAME}__month`}\n orientation=\"horizontal\"\n hAlign=\"center\"\n gap=\"regular\"\n vAlign=\"center\"\n dir=\"auto\"\n >\n {RegExp(`(.*)(${formattedYear})(.*)`)\n .exec(monthYear)\n ?.slice(1)\n .filter((part) => part !== '')\n .map((part) =>\n part === formattedYear ? (\n <TextField\n value={currentYear}\n aria-label={yearLabel}\n onChange={onYearChange}\n type=\"number\"\n max={9999}\n min={0}\n onBlur={updateYear}\n onKeyPress={updateYearOnEnterPressed}\n key=\"year\"\n className={`${CLASSNAME}__year`}\n />\n ) : (\n <Text as=\"p\" key={part}>\n {part}\n </Text>\n ),\n )}\n </FlexBox>\n )}\n </>\n }\n />\n <div className={`${CLASSNAME}__calendar`}>\n <div className={`${CLASSNAME}__week-days ${CLASSNAME}__days-wrapper`}>\n {weekDays.map(({ letter, number, long }) => (\n <div key={number} className={`${CLASSNAME}__day-wrapper`}>\n <span className={`${CLASSNAME}__week-day`} aria-hidden>\n {letter.toLocaleUpperCase()}\n </span>\n <span className=\"visually-hidden\">{long}</span>\n </div>\n ))}\n </div>\n\n <div className={`${CLASSNAME}__month-days ${CLASSNAME}__days-wrapper`}>\n {weeks.flatMap((week, weekIndex) => {\n return weekDays.map((weekDay, dayIndex) => {\n const { date, isOutOfRange } = week[weekDay.number] || {};\n const key = `${weekIndex}-${dayIndex}`;\n const isToday = !isOutOfRange && date && isSameDay(date, new Date());\n const isSelected = date && value && isSameDay(value, date);\n\n return (\n <div key={key} className={`${CLASSNAME}__day-wrapper`}>\n {date && (\n <Button\n ref={isSelected || (!value && isToday) ? todayOrSelectedDateRef : null}\n className={classNames(`${CLASSNAME}__month-day`, {\n [`${CLASSNAME}__month-day--is-today`]: isToday,\n })}\n disabled={isOutOfRange}\n isSelected={isSelected}\n emphasis=\"low\"\n onClick={() => onChange(date)}\n >\n <span aria-hidden>{formatDayNumber(locale, date)}</span>\n <span className={VISUALLY_HIDDEN}>\n {date.toLocaleDateString(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n })}\n </span>\n </Button>\n )}\n </div>\n );\n });\n })}\n </div>\n </div>\n </div>\n );\n});\nDatePickerControlled.displayName = COMPONENT_NAME;\nDatePickerControlled.className = CLASSNAME;\n","import { useState } from 'react';\n\nimport { addMonthResetDay } from '@lumx/react/utils/date/addMonthResetDay';\nimport { isDateValid } from '@lumx/react/utils/date/isDateValid';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { CLASSNAME, COMPONENT_NAME } from './constants';\nimport { DatePickerControlled } from './DatePickerControlled';\nimport { DatePickerProps } from './types';\n\n/**\n * DatePicker component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePicker = forwardRef<DatePickerProps, HTMLDivElement>((props, ref) => {\n const { defaultMonth, locale, value, onChange, ...forwardedProps } = props;\n\n let referenceDate = value || defaultMonth || new Date();\n if (!isDateValid(referenceDate)) {\n // eslint-disable-next-line no-console\n console.warn(`[@lumx/react/DatePicker] Invalid date provided ${referenceDate}`);\n referenceDate = new Date();\n }\n\n const [selectedMonth, setSelectedMonth] = useState(referenceDate);\n const setPrevMonth = () => setSelectedMonth((current) => addMonthResetDay(current, -1));\n const setNextMonth = () => setSelectedMonth((current) => addMonthResetDay(current, +1));\n\n const onDatePickerChange = (newDate?: Date) => {\n onChange(newDate);\n };\n\n return (\n <DatePickerControlled\n ref={ref}\n {...forwardedProps}\n defaultMonth={defaultMonth}\n locale={locale}\n value={value}\n onPrevMonthChange={setPrevMonth}\n onNextMonthChange={setNextMonth}\n selectedMonth={selectedMonth}\n onChange={onDatePickerChange}\n onMonthChange={setSelectedMonth}\n />\n );\n});\nDatePicker.displayName = COMPONENT_NAME;\nDatePicker.className = CLASSNAME;\n","import React, { SyntheticEvent, useCallback, useRef } from 'react';\n\nimport { DatePicker, IconButtonProps, Placement, PopoverDialog, TextField, TextFieldProps } from '@lumx/react';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getCurrentLocale } from '@lumx/react/utils/locale/getCurrentLocale';\nimport { useBooleanState } from '@lumx/react/hooks/useBooleanState';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerFieldProps extends Omit<TextFieldProps, 'value' | 'onChange'>, GenericProps {\n /** Default month. */\n defaultMonth?: Date;\n /** Locale (language or region) to use. */\n locale?: string;\n /** Date after which dates can't be selected. */\n maxDate?: Date;\n /** Date before which dates can't be selected. */\n minDate?: Date;\n /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */\n nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */\n previousButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Currently selected date. */\n value: Date | undefined;\n /** On change callback. */\n onChange(value: Date | undefined, name?: string, event?: SyntheticEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerField';\n\n/**\n * DatePickerField component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerField = forwardRef<DatePickerFieldProps, HTMLDivElement>((props, ref) => {\n const { disabledStateProps, otherProps } = useDisableStateProps(props);\n const {\n defaultMonth,\n locale = getCurrentLocale(),\n maxDate,\n minDate,\n name,\n nextButtonProps,\n onChange,\n previousButtonProps,\n value,\n ...forwardedProps\n } = otherProps;\n const anchorRef = useRef(null);\n\n const [isOpen, close, , toggleOpen] = useBooleanState(false);\n\n const handleKeyboardNav = useCallback(\n (evt: React.KeyboardEvent) => {\n if (evt.key === 'Enter' || evt.key === ' ') {\n toggleOpen();\n }\n },\n [toggleOpen],\n );\n const onTextFieldChange = useCallback(\n (textFieldValue: string, textFieldName?: string, event?: SyntheticEvent) => {\n if (!textFieldValue) {\n onChange(undefined, textFieldName, event);\n }\n },\n [onChange],\n );\n const onDatePickerChange = useCallback(\n (newDate?: Date) => {\n onChange(newDate, name);\n close();\n },\n [name, onChange, close],\n );\n\n // Format date for text field\n const textFieldValue = value?.toLocaleDateString(locale, { year: 'numeric', month: 'long', day: 'numeric' }) || '';\n\n const todayOrSelectedDateRef = React.useRef(null);\n\n return (\n <>\n <TextField\n ref={ref}\n {...forwardedProps}\n name={name}\n forceFocusStyle={isOpen}\n textFieldRef={anchorRef}\n value={textFieldValue}\n onClick={toggleOpen}\n onChange={onTextFieldChange}\n onKeyPress={handleKeyboardNav}\n {...disabledStateProps}\n readOnly\n aria-haspopup=\"dialog\"\n />\n {isOpen ? (\n <PopoverDialog\n // Can't use `aria-labelledby` targeting the text field label element (not correctly read on some screen readers)\n aria-label={forwardedProps.label}\n anchorRef={anchorRef}\n placement={Placement.BOTTOM_START}\n isOpen={isOpen}\n onClose={close}\n // On open, focus the selected day or today\n focusElement={todayOrSelectedDateRef}\n >\n <DatePicker\n locale={locale}\n maxDate={maxDate}\n minDate={minDate}\n value={value}\n todayOrSelectedDateRef={todayOrSelectedDateRef}\n onChange={onDatePickerChange}\n defaultMonth={defaultMonth}\n nextButtonProps={nextButtonProps}\n previousButtonProps={previousButtonProps}\n />\n </PopoverDialog>\n ) : null}\n </>\n );\n});\nDatePickerField.displayName = COMPONENT_NAME;\n","import classNames from 'classnames';\n\nimport { HasAriaLabelOrLabelledBy } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { HeadingLevelProvider } from '@lumx/react/components/heading';\nimport { Popover, PopoverProps } from '../popover/Popover';\n\n/**\n * PopoverDialog props.\n * The PopoverDialog has the same props as the Popover but requires an accessible label.\n */\nexport type PopoverDialogProps = PopoverProps & HasAriaLabelOrLabelledBy;\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'PopoverDialog';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<PopoverDialogProps> = {};\n\n/**\n * PopoverDialog component.\n * Defines a popover that acts like a dialog\n * * Has a dialog aria role\n * * Sets a focus trap within the popover\n * * Closes on click away and escape.\n */\nexport const PopoverDialog = forwardRef<PopoverDialogProps, HTMLDivElement>((props, ref) => {\n const {\n children,\n isOpen,\n focusElement,\n 'aria-label': ariaLabel,\n label = ariaLabel,\n className,\n ...forwardedProps\n } = props;\n\n return (\n <Popover\n {...forwardedProps}\n ref={ref}\n className={classNames(className, CLASSNAME)}\n role=\"dialog\"\n aria-modal=\"true\"\n /**\n * If a label is set, set as aria-label.\n * If it is undefined, the label can be set using the `aria-label` and `aria-labelledby` props\n */\n aria-label={label}\n isOpen={isOpen}\n focusElement={focusElement}\n closeOnClickAway\n closeOnEscape\n withFocusTrap\n >\n <HeadingLevelProvider level={2}>{children}</HeadingLevelProvider>\n </Popover>\n );\n});\n\nPopoverDialog.displayName = COMPONENT_NAME;\nPopoverDialog.className = CLASSNAME;\nPopoverDialog.defaultProps = DEFAULT_PROPS;\n"],"names":["addMonthResetDay","date","monthOffset","newDate","Date","getTime","setDate","setMonth","getMonth","isDateValid","Number","isNaN","COMPONENT_NAME","CLASSNAME","getRootClassName","getFromBrowser","locale","localeMetadata","Intl","Locale","code","firstDay","getWeekInfo","weekInfo","e","undefined","FIRST_DAY_FOR_LOCALES","localeRX","getFromConstant","searchBy","test","language","getFirstDayOfWeek","DAYS_PER_WEEK","getWeekDays","iterDate","offset","getDay","getDate","weekDays","i","letter","toLocaleDateString","weekday","long","number","push","MONTH_ROW_COUNT","getMonthCalendar","referenceDate","rangeMinDate","rangeMaxDate","month","minDate","maxDate","setUTCHours","lastDayOfWeek","last","weeks","week","rowCount","weekDayNumber","day","isOutOfRange","Object","keys","length","isSameDay","date1","date2","getFullYear","getCurrentLocale","navigator","languages","parseLocale","rawLanguage","rawRegion","split","toLowerCase","region","toUpperCase","usePreviousValue","value","prevValueRef","React","useRef","prevValue","current","useEffect","getYearDisplayName","label","displayNames","DisplayNames","type","of","error","formatDayNumber","formattedDate","match","replace","DatePickerControlled","forwardRef","props","ref","nextButtonProps","onChange","onNextMonthChange","onPrevMonthChange","previousButtonProps","selectedMonth","todayOrSelectedDateRef","onMonthChange","style","useMemo","localeObj","selectedYear","formattedYear","year","slice","currentYear","setCurrentYear","useState","String","updateMonthOffset","useCallback","newYearValue","yearNumber","previousYearNumber","onYearChange","_","event","inputType","nativeEvent","updateYear","updateYearOnEnterPressed","onEnterPressed","monthYear","prevSelectedMonth","monthHasChanged","labelAriaLive","setLabelAriaLive","yearLabel","_jsxs","className","children","_jsx","Toolbar","after","IconButton","emphasis","Emphasis","low","icon","mdiChevronRight","onClick","before","mdiChevronLeft","_Fragment","VISUALLY_HIDDEN","dir","FlexBox","orientation","hAlign","gap","vAlign","RegExp","exec","filter","part","map","TextField","max","min","onBlur","onKeyPress","Text","as","toLocaleUpperCase","flatMap","weekIndex","weekDay","dayIndex","key","isToday","isSelected","Button","classNames","disabled","displayName","DatePicker","defaultMonth","forwardedProps","console","warn","setSelectedMonth","setPrevMonth","setNextMonth","onDatePickerChange","DatePickerField","disabledStateProps","otherProps","useDisableStateProps","name","anchorRef","isOpen","close","toggleOpen","useBooleanState","handleKeyboardNav","evt","onTextFieldChange","textFieldValue","textFieldName","forceFocusStyle","textFieldRef","readOnly","PopoverDialog","placement","Placement","BOTTOM_START","onClose","focusElement","DEFAULT_PROPS","ariaLabel","Popover","role","closeOnClickAway","closeOnEscape","withFocusTrap","HeadingLevelProvider","level","defaultProps"],"mappings":"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"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import { m as getRootClassName, n as forwardRef, _ as _extends, l as classNames, b as Theme, d as Emphasis, c as Size } from './d3321a86.js';
|
|
2
1
|
import { Children } from 'react';
|
|
2
|
+
import { m as getRootClassName, n as forwardRef, l as classNames, b as Theme, d as Emphasis, c as Size } from './6589b796.js';
|
|
3
3
|
import { i as isComponent } from './78df9309.js';
|
|
4
4
|
import { u as useTheme } from './3181f000.js';
|
|
5
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
6
|
import isEmpty from 'lodash/isEmpty';
|
|
6
|
-
import { h as handleBasicClasses } from './
|
|
7
|
+
import { h as handleBasicClasses } from './e2afb13f.js';
|
|
7
8
|
import { u as useId } from './3a1facc0.js';
|
|
8
|
-
import { R as RawClickable } from './
|
|
9
|
-
import { I as Icon } from './
|
|
10
|
-
import { I as IconButton } from './
|
|
9
|
+
import { R as RawClickable } from './2c2b6a89.js';
|
|
10
|
+
import { I as Icon } from './8ab42752.js';
|
|
11
|
+
import { I as IconButton } from './0a490b07.js';
|
|
11
12
|
import { m as mdiChevronUp, a as mdiChevronDown } from './0b9c76cb.js';
|
|
12
13
|
|
|
13
|
-
/**
|
|
14
|
-
* Defines the props of the component.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
14
|
/**
|
|
18
15
|
* Component display name.
|
|
19
16
|
*/
|
|
@@ -40,19 +37,16 @@ const SideNavigation = forwardRef((props, ref) => {
|
|
|
40
37
|
...forwardedProps
|
|
41
38
|
} = props;
|
|
42
39
|
const content = Children.toArray(children).filter(isComponent(SideNavigationItem));
|
|
43
|
-
return /*#__PURE__*/
|
|
44
|
-
ref: ref
|
|
45
|
-
|
|
46
|
-
className: classNames(className, theme === Theme.dark && 'lumx-color-font-light-N', CLASSNAME$1)
|
|
47
|
-
|
|
40
|
+
return /*#__PURE__*/jsx("ul", {
|
|
41
|
+
ref: ref,
|
|
42
|
+
...forwardedProps,
|
|
43
|
+
className: classNames(className, theme === Theme.dark && 'lumx-color-font-light-N', CLASSNAME$1),
|
|
44
|
+
children: content
|
|
45
|
+
});
|
|
48
46
|
});
|
|
49
47
|
SideNavigation.displayName = COMPONENT_NAME$1;
|
|
50
48
|
SideNavigation.className = CLASSNAME$1;
|
|
51
49
|
|
|
52
|
-
/**
|
|
53
|
-
* Defines the props of the component.
|
|
54
|
-
*/
|
|
55
|
-
|
|
56
50
|
/**
|
|
57
51
|
* Component display name.
|
|
58
52
|
*/
|
|
@@ -106,53 +100,65 @@ const SideNavigationItem = forwardRef((props, ref) => {
|
|
|
106
100
|
// Associate with content ID only if in DOM (shown or hidden and not unmounted)
|
|
107
101
|
ariaProps['aria-controls'] = showChildren || closeMode === 'hide' ? contentId : undefined;
|
|
108
102
|
}
|
|
109
|
-
return /*#__PURE__*/
|
|
110
|
-
ref: ref
|
|
111
|
-
|
|
103
|
+
return /*#__PURE__*/jsxs("li", {
|
|
104
|
+
ref: ref,
|
|
105
|
+
...forwardedProps,
|
|
112
106
|
className: classNames(className, handleBasicClasses({
|
|
113
107
|
emphasis,
|
|
114
108
|
isOpen: showChildren,
|
|
115
109
|
isSelected,
|
|
116
110
|
prefix: CLASSNAME
|
|
117
|
-
}))
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
111
|
+
})),
|
|
112
|
+
children: [shouldSplitActions ? /*#__PURE__*/jsxs("div", {
|
|
113
|
+
className: `${CLASSNAME}__wrapper`,
|
|
114
|
+
children: [/*#__PURE__*/jsxs(RawClickable, {
|
|
115
|
+
as: linkAs || (linkProps?.href ? 'a' : 'button'),
|
|
116
|
+
...linkProps,
|
|
117
|
+
className: `${CLASSNAME}__link`,
|
|
118
|
+
onClick: onClick,
|
|
119
|
+
children: [icon && /*#__PURE__*/jsx(Icon, {
|
|
120
|
+
className: `${CLASSNAME}__icon`,
|
|
121
|
+
icon: icon,
|
|
122
|
+
size: Size.xs
|
|
123
|
+
}), /*#__PURE__*/jsx("span", {
|
|
124
|
+
children: label
|
|
125
|
+
})]
|
|
126
|
+
}), /*#__PURE__*/jsx(IconButton, {
|
|
127
|
+
...toggleButtonProps,
|
|
128
|
+
className: `${CLASSNAME}__toggle`,
|
|
129
|
+
icon: isOpen ? mdiChevronUp : mdiChevronDown,
|
|
130
|
+
size: Size.m,
|
|
131
|
+
emphasis: Emphasis.low,
|
|
132
|
+
onClick: onActionClick,
|
|
133
|
+
...ariaProps
|
|
134
|
+
})]
|
|
135
|
+
}) : /*#__PURE__*/jsxs(RawClickable, {
|
|
136
|
+
as: linkAs || (linkProps?.href ? 'a' : 'button'),
|
|
137
|
+
...linkProps,
|
|
138
|
+
className: `${CLASSNAME}__link`,
|
|
139
|
+
onClick: onClick,
|
|
140
|
+
...ariaProps,
|
|
141
|
+
children: [icon && /*#__PURE__*/jsx(Icon, {
|
|
142
|
+
className: `${CLASSNAME}__icon`,
|
|
143
|
+
icon: icon,
|
|
144
|
+
size: Size.xs
|
|
145
|
+
}), /*#__PURE__*/jsx("span", {
|
|
146
|
+
children: label
|
|
147
|
+
}), hasContent && /*#__PURE__*/jsx(Icon, {
|
|
148
|
+
className: `${CLASSNAME}__chevron`,
|
|
149
|
+
icon: isOpen ? mdiChevronUp : mdiChevronDown,
|
|
150
|
+
size: Size.xs
|
|
151
|
+
})]
|
|
152
|
+
}), (closeMode === 'hide' || showChildren) && /*#__PURE__*/jsx("ul", {
|
|
153
|
+
className: `${CLASSNAME}__children`,
|
|
154
|
+
id: contentId,
|
|
155
|
+
children: content
|
|
156
|
+
})]
|
|
157
|
+
});
|
|
152
158
|
});
|
|
153
159
|
SideNavigationItem.displayName = COMPONENT_NAME;
|
|
154
160
|
SideNavigationItem.className = CLASSNAME;
|
|
155
161
|
SideNavigationItem.defaultProps = DEFAULT_PROPS;
|
|
156
162
|
|
|
157
163
|
export { SideNavigation, SideNavigationItem };
|
|
158
|
-
//# sourceMappingURL=
|
|
164
|
+
//# sourceMappingURL=b477da26.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"21cf275f.js","sources":["../../src/components/side-navigation/SideNavigation.tsx","../../src/components/side-navigation/SideNavigationItem.tsx"],"sourcesContent":["import { Children, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { SideNavigationItem, Theme } from '@lumx/react';\nimport { GenericProps, HasTheme, isComponent } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationProps extends GenericProps, HasTheme {\n /** SideNavigationItem elements. */\n children: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigation';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SideNavigation component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigation = forwardRef<SideNavigationProps, HTMLUListElement>((props, ref) => {\n const defaultTheme = useTheme();\n const { children, className, theme = defaultTheme, ...forwardedProps } = props;\n const content = Children.toArray(children).filter(isComponent(SideNavigationItem));\n\n return (\n <ul\n ref={ref}\n {...forwardedProps}\n className={classNames(className, theme === Theme.dark && 'lumx-color-font-light-N', CLASSNAME)}\n >\n {content}\n </ul>\n );\n});\nSideNavigation.displayName = COMPONENT_NAME;\nSideNavigation.className = CLASSNAME;\n","import { Children, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\nimport { Emphasis, Icon, Size, IconButton, IconButtonProps } from '@lumx/react';\nimport { GenericProps, HasCloseMode, isComponent } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useId } from '@lumx/react/hooks/useId';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { RawClickable } from '@lumx/react/utils/react/RawClickable';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationItemProps extends GenericProps, HasCloseMode {\n /** SideNavigationItem elements. */\n children?: ReactNode;\n /** Emphasis variant. */\n emphasis?: Emphasis;\n /** Label content. */\n label: string | ReactNode;\n /** Icon (SVG path). */\n icon?: string;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Props to pass to the link (minus those already set by the SideNavigationItem props). */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Props to pass to the toggle button (minus those already set by the SideNavigationItem props). */\n toggleButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color' | 'size'>;\n /** On action button click callback. */\n onActionClick?(evt: React.MouseEvent): void;\n /** On click callback. */\n onClick?(evt: React.MouseEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigationItem';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<SideNavigationItemProps> = {\n emphasis: Emphasis.high,\n closeMode: 'unmount',\n};\n\n/**\n * SideNavigationItem component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigationItem = forwardRef<SideNavigationItemProps, HTMLLIElement>((props, ref) => {\n const {\n children,\n className,\n emphasis = DEFAULT_PROPS.emphasis,\n icon,\n isOpen,\n isSelected,\n label,\n linkAs,\n linkProps,\n onActionClick,\n onClick,\n toggleButtonProps,\n closeMode = DEFAULT_PROPS.closeMode,\n ...forwardedProps\n } = props;\n\n const content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));\n const hasContent = !isEmpty(content);\n const shouldSplitActions = Boolean(onActionClick);\n const showChildren = hasContent && isOpen;\n\n const contentId = useId();\n const ariaProps: any = {};\n if (hasContent) {\n ariaProps['aria-expanded'] = !!showChildren;\n // Associate with content ID only if in DOM (shown or hidden and not unmounted)\n ariaProps['aria-controls'] = showChildren || closeMode === 'hide' ? contentId : undefined;\n }\n\n return (\n <li\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n emphasis,\n isOpen: showChildren,\n isSelected,\n prefix: CLASSNAME,\n }),\n )}\n >\n {shouldSplitActions ? (\n <div className={`${CLASSNAME}__wrapper`}>\n <RawClickable\n as={linkAs || (linkProps?.href ? 'a' : 'button')}\n {...(linkProps as any)}\n className={`${CLASSNAME}__link`}\n onClick={onClick}\n >\n {icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />}\n <span>{label}</span>\n </RawClickable>\n\n <IconButton\n {...toggleButtonProps}\n className={`${CLASSNAME}__toggle`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.m}\n emphasis={Emphasis.low}\n onClick={onActionClick}\n {...ariaProps}\n />\n </div>\n ) : (\n <RawClickable\n as={linkAs || (linkProps?.href ? 'a' : 'button')}\n {...linkProps}\n className={`${CLASSNAME}__link`}\n onClick={onClick}\n {...ariaProps}\n >\n {icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />}\n <span>{label}</span>\n {hasContent && (\n <Icon\n className={`${CLASSNAME}__chevron`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.xs}\n />\n )}\n </RawClickable>\n )}\n\n {(closeMode === 'hide' || showChildren) && (\n <ul className={`${CLASSNAME}__children`} id={contentId}>\n {content}\n </ul>\n )}\n </li>\n );\n});\nSideNavigationItem.displayName = COMPONENT_NAME;\nSideNavigationItem.className = CLASSNAME;\nSideNavigationItem.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","SideNavigation","forwardRef","props","ref","defaultTheme","useTheme","children","className","theme","forwardedProps","content","Children","toArray","filter","isComponent","SideNavigationItem","React","createElement","_extends","classNames","Theme","dark","displayName","DEFAULT_PROPS","emphasis","Emphasis","high","closeMode","icon","isOpen","isSelected","label","linkAs","linkProps","onActionClick","onClick","toggleButtonProps","hasContent","isEmpty","shouldSplitActions","Boolean","showChildren","contentId","useId","ariaProps","undefined","handleBasicClasses","prefix","RawClickable","as","href","Icon","size","Size","xs","IconButton","mdiChevronUp","mdiChevronDown","m","low","id","defaultProps"],"mappings":";;;;;;;;;;;;AAUA;AACA;AACA;;AAMA;AACA;AACA;AACA,MAAMA,gBAAc,GAAG,gBAAgB,CAAA;;AAEvC;AACA;AACA;AACA,MAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,cAAc,GAAGC,UAAU,CAAwC,CAACC,KAAK,EAAEC,GAAG,KAAK;AAC5F,EAAA,MAAMC,YAAY,GAAGC,QAAQ,EAAE,CAAA;EAC/B,MAAM;IAAEC,QAAQ;IAAEC,SAAS;AAAEC,IAAAA,KAAK,GAAGJ,YAAY;IAAE,GAAGK,cAAAA;AAAe,GAAC,GAAGP,KAAK,CAAA;AAC9E,EAAA,MAAMQ,OAAO,GAAGC,QAAQ,CAACC,OAAO,CAACN,QAAQ,CAAC,CAACO,MAAM,CAACC,WAAW,CAACC,kBAAkB,CAAC,CAAC,CAAA;AAElF,EAAA,oBACIC,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAAC,QAAA,CAAA;AACIf,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EACLM,cAAc,EAAA;AAClBF,IAAAA,SAAS,EAAEY,UAAU,CAACZ,SAAS,EAAEC,KAAK,KAAKY,KAAK,CAACC,IAAI,IAAI,yBAAyB,EAAEvB,WAAS,CAAA;AAAE,GAAA,CAAA,EAE9FY,OACD,CAAC,CAAA;AAEb,CAAC,EAAC;AACFV,cAAc,CAACsB,WAAW,GAAGzB,gBAAc,CAAA;AAC3CG,cAAc,CAACO,SAAS,GAAGT,WAAS;;ACtCpC;AACA;AACA;;AA2BA;AACA;AACA;AACA,MAAMD,cAAc,GAAG,oBAAoB,CAAA;;AAE3C;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAM0B,aAA+C,GAAG;EACpDC,QAAQ,EAAEC,QAAQ,CAACC,IAAI;AACvBC,EAAAA,SAAS,EAAE,SAAA;AACf,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMZ,kBAAkB,GAAGd,UAAU,CAAyC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;IACFG,QAAQ;IACRC,SAAS;IACTiB,QAAQ,GAAGD,aAAa,CAACC,QAAQ;IACjCI,IAAI;IACJC,MAAM;IACNC,UAAU;IACVC,KAAK;IACLC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC,OAAO;IACPC,iBAAiB;IACjBT,SAAS,GAAGJ,aAAa,CAACI,SAAS;IACnC,GAAGlB,cAAAA;AACP,GAAC,GAAGP,KAAK,CAAA;AAET,EAAA,MAAMQ,OAAO,GAAGJ,QAAQ,IAAIK,QAAQ,CAACC,OAAO,CAACN,QAAQ,CAAC,CAACO,MAAM,CAACC,WAAW,CAACC,kBAAkB,CAAC,CAAC,CAAA;AAC9F,EAAA,MAAMsB,UAAU,GAAG,CAACC,OAAO,CAAC5B,OAAO,CAAC,CAAA;AACpC,EAAA,MAAM6B,kBAAkB,GAAGC,OAAO,CAACN,aAAa,CAAC,CAAA;AACjD,EAAA,MAAMO,YAAY,GAAGJ,UAAU,IAAIR,MAAM,CAAA;AAEzC,EAAA,MAAMa,SAAS,GAAGC,KAAK,EAAE,CAAA;EACzB,MAAMC,SAAc,GAAG,EAAE,CAAA;AACzB,EAAA,IAAIP,UAAU,EAAE;AACZO,IAAAA,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAACH,YAAY,CAAA;AAC3C;AACAG,IAAAA,SAAS,CAAC,eAAe,CAAC,GAAGH,YAAY,IAAId,SAAS,KAAK,MAAM,GAAGe,SAAS,GAAGG,SAAS,CAAA;AAC7F,GAAA;AAEA,EAAA,oBACI7B,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAAC,QAAA,CAAA;AACIf,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EACLM,cAAc,EAAA;AAClBF,IAAAA,SAAS,EAAEY,UAAU,CACjBZ,SAAS,EACTuC,kBAAkB,CAAC;MACftB,QAAQ;AACRK,MAAAA,MAAM,EAAEY,YAAY;MACpBX,UAAU;AACViB,MAAAA,MAAM,EAAEjD,SAAAA;AACZ,KAAC,CACL,CAAA;AAAE,GAAA,CAAA,EAEDyC,kBAAkB,gBACfvB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKV,SAAS,EAAE,GAAGT,SAAS,CAAA,SAAA,CAAA;AAAY,GAAA,eACpCkB,KAAA,CAAAC,aAAA,CAAC+B,YAAY,EAAA9B,QAAA,CAAA;IACT+B,EAAE,EAAEjB,MAAM,KAAKC,SAAS,EAAEiB,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAA;AAAE,GAAA,EAC5CjB,SAAS,EAAA;IACd1B,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAS,MAAA,CAAA;AAChCqC,IAAAA,OAAO,EAAEA,OAAAA;AAAQ,GAAA,CAAA,EAEhBP,IAAI,iBAAIZ,KAAA,CAAAC,aAAA,CAACkC,IAAI,EAAA;IAAC5C,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAS,MAAA,CAAA;AAAC8B,IAAAA,IAAI,EAAEA,IAAK;IAACwB,IAAI,EAAEC,IAAI,CAACC,EAAAA;AAAG,GAAE,CAAC,eAC7EtC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAOc,KAAY,CACT,CAAC,eAEff,KAAA,CAAAC,aAAA,CAACsC,UAAU,EAAArC,QAAA,KACHkB,iBAAiB,EAAA;IACrB7B,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAW,QAAA,CAAA;AAClC8B,IAAAA,IAAI,EAAEC,MAAM,GAAG2B,YAAY,GAAGC,cAAe;IAC7CL,IAAI,EAAEC,IAAI,CAACK,CAAE;IACblC,QAAQ,EAAEC,QAAQ,CAACkC,GAAI;AACvBxB,IAAAA,OAAO,EAAED,aAAAA;GACLU,EAAAA,SAAS,CAChB,CACA,CAAC,gBAEN5B,KAAA,CAAAC,aAAA,CAAC+B,YAAY,EAAA9B,QAAA,CAAA;IACT+B,EAAE,EAAEjB,MAAM,KAAKC,SAAS,EAAEiB,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAA;AAAE,GAAA,EAC7CjB,SAAS,EAAA;IACb1B,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAS,MAAA,CAAA;AAChCqC,IAAAA,OAAO,EAAEA,OAAAA;GACLS,EAAAA,SAAS,GAEZhB,IAAI,iBAAIZ,KAAA,CAAAC,aAAA,CAACkC,IAAI,EAAA;IAAC5C,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAS,MAAA,CAAA;AAAC8B,IAAAA,IAAI,EAAEA,IAAK;IAACwB,IAAI,EAAEC,IAAI,CAACC,EAAAA;AAAG,GAAE,CAAC,eAC7EtC,KAAA,CAAAC,aAAA,CAAOc,MAAAA,EAAAA,IAAAA,EAAAA,KAAY,CAAC,EACnBM,UAAU,iBACPrB,KAAA,CAAAC,aAAA,CAACkC,IAAI,EAAA;IACD5C,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAY,SAAA,CAAA;AACnC8B,IAAAA,IAAI,EAAEC,MAAM,GAAG2B,YAAY,GAAGC,cAAe;IAC7CL,IAAI,EAAEC,IAAI,CAACC,EAAAA;AAAG,GACjB,CAEK,CACjB,EAEA,CAAC3B,SAAS,KAAK,MAAM,IAAIc,YAAY,kBAClCzB,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIV,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAa,UAAA,CAAA;AAAC8D,IAAAA,EAAE,EAAElB,SAAAA;GACxChC,EAAAA,OACD,CAER,CAAC,CAAA;AAEb,CAAC,EAAC;AACFK,kBAAkB,CAACO,WAAW,GAAGzB,cAAc,CAAA;AAC/CkB,kBAAkB,CAACR,SAAS,GAAGT,SAAS,CAAA;AACxCiB,kBAAkB,CAAC8C,YAAY,GAAGtC,aAAa;;;;"}
|
|
1
|
+
{"version":3,"file":"b477da26.js","sources":["../../src/components/side-navigation/SideNavigation.tsx","../../src/components/side-navigation/SideNavigationItem.tsx"],"sourcesContent":["import { Children, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { SideNavigationItem, Theme } from '@lumx/react';\nimport { GenericProps, HasTheme, isComponent } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationProps extends GenericProps, HasTheme {\n /** SideNavigationItem elements. */\n children: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigation';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SideNavigation component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigation = forwardRef<SideNavigationProps, HTMLUListElement>((props, ref) => {\n const defaultTheme = useTheme();\n const { children, className, theme = defaultTheme, ...forwardedProps } = props;\n const content = Children.toArray(children).filter(isComponent(SideNavigationItem));\n\n return (\n <ul\n ref={ref}\n {...forwardedProps}\n className={classNames(className, theme === Theme.dark && 'lumx-color-font-light-N', CLASSNAME)}\n >\n {content}\n </ul>\n );\n});\nSideNavigation.displayName = COMPONENT_NAME;\nSideNavigation.className = CLASSNAME;\n","import { Children, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\nimport { Emphasis, Icon, Size, IconButton, IconButtonProps } from '@lumx/react';\nimport { GenericProps, HasCloseMode, isComponent } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useId } from '@lumx/react/hooks/useId';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { RawClickable } from '@lumx/react/utils/react/RawClickable';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationItemProps extends GenericProps, HasCloseMode {\n /** SideNavigationItem elements. */\n children?: ReactNode;\n /** Emphasis variant. */\n emphasis?: Emphasis;\n /** Label content. */\n label: string | ReactNode;\n /** Icon (SVG path). */\n icon?: string;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Props to pass to the link (minus those already set by the SideNavigationItem props). */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Props to pass to the toggle button (minus those already set by the SideNavigationItem props). */\n toggleButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color' | 'size'>;\n /** On action button click callback. */\n onActionClick?(evt: React.MouseEvent): void;\n /** On click callback. */\n onClick?(evt: React.MouseEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigationItem';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<SideNavigationItemProps> = {\n emphasis: Emphasis.high,\n closeMode: 'unmount',\n};\n\n/**\n * SideNavigationItem component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigationItem = forwardRef<SideNavigationItemProps, HTMLLIElement>((props, ref) => {\n const {\n children,\n className,\n emphasis = DEFAULT_PROPS.emphasis,\n icon,\n isOpen,\n isSelected,\n label,\n linkAs,\n linkProps,\n onActionClick,\n onClick,\n toggleButtonProps,\n closeMode = DEFAULT_PROPS.closeMode,\n ...forwardedProps\n } = props;\n\n const content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));\n const hasContent = !isEmpty(content);\n const shouldSplitActions = Boolean(onActionClick);\n const showChildren = hasContent && isOpen;\n\n const contentId = useId();\n const ariaProps: any = {};\n if (hasContent) {\n ariaProps['aria-expanded'] = !!showChildren;\n // Associate with content ID only if in DOM (shown or hidden and not unmounted)\n ariaProps['aria-controls'] = showChildren || closeMode === 'hide' ? contentId : undefined;\n }\n\n return (\n <li\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n emphasis,\n isOpen: showChildren,\n isSelected,\n prefix: CLASSNAME,\n }),\n )}\n >\n {shouldSplitActions ? (\n <div className={`${CLASSNAME}__wrapper`}>\n <RawClickable\n as={linkAs || (linkProps?.href ? 'a' : 'button')}\n {...(linkProps as any)}\n className={`${CLASSNAME}__link`}\n onClick={onClick}\n >\n {icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />}\n <span>{label}</span>\n </RawClickable>\n\n <IconButton\n {...toggleButtonProps}\n className={`${CLASSNAME}__toggle`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.m}\n emphasis={Emphasis.low}\n onClick={onActionClick}\n {...ariaProps}\n />\n </div>\n ) : (\n <RawClickable\n as={linkAs || (linkProps?.href ? 'a' : 'button')}\n {...linkProps}\n className={`${CLASSNAME}__link`}\n onClick={onClick}\n {...ariaProps}\n >\n {icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />}\n <span>{label}</span>\n {hasContent && (\n <Icon\n className={`${CLASSNAME}__chevron`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.xs}\n />\n )}\n </RawClickable>\n )}\n\n {(closeMode === 'hide' || showChildren) && (\n <ul className={`${CLASSNAME}__children`} id={contentId}>\n {content}\n </ul>\n )}\n </li>\n );\n});\nSideNavigationItem.displayName = COMPONENT_NAME;\nSideNavigationItem.className = CLASSNAME;\nSideNavigationItem.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","SideNavigation","forwardRef","props","ref","defaultTheme","useTheme","children","className","theme","forwardedProps","content","Children","toArray","filter","isComponent","SideNavigationItem","_jsx","classNames","Theme","dark","displayName","DEFAULT_PROPS","emphasis","Emphasis","high","closeMode","icon","isOpen","isSelected","label","linkAs","linkProps","onActionClick","onClick","toggleButtonProps","hasContent","isEmpty","shouldSplitActions","Boolean","showChildren","contentId","useId","ariaProps","undefined","_jsxs","handleBasicClasses","prefix","RawClickable","as","href","Icon","size","Size","xs","IconButton","mdiChevronUp","mdiChevronDown","m","low","id","defaultProps"],"mappings":";;;;;;;;;;;;;AAkBA;AACA;AACA;AACA,MAAMA,gBAAc,GAAG,gBAAgB,CAAA;;AAEvC;AACA;AACA;AACA,MAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,cAAc,GAAGC,UAAU,CAAwC,CAACC,KAAK,EAAEC,GAAG,KAAK;AAC5F,EAAA,MAAMC,YAAY,GAAGC,QAAQ,EAAE,CAAA;EAC/B,MAAM;IAAEC,QAAQ;IAAEC,SAAS;AAAEC,IAAAA,KAAK,GAAGJ,YAAY;IAAE,GAAGK,cAAAA;AAAe,GAAC,GAAGP,KAAK,CAAA;AAC9E,EAAA,MAAMQ,OAAO,GAAGC,QAAQ,CAACC,OAAO,CAACN,QAAQ,CAAC,CAACO,MAAM,CAACC,WAAW,CAACC,kBAAkB,CAAC,CAAC,CAAA;AAElF,EAAA,oBACIC,GAAA,CAAA,IAAA,EAAA;AACIb,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GACLM,cAAc;AAClBF,IAAAA,SAAS,EAAEU,UAAU,CAACV,SAAS,EAAEC,KAAK,KAAKU,KAAK,CAACC,IAAI,IAAI,yBAAyB,EAAErB,WAAS,CAAE;AAAAQ,IAAAA,QAAA,EAE9FI,OAAAA;AAAO,GACR,CAAC,CAAA;AAEb,CAAC,EAAC;AACFV,cAAc,CAACoB,WAAW,GAAGvB,gBAAc,CAAA;AAC3CG,cAAc,CAACO,SAAS,GAAGT,WAAS;;ACTpC;AACA;AACA;AACA,MAAMD,cAAc,GAAG,oBAAoB,CAAA;;AAE3C;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMwB,aAA+C,GAAG;EACpDC,QAAQ,EAAEC,QAAQ,CAACC,IAAI;AACvBC,EAAAA,SAAS,EAAE,SAAA;AACf,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMV,kBAAkB,GAAGd,UAAU,CAAyC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;IACFG,QAAQ;IACRC,SAAS;IACTe,QAAQ,GAAGD,aAAa,CAACC,QAAQ;IACjCI,IAAI;IACJC,MAAM;IACNC,UAAU;IACVC,KAAK;IACLC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC,OAAO;IACPC,iBAAiB;IACjBT,SAAS,GAAGJ,aAAa,CAACI,SAAS;IACnC,GAAGhB,cAAAA;AACP,GAAC,GAAGP,KAAK,CAAA;AAET,EAAA,MAAMQ,OAAO,GAAGJ,QAAQ,IAAIK,QAAQ,CAACC,OAAO,CAACN,QAAQ,CAAC,CAACO,MAAM,CAACC,WAAW,CAACC,kBAAkB,CAAC,CAAC,CAAA;AAC9F,EAAA,MAAMoB,UAAU,GAAG,CAACC,OAAO,CAAC1B,OAAO,CAAC,CAAA;AACpC,EAAA,MAAM2B,kBAAkB,GAAGC,OAAO,CAACN,aAAa,CAAC,CAAA;AACjD,EAAA,MAAMO,YAAY,GAAGJ,UAAU,IAAIR,MAAM,CAAA;AAEzC,EAAA,MAAMa,SAAS,GAAGC,KAAK,EAAE,CAAA;EACzB,MAAMC,SAAc,GAAG,EAAE,CAAA;AACzB,EAAA,IAAIP,UAAU,EAAE;AACZO,IAAAA,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAACH,YAAY,CAAA;AAC3C;AACAG,IAAAA,SAAS,CAAC,eAAe,CAAC,GAAGH,YAAY,IAAId,SAAS,KAAK,MAAM,GAAGe,SAAS,GAAGG,SAAS,CAAA;AAC7F,GAAA;AAEA,EAAA,oBACIC,IAAA,CAAA,IAAA,EAAA;AACIzC,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GACLM,cAAc;AAClBF,IAAAA,SAAS,EAAEU,UAAU,CACjBV,SAAS,EACTsC,kBAAkB,CAAC;MACfvB,QAAQ;AACRK,MAAAA,MAAM,EAAEY,YAAY;MACpBX,UAAU;AACVkB,MAAAA,MAAM,EAAEhD,SAAAA;AACZ,KAAC,CACL,CAAE;IAAAQ,QAAA,EAAA,CAED+B,kBAAkB,gBACfO,IAAA,CAAA,KAAA,EAAA;MAAKrC,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAY,SAAA,CAAA;MAAAQ,QAAA,EAAA,cACpCsC,IAAA,CAACG,YAAY,EAAA;QACTC,EAAE,EAAElB,MAAM,KAAKC,SAAS,EAAEkB,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAE;AAAA,QAAA,GAC5ClB,SAAS;QACdxB,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAS,MAAA,CAAA;AAChCmC,QAAAA,OAAO,EAAEA,OAAQ;AAAA3B,QAAAA,QAAA,EAEhBoB,CAAAA,IAAI,iBAAIV,GAAA,CAACkC,IAAI,EAAA;UAAC3C,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAS,MAAA,CAAA;AAAC4B,UAAAA,IAAI,EAAEA,IAAK;UAACyB,IAAI,EAAEC,IAAI,CAACC,EAAAA;SAAK,CAAC,eAC7ErC,GAAA,CAAA,MAAA,EAAA;AAAAV,UAAAA,QAAA,EAAOuB,KAAAA;AAAK,SAAO,CAAC,CAAA;AAAA,OACV,CAAC,eAEfb,GAAA,CAACsC,UAAU,EAAA;AAAA,QAAA,GACHpB,iBAAiB;QACrB3B,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAW,QAAA,CAAA;AAClC4B,QAAAA,IAAI,EAAEC,MAAM,GAAG4B,YAAY,GAAGC,cAAe;QAC7CL,IAAI,EAAEC,IAAI,CAACK,CAAE;QACbnC,QAAQ,EAAEC,QAAQ,CAACmC,GAAI;AACvBzB,QAAAA,OAAO,EAAED,aAAc;QAAA,GACnBU,SAAAA;AAAS,OAChB,CAAC,CAAA;AAAA,KACD,CAAC,gBAENE,IAAA,CAACG,YAAY,EAAA;MACTC,EAAE,EAAElB,MAAM,KAAKC,SAAS,EAAEkB,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAE;AAAA,MAAA,GAC7ClB,SAAS;MACbxB,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAS,MAAA,CAAA;AAChCmC,MAAAA,OAAO,EAAEA,OAAQ;AAAA,MAAA,GACbS,SAAS;AAAApC,MAAAA,QAAA,EAEZoB,CAAAA,IAAI,iBAAIV,GAAA,CAACkC,IAAI,EAAA;QAAC3C,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAS,MAAA,CAAA;AAAC4B,QAAAA,IAAI,EAAEA,IAAK;QAACyB,IAAI,EAAEC,IAAI,CAACC,EAAAA;OAAK,CAAC,eAC7ErC,GAAA,CAAA,MAAA,EAAA;AAAAV,QAAAA,QAAA,EAAOuB,KAAAA;AAAK,OAAO,CAAC,EACnBM,UAAU,iBACPnB,GAAA,CAACkC,IAAI,EAAA;QACD3C,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAY,SAAA,CAAA;AACnC4B,QAAAA,IAAI,EAAEC,MAAM,GAAG4B,YAAY,GAAGC,cAAe;QAC7CL,IAAI,EAAEC,IAAI,CAACC,EAAAA;AAAG,OACjB,CACJ,CAAA;KACS,CACjB,EAEA,CAAC5B,SAAS,KAAK,MAAM,IAAIc,YAAY,kBAClCvB,GAAA,CAAA,IAAA,EAAA;MAAIT,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAa,UAAA,CAAA;AAAC6D,MAAAA,EAAE,EAAEnB,SAAU;AAAAlC,MAAAA,QAAA,EAClDI,OAAAA;AAAO,KACR,CACP,CAAA;AAAA,GACD,CAAC,CAAA;AAEb,CAAC,EAAC;AACFK,kBAAkB,CAACK,WAAW,GAAGvB,cAAc,CAAA;AAC/CkB,kBAAkB,CAACR,SAAS,GAAGT,SAAS,CAAA;AACxCiB,kBAAkB,CAAC6C,YAAY,GAAGvC,aAAa;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as useDisabledStateContext } from './
|
|
1
|
+
import { u as useDisabledStateContext } from './ea04260d.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Resolve disabled state from props.
|
|
@@ -33,4 +33,4 @@ function useDisableStateProps(props) {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
export { useDisableStateProps as u };
|
|
36
|
-
//# sourceMappingURL=
|
|
36
|
+
//# sourceMappingURL=b8667090.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"b8667090.js","sources":["../../src/utils/disabled/useDisableStateProps.tsx"],"sourcesContent":["import { useDisabledStateContext } from './DisabledStateContext';\n\ntype GenericProps = {\n disabled?: boolean;\n isDisabled?: boolean;\n 'aria-disabled'?: boolean | 'true' | 'false';\n onClick?: any;\n onChange?: any;\n};\n\ninterface Output<TProps extends GenericProps> {\n /** Is disabled or aria-disabled */\n isAnyDisabled?: boolean;\n disabledStateProps: { disabled?: boolean; 'aria-disabled'?: boolean };\n otherProps: TProps & { disabled: never; 'aria-disabled': never; isDisabled: never };\n}\n\n/**\n * Resolve disabled state from props.\n * (handles `disabled`, `isDisabled` and `aria-disabled`)\n *\n * @params component props\n */\nexport function useDisableStateProps<TProps extends GenericProps>(props: TProps): Output<TProps> {\n const { disabled, isDisabled = disabled, 'aria-disabled': ariaDisabled, onClick, onChange, ...otherProps } = props;\n const disabledStateContext = useDisabledStateContext();\n const disabledStateProps = {\n disabled: disabledStateContext?.state === 'disabled' || isDisabled,\n 'aria-disabled': ariaDisabled === true || ariaDisabled === 'true',\n };\n const isAnyDisabled = disabledStateProps['aria-disabled'] || disabledStateProps.disabled;\n if (!isAnyDisabled) {\n (otherProps as any).onClick = onClick;\n (otherProps as any).onChange = onChange;\n }\n return { disabledStateProps, otherProps: otherProps as Output<TProps>['otherProps'], isAnyDisabled };\n}\n"],"names":["useDisableStateProps","props","disabled","isDisabled","ariaDisabled","onClick","onChange","otherProps","disabledStateContext","useDisabledStateContext","disabledStateProps","state","isAnyDisabled"],"mappings":";;AAiBA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,oBAAoBA,CAA8BC,KAAa,EAAkB;EAC7F,MAAM;IAAEC,QAAQ;AAAEC,IAAAA,UAAU,GAAGD,QAAQ;AAAE,IAAA,eAAe,EAAEE,YAAY;IAAEC,OAAO;IAAEC,QAAQ;IAAE,GAAGC,UAAAA;AAAW,GAAC,GAAGN,KAAK,CAAA;AAClH,EAAA,MAAMO,oBAAoB,GAAGC,uBAAuB,EAAE,CAAA;AACtD,EAAA,MAAMC,kBAAkB,GAAG;AACvBR,IAAAA,QAAQ,EAAEM,oBAAoB,EAAEG,KAAK,KAAK,UAAU,IAAIR,UAAU;AAClE,IAAA,eAAe,EAAEC,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,MAAA;GAC9D,CAAA;EACD,MAAMQ,aAAa,GAAGF,kBAAkB,CAAC,eAAe,CAAC,IAAIA,kBAAkB,CAACR,QAAQ,CAAA;EACxF,IAAI,CAACU,aAAa,EAAE;IACfL,UAAU,CAASF,OAAO,GAAGA,OAAO,CAAA;IACpCE,UAAU,CAASD,QAAQ,GAAGA,QAAQ,CAAA;AAC3C,GAAA;EACA,OAAO;IAAEI,kBAAkB;AAAEH,IAAAA,UAAU,EAAEA,UAA0C;AAAEK,IAAAA,aAAAA;GAAe,CAAA;AACxG;;;;"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { m as getRootClassName, n as forwardRef,
|
|
2
|
-
import { h as handleBasicClasses } from './
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Defines the props of the component.
|
|
6
|
-
*/
|
|
1
|
+
import { m as getRootClassName, n as forwardRef, l as classNames } from './6589b796.js';
|
|
2
|
+
import { h as handleBasicClasses } from './e2afb13f.js';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
4
|
|
|
8
5
|
/**
|
|
9
6
|
* Component display name.
|
|
@@ -35,26 +32,30 @@ const Toolbar = forwardRef((props, ref) => {
|
|
|
35
32
|
label,
|
|
36
33
|
...forwardedProps
|
|
37
34
|
} = props;
|
|
38
|
-
return /*#__PURE__*/
|
|
39
|
-
ref: ref
|
|
40
|
-
|
|
35
|
+
return /*#__PURE__*/jsxs("div", {
|
|
36
|
+
ref: ref,
|
|
37
|
+
...forwardedProps,
|
|
41
38
|
className: classNames(className, handleBasicClasses({
|
|
42
39
|
hasAfter: Boolean(after),
|
|
43
40
|
hasBefore: Boolean(before),
|
|
44
41
|
hasLabel: Boolean(label),
|
|
45
42
|
prefix: CLASSNAME
|
|
46
|
-
}))
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
})),
|
|
44
|
+
children: [before && /*#__PURE__*/jsx("div", {
|
|
45
|
+
className: `${CLASSNAME}__before`,
|
|
46
|
+
children: before
|
|
47
|
+
}), label && /*#__PURE__*/jsx("div", {
|
|
48
|
+
className: `${CLASSNAME}__label`,
|
|
49
|
+
children: label
|
|
50
|
+
}), after && /*#__PURE__*/jsx("div", {
|
|
51
|
+
className: `${CLASSNAME}__after`,
|
|
52
|
+
children: after
|
|
53
|
+
})]
|
|
54
|
+
});
|
|
54
55
|
});
|
|
55
56
|
Toolbar.displayName = COMPONENT_NAME;
|
|
56
57
|
Toolbar.className = CLASSNAME;
|
|
57
58
|
Toolbar.defaultProps = DEFAULT_PROPS;
|
|
58
59
|
|
|
59
60
|
export { Toolbar };
|
|
60
|
-
//# sourceMappingURL=
|
|
61
|
+
//# sourceMappingURL=bae266a9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"bae266a9.js","sources":["../../src/components/toolbar/Toolbar.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface ToolbarProps extends GenericProps {\n /** After content (placed after the label). */\n after?: ReactNode;\n /** Before content (placed before the label). */\n before?: ReactNode;\n /** Label content. */\n label?: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Toolbar';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ToolbarProps> = {};\n\n/**\n * Toolbar component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Toolbar = forwardRef<ToolbarProps, HTMLDivElement>((props, ref) => {\n const { after, before, className, label, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n hasAfter: Boolean(after),\n hasBefore: Boolean(before),\n hasLabel: Boolean(label),\n prefix: CLASSNAME,\n }),\n )}\n >\n {before && <div className={`${CLASSNAME}__before`}>{before}</div>}\n {label && <div className={`${CLASSNAME}__label`}>{label}</div>}\n {after && <div className={`${CLASSNAME}__after`}>{after}</div>}\n </div>\n );\n});\nToolbar.displayName = COMPONENT_NAME;\nToolbar.className = CLASSNAME;\nToolbar.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","Toolbar","forwardRef","props","ref","after","before","className","label","forwardedProps","_jsxs","classNames","handleBasicClasses","hasAfter","Boolean","hasBefore","hasLabel","prefix","children","_jsx","displayName","defaultProps"],"mappings":";;;;AAoBA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,SAAS,CAAA;;AAEhC;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAoC,GAAG,EAAE,CAAA;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,OAAO,GAAGC,UAAU,CAA+B,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC5E,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAE,GAAGC,cAAAA;AAAe,GAAC,GAAGN,KAAK,CAAA;AAEpE,EAAA,oBACIO,IAAA,CAAA,KAAA,EAAA;AACIN,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GACLK,cAAc;AAClBF,IAAAA,SAAS,EAAEI,UAAU,CACjBJ,SAAS,EACTK,kBAAkB,CAAC;AACfC,MAAAA,QAAQ,EAAEC,OAAO,CAACT,KAAK,CAAC;AACxBU,MAAAA,SAAS,EAAED,OAAO,CAACR,MAAM,CAAC;AAC1BU,MAAAA,QAAQ,EAAEF,OAAO,CAACN,KAAK,CAAC;AACxBS,MAAAA,MAAM,EAAEnB,SAAAA;AACZ,KAAC,CACL,CAAE;IAAAoB,QAAA,EAAA,CAEDZ,MAAM,iBAAIa,GAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAW,QAAA,CAAA;AAAAoB,MAAAA,QAAA,EAAEZ,MAAAA;AAAM,KAAM,CAAC,EAChEE,KAAK,iBAAIW,GAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAU,OAAA,CAAA;AAAAoB,MAAAA,QAAA,EAAEV,KAAAA;AAAK,KAAM,CAAC,EAC7DH,KAAK,iBAAIc,GAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAU,OAAA,CAAA;AAAAoB,MAAAA,QAAA,EAAEb,KAAAA;AAAK,KAAM,CAAC,CAAA;AAAA,GAC7D,CAAC,CAAA;AAEd,CAAC,EAAC;AACFJ,OAAO,CAACmB,WAAW,GAAGvB,cAAc,CAAA;AACpCI,OAAO,CAACM,SAAS,GAAGT,SAAS,CAAA;AAC7BG,OAAO,CAACoB,YAAY,GAAGrB,aAAa;;;;"}
|