diff --git a/apps/sim/app/_styles/globals.css b/apps/sim/app/_styles/globals.css index ab696279ffe..2048673ec50 100644 --- a/apps/sim/app/_styles/globals.css +++ b/apps/sim/app/_styles/globals.css @@ -844,59 +844,6 @@ input[type="search"]::-ms-clear { } } -@keyframes notification-enter { - from { - opacity: 0; - transform: translateX(calc(var(--stack-offset, 0px) - 8px)) scale(0.97); - } - to { - opacity: 1; - transform: translateX(var(--stack-offset, 0px)) scale(1); - } -} - -@keyframes notification-countdown { - from { - stroke-dashoffset: 0; - } - to { - stroke-dashoffset: 34.56; - } -} - -@keyframes notification-exit { - from { - opacity: 1; - transform: translateX(var(--stack-offset, 0px)) scale(1); - } - to { - opacity: 0; - transform: translateX(calc(var(--stack-offset, 0px) + 8px)) scale(0.97); - } -} - -@keyframes toast-enter { - from { - opacity: 0; - transform: translateX(var(--stack-offset, 0px)) translateY(8px) scale(0.97); - } - to { - opacity: 1; - transform: translateX(var(--stack-offset, 0px)) translateY(0) scale(1); - } -} - -@keyframes toast-exit { - from { - opacity: 1; - transform: translateX(var(--stack-offset, 0px)) translateY(0) scale(1); - } - to { - opacity: 0; - transform: translateX(var(--stack-offset, 0px)) translateY(8px) scale(0.97); - } -} - /* WandPromptBar status indicator */ @keyframes smoke-pulse { 0%, diff --git a/apps/sim/app/playground/page.tsx b/apps/sim/app/playground/page.tsx index 1cc5ddf50b3..bd5a2ebb64f 100644 --- a/apps/sim/app/playground/page.tsx +++ b/apps/sim/app/playground/page.tsx @@ -78,9 +78,11 @@ import { type TagItem, Textarea, TimePicker, + ToastProvider, Tooltip, Trash, Trash2, + toast, Undo, Wrap, ZoomIn, @@ -164,809 +166,910 @@ export default function PlaygroundPage() { } return ( - -
-
- - - - - Go back - -
-
- - - - - {isDarkMode ? 'Light mode' : 'Dark mode'} - -
-
-
-

- EMCN Component Playground -

-

- All emcn UI components and their variants -

+ + +
+
+ + + + + Go back +
- - {/* Button */} -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - {/* ButtonGroup */} -
- - - cURL - Python - JavaScript - - - - - Option 1 - Option 2 - - - - - Option 1 - Option 2 - - - - - Option 1 - Option 2 - - - - - Only Option - - -
- - {/* Badge */} -
- - Default - - - Outline - - - Type - - - Green - - With Dot - - - - Red - - With Dot - - - - Blue - - With Dot - - - - Blue Secondary - - - Purple - - - Orange - - - Amber - - - Teal - - - Cyan - - - Gray - - - Gray Secondary - - - Small - Medium - Large - -
- - {/* Input */} -
- - - - - - -
- - {/* TagInput */} -
- -
- { - const isValid = value.includes('@') && value.includes('.') - setTagItems((prev) => [...prev, { value, isValid }]) - return isValid - }} - onRemove={(_, index) => { - setTagItems((prev) => prev.filter((_, i) => i !== index)) - }} - placeholder='Enter emails...' - placeholderWithTags='Add another' - /> -
-
- -
- true} - onRemove={() => {}} - placeholder='Add tags' - placeholderWithTags='Add another' - triggerKeys={['Enter', ',']} - /> -
-
- -
- false} - onRemove={() => {}} - placeholder='Disabled input' - disabled - /> -
-
-
- - {/* Textarea */} -
-