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

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 (68) hide show
  1. package/README.md +14 -14
  2. package/dist/ListSkeleton.d.ts +3 -1
  3. package/dist/ListSkeleton.d.ts.map +1 -1
  4. package/dist/ListSkeleton.js +34 -30
  5. package/dist/ListSkeleton.js.map +1 -1
  6. package/dist/ListView.d.ts +10 -3
  7. package/dist/ListView.d.ts.map +1 -1
  8. package/dist/ListView.js +44 -35
  9. package/dist/ListView.js.map +1 -1
  10. package/dist/actions/ActionButton.d.ts +7 -1
  11. package/dist/actions/ActionButton.d.ts.map +1 -1
  12. package/dist/actions/ActionButton.js +74 -72
  13. package/dist/actions/ActionButton.js.map +1 -1
  14. package/dist/actions/Actions.css +12 -0
  15. package/dist/actions/Actions.module.js +6 -2
  16. package/dist/actions/Actions.module.js.map +1 -1
  17. package/dist/actions/ConfirmDialog.d.ts +5 -1
  18. package/dist/actions/ConfirmDialog.d.ts.map +1 -1
  19. package/dist/actions/ConfirmDialog.js +7 -3
  20. package/dist/actions/ConfirmDialog.js.map +1 -1
  21. package/dist/actions/RowActions.d.ts +21 -4
  22. package/dist/actions/RowActions.d.ts.map +1 -1
  23. package/dist/actions/RowActions.js +149 -84
  24. package/dist/actions/RowActions.js.map +1 -1
  25. package/dist/actions/fit.d.ts +25 -0
  26. package/dist/actions/fit.d.ts.map +1 -0
  27. package/dist/actions/fit.js +197 -0
  28. package/dist/actions/fit.js.map +1 -0
  29. package/dist/actions/icons.d.ts +5 -0
  30. package/dist/actions/icons.d.ts.map +1 -1
  31. package/dist/actions/icons.js +15 -1
  32. package/dist/actions/icons.js.map +1 -1
  33. package/dist/displays/Displays.css +12 -1
  34. package/dist/displays/Displays.module.js +6 -2
  35. package/dist/displays/Displays.module.js.map +1 -1
  36. package/dist/displays/displays.d.ts +12 -3
  37. package/dist/displays/displays.d.ts.map +1 -1
  38. package/dist/displays/displays.js +223 -66
  39. package/dist/displays/displays.js.map +1 -1
  40. package/dist/images.d.ts +3 -2
  41. package/dist/images.d.ts.map +1 -1
  42. package/dist/images.js +24 -3
  43. package/dist/images.js.map +1 -1
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +3 -3
  47. package/dist/inline/InlineCell.d.ts +3 -1
  48. package/dist/inline/InlineCell.d.ts.map +1 -1
  49. package/dist/inline/InlineCell.js +153 -134
  50. package/dist/inline/InlineCell.js.map +1 -1
  51. package/dist/layouts/CardsLayout.d.ts.map +1 -1
  52. package/dist/layouts/CardsLayout.js +90 -93
  53. package/dist/layouts/CardsLayout.js.map +1 -1
  54. package/dist/layouts/GalleryLayout.css +7 -0
  55. package/dist/layouts/GalleryLayout.d.ts.map +1 -1
  56. package/dist/layouts/GalleryLayout.js +76 -53
  57. package/dist/layouts/GalleryLayout.js.map +1 -1
  58. package/dist/layouts/GalleryLayout.module.js.map +1 -1
  59. package/dist/layouts/TableLayout.css +31 -0
  60. package/dist/layouts/TableLayout.d.ts +4 -3
  61. package/dist/layouts/TableLayout.d.ts.map +1 -1
  62. package/dist/layouts/TableLayout.js +158 -98
  63. package/dist/layouts/TableLayout.js.map +1 -1
  64. package/dist/layouts/TableLayout.module.js +5 -1
  65. package/dist/layouts/TableLayout.module.js.map +1 -1
  66. package/dist/types.d.ts +4 -1
  67. package/dist/types.d.ts.map +1 -1
  68. package/package.json +7 -7
@@ -1 +1 @@
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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"}
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","getImageUrl","messages","DisplayEntry","DisplayProps","findOption","getFieldOptions","isRecord","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","mediaLabel","Record","key","MediaDisplay","source","FileDisplay","files","_temp5","index","image","content","builtInDisplays","Readonly","textarea","slug","richtext","datetime","time","select","relation","duration","embed","location","region","daterange","money","_c","styles","_Fragment"],"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 { getImageUrl } from '../images';\nimport { messages } from '../messages';\nimport type { DisplayEntry, DisplayProps } from '../types';\nimport { findOption, getFieldOptions, isRecord, 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/** The text of a media, a reference or a file: its label, name or file name. */\nfunction mediaLabel(value: Record<string, unknown>): string {\n for (const key of ['label', 'name', 'filename']) {\n const text = value[key];\n if (typeof text === 'string' && text !== '') {\n return text;\n }\n }\n return '';\n}\n\n/**\n * A thumbnail and the name of a media (or of the first one), for `media` and `image` values:\n * a media reference (`{ id, label, media }`), or a media with its URLs.\n */\nexport function MediaDisplay({ value }: DisplayProps) {\n const media: unknown = Array.isArray(value) ? value[0] : value;\n if (!isRecord(media)) {\n return <EmptyValue />;\n }\n const source = getImageUrl(media);\n const label = mediaLabel(media);\n return (\n <span className={styles.media}>\n {source !== null ? (\n <img className={styles.thumbnail} src={source} alt=\"\" loading=\"lazy\" />\n ) : null}\n {label !== '' ? (\n <span className={styles.text} data-clamp=\"\">\n {label}\n </span>\n ) : null}\n </span>\n );\n}\n\n/**\n * Stored files (`file` values): the thumbnail of an image, or an icon, and the name of each file,\n * linked to its URL.\n */\nexport function FileDisplay({ value }: DisplayProps) {\n const files = (Array.isArray(value) ? value : [value]).filter(isRecord);\n if (files.length === 0) {\n return <EmptyValue />;\n }\n return (\n <span className={styles.files}>\n {files.map((file, index) => {\n const image = getImageUrl(file);\n const name = mediaLabel(file);\n const content = (\n <>\n {image !== null ? (\n <img className={styles.thumbnail} src={image} alt=\"\" loading=\"lazy\" />\n ) : (\n <Icon icon={File} size=\"sm\" />\n )}\n <span className={styles.text} data-clamp=\"\">\n {name !== '' ? name : typeof file.url === 'string' ? file.url : ''}\n </span>\n </>\n );\n return typeof file.url === 'string' && file.url !== '' ? (\n <a\n key={index}\n className={`${styles.link} ${styles.media}`}\n href={file.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {content}\n </a>\n ) : (\n <span key={index} className={styles.media}>\n {content}\n </span>\n );\n })}\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 image: MediaDisplay,\n file: FileDisplay,\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/images.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
- * The URL of an image value: a media reference (its thumbnail, or its URL), a stored file, or a
3
- * URL. `null` for anything else.
2
+ * The URL of an image value: a media reference or a media (its thumbnail, or the URL of an
3
+ * image), a stored file (the URL of an image that browsers show), or a URL. `null` for anything
4
+ * else, such as a PDF without a thumbnail.
4
5
  */
5
6
  export declare function getImageUrl(value: unknown): string | null;
6
7
  //# sourceMappingURL=images.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWzD"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AA4BA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWzD"}
package/dist/images.js CHANGED
@@ -1,15 +1,36 @@
1
1
  import { isRecord } from "./values.js";
2
2
  //#region src/images.ts
3
+ /** The types of images that browsers show. A HEIC or TIFF original needs a thumbnail. */
4
+ var WEB_IMAGE_TYPES = /* @__PURE__ */ new Set([
5
+ "image/apng",
6
+ "image/avif",
7
+ "image/bmp",
8
+ "image/gif",
9
+ "image/jpeg",
10
+ "image/png",
11
+ "image/svg+xml",
12
+ "image/webp"
13
+ ]);
3
14
  /**
4
- * The URL of an image value: a media reference (its thumbnail, or its URL), a stored file, or a
5
- * URL. `null` for anything else.
15
+ * Whether the URL of a media or a file is an image to show, from its `type` (a media's URL is
16
+ * the file to show) or its `mime` (a file's URL is its original), when it says.
17
+ */
18
+ function isImage(source) {
19
+ if (typeof source.type === "string") return source.type === "image";
20
+ if (typeof source.mime === "string") return WEB_IMAGE_TYPES.has(source.mime.toLowerCase());
21
+ return true;
22
+ }
23
+ /**
24
+ * The URL of an image value: a media reference or a media (its thumbnail, or the URL of an
25
+ * image), a stored file (the URL of an image that browsers show), or a URL. `null` for anything
26
+ * else, such as a PDF without a thumbnail.
6
27
  */
7
28
  function getImageUrl(value) {
8
29
  const first = Array.isArray(value) ? value[0] : value;
9
30
  if (typeof first === "string") return first !== "" ? first : null;
10
31
  if (!isRecord(first)) return null;
11
32
  const source = isRecord(first.media) ? first.media : first;
12
- const url = source.thumbnailUrl ?? source.url;
33
+ const url = source.thumbnailUrl ?? (isImage(source) ? source.url : null);
13
34
  return typeof url === "string" && url !== "" ? url : null;
14
35
  }
15
36
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","names":["isRecord","getImageUrl","value","first","Array","isArray","source","media","url","thumbnailUrl"],"sources":["../src/images.ts"],"sourcesContent":["import { isRecord } from './values';\n\n/**\n * The URL of an image value: a media reference (its thumbnail, or its URL), a stored file, or a\n * URL. `null` for anything else.\n */\nexport function getImageUrl(value: unknown): string | null {\n const first: unknown = Array.isArray(value) ? value[0] : value;\n if (typeof first === 'string') {\n return first !== '' ? first : null;\n }\n if (!isRecord(first)) {\n return null;\n }\n const source = isRecord(first.media) ? first.media : first;\n const url = source.thumbnailUrl ?? source.url;\n return typeof url === 'string' && url !== '' ? url : null;\n}\n"],"mappings":";;;;;;AAMA,SAAgBC,YAAYC,OAA+B;CACvD,MAAMC,QAAiBC,MAAMC,QAAQH,KAAK,IAAIA,MAAM,KAAKA;CACzD,IAAI,OAAOC,UAAU,UACjB,OAAOA,UAAU,KAAKA,QAAQ;CAElC,IAAI,CAACH,SAASG,KAAK,GACf,OAAO;CAEX,MAAMG,SAASN,SAASG,MAAMI,KAAK,IAAIJ,MAAMI,QAAQJ;CACrD,MAAMK,MAAMF,OAAOG,gBAAgBH,OAAOE;CAC1C,OAAO,OAAOA,QAAQ,YAAYA,QAAQ,KAAKA,MAAM;AACzD"}
1
+ {"version":3,"file":"images.js","names":["isRecord","WEB_IMAGE_TYPES","Set","isImage","source","Record","type","mime","has","toLowerCase","getImageUrl","value","first","Array","isArray","media","url","thumbnailUrl"],"sources":["../src/images.ts"],"sourcesContent":["import { isRecord } from './values';\n\n/** The types of images that browsers show. A HEIC or TIFF original needs a thumbnail. */\nconst WEB_IMAGE_TYPES = new Set([\n 'image/apng',\n 'image/avif',\n 'image/bmp',\n 'image/gif',\n 'image/jpeg',\n 'image/png',\n 'image/svg+xml',\n 'image/webp',\n]);\n\n/**\n * Whether the URL of a media or a file is an image to show, from its `type` (a media's URL is\n * the file to show) or its `mime` (a file's URL is its original), when it says.\n */\nfunction isImage(source: Record<string, unknown>): boolean {\n if (typeof source.type === 'string') {\n return source.type === 'image';\n }\n if (typeof source.mime === 'string') {\n return WEB_IMAGE_TYPES.has(source.mime.toLowerCase());\n }\n return true;\n}\n\n/**\n * The URL of an image value: a media reference or a media (its thumbnail, or the URL of an\n * image), a stored file (the URL of an image that browsers show), or a URL. `null` for anything\n * else, such as a PDF without a thumbnail.\n */\nexport function getImageUrl(value: unknown): string | null {\n const first: unknown = Array.isArray(value) ? value[0] : value;\n if (typeof first === 'string') {\n return first !== '' ? first : null;\n }\n if (!isRecord(first)) {\n return null;\n }\n const source = isRecord(first.media) ? first.media : first;\n const url = source.thumbnailUrl ?? (isImage(source) ? source.url : null);\n return typeof url === 'string' && url !== '' ? url : null;\n}\n"],"mappings":";;;AAGA,IAAMC,kCAAkB,IAAIC,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAAY,CACf;;;;;AAMD,SAASC,QAAQC,QAA0C;CACvD,IAAI,OAAOA,OAAOE,SAAS,UACvB,OAAOF,OAAOE,SAAS;CAE3B,IAAI,OAAOF,OAAOG,SAAS,UACvB,OAAON,gBAAgBO,IAAIJ,OAAOG,KAAKE,YAAY,CAAC;CAExD,OAAO;AACX;;;;;;AAOA,SAAgBC,YAAYC,OAA+B;CACvD,MAAMC,QAAiBC,MAAMC,QAAQH,KAAK,IAAIA,MAAM,KAAKA;CACzD,IAAI,OAAOC,UAAU,UACjB,OAAOA,UAAU,KAAKA,QAAQ;CAElC,IAAI,CAACZ,SAASY,KAAK,GACf,OAAO;CAEX,MAAMR,SAASJ,SAASY,MAAMG,KAAK,IAAIH,MAAMG,QAAQH;CACrD,MAAMI,MAAMZ,OAAOa,iBAAiBd,QAAQC,MAAM,IAAIA,OAAOY,MAAM;CACnE,OAAO,OAAOA,QAAQ,YAAYA,QAAQ,KAAKA,MAAM;AACzD"}
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, 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';
4
+ export { BooleanDisplay, ColorDisplay, CountryDisplay, DateDisplay, DateRangeDisplay, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, FileDisplay, 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,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"}
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,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,8 @@ 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 { 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";
5
+ import { getImageUrl } from "./images.js";
6
+ import { AddressDisplay, BooleanDisplay, ColorDisplay, CountryDisplay, DateDisplay, DateRangeDisplay, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, FileDisplay, JsonDisplay, LinkDisplay, LocationDisplay, MediaDisplay, MoneyDisplay, NumberDisplay, RegionDisplay, RelationDisplay, RichTextDisplay, SelectDisplay, TagsDisplay, TelDisplay, TextDisplay, TimeDisplay, UrlDisplay, builtInDisplays } from "./displays/displays.js";
6
7
  import { DateFilter, DateRangeFilter, RelationFilter, SelectFilter, TextFilter, ToggleFilter, builtInFilters } from "./filters/controls.js";
7
8
  import { CalendarLayout } from "./layouts/CalendarLayout.js";
8
9
  import { CardsLayout } from "./layouts/CardsLayout.js";
@@ -10,7 +11,6 @@ import { GalleryLayout } from "./layouts/GalleryLayout.js";
10
11
  import { TableLayout } from "./layouts/TableLayout.js";
11
12
  import { builtInLayouts } from "./layouts/builtIn.js";
12
13
  import { ItemDetails } from "./ItemDetails.js";
13
- import { getImageUrl } from "./images.js";
14
14
  import { countSelected, getPageSelection, isItemSelected } from "./selection.js";
15
15
  import { CursorPagination, Pagination, getPagingProps } from "./toolbar/Pagination.js";
16
16
  import { SearchField } from "./toolbar/SearchField.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 { 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 };
22
+ export { AddressDisplay, BooleanDisplay, CalendarLayout, CardsLayout, ColorDisplay, ConfirmDialog, CountryDisplay, CursorPagination, DateDisplay, DateFilter, DateRangeDisplay, DateRangeFilter, DateTimeDisplay, DurationDisplay, EmailDisplay, EmbedDisplay, EmptyValue, FileDisplay, 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 };
@@ -7,6 +7,8 @@ export interface InlineCellProps {
7
7
  field: Field;
8
8
  /** The label of the item, for the name of the edit button. */
9
9
  itemLabel: string;
10
+ /** The label of an item the backend gave back, for the toast that says it was saved. */
11
+ getItemLabel?: (item: ListItem) => string;
10
12
  /** The content of the cell when it doesn't edit: the value, or the title's link. */
11
13
  children: ReactNode;
12
14
  /** Renders a value of the field, for the current value of a conflict. */
@@ -23,5 +25,5 @@ export interface InlineCellProps {
23
25
  * Escape cancels; a select and a date save when one is picked. The value is checked by the
24
26
  * field's portable rules, then saved alone; errors and conflicts show in the cell.
25
27
  */
26
- export declare function InlineCell({ item, field, itemLabel, children, renderValue, onSave, onItem, formatError, }: InlineCellProps): import("react").JSX.Element;
28
+ export declare function InlineCell({ item, field, itemLabel, getItemLabel, children, renderValue, onSave, onItem, formatError, }: InlineCellProps): import("react").JSX.Element;
27
29
  //# sourceMappingURL=InlineCell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineCell.d.ts","sourceRoot":"","sources":["../../src/inline/InlineCell.tsx"],"names":[],"mappings":"AACA,OAAO,EAGH,KAAK,SAAS,EAIjB,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAK5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAoBzC,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,6DAA6D;IAC7D,KAAK,EAAE,KAAK,CAAC;IACb,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,QAAQ,EAAE,SAAS,CAAC;IACpB,yEAAyE;IACzE,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,CAAC;IAC3C,uFAAuF;IACvF,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,8EAA8E;IAC9E,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC;CACjD;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,EACN,WAAW,GACd,EAAE,eAAe,+BAmMjB"}
1
+ {"version":3,"file":"InlineCell.d.ts","sourceRoot":"","sources":["../../src/inline/InlineCell.tsx"],"names":[],"mappings":"AACA,OAAO,EAGH,KAAK,SAAS,EAIjB,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAK5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAoBzC,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,6DAA6D;IAC7D,KAAK,EAAE,KAAK,CAAC;IACb,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC;IAC1C,oFAAoF;IACpF,QAAQ,EAAE,SAAS,CAAC;IACpB,yEAAyE;IACzE,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,CAAC;IAC3C,uFAAuF;IACvF,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,8EAA8E;IAC9E,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,CAAC;CACjD;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,EACN,WAAW,GACd,EAAE,eAAe,+BAyNjB"}