@panneau/lists 5.0.0-alpha.15 → 5.0.0-alpha.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/ListView.d.ts +7 -1
  2. package/dist/ListView.d.ts.map +1 -1
  3. package/dist/ListView.js +302 -297
  4. package/dist/ListView.js.map +1 -1
  5. package/dist/actions/ActionButton.d.ts +7 -1
  6. package/dist/actions/ActionButton.d.ts.map +1 -1
  7. package/dist/actions/ActionButton.js +74 -72
  8. package/dist/actions/ActionButton.js.map +1 -1
  9. package/dist/actions/Actions.css +12 -0
  10. package/dist/actions/Actions.module.js +6 -2
  11. package/dist/actions/Actions.module.js.map +1 -1
  12. package/dist/actions/RowActions.d.ts +21 -4
  13. package/dist/actions/RowActions.d.ts.map +1 -1
  14. package/dist/actions/RowActions.js +149 -84
  15. package/dist/actions/RowActions.js.map +1 -1
  16. package/dist/actions/fit.d.ts +25 -0
  17. package/dist/actions/fit.d.ts.map +1 -0
  18. package/dist/actions/fit.js +197 -0
  19. package/dist/actions/fit.js.map +1 -0
  20. package/dist/actions/icons.d.ts +5 -0
  21. package/dist/actions/icons.d.ts.map +1 -1
  22. package/dist/actions/icons.js +15 -1
  23. package/dist/actions/icons.js.map +1 -1
  24. package/dist/displays/Displays.css +19 -1
  25. package/dist/displays/Displays.module.js +8 -2
  26. package/dist/displays/Displays.module.js.map +1 -1
  27. package/dist/displays/displays.d.ts +31 -8
  28. package/dist/displays/displays.d.ts.map +1 -1
  29. package/dist/displays/displays.js +615 -164
  30. package/dist/displays/displays.js.map +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/layouts/CalendarLayout.d.ts +4 -4
  35. package/dist/layouts/CalendarLayout.d.ts.map +1 -1
  36. package/dist/layouts/CalendarLayout.js +25 -20
  37. package/dist/layouts/CalendarLayout.js.map +1 -1
  38. package/dist/layouts/CardsLayout.d.ts.map +1 -1
  39. package/dist/layouts/CardsLayout.js +90 -93
  40. package/dist/layouts/CardsLayout.js.map +1 -1
  41. package/dist/layouts/GalleryLayout.css +7 -0
  42. package/dist/layouts/GalleryLayout.d.ts.map +1 -1
  43. package/dist/layouts/GalleryLayout.js +76 -53
  44. package/dist/layouts/GalleryLayout.js.map +1 -1
  45. package/dist/layouts/GalleryLayout.module.js.map +1 -1
  46. package/dist/layouts/TableLayout.d.ts.map +1 -1
  47. package/dist/layouts/TableLayout.js +120 -93
  48. package/dist/layouts/TableLayout.js.map +1 -1
  49. package/dist/layouts/calendarDays.d.ts +14 -0
  50. package/dist/layouts/calendarDays.d.ts.map +1 -0
  51. package/dist/layouts/calendarDays.js +44 -0
  52. package/dist/layouts/calendarDays.js.map +1 -0
  53. package/dist/query.d.ts +3 -2
  54. package/dist/query.d.ts.map +1 -1
  55. package/dist/query.js +15 -4
  56. package/dist/query.js.map +1 -1
  57. package/dist/types.d.ts +9 -1
  58. package/dist/types.d.ts.map +1 -1
  59. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"displays.js","names":["Check","Minus","toReferences","getCountryFlag","getCountryName","isCountryCode","formatDuration","getRegionCountry","getRegionName","parsePhone","Badge","Icon","Tone","usePanneauIntl","messages","DisplayEntry","DisplayProps","findOption","getFieldOptions","toText","styles","EmptyValue","$","_c","t0","Symbol","for","empty","isEmpty","value","undefined","Array","isArray","length","TextDisplay","field","intl","t1","locale","text","t2","settings","secret","formatMessage","secretValue","t3","RichTextDisplay","replace","trim","NumberDisplay","number","Number","NaN","isNaN","formatNumber","BooleanDisplay","checked","boolean","true","false","yes","no","t4","t5","DATE_ONLY","TIME_ONLY","parseDate","Date","day","exec","date","getTime","DateDisplay","bb0","String","formatDate","dateStyle","DateTimeDisplay","timeStyle","TimeDisplay","match","formatTime","SelectDisplay","options","values","badges","map","entry","option","tone","label","RelationDisplay","references","_temp","join","reference","UrlDisplay","link","EmailDisplay","TelDisplay","t6","t7","flagged","country","flag","international","CountryDisplay","RegionDisplay","item","DurationDisplay","precision","JsonDisplay","json","JSON","stringify","code","slice","TagsDisplay","tags","filter","_temp2","tag_0","tag","find","EmbedDisplay","url","title","thumbnailUrl","thumbnail","media","LocationDisplay","lat","lng","address","maximumFractionDigits","format","ColorDisplay","swatch","backgroundColor","color","MediaDisplay","name","filename","Record","source","builtInDisplays","Readonly","textarea","slug","richtext","datetime","time","select","relation","email","tel","range","duration","embed","location","region","_c","styles"],"sources":["../../src/displays/displays.tsx"],"sourcesContent":["import { Check, Minus } from 'lucide-react';\n\nimport { toReferences } from '@panneau/fields';\nimport { getCountryFlag, getCountryName, isCountryCode } from '@panneau/fields/country';\nimport { formatDuration } from '@panneau/fields/duration';\nimport { getRegionCountry, getRegionName } from '@panneau/fields/region';\nimport { parsePhone } from '@panneau/fields/tel';\nimport { Badge, Icon, type Tone, usePanneauIntl } from '@panneau/ui';\n\nimport { messages } from '../messages';\nimport type { DisplayEntry, DisplayProps } from '../types';\nimport { findOption, getFieldOptions, toText } from '../values';\nimport styles from './Displays.module.css';\n\n/** What a cell shows without a value. Hidden from assistive technologies, which skip the cell. */\nexport function EmptyValue() {\n return (\n <span className={styles.empty} aria-hidden=\"true\">\n —\n </span>\n );\n}\n\nfunction isEmpty(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0)\n );\n}\n\n/**\n * Text, on two lines at most. The default display. The value of a `secret` text field\n * (`settings.secret`) shows as dots, never in clear.\n */\nexport function TextDisplay({ value, field }: DisplayProps) {\n const intl = usePanneauIntl();\n const text = toText(value, intl.locale);\n if (text === '') {\n return <EmptyValue />;\n }\n if (field?.settings?.secret === true) {\n return (\n <span role=\"img\" aria-label={intl.formatMessage(messages.secretValue)}>\n ••••••••\n </span>\n );\n }\n return <span className={styles.text}>{text}</span>;\n}\n\n/** HTML as plain text. */\nexport function RichTextDisplay({ value }: DisplayProps) {\n const text =\n typeof value === 'string'\n ? value\n .replace(/<[^>]*>/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim()\n : '';\n return text === '' ? <EmptyValue /> : <span className={styles.text}>{text}</span>;\n}\n\n/** A number, in the format of the locale. */\nexport function NumberDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const number =\n typeof value === 'number' ? value : typeof value === 'string' ? Number(value) : NaN;\n if (Number.isNaN(number) || isEmpty(value)) {\n return <EmptyValue />;\n }\n return <span className={styles.number}>{intl.formatNumber(number)}</span>;\n}\n\n/** Yes or no, as an icon with its label. */\nexport function BooleanDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n if (value === null || value === undefined) {\n return <EmptyValue />;\n }\n const checked = value === true || value === 1 || value === 'true' || value === '1';\n return (\n <span className={`${styles.boolean} ${checked ? styles.true : styles.false}`}>\n <Icon\n icon={checked ? Check : Minus}\n label={intl.formatMessage(checked ? messages.yes : messages.no)}\n />\n </span>\n );\n}\n\nconst DATE_ONLY = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst TIME_ONLY = /^(\\d{2}):(\\d{2})(?::(\\d{2}))?$/;\n\n/** A date (`2026-10-15`) as a local date, so that it doesn't move with the time zone. */\nfunction parseDate(value: unknown): Date | null {\n if (typeof value !== 'string' || value === '') {\n return null;\n }\n const day = DATE_ONLY.exec(value);\n const date =\n day !== null\n ? new Date(Number(day[1]), Number(day[2]) - 1, Number(day[3]))\n : new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\n/** A date, in the format of the locale. */\nexport function DateDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const date = parseDate(value);\n if (date === null) {\n return <EmptyValue />;\n }\n return <time dateTime={String(value)}>{intl.formatDate(date, { dateStyle: 'medium' })}</time>;\n}\n\n/** A date and a time, in the format and the time zone of the user. */\nexport function DateTimeDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const date = parseDate(value);\n if (date === null) {\n return <EmptyValue />;\n }\n return (\n <time dateTime={String(value)}>\n {intl.formatDate(date, { dateStyle: 'medium', timeStyle: 'short' })}\n </time>\n );\n}\n\n/** A time of day (`14:30`), in the format of the locale. */\nexport function TimeDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const match = typeof value === 'string' ? TIME_ONLY.exec(value) : null;\n if (match === null) {\n return <EmptyValue />;\n }\n const date = new Date(2000, 0, 1, Number(match[1]), Number(match[2]), Number(match[3] ?? 0));\n return <time dateTime={String(value)}>{intl.formatTime(date, { timeStyle: 'short' })}</time>;\n}\n\n/** The labels of the selected options, as badges. */\nexport function SelectDisplay({ value, field }: DisplayProps) {\n const options = getFieldOptions(field);\n const values: unknown[] = Array.isArray(value) ? value : isEmpty(value) ? [] : [value];\n if (values.length === 0) {\n return <EmptyValue />;\n }\n return (\n <span className={styles.badges}>\n {values.map((entry) => {\n const option = findOption(options, entry);\n return (\n <Badge key={String(entry)} tone={(option?.tone ?? 'neutral') as Tone}>\n {option?.label ?? String(entry)}\n </Badge>\n );\n })}\n </span>\n );\n}\n\n/** The labels of related items. */\nexport function RelationDisplay({ value }: DisplayProps) {\n const references = toReferences(value);\n if (references.length === 0) {\n return <EmptyValue />;\n }\n return (\n <span className={styles.text}>\n {references.map((reference) => reference.label).join(', ')}\n </span>\n );\n}\n\n/** A link that opens the URL. */\nexport function UrlDisplay({ value }: DisplayProps) {\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n return (\n <a className={styles.link} href={value} target=\"_blank\" rel=\"noreferrer\">\n {value.replace(/^https?:\\/\\//, '')}\n </a>\n );\n}\n\n/** A link that writes an email. */\nexport function EmailDisplay({ value }: DisplayProps) {\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n return (\n <a className={styles.link} href={`mailto:${value}`}>\n {value}\n </a>\n );\n}\n\n/**\n * A link that calls the phone number: the flag of its country and the number in its international\n * format (`+1 514 555 0199`). A value that isn't E.164 shows as it is.\n */\nexport function TelDisplay({ value }: DisplayProps) {\n if (typeof value !== 'string' || value.trim() === '') {\n return <EmptyValue />;\n }\n const number = parsePhone(value);\n if (number === null) {\n return (\n <a className={styles.link} href={`tel:${value.replace(/[^\\d+]/g, '')}`}>\n {value}\n </a>\n );\n }\n return (\n <a className={`${styles.link} ${styles.flagged}`} href={`tel:${number.number}`}>\n {number.country !== null ? (\n <span className={styles.flag} aria-hidden=\"true\">\n {getCountryFlag(number.country)}\n </span>\n ) : null}\n {number.international}\n </a>\n );\n}\n\n/** A country: its flag and its name in the user's locale. */\nexport function CountryDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n if (!isCountryCode(value)) {\n return <span className={styles.text}>{value}</span>;\n }\n return (\n <span className={styles.flagged}>\n <span className={styles.flag} aria-hidden=\"true\">\n {getCountryFlag(value)}\n </span>\n <span className={styles.text}>{getCountryName(value, intl.locale)}</span>\n </span>\n );\n}\n\n/**\n * A region: its name in the user's locale, from its country in the item (the field's `from`) or\n * the field's settings. A region that Panneau doesn't know shows as it is.\n */\nexport function RegionDisplay({ value, field, item }: DisplayProps) {\n const intl = usePanneauIntl();\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n const country = field !== null ? getRegionCountry(field, item) : null;\n return (\n <span className={styles.text}>{getRegionName(country, value, intl.locale) ?? value}</span>\n );\n}\n\n/** A duration in seconds, with its units: `1 h 5 min`, to the precision of its field. */\nexport function DurationDisplay({ value, field }: DisplayProps) {\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return <EmptyValue />;\n }\n const precision = field?.settings?.precision === 'minutes' ? 'minutes' : 'seconds';\n return <span className={styles.number}>{formatDuration(value, { precision })}</span>;\n}\n\n/** JSON on one line, shortened. */\nexport function JsonDisplay({ value }: DisplayProps) {\n if (value === null || value === undefined || typeof value !== 'object') {\n return <EmptyValue />;\n }\n const json = JSON.stringify(value);\n return (\n <code className={styles.code} title={json.length > 80 ? json : undefined}>\n {json.length > 80 ? `${json.slice(0, 79)}…` : json}\n </code>\n );\n}\n\n/** Tags, as badges, with the labels of their options. */\nexport function TagsDisplay({ value, field }: DisplayProps) {\n const tags = Array.isArray(value) ? value.filter((tag) => typeof tag === 'string') : [];\n if (tags.length === 0) {\n return <EmptyValue />;\n }\n const options = field?.options ?? [];\n return (\n <span className={styles.tags}>\n {tags.map((tag) => (\n <Badge key={tag}>\n {options.find((option) => String(option.value) === tag)?.label ?? tag}\n </Badge>\n ))}\n </span>\n );\n}\n\n/** What a URL embeds: its thumbnail and title, linked to it. */\nexport function EmbedDisplay({ value }: DisplayProps) {\n if (\n value === null ||\n typeof value !== 'object' ||\n typeof (value as { url?: unknown }).url !== 'string'\n ) {\n return <EmptyValue />;\n }\n const { url, title, thumbnailUrl } = value as {\n url: string;\n title?: unknown;\n thumbnailUrl?: unknown;\n };\n return (\n <a className={`${styles.link} ${styles.media}`} href={url} target=\"_blank\" rel=\"noreferrer\">\n {typeof thumbnailUrl === 'string' ? (\n <img className={styles.thumbnail} src={thumbnailUrl} alt=\"\" />\n ) : null}\n <span className={styles.text}>\n {typeof title === 'string' ? title : url.replace(/^https?:\\/\\//, '')}\n </span>\n </a>\n );\n}\n\n/** A place: its address, or its coordinates. */\nexport function LocationDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n if (value === null || typeof value !== 'object') {\n return <EmptyValue />;\n }\n const { lat, lng, address } = value as { lat?: unknown; lng?: unknown; address?: unknown };\n if (typeof address === 'string' && address !== '') {\n return <span className={styles.text}>{address}</span>;\n }\n if (typeof lat !== 'number' || typeof lng !== 'number') {\n return <EmptyValue />;\n }\n const format = (number: number) => intl.formatNumber(number, { maximumFractionDigits: 5 });\n return (\n <span className={styles.number}>\n {format(lat)}, {format(lng)}\n </span>\n );\n}\n\n/** A swatch, with the color's code. */\nexport function ColorDisplay({ value }: DisplayProps) {\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n return (\n <span className={styles.color}>\n <span className={styles.swatch} style={{ backgroundColor: value }} aria-hidden=\"true\" />\n {value}\n </span>\n );\n}\n\n/** A thumbnail and the name of a media item (or of the first one). */\nexport function MediaDisplay({ value }: DisplayProps) {\n const media: unknown = Array.isArray(value) ? value[0] : value;\n if (media === null || typeof media !== 'object') {\n return <EmptyValue />;\n }\n const { thumbnailUrl, url, name, filename } = media as Record<string, unknown>;\n const source =\n typeof thumbnailUrl === 'string' ? thumbnailUrl : typeof url === 'string' ? url : null;\n const label = typeof name === 'string' ? name : typeof filename === 'string' ? filename : '';\n return (\n <span className={styles.media}>\n {source !== null ? <img className={styles.thumbnail} src={source} alt=\"\" /> : null}\n {label !== '' ? <span className={styles.text}>{label}</span> : null}\n </span>\n );\n}\n\n/**\n * The built-in displays, by name. A column's display is its `display`, its field's `display`, or\n * its field's type: field types are display names. Values without a known display are shown as\n * text.\n */\nexport const builtInDisplays: Readonly<Record<string, DisplayEntry>> = {\n text: TextDisplay,\n textarea: TextDisplay,\n slug: TextDisplay,\n richtext: RichTextDisplay,\n number: NumberDisplay,\n boolean: BooleanDisplay,\n date: DateDisplay,\n datetime: DateTimeDisplay,\n time: TimeDisplay,\n select: SelectDisplay,\n relation: RelationDisplay,\n url: UrlDisplay,\n email: EmailDisplay,\n color: ColorDisplay,\n media: MediaDisplay,\n tel: TelDisplay,\n range: NumberDisplay,\n duration: DurationDisplay,\n json: JsonDisplay,\n tags: TagsDisplay,\n embed: EmbedDisplay,\n location: LocationDisplay,\n country: CountryDisplay,\n region: RegionDisplay,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"displays.js","names":["Check","File","FileText","Globe","Hash","Mail","Minus","Phone","toReferences","formatAddress","isAddress","getColorPalette","getSwatchColor","getCountryFlag","getCountryName","isCountryCode","formatDateRange","getDateRangeSettings","formatDuration","getDurationUnits","getLinkText","isLink","formatMoney","RegionFlag","getRegionCountry","getRegionName","parsePhone","splitExtension","fieldsMessages","Badge","Icon","Tone","usePanneauIntl","messages","DisplayEntry","DisplayProps","findOption","getFieldOptions","toText","styles","EmptyValue","$","_c","t0","Symbol","for","empty","isEmpty","value","undefined","Array","isArray","length","TextDisplay","field","intl","t1","locale","text","t2","settings","secret","formatMessage","secretValue","t3","RichTextDisplay","replace","trim","NumberDisplay","number","Number","NaN","isNaN","formatNumber","BooleanDisplay","checked","boolean","true","false","yes","no","t4","t5","DATE_ONLY","TIME_ONLY","parseDate","Date","day","exec","date","getTime","DateDisplay","bb0","String","formatDate","dateStyle","DateTimeDisplay","timeStyle","DateRangeDisplay","range","timeZone","kind","rangeFrom","start","rangeUntil","end","MoneyDisplay","TimeDisplay","match","formatTime","SelectDisplay","options","values","badges","map","entry","option","tone","label","RelationDisplay","references","_temp","join","reference","UrlDisplay","link","EmailDisplay","TelDisplay","extension","t6","t7","t8","flagged","country","flag","phoneExtension","international","Country","code","CountryDisplay","codes","filter","_temp2","countries","_temp3","code_0","RegionDisplay","item","name","regionFlag","DurationDisplay","labels","days","daysUnit","hours","hoursUnit","minutes","minutesUnit","seconds","secondsUnit","units","JsonDisplay","json","JSON","stringify","slice","TagsDisplay","tags","_temp4","tag_0","tag","find","EmbedDisplay","url","title","thumbnailUrl","thumbnail","media","LocationDisplay","lat","lng","address","maximumFractionDigits","format","AddressDisplay","LINK_ICONS","page","email","tel","file","LinkDisplay","type","icon","newTab","target","rel","ColorDisplay","candidate","swatch","backgroundColor","paletteColor","color","MediaDisplay","filename","Record","source","builtInDisplays","Readonly","textarea","slug","richtext","datetime","time","select","relation","duration","embed","location","region","daterange","money","_c","styles"],"sources":["../../src/displays/displays.tsx"],"sourcesContent":["import { Check, File, FileText, Globe, Hash, Mail, Minus, Phone } from 'lucide-react';\n\nimport { toReferences } from '@panneau/fields';\nimport { formatAddress, isAddress } from '@panneau/fields/address';\nimport { getColorPalette, getSwatchColor } from '@panneau/fields/color';\nimport { getCountryFlag, getCountryName, isCountryCode } from '@panneau/fields/country';\nimport { formatDateRange, getDateRangeSettings } from '@panneau/fields/daterange';\nimport { formatDuration, getDurationUnits } from '@panneau/fields/duration';\nimport { getLinkText, isLink } from '@panneau/fields/link';\nimport { formatMoney } from '@panneau/fields/money';\nimport { RegionFlag, getRegionCountry, getRegionName } from '@panneau/fields/region';\nimport { parsePhone, splitExtension } from '@panneau/fields/tel';\nimport { fieldsMessages } from '@panneau/intl';\nimport { Badge, Icon, type Tone, usePanneauIntl } from '@panneau/ui';\n\nimport { messages } from '../messages';\nimport type { DisplayEntry, DisplayProps } from '../types';\nimport { findOption, getFieldOptions, toText } from '../values';\nimport styles from './Displays.module.css';\n\n/** What a cell shows without a value. Hidden from assistive technologies, which skip the cell. */\nexport function EmptyValue() {\n return (\n <span className={styles.empty} aria-hidden=\"true\">\n —\n </span>\n );\n}\n\nfunction isEmpty(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0)\n );\n}\n\n/**\n * Text, on two lines at most. The default display. The value of a `secret` text field\n * (`settings.secret`) shows as dots, never in clear.\n */\nexport function TextDisplay({ value, field }: DisplayProps) {\n const intl = usePanneauIntl();\n const text = toText(value, intl.locale);\n if (text === '') {\n return <EmptyValue />;\n }\n if (field?.settings?.secret === true) {\n return (\n <span role=\"img\" aria-label={intl.formatMessage(messages.secretValue)}>\n ••••••••\n </span>\n );\n }\n return (\n <span className={styles.text} data-clamp=\"\">\n {text}\n </span>\n );\n}\n\n/** HTML as plain text. */\nexport function RichTextDisplay({ value }: DisplayProps) {\n const text =\n typeof value === 'string'\n ? value\n .replace(/<[^>]*>/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim()\n : '';\n return text === '' ? (\n <EmptyValue />\n ) : (\n <span className={styles.text} data-clamp=\"\">\n {text}\n </span>\n );\n}\n\n/** A number, in the format of the locale. */\nexport function NumberDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const number =\n typeof value === 'number' ? value : typeof value === 'string' ? Number(value) : NaN;\n if (Number.isNaN(number) || isEmpty(value)) {\n return <EmptyValue />;\n }\n return <span className={styles.number}>{intl.formatNumber(number)}</span>;\n}\n\n/** Yes or no, as an icon with its label. */\nexport function BooleanDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n if (value === null || value === undefined) {\n return <EmptyValue />;\n }\n const checked = value === true || value === 1 || value === 'true' || value === '1';\n return (\n <span className={`${styles.boolean} ${checked ? styles.true : styles.false}`}>\n <Icon\n icon={checked ? Check : Minus}\n label={intl.formatMessage(checked ? messages.yes : messages.no)}\n />\n </span>\n );\n}\n\nconst DATE_ONLY = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst TIME_ONLY = /^(\\d{2}):(\\d{2})(?::(\\d{2}))?$/;\n\n/** A date (`2026-10-15`) as a local date, so that it doesn't move with the time zone. */\nfunction parseDate(value: unknown): Date | null {\n if (typeof value !== 'string' || value === '') {\n return null;\n }\n const day = DATE_ONLY.exec(value);\n const date =\n day !== null\n ? new Date(Number(day[1]), Number(day[2]) - 1, Number(day[3]))\n : new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\n/** A date, in the format of the locale. */\nexport function DateDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const date = parseDate(value);\n if (date === null) {\n return <EmptyValue />;\n }\n return <time dateTime={String(value)}>{intl.formatDate(date, { dateStyle: 'medium' })}</time>;\n}\n\n/** A date and a time, in the format and the time zone of the user. */\nexport function DateTimeDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const date = parseDate(value);\n if (date === null) {\n return <EmptyValue />;\n }\n return (\n <time dateTime={String(value)}>\n {intl.formatDate(date, { dateStyle: 'medium', timeStyle: 'short' })}\n </time>\n );\n}\n\n/**\n * A range of dates (decision 0053), in the format of the locale: `Nov 4 – 6, 2026`. Date-times show\n * in the zone of the value or the field, with its short name when it isn't the user's. A range open\n * at one end shows `From Nov 4, 2026` or `Until Dec 1, 2026`.\n */\nexport function DateRangeDisplay({ value, field }: DisplayProps) {\n const intl = usePanneauIntl();\n const range = formatDateRange(\n value,\n intl.locale,\n getDateRangeSettings(field?.settings).timeZone,\n );\n if (range === null) {\n return <EmptyValue />;\n }\n const text =\n range.kind === 'from'\n ? intl.formatMessage(messages.rangeFrom, { start: range.text })\n : range.kind === 'until'\n ? intl.formatMessage(messages.rangeUntil, { end: range.text })\n : range.text;\n return (\n <span className={styles.text} data-clamp=\"\">\n {text}\n </span>\n );\n}\n\n/** An amount of money (decision 0053), in the currency format of the locale: `1 250,00 $`. */\nexport function MoneyDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const text = formatMoney(value, intl.locale);\n if (text === null) {\n return <EmptyValue />;\n }\n return <span className={styles.number}>{text}</span>;\n}\n\n/** A time of day (`14:30`), in the format of the locale. */\nexport function TimeDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n const match = typeof value === 'string' ? TIME_ONLY.exec(value) : null;\n if (match === null) {\n return <EmptyValue />;\n }\n const date = new Date(2000, 0, 1, Number(match[1]), Number(match[2]), Number(match[3] ?? 0));\n return <time dateTime={String(value)}>{intl.formatTime(date, { timeStyle: 'short' })}</time>;\n}\n\n/** The labels of the selected options, as badges. */\nexport function SelectDisplay({ value, field }: DisplayProps) {\n const options = getFieldOptions(field);\n const values: unknown[] = Array.isArray(value) ? value : isEmpty(value) ? [] : [value];\n if (values.length === 0) {\n return <EmptyValue />;\n }\n return (\n <span className={styles.badges}>\n {values.map((entry) => {\n const option = findOption(options, entry);\n return (\n <Badge key={String(entry)} tone={(option?.tone ?? 'neutral') as Tone}>\n {option?.label ?? String(entry)}\n </Badge>\n );\n })}\n </span>\n );\n}\n\n/** The labels of related items. */\nexport function RelationDisplay({ value }: DisplayProps) {\n const references = toReferences(value);\n if (references.length === 0) {\n return <EmptyValue />;\n }\n return (\n <span className={styles.text} data-clamp=\"\">\n {references.map((reference) => reference.label).join(', ')}\n </span>\n );\n}\n\n/** A link that opens the URL. */\nexport function UrlDisplay({ value }: DisplayProps) {\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n return (\n <a className={styles.link} href={value} target=\"_blank\" rel=\"noreferrer\">\n {value.replace(/^https?:\\/\\//, '')}\n </a>\n );\n}\n\n/** A link that writes an email. */\nexport function EmailDisplay({ value }: DisplayProps) {\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n return (\n <a className={styles.link} href={`mailto:${value}`}>\n {value}\n </a>\n );\n}\n\n/**\n * A link that calls the phone number: the flag of its country and the number in its international\n * format (`+1 514 555 0199`), with its extension (`, ext. 123`) when its field allows one\n * (`settings.extension`) or the column has no field. A value that isn't E.164 shows as it is.\n */\nexport function TelDisplay({ value, field }: DisplayProps) {\n const intl = usePanneauIntl();\n if (typeof value !== 'string' || value.trim() === '') {\n return <EmptyValue />;\n }\n const { number: text, extension } =\n field === null || field.settings?.extension === true\n ? splitExtension(value)\n : { number: value, extension: null };\n const number = parsePhone(text);\n if (number === null) {\n return (\n <a className={styles.link} href={`tel:${value.replace(/[^\\d+]/g, '')}`}>\n {value}\n </a>\n );\n }\n return (\n <a\n className={`${styles.link} ${styles.flagged}`}\n href={`tel:${number.number}${extension !== null ? `;ext=${extension}` : ''}`}\n >\n {number.country !== null ? (\n <span className={styles.flag} aria-hidden=\"true\">\n {getCountryFlag(number.country)}\n </span>\n ) : null}\n {extension !== null\n ? intl.formatMessage(messages.phoneExtension, {\n number: number.international,\n extension,\n })\n : number.international}\n </a>\n );\n}\n\n/** A country: its flag and its name in the user's locale. */\nfunction Country({ code }: { code: string }) {\n const intl = usePanneauIntl();\n if (!isCountryCode(code)) {\n return (\n <span className={styles.text} data-clamp=\"\">\n {code}\n </span>\n );\n }\n return (\n <span className={styles.flagged}>\n <span className={styles.flag} aria-hidden=\"true\">\n {getCountryFlag(code)}\n </span>\n <span className={styles.text} data-clamp=\"\">\n {getCountryName(code, intl.locale)}\n </span>\n </span>\n );\n}\n\n/** A country, or several (`multiple`): their flags and their names in the user's locale. */\nexport function CountryDisplay({ value }: DisplayProps) {\n const codes = (Array.isArray(value) ? value : [value]).filter(\n (code): code is string => typeof code === 'string' && code !== '',\n );\n if (codes.length === 0) {\n return <EmptyValue />;\n }\n if (codes.length === 1) {\n return <Country code={codes[0] as string} />;\n }\n return (\n <span className={styles.countries}>\n {codes.map((code) => (\n <Country key={code} code={code} />\n ))}\n </span>\n );\n}\n\n/**\n * A region: its flag, when it has one, and its name in the user's locale, from its country in the\n * item (the field's `from`) or the field's settings. A region that Panneau doesn't know shows as it\n * is.\n */\nexport function RegionDisplay({ value, field, item }: DisplayProps) {\n const intl = usePanneauIntl();\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n const country = field !== null ? getRegionCountry(field, item) : null;\n const name = getRegionName(country, value, intl.locale);\n if (name === null) {\n return (\n <span className={styles.text} data-clamp=\"\">\n {value}\n </span>\n );\n }\n return (\n <span className={styles.flagged}>\n <RegionFlag country={country} code={value} className={styles.regionFlag} />\n <span className={styles.text} data-clamp=\"\">\n {name}\n </span>\n </span>\n );\n}\n\n/**\n * A duration with its units, `1 h 5 min` or `2 d 4 h`: in the unit of its field (seconds by\n * default), from its largest unit to its precision.\n */\nexport function DurationDisplay({ value, field }: DisplayProps) {\n const intl = usePanneauIntl();\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return <EmptyValue />;\n }\n const labels = {\n days: intl.formatMessage(fieldsMessages.daysUnit),\n hours: intl.formatMessage(fieldsMessages.hoursUnit),\n minutes: intl.formatMessage(fieldsMessages.minutesUnit),\n seconds: intl.formatMessage(fieldsMessages.secondsUnit),\n };\n const units = field !== null ? getDurationUnits(field) : {};\n return <span className={styles.number}>{formatDuration(value, { ...units, labels })}</span>;\n}\n\n/** JSON on one line, shortened. */\nexport function JsonDisplay({ value }: DisplayProps) {\n if (value === null || value === undefined || typeof value !== 'object') {\n return <EmptyValue />;\n }\n const json = JSON.stringify(value);\n return (\n <code className={styles.code} title={json.length > 80 ? json : undefined}>\n {json.length > 80 ? `${json.slice(0, 79)}…` : json}\n </code>\n );\n}\n\n/** Tags, as badges, with the labels of their options. */\nexport function TagsDisplay({ value, field }: DisplayProps) {\n const tags = Array.isArray(value) ? value.filter((tag) => typeof tag === 'string') : [];\n if (tags.length === 0) {\n return <EmptyValue />;\n }\n const options = field?.options ?? [];\n return (\n <span className={styles.tags}>\n {tags.map((tag) => (\n <Badge key={tag}>\n {options.find((option) => String(option.value) === tag)?.label ?? tag}\n </Badge>\n ))}\n </span>\n );\n}\n\n/** What a URL embeds: its thumbnail and title, linked to it. */\nexport function EmbedDisplay({ value }: DisplayProps) {\n if (\n value === null ||\n typeof value !== 'object' ||\n typeof (value as { url?: unknown }).url !== 'string'\n ) {\n return <EmptyValue />;\n }\n const { url, title, thumbnailUrl } = value as {\n url: string;\n title?: unknown;\n thumbnailUrl?: unknown;\n };\n return (\n <a className={`${styles.link} ${styles.media}`} href={url} target=\"_blank\" rel=\"noreferrer\">\n {typeof thumbnailUrl === 'string' ? (\n <img className={styles.thumbnail} src={thumbnailUrl} alt=\"\" />\n ) : null}\n <span className={styles.text} data-clamp=\"\">\n {typeof title === 'string' ? title : url.replace(/^https?:\\/\\//, '')}\n </span>\n </a>\n );\n}\n\n/** A place: its address, or its coordinates. */\nexport function LocationDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n if (value === null || typeof value !== 'object') {\n return <EmptyValue />;\n }\n const { lat, lng, address } = value as { lat?: unknown; lng?: unknown; address?: unknown };\n if (typeof address === 'string' && address !== '') {\n return (\n <span className={styles.text} data-clamp=\"\">\n {address}\n </span>\n );\n }\n if (typeof lat !== 'number' || typeof lng !== 'number') {\n return <EmptyValue />;\n }\n const format = (number: number) => intl.formatNumber(number, { maximumFractionDigits: 5 });\n return (\n <span className={styles.number}>\n {format(lat)}, {format(lng)}\n </span>\n );\n}\n\n/** An address on one line, in the order of its country, after the flag of its country. */\nexport function AddressDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n if (!isAddress(value)) {\n return <EmptyValue />;\n }\n const text = formatAddress(value, intl.locale);\n const country = typeof value.country === 'string' ? value.country : '';\n if (text === '' && !isCountryCode(country)) {\n return <EmptyValue />;\n }\n return (\n <span className={styles.flagged}>\n {isCountryCode(country) ? (\n <span className={styles.flag} title={getCountryName(country, intl.locale)}>\n {getCountryFlag(country)}\n </span>\n ) : null}\n <span className={styles.text} data-clamp=\"\">\n {text !== '' ? text : getCountryName(country, intl.locale)}\n </span>\n </span>\n );\n}\n\nconst LINK_ICONS = { url: Globe, page: FileText, email: Mail, tel: Phone, file: File };\n\n/**\n * A link: the icon of its type, and its label in the user's locale, or its page or its URL. It\n * opens its URL when it has one, in a new tab when the link does.\n */\nexport function LinkDisplay({ value }: DisplayProps) {\n const intl = usePanneauIntl();\n if (!isLink(value)) {\n return <EmptyValue />;\n }\n const text = getLinkText(value, intl.locale);\n if (text === null) {\n return <EmptyValue />;\n }\n const icon = (\n <Icon icon={LINK_ICONS[value.type as keyof typeof LINK_ICONS] ?? Hash} size=\"sm\" />\n );\n const url = typeof value.url === 'string' && value.url !== '' ? value.url : null;\n if (url === null) {\n return (\n <span className={styles.flagged}>\n {icon}\n <span className={styles.text} data-clamp=\"\">\n {text}\n </span>\n </span>\n );\n }\n return (\n <a\n className={`${styles.link} ${styles.flagged}`}\n href={url}\n {...(value.newTab === true ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n >\n {icon}\n {text}\n </a>\n );\n}\n\n/**\n * A swatch, with the color's code. A color of the field's palette (`settings.palette`) shows its\n * swatch and its label.\n */\nexport function ColorDisplay({ value, field }: DisplayProps) {\n if (typeof value !== 'string' || value === '') {\n return <EmptyValue />;\n }\n const entry = getColorPalette(field)?.find((candidate) => candidate.value === value);\n if (entry !== undefined) {\n const swatch = getSwatchColor(entry);\n return (\n <span className={styles.paletteColor}>\n <span\n className={styles.swatch}\n style={swatch !== null ? { backgroundColor: swatch } : undefined}\n aria-hidden=\"true\"\n />\n <span className={styles.text} data-clamp=\"\">\n {entry.label ?? entry.value}\n </span>\n </span>\n );\n }\n return (\n <span className={styles.color}>\n <span className={styles.swatch} style={{ backgroundColor: value }} aria-hidden=\"true\" />\n {value}\n </span>\n );\n}\n\n/** A thumbnail and the name of a media item (or of the first one). */\nexport function MediaDisplay({ value }: DisplayProps) {\n const media: unknown = Array.isArray(value) ? value[0] : value;\n if (media === null || typeof media !== 'object') {\n return <EmptyValue />;\n }\n const { thumbnailUrl, url, name, filename } = media as Record<string, unknown>;\n const source =\n typeof thumbnailUrl === 'string' ? thumbnailUrl : typeof url === 'string' ? url : null;\n const label = typeof name === 'string' ? name : typeof filename === 'string' ? filename : '';\n return (\n <span className={styles.media}>\n {source !== null ? <img className={styles.thumbnail} src={source} alt=\"\" /> : null}\n {label !== '' ? (\n <span className={styles.text} data-clamp=\"\">\n {label}\n </span>\n ) : null}\n </span>\n );\n}\n\n/**\n * The built-in displays, by name. A column's display is its `display`, its field's `display`, or\n * its field's type: field types are display names. Values without a known display are shown as\n * text.\n */\nexport const builtInDisplays: Readonly<Record<string, DisplayEntry>> = {\n text: TextDisplay,\n textarea: TextDisplay,\n slug: TextDisplay,\n richtext: RichTextDisplay,\n number: NumberDisplay,\n boolean: BooleanDisplay,\n date: DateDisplay,\n datetime: DateTimeDisplay,\n time: TimeDisplay,\n select: SelectDisplay,\n relation: RelationDisplay,\n url: UrlDisplay,\n email: EmailDisplay,\n color: ColorDisplay,\n media: MediaDisplay,\n tel: TelDisplay,\n range: NumberDisplay,\n duration: DurationDisplay,\n json: JsonDisplay,\n tags: TagsDisplay,\n embed: EmbedDisplay,\n location: LocationDisplay,\n country: CountryDisplay,\n region: RegionDisplay,\n address: AddressDisplay,\n link: LinkDisplay,\n daterange: DateRangeDisplay,\n money: MoneyDisplay,\n};\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { type ListActions, getActionHref, groupListActions, isAllowedOn } from './actions/actions.js';
2
2
  export { ConfirmDialog, type ConfirmDialogProps, type ConfirmPreview, } from './actions/ConfirmDialog.js';
3
3
  export { type ActionIcons, getActionIcon } from './actions/icons.js';
4
- export { BooleanDisplay, ColorDisplay, CountryDisplay, DateDisplay, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, JsonDisplay, LocationDisplay, MediaDisplay, NumberDisplay, RegionDisplay, RelationDisplay, RichTextDisplay, SelectDisplay, TagsDisplay, TelDisplay, TextDisplay, TimeDisplay, UrlDisplay, builtInDisplays, } from './displays/displays.js';
4
+ export { BooleanDisplay, ColorDisplay, CountryDisplay, DateDisplay, DateRangeDisplay, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, JsonDisplay, LocationDisplay, MediaDisplay, MoneyDisplay, NumberDisplay, RegionDisplay, AddressDisplay, LinkDisplay, RelationDisplay, RichTextDisplay, SelectDisplay, TagsDisplay, TelDisplay, TextDisplay, TimeDisplay, UrlDisplay, builtInDisplays, } from './displays/displays.js';
5
5
  export { DateFilter, DateRangeFilter, RelationFilter, SelectFilter, TextFilter, ToggleFilter, builtInFilters, } from './filters/controls.js';
6
6
  export { CalendarLayout } from './layouts/CalendarLayout.js';
7
7
  export { CardsLayout } from './layouts/CardsLayout.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EACH,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACH,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,eAAe,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EACH,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,UAAU,EACV,KAAK,eAAe,EACpB,cAAc,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,YAAY,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,eAAe,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EACH,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACH,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,eAAe,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EACH,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,UAAU,EACV,KAAK,eAAe,EACpB,cAAc,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,YAAY,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,eAAe,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { getActionHref, groupListActions, isAllowedOn } from "./actions/actions.
2
2
  import { ConfirmDialog } from "./actions/ConfirmDialog.js";
3
3
  import { getActionIcon } from "./actions/icons.js";
4
4
  import { getLocalizedValue, toText } from "./values.js";
5
- import { BooleanDisplay, ColorDisplay, CountryDisplay, DateDisplay, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, JsonDisplay, LocationDisplay, MediaDisplay, NumberDisplay, RegionDisplay, RelationDisplay, RichTextDisplay, SelectDisplay, TagsDisplay, TelDisplay, TextDisplay, TimeDisplay, UrlDisplay, builtInDisplays } from "./displays/displays.js";
5
+ import { AddressDisplay, BooleanDisplay, ColorDisplay, CountryDisplay, DateDisplay, DateRangeDisplay, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, JsonDisplay, LinkDisplay, LocationDisplay, MediaDisplay, MoneyDisplay, NumberDisplay, RegionDisplay, RelationDisplay, RichTextDisplay, SelectDisplay, TagsDisplay, TelDisplay, TextDisplay, TimeDisplay, UrlDisplay, builtInDisplays } from "./displays/displays.js";
6
6
  import { DateFilter, DateRangeFilter, RelationFilter, SelectFilter, TextFilter, ToggleFilter, builtInFilters } from "./filters/controls.js";
7
7
  import { CalendarLayout } from "./layouts/CalendarLayout.js";
8
8
  import { CardsLayout } from "./layouts/CardsLayout.js";
@@ -19,4 +19,4 @@ import { ListView } from "./ListView.js";
19
19
  import { applyListQuery } from "./query.js";
20
20
  import { List } from "./List.js";
21
21
  import { listsPlugin } from "./plugin.js";
22
- export { BooleanDisplay, CalendarLayout, CardsLayout, ColorDisplay, ConfirmDialog, CountryDisplay, CursorPagination, DateDisplay, DateFilter, DateRangeFilter, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, GalleryLayout, ItemDetails, JsonDisplay, List, ListView, LocationDisplay, MediaDisplay, NumberDisplay, Pagination, RegionDisplay, RelationDisplay, RelationFilter, RichTextDisplay, SearchField, SelectDisplay, SelectFilter, TableLayout, TagsDisplay, TelDisplay, TextDisplay, TextFilter, TimeDisplay, ToggleFilter, UrlDisplay, applyListQuery, builtInDisplays, builtInFilters, builtInLayouts, countSelected, getActionHref, getActionIcon, getImageUrl, getLocalizedValue, getPageSelection, getPagingProps, groupListActions, isAllowedOn, isItemSelected, listsPlugin, toText, useListState };
22
+ export { AddressDisplay, BooleanDisplay, CalendarLayout, CardsLayout, ColorDisplay, ConfirmDialog, CountryDisplay, CursorPagination, DateDisplay, DateFilter, DateRangeDisplay, DateRangeFilter, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, GalleryLayout, ItemDetails, JsonDisplay, LinkDisplay, List, ListView, LocationDisplay, MediaDisplay, MoneyDisplay, NumberDisplay, Pagination, RegionDisplay, RelationDisplay, RelationFilter, RichTextDisplay, SearchField, SelectDisplay, SelectFilter, TableLayout, TagsDisplay, TelDisplay, TextDisplay, TextFilter, TimeDisplay, ToggleFilter, UrlDisplay, applyListQuery, builtInDisplays, builtInFilters, builtInLayouts, countSelected, getActionHref, getActionIcon, getImageUrl, getLocalizedValue, getPageSelection, getPagingProps, groupListActions, isAllowedOn, isItemSelected, listsPlugin, toText, useListState };
@@ -1,9 +1,9 @@
1
1
  import type { ListLayoutProps } from '../types.js';
2
2
  /**
3
- * Items on the days of a month (decision 0044): the weeks of the month, from the first day of the
4
- * week of the locale, with the title of each item as its link, in the order of their dates, and
5
- * buttons to the previous, the next and the current month. On narrow lists, the days that have
6
- * items, one under the other.
3
+ * Items on the days of a month (decision 0044), and a range on each day it covers (decision 0053):
4
+ * the weeks of the month, from the first day of the week of the locale, with the title of each item
5
+ * as its link, in the order of their dates, and buttons to the previous, the next and the current
6
+ * month. On narrow lists, the days that have items, one under the other.
7
7
  */
8
8
  export declare function CalendarLayout({ items, columns, renderValue, getItemLabel, getItemHref, isCurrent, label, calendar, }: ListLayoutProps): import("react").JSX.Element;
9
9
  //# sourceMappingURL=CalendarLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/CalendarLayout.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,UAAU,CAAC;AAyD1D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,KAAK,EACL,QAAQ,GACX,EAAE,eAAe,+BA4IjB"}
1
+ {"version":3,"file":"CalendarLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/CalendarLayout.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,UAAU,CAAC;AAiD1D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,KAAK,EACL,QAAQ,GACX,EAAE,eAAe,+BA4IjB"}
@@ -1,26 +1,24 @@
1
1
  import { messages } from "../messages.js";
2
2
  import CalendarLayout_module_default from "./CalendarLayout.module.js";
3
3
  import { ItemTitle } from "./ItemTitle.js";
4
+ import { getItemDays } from "./calendarDays.js";
4
5
  import { currentMonth, isMonth, shiftMonth } from "@panneau/core";
5
6
  import { c } from "react/compiler-runtime";
6
7
  import { Button, IconButton, usePanneauIntl } from "@panneau/ui";
7
8
  import { jsx, jsxs } from "react/jsx-runtime";
8
9
  import { ChevronLeft, ChevronRight } from "lucide-react";
10
+ import { isDateRangeValue } from "@panneau/fields/daterange";
9
11
  //#region src/layouts/CalendarLayout.tsx
10
- var DAY = /^\d{4}-\d{2}-\d{2}$/;
11
12
  function pad(value, length = 2) {
12
13
  return String(value).padStart(length, "0");
13
14
  }
14
15
  function dayOf(date) {
15
16
  return `${pad(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1)}-${pad(date.getUTCDate())}`;
16
17
  }
17
- /** The day of a `date` (as it is) or a `datetime` (in the time zone of the browser). */
18
- function getItemDay(value) {
19
- if (typeof value !== "string" || value === "") return null;
20
- if (DAY.test(value)) return value;
21
- const date = new Date(value);
22
- if (Number.isNaN(date.getTime())) return null;
23
- return `${pad(date.getFullYear(), 4)}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
18
+ /** What orders the items of a day: a date-time, or the start of a range. */
19
+ function sortKey(value) {
20
+ if (isDateRangeValue(value)) return value.start ?? value.end ?? "";
21
+ return typeof value === "string" ? value : "";
24
22
  }
25
23
  /** The first day of the week in a locale: 1 for Monday to 7 for Sunday. */
26
24
  function getFirstDay(locale) {
@@ -43,10 +41,10 @@ function getWeeks(month, firstDay) {
43
41
  return Array.from({ length: days.length / 7 }, (_, week) => days.slice(week * 7, week * 7 + 7));
44
42
  }
45
43
  /**
46
- * Items on the days of a month (decision 0044): the weeks of the month, from the first day of the
47
- * week of the locale, with the title of each item as its link, in the order of their dates, and
48
- * buttons to the previous, the next and the current month. On narrow lists, the days that have
49
- * items, one under the other.
44
+ * Items on the days of a month (decision 0044), and a range on each day it covers (decision 0053):
45
+ * the weeks of the month, from the first day of the week of the locale, with the title of each item
46
+ * as its link, in the order of their dates, and buttons to the previous, the next and the current
47
+ * month. On narrow lists, the days that have items, one under the other.
50
48
  */
51
49
  function CalendarLayout(t0) {
52
50
  const $ = c(45);
@@ -106,14 +104,21 @@ function CalendarLayout(t0) {
106
104
  }
107
105
  const todayDay = `${t11}-${t12}-${t13}`;
108
106
  const byDay = /* @__PURE__ */ new Map();
109
- if (calendar !== void 0) items.forEach((item) => {
110
- const value = item[calendar.field];
111
- const day = getItemDay(value);
112
- if (day !== null) byDay.set(day, [...byDay.get(day) ?? [], {
113
- item,
114
- value: String(value)
115
- }]);
116
- });
107
+ if (calendar !== void 0) {
108
+ const shown = {
109
+ first: weeks[0]?.[0] ?? "",
110
+ last: weeks.at(-1)?.at(-1) ?? ""
111
+ };
112
+ items.forEach((item) => {
113
+ const value = item[calendar.field];
114
+ getItemDays(value, shown, calendar.timeZone).forEach((day) => {
115
+ byDay.set(day, [...byDay.get(day) ?? [], {
116
+ item,
117
+ value: sortKey(value)
118
+ }]);
119
+ });
120
+ });
121
+ }
117
122
  const more = calendar?.more ?? null;
118
123
  t5 = CalendarLayout_module_default.calendar;
119
124
  let t14;
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarLayout.js","names":["ChevronLeft","ChevronRight","currentMonth","isMonth","shiftMonth","Button","IconButton","usePanneauIntl","messages","ListItem","ListLayoutProps","styles","ItemTitle","DAY","pad","value","length","String","padStart","dayOf","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getItemDay","test","Number","isNaN","getTime","getFullYear","getMonth","getDate","getFirstDay","locale","info","Intl","Locale","getWeekInfo","firstDay","weekInfo","getWeeks","month","year","index","split","map","first","UTC","last","offset","getUTCDay","start","days","time","push","Array","from","_","week","slice","CalendarLayout","t0","$","_c","items","columns","renderValue","getItemLabel","getItemHref","isCurrent","label","calendar","intl","t1","t2","t3","t4","t5","t6","t7","today","undefined","t8","t9","title","weeks","monthLabel","DateTimeFormat","timeZone","format","dayLabel","weekday","day","t10","t11","t12","t13","Symbol","for","now","todayDay","byDay","Map","forEach","item","field","set","get","more","t14","formatMessage","previousMonth","t15","thisMonth","t16","nextMonth","header","navigation","onMonthChange","total","calendarMore","shown","calendarMoreUnknown","grid","t17","day_0","day_1","entries","sort","_temp","startsWith","dayNumber","t18","item_0","id","a","b","localeCompare","_c","styles"],"sources":["../../src/layouts/CalendarLayout.tsx"],"sourcesContent":["import { ChevronLeft, ChevronRight } from 'lucide-react';\n\nimport { currentMonth, isMonth, shiftMonth } from '@panneau/core';\nimport { Button, IconButton, usePanneauIntl } from '@panneau/ui';\n\nimport { messages } from '../messages';\nimport type { ListItem, ListLayoutProps } from '../types';\nimport styles from './CalendarLayout.module.css';\nimport { ItemTitle } from './ItemTitle';\n\nconst DAY = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nfunction pad(value: number, length = 2): string {\n return String(value).padStart(length, '0');\n}\n\nfunction dayOf(date: Date): string {\n return `${pad(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1)}-${pad(date.getUTCDate())}`;\n}\n\n/** The day of a `date` (as it is) or a `datetime` (in the time zone of the browser). */\nfunction getItemDay(value: unknown): string | null {\n if (typeof value !== 'string' || value === '') {\n return null;\n }\n if (DAY.test(value)) {\n return value;\n }\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) {\n return null;\n }\n return `${pad(date.getFullYear(), 4)}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;\n}\n\n/** The first day of the week in a locale: 1 for Monday to 7 for Sunday. */\nfunction getFirstDay(locale: string): number {\n try {\n const info = new Intl.Locale(locale) as Intl.Locale & {\n getWeekInfo?: () => { firstDay: number };\n weekInfo?: { firstDay: number };\n };\n return info.getWeekInfo?.().firstDay ?? info.weekInfo?.firstDay ?? 1;\n } catch {\n return 1;\n }\n}\n\n/** The weeks that show a month, as days (`2026-11-02`), from the first day of the week. */\nfunction getWeeks(month: string, firstDay: number): string[][] {\n const [year = 1970, index = 1] = month.split('-').map(Number);\n const first = new Date(Date.UTC(year, index - 1, 1));\n const last = new Date(Date.UTC(year, index, 0));\n // getUTCDay(): 0 for Sunday; firstDay: 7 for Sunday.\n const offset = (first.getUTCDay() - (firstDay % 7) + 7) % 7;\n const start = Date.UTC(year, index - 1, 1 - offset);\n const days: string[] = [];\n for (let time = start; days.length % 7 !== 0 || time <= last.getTime(); time += 86_400_000) {\n days.push(dayOf(new Date(time)));\n }\n return Array.from({ length: days.length / 7 }, (_, week) => days.slice(week * 7, week * 7 + 7));\n}\n\n/**\n * Items on the days of a month (decision 0044): the weeks of the month, from the first day of the\n * week of the locale, with the title of each item as its link, in the order of their dates, and\n * buttons to the previous, the next and the current month. On narrow lists, the days that have\n * items, one under the other.\n */\nexport function CalendarLayout({\n items,\n columns,\n renderValue,\n getItemLabel,\n getItemHref,\n isCurrent,\n label,\n calendar,\n}: ListLayoutProps) {\n const intl = usePanneauIntl();\n const today = currentMonth();\n const month = calendar !== undefined && isMonth(calendar.month) ? calendar.month : today;\n const [year = 1970, index = 1] = month.split('-').map(Number);\n const [title] = columns;\n const weeks = getWeeks(month, getFirstDay(intl.locale));\n const monthLabel = new Intl.DateTimeFormat(intl.locale, {\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC',\n }).format(new Date(Date.UTC(year, index - 1, 1)));\n const dayLabel = new Intl.DateTimeFormat(intl.locale, {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n const weekday = (format: 'short' | 'long') =>\n new Intl.DateTimeFormat(intl.locale, { weekday: format, timeZone: 'UTC' });\n const now = new Date();\n const todayDay = `${pad(now.getFullYear(), 4)}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`;\n\n const byDay = new Map<string, { item: ListItem; value: string }[]>();\n if (calendar !== undefined) {\n items.forEach((item) => {\n const value = item[calendar.field];\n const day = getItemDay(value);\n if (day !== null) {\n byDay.set(day, [...(byDay.get(day) ?? []), { item, value: String(value) }]);\n }\n });\n }\n const more = calendar?.more ?? null;\n\n return (\n <div className={styles.calendar}>\n <div className={styles.header}>\n <p className={styles.month} aria-live=\"polite\">\n {monthLabel}\n </p>\n <div className={styles.navigation}>\n <IconButton\n icon={ChevronLeft}\n label={intl.formatMessage(messages.previousMonth)}\n onPress={() => calendar?.onMonthChange(shiftMonth(month, -1))}\n />\n <Button\n size=\"sm\"\n isDisabled={month === today}\n onPress={() => calendar?.onMonthChange(today)}\n >\n {intl.formatMessage(messages.thisMonth)}\n </Button>\n <IconButton\n icon={ChevronRight}\n label={intl.formatMessage(messages.nextMonth)}\n onPress={() => calendar?.onMonthChange(shiftMonth(month, 1))}\n />\n </div>\n </div>\n {more !== null ? (\n <p className={styles.more} role=\"status\">\n {more.total !== null\n ? intl.formatMessage(messages.calendarMore, {\n shown: items.length,\n total: more.total,\n })\n : intl.formatMessage(messages.calendarMoreUnknown, {\n shown: items.length,\n })}\n </p>\n ) : null}\n <table className={styles.grid} aria-label={`${label}, ${monthLabel}`}>\n <thead>\n <tr>\n {(weeks[0] ?? []).map((day) => {\n const date = new Date(`${day}T00:00:00Z`);\n return (\n <th key={day} scope=\"col\">\n <abbr title={weekday('long').format(date)}>\n {weekday('short').format(date)}\n </abbr>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {weeks.map((week) => (\n <tr key={week[0]}>\n {week.map((day) => {\n const entries = [...(byDay.get(day) ?? [])].sort((a, b) =>\n a.value.localeCompare(b.value),\n );\n return (\n <td\n key={day}\n data-outside={!day.startsWith(month) || undefined}\n data-empty={entries.length === 0 || undefined}\n aria-current={day === todayDay ? 'date' : undefined}\n >\n <time dateTime={day} className={styles.day}>\n <span aria-hidden=\"true\" className={styles.dayNumber}>\n {Number(day.slice(8))}\n </span>\n <span className={styles.dayLabel}>\n {dayLabel.format(new Date(`${day}T00:00:00Z`))}\n </span>\n </time>\n {entries.length > 0 ? (\n <ul className={styles.items}>\n {entries.map(({ item }) => (\n <li\n key={item.id}\n data-current={\n isCurrent?.(item) === true || undefined\n }\n >\n <ItemTitle\n href={getItemHref?.(item) ?? null}\n current={isCurrent?.(item) ?? false}\n >\n {title !== undefined\n ? renderValue(item, title)\n : getItemLabel(item)}\n </ItemTitle>\n </li>\n ))}\n </ul>\n ) : null}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarLayout.js","names":["ChevronLeft","ChevronRight","currentMonth","isMonth","shiftMonth","isDateRangeValue","Button","IconButton","usePanneauIntl","messages","ListItem","ListLayoutProps","styles","ItemTitle","getItemDays","pad","value","length","String","padStart","dayOf","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","sortKey","start","end","getFirstDay","locale","info","Intl","Locale","getWeekInfo","firstDay","weekInfo","getWeeks","month","year","index","split","map","Number","first","UTC","last","offset","getUTCDay","days","time","getTime","push","Array","from","_","week","slice","CalendarLayout","t0","$","_c","items","columns","renderValue","getItemLabel","getItemHref","isCurrent","label","calendar","intl","t1","t2","t3","t4","t5","t6","t7","today","undefined","t8","t9","title","weeks","monthLabel","DateTimeFormat","timeZone","format","dayLabel","weekday","day","t10","t11","t12","t13","Symbol","for","now","getFullYear","getMonth","getDate","todayDay","byDay","Map","shown","at","forEach","item","field","set","get","more","t14","formatMessage","previousMonth","t15","thisMonth","t16","nextMonth","header","navigation","onMonthChange","total","calendarMore","calendarMoreUnknown","grid","t17","day_0","day_1","entries","sort","_temp","startsWith","dayNumber","t18","item_0","id","a","b","localeCompare","_c","styles"],"sources":["../../src/layouts/CalendarLayout.tsx"],"sourcesContent":["import { ChevronLeft, ChevronRight } from 'lucide-react';\n\nimport { currentMonth, isMonth, shiftMonth } from '@panneau/core';\nimport { isDateRangeValue } from '@panneau/fields/daterange';\nimport { Button, IconButton, usePanneauIntl } from '@panneau/ui';\n\nimport { messages } from '../messages';\nimport type { ListItem, ListLayoutProps } from '../types';\nimport styles from './CalendarLayout.module.css';\nimport { ItemTitle } from './ItemTitle';\nimport { getItemDays } from './calendarDays';\n\nfunction pad(value: number, length = 2): string {\n return String(value).padStart(length, '0');\n}\n\nfunction dayOf(date: Date): string {\n return `${pad(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1)}-${pad(date.getUTCDate())}`;\n}\n\n/** What orders the items of a day: a date-time, or the start of a range. */\nfunction sortKey(value: unknown): string {\n if (isDateRangeValue(value)) {\n return value.start ?? value.end ?? '';\n }\n return typeof value === 'string' ? value : '';\n}\n\n/** The first day of the week in a locale: 1 for Monday to 7 for Sunday. */\nfunction getFirstDay(locale: string): number {\n try {\n const info = new Intl.Locale(locale) as Intl.Locale & {\n getWeekInfo?: () => { firstDay: number };\n weekInfo?: { firstDay: number };\n };\n return info.getWeekInfo?.().firstDay ?? info.weekInfo?.firstDay ?? 1;\n } catch {\n return 1;\n }\n}\n\n/** The weeks that show a month, as days (`2026-11-02`), from the first day of the week. */\nfunction getWeeks(month: string, firstDay: number): string[][] {\n const [year = 1970, index = 1] = month.split('-').map(Number);\n const first = new Date(Date.UTC(year, index - 1, 1));\n const last = new Date(Date.UTC(year, index, 0));\n // getUTCDay(): 0 for Sunday; firstDay: 7 for Sunday.\n const offset = (first.getUTCDay() - (firstDay % 7) + 7) % 7;\n const start = Date.UTC(year, index - 1, 1 - offset);\n const days: string[] = [];\n for (let time = start; days.length % 7 !== 0 || time <= last.getTime(); time += 86_400_000) {\n days.push(dayOf(new Date(time)));\n }\n return Array.from({ length: days.length / 7 }, (_, week) => days.slice(week * 7, week * 7 + 7));\n}\n\n/**\n * Items on the days of a month (decision 0044), and a range on each day it covers (decision 0053):\n * the weeks of the month, from the first day of the week of the locale, with the title of each item\n * as its link, in the order of their dates, and buttons to the previous, the next and the current\n * month. On narrow lists, the days that have items, one under the other.\n */\nexport function CalendarLayout({\n items,\n columns,\n renderValue,\n getItemLabel,\n getItemHref,\n isCurrent,\n label,\n calendar,\n}: ListLayoutProps) {\n const intl = usePanneauIntl();\n const today = currentMonth();\n const month = calendar !== undefined && isMonth(calendar.month) ? calendar.month : today;\n const [year = 1970, index = 1] = month.split('-').map(Number);\n const [title] = columns;\n const weeks = getWeeks(month, getFirstDay(intl.locale));\n const monthLabel = new Intl.DateTimeFormat(intl.locale, {\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC',\n }).format(new Date(Date.UTC(year, index - 1, 1)));\n const dayLabel = new Intl.DateTimeFormat(intl.locale, {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n const weekday = (format: 'short' | 'long') =>\n new Intl.DateTimeFormat(intl.locale, { weekday: format, timeZone: 'UTC' });\n const now = new Date();\n const todayDay = `${pad(now.getFullYear(), 4)}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`;\n\n const byDay = new Map<string, { item: ListItem; value: string }[]>();\n if (calendar !== undefined) {\n const shown = { first: weeks[0]?.[0] ?? '', last: weeks.at(-1)?.at(-1) ?? '' };\n items.forEach((item) => {\n const value = item[calendar.field];\n getItemDays(value, shown, calendar.timeZone).forEach((day) => {\n byDay.set(day, [...(byDay.get(day) ?? []), { item, value: sortKey(value) }]);\n });\n });\n }\n const more = calendar?.more ?? null;\n\n return (\n <div className={styles.calendar}>\n <div className={styles.header}>\n <p className={styles.month} aria-live=\"polite\">\n {monthLabel}\n </p>\n <div className={styles.navigation}>\n <IconButton\n icon={ChevronLeft}\n label={intl.formatMessage(messages.previousMonth)}\n onPress={() => calendar?.onMonthChange(shiftMonth(month, -1))}\n />\n <Button\n size=\"sm\"\n isDisabled={month === today}\n onPress={() => calendar?.onMonthChange(today)}\n >\n {intl.formatMessage(messages.thisMonth)}\n </Button>\n <IconButton\n icon={ChevronRight}\n label={intl.formatMessage(messages.nextMonth)}\n onPress={() => calendar?.onMonthChange(shiftMonth(month, 1))}\n />\n </div>\n </div>\n {more !== null ? (\n <p className={styles.more} role=\"status\">\n {more.total !== null\n ? intl.formatMessage(messages.calendarMore, {\n shown: items.length,\n total: more.total,\n })\n : intl.formatMessage(messages.calendarMoreUnknown, {\n shown: items.length,\n })}\n </p>\n ) : null}\n <table className={styles.grid} aria-label={`${label}, ${monthLabel}`}>\n <thead>\n <tr>\n {(weeks[0] ?? []).map((day) => {\n const date = new Date(`${day}T00:00:00Z`);\n return (\n <th key={day} scope=\"col\">\n <abbr title={weekday('long').format(date)}>\n {weekday('short').format(date)}\n </abbr>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {weeks.map((week) => (\n <tr key={week[0]}>\n {week.map((day) => {\n const entries = [...(byDay.get(day) ?? [])].sort((a, b) =>\n a.value.localeCompare(b.value),\n );\n return (\n <td\n key={day}\n data-outside={!day.startsWith(month) || undefined}\n data-empty={entries.length === 0 || undefined}\n aria-current={day === todayDay ? 'date' : undefined}\n >\n <time dateTime={day} className={styles.day}>\n <span aria-hidden=\"true\" className={styles.dayNumber}>\n {Number(day.slice(8))}\n </span>\n <span className={styles.dayLabel}>\n {dayLabel.format(new Date(`${day}T00:00:00Z`))}\n </span>\n </time>\n {entries.length > 0 ? (\n <ul className={styles.items}>\n {entries.map(({ item }) => (\n <li\n key={item.id}\n data-current={\n isCurrent?.(item) === true || undefined\n }\n >\n <ItemTitle\n href={getItemHref?.(item) ?? null}\n current={isCurrent?.(item) ?? false}\n >\n {title !== undefined\n ? renderValue(item, title)\n : getItemLabel(item)}\n </ItemTitle>\n </li>\n ))}\n </ul>\n ) : null}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardsLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/CardsLayout.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,KAAK,EACL,aAAa,GAChB,EAAE,eAAe,+BAuDjB"}
1
+ {"version":3,"file":"CardsLayout.d.ts","sourceRoot":"","sources":["../../src/layouts/CardsLayout.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,KAAK,EACL,aAAa,GAChB,EAAE,eAAe,+BA6DjB"}