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

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.
@@ -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","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","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","name","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 { 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 <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/**\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 <span className={styles.text}>{text}</span>;\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}>\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 <span className={styles.text}>{code}</span>;\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}>{getCountryName(code, intl.locale)}</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 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/**\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}>\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/** 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}>\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}>{text}</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}>{entry.label ?? entry.value}</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 !== '' ? <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 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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"}
@@ -0,0 +1,14 @@
1
+ import type { Field } from '@panneau/protocol';
2
+ /** The time zone of a calendar's field: its `settings.timeZone`, or `null`. */
3
+ export declare function getCalendarTimeZone(field: Field | null | undefined): string | null;
4
+ /**
5
+ * The days an item shows on, within the days shown (`2026-10-26` to `2026-12-06`): the day of a
6
+ * `date` or a `datetime`, in the time zone (the browser's without one), or each day a `daterange`
7
+ * covers (decision 0053). A range open at its end shows on its first day; one open at its start, on
8
+ * its last.
9
+ */
10
+ export declare function getItemDays(value: unknown, shown: {
11
+ first: string;
12
+ last: string;
13
+ }, timeZone?: string | null): string[];
14
+ //# sourceMappingURL=calendarDays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarDays.d.ts","sourceRoot":"","sources":["../../src/layouts/calendarDays.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIlF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACvB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB,MAAM,EAAE,CAoBV"}
@@ -0,0 +1,44 @@
1
+ import { getBoundDay, getDateRangeSettings, isDateRangeValue } from "@panneau/fields/daterange";
2
+ //#region src/layouts/calendarDays.ts
3
+ var DAY_MS = 864e5;
4
+ function addDays(day, count) {
5
+ return new Date(Date.parse(`${day}T00:00:00Z`) + count * DAY_MS).toISOString().slice(0, 10);
6
+ }
7
+ /** The time zone of a calendar's field: its `settings.timeZone`, or `null`. */
8
+ function getCalendarTimeZone(field) {
9
+ return field !== null && field !== void 0 ? getDateRangeSettings({
10
+ ...field.settings,
11
+ time: true
12
+ }).timeZone : null;
13
+ }
14
+ /**
15
+ * The days an item shows on, within the days shown (`2026-10-26` to `2026-12-06`): the day of a
16
+ * `date` or a `datetime`, in the time zone (the browser's without one), or each day a `daterange`
17
+ * covers (decision 0053). A range open at its end shows on its first day; one open at its start, on
18
+ * its last.
19
+ */
20
+ function getItemDays(value, shown, timeZone) {
21
+ if (isDateRangeValue(value)) {
22
+ const zone = value.timeZone ?? timeZone ?? void 0;
23
+ const first = getBoundDay(value.start, zone);
24
+ const last = getBoundDay(value.end, zone);
25
+ if (first === null || last === null) {
26
+ const day = first ?? last;
27
+ return day !== null && day >= shown.first && day <= shown.last ? [day] : [];
28
+ }
29
+ const days = [];
30
+ let day = first > shown.first ? first : shown.first;
31
+ const end = last < shown.last ? last : shown.last;
32
+ while (day <= end) {
33
+ days.push(day);
34
+ day = addDays(day, 1);
35
+ }
36
+ return days;
37
+ }
38
+ const day = typeof value === "string" ? getBoundDay(value, timeZone ?? void 0) : null;
39
+ return day !== null ? [day] : [];
40
+ }
41
+ //#endregion
42
+ export { getCalendarTimeZone, getItemDays };
43
+
44
+ //# sourceMappingURL=calendarDays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarDays.js","names":["getBoundDay","getDateRangeSettings","isDateRangeValue","Field","DAY_MS","addDays","day","count","Date","parse","toISOString","slice","getCalendarTimeZone","field","undefined","settings","time","timeZone","getItemDays","value","shown","first","last","zone","start","end","days","push"],"sources":["../../src/layouts/calendarDays.ts"],"sourcesContent":["import { getBoundDay, getDateRangeSettings, isDateRangeValue } from '@panneau/fields/daterange';\nimport type { Field } from '@panneau/protocol';\n\nconst DAY_MS = 86_400_000;\n\nfunction addDays(day: string, count: number): string {\n return new Date(Date.parse(`${day}T00:00:00Z`) + count * DAY_MS).toISOString().slice(0, 10);\n}\n\n/** The time zone of a calendar's field: its `settings.timeZone`, or `null`. */\nexport function getCalendarTimeZone(field: Field | null | undefined): string | null {\n return field !== null && field !== undefined\n ? getDateRangeSettings({ ...field.settings, time: true }).timeZone\n : null;\n}\n\n/**\n * The days an item shows on, within the days shown (`2026-10-26` to `2026-12-06`): the day of a\n * `date` or a `datetime`, in the time zone (the browser's without one), or each day a `daterange`\n * covers (decision 0053). A range open at its end shows on its first day; one open at its start, on\n * its last.\n */\nexport function getItemDays(\n value: unknown,\n shown: { first: string; last: string },\n timeZone?: string | null,\n): string[] {\n if (isDateRangeValue(value)) {\n const zone = value.timeZone ?? timeZone ?? undefined;\n const first = getBoundDay(value.start, zone);\n const last = getBoundDay(value.end, zone);\n if (first === null || last === null) {\n const day = first ?? last;\n return day !== null && day >= shown.first && day <= shown.last ? [day] : [];\n }\n const days: string[] = [];\n let day = first > shown.first ? first : shown.first;\n const end = last < shown.last ? last : shown.last;\n while (day <= end) {\n days.push(day);\n day = addDays(day, 1);\n }\n return days;\n }\n const day = typeof value === 'string' ? getBoundDay(value, timeZone ?? undefined) : null;\n return day !== null ? [day] : [];\n}\n"],"mappings":";;AAGA,IAAMI,SAAS;AAEf,SAASC,QAAQC,KAAaC,OAAuB;CACjD,OAAO,IAAIC,KAAKA,KAAKC,MAAM,GAAGH,IAAG,WAAY,IAAIC,QAAQH,MAAM,CAAC,CAACM,YAAY,CAAC,CAACC,MAAM,GAAG,EAAE;AAC9F;;AAGA,SAAgBC,oBAAoBC,OAAgD;CAChF,OAAOA,UAAU,QAAQA,UAAUC,KAAAA,IAC7Bb,qBAAqB;EAAE,GAAGY,MAAME;EAAUC,MAAM;CAAK,CAAC,CAAC,CAACC,WACxD;AACV;;;;;;;AAQA,SAAgBC,YACZC,OACAC,OACAH,UACQ;CACR,IAAIf,iBAAiBiB,KAAK,GAAG;EACzB,MAAMI,OAAOJ,MAAMF,YAAYA,YAAYH,KAAAA;EAC3C,MAAMO,QAAQrB,YAAYmB,MAAMK,OAAOD,IAAI;EAC3C,MAAMD,OAAOtB,YAAYmB,MAAMM,KAAKF,IAAI;EACxC,IAAIF,UAAU,QAAQC,SAAS,MAAM;GACjC,MAAMhB,MAAMe,SAASC;GACrB,OAAOhB,QAAQ,QAAQA,OAAOc,MAAMC,SAASf,OAAOc,MAAME,OAAO,CAAChB,GAAG,IAAI,CAAA;EAC7E;EACA,MAAMoB,OAAiB,CAAA;EACvB,IAAIpB,MAAMe,QAAQD,MAAMC,QAAQA,QAAQD,MAAMC;EAC9C,MAAMI,MAAMH,OAAOF,MAAME,OAAOA,OAAOF,MAAME;EAC7C,OAAOhB,OAAOmB,KAAK;GACfC,KAAKC,KAAKrB,GAAG;GACbA,MAAMD,QAAQC,KAAK,CAAC;EACxB;EACA,OAAOoB;CACX;CACA,MAAMpB,MAAM,OAAOa,UAAU,WAAWnB,YAAYmB,OAAOF,YAAYH,KAAAA,CAAS,IAAI;CACpF,OAAOR,QAAQ,OAAO,CAACA,GAAG,IAAI,CAAA;AAClC"}
package/dist/query.d.ts CHANGED
@@ -14,8 +14,9 @@ export interface LocalQueryResult<T extends ListItem> {
14
14
  }
15
15
  /**
16
16
  * Applies a list query to items in memory, as a backend would: filters (the value, or one of the
17
- * values, matches as a string; a range matches the values within its bounds), search in every text
18
- * value, sort, then the page. For a product that has every item at hand.
17
+ * values, matches as a string; a range matches the values within its bounds, and the date ranges
18
+ * that overlap them), search in every text value, sort (a date range by its start, money by its
19
+ * amount), then the page. For a product that has every item at hand.
19
20
  */
20
21
  export declare function applyListQuery<T extends ListItem>(items: readonly T[], query: ListQuery, options?: LocalQueryOptions): LocalQueryResult<T>;
21
22
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGpD,MAAM,WAAW,iBAAiB;IAC9B,wEAAwE;IACxE,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,QAAQ;IAChD,6BAA6B;IAC7B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACjB;AAOD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,QAAQ,EAC7C,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,iBAAsB,GAChC,gBAAgB,CAAC,CAAC,CAAC,CA6DrB"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGpD,MAAM,WAAW,iBAAiB;IAC9B,wEAAwE;IACxE,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,QAAQ;IAChD,6BAA6B;IAC7B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACjB;AAwBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,QAAQ,EAC7C,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,iBAAsB,GAChC,gBAAgB,CAAC,CAAC,CAAC,CA6DrB"}