Skip to content

Feature/react #201

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 185 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
84de3b0
360-degree viewer
cobycloud Dec 10, 2024
d7f72ca
accordion
cobycloud Dec 10, 2024
4a79852
react/ActionableList
cobycloud Dec 10, 2024
7c2cb2d
react/ActionSheet
cobycloud Dec 10, 2024
15bd6a6
ActivityIndicators
cobycloud Dec 10, 2024
7c29d60
AddMemberButton
cobycloud Dec 10, 2024
1cc2f6f
AdminViewScheduler
cobycloud Dec 10, 2024
91cfb50
AreaChart
cobycloud Dec 10, 2024
41fc472
AttachmentIcon
cobycloud Dec 10, 2024
2504e69
react/AudioPlayer
cobycloud Dec 10, 2024
e371901
react/AudioPlayerAdvanced
cobycloud Dec 10, 2024
f73e14f
react/AudioWaveformDisplay
cobycloud Dec 10, 2024
e385d6f
react/Avatar
cobycloud Dec 10, 2024
5598c98
react/Badge
cobycloud Dec 10, 2024
652c8aa
react/BadgeWithCounts
cobycloud Dec 10, 2024
76622e0
react/Banner
cobycloud Dec 10, 2024
0410734
react/BarChart
cobycloud Dec 10, 2024
b350969
react/BasicCard
cobycloud Dec 10, 2024
e6a8802
react/BatteryLevelIndicator
cobycloud Dec 10, 2024
3e6d1f8
react/BottomNNavigationBar
cobycloud Dec 10, 2024
1022c24
react/BoxPlot
cobycloud Dec 10, 2024
c17f724
react/Breadcrumb
cobycloud Dec 10, 2024
5c42538
react/BrushTool
cobycloud Dec 10, 2024
1c37e4d
react/BubbleChart
cobycloud Dec 10, 2024
6a1b3cd
react/Button
cobycloud Dec 10, 2024
d1054d6
react/CalendarView
cobycloud Dec 10, 2024
76de38b
react/CandlestickChart
cobycloud Dec 10, 2024
4ba75f5
react/Canvass
cobycloud Dec 10, 2024
6d974e8
react/Captcha
cobycloud Dec 10, 2024
18c3f80
react/Carx
cobycloud Dec 10, 2024
9d19f55
react/CardActions
cobycloud Dec 10, 2024
df45e57
del
cobycloud Dec 10, 2024
4e050ab
react/ZoomTool
cobycloud Dec 10, 2024
16d5324
react/ZoomControls
cobycloud Dec 10, 2024
3408d12
react/SankeyDiagram
cobycloud Dec 10, 2024
ae23033
react/ScatterPlot
cobycloud Dec 10, 2024
69e8d3e
react/Sroll___
cobycloud Dec 10, 2024
8138d53
react/Search____
cobycloud Dec 10, 2024
c44b651
react/Sidebar
cobycloud Dec 10, 2024
d42c76f
react/SingleChoicePoll
cobycloud Dec 10, 2024
2936c8f
react/Skeleton____
cobycloud Dec 10, 2024
e9a1dea
react/Card
cobycloud Dec 10, 2024
cfbe08f
react/DonutChart
cobycloud Dec 10, 2024
51462fb
react/DragAndDrop_____
cobycloud Dec 10, 2024
52cb65b
react/EmojiReactionPoll
cobycloud Dec 10, 2024
9859472
react/Event____
cobycloud Dec 10, 2024
6d5c1c6
react/Expandable____
cobycloud Dec 10, 2024
8f0673c
react/FileUpload
cobycloud Dec 10, 2024
8ff7c99
react/Filter____
cobycloud Dec 10, 2024
26146b5
react/FlipCard
cobycloud Dec 10, 2024
7652cce
react/Group____
cobycloud Dec 10, 2024
2fff704
react/Interactive_____
cobycloud Dec 10, 2024
81b3465
react/Map_______
cobycloud Dec 10, 2024
ee49870
react/Header
cobycloud Dec 10, 2024
d9e59d9
react/Pagination____
cobycloud Dec 10, 2024
b0aefa4
react/Carousel
cobycloud Dec 10, 2024
20d9a3a
react/Chat____
cobycloud Dec 10, 2024
16083a1
reacvt/CurrentLocation
cobycloud Dec 10, 2024
4032471
react/Data_____
cobycloud Dec 10, 2024
6aff049
react/DropDownMenu
cobycloud Dec 11, 2024
b99697e
react/Erasertool
cobycloud Dec 11, 2024
09b7a57
react/FavoritesList
cobycloud Dec 11, 2024
7d195ef
react/GuageChart
cobycloud Dec 11, 2024
6c250e0
react/Grid
cobycloud Dec 11, 2024
106cf36
react/Heatmap
cobycloud Dec 11, 2024
8926620
react/IconButton
cobycloud Dec 11, 2024
347c2d2
react/ImageSlider
cobycloud Dec 11, 2024
aa68141
react/ImageChoicePoll
cobycloud Dec 11, 2024
f435c83
react/LineChart
cobycloud Dec 11, 2024
1b61d2a
react/LayerPanel
cobycloud Dec 11, 2024
d0ef62a
react/LiveResultsPoll
cobycloud Dec 11, 2024
cabea78
react/LoadingSpinner
cobycloud Dec 11, 2024
58e8c9e
react/Media____
cobycloud Dec 11, 2024
c2f2f11
react/Message_____
cobycloud Dec 11, 2024
25a1964
react/MultiselectList
cobycloud Dec 11, 2024
c66a947
react/Notification
cobycloud Dec 11, 2024
4117e07
react/PasswordConfirmationField
cobycloud Dec 11, 2024
d222a8f
react/Progress_____
cobycloud Dec 11, 2024
1980106
react/RadarChart
cobycloud Dec 11, 2024
ab499ed
react/RatingStars
cobycloud Dec 11, 2024
ee5cb2b
react/RouteDisplay
cobycloud Dec 11, 2024
f90b0e6
react/Slider
cobycloud Dec 11, 2024
42f27f8
react/StarRating
cobycloud Dec 11, 2024
d57c98b
react/Tabs
cobycloud Dec 11, 2024
1053b07
react/Thread______
cobycloud Dec 11, 2024
c51f122
react/Timeline_____
cobycloud Dec 11, 2024
1efabcc
react/Treemap
cobycloud Dec 11, 2024
0c0cff5
react/FillTool
cobycloud Dec 11, 2024
9aaad32
feature/Date____
cobycloud Dec 11, 2024
7ce855f
react/DateAndTimePicker
cobycloud Dec 11, 2024
35285a9
react/CountdownTimer
cobycloud Dec 11, 2024
7691810
react/ContextualNavigation
cobycloud Dec 11, 2024
5e42eef
react/Context_____
cobycloud Dec 11, 2024
cd5e3bb
react/Checkbox
cobycloud Dec 11, 2024
c4af81f
react/Chips
cobycloud Dec 12, 2024
32b3fee
react/CheckList
cobycloud Dec 12, 2024
b4db699
react/CollapsibleMenuList
cobycloud Dec 12, 2024
b80884f
react/ColorPicker
cobycloud Dec 12, 2024
dad648e
react/CommandPalette
cobycloud Dec 12, 2024
50dc693
react/Hero
cobycloud Dec 12, 2024
baa8aba
react/RankingPoll
cobycloud Dec 12, 2024
e60e336
react/ReadReceipt
cobycloud Dec 12, 2024
21a912a
react/RichTextEditor
cobycloud Dec 12, 2024
465e9c9
react/Section
cobycloud Dec 12, 2024
dcb6b19
react/SendButton
cobycloud Dec 12, 2024
fcb27e0
react/Text____
cobycloud Dec 12, 2024
1a02491
react/Tooltip
cobycloud Dec 12, 2024
f58d118
react/Toast
cobycloud Dec 12, 2024
cb00cdd
react/Typing_____
cobycloud Dec 12, 2024
950738a
react/Upload
cobycloud Dec 12, 2024
faf4483
react/UserAvatar
cobycloud Dec 12, 2024
7964fd7
react/Video____
cobycloud Dec 12, 2024
619a777
react/YesOrNoPoll
cobycloud Dec 12, 2024
b85a115
react/TreeviewList
cobycloud Dec 12, 2024
d05505e
react/Stepper
cobycloud Dec 12, 2024
7a84ee7
react/WizardNavigation
cobycloud Dec 20, 2024
c5ab205
react/Waterfall
cobycloud Dec 20, 2024
8fa9be6
react/VirtualizedList
cobycloud Dec 20, 2024
2cc5af7
react/ValidationMessages
cobycloud Dec 20, 2024
6c61f86
react/ToggleSwitch
cobycloud Dec 20, 2024
080a2e3
react/UndoRedoButtons
cobycloud Dec 20, 2024
0755809
Container.css
cobycloud Dec 20, 2024
3b16f47
react/UnreadMessageCounter
cobycloud Dec 20, 2024
96f420d
react/Sticky
cobycloud Dec 20, 2024
1d57224
react/DeckOfCards
cobycloud Dec 20, 2024
6264fd2
react/DiscardPile
cobycloud Dec 20, 2024
c326969
react/HandofCards
cobycloud Dec 20, 2024
a40f707
react/TagFilter
cobycloud Dec 20, 2024
37fa87b
react/LoadMorebuttonInList
cobycloud Dec 20, 2024
03d18fd
react
cobycloud Dec 23, 2024
229fd10
Fix: Export the `ImageViewerProps` to be used in the 360-DegreeImageV…
Erick559 Dec 28, 2024
9521f91
Fix: Remove the `<style scoped>` tags.
Erick559 Dec 28, 2024
4080ec9
Fix: migrate React story to TSX format
Erick559 Dec 28, 2024
0ebc126
Merge branch 'feature/react' into feature/react
Erick559 Dec 28, 2024
2011084
Fix: Add TypeScript support for React story files
Erick559 Dec 29, 2024
d90ba64
Merge branch 'feature/react' of github.com:Erick559/swarmakit into fe…
Erick559 Dec 29, 2024
fadbc9a
Fix: Export AccordionProps interface for better TypeScript integration
Erick559 Jan 6, 2025
38f2aa4
Refactor: Update Accordion story to use StoryFn type for better TypeS…
Erick559 Jan 6, 2025
88bd9d6
Refactor: Update ActionableList story to use StoryFn type for better …
Erick559 Jan 6, 2025
2cdf2d8
Fix: Export ActionableListProps interface for better TypeScript integ…
Erick559 Jan 6, 2025
758eb4b
Fix: Export ActionSheetProps interface for better TypeScript integration
Erick559 Jan 6, 2025
ebb707a
Refactor: Update ActionSheet story to use StoryFn type for better Typ…
Erick559 Jan 6, 2025
1cb51c1
Fix: Export ActivityIndicatorsProps interface for better TypeScript i…
Erick559 Jan 6, 2025
18facbf
Refactor: Update ActivityIndicators story to use StoryFn type for bet…
Erick559 Jan 6, 2025
b9255c6
Fix: Export AddMemberButtonProps interface for better TypeScript inte…
Erick559 Jan 6, 2025
dab2875
Refactor: Update AddMemberButton story to use StoryFn type for better…
Erick559 Jan 6, 2025
6d2639d
Fix: Export AdminViewSchedulerProps interface for better TypeScript i…
Erick559 Jan 6, 2025
9ae2032
Refactor: Update AdminViewScheduler story to use StoryFn type for bet…
Erick559 Jan 6, 2025
007027d
Fix: Export AreaChartProps interface for better TypeScript integration
Erick559 Jan 6, 2025
73eb679
Refactor: Update AreaChart story to use StoryFn type for better TypeS…
Erick559 Jan 6, 2025
513cb4c
Fix: Export AttachmentIconProps interface for better TypeScript integ…
Erick559 Jan 6, 2025
144cca6
Refactor: Update AttachmentIcon story to use StoryFn type for better …
Erick559 Jan 6, 2025
2ba7f4d
Fix: Export AudioPlayerProps interface for better TypeScript integration
Erick559 Jan 6, 2025
4c60c7f
Refactor: Update AudioPlayer story to use StoryFn type for better Typ…
Erick559 Jan 6, 2025
a2a3a48
Fix: Export AudioPlayerAdvancedProps interface for better TypeScript …
Erick559 Jan 6, 2025
1428a04
Refactor: Update AudioPlayerAdvanced story to use StoryFn type for be…
Erick559 Jan 6, 2025
8240b3e
Refactor: Update AudioWaveformDisplay story to use StoryFn type for b…
Erick559 Jan 6, 2025
2361f80
Fix: Export AudioWaveformDisplay interface for better TypeScript inte…
Erick559 Jan 6, 2025
f139f12
Fix: Export AvatarProps interface for better TypeScript integration
Erick559 Jan 6, 2025
20901c1
Refactor: Update Avatar story to use StoryFn type for better TypeScri…
Erick559 Jan 6, 2025
0b1a90b
Fix: Export BadgeProps interface for better TypeScript integration
Erick559 Jan 6, 2025
ac45747
Refactor: Update Badge story to use StoryFn type for better TypeScrip…
Erick559 Jan 6, 2025
db47e21
Fix: Export BadgeWithCountProps interface for better TypeScript integ…
Erick559 Jan 13, 2025
687c637
Refactor: Update BadgeWithCount story to use StoryFn type for better …
Erick559 Jan 13, 2025
2ff6ab0
Refactor: Update Banner story to use StoryFn type for better TypeScri…
Erick559 Jan 13, 2025
dc726dd
Fix: Export BannerProps interface for better TypeScript integration
Erick559 Jan 13, 2025
314b591
Fix: Export BarChartProps interface for better TypeScript integration
Erick559 Jan 13, 2025
6f02b3b
Refactor: Update BarChart story to use StoryFn type for better TypeSc…
Erick559 Jan 13, 2025
e2dea6e
Fix: Export BasicCardProps interface for better TypeScript integration
Erick559 Jan 13, 2025
a4b3c1d
Refactor: Update BasicCard story to use StoryFn type for better TypeS…
Erick559 Jan 13, 2025
0c706a6
Merge pull request #217 from Erick559/feature/react
cobycloud Jan 17, 2025
6d087ef
Merge pull request #218 from Erick559/fix/react/Accordion
cobycloud Jan 17, 2025
81f05f5
Merge pull request #219 from Erick559/fix/react/ActionableList
cobycloud Jan 17, 2025
bf0e5e6
Merge pull request #220 from Erick559/fix/react/ActionSheet
cobycloud Jan 17, 2025
0041b09
Merge pull request #221 from Erick559/fix/react/ActivityIndicators
cobycloud Jan 17, 2025
b1af7df
Merge pull request #222 from Erick559/fix/react/AddMemberButon
cobycloud Jan 17, 2025
b0975a2
Merge pull request #224 from Erick559/fix/react/AttachmentIcon
cobycloud Jan 17, 2025
0c7bc7e
Merge pull request #225 from Erick559/fix/react/AudioPlayer
cobycloud Jan 17, 2025
b3d2dbd
Merge pull request #226 from Erick559/fix/react/AudioPlayerAdvanced
cobycloud Jan 17, 2025
d2fb662
Merge pull request #227 from Erick559/fix/react/AudioWaveformDisplay
cobycloud Jan 17, 2025
cce452d
Merge pull request #228 from Erick559/fix/react/Avatar
cobycloud Jan 17, 2025
a404e55
Merge pull request #229 from Erick559/fix/react/Badge
cobycloud Jan 17, 2025
4aa3c8d
Merge pull request #230 from Erick559/fix/react/BadgeWithCounts
cobycloud Jan 17, 2025
f2134fb
Merge pull request #231 from Erick559/fix/react/Banner
cobycloud Jan 17, 2025
5ddc880
Merge pull request #232 from Erick559/fix/react/BasicCard
cobycloud Jan 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
60 changes: 24 additions & 36 deletions libs/react/src/App.css
Original file line number Diff line number Diff line change
@@ -1,42 +1,30 @@
#root {
max-width: 1280px;
margin: 0 auto;
padding: 2rem;
text-align: center;
}

max-width: 1280px;
margin: 0 auto;
padding: 2rem;
text-align: center
}
.logo {
height: 6em;
padding: 1.5em;
will-change: filter;
transition: filter 300ms;
}
.logo:hover {
filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.react:hover {
filter: drop-shadow(0 0 2em #61dafbaa);
}

height: 6em;
padding: 1.5em;
will-change: filter;
transition: filter 300ms
}
@keyframes logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}

from {
transform: rotate(0deg);
} to {
transform: rotate(360deg);
}
}
@media (prefers-reduced-motion: no-preference) {
a:nth-of-type(2) .logo {
animation: logo-spin infinite 20s linear;
}
}

a:nth-of-type(2) .logo {
animation: logo-spin infinite 20s linear
}
}
.card {
padding: 2em;
}

padding: 2em
}
.read-the-docs {
color: #888;
}
color: #888
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
.image-viewer {
width: var(--viewer-width, 100%);
height: var(--viewer-height, 400px);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
position: relative
}
.image-viewer img {
width: 100%;
height: auto;
transition: transform 0.3s ease
}
.zoomed img {
transform: scale(var(--zoom-scale, 1.5))
}
.loading {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-weight: var(--loading-font-weight, bold)
}
@media (max-width: 600px) {
.image-viewer {
height: var(--viewer-height-mobile, 300px)
}
}
@media (min-width: 601px) and (max-width: 768px) {
.image-viewer {
height: var(--viewer-height-tablet, 350px)
}
}
@media (min-width: 769px) and (max-width: 1024px) {
.image-viewer {
height: var(--viewer-height-large-tablet, 400px)
}
}
@media (min-width: 1025px) {
.image-viewer {
height: var(--viewer-height-desktop, 500px)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import React from 'react';
import { Meta, StoryFn } from '@storybook/react';
import DegreeImageViewer, { ImageViewerProps } from './360-DegreeImageViewer';

export default {
title: 'component/Media/360-DegreeImageViewer',
component: DegreeImageViewer,
tags: ['autodocs'],
} as Meta;

const Template: StoryFn<ImageViewerProps> = (args) => <DegreeImageViewer {...args} />;

export const Default = Template.bind({});
Default.args = {
images: Array.from({ length: 36 }, (_, i) => `/images/frame${i + 1}.jpg`),
isRotating: false,
isZoomed: false,
isLoading: false,
};

export const Rotating = Template.bind({});
Rotating.args = {
...Default.args,
isRotating: true,
};

export const Paused = Template.bind({});
Paused.args = {
...Default.args,
isRotating: false,
};

export const ZoomInOut = Template.bind({});
ZoomInOut.args = {
...Default.args,
isZoomed: true,
};

export const Loading = Template.bind({});
Loading.args = {
...Default.args,
isLoading: true,
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import React, { useState, useEffect } from 'react';

export interface ImageViewerProps {
images: string[];
isRotating: boolean;
isZoomed: boolean;
isLoading: boolean;
}

const DegreeImageViewer: React.FC<ImageViewerProps> = ({ images, isRotating, isZoomed, isLoading }) => {
const [currentIndex, setCurrentIndex] = useState(0);

useEffect(() => {
if (isRotating) {
const interval = setInterval(() => {
setCurrentIndex((prevIndex) => (prevIndex + 1) % images.length);
}, 100);
return () => clearInterval(interval);
}
}, [isRotating, images.length]);

const zoomClass = isZoomed ? 'zoomed' : '';

return (
<div className={`image-viewer ${zoomClass}`}>
{isLoading ? (
<div className="loading">Loading...</div>
) : (
<img src={images[currentIndex]} alt={`Frame ${currentIndex}`} />
)}
</div>
);
};

export default DegreeImageViewer;
51 changes: 51 additions & 0 deletions libs/react/src/components/Accordion/Accordion.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
.accordion-title {
width: 100%;
background: var(--accordion-bg, #f7f7f7);
padding: var(--accordion-padding, 10px);
text-align: left;
cursor: pointer;
transition: background 0.3s ease;
border: none;
outline: none;
font-size: var(--accordion-font-size, 16px)
}
.accordion-content {
background: var(--accordion-content-bg, #fff);
padding: var(--accordion-content-padding, 10px);
font-size: var(--accordion-content-font-size, 14px)
}
.accordion-title:hover {
background: var(--accordion-hover-bg, #e2e2e2)
}
@media (max-width: 600px) {
.accordion-title {
font-size: 14px
}
.accordion-content {
font-size: 12px
}
}
@media (min-width: 601px) and (max-width: 768px) {
.accordion-title {
font-size: 15px
}
.accordion-content {
font-size: 13px
}
}
@media (min-width: 769px) and (max-width: 1024px) {
.accordion-title {
font-size: 16px
}
.accordion-content {
font-size: 14px
}
}
@media (min-width: 1025px) {
.accordion-title {
font-size: 17px
}
.accordion-content {
font-size: 15px
}
}
39 changes: 39 additions & 0 deletions libs/react/src/components/Accordion/Accordion.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import React from 'react';
import { Meta, StoryFn } from '@storybook/react';
import Accordion, { AccordionProps } from './Accordion';

export default {
title: 'component/Lists/Accordion',
component: Accordion,
tags: ['autodocs'],
} as Meta;

const Template: StoryFn<AccordionProps> = (args) => <Accordion {...args} />;

export const Default = Template.bind({});
Default.args = {
title: 'Accordion Title',
content: 'This is the accordion content.',
isOpen: false,
};

export const Open = Template.bind({});
Open.args = {
title: 'Accordion Title',
content: 'This is the accordion content.',
isOpen: true,
};

export const Closed = Template.bind({});
Closed.args = {
title: 'Accordion Title',
content: 'This is the accordion content.',
isOpen: false,
};

export const Hover = Template.bind({});
Hover.args = {
title: 'Accordion Title',
content: 'This is the accordion content.',
isOpen: false,
};
35 changes: 35 additions & 0 deletions libs/react/src/components/Accordion/Accordion.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import React, { useState } from 'react';

export interface AccordionProps {
title: string;
content: string;
isOpen?: boolean;
}

const Accordion: React.FC<AccordionProps> = ({ title, content, isOpen = false }) => {
const [open, setOpen] = useState(isOpen);

const toggleAccordion = () => {
setOpen(!open);
};

return (
<div className="accordion">
<button
className="accordion-title"
onClick={toggleAccordion}
aria-expanded={open}
aria-controls="accordion-content"
>
{title}
</button>
{open && (
<div id="accordion-content" className="accordion-content">
{content}
</div>
)}
</div>
);
};

export default Accordion;
60 changes: 60 additions & 0 deletions libs/react/src/components/ActionSheet/ActionSheet.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
.action-sheet {
position: fixed;
bottom: 0;
left: 0;
right: 0;
transition: transform 0.3s ease;
background: var(--action-sheet-bg, #fff);
z-index: 1000
}
.action-sheet.open {
transform: translatey(0)
}
.action-sheet.closed {
transform: translatey(100%)
}
.action-sheet-backdrop {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: var(--action-sheet-backdrop-bg, rgba(0, 0, 0, 0.5))
}
.action-sheet-content {
padding: var(--action-sheet-content-padding, 16px)
}
.action-list {
list-style: none;
padding: 0;
margin: 0
}
.action-item {
margin-bottom: var(--action-item-margin-bottom, 8px)
}
.action-button {
width: 100%;
padding: var(--action-button-padding, 12px);
background: var(--action-button-bg, #f7f7f7);
border: none;
cursor: pointer;
transition: background-color 0.3s ease
}
.action-button:hover {
background: var(--action-button-hover-bg, #e0e0e0)
}
@media (max-width: 576px) {
.action-sheet-content {
padding: var(--action-sheet-content-padding-sm, 12px)
}
}
@media (min-width: 577px) and (max-width: 768px) {
.action-sheet-content {
padding: var(--action-sheet-content-padding-md, 14px)
}
}
@media (min-width: 769px) {
.action-sheet-content {
padding: var(--action-sheet-content-padding-lg, 16px)
}
}
Loading
Loading