@mastra/playground-ui 39.0.1-alpha.2 → 40.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -0
- package/dist/components/CodeBlock.cjs.js +4 -3
- package/dist/components/CodeBlock.cjs.js.map +1 -1
- package/dist/components/CodeBlock.es.js +4 -3
- package/dist/components/CodeBlock.es.js.map +1 -1
- package/dist/components/ContentBlocks.cjs.js +1 -0
- package/dist/components/ContentBlocks.cjs.js.map +1 -1
- package/dist/components/ContentBlocks.es.js +1 -0
- package/dist/components/ContentBlocks.es.js.map +1 -1
- package/dist/components/DataFilter.cjs.js +3 -5
- package/dist/components/DataFilter.cjs.js.map +1 -1
- package/dist/components/DataFilter.es.js +3 -5
- package/dist/components/DataFilter.es.js.map +1 -1
- package/dist/components/DataList.cjs.js +1 -1
- package/dist/components/DataList.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +1 -1
- package/dist/components/DateTimePicker.es.js +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/ItemList.cjs.js +2 -0
- package/dist/components/ItemList.cjs.js.map +1 -1
- package/dist/components/ItemList.es.js +2 -0
- package/dist/components/ItemList.es.js.map +1 -1
- package/dist/components/MessageScroller.cjs.js +538 -0
- package/dist/components/MessageScroller.cjs.js.map +1 -0
- package/dist/components/MessageScroller.d.ts +2 -0
- package/dist/components/MessageScroller.es.js +505 -0
- package/dist/components/MessageScroller.es.js.map +1 -0
- package/dist/components/RuleBuilder.cjs.js +4 -2
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +4 -2
- package/dist/components/RuleBuilder.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +1 -1
- package/dist/components/Tabs.es.js +1 -1
- package/dist/components/ThreadRail.cjs.js +432 -0
- package/dist/components/ThreadRail.cjs.js.map +1 -0
- package/dist/components/ThreadRail.d.ts +2 -0
- package/dist/components/ThreadRail.es.js +407 -0
- package/dist/components/ThreadRail.es.js.map +1 -0
- package/dist/components/Tree.cjs.js +5 -4
- package/dist/components/Tree.cjs.js.map +1 -1
- package/dist/components/Tree.es.js +4 -3
- package/dist/components/Tree.es.js.map +1 -1
- package/dist/data-list-top-cell-B27jd1HH.js.map +1 -1
- package/dist/data-list-top-cell-DummeYkE.cjs.map +1 -1
- package/dist/{date-time-range-picker-BL2NxcTo.js → date-time-range-picker-Dsyc_jOU.js} +2 -2
- package/dist/{date-time-range-picker-BL2NxcTo.js.map → date-time-range-picker-Dsyc_jOU.js.map} +1 -1
- package/dist/{date-time-range-picker-DY3GLaiu.cjs → date-time-range-picker-mAwcchzy.cjs} +2 -2
- package/dist/{date-time-range-picker-DY3GLaiu.cjs.map → date-time-range-picker-mAwcchzy.cjs.map} +1 -1
- package/dist/domains/logs/hooks/use-logs-list-navigation.cjs.js +6 -4
- package/dist/domains/logs/hooks/use-logs-list-navigation.cjs.js.map +1 -1
- package/dist/domains/logs/hooks/use-logs-list-navigation.es.js +6 -4
- package/dist/domains/logs/hooks/use-logs-list-navigation.es.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +5 -1
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +5 -1
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +9 -5
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +9 -5
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +64 -42
- package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js +65 -43
- package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js +4 -3
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js +4 -3
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js.map +1 -1
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js +1 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js.map +1 -1
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js +1 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js.map +1 -1
- package/dist/domains/metrics/metrics-filters.cjs.js +2 -1
- package/dist/domains/metrics/metrics-filters.cjs.js.map +1 -1
- package/dist/domains/metrics/metrics-filters.es.js +2 -1
- package/dist/domains/metrics/metrics-filters.es.js.map +1 -1
- package/dist/domains/traces/components/shared.cjs.js +1 -1
- package/dist/domains/traces/components/shared.cjs.js.map +1 -1
- package/dist/domains/traces/components/shared.es.js +1 -1
- package/dist/domains/traces/components/shared.es.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +1 -1
- package/dist/domains/traces/hooks/use-trace-list-navigation.cjs.js +8 -2
- package/dist/domains/traces/hooks/use-trace-list-navigation.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-list-navigation.es.js +8 -2
- package/dist/domains/traces/hooks/use-trace-list-navigation.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-span-navigation.cjs.js +8 -2
- package/dist/domains/traces/hooks/use-trace-span-navigation.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-span-navigation.es.js +8 -2
- package/dist/domains/traces/hooks/use-trace-span-navigation.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces.cjs.js +2 -0
- package/dist/domains/traces/hooks/use-traces.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces.es.js +2 -0
- package/dist/domains/traces/hooks/use-traces.es.js.map +1 -1
- package/dist/ee/signals/components/signal-details-page.cjs.js +1 -1
- package/dist/ee/signals/components/signal-details-page.es.js +1 -1
- package/dist/ee/topics/utils.cjs.js +1 -1
- package/dist/ee/topics/utils.cjs.js.map +1 -1
- package/dist/ee/topics/utils.es.js +1 -1
- package/dist/ee/topics/utils.es.js.map +1 -1
- package/dist/{env-file-uuok37Ac.js → env-file-BITYowCx.js} +5 -2
- package/dist/env-file-BITYowCx.js.map +1 -0
- package/dist/{env-file-C6u8aJM0.cjs → env-file-BU2hStkm.cjs} +5 -2
- package/dist/env-file-BU2hStkm.cjs.map +1 -0
- package/dist/hooks/use-environment-variables-editor.cjs.js +8 -3
- package/dist/hooks/use-environment-variables-editor.cjs.js.map +1 -1
- package/dist/hooks/use-environment-variables-editor.es.js +8 -3
- package/dist/hooks/use-environment-variables-editor.es.js.map +1 -1
- package/dist/hooks/use-in-view.cjs.js +1 -0
- package/dist/hooks/use-in-view.cjs.js.map +1 -1
- package/dist/hooks/use-in-view.es.js +1 -0
- package/dist/hooks/use-in-view.es.js.map +1 -1
- package/dist/hooks/use-isomorphic-layout-effect.cjs.js +29 -0
- package/dist/hooks/use-isomorphic-layout-effect.cjs.js.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -0
- package/dist/hooks/use-isomorphic-layout-effect.es.js +6 -0
- package/dist/hooks/use-isomorphic-layout-effect.es.js.map +1 -0
- package/dist/hooks/use-measured-auto-height.cjs.js +75 -0
- package/dist/hooks/use-measured-auto-height.cjs.js.map +1 -0
- package/dist/hooks/use-measured-auto-height.d.ts +2 -0
- package/dist/hooks/use-measured-auto-height.es.js +52 -0
- package/dist/hooks/use-measured-auto-height.es.js.map +1 -0
- package/dist/message-scroller-hooks-CdsHnth6.js +62 -0
- package/dist/message-scroller-hooks-CdsHnth6.js.map +1 -0
- package/dist/message-scroller-hooks-DdXqrmC2.cjs +98 -0
- package/dist/message-scroller-hooks-DdXqrmC2.cjs.map +1 -0
- package/dist/src/ds/components/MessageScroller/index.d.ts +2 -0
- package/dist/src/ds/components/MessageScroller/message-scroller-context.d.ts +38 -0
- package/dist/src/ds/components/MessageScroller/message-scroller-hooks.d.ts +26 -0
- package/dist/src/ds/components/MessageScroller/message-scroller.d.ts +44 -0
- package/dist/src/ds/components/Tabs/tabs-list.d.ts +17 -2
- package/dist/src/ds/components/Tabs/tabs-tab.d.ts +2 -1
- package/dist/src/ds/components/Tabs/tabs.stories.d.ts +2 -1
- package/dist/src/ds/components/ThreadRail/index.d.ts +2 -0
- package/dist/src/ds/components/ThreadRail/thread-rail-turns.d.ts +11 -0
- package/dist/src/ds/components/ThreadRail/thread-rail.d.ts +12 -0
- package/dist/src/hooks/use-isomorphic-layout-effect.d.ts +2 -0
- package/dist/src/hooks/use-measured-auto-height.d.ts +8 -0
- package/dist/style.css +249 -5
- package/dist/{tabs-tab-XnMoa1fn.js → tabs-tab-1KGOybMG.js} +29 -18
- package/dist/tabs-tab-1KGOybMG.js.map +1 -0
- package/dist/{tabs-tab-B7Ziuuh8.cjs → tabs-tab-DkeS2Iv0.cjs} +29 -18
- package/dist/tabs-tab-DkeS2Iv0.cjs.map +1 -0
- package/dist/{time-picker-ji6mao2A.js → time-picker-CBBi1dOV.js} +18 -9
- package/dist/time-picker-CBBi1dOV.js.map +1 -0
- package/dist/{time-picker-D5qUadVb.cjs → time-picker-DmBH2LAb.cjs} +18 -9
- package/dist/time-picker-DmBH2LAb.cjs.map +1 -0
- package/dist/{traces-data-list-DzqdihE7.js → traces-data-list-B_5TPfYF.js} +4 -3
- package/dist/traces-data-list-B_5TPfYF.js.map +1 -0
- package/dist/{traces-data-list-BpQO8ZSH.cjs → traces-data-list-D7QLXnsh.cjs} +4 -3
- package/dist/traces-data-list-D7QLXnsh.cjs.map +1 -0
- package/package.json +7 -7
- package/dist/env-file-C6u8aJM0.cjs.map +0 -1
- package/dist/env-file-uuok37Ac.js.map +0 -1
- package/dist/tabs-tab-B7Ziuuh8.cjs.map +0 -1
- package/dist/tabs-tab-XnMoa1fn.js.map +0 -1
- package/dist/time-picker-D5qUadVb.cjs.map +0 -1
- package/dist/time-picker-ji6mao2A.js.map +0 -1
- package/dist/traces-data-list-BpQO8ZSH.cjs.map +0 -1
- package/dist/traces-data-list-DzqdihE7.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemList.cjs.js","sources":["../../src/ds/components/ItemList/item-list-cell.tsx","../../src/ds/components/ItemList/item-list-date-cell.tsx","../../src/ds/components/ItemList/shared.tsx","../../src/ds/components/ItemList/item-list-header.tsx","../../src/ds/components/ItemList/item-list-header-col.tsx","../../src/ds/components/ItemList/item-list-id-cell.tsx","../../src/ds/components/ItemList/item-list-items.tsx","../../src/ds/components/ItemList/item-list-items-scroller.tsx","../../src/ds/components/ItemList/item-list-label-cell.tsx","../../src/ds/components/ItemList/item-list-link-cell.tsx","../../src/ds/components/ItemList/item-list-message.tsx","../../src/ds/components/ItemList/item-list-next-page-loading.tsx","../../src/ds/components/ItemList/item-list-pagination.tsx","../../src/ds/components/ItemList/item-list-root.tsx","../../src/ds/components/ItemList/item-list-row.tsx","../../src/ds/components/ItemList/item-list-row-button.tsx","../../src/ds/components/ItemList/item-list-status-cell.tsx","../../src/ds/components/ItemList/item-list-text-cell.tsx","../../src/ds/components/ItemList/item-list-version-cell.tsx","../../src/ds/components/ItemList/item-list.tsx","../../src/ds/components/ItemList/item-list-items-skeleton.tsx","../../src/ds/components/ItemList/item-list-skeleton.tsx","../../src/ds/components/ItemList/helpers.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type ItemListTextCellProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListCell({ children, className }: ItemListTextCellProps) {\n return <div className={cn('', className)}>{children}</div>;\n}\n","import { isThisYear } from 'date-fns';\nimport { format } from 'date-fns/format';\nimport { isToday } from 'date-fns/isToday';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListDateCellProps = {\n date: Date | string | null;\n className?: string;\n withTime?: boolean;\n};\n\nexport function ItemListDateCell({ date, className, withTime = false }: ItemListDateCellProps) {\n const isThisYearDate = date ? isThisYear(new Date(date)) : false;\n\n const displayDayAndMonth = date ? (isToday(new Date(date)) ? 'Today' : format(new Date(date), 'MMM dd')) : '';\n const displayYear = date && !isThisYearDate ? format(new Date(date), 'yyyy') : '';\n const displayTime = date && withTime ? `${format(new Date(date), \"'at' h:mm aaa\")}` : '';\n\n return (\n <div className={cn('text-neutral2 text-ui-md truncate', className)}>\n {displayDayAndMonth} {displayYear} {displayTime}\n </div>\n );\n}\n","import type { ItemListColumn } from './types';\n\nexport function getItemListColumnTemplate(columns?: ItemListColumn[]): string {\n if (!columns || columns.length === 0) {\n return '';\n }\n\n return columns\n ?.map(column => {\n return column.size;\n })\n .join(' ');\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\n\nimport { cn } from '@/lib/utils';\n\nexport type ItemListHeaderProps = {\n columns?: ItemListColumn[];\n isSelectionActive?: boolean;\n children?: React.ReactNode;\n};\n\nexport function ItemListHeader({ columns, isSelectionActive, children }: ItemListHeaderProps) {\n return (\n <div className={cn('sticky top-0 bg-surface3 z-10 rounded-lg px-4 mb-4')}>\n <div\n className={cn('grid gap-4 text-left items-center uppercase text-neutral3 tracking-widest text-ui-xs', {\n 'pl-12 [&>label]:absolute [&>label]:left-0': isSelectionActive,\n })}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n >\n {children}\n </div>\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListHeaderColProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListHeaderCol({ children, className }: ItemListHeaderColProps) {\n return <span className={cn('py-3', className)}>{children}</span>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListIdCellProps = {\n id: string;\n className?: string;\n isShortened?: boolean;\n};\n\nexport function ItemListIdCell({ id, className, isShortened = true }: ItemListIdCellProps) {\n const displayId = isShortened ? id.slice(0, 8) : id;\n return <div className={cn('text-neutral2 py-[0.6rem] text-ui-md truncate', className)}>{displayId}</div>;\n}\n","import React from 'react';\n\nexport type ItemListItemsProps = {\n children?: React.ReactNode;\n};\n\nexport function ItemListItems({ children }: ItemListItemsProps) {\n return <ul className=\"grid content-start\">{children}</ul>;\n}\n","import React, { useRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListItemsScroller = {\n children?: React.ReactNode;\n};\n\nexport function ItemListItemsScroller({ children }: ItemListItemsScroller) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n return (\n <div ref={containerRef} className={cn('overflow-y-auto')}>\n {children}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListLabelCellProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListLabelCell({ children, className }: ItemListLabelCellProps) {\n return (\n <label className={cn('flex w-14 h-full justify-center items-center hover:bg-surface5 rounded-lg', className)}>\n {children}\n </label>\n );\n}\n","import { transitions, focusRing } from '@/ds/primitives/transitions';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListLinkCellProps = {\n children?: React.ReactNode;\n className?: string;\n href: string;\n LinkComponent: LinkComponent;\n};\n\nexport function ItemListLinkCell({ children, href, className, LinkComponent: Link }: ItemListLinkCellProps) {\n return (\n <Link\n href={href}\n className={cn(\n 'w-full px-3 py-[0.6rem] gap-6 text-left items-center rounded-lg flex justify-center',\n 'hover:bg-surface4',\n transitions.colors,\n focusRing.visible,\n\n className,\n )}\n >\n {children}\n </Link>\n );\n}\n","import { InfoIcon, TriangleAlertIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListMessageProps = {\n children?: React.ReactNode;\n message?: string;\n className?: string;\n type?: 'info' | 'error';\n};\n\nexport function ItemListMessage({ children, message, className, type }: ItemListMessageProps) {\n if (!children && !message) {\n return null;\n }\n\n return (\n <div className={cn('grid border-t border-border1', className)}>\n {message ? (\n <p\n className={cn(\n 'text-neutral3 text-ui-md text-center grid p-8 justify-center justify-items-center gap-2',\n '[&>svg]:w-[1.5em] [&>svg]:h-[1.5em] [&>svg]:opacity-75',\n {\n '[&>svg]:text-red-500': type === 'error',\n },\n )}\n >\n {type === 'error' ? <TriangleAlertIcon /> : <InfoIcon />} {message}\n </p>\n ) : (\n children\n )}\n </div>\n );\n}\n","export type ItemListNextPageLoadingProps = {\n isLoading?: boolean;\n hasMore?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n loadingText?: string;\n noMoreDataText?: string;\n};\n\nexport function ItemListNextPageLoading({\n isLoading,\n hasMore,\n setEndOfListElement,\n loadingText = 'Loading more data...',\n noMoreDataText = 'No more data to load',\n}: ItemListNextPageLoadingProps) {\n if (!setEndOfListElement) {\n return null;\n }\n\n return (\n <div ref={setEndOfListElement} className=\"text-ui-md text-neutral3 opacity-50 flex mt-8 justify-center\">\n {isLoading && loadingText}\n {!hasMore && !isLoading && noMoreDataText}\n </div>\n );\n}\n","import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type ItemListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function ItemListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: ItemListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className={cn('flex pt-6 items-center justify-center text-neutral3 text-ui-md gap-8')}>\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div\n className={cn(\n 'flex gap-4',\n '[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:text-neutral4 [&>button:hover]:text-neutral5 [&>button]:transition-colors [&>button]:border [&>button]:border-border1 [&>button]:p-1 [&>button]:px-2 [&>button]:rounded-md',\n '[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3',\n )}\n >\n {typeof currentPage === 'number' && currentPage > 0 && (\n <button onClick={onPrevPage}>\n <ArrowLeftIcon />\n Previous\n </button>\n )}\n {hasMore && (\n <button onClick={onNextPage}>\n Next\n <ArrowRightIcon />\n </button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRootProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListRoot({ children, className }: ItemListRootProps) {\n return <div className={cn('grid grid-rows-[auto_1fr] overflow-y-auto', className)}>{children}</div>;\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRowProps = {\n isSelected?: boolean;\n children?: React.ReactNode;\n columns?: ItemListColumn[];\n};\n\nexport function ItemListRow({ isSelected, children, columns }: ItemListRowProps) {\n return (\n <li\n className={cn(\n 'flex border border-transparent py-[3px] pb-[2px] text-neutral5 border-t-border1 rounded-lg first:border-t-transparent text-ui-md overflow-hidden',\n '[&:last-child>button]:rounded-b-lg',\n '[&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:border-dashed [&.selected-row]:border [&.selected-row]:first:border-t',\n '[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent',\n '[.selected-row+&]:rounded-t-none',\n transitions.colors,\n {\n 'selected-row': isSelected,\n 'grid px-4 gap-4 ': columns,\n },\n )}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n >\n {children}\n </li>\n );\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\nimport { transitions, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRowButtonProps = {\n item?: any;\n isFeatured?: boolean;\n children?: React.ReactNode;\n onClick?: (itemId: string) => void;\n columns?: ItemListColumn[];\n className?: string;\n disabled?: boolean;\n};\n\nexport function ItemListRowButton({\n item,\n isFeatured,\n onClick,\n children,\n columns,\n className,\n disabled,\n}: ItemListRowButtonProps) {\n const handleClick = () => {\n onClick?.(item?.id);\n };\n\n return (\n <button\n onClick={handleClick}\n className={cn(\n 'grid w-full px-4 gap-4 text-left items-center rounded-lg',\n transitions.colors,\n focusRing.visible,\n {\n 'bg-surface4': isFeatured,\n // hover effect only not for skeleton and featured\n 'hover:bg-surface4': item && !isFeatured && !disabled,\n },\n className,\n )}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n disabled={disabled}\n >\n {children}\n </button>\n );\n}\n","import { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListStatusCellProps = {\n status?: string;\n};\n\nfunction capitalize(value: string): string {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nexport function ItemListStatusCell({ status }: ItemListStatusCellProps) {\n if (!status) {\n return null;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={cn('flex items-center justify-center w-10 relative bg-transparent h-full')}>\n <div\n className={cn('w-2 h-2 rounded-full', {\n 'bg-green-600': ['success', 'completed'].includes(status),\n 'bg-red-700': ['error', 'failed'].includes(status),\n 'bg-yellow-500': ['pending', 'running'].includes(status),\n })}\n ></div>\n </div>\n </TooltipTrigger>\n <TooltipContent>{capitalize(status)}</TooltipContent>\n </Tooltip>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListTextCellProps = {\n children: React.ReactNode;\n isLoading?: boolean;\n className?: string;\n};\n\nexport function ItemListTextCell({ children, isLoading, className }: ItemListTextCellProps) {\n return (\n <div className={cn('text-neutral4 py-[0.6rem] text-ui-md truncate', className)}>\n {isLoading ? (\n <div className=\"bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none\"></div>\n ) : (\n children\n )}\n </div>\n );\n}\n","import { format } from 'date-fns';\nimport { BanIcon, ClockIcon } from 'lucide-react';\nimport { Chip } from '../Chip';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../Tooltip';\nimport { ItemListCell } from './item-list-cell';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListVersionCellProps = {\n version: string | number;\n date?: Date | string | null;\n isLatest?: boolean;\n isDeleted?: boolean;\n};\n\nexport function ItemListVersionCell({ version, date, isLatest, isDeleted }: ItemListVersionCellProps) {\n return (\n <ItemListCell className={cn('grid grid-cols-[1fr_auto] pl-1')}>\n <div\n className={cn('grid text-neutral3 gap-1 leading-none', {\n 'text-neutral4': isLatest,\n })}\n >\n <strong className=\"font-normal\">v. {version}</strong>\n <em className=\"text-neutral2 text-ui-sm font-normal\">\n {date ? format(new Date(date), 'MMM d, yyyy HH:mm') : null}\n </em>\n </div>\n {(isLatest || isDeleted) && (\n <div className=\"flex gap-1 items-center\">\n {isLatest && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Chip color=\"blue\">\n <ClockIcon />\n </Chip>\n </TooltipTrigger>\n <TooltipContent>Latest version</TooltipContent>\n </Tooltip>\n )}\n {isDeleted && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Chip color=\"red\">\n <BanIcon />\n </Chip>\n </TooltipTrigger>\n <TooltipContent>Deleted in this version</TooltipContent>\n </Tooltip>\n )}\n </div>\n )}\n </ItemListCell>\n );\n}\n","import { ItemListCell } from './item-list-cell';\nimport { ItemListDateCell } from './item-list-date-cell';\nimport { ItemListHeader } from './item-list-header';\nimport { ItemListHeaderCol } from './item-list-header-col';\nimport { ItemListIdCell } from './item-list-id-cell';\nimport { ItemListItems } from './item-list-items';\nimport { ItemListItemsScroller } from './item-list-items-scroller';\nimport { ItemListLabelCell } from './item-list-label-cell';\nimport { ItemListLinkCell } from './item-list-link-cell';\nimport { ItemListMessage } from './item-list-message';\nimport { ItemListNextPageLoading } from './item-list-next-page-loading';\nimport { ItemListPagination } from './item-list-pagination';\nimport { ItemListRoot } from './item-list-root';\nimport { ItemListRow } from './item-list-row';\nimport { ItemListRowButton } from './item-list-row-button';\nimport { ItemListStatusCell } from './item-list-status-cell';\nimport { ItemListTextCell } from './item-list-text-cell';\nimport { ItemListVersionCell } from './item-list-version-cell';\n\nexport const ItemList = Object.assign(ItemListRoot, {\n Header: ItemListHeader,\n HeaderCol: ItemListHeaderCol,\n Items: ItemListItems,\n Scroller: ItemListItemsScroller,\n Row: ItemListRow,\n RowButton: ItemListRowButton,\n Message: ItemListMessage,\n NextPageLoading: ItemListNextPageLoading,\n Pagination: ItemListPagination,\n Cell: ItemListCell,\n TextCell: ItemListTextCell,\n StatusCell: ItemListStatusCell,\n VersionCell: ItemListVersionCell,\n IdCell: ItemListIdCell,\n DateCell: ItemListDateCell,\n LinkCell: ItemListLinkCell,\n LabelCell: ItemListLabelCell,\n});\n","import { ItemListItems } from './item-list-items';\nimport { ItemListRow } from './item-list-row';\nimport { ItemListRowButton } from './item-list-row-button';\nimport type { ItemListColumn } from './types';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'];\n\nexport type ItemListItemsSkeletonProps = {\n columns?: ItemListColumn[];\n numberOfRows?: number;\n};\n\nexport function ItemListItemsSkeleton({ columns, numberOfRows = 3 }: ItemListItemsSkeletonProps) {\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + (columns?.length || 0) + (numberOfRows || 0)) % widths.length;\n return widths[index];\n };\n\n return (\n <ItemListItems>\n {Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <ItemListRow key={rowIdx}>\n <ItemListRowButton columns={columns}>\n {(columns || []).map((col, colIdx) => {\n const key = `${col.name}-${colIdx}`;\n return (\n <div\n key={key}\n className=\"bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none\"\n style={{ width: `${getPseudoRandomWidth(rowIdx, colIdx)}` }}\n ></div>\n );\n })}\n </ItemListRowButton>\n </ItemListRow>\n ))}\n </ItemListItems>\n );\n}\n","import { ItemList } from './item-list';\nimport { ItemListHeader } from './item-list-header';\nimport { ItemListItemsSkeleton } from './item-list-items-skeleton';\nimport type { ItemListItemsSkeletonProps } from './item-list-items-skeleton';\n\nexport function ItemListSkeleton({ columns, numberOfRows }: ItemListItemsSkeletonProps) {\n return (\n <ItemList>\n <ItemListHeader columns={columns} />\n <ItemListItemsSkeleton columns={columns} numberOfRows={numberOfRows} />\n </ItemList>\n );\n}\n","type getToItemFnParams = {\n entries: { id: string }[];\n id: string | undefined;\n update: (id: string) => void;\n};\n\nexport function getToNextItemFn({ entries, id, update }: getToItemFnParams) {\n const currentIndex = entries.findIndex(entry => entry.id === id);\n const thereIsNextItem = currentIndex < entries.length - 1;\n\n if (thereIsNextItem) {\n return () => {\n const nextItem = entries[currentIndex + 1];\n update(nextItem.id);\n };\n }\n\n return undefined;\n}\n\nexport function getToPreviousItemFn({ entries, id, update }: getToItemFnParams) {\n const currentIndex = entries.findIndex(entry => entry.id === id);\n const thereIsPreviousItem = currentIndex > 0;\n\n if (thereIsPreviousItem) {\n return () => {\n const previousItem = entries[currentIndex - 1];\n update(previousItem.id);\n };\n }\n\n return undefined;\n}\n"],"names":["cn","isThisYear","isToday","format","jsx","useRef","transitions","focusRing","jsxs","TriangleAlertIcon","InfoIcon","ArrowLeftIcon","ArrowRightIcon","Tooltip","TooltipTrigger","TooltipContent","Chip","ClockIcon","BanIcon"],"mappings":";;;;;;;;;;;;;;;AAOO,SAAS,YAAA,CAAa,EAAE,QAAA,EAAU,SAAA,EAAU,EAA0B;AAC3E,EAAA,sCAAQ,KAAA,EAAA,EAAI,SAAA,EAAWA,YAAG,EAAA,EAAI,SAAS,GAAI,QAAA,EAAS,CAAA;AACtD;;ACEO,SAAS,iBAAiB,EAAE,IAAA,EAAM,SAAA,EAAW,QAAA,GAAW,OAAM,EAA0B;AAC7F,EAAA,MAAM,iBAAiB,IAAA,GAAOC,kBAAA,CAAW,IAAI,IAAA,CAAK,IAAI,CAAC,CAAA,GAAI,KAAA;AAE3D,EAAA,MAAM,kBAAA,GAAqB,IAAA,GAAQC,eAAA,CAAQ,IAAI,KAAK,IAAI,CAAC,CAAA,GAAI,OAAA,GAAUC,cAAO,IAAI,IAAA,CAAK,IAAI,CAAA,EAAG,QAAQ,CAAA,GAAK,EAAA;AAC3G,EAAA,MAAM,WAAA,GAAc,IAAA,IAAQ,CAAC,cAAA,GAAiBA,aAAA,CAAO,IAAI,IAAA,CAAK,IAAI,CAAA,EAAG,MAAM,CAAA,GAAI,EAAA;AAC/E,EAAA,MAAM,WAAA,GAAc,IAAA,IAAQ,QAAA,GAAW,CAAA,EAAGA,aAAA,CAAO,IAAI,IAAA,CAAK,IAAI,CAAA,EAAG,eAAe,CAAC,CAAA,CAAA,GAAK,EAAA;AAEtF,EAAA,uCACG,KAAA,EAAA,EAAI,SAAA,EAAWH,WAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA,EAC9D,QAAA,EAAA;AAAA,IAAA,kBAAA;AAAA,IAAmB,GAAA;AAAA,IAAE,WAAA;AAAA,IAAY,GAAA;AAAA,IAAE;AAAA,GAAA,EACtC,CAAA;AAEJ;;ACrBO,SAAS,0BAA0B,OAAA,EAAoC;AAC5E,EAAA,IAAI,CAAC,OAAA,IAAW,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG;AACpC,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,OAAO,OAAA,EACH,IAAI,CAAA,MAAA,KAAU;AACd,IAAA,OAAO,MAAA,CAAO,IAAA;AAAA,EAChB,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AACb;;ACDO,SAAS,cAAA,CAAe,EAAE,OAAA,EAAS,iBAAA,EAAmB,UAAS,EAAwB;AAC5F,EAAA,uBACEI,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWJ,WAAA,CAAG,oDAAoD,CAAA,EACrE,QAAA,kBAAAI,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWJ,YAAG,uFAAA,EAAyF;AAAA,QACrG,2CAAA,EAA6C;AAAA,OAC9C,CAAA;AAAA,MACD,KAAA,EAAO,EAAE,mBAAA,EAAqB,yBAAA,CAA0B,OAAO,CAAA,EAAE;AAAA,MAEhE;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;;ACjBO,SAAS,iBAAA,CAAkB,EAAE,QAAA,EAAU,SAAA,EAAU,EAA2B;AACjF,EAAA,sCAAQ,MAAA,EAAA,EAAK,SAAA,EAAWA,YAAG,MAAA,EAAQ,SAAS,GAAI,QAAA,EAAS,CAAA;AAC3D;;ACDO,SAAS,eAAe,EAAE,EAAA,EAAI,SAAA,EAAW,WAAA,GAAc,MAAK,EAAwB;AACzF,EAAA,MAAM,YAAY,WAAA,GAAc,EAAA,CAAG,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,EAAA;AACjD,EAAA,sCAAQ,KAAA,EAAA,EAAI,SAAA,EAAWA,YAAG,+CAAA,EAAiD,SAAS,GAAI,QAAA,EAAA,SAAA,EAAU,CAAA;AACpG;;ACLO,SAAS,aAAA,CAAc,EAAE,QAAA,EAAS,EAAuB;AAC9D,EAAA,uBAAOI,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS,CAAA;AACtD;;ACDO,SAAS,qBAAA,CAAsB,EAAE,QAAA,EAAS,EAA0B;AACzE,EAAA,MAAM,YAAA,GAAeC,aAAuB,IAAI,CAAA;AAEhD,EAAA,uBACED,cAAA,CAAC,SAAI,GAAA,EAAK,YAAA,EAAc,WAAWJ,WAAA,CAAG,iBAAiB,GACpD,QAAA,EACH,CAAA;AAEJ;;ACRO,SAAS,iBAAA,CAAkB,EAAE,QAAA,EAAU,SAAA,EAAU,EAA2B;AACjF,EAAA,sCACG,OAAA,EAAA,EAAM,SAAA,EAAWA,YAAG,2EAAA,EAA6E,SAAS,GACxG,QAAA,EACH,CAAA;AAEJ;;ACFO,SAAS,iBAAiB,EAAE,QAAA,EAAU,MAAM,SAAA,EAAW,aAAA,EAAe,MAAK,EAA0B;AAC1G,EAAA,uBACEI,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,SAAA,EAAWJ,WAAA;AAAA,QACT,qFAAA;AAAA,QACA,mBAAA;AAAA,QACAM,kCAAA,CAAY,MAAA;AAAA,QACZC,gCAAA,CAAU,OAAA;AAAA,QAEV;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;ACjBO,SAAS,gBAAgB,EAAE,QAAA,EAAU,OAAA,EAAS,SAAA,EAAW,MAAK,EAAyB;AAC5F,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,OAAA,EAAS;AACzB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,sCACG,KAAA,EAAA,EAAI,SAAA,EAAWP,YAAG,8BAAA,EAAgC,SAAS,GACzD,QAAA,EAAA,OAAA,mBACCQ,eAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWR,WAAA;AAAA,QACT,yFAAA;AAAA,QACA,wDAAA;AAAA,QACA;AAAA,UACE,wBAAwB,IAAA,KAAS;AAAA;AACnC,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,IAAA,KAAS,OAAA,mBAAUI,cAAA,CAACK,6BAAA,EAAA,EAAkB,CAAA,kCAAMC,oBAAA,EAAA,EAAS,CAAA;AAAA,QAAG,GAAA;AAAA,QAAE;AAAA;AAAA;AAAA,MAG7D,QAAA,EAEJ,CAAA;AAEJ;;AC1BO,SAAS,uBAAA,CAAwB;AAAA,EACtC,SAAA;AAAA,EACA,OAAA;AAAA,EACA,mBAAA;AAAA,EACA,WAAA,GAAc,sBAAA;AAAA,EACd,cAAA,GAAiB;AACnB,CAAA,EAAiC;AAC/B,EAAA,IAAI,CAAC,mBAAA,EAAqB;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEF,eAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,mBAAA,EAAqB,WAAU,8DAAA,EACtC,QAAA,EAAA;AAAA,IAAA,SAAA,IAAa,WAAA;AAAA,IACb,CAAC,OAAA,IAAW,CAAC,SAAA,IAAa;AAAA,GAAA,EAC7B,CAAA;AAEJ;;ACdO,SAAS,mBAAmB,EAAE,WAAA,EAAa,OAAA,EAAS,UAAA,EAAY,YAAW,EAA4B;AAC5G,EAAA,MAAM,cAAA,GAAkB,OAAO,WAAA,KAAgB,QAAA,IAAY,cAAc,CAAA,IAAM,OAAA;AAE/E,EAAA,uBACEA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWR,WAAA,CAAG,sEAAsE,CAAA,EACvF,QAAA,EAAA;AAAA,oBAAAQ,eAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,sBACCJ,cAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,WAAA,GAAc,WAAA,GAAc,IAAI,GAAA,EAAI;AAAA,KAAA,EAC/C,CAAA;AAAA,IACC,cAAA,oBACCI,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWR,WAAA;AAAA,UACT,YAAA;AAAA,UACA,gPAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,OAAO,gBAAgB,QAAA,IAAY,WAAA,GAAc,qBAChDQ,eAAA,CAAC,QAAA,EAAA,EAAO,SAAS,UAAA,EACf,QAAA,EAAA;AAAA,4BAAAJ,cAAA,CAACO,yBAAA,EAAA,EAAc,CAAA;AAAA,YAAE;AAAA,WAAA,EAEnB,CAAA;AAAA,UAED,OAAA,oBACCH,eAAA,CAAC,QAAA,EAAA,EAAO,OAAA,EAAS,UAAA,EAAY,QAAA,EAAA;AAAA,YAAA,MAAA;AAAA,2CAE1BI,0BAAA,EAAA,EAAe;AAAA,WAAA,EAClB;AAAA;AAAA;AAAA;AAEJ,GAAA,EAEJ,CAAA;AAEJ;;ACnCO,SAAS,YAAA,CAAa,EAAE,QAAA,EAAU,SAAA,EAAU,EAAsB;AACvE,EAAA,sCAAQ,KAAA,EAAA,EAAI,SAAA,EAAWZ,YAAG,2CAAA,EAA6C,SAAS,GAAI,QAAA,EAAS,CAAA;AAC/F;;ACCO,SAAS,WAAA,CAAY,EAAE,UAAA,EAAY,QAAA,EAAU,SAAQ,EAAqB;AAC/E,EAAA,uBACEI,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWJ,WAAA;AAAA,QACT,kJAAA;AAAA,QACA,oCAAA;AAAA,QACA,mJAAA;AAAA,QACA,qFAAA;AAAA,QACA,kCAAA;AAAA,QACAM,kCAAA,CAAY,MAAA;AAAA,QACZ;AAAA,UACE,cAAA,EAAgB,UAAA;AAAA,UAChB,kBAAA,EAAoB;AAAA;AACtB,OACF;AAAA,MACA,KAAA,EAAO,EAAE,mBAAA,EAAqB,yBAAA,CAA0B,OAAO,CAAA,EAAE;AAAA,MAEhE;AAAA;AAAA,GACH;AAEJ;;AChBO,SAAS,iBAAA,CAAkB;AAAA,EAChC,IAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,OAAA,GAAU,MAAM,EAAE,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,uBACEF,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAWJ,WAAA;AAAA,QACT,0DAAA;AAAA,QACAM,kCAAA,CAAY,MAAA;AAAA,QACZC,gCAAA,CAAU,OAAA;AAAA,QACV;AAAA,UACE,aAAA,EAAe,UAAA;AAAA;AAAA,UAEf,mBAAA,EAAqB,IAAA,IAAQ,CAAC,UAAA,IAAc,CAAC;AAAA,SAC/C;AAAA,QACA;AAAA,OACF;AAAA,MACA,KAAA,EAAO,EAAE,mBAAA,EAAqB,yBAAA,CAA0B,OAAO,CAAA,EAAE;AAAA,MACjE,QAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;ACzCA,SAAS,WAAW,KAAA,EAAuB;AACzC,EAAA,OAAO,KAAA,CAAM,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,KAAA,CAAM,MAAM,CAAC,CAAA;AACtD;AAEO,SAAS,kBAAA,CAAmB,EAAE,MAAA,EAAO,EAA4B;AACtE,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uCACGM,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAT,cAAA,CAACU,sBAAA,EAAA,EAAe,SAAO,IAAA,EACrB,QAAA,kBAAAV,cAAA,CAAC,SAAI,SAAA,EAAWJ,WAAA,CAAG,sEAAsE,CAAA,EACvF,QAAA,kBAAAI,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWJ,YAAG,sBAAA,EAAwB;AAAA,UACpC,gBAAgB,CAAC,SAAA,EAAW,WAAW,CAAA,CAAE,SAAS,MAAM,CAAA;AAAA,UACxD,cAAc,CAAC,OAAA,EAAS,QAAQ,CAAA,CAAE,SAAS,MAAM,CAAA;AAAA,UACjD,iBAAiB,CAAC,SAAA,EAAW,SAAS,CAAA,CAAE,SAAS,MAAM;AAAA,SACxD;AAAA;AAAA,OAEL,CAAA,EACF,CAAA;AAAA,oBACAI,cAAA,CAACW,sBAAA,EAAA,EAAgB,QAAA,EAAA,UAAA,CAAW,MAAM,CAAA,EAAE;AAAA,GAAA,EACtC,CAAA;AAEJ;;ACxBO,SAAS,gBAAA,CAAiB,EAAE,QAAA,EAAU,SAAA,EAAW,WAAU,EAA0B;AAC1F,EAAA,uBACEX,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWJ,WAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA,EAC3E,QAAA,EAAA,SAAA,mBACCI,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uEAAA,EAAwE,IAEvF,QAAA,EAEJ,CAAA;AAEJ;;ACJO,SAAS,oBAAoB,EAAE,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,WAAU,EAA6B;AACpG,EAAA,uBACEI,eAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAWR,WAAA,CAAG,gCAAgC,CAAA,EAC1D,QAAA,EAAA;AAAA,oBAAAQ,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWR,YAAG,uCAAA,EAAyC;AAAA,UACrD,eAAA,EAAiB;AAAA,SAClB,CAAA;AAAA,QAED,QAAA,EAAA;AAAA,0BAAAQ,eAAA,CAAC,QAAA,EAAA,EAAO,WAAU,aAAA,EAAc,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,YAAI;AAAA,WAAA,EAAQ,CAAA;AAAA,0BAC5CJ,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sCAAA,EACX,QAAA,EAAA,IAAA,GAAOD,cAAA,CAAO,IAAI,IAAA,CAAK,IAAI,CAAA,EAAG,mBAAmB,CAAA,GAAI,IAAA,EACxD;AAAA;AAAA;AAAA,KACF;AAAA,IAAA,CACE,QAAA,IAAY,SAAA,qBACZK,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,QAAA,oCACEK,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAT,cAAA,CAACU,sBAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EACrB,QAAA,kBAAAV,cAAA,CAACY,SAAA,EAAA,EAAK,OAAM,MAAA,EACV,QAAA,kBAAAZ,cAAA,CAACa,qBAAA,EAAA,EAAU,CAAA,EACb,CAAA,EACF,CAAA;AAAA,wBACAb,cAAA,CAACW,0BAAe,QAAA,EAAA,gBAAA,EAAc;AAAA,OAAA,EAChC,CAAA;AAAA,MAED,SAAA,oCACEF,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAT,cAAA,CAACU,sBAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EACrB,QAAA,kBAAAV,cAAA,CAACY,SAAA,EAAA,EAAK,OAAM,KAAA,EACV,QAAA,kBAAAZ,cAAA,CAACc,mBAAA,EAAA,EAAQ,CAAA,EACX,CAAA,EACF,CAAA;AAAA,wBACAd,cAAA,CAACW,0BAAe,QAAA,EAAA,yBAAA,EAAuB;AAAA,OAAA,EACzC;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ;;AClCO,MAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAO,YAAA,EAAc;AAAA,EAClD,MAAA,EAAQ,cAAA;AAAA,EACR,SAAA,EAAW,iBAAA;AAAA,EACX,KAAA,EAAO,aAAA;AAAA,EACP,QAAA,EAAU,qBAAA;AAAA,EACV,GAAA,EAAK,WAAA;AAAA,EACL,SAAA,EAAW,iBAAA;AAAA,EACX,OAAA,EAAS,eAAA;AAAA,EACT,eAAA,EAAiB,uBAAA;AAAA,EACjB,UAAA,EAAY,kBAAA;AAAA,EACZ,IAAA,EAAM,YAAA;AAAA,EACN,QAAA,EAAU,gBAAA;AAAA,EACV,UAAA,EAAY,kBAAA;AAAA,EACZ,WAAA,EAAa,mBAAA;AAAA,EACb,MAAA,EAAQ,cAAA;AAAA,EACR,QAAA,EAAU,gBAAA;AAAA,EACV,QAAA,EAAU,gBAAA;AAAA,EACV,SAAA,EAAW;AACb,CAAC;;AChCD,MAAM,SAAS,CAAC,KAAA,EAAO,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AAOjD,SAAS,qBAAA,CAAsB,EAAE,OAAA,EAAS,YAAA,GAAe,GAAE,EAA+B;AAC/F,EAAA,MAAM,oBAAA,GAAuB,CAAC,MAAA,EAAgB,MAAA,KAAmB;AAC/D,IAAA,MAAM,KAAA,GAAA,CAAS,SAAS,MAAA,IAAU,OAAA,EAAS,UAAU,CAAA,CAAA,IAAM,YAAA,IAAgB,MAAM,MAAA,CAAO,MAAA;AACxF,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,uBACEX,cAAA,CAAC,aAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,QAAQ,YAAA,EAAc,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,2BAC5CA,cAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,cAAA,CAAC,iBAAA,EAAA,EAAkB,OAAA,EACf,QAAA,EAAA,CAAA,OAAA,IAAW,EAAC,EAAG,GAAA,CAAI,CAAC,GAAA,EAAK,MAAA,KAAW;AACpC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,GAAA,CAAI,IAAI,IAAI,MAAM,CAAA,CAAA;AACjC,IAAA,uBACEA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QAEC,SAAA,EAAU,uEAAA;AAAA,QACV,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,qBAAqB,MAAA,EAAQ,MAAM,CAAC,CAAA,CAAA;AAAG,OAAA;AAAA,MAFrD;AAAA,KAGN;AAAA,EAEL,CAAC,CAAA,EACH,CAAA,EAAA,EAZgB,MAalB,CACD,CAAA,EACH,CAAA;AAEJ;;ACjCO,SAAS,gBAAA,CAAiB,EAAE,OAAA,EAAS,YAAA,EAAa,EAA+B;AACtF,EAAA,uCACG,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAA,cAAA,CAAC,kBAAe,OAAA,EAAkB,CAAA;AAAA,oBAClCA,cAAA,CAAC,qBAAA,EAAA,EAAsB,OAAA,EAAkB,YAAA,EAA4B;AAAA,GAAA,EACvE,CAAA;AAEJ;;ACNO,SAAS,eAAA,CAAgB,EAAE,OAAA,EAAS,EAAA,EAAI,QAAO,EAAsB;AAC1E,EAAA,MAAM,eAAe,OAAA,CAAQ,SAAA,CAAU,CAAA,KAAA,KAAS,KAAA,CAAM,OAAO,EAAE,CAAA;AAC/D,EAAA,MAAM,eAAA,GAAkB,YAAA,GAAe,OAAA,CAAQ,MAAA,GAAS,CAAA;AAExD,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,OAAO,MAAM;AACX,MAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,YAAA,GAAe,CAAC,CAAA;AACzC,MAAA,MAAA,CAAO,SAAS,EAAE,CAAA;AAAA,IACpB,CAAA;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,mBAAA,CAAoB,EAAE,OAAA,EAAS,EAAA,EAAI,QAAO,EAAsB;AAC9E,EAAA,MAAM,eAAe,OAAA,CAAQ,SAAA,CAAU,CAAA,KAAA,KAAS,KAAA,CAAM,OAAO,EAAE,CAAA;AAC/D,EAAA,MAAM,sBAAsB,YAAA,GAAe,CAAA;AAE3C,EAAA,IAAI,mBAAA,EAAqB;AACvB,IAAA,OAAO,MAAM;AACX,MAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,YAAA,GAAe,CAAC,CAAA;AAC7C,MAAA,MAAA,CAAO,aAAa,EAAE,CAAA;AAAA,IACxB,CAAA;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"ItemList.cjs.js","sources":["../../src/ds/components/ItemList/item-list-cell.tsx","../../src/ds/components/ItemList/item-list-date-cell.tsx","../../src/ds/components/ItemList/shared.tsx","../../src/ds/components/ItemList/item-list-header.tsx","../../src/ds/components/ItemList/item-list-header-col.tsx","../../src/ds/components/ItemList/item-list-id-cell.tsx","../../src/ds/components/ItemList/item-list-items.tsx","../../src/ds/components/ItemList/item-list-items-scroller.tsx","../../src/ds/components/ItemList/item-list-label-cell.tsx","../../src/ds/components/ItemList/item-list-link-cell.tsx","../../src/ds/components/ItemList/item-list-message.tsx","../../src/ds/components/ItemList/item-list-next-page-loading.tsx","../../src/ds/components/ItemList/item-list-pagination.tsx","../../src/ds/components/ItemList/item-list-root.tsx","../../src/ds/components/ItemList/item-list-row.tsx","../../src/ds/components/ItemList/item-list-row-button.tsx","../../src/ds/components/ItemList/item-list-status-cell.tsx","../../src/ds/components/ItemList/item-list-text-cell.tsx","../../src/ds/components/ItemList/item-list-version-cell.tsx","../../src/ds/components/ItemList/item-list.tsx","../../src/ds/components/ItemList/item-list-items-skeleton.tsx","../../src/ds/components/ItemList/item-list-skeleton.tsx","../../src/ds/components/ItemList/helpers.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type ItemListTextCellProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListCell({ children, className }: ItemListTextCellProps) {\n return <div className={cn('', className)}>{children}</div>;\n}\n","import { isThisYear } from 'date-fns';\nimport { format } from 'date-fns/format';\nimport { isToday } from 'date-fns/isToday';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListDateCellProps = {\n date: Date | string | null;\n className?: string;\n withTime?: boolean;\n};\n\nexport function ItemListDateCell({ date, className, withTime = false }: ItemListDateCellProps) {\n const isThisYearDate = date ? isThisYear(new Date(date)) : false;\n\n const displayDayAndMonth = date ? (isToday(new Date(date)) ? 'Today' : format(new Date(date), 'MMM dd')) : '';\n const displayYear = date && !isThisYearDate ? format(new Date(date), 'yyyy') : '';\n const displayTime = date && withTime ? `${format(new Date(date), \"'at' h:mm aaa\")}` : '';\n\n return (\n <div className={cn('text-neutral2 text-ui-md truncate', className)}>\n {displayDayAndMonth} {displayYear} {displayTime}\n </div>\n );\n}\n","import type { ItemListColumn } from './types';\n\nexport function getItemListColumnTemplate(columns?: ItemListColumn[]): string {\n if (!columns || columns.length === 0) {\n return '';\n }\n\n return columns\n ?.map(column => {\n return column.size;\n })\n .join(' ');\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\n\nimport { cn } from '@/lib/utils';\n\nexport type ItemListHeaderProps = {\n columns?: ItemListColumn[];\n isSelectionActive?: boolean;\n children?: React.ReactNode;\n};\n\nexport function ItemListHeader({ columns, isSelectionActive, children }: ItemListHeaderProps) {\n return (\n <div className={cn('sticky top-0 bg-surface3 z-10 rounded-lg px-4 mb-4')}>\n <div\n className={cn('grid gap-4 text-left items-center uppercase text-neutral3 tracking-widest text-ui-xs', {\n 'pl-12 [&>label]:absolute [&>label]:left-0': isSelectionActive,\n })}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n >\n {children}\n </div>\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListHeaderColProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListHeaderCol({ children, className }: ItemListHeaderColProps) {\n return <span className={cn('py-3', className)}>{children}</span>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListIdCellProps = {\n id: string;\n className?: string;\n isShortened?: boolean;\n};\n\nexport function ItemListIdCell({ id, className, isShortened = true }: ItemListIdCellProps) {\n const displayId = isShortened ? id.slice(0, 8) : id;\n return <div className={cn('text-neutral2 py-[0.6rem] text-ui-md truncate', className)}>{displayId}</div>;\n}\n","import React from 'react';\n\nexport type ItemListItemsProps = {\n children?: React.ReactNode;\n};\n\nexport function ItemListItems({ children }: ItemListItemsProps) {\n return <ul className=\"grid content-start\">{children}</ul>;\n}\n","import React, { useRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListItemsScroller = {\n children?: React.ReactNode;\n};\n\nexport function ItemListItemsScroller({ children }: ItemListItemsScroller) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n return (\n <div ref={containerRef} className={cn('overflow-y-auto')}>\n {children}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListLabelCellProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListLabelCell({ children, className }: ItemListLabelCellProps) {\n return (\n <label className={cn('flex w-14 h-full justify-center items-center hover:bg-surface5 rounded-lg', className)}>\n {children}\n </label>\n );\n}\n","import { transitions, focusRing } from '@/ds/primitives/transitions';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListLinkCellProps = {\n children?: React.ReactNode;\n className?: string;\n href: string;\n LinkComponent: LinkComponent;\n};\n\nexport function ItemListLinkCell({ children, href, className, LinkComponent: Link }: ItemListLinkCellProps) {\n return (\n <Link\n href={href}\n className={cn(\n 'w-full px-3 py-[0.6rem] gap-6 text-left items-center rounded-lg flex justify-center',\n 'hover:bg-surface4',\n transitions.colors,\n focusRing.visible,\n\n className,\n )}\n >\n {children}\n </Link>\n );\n}\n","import { InfoIcon, TriangleAlertIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListMessageProps = {\n children?: React.ReactNode;\n message?: string;\n className?: string;\n type?: 'info' | 'error';\n};\n\nexport function ItemListMessage({ children, message, className, type }: ItemListMessageProps) {\n if (!children && !message) {\n return null;\n }\n\n return (\n <div className={cn('grid border-t border-border1', className)}>\n {message ? (\n <p\n className={cn(\n 'text-neutral3 text-ui-md text-center grid p-8 justify-center justify-items-center gap-2',\n '[&>svg]:w-[1.5em] [&>svg]:h-[1.5em] [&>svg]:opacity-75',\n {\n '[&>svg]:text-red-500': type === 'error',\n },\n )}\n >\n {type === 'error' ? <TriangleAlertIcon /> : <InfoIcon />} {message}\n </p>\n ) : (\n children\n )}\n </div>\n );\n}\n","export type ItemListNextPageLoadingProps = {\n isLoading?: boolean;\n hasMore?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n loadingText?: string;\n noMoreDataText?: string;\n};\n\nexport function ItemListNextPageLoading({\n isLoading,\n hasMore,\n setEndOfListElement,\n loadingText = 'Loading more data...',\n noMoreDataText = 'No more data to load',\n}: ItemListNextPageLoadingProps) {\n if (!setEndOfListElement) {\n return null;\n }\n\n return (\n <div ref={setEndOfListElement} className=\"text-ui-md text-neutral3 opacity-50 flex mt-8 justify-center\">\n {isLoading && loadingText}\n {!hasMore && !isLoading && noMoreDataText}\n </div>\n );\n}\n","import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type ItemListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function ItemListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: ItemListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className={cn('flex pt-6 items-center justify-center text-neutral3 text-ui-md gap-8')}>\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div\n className={cn(\n 'flex gap-4',\n '[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:text-neutral4 [&>button:hover]:text-neutral5 [&>button]:transition-colors [&>button]:border [&>button]:border-border1 [&>button]:p-1 [&>button]:px-2 [&>button]:rounded-md',\n '[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3',\n )}\n >\n {typeof currentPage === 'number' && currentPage > 0 && (\n <button onClick={onPrevPage}>\n <ArrowLeftIcon />\n Previous\n </button>\n )}\n {hasMore && (\n <button onClick={onNextPage}>\n Next\n <ArrowRightIcon />\n </button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRootProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListRoot({ children, className }: ItemListRootProps) {\n return <div className={cn('grid grid-rows-[auto_1fr] overflow-y-auto', className)}>{children}</div>;\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRowProps = {\n isSelected?: boolean;\n children?: React.ReactNode;\n columns?: ItemListColumn[];\n};\n\nexport function ItemListRow({ isSelected, children, columns }: ItemListRowProps) {\n return (\n <li\n className={cn(\n 'flex border border-transparent py-[3px] pb-[2px] text-neutral5 border-t-border1 rounded-lg first:border-t-transparent text-ui-md overflow-hidden',\n '[&:last-child>button]:rounded-b-lg',\n '[&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:border-dashed [&.selected-row]:border [&.selected-row]:first:border-t',\n '[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent',\n '[.selected-row+&]:rounded-t-none',\n transitions.colors,\n {\n 'selected-row': isSelected,\n 'grid px-4 gap-4 ': columns,\n },\n )}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n >\n {children}\n </li>\n );\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\nimport { transitions, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRowButtonProps = {\n item?: any;\n isFeatured?: boolean;\n children?: React.ReactNode;\n onClick?: (itemId: string) => void;\n columns?: ItemListColumn[];\n className?: string;\n disabled?: boolean;\n};\n\nexport function ItemListRowButton({\n item,\n isFeatured,\n onClick,\n children,\n columns,\n className,\n disabled,\n}: ItemListRowButtonProps) {\n const handleClick = () => {\n onClick?.(item?.id);\n };\n\n return (\n <button\n onClick={handleClick}\n className={cn(\n 'grid w-full px-4 gap-4 text-left items-center rounded-lg',\n transitions.colors,\n focusRing.visible,\n {\n 'bg-surface4': isFeatured,\n // hover effect only not for skeleton and featured\n 'hover:bg-surface4': item && !isFeatured && !disabled,\n },\n className,\n )}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n disabled={disabled}\n >\n {children}\n </button>\n );\n}\n","import { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListStatusCellProps = {\n status?: string;\n};\n\nfunction capitalize(value: string): string {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nexport function ItemListStatusCell({ status }: ItemListStatusCellProps) {\n if (!status) {\n return null;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={cn('flex items-center justify-center w-10 relative bg-transparent h-full')}>\n <div\n className={cn('w-2 h-2 rounded-full', {\n 'bg-green-600': ['success', 'completed'].includes(status),\n 'bg-red-700': ['error', 'failed'].includes(status),\n 'bg-yellow-500': ['pending', 'running'].includes(status),\n })}\n ></div>\n </div>\n </TooltipTrigger>\n <TooltipContent>{capitalize(status)}</TooltipContent>\n </Tooltip>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListTextCellProps = {\n children: React.ReactNode;\n isLoading?: boolean;\n className?: string;\n};\n\nexport function ItemListTextCell({ children, isLoading, className }: ItemListTextCellProps) {\n return (\n <div className={cn('text-neutral4 py-[0.6rem] text-ui-md truncate', className)}>\n {isLoading ? (\n <div className=\"bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none\"></div>\n ) : (\n children\n )}\n </div>\n );\n}\n","import { format } from 'date-fns';\nimport { BanIcon, ClockIcon } from 'lucide-react';\nimport { Chip } from '../Chip';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../Tooltip';\nimport { ItemListCell } from './item-list-cell';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListVersionCellProps = {\n version: string | number;\n date?: Date | string | null;\n isLatest?: boolean;\n isDeleted?: boolean;\n};\n\nexport function ItemListVersionCell({ version, date, isLatest, isDeleted }: ItemListVersionCellProps) {\n return (\n <ItemListCell className={cn('grid grid-cols-[1fr_auto] pl-1')}>\n <div\n className={cn('grid text-neutral3 gap-1 leading-none', {\n 'text-neutral4': isLatest,\n })}\n >\n <strong className=\"font-normal\">v. {version}</strong>\n <em className=\"text-neutral2 text-ui-sm font-normal\">\n {date ? format(new Date(date), 'MMM d, yyyy HH:mm') : null}\n </em>\n </div>\n {(isLatest || isDeleted) && (\n <div className=\"flex gap-1 items-center\">\n {isLatest && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Chip color=\"blue\">\n <ClockIcon />\n </Chip>\n </TooltipTrigger>\n <TooltipContent>Latest version</TooltipContent>\n </Tooltip>\n )}\n {isDeleted && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Chip color=\"red\">\n <BanIcon />\n </Chip>\n </TooltipTrigger>\n <TooltipContent>Deleted in this version</TooltipContent>\n </Tooltip>\n )}\n </div>\n )}\n </ItemListCell>\n );\n}\n","import { ItemListCell } from './item-list-cell';\nimport { ItemListDateCell } from './item-list-date-cell';\nimport { ItemListHeader } from './item-list-header';\nimport { ItemListHeaderCol } from './item-list-header-col';\nimport { ItemListIdCell } from './item-list-id-cell';\nimport { ItemListItems } from './item-list-items';\nimport { ItemListItemsScroller } from './item-list-items-scroller';\nimport { ItemListLabelCell } from './item-list-label-cell';\nimport { ItemListLinkCell } from './item-list-link-cell';\nimport { ItemListMessage } from './item-list-message';\nimport { ItemListNextPageLoading } from './item-list-next-page-loading';\nimport { ItemListPagination } from './item-list-pagination';\nimport { ItemListRoot } from './item-list-root';\nimport { ItemListRow } from './item-list-row';\nimport { ItemListRowButton } from './item-list-row-button';\nimport { ItemListStatusCell } from './item-list-status-cell';\nimport { ItemListTextCell } from './item-list-text-cell';\nimport { ItemListVersionCell } from './item-list-version-cell';\n\nexport const ItemList = Object.assign(ItemListRoot, {\n Header: ItemListHeader,\n HeaderCol: ItemListHeaderCol,\n Items: ItemListItems,\n Scroller: ItemListItemsScroller,\n Row: ItemListRow,\n RowButton: ItemListRowButton,\n Message: ItemListMessage,\n NextPageLoading: ItemListNextPageLoading,\n Pagination: ItemListPagination,\n Cell: ItemListCell,\n TextCell: ItemListTextCell,\n StatusCell: ItemListStatusCell,\n VersionCell: ItemListVersionCell,\n IdCell: ItemListIdCell,\n DateCell: ItemListDateCell,\n LinkCell: ItemListLinkCell,\n LabelCell: ItemListLabelCell,\n});\n","import { ItemListItems } from './item-list-items';\nimport { ItemListRow } from './item-list-row';\nimport { ItemListRowButton } from './item-list-row-button';\nimport type { ItemListColumn } from './types';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'];\n\nexport type ItemListItemsSkeletonProps = {\n columns?: ItemListColumn[];\n numberOfRows?: number;\n};\n\nexport function ItemListItemsSkeleton({ columns, numberOfRows = 3 }: ItemListItemsSkeletonProps) {\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + (columns?.length || 0) + (numberOfRows || 0)) % widths.length;\n return widths[index];\n };\n\n return (\n <ItemListItems>\n {Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <ItemListRow key={rowIdx}>\n <ItemListRowButton columns={columns}>\n {(columns || []).map((col, colIdx) => {\n const key = `${col.name}-${colIdx}`;\n return (\n <div\n key={key}\n className=\"bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none\"\n style={{ width: `${getPseudoRandomWidth(rowIdx, colIdx)}` }}\n ></div>\n );\n })}\n </ItemListRowButton>\n </ItemListRow>\n ))}\n </ItemListItems>\n );\n}\n","import { ItemList } from './item-list';\nimport { ItemListHeader } from './item-list-header';\nimport { ItemListItemsSkeleton } from './item-list-items-skeleton';\nimport type { ItemListItemsSkeletonProps } from './item-list-items-skeleton';\n\nexport function ItemListSkeleton({ columns, numberOfRows }: ItemListItemsSkeletonProps) {\n return (\n <ItemList>\n <ItemListHeader columns={columns} />\n <ItemListItemsSkeleton columns={columns} numberOfRows={numberOfRows} />\n </ItemList>\n );\n}\n","type getToItemFnParams = {\n entries: { id: string }[];\n id: string | undefined;\n update: (id: string) => void;\n};\n\nexport function getToNextItemFn({ entries, id, update }: getToItemFnParams) {\n const currentIndex = entries.findIndex(entry => entry.id === id);\n const thereIsNextItem = currentIndex < entries.length - 1;\n\n if (thereIsNextItem) {\n return () => {\n const nextItem = entries[currentIndex + 1];\n if (!nextItem) return;\n update(nextItem.id);\n };\n }\n\n return undefined;\n}\n\nexport function getToPreviousItemFn({ entries, id, update }: getToItemFnParams) {\n const currentIndex = entries.findIndex(entry => entry.id === id);\n const thereIsPreviousItem = currentIndex > 0;\n\n if (thereIsPreviousItem) {\n return () => {\n const previousItem = entries[currentIndex - 1];\n if (!previousItem) return;\n update(previousItem.id);\n };\n }\n\n return undefined;\n}\n"],"names":["cn","isThisYear","isToday","format","jsx","useRef","transitions","focusRing","jsxs","TriangleAlertIcon","InfoIcon","ArrowLeftIcon","ArrowRightIcon","Tooltip","TooltipTrigger","TooltipContent","Chip","ClockIcon","BanIcon"],"mappings":"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"}
|
|
@@ -325,6 +325,7 @@ function getToNextItemFn({ entries, id, update }) {
|
|
|
325
325
|
if (thereIsNextItem) {
|
|
326
326
|
return () => {
|
|
327
327
|
const nextItem = entries[currentIndex + 1];
|
|
328
|
+
if (!nextItem) return;
|
|
328
329
|
update(nextItem.id);
|
|
329
330
|
};
|
|
330
331
|
}
|
|
@@ -336,6 +337,7 @@ function getToPreviousItemFn({ entries, id, update }) {
|
|
|
336
337
|
if (thereIsPreviousItem) {
|
|
337
338
|
return () => {
|
|
338
339
|
const previousItem = entries[currentIndex - 1];
|
|
340
|
+
if (!previousItem) return;
|
|
339
341
|
update(previousItem.id);
|
|
340
342
|
};
|
|
341
343
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemList.es.js","sources":["../../src/ds/components/ItemList/item-list-cell.tsx","../../src/ds/components/ItemList/item-list-date-cell.tsx","../../src/ds/components/ItemList/shared.tsx","../../src/ds/components/ItemList/item-list-header.tsx","../../src/ds/components/ItemList/item-list-header-col.tsx","../../src/ds/components/ItemList/item-list-id-cell.tsx","../../src/ds/components/ItemList/item-list-items.tsx","../../src/ds/components/ItemList/item-list-items-scroller.tsx","../../src/ds/components/ItemList/item-list-label-cell.tsx","../../src/ds/components/ItemList/item-list-link-cell.tsx","../../src/ds/components/ItemList/item-list-message.tsx","../../src/ds/components/ItemList/item-list-next-page-loading.tsx","../../src/ds/components/ItemList/item-list-pagination.tsx","../../src/ds/components/ItemList/item-list-root.tsx","../../src/ds/components/ItemList/item-list-row.tsx","../../src/ds/components/ItemList/item-list-row-button.tsx","../../src/ds/components/ItemList/item-list-status-cell.tsx","../../src/ds/components/ItemList/item-list-text-cell.tsx","../../src/ds/components/ItemList/item-list-version-cell.tsx","../../src/ds/components/ItemList/item-list.tsx","../../src/ds/components/ItemList/item-list-items-skeleton.tsx","../../src/ds/components/ItemList/item-list-skeleton.tsx","../../src/ds/components/ItemList/helpers.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type ItemListTextCellProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListCell({ children, className }: ItemListTextCellProps) {\n return <div className={cn('', className)}>{children}</div>;\n}\n","import { isThisYear } from 'date-fns';\nimport { format } from 'date-fns/format';\nimport { isToday } from 'date-fns/isToday';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListDateCellProps = {\n date: Date | string | null;\n className?: string;\n withTime?: boolean;\n};\n\nexport function ItemListDateCell({ date, className, withTime = false }: ItemListDateCellProps) {\n const isThisYearDate = date ? isThisYear(new Date(date)) : false;\n\n const displayDayAndMonth = date ? (isToday(new Date(date)) ? 'Today' : format(new Date(date), 'MMM dd')) : '';\n const displayYear = date && !isThisYearDate ? format(new Date(date), 'yyyy') : '';\n const displayTime = date && withTime ? `${format(new Date(date), \"'at' h:mm aaa\")}` : '';\n\n return (\n <div className={cn('text-neutral2 text-ui-md truncate', className)}>\n {displayDayAndMonth} {displayYear} {displayTime}\n </div>\n );\n}\n","import type { ItemListColumn } from './types';\n\nexport function getItemListColumnTemplate(columns?: ItemListColumn[]): string {\n if (!columns || columns.length === 0) {\n return '';\n }\n\n return columns\n ?.map(column => {\n return column.size;\n })\n .join(' ');\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\n\nimport { cn } from '@/lib/utils';\n\nexport type ItemListHeaderProps = {\n columns?: ItemListColumn[];\n isSelectionActive?: boolean;\n children?: React.ReactNode;\n};\n\nexport function ItemListHeader({ columns, isSelectionActive, children }: ItemListHeaderProps) {\n return (\n <div className={cn('sticky top-0 bg-surface3 z-10 rounded-lg px-4 mb-4')}>\n <div\n className={cn('grid gap-4 text-left items-center uppercase text-neutral3 tracking-widest text-ui-xs', {\n 'pl-12 [&>label]:absolute [&>label]:left-0': isSelectionActive,\n })}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n >\n {children}\n </div>\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListHeaderColProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListHeaderCol({ children, className }: ItemListHeaderColProps) {\n return <span className={cn('py-3', className)}>{children}</span>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListIdCellProps = {\n id: string;\n className?: string;\n isShortened?: boolean;\n};\n\nexport function ItemListIdCell({ id, className, isShortened = true }: ItemListIdCellProps) {\n const displayId = isShortened ? id.slice(0, 8) : id;\n return <div className={cn('text-neutral2 py-[0.6rem] text-ui-md truncate', className)}>{displayId}</div>;\n}\n","import React from 'react';\n\nexport type ItemListItemsProps = {\n children?: React.ReactNode;\n};\n\nexport function ItemListItems({ children }: ItemListItemsProps) {\n return <ul className=\"grid content-start\">{children}</ul>;\n}\n","import React, { useRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListItemsScroller = {\n children?: React.ReactNode;\n};\n\nexport function ItemListItemsScroller({ children }: ItemListItemsScroller) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n return (\n <div ref={containerRef} className={cn('overflow-y-auto')}>\n {children}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListLabelCellProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListLabelCell({ children, className }: ItemListLabelCellProps) {\n return (\n <label className={cn('flex w-14 h-full justify-center items-center hover:bg-surface5 rounded-lg', className)}>\n {children}\n </label>\n );\n}\n","import { transitions, focusRing } from '@/ds/primitives/transitions';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListLinkCellProps = {\n children?: React.ReactNode;\n className?: string;\n href: string;\n LinkComponent: LinkComponent;\n};\n\nexport function ItemListLinkCell({ children, href, className, LinkComponent: Link }: ItemListLinkCellProps) {\n return (\n <Link\n href={href}\n className={cn(\n 'w-full px-3 py-[0.6rem] gap-6 text-left items-center rounded-lg flex justify-center',\n 'hover:bg-surface4',\n transitions.colors,\n focusRing.visible,\n\n className,\n )}\n >\n {children}\n </Link>\n );\n}\n","import { InfoIcon, TriangleAlertIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListMessageProps = {\n children?: React.ReactNode;\n message?: string;\n className?: string;\n type?: 'info' | 'error';\n};\n\nexport function ItemListMessage({ children, message, className, type }: ItemListMessageProps) {\n if (!children && !message) {\n return null;\n }\n\n return (\n <div className={cn('grid border-t border-border1', className)}>\n {message ? (\n <p\n className={cn(\n 'text-neutral3 text-ui-md text-center grid p-8 justify-center justify-items-center gap-2',\n '[&>svg]:w-[1.5em] [&>svg]:h-[1.5em] [&>svg]:opacity-75',\n {\n '[&>svg]:text-red-500': type === 'error',\n },\n )}\n >\n {type === 'error' ? <TriangleAlertIcon /> : <InfoIcon />} {message}\n </p>\n ) : (\n children\n )}\n </div>\n );\n}\n","export type ItemListNextPageLoadingProps = {\n isLoading?: boolean;\n hasMore?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n loadingText?: string;\n noMoreDataText?: string;\n};\n\nexport function ItemListNextPageLoading({\n isLoading,\n hasMore,\n setEndOfListElement,\n loadingText = 'Loading more data...',\n noMoreDataText = 'No more data to load',\n}: ItemListNextPageLoadingProps) {\n if (!setEndOfListElement) {\n return null;\n }\n\n return (\n <div ref={setEndOfListElement} className=\"text-ui-md text-neutral3 opacity-50 flex mt-8 justify-center\">\n {isLoading && loadingText}\n {!hasMore && !isLoading && noMoreDataText}\n </div>\n );\n}\n","import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type ItemListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function ItemListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: ItemListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className={cn('flex pt-6 items-center justify-center text-neutral3 text-ui-md gap-8')}>\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div\n className={cn(\n 'flex gap-4',\n '[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:text-neutral4 [&>button:hover]:text-neutral5 [&>button]:transition-colors [&>button]:border [&>button]:border-border1 [&>button]:p-1 [&>button]:px-2 [&>button]:rounded-md',\n '[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3',\n )}\n >\n {typeof currentPage === 'number' && currentPage > 0 && (\n <button onClick={onPrevPage}>\n <ArrowLeftIcon />\n Previous\n </button>\n )}\n {hasMore && (\n <button onClick={onNextPage}>\n Next\n <ArrowRightIcon />\n </button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRootProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListRoot({ children, className }: ItemListRootProps) {\n return <div className={cn('grid grid-rows-[auto_1fr] overflow-y-auto', className)}>{children}</div>;\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRowProps = {\n isSelected?: boolean;\n children?: React.ReactNode;\n columns?: ItemListColumn[];\n};\n\nexport function ItemListRow({ isSelected, children, columns }: ItemListRowProps) {\n return (\n <li\n className={cn(\n 'flex border border-transparent py-[3px] pb-[2px] text-neutral5 border-t-border1 rounded-lg first:border-t-transparent text-ui-md overflow-hidden',\n '[&:last-child>button]:rounded-b-lg',\n '[&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:border-dashed [&.selected-row]:border [&.selected-row]:first:border-t',\n '[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent',\n '[.selected-row+&]:rounded-t-none',\n transitions.colors,\n {\n 'selected-row': isSelected,\n 'grid px-4 gap-4 ': columns,\n },\n )}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n >\n {children}\n </li>\n );\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\nimport { transitions, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRowButtonProps = {\n item?: any;\n isFeatured?: boolean;\n children?: React.ReactNode;\n onClick?: (itemId: string) => void;\n columns?: ItemListColumn[];\n className?: string;\n disabled?: boolean;\n};\n\nexport function ItemListRowButton({\n item,\n isFeatured,\n onClick,\n children,\n columns,\n className,\n disabled,\n}: ItemListRowButtonProps) {\n const handleClick = () => {\n onClick?.(item?.id);\n };\n\n return (\n <button\n onClick={handleClick}\n className={cn(\n 'grid w-full px-4 gap-4 text-left items-center rounded-lg',\n transitions.colors,\n focusRing.visible,\n {\n 'bg-surface4': isFeatured,\n // hover effect only not for skeleton and featured\n 'hover:bg-surface4': item && !isFeatured && !disabled,\n },\n className,\n )}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n disabled={disabled}\n >\n {children}\n </button>\n );\n}\n","import { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListStatusCellProps = {\n status?: string;\n};\n\nfunction capitalize(value: string): string {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nexport function ItemListStatusCell({ status }: ItemListStatusCellProps) {\n if (!status) {\n return null;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={cn('flex items-center justify-center w-10 relative bg-transparent h-full')}>\n <div\n className={cn('w-2 h-2 rounded-full', {\n 'bg-green-600': ['success', 'completed'].includes(status),\n 'bg-red-700': ['error', 'failed'].includes(status),\n 'bg-yellow-500': ['pending', 'running'].includes(status),\n })}\n ></div>\n </div>\n </TooltipTrigger>\n <TooltipContent>{capitalize(status)}</TooltipContent>\n </Tooltip>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListTextCellProps = {\n children: React.ReactNode;\n isLoading?: boolean;\n className?: string;\n};\n\nexport function ItemListTextCell({ children, isLoading, className }: ItemListTextCellProps) {\n return (\n <div className={cn('text-neutral4 py-[0.6rem] text-ui-md truncate', className)}>\n {isLoading ? (\n <div className=\"bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none\"></div>\n ) : (\n children\n )}\n </div>\n );\n}\n","import { format } from 'date-fns';\nimport { BanIcon, ClockIcon } from 'lucide-react';\nimport { Chip } from '../Chip';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../Tooltip';\nimport { ItemListCell } from './item-list-cell';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListVersionCellProps = {\n version: string | number;\n date?: Date | string | null;\n isLatest?: boolean;\n isDeleted?: boolean;\n};\n\nexport function ItemListVersionCell({ version, date, isLatest, isDeleted }: ItemListVersionCellProps) {\n return (\n <ItemListCell className={cn('grid grid-cols-[1fr_auto] pl-1')}>\n <div\n className={cn('grid text-neutral3 gap-1 leading-none', {\n 'text-neutral4': isLatest,\n })}\n >\n <strong className=\"font-normal\">v. {version}</strong>\n <em className=\"text-neutral2 text-ui-sm font-normal\">\n {date ? format(new Date(date), 'MMM d, yyyy HH:mm') : null}\n </em>\n </div>\n {(isLatest || isDeleted) && (\n <div className=\"flex gap-1 items-center\">\n {isLatest && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Chip color=\"blue\">\n <ClockIcon />\n </Chip>\n </TooltipTrigger>\n <TooltipContent>Latest version</TooltipContent>\n </Tooltip>\n )}\n {isDeleted && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Chip color=\"red\">\n <BanIcon />\n </Chip>\n </TooltipTrigger>\n <TooltipContent>Deleted in this version</TooltipContent>\n </Tooltip>\n )}\n </div>\n )}\n </ItemListCell>\n );\n}\n","import { ItemListCell } from './item-list-cell';\nimport { ItemListDateCell } from './item-list-date-cell';\nimport { ItemListHeader } from './item-list-header';\nimport { ItemListHeaderCol } from './item-list-header-col';\nimport { ItemListIdCell } from './item-list-id-cell';\nimport { ItemListItems } from './item-list-items';\nimport { ItemListItemsScroller } from './item-list-items-scroller';\nimport { ItemListLabelCell } from './item-list-label-cell';\nimport { ItemListLinkCell } from './item-list-link-cell';\nimport { ItemListMessage } from './item-list-message';\nimport { ItemListNextPageLoading } from './item-list-next-page-loading';\nimport { ItemListPagination } from './item-list-pagination';\nimport { ItemListRoot } from './item-list-root';\nimport { ItemListRow } from './item-list-row';\nimport { ItemListRowButton } from './item-list-row-button';\nimport { ItemListStatusCell } from './item-list-status-cell';\nimport { ItemListTextCell } from './item-list-text-cell';\nimport { ItemListVersionCell } from './item-list-version-cell';\n\nexport const ItemList = Object.assign(ItemListRoot, {\n Header: ItemListHeader,\n HeaderCol: ItemListHeaderCol,\n Items: ItemListItems,\n Scroller: ItemListItemsScroller,\n Row: ItemListRow,\n RowButton: ItemListRowButton,\n Message: ItemListMessage,\n NextPageLoading: ItemListNextPageLoading,\n Pagination: ItemListPagination,\n Cell: ItemListCell,\n TextCell: ItemListTextCell,\n StatusCell: ItemListStatusCell,\n VersionCell: ItemListVersionCell,\n IdCell: ItemListIdCell,\n DateCell: ItemListDateCell,\n LinkCell: ItemListLinkCell,\n LabelCell: ItemListLabelCell,\n});\n","import { ItemListItems } from './item-list-items';\nimport { ItemListRow } from './item-list-row';\nimport { ItemListRowButton } from './item-list-row-button';\nimport type { ItemListColumn } from './types';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'];\n\nexport type ItemListItemsSkeletonProps = {\n columns?: ItemListColumn[];\n numberOfRows?: number;\n};\n\nexport function ItemListItemsSkeleton({ columns, numberOfRows = 3 }: ItemListItemsSkeletonProps) {\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + (columns?.length || 0) + (numberOfRows || 0)) % widths.length;\n return widths[index];\n };\n\n return (\n <ItemListItems>\n {Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <ItemListRow key={rowIdx}>\n <ItemListRowButton columns={columns}>\n {(columns || []).map((col, colIdx) => {\n const key = `${col.name}-${colIdx}`;\n return (\n <div\n key={key}\n className=\"bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none\"\n style={{ width: `${getPseudoRandomWidth(rowIdx, colIdx)}` }}\n ></div>\n );\n })}\n </ItemListRowButton>\n </ItemListRow>\n ))}\n </ItemListItems>\n );\n}\n","import { ItemList } from './item-list';\nimport { ItemListHeader } from './item-list-header';\nimport { ItemListItemsSkeleton } from './item-list-items-skeleton';\nimport type { ItemListItemsSkeletonProps } from './item-list-items-skeleton';\n\nexport function ItemListSkeleton({ columns, numberOfRows }: ItemListItemsSkeletonProps) {\n return (\n <ItemList>\n <ItemListHeader columns={columns} />\n <ItemListItemsSkeleton columns={columns} numberOfRows={numberOfRows} />\n </ItemList>\n );\n}\n","type getToItemFnParams = {\n entries: { id: string }[];\n id: string | undefined;\n update: (id: string) => void;\n};\n\nexport function getToNextItemFn({ entries, id, update }: getToItemFnParams) {\n const currentIndex = entries.findIndex(entry => entry.id === id);\n const thereIsNextItem = currentIndex < entries.length - 1;\n\n if (thereIsNextItem) {\n return () => {\n const nextItem = entries[currentIndex + 1];\n update(nextItem.id);\n };\n }\n\n return undefined;\n}\n\nexport function getToPreviousItemFn({ entries, id, update }: getToItemFnParams) {\n const currentIndex = entries.findIndex(entry => entry.id === id);\n const thereIsPreviousItem = currentIndex > 0;\n\n if (thereIsPreviousItem) {\n return () => {\n const previousItem = entries[currentIndex - 1];\n update(previousItem.id);\n };\n }\n\n return undefined;\n}\n"],"names":["format"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ItemList.es.js","sources":["../../src/ds/components/ItemList/item-list-cell.tsx","../../src/ds/components/ItemList/item-list-date-cell.tsx","../../src/ds/components/ItemList/shared.tsx","../../src/ds/components/ItemList/item-list-header.tsx","../../src/ds/components/ItemList/item-list-header-col.tsx","../../src/ds/components/ItemList/item-list-id-cell.tsx","../../src/ds/components/ItemList/item-list-items.tsx","../../src/ds/components/ItemList/item-list-items-scroller.tsx","../../src/ds/components/ItemList/item-list-label-cell.tsx","../../src/ds/components/ItemList/item-list-link-cell.tsx","../../src/ds/components/ItemList/item-list-message.tsx","../../src/ds/components/ItemList/item-list-next-page-loading.tsx","../../src/ds/components/ItemList/item-list-pagination.tsx","../../src/ds/components/ItemList/item-list-root.tsx","../../src/ds/components/ItemList/item-list-row.tsx","../../src/ds/components/ItemList/item-list-row-button.tsx","../../src/ds/components/ItemList/item-list-status-cell.tsx","../../src/ds/components/ItemList/item-list-text-cell.tsx","../../src/ds/components/ItemList/item-list-version-cell.tsx","../../src/ds/components/ItemList/item-list.tsx","../../src/ds/components/ItemList/item-list-items-skeleton.tsx","../../src/ds/components/ItemList/item-list-skeleton.tsx","../../src/ds/components/ItemList/helpers.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type ItemListTextCellProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListCell({ children, className }: ItemListTextCellProps) {\n return <div className={cn('', className)}>{children}</div>;\n}\n","import { isThisYear } from 'date-fns';\nimport { format } from 'date-fns/format';\nimport { isToday } from 'date-fns/isToday';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListDateCellProps = {\n date: Date | string | null;\n className?: string;\n withTime?: boolean;\n};\n\nexport function ItemListDateCell({ date, className, withTime = false }: ItemListDateCellProps) {\n const isThisYearDate = date ? isThisYear(new Date(date)) : false;\n\n const displayDayAndMonth = date ? (isToday(new Date(date)) ? 'Today' : format(new Date(date), 'MMM dd')) : '';\n const displayYear = date && !isThisYearDate ? format(new Date(date), 'yyyy') : '';\n const displayTime = date && withTime ? `${format(new Date(date), \"'at' h:mm aaa\")}` : '';\n\n return (\n <div className={cn('text-neutral2 text-ui-md truncate', className)}>\n {displayDayAndMonth} {displayYear} {displayTime}\n </div>\n );\n}\n","import type { ItemListColumn } from './types';\n\nexport function getItemListColumnTemplate(columns?: ItemListColumn[]): string {\n if (!columns || columns.length === 0) {\n return '';\n }\n\n return columns\n ?.map(column => {\n return column.size;\n })\n .join(' ');\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\n\nimport { cn } from '@/lib/utils';\n\nexport type ItemListHeaderProps = {\n columns?: ItemListColumn[];\n isSelectionActive?: boolean;\n children?: React.ReactNode;\n};\n\nexport function ItemListHeader({ columns, isSelectionActive, children }: ItemListHeaderProps) {\n return (\n <div className={cn('sticky top-0 bg-surface3 z-10 rounded-lg px-4 mb-4')}>\n <div\n className={cn('grid gap-4 text-left items-center uppercase text-neutral3 tracking-widest text-ui-xs', {\n 'pl-12 [&>label]:absolute [&>label]:left-0': isSelectionActive,\n })}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n >\n {children}\n </div>\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListHeaderColProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListHeaderCol({ children, className }: ItemListHeaderColProps) {\n return <span className={cn('py-3', className)}>{children}</span>;\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListIdCellProps = {\n id: string;\n className?: string;\n isShortened?: boolean;\n};\n\nexport function ItemListIdCell({ id, className, isShortened = true }: ItemListIdCellProps) {\n const displayId = isShortened ? id.slice(0, 8) : id;\n return <div className={cn('text-neutral2 py-[0.6rem] text-ui-md truncate', className)}>{displayId}</div>;\n}\n","import React from 'react';\n\nexport type ItemListItemsProps = {\n children?: React.ReactNode;\n};\n\nexport function ItemListItems({ children }: ItemListItemsProps) {\n return <ul className=\"grid content-start\">{children}</ul>;\n}\n","import React, { useRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListItemsScroller = {\n children?: React.ReactNode;\n};\n\nexport function ItemListItemsScroller({ children }: ItemListItemsScroller) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n return (\n <div ref={containerRef} className={cn('overflow-y-auto')}>\n {children}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListLabelCellProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListLabelCell({ children, className }: ItemListLabelCellProps) {\n return (\n <label className={cn('flex w-14 h-full justify-center items-center hover:bg-surface5 rounded-lg', className)}>\n {children}\n </label>\n );\n}\n","import { transitions, focusRing } from '@/ds/primitives/transitions';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListLinkCellProps = {\n children?: React.ReactNode;\n className?: string;\n href: string;\n LinkComponent: LinkComponent;\n};\n\nexport function ItemListLinkCell({ children, href, className, LinkComponent: Link }: ItemListLinkCellProps) {\n return (\n <Link\n href={href}\n className={cn(\n 'w-full px-3 py-[0.6rem] gap-6 text-left items-center rounded-lg flex justify-center',\n 'hover:bg-surface4',\n transitions.colors,\n focusRing.visible,\n\n className,\n )}\n >\n {children}\n </Link>\n );\n}\n","import { InfoIcon, TriangleAlertIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListMessageProps = {\n children?: React.ReactNode;\n message?: string;\n className?: string;\n type?: 'info' | 'error';\n};\n\nexport function ItemListMessage({ children, message, className, type }: ItemListMessageProps) {\n if (!children && !message) {\n return null;\n }\n\n return (\n <div className={cn('grid border-t border-border1', className)}>\n {message ? (\n <p\n className={cn(\n 'text-neutral3 text-ui-md text-center grid p-8 justify-center justify-items-center gap-2',\n '[&>svg]:w-[1.5em] [&>svg]:h-[1.5em] [&>svg]:opacity-75',\n {\n '[&>svg]:text-red-500': type === 'error',\n },\n )}\n >\n {type === 'error' ? <TriangleAlertIcon /> : <InfoIcon />} {message}\n </p>\n ) : (\n children\n )}\n </div>\n );\n}\n","export type ItemListNextPageLoadingProps = {\n isLoading?: boolean;\n hasMore?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n loadingText?: string;\n noMoreDataText?: string;\n};\n\nexport function ItemListNextPageLoading({\n isLoading,\n hasMore,\n setEndOfListElement,\n loadingText = 'Loading more data...',\n noMoreDataText = 'No more data to load',\n}: ItemListNextPageLoadingProps) {\n if (!setEndOfListElement) {\n return null;\n }\n\n return (\n <div ref={setEndOfListElement} className=\"text-ui-md text-neutral3 opacity-50 flex mt-8 justify-center\">\n {isLoading && loadingText}\n {!hasMore && !isLoading && noMoreDataText}\n </div>\n );\n}\n","import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nexport type ItemListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function ItemListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: ItemListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className={cn('flex pt-6 items-center justify-center text-neutral3 text-ui-md gap-8')}>\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div\n className={cn(\n 'flex gap-4',\n '[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:text-neutral4 [&>button:hover]:text-neutral5 [&>button]:transition-colors [&>button]:border [&>button]:border-border1 [&>button]:p-1 [&>button]:px-2 [&>button]:rounded-md',\n '[&_svg]:w-[1em] [&_svg]:h-[1em] [&_svg]:text-neutral3',\n )}\n >\n {typeof currentPage === 'number' && currentPage > 0 && (\n <button onClick={onPrevPage}>\n <ArrowLeftIcon />\n Previous\n </button>\n )}\n {hasMore && (\n <button onClick={onNextPage}>\n Next\n <ArrowRightIcon />\n </button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRootProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function ItemListRoot({ children, className }: ItemListRootProps) {\n return <div className={cn('grid grid-rows-[auto_1fr] overflow-y-auto', className)}>{children}</div>;\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRowProps = {\n isSelected?: boolean;\n children?: React.ReactNode;\n columns?: ItemListColumn[];\n};\n\nexport function ItemListRow({ isSelected, children, columns }: ItemListRowProps) {\n return (\n <li\n className={cn(\n 'flex border border-transparent py-[3px] pb-[2px] text-neutral5 border-t-border1 rounded-lg first:border-t-transparent text-ui-md overflow-hidden',\n '[&:last-child>button]:rounded-b-lg',\n '[&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:border-dashed [&.selected-row]:border [&.selected-row]:first:border-t',\n '[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent',\n '[.selected-row+&]:rounded-t-none',\n transitions.colors,\n {\n 'selected-row': isSelected,\n 'grid px-4 gap-4 ': columns,\n },\n )}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n >\n {children}\n </li>\n );\n}\n","import { getItemListColumnTemplate } from './shared';\nimport type { ItemListColumn } from './types';\nimport { transitions, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListRowButtonProps = {\n item?: any;\n isFeatured?: boolean;\n children?: React.ReactNode;\n onClick?: (itemId: string) => void;\n columns?: ItemListColumn[];\n className?: string;\n disabled?: boolean;\n};\n\nexport function ItemListRowButton({\n item,\n isFeatured,\n onClick,\n children,\n columns,\n className,\n disabled,\n}: ItemListRowButtonProps) {\n const handleClick = () => {\n onClick?.(item?.id);\n };\n\n return (\n <button\n onClick={handleClick}\n className={cn(\n 'grid w-full px-4 gap-4 text-left items-center rounded-lg',\n transitions.colors,\n focusRing.visible,\n {\n 'bg-surface4': isFeatured,\n // hover effect only not for skeleton and featured\n 'hover:bg-surface4': item && !isFeatured && !disabled,\n },\n className,\n )}\n style={{ gridTemplateColumns: getItemListColumnTemplate(columns) }}\n disabled={disabled}\n >\n {children}\n </button>\n );\n}\n","import { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListStatusCellProps = {\n status?: string;\n};\n\nfunction capitalize(value: string): string {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nexport function ItemListStatusCell({ status }: ItemListStatusCellProps) {\n if (!status) {\n return null;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={cn('flex items-center justify-center w-10 relative bg-transparent h-full')}>\n <div\n className={cn('w-2 h-2 rounded-full', {\n 'bg-green-600': ['success', 'completed'].includes(status),\n 'bg-red-700': ['error', 'failed'].includes(status),\n 'bg-yellow-500': ['pending', 'running'].includes(status),\n })}\n ></div>\n </div>\n </TooltipTrigger>\n <TooltipContent>{capitalize(status)}</TooltipContent>\n </Tooltip>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport type ItemListTextCellProps = {\n children: React.ReactNode;\n isLoading?: boolean;\n className?: string;\n};\n\nexport function ItemListTextCell({ children, isLoading, className }: ItemListTextCellProps) {\n return (\n <div className={cn('text-neutral4 py-[0.6rem] text-ui-md truncate', className)}>\n {isLoading ? (\n <div className=\"bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none\"></div>\n ) : (\n children\n )}\n </div>\n );\n}\n","import { format } from 'date-fns';\nimport { BanIcon, ClockIcon } from 'lucide-react';\nimport { Chip } from '../Chip';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../Tooltip';\nimport { ItemListCell } from './item-list-cell';\nimport { cn } from '@/lib/utils';\n\nexport type ItemListVersionCellProps = {\n version: string | number;\n date?: Date | string | null;\n isLatest?: boolean;\n isDeleted?: boolean;\n};\n\nexport function ItemListVersionCell({ version, date, isLatest, isDeleted }: ItemListVersionCellProps) {\n return (\n <ItemListCell className={cn('grid grid-cols-[1fr_auto] pl-1')}>\n <div\n className={cn('grid text-neutral3 gap-1 leading-none', {\n 'text-neutral4': isLatest,\n })}\n >\n <strong className=\"font-normal\">v. {version}</strong>\n <em className=\"text-neutral2 text-ui-sm font-normal\">\n {date ? format(new Date(date), 'MMM d, yyyy HH:mm') : null}\n </em>\n </div>\n {(isLatest || isDeleted) && (\n <div className=\"flex gap-1 items-center\">\n {isLatest && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Chip color=\"blue\">\n <ClockIcon />\n </Chip>\n </TooltipTrigger>\n <TooltipContent>Latest version</TooltipContent>\n </Tooltip>\n )}\n {isDeleted && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Chip color=\"red\">\n <BanIcon />\n </Chip>\n </TooltipTrigger>\n <TooltipContent>Deleted in this version</TooltipContent>\n </Tooltip>\n )}\n </div>\n )}\n </ItemListCell>\n );\n}\n","import { ItemListCell } from './item-list-cell';\nimport { ItemListDateCell } from './item-list-date-cell';\nimport { ItemListHeader } from './item-list-header';\nimport { ItemListHeaderCol } from './item-list-header-col';\nimport { ItemListIdCell } from './item-list-id-cell';\nimport { ItemListItems } from './item-list-items';\nimport { ItemListItemsScroller } from './item-list-items-scroller';\nimport { ItemListLabelCell } from './item-list-label-cell';\nimport { ItemListLinkCell } from './item-list-link-cell';\nimport { ItemListMessage } from './item-list-message';\nimport { ItemListNextPageLoading } from './item-list-next-page-loading';\nimport { ItemListPagination } from './item-list-pagination';\nimport { ItemListRoot } from './item-list-root';\nimport { ItemListRow } from './item-list-row';\nimport { ItemListRowButton } from './item-list-row-button';\nimport { ItemListStatusCell } from './item-list-status-cell';\nimport { ItemListTextCell } from './item-list-text-cell';\nimport { ItemListVersionCell } from './item-list-version-cell';\n\nexport const ItemList = Object.assign(ItemListRoot, {\n Header: ItemListHeader,\n HeaderCol: ItemListHeaderCol,\n Items: ItemListItems,\n Scroller: ItemListItemsScroller,\n Row: ItemListRow,\n RowButton: ItemListRowButton,\n Message: ItemListMessage,\n NextPageLoading: ItemListNextPageLoading,\n Pagination: ItemListPagination,\n Cell: ItemListCell,\n TextCell: ItemListTextCell,\n StatusCell: ItemListStatusCell,\n VersionCell: ItemListVersionCell,\n IdCell: ItemListIdCell,\n DateCell: ItemListDateCell,\n LinkCell: ItemListLinkCell,\n LabelCell: ItemListLabelCell,\n});\n","import { ItemListItems } from './item-list-items';\nimport { ItemListRow } from './item-list-row';\nimport { ItemListRowButton } from './item-list-row-button';\nimport type { ItemListColumn } from './types';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'];\n\nexport type ItemListItemsSkeletonProps = {\n columns?: ItemListColumn[];\n numberOfRows?: number;\n};\n\nexport function ItemListItemsSkeleton({ columns, numberOfRows = 3 }: ItemListItemsSkeletonProps) {\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + (columns?.length || 0) + (numberOfRows || 0)) % widths.length;\n return widths[index];\n };\n\n return (\n <ItemListItems>\n {Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <ItemListRow key={rowIdx}>\n <ItemListRowButton columns={columns}>\n {(columns || []).map((col, colIdx) => {\n const key = `${col.name}-${colIdx}`;\n return (\n <div\n key={key}\n className=\"bg-surface4 rounded-md animate-pulse text-transparent h-4 select-none\"\n style={{ width: `${getPseudoRandomWidth(rowIdx, colIdx)}` }}\n ></div>\n );\n })}\n </ItemListRowButton>\n </ItemListRow>\n ))}\n </ItemListItems>\n );\n}\n","import { ItemList } from './item-list';\nimport { ItemListHeader } from './item-list-header';\nimport { ItemListItemsSkeleton } from './item-list-items-skeleton';\nimport type { ItemListItemsSkeletonProps } from './item-list-items-skeleton';\n\nexport function ItemListSkeleton({ columns, numberOfRows }: ItemListItemsSkeletonProps) {\n return (\n <ItemList>\n <ItemListHeader columns={columns} />\n <ItemListItemsSkeleton columns={columns} numberOfRows={numberOfRows} />\n </ItemList>\n );\n}\n","type getToItemFnParams = {\n entries: { id: string }[];\n id: string | undefined;\n update: (id: string) => void;\n};\n\nexport function getToNextItemFn({ entries, id, update }: getToItemFnParams) {\n const currentIndex = entries.findIndex(entry => entry.id === id);\n const thereIsNextItem = currentIndex < entries.length - 1;\n\n if (thereIsNextItem) {\n return () => {\n const nextItem = entries[currentIndex + 1];\n if (!nextItem) return;\n update(nextItem.id);\n };\n }\n\n return undefined;\n}\n\nexport function getToPreviousItemFn({ entries, id, update }: getToItemFnParams) {\n const currentIndex = entries.findIndex(entry => entry.id === id);\n const thereIsPreviousItem = currentIndex > 0;\n\n if (thereIsPreviousItem) {\n return () => {\n const previousItem = entries[currentIndex - 1];\n if (!previousItem) return;\n update(previousItem.id);\n };\n }\n\n return undefined;\n}\n"],"names":["format"],"mappings":"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"}
|