@reshape-biotech/design-system 2.7.46 → 2.7.48

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.
@@ -56,6 +56,18 @@
56
56
  timestamp: '3 Aug 2025, 10:30',
57
57
  author: 'Jim Halpert',
58
58
  },
59
+ {
60
+ icon: 'door-opened' as const,
61
+ label: 'Door opened',
62
+ timestamp: '3 Aug 2025, 11:30',
63
+ tooltip:
64
+ 'Opening the door of the device while it is running can cause temperature fluctuations or misalignment of the images and their analysis',
65
+ },
66
+ {
67
+ icon: 'door-closed' as const,
68
+ label: 'Door closed',
69
+ timestamp: '3 Aug 2025, 11:31',
70
+ },
59
71
  {
60
72
  icon: 'failed' as const,
61
73
  label: 'Job failed',
@@ -2,6 +2,7 @@
2
2
  import { type BackgroundClass } from '../icons';
3
3
  import ActivityIcon from './ActivityIcon.svelte';
4
4
  import type { ActivityIconType } from './ActivityIcon.svelte';
5
+ import { Tooltip } from '../tooltip';
5
6
  import { DateTime } from 'luxon';
6
7
  import { twMerge } from 'tailwind-merge';
7
8
 
@@ -14,6 +15,7 @@
14
15
  field?: string | null;
15
16
  previous_value?: string | null;
16
17
  value?: string | null;
18
+ tooltip?: string | null;
17
19
  };
18
20
 
19
21
  type Props = {
@@ -32,6 +34,8 @@
32
34
  stop: 'bg-neutral',
33
35
  warning: 'bg-warning',
34
36
  success: 'bg-neutral',
37
+ 'door-opened': 'bg-warning',
38
+ 'door-closed': 'bg-neutral',
35
39
  'export-succeeded': 'bg-neutral',
36
40
  'export-failed': 'bg-danger',
37
41
  };
@@ -58,14 +62,30 @@
58
62
  <div class={twMerge('group flex items-stretch gap-3', className)}>
59
63
  <div class="flex min-h-12 flex-col items-center gap-1.5">
60
64
  <div class="bg-neutral w-0.5 grow group-first:invisible"></div>
61
- <div
62
- class={twMerge(
63
- 'text-secondary flex h-5 w-5 shrink-0 items-center justify-center rounded p-0.5',
64
- ACTIVITY_BACKGROUND[activity.icon]
65
- )}
66
- >
67
- <ActivityIcon icon={activity.icon} />
68
- </div>
65
+ {#snippet activityIconBadge()}
66
+ <div
67
+ class={twMerge(
68
+ 'text-secondary flex h-5 w-5 shrink-0 items-center justify-center rounded p-0.5',
69
+ ACTIVITY_BACKGROUND[activity.icon]
70
+ )}
71
+ >
72
+ <ActivityIcon icon={activity.icon} />
73
+ </div>
74
+ {/snippet}
75
+ {#if activity.tooltip}
76
+ <Tooltip>
77
+ {#snippet trigger()}
78
+ {@render activityIconBadge()}
79
+ {/snippet}
80
+ {#snippet content()}
81
+ <div class="max-w-72 p-1 text-xs">
82
+ {activity.tooltip}
83
+ </div>
84
+ {/snippet}
85
+ </Tooltip>
86
+ {:else}
87
+ {@render activityIconBadge()}
88
+ {/if}
69
89
  <div class="bg-neutral w-0.5 grow group-last:invisible"></div>
70
90
  </div>
71
91
  <div class="flex items-center py-4">
@@ -8,6 +8,7 @@ type Activity = {
8
8
  field?: string | null;
9
9
  previous_value?: string | null;
10
10
  value?: string | null;
11
+ tooltip?: string | null;
11
12
  };
12
13
  type Props = {
13
14
  activity: Activity;
@@ -14,6 +14,8 @@
14
14
  import Warning from 'phosphor-svelte/lib/Warning';
15
15
  import Check from 'phosphor-svelte/lib/Check';
16
16
  import DownloadSimple from 'phosphor-svelte/lib/DownloadSimple';
17
+ import ArrowSquareUp from 'phosphor-svelte/lib/ArrowSquareUp';
18
+ import ArrowSquareDown from 'phosphor-svelte/lib/ArrowSquareDown';
17
19
  import type { IconColor } from '../icons';
18
20
 
19
21
  export type ActivityIconType =
@@ -27,6 +29,8 @@
27
29
  | 'stop'
28
30
  | 'warning'
29
31
  | 'success'
32
+ | 'door-opened'
33
+ | 'door-closed'
30
34
  | 'export-succeeded'
31
35
  | 'export-failed';
32
36
 
@@ -49,6 +53,8 @@
49
53
  stop: Stop,
50
54
  warning: Warning,
51
55
  success: Check,
56
+ 'door-opened': ArrowSquareUp,
57
+ 'door-closed': ArrowSquareDown,
52
58
  'export-succeeded': DownloadSimple,
53
59
  'export-failed': DownloadSimple,
54
60
  };
@@ -64,6 +70,8 @@
64
70
  stop: 'icon-secondary',
65
71
  warning: 'icon-warning',
66
72
  success: 'icon-secondary',
73
+ 'door-opened': 'icon-warning',
74
+ 'door-closed': 'icon-secondary',
67
75
  'export-succeeded': 'icon-secondary',
68
76
  'export-failed': 'icon-danger',
69
77
  };
@@ -1,5 +1,5 @@
1
1
  import type { Component } from 'svelte';
2
- export type ActivityIconType = 'add' | 'capture' | 'delete' | 'edit' | 'failed' | 'pause' | 'start' | 'stop' | 'warning' | 'success' | 'export-succeeded' | 'export-failed';
2
+ export type ActivityIconType = 'add' | 'capture' | 'delete' | 'edit' | 'failed' | 'pause' | 'start' | 'stop' | 'warning' | 'success' | 'door-opened' | 'door-closed' | 'export-succeeded' | 'export-failed';
3
3
  interface Props {
4
4
  icon: ActivityIconType;
5
5
  size?: number | string;
@@ -0,0 +1,2 @@
1
+ /* Auto-generated safelist — do not edit manually */
2
+ @source inline("-rotate-90 [&>*>.control-button]:flex-col [&>*]:flex-1 [&>*]:flex-none [&>*]:rounded-md! [&>*]:rounded-xl [&>svg]:h-4 [&>svg]:h-5 [&>svg]:w-4 [&>svg]:w-5 badge-error badge-md badge-neutral badge-progress badge-sm badge-success badge-warning bg-accent bg-accent-hover bg-accent-inverse bg-accent-inverse-hover bg-base bg-base-inverse bg-blue bg-blue-hover bg-blue-inverse bg-blue-inverse-hover bg-danger bg-danger-hover bg-danger-inverse bg-danger-inverse-hover bg-dark-accent bg-dark-accent-hover bg-dark-accent-inverse bg-dark-accent-inverse-hover bg-dark-base bg-dark-base-inverse bg-dark-blue bg-dark-blue-hover bg-dark-danger bg-dark-danger-hover bg-dark-danger-inverse bg-dark-danger-inverse-hover bg-dark-lilac bg-dark-lilac-hover bg-dark-lime bg-dark-lime-hover bg-dark-neutral bg-dark-neutral-darker bg-dark-neutral-darker-hover bg-dark-neutral-hover bg-dark-orange bg-dark-orange-hover bg-dark-overlay bg-dark-pear bg-dark-pear-hover bg-dark-pink bg-dark-pink-hover bg-dark-plum bg-dark-plum-hover bg-dark-primary bg-dark-secondary bg-dark-sky bg-dark-sky-hover bg-dark-success bg-dark-success-hover bg-dark-success-inverse bg-dark-success-inverse-hover bg-dark-warning bg-dark-warning-hover bg-dark-warning-inverse bg-dark-warning-inverse-hover bg-lilac bg-lilac-hover bg-lilac-inverse bg-lilac-inverse-hover bg-lime bg-lime-hover bg-lime-inverse bg-lime-inverse-hover bg-neutral bg-neutral-darker bg-neutral-darker-hover bg-neutral-hover bg-neutral-inverse bg-neutral-inverse-hover bg-orange bg-orange-hover bg-orange-inverse bg-orange-inverse-hover bg-overlay bg-pear bg-pear-hover bg-pear-inverse bg-pear-inverse-hover bg-pink bg-pink-hover bg-pink-inverse bg-pink-inverse-hover bg-plum bg-plum-hover bg-plum-inverse bg-plum-inverse-hover bg-sky bg-sky-hover bg-sky-inverse bg-sky-inverse-hover bg-success bg-success-hover bg-success-inverse bg-success-inverse-hover bg-surface bg-surface-secondary bg-warning bg-warning-hover bg-warning-inverse bg-warning-inverse-hover border-axis border-blue-inverse border-danger border-dark-danger border-dark-focus border-dark-hover border-dark-input border-dark-interactive border-dark-static border-focus border-hover border-input border-interactive border-interactive-inverse border-lime-inverse border-orange-inverse border-pink-inverse border-static border-static-inverse border-white data-[disabled]:opacity-50 data-[disabled]:pointer-events-none data-[highlighted]:bg-neutral data-[highlighted]:text-accent-foreground group-first:invisible group-last:invisible h-[calc(100%-26px)] hover:bg-accent-hover hover:bg-accent-inverse-hover hover:bg-blue-hover hover:bg-blue-inverse-hover hover:bg-danger-hover hover:bg-danger-inverse-hover hover:bg-dark-accent-hover hover:bg-dark-accent-inverse-hover hover:bg-dark-blue-hover hover:bg-dark-danger-hover hover:bg-dark-danger-inverse-hover hover:bg-dark-lilac-hover hover:bg-dark-lime-hover hover:bg-dark-neutral-darker-hover hover:bg-dark-neutral-hover hover:bg-dark-orange-hover hover:bg-dark-pear-hover hover:bg-dark-pink-hover hover:bg-dark-plum-hover hover:bg-dark-sky-hover hover:bg-dark-success-hover hover:bg-dark-success-inverse-hover hover:bg-dark-warning-hover hover:bg-dark-warning-inverse-hover hover:bg-lilac-hover hover:bg-lilac-inverse-hover hover:bg-lime-hover hover:bg-lime-inverse-hover hover:bg-neutral-darker-hover hover:bg-neutral-hover hover:bg-neutral-inverse-hover hover:bg-orange-hover hover:bg-orange-inverse-hover hover:bg-pear-hover hover:bg-pear-inverse-hover hover:bg-pink-hover hover:bg-pink-inverse-hover hover:bg-plum-hover hover:bg-plum-inverse-hover hover:bg-sky-hover hover:bg-sky-inverse-hover hover:bg-success-hover hover:bg-success-inverse-hover hover:bg-warning-hover hover:bg-warning-inverse-hover leading-4 leading-5 leading-6 leading-7 lg:block md:flex outline-dark-focus outline-dark-hover outline-dark-input outline-dark-interactive outline-dark-static outline-focus outline-hover outline-input outline-interactive outline-static ring-1 ring-[#12192a1a] ring-axis ring-blue-inverse ring-danger ring-dark-danger ring-dark-focus ring-dark-hover ring-dark-input ring-dark-interactive ring-dark-static ring-focus ring-hover ring-input ring-interactive ring-interactive-inverse ring-lime-inverse ring-orange-inverse ring-pink-inverse ring-static ring-static-inverse ring-white shadow-container shadow-focus shadow-hover shadow-input shadow-menu sm:gap-2 sm:w-[460px] table-auto table-fixed text-accent text-blue text-danger text-dark-accent text-dark-blue text-dark-danger text-dark-lilac text-dark-lime text-dark-orange text-dark-pear text-dark-pink text-dark-plum text-dark-primary text-dark-primary-inverse text-dark-secondary text-dark-secondary-inverse text-dark-sky text-dark-success text-dark-tertiary text-dark-tertiary-inverse text-dark-warning text-icon-accent text-icon-blue text-icon-danger text-icon-lilac text-icon-lime text-icon-orange text-icon-pear text-icon-pink text-icon-plum text-icon-primary text-icon-primary-inverse text-icon-secondary text-icon-secondary-inverse text-icon-sky text-icon-success text-icon-tertiary text-icon-warning text-icon-white text-lilac text-lime text-orange text-pear text-pink text-plum text-primary text-primary-inverse text-secondary text-secondary-inverse text-sky text-success text-tertiary text-tertiary-inverse text-warning tooltip-bottom tooltip-left tooltip-right tooltip-top transform translate-y-[2px] w-[calc(100%-72px-72px)]");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reshape-biotech/design-system",
3
- "version": "2.7.46",
3
+ "version": "2.7.48",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build",
@@ -19,11 +19,13 @@
19
19
  "dist",
20
20
  "!dist/**/*.test.*",
21
21
  "!dist/**/*.spec.*",
22
+ "safelist.css",
22
23
  "base.css"
23
24
  ],
24
25
  "sideEffects": [
25
26
  "**/*.css",
26
27
  "./dist/app.css",
28
+ "./dist/safelist.css",
27
29
  "./dist/base.css"
28
30
  ],
29
31
  "svelte": "./dist/index.js",
@@ -372,6 +374,11 @@
372
374
  "./safelist-source": {
373
375
  "import": "./dist/safelist-source.js",
374
376
  "default": "./dist/safelist-source.js"
377
+ },
378
+ "./safelist.css": {
379
+ "style": "./dist/safelist.css",
380
+ "import": "./dist/safelist.css",
381
+ "default": "./dist/safelist.css"
375
382
  }
376
383
  },
377
384
  "peerDependencies": {
package/safelist.css ADDED
@@ -0,0 +1 @@
1
+ @import './dist/safelist.css';