@invopop/popui 0.1.69 → 0.1.71

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.
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ import { TooltipAutoHide, TooltipContent, TooltipTrigger } from './tooltip'
3
+ import type { AvatarIconProps } from './types.js'
4
+
5
+ let { name, showMask = false, size = 'md', tooltipContent, children }: AvatarIconProps = $props()
6
+
7
+ const masks = {
8
+ md: `url("data:image/svg+xml,%3Csvg width='26' height='28' viewBox='0 0 26 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.4004 0C21.7603 9.85818e-10 23.4402 0.000417824 24.7236 0.654297C25.1531 0.873098 25.552 1.14144 25.9131 1.45215C25.5579 1.90591 25.2449 2.39516 24.9805 2.91406C23.9996 4.83925 24 7.36007 24 12.4004V15.5996C24 20.6399 23.9996 23.1608 24.9805 25.0859C25.2447 25.6046 25.5581 26.0933 25.9131 26.5469C25.5519 26.8578 25.1532 27.1268 24.7236 27.3457C23.4402 27.9996 21.7603 28 18.4004 28H9.59961C6.23965 28 4.55977 27.9996 3.27637 27.3457C2.14739 26.7705 1.22954 25.8526 0.654297 24.7236C0.00041777 23.4402 9.8162e-10 21.7603 0 18.4004V9.59961C9.88222e-10 6.23965 0.000417662 4.55977 0.654297 3.27637C1.22954 2.14739 2.14739 1.22954 3.27637 0.654297C4.55977 0.000417608 6.23965 9.84018e-10 9.59961 0H18.4004Z' fill='white'/%3E%3C/svg%3E")`,
9
+ sm: `url("data:image/svg+xml,%3Csvg width='23' height='24' viewBox='0 0 23 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5996 1.63272e-09C19.8398 1.63272e-09 20.9608 -0.000427061 21.8164 0.435547C21.9034 0.479874 21.9882 0.527831 22.0713 0.578125C21.9172 0.80011 21.778 1.03354 21.6543 1.27637C21.0004 2.55977 21 4.23965 21 7.59961V16.4004C21 19.7603 21.0004 21.4402 21.6543 22.7236C21.7779 22.9662 21.9174 23.1991 22.0713 23.4209C21.9881 23.4713 21.9035 23.52 21.8164 23.5645C20.9608 24.0004 19.8398 24 17.5996 24H6.40039C4.16018 24 3.03924 24.0004 2.18359 23.5645C1.43109 23.181 0.819016 22.5689 0.435547 21.8164C-0.000427061 20.9608 1.63272e-09 19.8398 1.63272e-09 17.5996V6.40039C1.63272e-09 4.16018 -0.000427061 3.03924 0.435547 2.18359C0.819016 1.43109 1.43109 0.819016 2.18359 0.435547C3.03924 -0.000427061 4.16018 1.63272e-09 6.40039 1.63272e-09H17.5996Z' fill='white'/%3E%3C/svg%3E")`
10
+ }
11
+ </script>
12
+
13
+ <TooltipAutoHide>
14
+ <TooltipTrigger class="shrink-0">
15
+ <div
16
+ style={showMask
17
+ ? `mask-image: ${masks[size]};
18
+ mask-size: 100% 100%;
19
+ mask-repeat: no-repeat;
20
+ -webkit-mask-image: ${masks[size]};
21
+ -webkit-mask-size: 100% 100%;
22
+ -webkit-mask-repeat: no-repeat;`
23
+ : ''}
24
+ >
25
+ {@render children()}
26
+ </div>
27
+ </TooltipTrigger>
28
+ <TooltipContent>
29
+ {#if tooltipContent}
30
+ {@render tooltipContent()}
31
+ {:else if name}
32
+ {name}
33
+ {/if}
34
+ </TooltipContent>
35
+ </TooltipAutoHide>
@@ -0,0 +1,4 @@
1
+ import type { AvatarIconProps } from './types.js';
2
+ declare const AvatarIcon: import("svelte").Component<AvatarIconProps, {}, "">;
3
+ type AvatarIcon = ReturnType<typeof AvatarIcon>;
4
+ export default AvatarIcon;
@@ -0,0 +1,59 @@
1
+ <script lang="ts">
2
+ import { Icon } from '@steeze-ui/svelte-icon'
3
+ import clsx from 'clsx'
4
+ import { TooltipProvider } from './tooltip'
5
+ import AvatarIcon from './AvatarIcon.svelte'
6
+ import type { AvatarStackProps } from './types.js'
7
+ import { cn } from './utils.js'
8
+
9
+ let { icons = [], size = 'md', class: className }: AvatarStackProps = $props()
10
+
11
+ let maxItems = $derived(icons.length > 5 ? 4 : 5)
12
+ let mainIcons = $derived(icons.slice(0, maxItems))
13
+ let restIcons = $derived(icons.slice(maxItems, icons.length))
14
+ </script>
15
+
16
+ {#snippet restTooltip()}
17
+ {#each restIcons as restIcon}
18
+ <div>{restIcon.name}</div>
19
+ {/each}
20
+ {/snippet}
21
+
22
+ <TooltipProvider>
23
+ <div class={cn('flex flex-col space-y-2 sm:flex-row sm:flex-nowrap sm:space-y-0 items-center', className)}>
24
+ {#each mainIcons as icon, i (i)}
25
+ <AvatarIcon
26
+ name={icon.name}
27
+ {size}
28
+ showMask={i < mainIcons.length - 1 || restIcons.length > 0}
29
+ >
30
+ <div
31
+ data-avatar-stack-item
32
+ class={clsx(
33
+ 'flex items-center bg-background-default-secondary text-icon shrink-0',
34
+ size === 'sm' ? 'p-1 rounded' : 'p-1.5 rounded-md'
35
+ )}
36
+ >
37
+ {#if icon.icon}
38
+ <Icon src={icon.icon} class="size-4 shrink-0" />
39
+ {:else if icon.url}
40
+ <img src={icon.url} alt={icon.name} class="size-4 shrink-0" />
41
+ {/if}
42
+ </div>
43
+ </AvatarIcon>
44
+ {/each}
45
+ {#if restIcons.length}
46
+ <AvatarIcon {size} tooltipContent={restTooltip}>
47
+ <div
48
+ data-avatar-stack-overflow
49
+ class={clsx(
50
+ 'flex items-center justify-center text-icon font-medium text-sm shrink-0 bg-background-default-secondary',
51
+ size === 'sm' ? 'size-6 rounded' : 'size-7 rounded-md'
52
+ )}
53
+ >
54
+ +{restIcons.length}
55
+ </div>
56
+ </AvatarIcon>
57
+ {/if}
58
+ </div>
59
+ </TooltipProvider>
@@ -0,0 +1,4 @@
1
+ import type { AvatarStackProps } from './types.js';
2
+ declare const AvatarStack: import("svelte").Component<AvatarStackProps, {}, "">;
3
+ type AvatarStack = ReturnType<typeof AvatarStack>;
4
+ export default AvatarStack;
@@ -13,6 +13,7 @@
13
13
  matchParentWidth = false,
14
14
  usePortal = true,
15
15
  strategy: strategyProp,
16
+ disabled = false,
16
17
  class: className = '',
17
18
  trigger,
18
19
  children,
@@ -91,7 +92,8 @@
91
92
 
92
93
  <div class="flex {className}" class:w-full={fullWidth} role="menu">
93
94
  <button
94
- class="cursor-pointer text-left w-full min-w-0 outline-none"
95
+ class="cursor-pointer disabled:cursor-default text-left w-full min-w-0 outline-none"
96
+ {disabled}
95
97
  use:floatingRef
96
98
  {...rest}
97
99
  onclick={handleClick}
@@ -49,7 +49,8 @@
49
49
  onreorder,
50
50
  ondropitem,
51
51
  children,
52
- groups
52
+ groups,
53
+ ...rest
53
54
  }: DrawerContextProps = $props()
54
55
 
55
56
  type DndItem = DrawerOption & { id: string }
@@ -497,6 +498,7 @@
497
498
  <div
498
499
  bind:this={containerRef}
499
500
  class={containerClasses}
501
+ {...rest}
500
502
  >
501
503
  {@render children?.()}
502
504
 
@@ -9,6 +9,7 @@
9
9
  import BaseFlag from './BaseFlag.svelte'
10
10
  import { resolveIcon } from './helpers.js'
11
11
  import { buttonVariants } from './button/button.svelte'
12
+ import { cn } from './utils.js'
12
13
 
13
14
  let {
14
15
  value = $bindable(''),
@@ -25,7 +26,9 @@
25
26
  stackLeft = false,
26
27
  stackRight = false,
27
28
  multipleLabel = 'items',
28
- strategy
29
+ strategy,
30
+ disabled = false,
31
+ class: className = ''
29
32
  }: DropdownSelectProps = $props()
30
33
 
31
34
  let selectDropdown: BaseDropdown | undefined = $state()
@@ -71,16 +74,25 @@
71
74
  let isStacked = $derived(stackLeft || stackRight)
72
75
 
73
76
  let styles = $derived(
74
- isStacked
75
- ? buttonVariants({
76
- variant: 'ghost',
77
- stackedLeft: stackLeft,
78
- stackedRight: stackRight
79
- })
80
- : clsx('border backdrop-blur-sm backdrop-filter dropdown-select', {
81
- 'border-border-selected-bold shadow-active': isOpen,
82
- 'border-border-default-secondary hover:border-border-default-secondary-hover': !isOpen
83
- })
77
+ cn(
78
+ 'flex items-center rounded-lg py-1.5 pl-2 bg-background overflow-hidden w-full h-7',
79
+ {
80
+ 'pr-[28px]': !isStacked,
81
+ 'pr-2': isStacked,
82
+ 'opacity-30 pointer-events-none': disabled
83
+ },
84
+ isStacked
85
+ ? buttonVariants({
86
+ variant: 'ghost',
87
+ stackedLeft: stackLeft,
88
+ stackedRight: stackRight
89
+ })
90
+ : clsx('border backdrop-blur-sm backdrop-filter dropdown-select', {
91
+ 'border-border-selected-bold shadow-active': isOpen,
92
+ 'border-border-default-secondary hover:border-border-default-secondary-hover': !isOpen
93
+ }),
94
+ className
95
+ )
84
96
  )
85
97
 
86
98
  function handleClick(val: AnyProp) {
@@ -115,6 +127,7 @@
115
127
 
116
128
  {#snippet label()}
117
129
  <span
130
+ data-dropdown-select-label
118
131
  class={clsx('flex-1 text-base truncate', {
119
132
  'text-foreground': selectedItems.length,
120
133
  'text-foreground-default-secondary': !selectedItems.length,
@@ -126,19 +139,17 @@
126
139
  {/snippet}
127
140
 
128
141
  <BaseDropdown
142
+ data-dropdown-select
129
143
  bind:isOpen
130
144
  placement="bottom-start"
131
145
  {fullWidth}
132
146
  {strategy}
147
+ {disabled}
133
148
  bind:this={selectDropdown}
134
149
  class={fullWidth || isStacked ? '' : widthClass}
135
150
  >
136
151
  {#snippet trigger()}
137
- <div
138
- class="{styles} flex items-center rounded-lg py-1.5 pl-2 bg-background overflow-hidden w-full h-7"
139
- class:pr-[28px]={!isStacked}
140
- class:pr-2={isStacked}
141
- >
152
+ <div data-dropdown-select-trigger class={styles}>
142
153
  {#if hasMultipleColors}
143
154
  <div class="flex items-center gap-1 flex-1 min-w-0">
144
155
  <div class="flex items-center -space-x-0.5">
@@ -177,6 +188,7 @@
177
188
  </div>
178
189
  {/snippet}
179
190
  <DrawerContext
191
+ data-dropdown-select-content
180
192
  widthClass="min-w-[256px]"
181
193
  {multiple}
182
194
  {items}
package/dist/index.d.ts CHANGED
@@ -51,8 +51,8 @@ import { SkeletonAvatar } from './skeleton';
51
51
  import { SkeletonCard } from './skeleton';
52
52
  import { SkeletonList } from './skeleton';
53
53
  import StatusLabel from './StatusLabel.svelte';
54
- import StepIcon from './StepIcon.svelte';
55
- import StepIconList from './StepIconList.svelte';
54
+ import AvatarIcon from './AvatarIcon.svelte';
55
+ import AvatarStack from './AvatarStack.svelte';
56
56
  import { Table } from './table';
57
57
  import { TableBody } from './table';
58
58
  import { TableCaption } from './table';
@@ -87,4 +87,4 @@ import { FlexRender } from './data-table';
87
87
  import { createSvelteTable } from './data-table';
88
88
  import { renderComponent } from './data-table';
89
89
  import { renderSnippet } from './data-table';
90
- export { Accordion, AlertDialog, BaseButton, BaseCard, BaseCounter, BaseDropdown, BaseFlag, BaseTableActions, Breadcrumbs, ButtonFile, ButtonSearch, ButtonUuidCopy, CardCheckbox, CardRelation, CompanySelector, CounterWidget, DataListItem, DatePicker, DrawerContext, DrawerContextItem, DrawerContextSeparator, DropdownSelect, DropdownSelectGroup, EmptyState, FeedEvents, FeedIconEvent, FeedIconStatus, FeedItem, FeedItemDetail, FeedViewer, GlobalSearch, InputCheckbox, InputError, InputLabel, InputRadio, InputSearch, InputSelect, InputText, InputTextarea, InputToggle, MenuItem, MenuItemCollapsible, Notification, ProfileAvatar, ProgressBar, ProgressBarCircle, SeparatorHorizontal, ShortcutWrapper, Skeleton, SkeletonAvatar, SkeletonCard, SkeletonList, StatusLabel, StepIcon, StepIconList, Table, TableBody, TableCaption, TableFooter, TableHeader, TableRow, TableHead, TableCell, Tabs, TabsContent, TabsList, TabsTrigger, TagBeta, TagProgress, TagSearch, TagStatus, TitleMain, TitleSection, Toaster, Tooltip, TooltipContent, TooltipTrigger, TooltipAutoHide, resolveIcon, getCountryName, getStatusType, buttonVariants, DataTable, DataTableToolbar, DataTableViewOptions, FlexRender, createSvelteTable, renderComponent, renderSnippet };
90
+ export { Accordion, AlertDialog, BaseButton, BaseCard, BaseCounter, BaseDropdown, BaseFlag, BaseTableActions, Breadcrumbs, ButtonFile, ButtonSearch, ButtonUuidCopy, CardCheckbox, CardRelation, CompanySelector, CounterWidget, DataListItem, DatePicker, DrawerContext, DrawerContextItem, DrawerContextSeparator, DropdownSelect, DropdownSelectGroup, EmptyState, FeedEvents, FeedIconEvent, FeedIconStatus, FeedItem, FeedItemDetail, FeedViewer, GlobalSearch, InputCheckbox, InputError, InputLabel, InputRadio, InputSearch, InputSelect, InputText, InputTextarea, InputToggle, MenuItem, MenuItemCollapsible, Notification, ProfileAvatar, ProgressBar, ProgressBarCircle, SeparatorHorizontal, ShortcutWrapper, Skeleton, SkeletonAvatar, SkeletonCard, SkeletonList, StatusLabel, AvatarIcon, AvatarStack, Table, TableBody, TableCaption, TableFooter, TableHeader, TableRow, TableHead, TableCell, Tabs, TabsContent, TabsList, TabsTrigger, TagBeta, TagProgress, TagSearch, TagStatus, TitleMain, TitleSection, Toaster, Tooltip, TooltipContent, TooltipTrigger, TooltipAutoHide, resolveIcon, getCountryName, getStatusType, buttonVariants, DataTable, DataTableToolbar, DataTableViewOptions, FlexRender, createSvelteTable, renderComponent, renderSnippet };
package/dist/index.js CHANGED
@@ -48,8 +48,8 @@ import SeparatorHorizontal from './SeparatorHorizontal.svelte'
48
48
  import ShortcutWrapper from './ShortcutWrapper.svelte'
49
49
  import { Skeleton, SkeletonAvatar, SkeletonCard, SkeletonList } from './skeleton'
50
50
  import StatusLabel from './StatusLabel.svelte'
51
- import StepIcon from './StepIcon.svelte'
52
- import StepIconList from './StepIconList.svelte'
51
+ import AvatarIcon from './AvatarIcon.svelte'
52
+ import AvatarStack from './AvatarStack.svelte'
53
53
  import {
54
54
  Table,
55
55
  TableHeader,
@@ -135,8 +135,8 @@ export {
135
135
  SkeletonCard,
136
136
  SkeletonList,
137
137
  StatusLabel,
138
- StepIcon,
139
- StepIconList,
138
+ AvatarIcon,
139
+ AvatarStack,
140
140
  Table,
141
141
  TableBody,
142
142
  TableCaption,
package/dist/types.d.ts CHANGED
@@ -135,9 +135,10 @@ export type Breadcrumb = {
135
135
  country?: string;
136
136
  copiable?: boolean;
137
137
  };
138
- export type StepIcon = {
138
+ export type AvatarIcon = {
139
139
  name: string;
140
- url: string;
140
+ url?: string;
141
+ icon?: IconSource;
141
142
  };
142
143
  export interface AccordionProps {
143
144
  label: string;
@@ -223,6 +224,7 @@ export interface BaseDropdownProps {
223
224
  matchParentWidth?: boolean;
224
225
  usePortal?: boolean;
225
226
  strategy?: 'absolute' | 'fixed';
227
+ disabled?: boolean;
226
228
  trigger?: Snippet;
227
229
  children?: Snippet;
228
230
  [key: string]: any;
@@ -349,6 +351,7 @@ export interface DrawerContextProps {
349
351
  ondropitem?: (groups: Record<string, DrawerOption[]>) => void;
350
352
  children?: Snippet;
351
353
  groups?: DrawerGroup[];
354
+ [key: string]: unknown;
352
355
  }
353
356
  export interface DrawerContextItemProps {
354
357
  multiple?: boolean;
@@ -374,6 +377,8 @@ export interface DropdownSelectProps {
374
377
  stackRight?: boolean;
375
378
  multipleLabel?: string;
376
379
  strategy?: 'absolute' | 'fixed';
380
+ disabled?: boolean;
381
+ class?: string;
377
382
  }
378
383
  export interface EmptyStateProps {
379
384
  icon?: Snippet;
@@ -561,13 +566,15 @@ export interface StatusLabelProps {
561
566
  status: FeedItemStatus;
562
567
  label?: string;
563
568
  }
564
- export interface StepIconListProps {
565
- icons?: StepIcon[];
566
- [key: string]: any;
569
+ export interface AvatarStackProps {
570
+ icons?: AvatarIcon[];
571
+ size?: 'sm' | 'md';
572
+ class?: string;
567
573
  }
568
- export interface StepIconProps {
574
+ export interface AvatarIconProps {
569
575
  name?: string;
570
576
  showMask?: boolean;
577
+ size?: 'sm' | 'md';
571
578
  tooltipContent?: Snippet;
572
579
  children: Snippet;
573
580
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@invopop/popui",
3
3
  "license": "MIT",
4
- "version": "0.1.69",
4
+ "version": "0.1.71",
5
5
  "repository": {
6
6
  "url": "https://github.com/invopop/popui"
7
7
  },
@@ -1,35 +0,0 @@
1
- <script lang="ts">
2
- import { TooltipAutoHide, TooltipContent, TooltipTrigger } from './tooltip'
3
- import type { StepIconProps } from './types.js'
4
-
5
- let {
6
- name,
7
- showMask = false,
8
- tooltipContent,
9
- children
10
- }: StepIconProps = $props()
11
- </script>
12
-
13
- <TooltipAutoHide>
14
- <TooltipTrigger class="shrink-0">
15
- <div
16
- style={showMask
17
- ? `mask-image: url("data:image/svg+xml,%3Csvg width='26' height='28' viewBox='0 0 26 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.4004 0C21.7603 9.85818e-10 23.4402 0.000417824 24.7236 0.654297C25.1531 0.873098 25.552 1.14144 25.9131 1.45215C25.5579 1.90591 25.2449 2.39516 24.9805 2.91406C23.9996 4.83925 24 7.36007 24 12.4004V15.5996C24 20.6399 23.9996 23.1608 24.9805 25.0859C25.2447 25.6046 25.5581 26.0933 25.9131 26.5469C25.5519 26.8578 25.1532 27.1268 24.7236 27.3457C23.4402 27.9996 21.7603 28 18.4004 28H9.59961C6.23965 28 4.55977 27.9996 3.27637 27.3457C2.14739 26.7705 1.22954 25.8526 0.654297 24.7236C0.00041777 23.4402 9.8162e-10 21.7603 0 18.4004V9.59961C9.88222e-10 6.23965 0.000417662 4.55977 0.654297 3.27637C1.22954 2.14739 2.14739 1.22954 3.27637 0.654297C4.55977 0.000417608 6.23965 9.84018e-10 9.59961 0H18.4004Z' fill='white'/%3E%3C/svg%3E");
18
- mask-size: 100% 100%;
19
- mask-repeat: no-repeat;
20
- -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='26' height='28' viewBox='0 0 26 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.4004 0C21.7603 9.85818e-10 23.4402 0.000417824 24.7236 0.654297C25.1531 0.873098 25.552 1.14144 25.9131 1.45215C25.5579 1.90591 25.2449 2.39516 24.9805 2.91406C23.9996 4.83925 24 7.36007 24 12.4004V15.5996C24 20.6399 23.9996 23.1608 24.9805 25.0859C25.2447 25.6046 25.5581 26.0933 25.9131 26.5469C25.5519 26.8578 25.1532 27.1268 24.7236 27.3457C23.4402 27.9996 21.7603 28 18.4004 28H9.59961C6.23965 28 4.55977 27.9996 3.27637 27.3457C2.14739 26.7705 1.22954 25.8526 0.654297 24.7236C0.00041777 23.4402 9.8162e-10 21.7603 0 18.4004V9.59961C9.88222e-10 6.23965 0.000417662 4.55977 0.654297 3.27637C1.22954 2.14739 2.14739 1.22954 3.27637 0.654297C4.55977 0.000417608 6.23965 9.84018e-10 9.59961 0H18.4004Z' fill='white'/%3E%3C/svg%3E");
21
- -webkit-mask-size: 100% 100%;
22
- -webkit-mask-repeat: no-repeat;`
23
- : ''}
24
- >
25
- {@render children()}
26
- </div>
27
- </TooltipTrigger>
28
- <TooltipContent>
29
- {#if tooltipContent}
30
- {@render tooltipContent()}
31
- {:else if name}
32
- {name}
33
- {/if}
34
- </TooltipContent>
35
- </TooltipAutoHide>
@@ -1,4 +0,0 @@
1
- import type { StepIconProps } from './types.js';
2
- declare const StepIcon: import("svelte").Component<StepIconProps, {}, "">;
3
- type StepIcon = ReturnType<typeof StepIcon>;
4
- export default StepIcon;
@@ -1,43 +0,0 @@
1
- <script lang="ts">
2
- import { TooltipProvider } from './tooltip'
3
- import StepIcon from './StepIcon.svelte'
4
- import type { StepIconListProps } from './types.js'
5
-
6
- let { icons = [] }: StepIconListProps = $props()
7
-
8
- let maxItems = $derived(icons.length > 6 ? 5 : 6)
9
- let mainIcons = $derived(icons.slice(0, maxItems))
10
- let restIcons = $derived(icons.slice(maxItems, icons.length))
11
- </script>
12
-
13
- {#snippet restTooltip()}
14
- {#each restIcons as restIcon}
15
- <div>{restIcon.name}</div>
16
- {/each}
17
- {/snippet}
18
-
19
- <TooltipProvider>
20
- <div class="flex flex-col space-y-2 sm:flex-row sm:flex-nowrap sm:space-y-0 items-center">
21
- {#each mainIcons as icon, i (i)}
22
- <StepIcon name={icon.name} showMask={i < mainIcons.length - 1 || restIcons.length > 0}>
23
- <div
24
- class="p-1.5 rounded-md flex items-center space-x-1 bg-background-default-secondary text-icon shrink-0 {i >
25
- 0
26
- ? 'ml-[-2px]'
27
- : ''}"
28
- >
29
- <img src={icon.url} alt={icon.name} class="size-4 shrink-0" />
30
- </div>
31
- </StepIcon>
32
- {/each}
33
- {#if restIcons.length}
34
- <StepIcon tooltipContent={restTooltip}>
35
- <div
36
- class="flex items-center justify-center text-icon font-medium text-sm size-7 shrink-0 rounded-md bg-background-default-secondary ml-[-1px]"
37
- >
38
- +{restIcons.length}
39
- </div>
40
- </StepIcon>
41
- {/if}
42
- </div>
43
- </TooltipProvider>
@@ -1,4 +0,0 @@
1
- import type { StepIconListProps } from './types.js';
2
- declare const StepIconList: import("svelte").Component<StepIconListProps, {}, "">;
3
- type StepIconList = ReturnType<typeof StepIconList>;
4
- export default StepIconList;