@invopop/popui 0.1.1 → 0.1.3-6.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/AlertDialog.svelte +10 -11
  2. package/dist/BaseButton.svelte +25 -104
  3. package/dist/BaseCard.svelte +35 -30
  4. package/dist/BaseCounter.svelte +11 -8
  5. package/dist/BaseDropdown.svelte +5 -5
  6. package/dist/BaseFlag.svelte +5 -3
  7. package/dist/BaseFlag.svelte.d.ts +1 -0
  8. package/dist/BaseTable.svelte +16 -16
  9. package/dist/BaseTable.svelte.d.ts +1 -1
  10. package/dist/BaseTableActions.svelte +4 -6
  11. package/dist/BaseTableCellContent.svelte +9 -21
  12. package/dist/BaseTableCheckbox.svelte +9 -11
  13. package/dist/BaseTableHeaderContent.svelte +4 -4
  14. package/dist/BaseTableHeaderOrderBy.svelte +23 -12
  15. package/dist/BaseTableRow.svelte +12 -10
  16. package/dist/Breadcrumb.svelte +40 -0
  17. package/dist/Breadcrumb.svelte.d.ts +4 -0
  18. package/dist/Breadcrumbs.svelte +5 -30
  19. package/dist/ButtonFile.svelte +40 -30
  20. package/dist/ButtonUuidCopy.svelte +6 -3
  21. package/dist/CardCheckbox.svelte +45 -32
  22. package/dist/CardCheckbox.svelte.d.ts +1 -1
  23. package/dist/CardRelation.svelte +12 -13
  24. package/dist/CompanySelector.svelte +35 -7
  25. package/dist/CounterWidget.svelte +52 -0
  26. package/dist/CounterWidget.svelte.d.ts +4 -0
  27. package/dist/DataListItem.svelte +14 -10
  28. package/dist/DatePicker.svelte +20 -17
  29. package/dist/DrawerContext.svelte +207 -15
  30. package/dist/DrawerContextItem.svelte +50 -50
  31. package/dist/DrawerContextSeparator.svelte +1 -1
  32. package/dist/DropdownSelect.svelte +46 -18
  33. package/dist/EmptyState.svelte +42 -0
  34. package/dist/EmptyState.svelte.d.ts +4 -0
  35. package/dist/FeedEvents.svelte +9 -5
  36. package/dist/FeedIconEvent.svelte +2 -2
  37. package/dist/FeedIconStatus.svelte +4 -4
  38. package/dist/FeedItem.svelte +10 -11
  39. package/dist/FeedItemDetail.svelte +32 -6
  40. package/dist/FeedViewer.svelte +1 -1
  41. package/dist/GlobalSearch.svelte +13 -12
  42. package/dist/InputCheckbox.svelte +2 -5
  43. package/dist/InputError.svelte +4 -9
  44. package/dist/InputLabel.svelte +3 -1
  45. package/dist/InputRadio.svelte +29 -13
  46. package/dist/InputRadio.svelte.d.ts +1 -1
  47. package/dist/InputSearch.svelte +8 -8
  48. package/dist/InputSelect.svelte +32 -31
  49. package/dist/InputText.svelte +32 -24
  50. package/dist/InputTextarea.svelte +25 -19
  51. package/dist/InputToggle.svelte +24 -18
  52. package/dist/MenuItem.svelte +16 -11
  53. package/dist/MenuItemCollapsible.svelte +7 -7
  54. package/dist/Notification.svelte +60 -25
  55. package/dist/ProfileAvatar.svelte +43 -14
  56. package/dist/ProgressBar.svelte +42 -0
  57. package/dist/ProgressBar.svelte.d.ts +4 -0
  58. package/dist/ProgressBarCircle.svelte +46 -0
  59. package/dist/ProgressBarCircle.svelte.d.ts +4 -0
  60. package/dist/SeparatorHorizontal.svelte +2 -2
  61. package/dist/ShortcutWrapper.svelte +14 -5
  62. package/dist/StatusLabel.svelte +4 -5
  63. package/dist/StepIconList.svelte +11 -9
  64. package/dist/TagBeta.svelte +26 -14
  65. package/dist/TagProgress.svelte +28 -0
  66. package/dist/TagProgress.svelte.d.ts +4 -0
  67. package/dist/TagSearch.svelte +4 -4
  68. package/dist/TagStatus.svelte +32 -34
  69. package/dist/TitleMain.svelte +1 -1
  70. package/dist/TitleSection.svelte +1 -1
  71. package/dist/UuidCopy.svelte +4 -4
  72. package/dist/alert-dialog/alert-dialog-action.svelte +8 -4
  73. package/dist/alert-dialog/alert-dialog-cancel.svelte +7 -3
  74. package/dist/alert-dialog/alert-dialog-content.svelte +1 -1
  75. package/dist/alert-dialog/alert-dialog-description.svelte +1 -1
  76. package/dist/alert-dialog/alert-dialog-footer.svelte +1 -1
  77. package/dist/alert-dialog/alert-dialog-header.svelte +1 -1
  78. package/dist/alert-dialog/alert-dialog-overlay.svelte +1 -1
  79. package/dist/alert-dialog/alert-dialog-title.svelte +1 -1
  80. package/dist/alert-dialog/alert-dialog-trigger.svelte +4 -2
  81. package/dist/button/button.svelte +200 -24
  82. package/dist/button/button.svelte.d.ts +51 -26
  83. package/dist/clickOutside.d.ts +5 -2
  84. package/dist/clickOutside.js +9 -3
  85. package/dist/data-table/cells/boolean-cell.svelte +16 -0
  86. package/dist/data-table/cells/boolean-cell.svelte.d.ts +8 -0
  87. package/dist/data-table/cells/currency-cell.svelte +10 -0
  88. package/dist/data-table/cells/currency-cell.svelte.d.ts +8 -0
  89. package/dist/data-table/cells/date-cell.svelte +10 -0
  90. package/dist/data-table/cells/date-cell.svelte.d.ts +8 -0
  91. package/dist/data-table/cells/tag-cell.svelte +12 -0
  92. package/dist/data-table/cells/tag-cell.svelte.d.ts +8 -0
  93. package/dist/data-table/cells/text-cell.svelte +10 -0
  94. package/dist/data-table/cells/text-cell.svelte.d.ts +8 -0
  95. package/dist/data-table/column-definitions.d.ts +12 -0
  96. package/dist/data-table/column-definitions.js +40 -0
  97. package/dist/data-table/column-sizing-helpers.d.ts +6 -0
  98. package/dist/data-table/column-sizing-helpers.js +24 -0
  99. package/dist/data-table/create-columns.d.ts +3 -0
  100. package/dist/data-table/create-columns.js +50 -0
  101. package/dist/data-table/data-table-pagination.svelte +144 -0
  102. package/dist/data-table/data-table-pagination.svelte.d.ts +4 -0
  103. package/dist/data-table/data-table-svelte.svelte.d.ts +40 -0
  104. package/dist/data-table/data-table-svelte.svelte.js +111 -0
  105. package/dist/data-table/data-table-toolbar.svelte +16 -0
  106. package/dist/data-table/data-table-toolbar.svelte.d.ts +29 -0
  107. package/dist/data-table/data-table-types.d.ts +66 -0
  108. package/dist/data-table/data-table-types.js +1 -0
  109. package/dist/data-table/data-table-view-options.svelte +88 -0
  110. package/dist/data-table/data-table-view-options.svelte.d.ts +27 -0
  111. package/dist/data-table/data-table.svelte +303 -0
  112. package/dist/data-table/data-table.svelte.d.ts +25 -0
  113. package/dist/data-table/flex-render.svelte +40 -0
  114. package/dist/data-table/flex-render.svelte.d.ts +33 -0
  115. package/dist/data-table/index.d.ts +13 -0
  116. package/dist/data-table/index.js +13 -0
  117. package/dist/data-table/render-helpers.d.ts +90 -0
  118. package/dist/data-table/render-helpers.js +99 -0
  119. package/dist/data-table/table-setup.d.ts +36 -0
  120. package/dist/data-table/table-setup.js +130 -0
  121. package/dist/data-table/table-styles.d.ts +17 -0
  122. package/dist/data-table/table-styles.js +48 -0
  123. package/dist/helpers.d.ts +1 -0
  124. package/dist/helpers.js +3 -0
  125. package/dist/index.d.ts +15 -7
  126. package/dist/index.js +31 -14
  127. package/dist/range-calendar/range-calendar-cell.svelte +1 -1
  128. package/dist/range-calendar/range-calendar-day.svelte +11 -12
  129. package/dist/range-calendar/range-calendar-head-cell.svelte +1 -1
  130. package/dist/range-calendar/range-calendar-header.svelte +1 -1
  131. package/dist/range-calendar/range-calendar-month-select.svelte +1 -1
  132. package/dist/range-calendar/range-calendar-next-button.svelte +3 -3
  133. package/dist/range-calendar/range-calendar-prev-button.svelte +3 -3
  134. package/dist/range-calendar/range-calendar.svelte +1 -1
  135. package/dist/sonner/index.d.ts +1 -0
  136. package/dist/sonner/index.js +1 -0
  137. package/dist/sonner/sonner.svelte +44 -0
  138. package/dist/sonner/sonner.svelte.d.ts +4 -0
  139. package/dist/svg/CheckBadge.svelte +18 -0
  140. package/dist/svg/CheckBadge.svelte.d.ts +26 -0
  141. package/dist/svg/IconDelivery.svelte +86 -0
  142. package/dist/svg/IconDelivery.svelte.d.ts +20 -0
  143. package/dist/svg/IconEmpty.svelte +113 -121
  144. package/dist/svg/IconOrder.svelte +81 -0
  145. package/dist/svg/IconOrder.svelte.d.ts +20 -0
  146. package/dist/svg/IconPayment.svelte +86 -0
  147. package/dist/svg/IconPayment.svelte.d.ts +20 -0
  148. package/dist/table/table-body.svelte +5 -1
  149. package/dist/table/table-cell.svelte +4 -2
  150. package/dist/table/table-footer.svelte +1 -1
  151. package/dist/table/table-head.svelte +4 -2
  152. package/dist/table/table-header.svelte +1 -1
  153. package/dist/table/table-row.svelte +4 -2
  154. package/dist/table/table.svelte +2 -2
  155. package/dist/tabs/tabs-list.svelte +8 -2
  156. package/dist/tabs/tabs-list.svelte.d.ts +4 -1
  157. package/dist/tabs/tabs-trigger.svelte +5 -3
  158. package/dist/tabs/tabs-trigger.svelte.d.ts +4 -1
  159. package/dist/tailwind.theme.css +998 -0
  160. package/dist/tooltip/tooltip-content.svelte +2 -2
  161. package/dist/types.d.ts +71 -50
  162. package/package.json +21 -11
  163. package/dist/CounterWorkflow.svelte +0 -19
  164. package/dist/CounterWorkflow.svelte.d.ts +0 -4
  165. package/dist/DrawerContextWorkspace.svelte +0 -126
  166. package/dist/DrawerContextWorkspace.svelte.d.ts +0 -4
  167. package/dist/EmptyStateIcon.svelte +0 -52
  168. package/dist/EmptyStateIcon.svelte.d.ts +0 -4
  169. package/dist/EmptyStateIllustration.svelte +0 -66
  170. package/dist/EmptyStateIllustration.svelte.d.ts +0 -4
  171. package/dist/FormLayoutModal.svelte +0 -14
  172. package/dist/FormLayoutModal.svelte.d.ts +0 -4
  173. package/dist/ProfileSelector.svelte +0 -41
  174. package/dist/ProfileSelector.svelte.d.ts +0 -4
  175. package/dist/SectionLayout.svelte +0 -13
  176. package/dist/SectionLayout.svelte.d.ts +0 -4
  177. package/dist/tw.theme.d.ts +0 -142
  178. package/dist/tw.theme.js +0 -158
@@ -20,7 +20,7 @@
20
20
  {sideOffset}
21
21
  {side}
22
22
  class={cn(
23
- 'bg-neutral-700 text-white-80 z-50 rounded-md px-3 py-2 text-base font-medium shadow-md',
23
+ 'bg-background-default-negative border border-border-inverse z-50 rounded-md px-2 py-1 text-sm font-medium text-foreground-inverse leading-5 tracking-tight shadow-md',
24
24
  className
25
25
  )}
26
26
  >
@@ -29,7 +29,7 @@
29
29
  {#snippet child({ props })}
30
30
  <div
31
31
  class={cn(
32
- 'bg-primary z-50 size-2.5 rotate-45 rounded-[2px]',
32
+ 'bg-background-default-negative z-50 size-2.5 rotate-45 rounded-[2px]',
33
33
  'data-[side=top]:translate-x-1/2 data-[side=top]:translate-y-[calc(-50%_+_2px)]',
34
34
  'data-[side=bottom]:-translate-x-1/2 data-[side=bottom]:-translate-y-[calc(-50%_+_1px)]',
35
35
  'data-[side=right]:translate-x-[calc(50%_+_2px)] data-[side=right]:translate-y-1/2',
package/dist/types.d.ts CHANGED
@@ -3,8 +3,8 @@ import type { IconSource } from '@steeze-ui/svelte-icon';
3
3
  import type { Snippet } from 'svelte';
4
4
  export type IconTheme = 'default' | 'solid' | 'mini';
5
5
  export type IconPosition = 'right' | 'left';
6
- export type ButtonVariant = 'default' | 'primary' | 'secondary' | 'warning' | 'danger' | 'dark' | 'outline';
7
- export type StatusType = 'grey' | 'green' | 'yellow' | 'red' | 'orange' | 'blue' | 'purple' | 'empty';
6
+ export type ButtonVariant = 'warning' | 'primary' | 'secondary' | 'danger' | 'dark' | 'outline' | 'ghost' | 'dark-ghost';
7
+ export type StatusType = 'grey' | 'green' | 'yellow' | 'red' | 'orange' | 'blue' | 'purple' | 'olive' | 'teal' | 'crimson' | 'blueViolet' | 'steelBlue' | 'empty';
8
8
  export type AnyProp = string | number | object | boolean;
9
9
  export type SidebarIcon = {
10
10
  path: string;
@@ -12,11 +12,18 @@ export type SidebarIcon = {
12
12
  title: string;
13
13
  iconTheme: IconTheme;
14
14
  };
15
- export type Status = 'success' | 'warning' | 'error';
15
+ export type Status = 'success' | 'warning' | 'error' | 'info' | 'neutral';
16
16
  export type SelectOption = {
17
17
  label: string;
18
18
  value: AnyProp;
19
19
  };
20
+ export type DrawerGroup = {
21
+ label: string;
22
+ slug: string;
23
+ emptyIcon?: IconSource;
24
+ emptyTitle?: string;
25
+ emptyDescription?: string;
26
+ };
20
27
  export type DrawerOption = SelectOption & {
21
28
  separator?: boolean;
22
29
  destructive?: boolean;
@@ -29,6 +36,10 @@ export type DrawerOption = SelectOption & {
29
36
  sandbox?: boolean;
30
37
  iconClass?: string;
31
38
  disabled?: boolean;
39
+ locked?: boolean;
40
+ groupBy?: string;
41
+ useAvatar?: boolean;
42
+ action?: Snippet<[DrawerOption]>;
32
43
  };
33
44
  export type Company = {
34
45
  id: string;
@@ -102,7 +113,6 @@ export type TabItem = {
102
113
  check?: boolean;
103
114
  warning?: boolean;
104
115
  };
105
- export type EmptyStateIcon = 'invoices' | 'contacts' | 'products' | 'pdf' | 'file' | 'no-results';
106
116
  export type DataListItem = {
107
117
  label: string;
108
118
  value: string;
@@ -153,8 +163,7 @@ export interface BaseButtonProps {
153
163
  type?: 'button' | 'submit' | 'reset' | null;
154
164
  variant?: ButtonVariant;
155
165
  disabled?: boolean;
156
- small?: boolean;
157
- big?: boolean;
166
+ size?: 'sm' | 'md' | 'lg';
158
167
  dangerIcon?: boolean;
159
168
  shortcut?: boolean;
160
169
  fullwidth?: boolean;
@@ -169,14 +178,37 @@ export interface BaseCardProps {
169
178
  title?: string;
170
179
  description?: string;
171
180
  type?: 'default' | 'soon' | 'beta';
172
- enabled?: boolean;
173
181
  footer?: Snippet;
174
182
  [key: string]: any;
175
183
  onclick?: (event: MouseEvent) => void;
176
184
  }
177
185
  export interface BaseCounterProps {
178
- content: number;
179
- variant?: 'default' | 'light' | 'dark';
186
+ value: number;
187
+ theme?: 'light' | 'navigation' | 'accent';
188
+ }
189
+ export interface CounterWidgetProps {
190
+ label: string;
191
+ current: number;
192
+ total: number;
193
+ resetDate?: string;
194
+ icon?: IconSource;
195
+ allowOverage?: boolean;
196
+ }
197
+ export interface ProgressBarProps {
198
+ percentage?: number;
199
+ current?: number;
200
+ total?: number;
201
+ allowOverage?: boolean;
202
+ warningPercentage?: number;
203
+ }
204
+ export interface ProgressBarCircleProps {
205
+ progress: number;
206
+ size: number;
207
+ variant?: 'default' | 'dark';
208
+ }
209
+ export interface TagProgressProps {
210
+ progress: number;
211
+ variant?: 'default' | 'dark';
180
212
  }
181
213
  export interface BaseDropdownProps {
182
214
  isOpen?: boolean;
@@ -189,7 +221,6 @@ export interface BaseDropdownProps {
189
221
  }
190
222
  export interface BaseFlagProps {
191
223
  country?: string;
192
- width?: number;
193
224
  }
194
225
  export interface BaseTableProps {
195
226
  sortBy?: string;
@@ -248,6 +279,7 @@ export interface BaseTableHeaderOrderByProps {
248
279
  isActive?: boolean;
249
280
  sortDirection: TableSortBy;
250
281
  onOrderBy?: (direction: TableSortBy) => void;
282
+ onHide?: () => void;
251
283
  }
252
284
  export interface BaseTableRowProps {
253
285
  row: TableDataRow;
@@ -270,18 +302,24 @@ export interface BaseTableRowProps {
270
302
  action: AnyProp;
271
303
  }) => void;
272
304
  }
305
+ export interface BreadcrumbProps {
306
+ breadcrumb: Breadcrumb;
307
+ isLast: boolean;
308
+ oncopied?: (label: string) => void;
309
+ }
273
310
  export interface BreadcrumbsProps {
274
311
  breadcrumbs?: Breadcrumb[];
275
312
  oncopied?: (label: string) => void;
276
313
  }
314
+ export type ButtonFileType = 'pdf' | 'xml' | 'png' | 'generic';
277
315
  export interface ButtonFileProps {
278
- icon?: IconSource;
279
316
  name?: string;
280
317
  disabled?: boolean;
281
318
  date?: string;
282
- iconColor?: StatusType;
319
+ fileType?: ButtonFileType;
283
320
  onPreview?: () => void;
284
321
  onDownload?: () => void;
322
+ class?: string;
285
323
  [key: string]: any;
286
324
  }
287
325
  export interface ButtonUuidCopyProps {
@@ -299,6 +337,7 @@ export interface CardCheckboxProps {
299
337
  description?: string;
300
338
  accentText?: string;
301
339
  checked?: boolean;
340
+ disabled?: boolean;
302
341
  icon?: IconSource | undefined;
303
342
  hideRadio?: boolean;
304
343
  footer?: Snippet;
@@ -317,10 +356,6 @@ export interface CompanySelectorProps {
317
356
  onAdd?: () => void;
318
357
  onSelect?: (company: Company | null) => void;
319
358
  }
320
- export interface CounterWorkflowProps {
321
- content: number | string;
322
- variant?: 'default' | 'transparent';
323
- }
324
359
  export interface DataListItemProps {
325
360
  label?: string;
326
361
  value?: string;
@@ -342,24 +377,21 @@ export interface DatePickerProps {
342
377
  export interface DrawerContextProps {
343
378
  items?: DrawerOption[];
344
379
  multiple?: boolean;
345
- searchable?: boolean;
380
+ draggable?: boolean;
346
381
  widthClass?: string;
347
382
  onclick?: (value: AnyProp) => void;
348
383
  onselect?: (selected: DrawerOption[]) => void;
384
+ onreorder?: (items: DrawerOption[]) => void;
385
+ children?: Snippet;
386
+ groups?: DrawerGroup[];
349
387
  }
350
388
  export interface DrawerContextItemProps {
351
389
  multiple?: boolean;
352
390
  item: DrawerOption;
353
391
  scrollIfSelected?: boolean;
354
- workspace?: boolean;
355
392
  onclick?: (value: AnyProp) => void;
356
393
  onchange?: (item: DrawerOption) => void;
357
394
  }
358
- export interface DrawerContextWorkspaceProps {
359
- items?: DrawerOption[];
360
- multiple?: boolean;
361
- onclick?: (value: AnyProp) => void;
362
- }
363
395
  export interface DropdownSelectProps {
364
396
  value?: AnyProp;
365
397
  icon?: IconSource | string | undefined;
@@ -371,19 +403,14 @@ export interface DropdownSelectProps {
371
403
  widthClass?: string;
372
404
  onSelect?: (value: AnyProp) => void;
373
405
  }
374
- export interface EmptyStateIconProps {
375
- icon?: IconSource | undefined;
406
+ export interface EmptyStateProps {
407
+ icon?: Snippet;
408
+ iconSource?: IconSource;
376
409
  title?: string;
377
410
  description?: string;
378
411
  check?: boolean;
379
412
  children?: Snippet;
380
413
  }
381
- export interface EmptyStateIllustrationProps {
382
- icon?: EmptyStateIcon | undefined;
383
- title?: string;
384
- description?: string;
385
- children?: Snippet;
386
- }
387
414
  export interface FeedEventsProps {
388
415
  events?: FeedEvent[];
389
416
  }
@@ -415,15 +442,13 @@ export interface FeedItemDetailProps {
415
442
  events?: FeedEvent[];
416
443
  idLabel?: string;
417
444
  onCopied?: (uuid: string) => void;
445
+ cancelable?: boolean;
446
+ onCancel?: () => void;
418
447
  }
419
448
  export interface FeedViewerProps {
420
449
  items?: FeedItemProps[];
421
450
  onView?: (slug: string) => void;
422
451
  }
423
- export interface FormLayoutModalProps {
424
- children?: Snippet;
425
- footer?: Snippet;
426
- }
427
452
  export interface GlobalSearchProps {
428
453
  collapsed?: boolean;
429
454
  onOpen?: () => void;
@@ -447,8 +472,10 @@ export interface InputLabelProps {
447
472
  }
448
473
  export interface InputRadioProps {
449
474
  checked?: boolean;
475
+ disabled?: boolean;
450
476
  id?: any;
451
477
  name?: string;
478
+ label?: string;
452
479
  onchange?: (checked: boolean) => void;
453
480
  [key: string]: any;
454
481
  }
@@ -509,6 +536,7 @@ export interface InputToggleProps {
509
536
  checked?: boolean;
510
537
  label?: string;
511
538
  onchange?: (checked: boolean) => void;
539
+ [key: string]: any;
512
540
  }
513
541
  export interface MenuItemProps {
514
542
  label?: string;
@@ -533,29 +561,19 @@ export interface MenuItemCollapsibleProps {
533
561
  children?: Snippet;
534
562
  }
535
563
  export interface NotificationProps {
536
- message?: string;
564
+ title?: string;
565
+ description?: string;
537
566
  type?: Status;
538
567
  children?: Snippet;
568
+ [key: string]: any;
539
569
  }
540
570
  export interface ProfileAvatarProps {
541
571
  name?: string;
542
- small?: boolean;
543
- large?: boolean;
572
+ variant?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
544
573
  dark?: boolean;
545
574
  picture?: string;
546
575
  country?: string;
547
- }
548
- export interface ProfileSelectorProps {
549
- name?: string;
550
- orgName?: string;
551
- picture?: string;
552
- collapsed?: boolean;
553
- isOpen?: boolean;
554
- onclick?: (event: MouseEvent) => void;
555
- }
556
- export interface SectionLayoutProps {
557
- title?: string;
558
- children?: Snippet;
576
+ icon?: IconSource;
559
577
  }
560
578
  export interface StatusLabelProps {
561
579
  status: FeedItemStatus;
@@ -563,6 +581,7 @@ export interface StatusLabelProps {
563
581
  }
564
582
  export interface StepIconListProps {
565
583
  icons?: StepIcon[];
584
+ [key: string]: any;
566
585
  }
567
586
  export interface TagSearchProps {
568
587
  label?: string;
@@ -584,6 +603,8 @@ export interface TitleSectionProps {
584
603
  children?: Snippet;
585
604
  }
586
605
  export interface ShortcutWrapperProps {
606
+ size?: 'sm' | 'md';
607
+ theme?: 'light' | 'navigation';
587
608
  children?: Snippet;
588
609
  }
589
610
  export interface UuidCopyProps {
package/package.json CHANGED
@@ -1,23 +1,26 @@
1
1
  {
2
2
  "name": "@invopop/popui",
3
3
  "license": "MIT",
4
- "version": "0.1.1",
4
+ "version": "0.1.36.beta.1",
5
+ "repository": {
6
+ "url": "https://github.com/invopop/popui"
7
+ },
5
8
  "scripts": {
6
9
  "dev": "vite dev",
10
+ "dev:clean": "npm run clean && vite dev",
11
+ "clean": "rm -rf .svelte-kit node_modules/.vite node_modules/.cache",
12
+ "clean:ts": "rm -rf .svelte-kit/tsconfig.json .svelte-kit/types && svelte-kit sync",
7
13
  "build": "vite build && npm run package",
8
14
  "preview": "vite preview",
9
15
  "package": "svelte-kit sync && svelte-package && publint",
10
16
  "prepublishOnly": "npm run package",
11
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
17
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.check.json",
12
18
  "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
13
19
  "test": "vitest",
14
20
  "lint": "prettier --plugin-search-dir . --check . && eslint .",
15
21
  "format": "prettier --plugin-search-dir . --write .",
16
22
  "storybook": "storybook dev -p 6006",
17
- "build-storybook": "storybook build",
18
- "build:tailwind": "tailwindcss -i ../styles.css -o ./dist/popui.css --minify",
19
- "build-web-components": "vite build --config vite.wbc.config.ts",
20
- "publish-wbc": "npm run build-web-components && cp ./package-wbc.json ./dist/package.json && cd ./dist && npm run publish"
23
+ "build-storybook": "storybook build"
21
24
  },
22
25
  "exports": {
23
26
  ".": {
@@ -28,7 +31,7 @@
28
31
  "types": "./dist/types.d.ts",
29
32
  "default": "./dist/types.d.ts"
30
33
  },
31
- "./twTheme.js": "./dist/tw.theme.js",
34
+ "./tailwind.theme.css": "./dist/tailwind.theme.css",
32
35
  "./package.json": "./dist/package.json"
33
36
  },
34
37
  "files": [
@@ -37,7 +40,7 @@
37
40
  "!dist/**/*.spec.*"
38
41
  ],
39
42
  "peerDependencies": {
40
- "svelte": "^4.0.0"
43
+ "svelte": "^5.0.0"
41
44
  },
42
45
  "devDependencies": {
43
46
  "@storybook/addon-docs": "^9.1.3",
@@ -52,6 +55,7 @@
52
55
  "@tailwindcss/forms": "^0.5.9",
53
56
  "@tailwindcss/typography": "^0.5.15",
54
57
  "@types/lodash-es": "^4.17.12",
58
+ "@types/sortablejs": "^1.15.9",
55
59
  "@typescript-eslint/eslint-plugin": "^6.0.0",
56
60
  "@typescript-eslint/parser": "^6.0.0",
57
61
  "eslint": "^8.28.0",
@@ -67,7 +71,6 @@
67
71
  "storybook": "^9.1.3",
68
72
  "svelte": "^5.0.0",
69
73
  "svelte-check": "^4.0.0",
70
- "svelte-headlessui": "^0.0.32",
71
74
  "tailwind-merge": "^3.0.2",
72
75
  "tailwindcss": "^4.1.13",
73
76
  "tslib": "^2.4.1",
@@ -80,23 +83,30 @@
80
83
  "type": "module",
81
84
  "dependencies": {
82
85
  "@floating-ui/core": "^1.5.1",
83
- "@invopop/ui-icons": "0.0.67",
86
+ "@invopop/ui-icons": "^0.0.76",
84
87
  "@steeze-ui/heroicons": "^2.2.3",
85
88
  "@steeze-ui/svelte-icon": "^1.6.2",
86
89
  "@tailwindcss/vite": "^4.1.12",
90
+ "@tanstack/table-core": "^8.21.3",
87
91
  "@types/flatpickr": "^3.1.2",
88
92
  "bits-ui": "^2.9.4",
89
93
  "clsx": "^2.0.0",
90
94
  "date-fns": "^2.30.0",
91
95
  "dayjs": "^1.11.10",
96
+ "flag-icons": "^7.5.0",
92
97
  "flatpickr": "^4.6.13",
93
98
  "inter-ui": "^3.19.3",
94
99
  "lodash-es": "^4.17.21",
100
+ "mode-watcher": "^1.1.0",
101
+ "sortablejs": "^1.15.6",
95
102
  "svelte-floating-ui": "^1.5.8",
103
+ "svelte-headlessui": "^0.0.46",
96
104
  "svelte-intersection-observer-action": "^0.0.4",
97
105
  "svelte-portal": "^2.2.1",
106
+ "svelte-sonner": "^1.0.5",
98
107
  "svelte-transition": "^0.0.17",
99
108
  "svelte-viewport-info": "^1.0.2",
100
- "tailwind-variants": "^1.0.0"
109
+ "tailwind-variants": "^1.0.0",
110
+ "zod": "^4.3.5"
101
111
  }
102
112
  }
@@ -1,19 +0,0 @@
1
- <script lang="ts">
2
- import clsx from 'clsx'
3
- import type { CounterWorkflowProps } from './types'
4
-
5
- let { content, variant = 'default' }: CounterWorkflowProps = $props()
6
-
7
- let styles = $derived(
8
- clsx({
9
- 'bg-white rounded-md': variant === 'default',
10
- rounded: variant === 'transparent'
11
- })
12
- )
13
- </script>
14
-
15
- <div
16
- class="{styles} border border-neutral-200 inline-flex items-center justify-center p-[3px] text-neutral-500 text-sm font-medium h-5 min-w-[20px] tracking-wide tabular-nums slashed-zero lining-nums"
17
- >
18
- {content}
19
- </div>
@@ -1,4 +0,0 @@
1
- import type { CounterWorkflowProps } from './types';
2
- declare const CounterWorkflow: import("svelte").Component<CounterWorkflowProps, {}, "">;
3
- type CounterWorkflow = ReturnType<typeof CounterWorkflow>;
4
- export default CounterWorkflow;
@@ -1,126 +0,0 @@
1
- <script lang="ts">
2
- import type { DrawerContextWorkspaceProps } from './types.ts'
3
- import DrawerContextItem from './DrawerContextItem.svelte'
4
- import { Icon } from '@steeze-ui/svelte-icon'
5
- import { AddCircle, ExternalLink, Workspace } from '@invopop/ui-icons'
6
- import BaseCounter from './BaseCounter.svelte'
7
- import EmptyStateIcon from './EmptyStateIcon.svelte'
8
- import { slide } from 'svelte/transition'
9
- import { ChevronRight } from '@steeze-ui/heroicons'
10
-
11
- let { items = [], multiple = false, onclick }: DrawerContextWorkspaceProps = $props()
12
- let liveOpen = $state(false)
13
- let sandboxOpen = $state(false)
14
- let liveItems = $derived(items.filter((i) => !i.sandbox))
15
- let sandboxItems = $derived(items.filter((i) => i.sandbox))
16
- let selectedItem = $derived(items.find((i) => i.selected))
17
-
18
- $effect(() => {
19
- if (selectedItem) {
20
- if (selectedItem.sandbox) {
21
- sandboxOpen = true
22
- } else {
23
- liveOpen = true
24
- }
25
- }
26
- })
27
- </script>
28
-
29
- <div class="w-[300px] border border-neutral-200 rounded-md shadow-lg bg-white">
30
- <div class="max-h-[550px] overflow-hidden rounded-t-md">
31
- <button
32
- class="flex items-center justify-between bg-neutral-50 border-b border-neutral-200 rounded-t-sm h-9 py-2 pl-2.5 pr-3 text-base font-medium text-neutral-800 w-full"
33
- onclick={() => {
34
- if (liveOpen) return
35
- liveOpen = true
36
- sandboxOpen = false
37
- }}
38
- >
39
- <div class="flex items-center space-x-1.5">
40
- <Icon
41
- src={ChevronRight}
42
- class="h-4 w-4 text-neutral-500 transition-all transform {liveOpen ? 'rotate-90' : ''}"
43
- />
44
- <span>Live</span>
45
- </div>
46
- {#if liveItems.length}
47
- <BaseCounter content={liveItems.length} />
48
- {/if}
49
- </button>
50
- {#if liveOpen}
51
- <div transition:slide class="max-h-[475px] overflow-auto">
52
- {#if !liveItems.length}
53
- <div class="h-[182px] overflow-x-hidden">
54
- <EmptyStateIcon
55
- icon={Workspace}
56
- title="No workspaces here"
57
- description="Create a workspace to start"
58
- />
59
- </div>
60
- {/if}
61
- <ul class="p-1 space-y-1">
62
- {#each liveItems as item}
63
- <DrawerContextItem {item} {multiple} workspace {onclick} />
64
- {/each}
65
- </ul>
66
- </div>
67
- {/if}
68
- <button
69
- class="flex items-center justify-between bg-neutral-50 border-b border-neutral-200 h-9 py-2 pl-2.5 pr-3 text-base font-medium text-neutral-800 w-full"
70
- class:border-t={liveOpen}
71
- onclick={() => {
72
- if (sandboxOpen) return
73
- sandboxOpen = true
74
- liveOpen = false
75
- }}
76
- >
77
- <div class="flex items-center space-x-1.5">
78
- <Icon
79
- src={ChevronRight}
80
- class="h-4 w-4 text-neutral-500 transition-all transform {sandboxOpen ? 'rotate-90' : ''}"
81
- />
82
- <span>Sandbox</span>
83
- </div>
84
- {#if sandboxItems.length}
85
- <BaseCounter content={sandboxItems.length} />
86
- {/if}
87
- </button>
88
- {#if sandboxOpen}
89
- <div transition:slide class="max-h-[475px] overflow-auto">
90
- {#if !sandboxItems.length}
91
- <div class="h-[182px] overflow-x-hidden">
92
- <EmptyStateIcon
93
- icon={Workspace}
94
- title="No workspaces here"
95
- description="Create a workspace to start"
96
- />
97
- </div>
98
- {/if}
99
- <ul class="p-1 space-y-1">
100
- {#each sandboxItems as item}
101
- <DrawerContextItem {item} {multiple} workspace {onclick} />
102
- {/each}
103
- </ul>
104
- </div>
105
- {/if}
106
- </div>
107
-
108
- <ul class="px-1 space-y-1 bg-neutral-50 rounded-b border-t border-neutral-100 py-1">
109
- <li class="pl-1.5 py-1.5 pr-2 hover:bg-neutral-100 rounded-sm">
110
- <button
111
- class="flex items-center justify-between w-full"
112
- onclick={() => {
113
- onclick?.('add')
114
- }}
115
- >
116
- <div class="flex items-center space-x-1.5">
117
- <Icon src={AddCircle} class="w-4 h-4 text-neutral-800 flex-shrink-0" />
118
- <span class="text-neutral-800 tracking-tight text-base font-medium">Create workspace</span
119
- >
120
- </div>
121
-
122
- <Icon src={ExternalLink} class="w-5 h-5 text-neutral-800 flex-shrink-0" />
123
- </button>
124
- </li>
125
- </ul>
126
- </div>
@@ -1,4 +0,0 @@
1
- import type { DrawerContextWorkspaceProps } from './types.ts';
2
- declare const DrawerContextWorkspace: import("svelte").Component<DrawerContextWorkspaceProps, {}, "">;
3
- type DrawerContextWorkspace = ReturnType<typeof DrawerContextWorkspace>;
4
- export default DrawerContextWorkspace;
@@ -1,52 +0,0 @@
1
- <script lang="ts">
2
- import IconEmpty from './svg/IconEmpty.svelte'
3
- import { Icon } from '@steeze-ui/svelte-icon'
4
- import type { EmptyStateIconProps } from './types'
5
-
6
- let {
7
- icon = undefined,
8
- title = '',
9
- description = '',
10
- check = false,
11
- children
12
- }: EmptyStateIconProps = $props()
13
- </script>
14
-
15
- <div
16
- class="flex flex-col text-center items-center justify-center h-full font-sans gap-1"
17
- aria-label={title}
18
- >
19
- {#if icon}
20
- <div class="relative h-[120px] w-[352px] max-w-sm">
21
- <IconEmpty />
22
- <div class="absolute left-[50%] translate-x-[-50%] top-[50%] translate-y-[-50%]">
23
- <Icon src={icon} class="h-12 w-12 text-workspace-accent" />
24
- {#if check}
25
- <svg
26
- width="26"
27
- height="26"
28
- viewBox="0 0 26 26"
29
- fill="none"
30
- xmlns="http://www.w3.org/2000/svg"
31
- class="absolute top-[-16px] right-[-16px]"
32
- >
33
- <path
34
- d="M13 1C6.3835 1 1 6.3835 1 13C1 19.6165 6.3835 25 13 25C19.6165 25 25 19.6165 25 13C25 6.3835 19.6165 1 13 1Z"
35
- fill="#169958"
36
- />
37
- <circle cx="13" cy="13" r="10" stroke="white" stroke-opacity="0.4" stroke-width="0.6" />
38
- <path
39
- d="M18.1078 9.82205C15.7021 11.6837 13.6627 14.2538 12.0477 17.4584C11.8808 17.7912 11.5495 17.9999 11.1884 17.9999C10.83 18.004 10.4922 17.7885 10.3253 17.4517C9.58119 15.9471 8.7491 14.7239 7.78243 13.7123C7.40457 13.3176 7.40586 12.6764 7.78632 12.2831C8.16418 11.8898 8.78016 11.8898 9.15932 12.2871C9.90083 13.063 10.5699 13.9413 11.182 14.9435C12.7853 12.1888 14.7199 9.92443 16.9509 8.19887C17.3805 7.8675 17.9888 7.9591 18.3084 8.40766C18.628 8.85488 18.5387 9.48934 18.1078 9.82205Z"
40
- fill="white"
41
- />
42
- </svg>
43
- {/if}
44
- </div>
45
- </div>
46
- {/if}
47
- <div class="space-y-0.5">
48
- <h4 class="font-medium text-base text-neutral-800 tracking-tight">{title}</h4>
49
- <p class="max-w-xs text-base text-neutral-500 tracking-normal">{description}</p>
50
- <p>{@render children?.()}</p>
51
- </div>
52
- </div>
@@ -1,4 +0,0 @@
1
- import type { EmptyStateIconProps } from './types';
2
- declare const EmptyStateIcon: import("svelte").Component<EmptyStateIconProps, {}, "">;
3
- type EmptyStateIcon = ReturnType<typeof EmptyStateIcon>;
4
- export default EmptyStateIcon;