Packages
petal_components
2.8.2
4.6.2
4.6.1
4.6.0
4.5.0
4.4.0
4.3.0
4.2.1
4.2.0
4.1.2
4.1.1
4.1.0
4.0.12
4.0.11
4.0.10
4.0.6
4.0.5
4.0.4
4.0.3
4.0.1
3.2.2
3.2.1
3.2.0
3.1.0
3.0.2
3.0.1
3.0.0
2.9.3
2.9.2
retired
2.9.1
retired
2.9.0
retired
2.8.4
2.8.3
2.8.2
2.8.1
2.8.0
2.7.4
2.7.3
2.7.2
2.7.1
2.7.0
2.6.1
2.6.0
2.5.2
2.5.1
2.5.0
2.4.3
2.4.2
2.4.1
2.4.0
2.3.0
2.2.1
2.2.0
2.1.2
2.1.1
2.1.0
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.9.3
1.9.2
1.9.1
1.9.0
1.8.0
1.7.1
1.7.0
1.6.2
1.6.1
1.6.0
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.14
1.2.13
1.2.12
1.2.11
1.2.10
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.19.10
0.19.9
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.7
0.17.6
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.0
0.14.1
0.14.0
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.8
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.0
Shadcn-style Phoenix LiveView components that AI assistants can actually use. Pair with the MCP server so AI coding tools can inspect the real component API.
Current section
Files
Jump to
Current section
Files
assets/default.css
/* Container */
.pc-container {
@apply w-full mx-auto sm:px-6 lg:px-8;
}
.pc-container--sm {
@apply max-w-3xl;
}
.pc-container--md {
@apply max-w-5xl;
}
.pc-container--lg {
@apply max-w-7xl;
}
.pc-container--xl {
@apply max-w-[85rem];
}
.pc-container--full {
@apply max-w-full;
}
.pc-container--mobile-padded {
@apply px-4;
}
/* Buttons (New) */
.pc-button {
@apply inline-flex items-center justify-center font-medium transition duration-150 ease-in-out border rounded-md focus:outline-none;
}
/* Buttons - sizes */
.pc-button--xs {
@apply text-xs leading-4 px-2.5 py-1.5;
}
.pc-button--sm {
@apply px-3 py-2 text-sm leading-4;
}
.pc-button--md {
@apply px-4 py-2 text-sm leading-5;
}
.pc-button--lg {
@apply px-4 py-2 text-base leading-6;
}
.pc-button--xl {
@apply px-6 py-3 text-base leading-6;
}
/* Buttons - border radius */
.pc-button--radius-none {
@apply rounded-none;
}
.pc-button--radius-sm {
@apply rounded;
}
.pc-button--radius-md {
@apply rounded-md;
}
.pc-button--radius-lg {
@apply rounded-lg;
}
.pc-button--radius-xl {
@apply rounded-xl;
}
.pc-button--radius-full {
@apply rounded-full;
}
/* Buttons - colors */
.pc-button--primary {
@apply text-white border-transparent bg-primary-600 hover:bg-primary-700 focus:bg-primary-700 active:bg-primary-800 focus:shadow-primary-500/50;
}
.pc-button--primary-light {
@apply bg-primary-100 text-primary-800 border-primary-100 hover:bg-primary-200 hover:border-primary-200 active:bg-primary-300 focus:bg-primary-200 dark:bg-primary-200 dark:border-primary-200 dark:hover:border-primary-300 dark:text-primary-800 dark:hover:bg-primary-300 dark:active:bg-primary-400 dark:active:border-primary-400;
}
.pc-button--primary-outline {
@apply border-primary-400 dark:border-primary-400 dark:active:border-primary-400 dark:hover:border-primary-300 dark:hover:text-primary-300 dark:hover:bg-transparent dark:text-primary-400 hover:border-primary-600 text-primary-600 hover:text-primary-700 active:bg-primary-200 hover:bg-primary-50 focus:border-primary-700 focus:shadow-primary-500/50;
}
.pc-button--primary-inverted {
@apply border-primary-400 dark:border-primary-400 dark:hover:border-primary-700 dark:hover:text-white dark:hover:bg-primary-700 dark:text-primary-400 hover:border-primary-600 text-primary-600 hover:text-white active:bg-primary-700 hover:bg-primary-600 focus:border-primary-700 focus:shadow-primary-500/50;
}
.pc-button--primary-shadow {
@apply text-white border-transparent shadow-xl bg-primary-600 hover:bg-primary-700 focus:bg-primary-700 active:bg-primary-800 focus:shadow-primary-500/50 shadow-primary-500/30 dark:hover:shadow-primary-600/30 dark:focus:shadow-primary-600/30 dark:active:shadow-primary-700/30;
}
.pc-button--primary-ghost {
@apply bg-transparent border-transparent text-primary-800 hover:bg-primary-100 hover:text-primary-800 active:bg-primary-200 focus:bg-transparent dark:text-primary-300 dark:hover:bg-primary-900 dark:hover:text-primary-300 dark:active:bg-primary-700 dark:focus:bg-transparent;
}
.pc-button--secondary {
@apply text-white border-transparent bg-secondary-600 hover:bg-secondary-700 focus:bg-secondary-700 active:bg-secondary-800 focus:shadow-secondary-500/50;
}
.pc-button--secondary-light {
@apply bg-secondary-100 text-secondary-800 border-secondary-100 hover:bg-secondary-200 hover:border-secondary-200 active:bg-secondary-300 focus:bg-secondary-200 dark:bg-secondary-200 dark:border-secondary-200 dark:hover:border-secondary-300 dark:text-secondary-800 dark:hover:bg-secondary-300 dark:active:bg-secondary-400 dark:active:border-secondary-400;
}
.pc-button--secondary-outline {
@apply border-secondary-400 dark:border-secondary-400 dark:active:border-secondary-400 dark:hover:border-secondary-300 dark:hover:text-secondary-300 dark:hover:bg-transparent dark:text-secondary-400 hover:border-secondary-600 text-secondary-600 hover:text-secondary-700 active:bg-secondary-200 hover:bg-secondary-50 focus:border-secondary-700 focus:shadow-secondary-500/50;
}
.pc-button--secondary-inverted {
@apply border-secondary-400 dark:border-secondary-400 dark:hover:border-secondary-700 dark:hover:text-white dark:hover:bg-secondary-700 dark:text-secondary-400 hover:border-secondary-600 text-secondary-600 hover:text-white active:bg-secondary-700 hover:bg-secondary-600 focus:border-secondary-700 focus:shadow-secondary-500/50;
}
.pc-button--secondary-shadow {
@apply text-white border-transparent shadow-xl bg-secondary-600 hover:bg-secondary-700 focus:bg-secondary-700 active:bg-secondary-800 focus:shadow-secondary-500/50 shadow-secondary-500/30 dark:hover:shadow-secondary-600/30 dark:focus:shadow-secondary-600/30 dark:active:shadow-secondary-700/30;
}
.pc-button--secondary-ghost {
@apply bg-transparent border-transparent text-secondary-800 hover:bg-secondary-100 hover:text-secondary-800 active:bg-secondary-200 focus:bg-transparent dark:text-secondary-300 dark:hover:bg-secondary-900 dark:hover:text-secondary-300 dark:active:bg-secondary-700 dark:focus:bg-transparent;
}
.pc-button--white {
@apply text-gray-700 bg-white border-gray-300 hover:text-gray-900 hover:border-gray-400 hover:bg-gray-50 focus:outline-none focus:border-gray-400 focus:bg-gray-100 focus:text-gray-900 active:border-gray-400 active:bg-gray-200 active:text-black dark:bg-white dark:hover:bg-gray-200 dark:hover:border-transparent dark:border-transparent;
}
.pc-button--white-outline {
@apply text-gray-600 border-gray-400 dark:border-gray-300 dark:active:border-gray-400 dark:active:bg-transparent dark:focus:bg-transparent dark:bg-transparent dark:hover:border-gray-200 dark:hover:text-gray-200 dark:hover:bg-transparent dark:text-gray-300 hover:border-gray-600 hover:text-gray-700 active:bg-gray-100 hover:bg-gray-50 focus:bg-gray-50 focus:border-gray-500 active:border-gray-600;
}
.pc-button--white-inverted {
@apply text-gray-600 border-gray-400 dark:border-white dark:hover:border-gray-700 dark:hover:text-black dark:hover:bg-white dark:text-gray-300 hover:border-gray-600 hover:text-black active:bg-gray-700 hover:bg-white focus:border-gray-700 focus:shadow-gray-500/50;
}
.pc-button--white-shadow {
@apply text-gray-700 bg-white border-gray-300 shadow-xl hover:text-gray-900 hover:border-gray-400 hover:bg-gray-50 focus:outline-none focus:border-gray-400 focus:bg-gray-100 focus:text-gray-900 active:border-gray-400 active:bg-gray-200 dark:bg-white dark:hover:bg-gray-200 dark:hover:border-transparent dark:border-transparent active:text-black shadow-gray-500/30 dark:shadow-gray-200/30 dark:hover:shadow-gray-300/30 dark:focus:shadow-gray-300/30 dark:active:shadow-gray-400/30;
}
.pc-button--pure-white {
@apply text-gray-700 bg-white border-transparent border-white hover:text-gray-900 hover:border-transparent hover:bg-gray-50 focus:outline-none focus:border-transparent focus:bg-gray-100 focus:text-gray-900 active:border-transparent active:bg-gray-200 active:text-black dark:bg-white dark:hover:bg-gray-200 dark:hover:border-transparent dark:border-transparent;
}
.pc-button--info {
@apply text-white border-transparent bg-info-600 hover:bg-info-700 active:bg-info-800 focus:bg-info-700;
}
.pc-button--info-light {
@apply bg-info-100 text-info-800 border-info-100 hover:bg-info-200 hover:border-info-200 active:bg-info-300 focus:bg-info-200 dark:bg-info-200 dark:border-info-200 dark:hover:border-info-300 dark:text-info-800 dark:hover:bg-info-300 dark:active:bg-info-400 dark:active:border-info-400;
}
.pc-button--info-outline {
@apply text-info-600 border-info-400 dark:border-info-400 dark:active:border-info-400 dark:hover:border-info-300 dark:hover:text-info-300 dark:hover:bg-transparent dark:text-info-400 hover:border-info-600 hover:text-info-700 active:border-info-600 focus:text-info-600 active:text-info-700 active:bg-info-100 hover:bg-info-50 focus:border-info-700;
}
.pc-button--info-inverted {
@apply text-info-600 border-info-400 dark:border-info-400 dark:hover:border-info-700 dark:hover:text-white dark:hover:bg-info-700 dark:text-info-400 hover:border-info-600 hover:text-white active:bg-info-800 hover:bg-info-600 focus:border-info-700 focus:shadow-info-500/50;
}
.pc-button--info-shadow {
@apply text-white border-transparent shadow-xl bg-info-600 hover:bg-info-700 focus:bg-info-700 active:bg-info-800 focus:shadow-info-500/50 shadow-info-500/30 dark:hover:shadow-info-600/30 dark:focus:shadow-info-600/30 dark:active:shadow-info-700/30;
}
.pc-button--info-ghost {
@apply bg-transparent border-transparent text-info-800 hover:bg-info-100 hover:text-info-800 active:bg-info-200 focus:bg-transparent dark:text-info-300 dark:hover:bg-info-900 dark:hover:text-info-300 dark:active:bg-info-700 dark:focus:bg-transparent;
}
.pc-button--success {
@apply text-white border-transparent bg-success-600 hover:bg-success-700 active:bg-success-800 focus:bg-success-700;
}
.pc-button--success-light {
@apply bg-success-100 text-success-800 border-success-100 hover:bg-success-200 hover:border-success-200 active:bg-success-300 focus:bg-success-200 dark:bg-success-200 dark:border-success-200 dark:hover:border-success-300 dark:text-success-800 dark:hover:bg-success-300 dark:active:bg-success-400 dark:active:border-success-400;
}
.pc-button--success-outline {
@apply text-success-600 border-success-400 dark:border-success-400 dark:active:border-success-500 dark:hover:border-success-300 dark:hover:text-success-300 dark:hover:bg-transparent dark:text-success-400 hover:border-success-600 hover:text-success-700 active:border-success-600 focus:text-success-600 active:text-success-700 active:bg-success-100 hover:bg-success-50 focus:border-success-700;
}
.pc-button--success-inverted {
@apply text-success-600 border-success-400 dark:border-success-400 dark:hover:border-success-700 dark:hover:text-white dark:hover:bg-success-700 dark:text-success-400 hover:border-success-600 hover:text-white active:bg-success-800 hover:bg-success-600 focus:border-success-700 focus:shadow-success-500/50;
}
.pc-button--success-shadow {
@apply text-white border-transparent shadow-xl bg-success-600 hover:bg-success-700 active:bg-success-800 focus:bg-success-700 focus:shadow-success-500/50 shadow-success-500/30 dark:hover:shadow-success-600/30 dark:focus:shadow-success-600/30 dark:active:shadow-success-700/30;
}
.pc-button--success-ghost {
@apply bg-transparent border-transparent text-success-800 hover:bg-success-100 hover:text-success-800 active:bg-success-200 focus:bg-transparent dark:text-success-300 dark:hover:bg-success-900 dark:hover:text-success-300 dark:active:bg-success-700 dark:focus:bg-transparent;
}
.pc-button--warning {
@apply text-white border-transparent bg-warning-600 hover:bg-warning-700 active:bg-warning-800 focus:bg-warning-700;
}
.pc-button--warning-light {
@apply bg-warning-100 text-warning-800 border-warning-100 hover:bg-warning-200 hover:border-warning-200 active:bg-warning-300 focus:bg-warning-200 dark:bg-warning-200 dark:border-warning-200 dark:hover:border-warning-300 dark:text-warning-800 dark:hover:bg-warning-300 dark:active:bg-warning-400 dark:active:border-warning-400;
}
.pc-button--warning-outline {
@apply text-warning-600 border-warning-400 dark:border-warning-400 dark:active:border-warning-500 dark:hover:border-warning-300 dark:hover:text-warning-300 dark:hover:bg-transparent dark:text-warning-400 hover:border-warning-600 hover:text-warning-700 active:border-warning-600 focus:text-warning-600 active:text-warning-700 active:bg-warning-100 hover:bg-warning-50 focus:border-warning-700;
}
.pc-button--warning-inverted {
@apply text-warning-600 border-warning-400 dark:border-warning-400 dark:hover:border-warning-700 dark:hover:text-white dark:hover:bg-warning-700 dark:text-warning-400 hover:border-warning-600 hover:text-white active:bg-warning-800 hover:bg-warning-600 focus:border-warning-700 focus:shadow-warning-500/50;
}
.pc-button--warning-shadow {
@apply text-white border-transparent shadow-xl bg-warning-600 hover:bg-warning-700 focus:bg-warning-700 active:bg-warning-800 focus:shadow-warning-500/50 shadow-warning-500/30 dark:hover:shadow-warning-600/30 dark:focus:shadow-warning-600/30 dark:active:shadow-warning-700/30;
}
.pc-button--warning-ghost {
@apply bg-transparent border-transparent text-warning-800 hover:bg-warning-100 hover:text-warning-800 active:bg-warning-200 focus:bg-transparent dark:text-warning-300 dark:hover:bg-warning-900 dark:hover:text-warning-300 dark:active:bg-warning-700 dark:focus:bg-transparent;
}
.pc-button--danger {
@apply text-white border-transparent bg-danger-600 hover:bg-danger-700 active:bg-danger-800 focus:bg-danger-700;
}
.pc-button--danger-light {
@apply bg-danger-100 text-danger-800 border-danger-100 hover:bg-danger-200 hover:border-danger-200 active:bg-danger-300 focus:bg-danger-200 dark:bg-danger-200 dark:border-danger-200 dark:hover:border-danger-300 dark:text-danger-800 dark:hover:bg-danger-300 dark:active:bg-danger-400 dark:active:border-danger-400;
}
.pc-button--danger-outline {
@apply text-danger-600 border-danger-400 dark:active:border-danger-400 dark:border-danger-400 dark:hover:border-danger-300 dark:hover:text-danger-300 dark:hover:bg-transparent dark:text-danger-400 hover:border-danger-600 hover:text-danger-700 active:bg-danger-200 active:border-danger-700 hover:bg-danger-50 focus:border-danger-700;
}
.pc-button--danger-inverted {
@apply text-danger-600 border-danger-400 dark:border-danger-400 dark:hover:border-danger-700 dark:hover:text-white dark:hover:bg-danger-700 dark:text-danger-400 hover:border-danger-600 hover:text-white active:bg-danger-800 hover:bg-danger-600 focus:border-danger-700 focus:shadow-danger-500/50;
}
.pc-button--danger-shadow {
@apply text-white border-transparent shadow-xl bg-danger-600 hover:bg-danger-700 focus:bg-danger-700 active:bg-danger-800 focus:shadow-danger-500/50 shadow-danger-500/30 dark:hover:shadow-danger-600/30 dark:focus:shadow-danger-600/30 dark:active:shadow-danger-700/30;
}
.pc-button--danger-ghost {
@apply bg-transparent border-transparent text-danger-800 hover:bg-danger-100 hover:text-danger-800 active:bg-danger-200 focus:bg-transparent dark:text-danger-300 dark:hover:bg-danger-900 dark:hover:text-danger-300 dark:active:bg-danger-700 dark:focus:bg-transparent;
}
.pc-button--gray {
@apply text-white bg-gray-600 border-transparent active:bg-gray-800 hover:bg-gray-700 focus:bg-gray-700;
}
.pc-button--gray-light {
@apply text-gray-800 bg-gray-100 border-gray-100 hover:bg-gray-200 hover:border-gray-200 active:bg-gray-300 focus:bg-gray-200 dark:bg-gray-200 dark:border-gray-200 dark:hover:border-gray-300 dark:text-gray-800 dark:hover:bg-gray-300 dark:active:bg-gray-400 dark:active:border-gray-400;
}
.pc-button--gray-outline {
@apply text-gray-600 border-gray-400 dark:border-gray-400 dark:hover:border-gray-300 dark:active:border-gray-400 dark:hover:text-gray-300 dark:hover:bg-transparent dark:text-gray-400 hover:border-gray-600 hover:text-gray-700 active:bg-gray-200 active:border-gray-700 hover:bg-gray-50 focus:border-gray-700;
}
.pc-button--gray-inverted {
@apply text-gray-600 border-gray-400 dark:border-gray-400 dark:hover:border-gray-700 dark:hover:text-white dark:hover:bg-gray-700 dark:text-gray-400 hover:border-gray-600 hover:text-white active:bg-gray-700 hover:bg-gray-600 focus:border-gray-700 focus:shadow-gray-500/50;
}
.pc-button--gray-shadow {
@apply text-white bg-gray-600 border-transparent shadow-xl active:bg-gray-800 hover:bg-gray-700 focus:bg-gray-700 focus:shadow-gray-500/50 shadow-gray-500/30 dark:hover:shadow-gray-600/30 dark:focus:shadow-gray-600/30 dark:active:shadow-gray-700/30;
}
.pc-button--gray-ghost {
@apply text-gray-800 bg-transparent border-transparent hover:bg-gray-100 hover:text-gray-800 active:bg-gray-200 focus:bg-transparent dark:text-gray-300 dark:hover:bg-gray-800 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:bg-transparent;
}
.pc-button--light {
@apply text-gray-900 bg-white border-gray-300 hover:text-gray-900 hover:border-gray-400 hover:bg-gray-50 focus:outline-none focus:border-gray-400 focus:bg-gray-100 focus:text-gray-900 active:border-gray-400 active:bg-gray-200 active:text-black dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:active:border-gray-700 dark:active:bg-gray-800;
}
.pc-button--light-outline {
@apply text-gray-900 border-gray-300 dark:hover:bg-transparent hover:border-gray-400 active:bg-gray-100 hover:bg-gray-50 focus:bg-gray-50 focus:border-gray-500 active:border-gray-600 dark:text-white dark:border-gray-600 dark:active:border-gray-600 dark:hover:border-gray-500 dark:active:bg-transparent dark:focus:bg-transparent dark:bg-transparent;
}
.pc-button--light-inverted {
@apply text-gray-900 border-gray-300 hover:border-gray-600 hover:text-white active:bg-gray-700 hover:bg-gray-600 focus:border-gray-700 focus:shadow-gray-500/50 dark:hover:text-black dark:hover:bg-white dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:border-white dark:active:bg-gray-300 dark:active:border-gray-300 dark:focus:shadow-gray-600/50;
}
.pc-button--light-shadow {
@apply text-gray-700 bg-white border-gray-300 shadow-xl hover:text-gray-900 hover:border-gray-400 hover:bg-gray-50 focus:outline-none focus:border-gray-400 focus:bg-gray-100 focus:text-gray-900 active:border-gray-400 active:bg-gray-200 dark:hover:border-transparent dark:border-transparent active:text-black dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:active:border-gray-700 dark:active:bg-gray-800 shadow-gray-500/30 dark:shadow-gray-600/30 dark:hover:shadow-gray-500/30 dark:focus:shadow-gray-500/30 dark:active:shadow-gray-600/30;
}
.pc-button--dark {
@apply text-white border-transparent bg-gray-950 dark:text-gray-950 dark:bg-white dark:hover:text-gray-900 dark:hover:bg-gray-100 dark:focus:outline-none dark:focus:bg-gray-200 dark:focus:text-gray-900 dark:active:bg-gray-300 dark:active:text-black hover:bg-gray-800 active:bg-gray-900;
}
.pc-button--dark-outline {
@apply bg-white dark:bg-gray-950 dark:border-white text-gray-950 border-gray-950 dark:hover:bg-gray-950 dark:hover:border-gray-300 dark:active:bg-gray-950 hover:bg-gray-50 dark:focus:bg-gray-950 dark:active:border-gray-400 dark:text-white active:border-gray-600 hover:border-gray-500 active:bg-gray-100 focus:bg-transparent;
}
.pc-button--dark-inverted {
@apply border-gray-950 text-gray-950 hover:border-transparent hover:text-white active:bg-gray-800 hover:bg-gray-950 focus:shadow-gray-500/50 dark:hover:bg-white dark:hover:text-black dark:bg-gray-950 dark:text-white dark:active:bg-gray-200 dark:active:border-gray-200 dark:border-white;
}
.pc-button--dark-shadow {
@apply text-white border-transparent shadow-xl dark:text-gray-950 bg-gray-950 active:bg-gray-900 hover:bg-gray-800 focus:bg-gray-800 focus:shadow-gray-500/50 dark:bg-white dark:hover:bg-gray-200 dark:hover:border-transparent dark:border-transparent active:text-white shadow-gray-500/30 dark:shadow-gray-200/30 dark:hover:shadow-gray-300/30 dark:focus:shadow-gray-300/30 dark:active:shadow-gray-400/30;
}
/* Buttons - loading */
.pc-button--loading {
@apply flex items-center gap-2 cursor-not-allowed whitespace-nowrap;
}
.pc-button__spinner-icon {
@apply animate-spin;
}
.pc-button__spinner-icon--xs {
@apply w-3 h-3;
}
.pc-button__spinner-icon--sm {
@apply w-4 h-4;
}
.pc-button__spinner-icon--md {
@apply w-5 h-5;
}
.pc-button__spinner-icon--lg {
@apply w-5 h-5;
}
.pc-button__spinner-icon--xl {
@apply w-6 h-6;
}
/* Buttons - with icon */
.pc-button--with-icon {
@apply flex items-center gap-2 whitespace-nowrap;
}
/* Icon Button */
.pc-icon-button {
@apply inline-block p-2;
}
.pc-icon-button__inner {
@apply flex flex-col items-center;
}
.pc-icon-button__inner--tooltip {
@apply relative;
}
.pc-icon-button__tooltip {
@apply absolute flex-col items-center invisible mb-6 transition-opacity duration-300 -translate-y-full opacity-0 -top-1 group-hover/pc-icon-button:flex group-hover/pc-icon-button:visible group-hover/pc-icon-button:opacity-100;
}
.pc-icon-button__tooltip__text {
@apply relative z-10 p-2 text-xs leading-none text-white bg-gray-900 rounded-sm shadow-lg whitespace-nowrap dark:bg-gray-700;
}
.pc-icon-button__tooltip__arrow {
@apply w-3 h-3 -mt-2 rotate-45 bg-gray-900 dark:bg-gray-700;
}
/* Icon Buttons - colors */
.pc-icon-button--primary {
@apply text-primary-600 dark:text-primary-500;
}
.pc-icon-button--secondary {
@apply text-secondary-600 dark:text-secondary-500;
}
.pc-icon-button--gray {
@apply text-gray-600 dark:text-gray-500;
}
.pc-icon-button--info {
@apply text-info-600 dark:text-info-500;
}
.pc-icon-button--success {
@apply text-success-600 dark:text-success-500;
}
.pc-icon-button--warning {
@apply text-warning-600 dark:text-warning-500;
}
.pc-icon-button--danger {
@apply text-danger-600 dark:text-danger-500;
}
/* Icon Buttons - background colors */
.pc-icon-button-bg--primary {
@apply hover:bg-primary-50 dark:hover:bg-gray-800;
}
.pc-icon-button-bg--secondary {
@apply hover:bg-secondary-50 dark:hover:bg-gray-800;
}
.pc-icon-button-bg--gray {
@apply hover:bg-gray-100 dark:hover:bg-gray-800;
}
.pc-icon-button-bg--info {
@apply hover:bg-info-50 dark:hover:bg-gray-800;
}
.pc-icon-button-bg--success {
@apply hover:bg-success-50 dark:hover:bg-gray-800;
}
.pc-icon-button-bg--warning {
@apply hover:bg-warning-50 dark:hover:bg-gray-800;
}
.pc-icon-button-bg--danger {
@apply hover:bg-danger-50 dark:hover:bg-gray-800;
}
/* Icon Button - sizes */
.pc-icon-button--xs {
@apply w-9 h-9;
}
.pc-icon-button--sm {
@apply w-10 h-10;
}
.pc-icon-button--md {
@apply w-11 h-11;
}
.pc-icon-button--lg {
@apply w-12 h-12;
}
.pc-icon-button--xl {
@apply w-14 h-14;
}
/* Icon Buttons - border radius */
.pc-icon-button--radius-none {
@apply rounded-none;
}
.pc-icon-button--radius-sm {
@apply rounded;
}
.pc-icon-button--radius-md {
@apply rounded-md;
}
.pc-icon-button--radius-lg {
@apply rounded-lg;
}
.pc-icon-button--radius-xl {
@apply rounded-xl;
}
.pc-icon-button--radius-full {
@apply rounded-full;
}
/* Icon Button - loading */
.pc-icon-button-spinner--xs {
@apply w-5 h-5;
}
.pc-icon-button-spinner--sm {
@apply w-6 h-6;
}
.pc-icon-button-spinner--md {
@apply w-7 h-7;
}
.pc-icon-button-spinner--lg {
@apply w-8 h-8;
}
.pc-icon-button-spinner--xl {
@apply w-10 h-10;
}
/* Button - disabled */
.pc-button--disabled {
@apply opacity-50 cursor-not-allowed;
}
/* Button Group */
.pc-button-group {
@apply flex -space-x-px;
}
/* Button Group - Buttons */
.pc-button-group__button {
@apply inline-flex items-center justify-center;
}
/* Button Group - Default Styles */
.pc-button-group__button--default-styles {
@apply whitespace-nowrap;
@apply focus:ring-gray-200 focus:z-10;
@apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2;
@apply disabled:pointer-events-none disabled:opacity-50;
}
/* Button Group - Default Background and Border Styles */
.pc-button-group__button--bg-default {
@apply bg-white hover:bg-gray-100 dark:bg-gray-900 dark:hover:bg-gray-800;
@apply text-gray-800 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300;
}
.pc-button-group__button--border-default {
@apply border border-gray-200 dark:border-gray-800;
}
/* Button Group - Button Sizes */
.pc-button-group__button--xs {
@apply text-xs px-2.5 py-1.5 leading-4;
}
.pc-button-group__button--sm {
@apply px-3 py-2 text-sm leading-4;
}
.pc-button-group__button--md {
@apply px-4 py-2 text-sm leading-5;
}
.pc-button-group__button--lg {
@apply px-4 py-2 text-base leading-6;
}
.pc-button-group__button--xl {
@apply px-6 py-3 text-base leading-6;
}
/* Button Group - Font Weights */
.pc-button-group__button--font-normal {
@apply font-normal;
}
.pc-button-group__button--font-medium {
@apply font-medium;
}
.pc-button-group__button--font-semibold {
@apply font-semibold;
}
.pc-button-group__button--font-bold {
@apply font-bold;
}
/* Button Group - Button Positions */
.pc-button-group__button--rounded {
@apply rounded-md;
}
.pc-button-group__button--rounded-r-none {
@apply rounded-r-none rounded-l-md;
}
.pc-button-group__button--rounded-l-none {
@apply rounded-l-none rounded-r-md;
}
.pc-button-group__button--rounded-none {
@apply rounded-none;
}
/* Typography */
.pc-h1 {
@apply text-4xl font-extrabold leading-10 sm:text-5xl sm:tracking-tight lg:text-6xl;
}
.pc-h2 {
@apply text-2xl font-extrabold leading-10 sm:text-3xl;
}
.pc-h3 {
@apply text-xl font-bold leading-7 sm:text-2xl;
}
.pc-h4 {
@apply text-lg font-bold leading-6;
}
.pc-h5 {
@apply text-lg font-medium leading-6;
}
.pc-heading--color {
@apply text-gray-900 dark:text-white;
}
.pc-heading--underline {
@apply pb-2 border-b border-gray-200;
}
.pc-heading--margin {
@apply mb-3;
}
.pc-heading--margin {
@apply mb-3;
}
.pc-text {
@apply leading-5 text-gray-700 dark:text-gray-300;
}
.pc-p--margin {
@apply mb-2;
}
/* Badges */
.pc-badge {
@apply inline-flex items-center justify-center border rounded focus:outline-none;
}
/* Badges - with icon */
.pc-badge--with-icon {
@apply flex items-center gap-1 whitespace-nowrap;
}
/* Badges - sizes */
.pc-badge--sm {
@apply text-[0.625rem] font-semibold px-1.5;
}
.pc-badge--md {
@apply text-xs font-semibold px-2.5 py-0.5;
}
.pc-badge--lg {
@apply text-sm font-semibold px-2.5 py-0.5;
}
/* Badges - colors */
.pc-badge--primary-light {
@apply text-primary-800 bg-primary-100 border-primary-100 dark:bg-primary-200 dark:border-primary-200;
}
.pc-badge--primary-soft {
@apply text-primary-800 bg-primary-100 border-primary-100 dark:border-primary-900 dark:bg-primary-900 dark:text-primary-300;
}
.pc-badge--primary-dark {
@apply text-white bg-primary-600 border-primary-600;
}
.pc-badge--primary-outline {
@apply text-primary-600 border-primary-600 dark:text-primary-400 dark:border-primary-400;
}
.pc-badge--secondary-light {
@apply text-secondary-800 bg-secondary-100 border-secondary-100 dark:bg-secondary-200 dark:border-secondary-200;
}
.pc-badge--secondary-soft {
@apply text-secondary-800 bg-secondary-100 border-secondary-100 dark:border-secondary-900 dark:bg-secondary-800 dark:text-secondary-300;
}
.pc-badge--secondary-dark {
@apply text-white bg-secondary-600 border-secondary-600;
}
.pc-badge--secondary-outline {
@apply border text-secondary-600 border-secondary-600 dark:text-secondary-400 dark:border-secondary-400;
}
.pc-badge--info-light {
@apply text-info-800 bg-info-100 border-info-100 dark:bg-info-200 dark:border-info-200;
}
.pc-badge--info-soft {
@apply text-info-800 bg-info-100 border-info-100 dark:border-info-900 dark:bg-info-900 dark:text-info-300;
}
.pc-badge--info-dark {
@apply text-white bg-info-600 border-info-600;
}
.pc-badge--info-outline {
@apply border text-info-600 border-info-600 dark:text-info-400 dark:border-info-400;
}
.pc-badge--success-light {
@apply text-success-800 bg-success-100 border-success-100 dark:bg-success-200 dark:border-success-200;
}
.pc-badge--success-soft {
@apply text-success-800 bg-success-100 border-success-100 dark:border-success-900 dark:bg-success-900 dark:text-success-300;
}
.pc-badge--success-dark {
@apply text-white bg-success-600 border-success-600;
}
.pc-badge--success-outline {
@apply border text-success-600 border-success-600 dark:text-success-400 dark:border-success-400;
}
.pc-badge--warning-light {
@apply text-warning-800 bg-warning-100 border-warning-100 dark:bg-warning-200 dark:border-warning-200;
}
.pc-badge--warning-soft {
@apply text-warning-800 bg-warning-100 border-warning-100 dark:border-warning-900 dark:bg-warning-900 dark:text-warning-300;
}
.pc-badge--warning-dark {
@apply text-white bg-warning-600 border-warning-600;
}
.pc-badge--warning-outline {
@apply border text-warning-600 border-warning-600 dark:text-warning-400 dark:border-warning-400;
}
.pc-badge--danger-light {
@apply text-danger-800 bg-danger-100 border-danger-100 dark:bg-danger-200 dark:border-danger-200;
}
.pc-badge--danger-soft {
@apply text-danger-800 bg-danger-100 border-danger-100 dark:border-danger-900 dark:bg-danger-900 dark:text-danger-300;
}
.pc-badge--danger-dark {
@apply text-white bg-danger-600 border-danger-600;
}
.pc-badge--danger-outline {
@apply border text-danger-600 border-danger-600 dark:text-danger-400 dark:border-danger-400;
}
.pc-badge--gray-light {
@apply text-gray-800 bg-gray-100 border-gray-100 dark:bg-gray-200 dark:border-gray-200;
}
.pc-badge--gray-soft {
@apply text-gray-800 bg-gray-100 border-gray-100 dark:border-gray-700 dark:bg-gray-700 dark:text-gray-300;
}
.pc-badge--gray-dark {
@apply text-white bg-gray-600 border-gray-600 dark:bg-gray-700 dark:border-gray-700;
}
.pc-badge--gray-outline {
@apply text-gray-600 border border-gray-600 dark:text-gray-400 dark:border-gray-400;
}
/* Alerts */
.pc-alert {
@apply w-full grow-0;
}
.pc-alert__inner {
@apply flex items-start justify-between;
}
.pc-alert-base-classes {
@apply flex items-center w-full gap-3 px-4 py-2 text-sm rounded focus:outline-none;
}
.pc-alert__heading {
@apply pt-1 font-bold;
}
.pc-alert__label {
@apply py-1 font-medium;
}
.pc-alert__dismiss-button {
@apply flex p-2 hover:cursor-pointer hover:rounded;
}
/* Alerts - colors and variants */
/* Info variants */
.pc-alert--info-light {
@apply text-info-800 bg-info-100 dark:bg-info-200 dark:text-info-800;
}
.pc-alert--info-soft {
@apply text-info-800 bg-info-100 dark:bg-info-900 dark:text-info-300 dark:border dark:border-info-800;
}
.pc-alert--info-dark {
@apply text-white bg-info-600;
}
.pc-alert--info-outline {
@apply bg-white border text-info-600 dark:bg-transparent border-info-600 dark:text-info-400 dark:border-info-400;
}
/* Success variants */
.pc-alert--success-light {
@apply text-success-800 bg-success-100 dark:bg-success-200 dark:text-success-800;
}
.pc-alert--success-soft {
@apply text-success-800 bg-success-100 dark:bg-success-900 dark:text-success-300 dark:border dark:border-success-800;
}
.pc-alert--success-dark {
@apply text-white bg-success-600;
}
.pc-alert--success-outline {
@apply bg-white border text-success-600 dark:bg-transparent border-success-600 dark:text-success-400 dark:border-success-400;
}
/* Warning variants */
.pc-alert--warning-light {
@apply text-warning-800 bg-warning-100 dark:bg-warning-200 dark:text-warning-800;
}
.pc-alert--warning-soft {
@apply text-warning-800 bg-warning-100 dark:bg-warning-900 dark:text-warning-300 dark:border dark:border-warning-800;
}
.pc-alert--warning-dark {
@apply text-white bg-warning-600;
}
.pc-alert--warning-outline {
@apply bg-white border text-warning-600 dark:bg-transparent border-warning-600 dark:text-warning-400 dark:border-warning-400;
}
/* Danger variants */
.pc-alert--danger-light {
@apply text-danger-800 bg-danger-100 dark:bg-danger-200 dark:text-danger-800;
}
.pc-alert--danger-soft {
@apply text-danger-800 bg-danger-100 dark:bg-danger-900 dark:text-danger-300 dark:border dark:border-danger-800;
}
.pc-alert--danger-dark {
@apply text-white bg-danger-600;
}
.pc-alert--danger-outline {
@apply bg-white border text-danger-600 dark:bg-transparent border-danger-600 dark:text-danger-400 dark:border-danger-400;
}
/* Alerts - dismiss button variants */
/* Info dismiss button variants */
.pc-alert__dismiss-button--info-light {
@apply bg-info-100 dark:bg-info-200 hover:bg-info-200 dark:hover:bg-info-300 hover:text-info-800 dark:hover:text-info-800;
}
.pc-alert__dismiss-button--info-soft {
@apply bg-info-100 dark:bg-info-900 hover:bg-info-200 dark:hover:bg-info-800 hover:text-info-800 dark:hover:text-info-200;
}
.pc-alert__dismiss-button--info-dark {
@apply text-white bg-info-600 hover:bg-info-500;
}
.pc-alert__dismiss-button--info-outline {
@apply hover:bg-info-50 dark:hover:bg-gray-800 text-info-600 dark:text-info-400;
}
/* Success dismiss button variants */
.pc-alert__dismiss-button--success-light {
@apply bg-success-100 dark:bg-success-200 hover:bg-success-200 dark:hover:bg-success-300 hover:text-success-800 dark:hover:text-success-800;
}
.pc-alert__dismiss-button--success-soft {
@apply bg-success-100 dark:bg-success-900 hover:bg-success-200 dark:hover:bg-success-800 hover:text-success-800 dark:hover:text-success-200;
}
.pc-alert__dismiss-button--success-dark {
@apply text-white bg-success-600 hover:bg-success-500;
}
.pc-alert__dismiss-button--success-outline {
@apply hover:bg-success-50 dark:hover:bg-gray-800 text-success-600 dark:text-success-400;
}
/* Warning dismiss button variants */
.pc-alert__dismiss-button--warning-light {
@apply bg-warning-100 dark:bg-warning-200 hover:bg-warning-200 dark:hover:bg-warning-300 hover:text-warning-800 dark:hover:text-warning-800;
}
.pc-alert__dismiss-button--warning-soft {
@apply bg-warning-100 dark:bg-warning-900 hover:bg-warning-200 dark:hover:bg-warning-800 hover:text-warning-800 dark:hover:text-warning-200;
}
.pc-alert__dismiss-button--warning-dark {
@apply text-white bg-warning-600 hover:bg-warning-500;
}
.pc-alert__dismiss-button--warning-outline {
@apply hover:bg-warning-50 dark:hover:bg-gray-800 text-warning-600 dark:text-warning-400;
}
/* Danger dismiss button variants */
.pc-alert__dismiss-button--danger-light {
@apply bg-danger-100 dark:bg-danger-200 hover:bg-danger-200 dark:hover:bg-danger-300 hover:text-danger-800 dark:hover:text-danger-800;
}
.pc-alert__dismiss-button--danger-soft {
@apply bg-danger-100 dark:bg-danger-900 hover:bg-danger-200 dark:hover:bg-danger-800 hover:text-danger-800 dark:hover:text-danger-200;
}
.pc-alert__dismiss-button--danger-dark {
@apply text-white bg-danger-600 hover:bg-danger-500;
}
.pc-alert__dismiss-button--danger-outline {
@apply hover:bg-danger-50 dark:hover:bg-gray-800 text-danger-600 dark:text-danger-400;
}
/* Alerts - with icon */
.pc-alert__icon-container {
@apply self-start flex-shrink-0 pt-0.5 w-6 h-6;
}
/* Forms */
.pc-form-field-wrapper {
@apply mb-6;
}
.pc-form-field-wrapper--no-margin {
@apply mb-0;
}
.pc-form-field-wrapper--error input,
.pc-form-field-wrapper--error select,
.pc-form-field-wrapper--error textarea {
@apply border-danger-500 focus:border-danger-500 text-danger-900 placeholder-danger-700 bg-danger-50 dark:text-danger-100 dark:placeholder-danger-300 dark:bg-danger-900 focus:ring-danger-500;
}
.pc-form-field-wrapper--error input[type="checkbox"] {
@apply bg-danger-200 dark:bg-danger-700;
}
.pc-form-field-wrapper--error .pc-switch .pc-switch__fake-input {
@apply bg-danger-200 border-danger-500 dark:bg-danger-600 dark:border-danger-800;
}
.pc-form-field-wrapper--error .pc-radio-card .pc-radio-card__fake-input {
@apply bg-danger-200 dark:bg-danger-800 border-danger-500;
}
.pc-form-field-wrapper--error .pc-label,
.pc-form-field-wrapper--error .pc-checkbox-label {
@apply !text-danger-600 dark:!text-danger-200;
}
.pc-checkbox-label {
@apply inline-flex items-center gap-3 text-sm font-normal text-gray-900 cursor-pointer dark:text-gray-200;
}
.pc-label {
@apply block mb-2 text-sm font-medium text-gray-900 dark:text-gray-200;
}
.pc-label--for-checkbox {
@apply !mb-0 font-normal;
}
.pc-label--required:after {
color: #e32;
content: " *";
display: inline;
}
.pc-form-field-error {
@apply mt-1 text-xs italic text-danger-500;
}
.pc-form-help-text {
@apply mt-2 text-sm text-gray-500 dark:text-gray-400;
}
.pc-time-select {
@apply select-wrapper dark:text-white;
}
.pc-datetime-select {
@apply select-wrapper dark:text-white;
}
.pc-date-select {
@apply select-wrapper dark:text-white;
}
.pc-switch {
@apply relative inline-flex items-center justify-center flex-shrink-0 cursor-pointer;
}
.pc-switch--xs {
@apply w-6 h-3;
}
.pc-switch--sm {
@apply w-8 h-4;
}
.pc-switch--md {
@apply w-10 h-5;
}
.pc-switch--lg {
@apply w-12 h-6;
}
.pc-switch--xl {
@apply w-14 h-7;
}
.pc-switch__fake-input {
@apply absolute mx-auto transition-colors duration-200 ease-in-out bg-gray-200 border border-gray-300 rounded-full pointer-events-none dark:bg-gray-700 dark:border-gray-600 peer-checked:bg-primary-500;
}
.pc-switch__fake-input--xs {
@apply h-4 w-7;
}
.pc-switch__fake-input--sm {
@apply h-5 w-9;
}
.pc-switch__fake-input--md {
@apply h-6 w-11;
}
.pc-switch__fake-input--lg {
@apply h-7 w-[3.25rem];
}
.pc-switch__fake-input--xl {
@apply h-8 w-[3.75rem];
}
.pc-switch__fake-input-bg {
@apply absolute left-0 inline-block transition-transform duration-200 ease-in-out transform translate-x-0 bg-white rounded-full shadow pointer-events-none ring-0;
}
.pc-switch__fake-input-bg--xs {
@apply w-3 h-3;
@apply peer-checked:translate-x-3;
}
.pc-switch__fake-input-bg--sm {
@apply w-4 h-4;
@apply peer-checked:translate-x-4;
}
.pc-switch__fake-input-bg--md {
@apply w-5 h-5;
@apply peer-checked:translate-x-5;
}
.pc-switch__fake-input-bg--lg {
@apply w-6 h-6;
@apply peer-checked:translate-x-6;
}
.pc-switch__fake-input-bg--xl {
@apply w-7 h-7;
@apply peer-checked:translate-x-7;
}
.pc-text-input {
@apply block w-full border-gray-300 rounded-md shadow-sm focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:focus:border-primary-500 sm:text-sm disabled:bg-gray-100 disabled:cursor-not-allowed dark:bg-gray-800 dark:text-gray-300 dark:disabled:bg-gray-700 focus:outline-none;
}
/* Password Field Styles */
.pc-password-field-wrapper {
@apply relative;
}
.pc-password-field-input {
@apply pr-10;
}
.pc-password-field-toggle-button {
@apply absolute inset-y-0 right-0 flex items-center pr-3 text-gray-500;
}
.pc-password-field-toggle-icon-container {
@apply flex items-center;
}
.pc-password-field-toggle-icon {
@apply w-5 h-5 text-gray-400;
}
/* Copyable Field Styles */
.pc-copyable-field-wrapper {
@apply relative;
}
.pc-copyable-field-input {
@apply pr-10 cursor-text;
}
.pc-copyable-field-button {
@apply absolute inset-y-0 right-0 flex items-center pr-3 text-gray-500 bg-transparent border-none cursor-pointer;
}
.pc-copyable-field-icon-container {
@apply flex items-center;
}
.pc-copyable-field-icon {
@apply w-5 h-5 text-gray-400;
}
/* Clearable Field Styles */
.pc-clearable-field-input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: none;
appearance: none;
}
.pc-clearable-field-wrapper {
@apply relative;
}
.pc-clearable-field-input {
@apply pr-10;
}
.pc-clearable-field-button {
@apply absolute inset-y-0 right-0 flex items-center pr-3 text-gray-500 bg-transparent border-none cursor-pointer;
}
.pc-clearable-field-icon-container {
@apply flex items-center;
}
.pc-clearable-field-icon {
@apply w-5 h-5 text-gray-500 dark:text-gray-400;
}
/* Date and Time Field Styles */
.pc-date-input {
@apply pc-text-input;
@apply [-webkit-appearance:none] [&::-webkit-datetime-edit-fields-wrapper]:p-0 [&::-webkit-date-and-time-value]:text-black dark:[&::-webkit-date-and-time-value]:text-white pe-[40px];
}
.pc-date-input-wrapper {
@apply relative;
}
.pc-date-input-icon {
@apply absolute inset-y-0 right-0 flex items-center my-1 mr-3 bg-white pointer-events-none dark:bg-gray-800;
}
/* Add error state styles */
.pc-form-field-wrapper--error .pc-date-input-icon {
@apply bg-danger-50 dark:bg-danger-900;
}
/* Add disabled state styles */
.pc-form-field-wrapper:has(input:disabled) .pc-date-input-icon {
@apply bg-gray-100 dark:bg-gray-700;
}
.pc-date-picker-indicator {
@apply [&::-webkit-calendar-picker-indicator]:opacity-0;
@apply [&::-webkit-calendar-picker-indicator]:absolute;
@apply [&::-webkit-calendar-picker-indicator]:inset-y-0;
@apply [&::-webkit-calendar-picker-indicator]:right-0;
@apply [&::-webkit-calendar-picker-indicator]:w-10;
@apply [&::-webkit-calendar-picker-indicator]:h-full;
@apply [&::-webkit-calendar-picker-indicator]:cursor-pointer;
}
.pc-select {
@apply block w-full py-2 pl-3 pr-10 text-base border-gray-300 rounded-md cursor-pointer focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:focus:border-primary-500 disabled:bg-gray-100 disabled:cursor-not-allowed focus:outline-none sm:text-sm dark:disabled:bg-gray-700 dark:text-gray-300 dark:bg-gray-800;
}
.pc-file-input {
@apply text-sm rounded-md cursor-pointer focus:outline-none file:border-0 text-slate-500 file:text-primary-700 file:font-semibold file:px-4 file:py-2 file:mr-6 file:rounded-md hover:file:bg-primary-100 file:bg-primary-200 dark:file:bg-primary-300 hover:dark:file:bg-primary-200;
}
.pc-color-input {
@apply border-gray-300 cursor-pointer focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:focus:border-primary-500;
}
.pc-range-input {
@apply w-full border-gray-300 cursor-pointer focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:focus:border-primary-500;
}
.pc-checkbox {
@apply w-5 h-5 transition-all duration-150 ease-linear border-gray-300 rounded cursor-pointer text-primary-700 dark:bg-gray-800 dark:border-gray-600 disabled:bg-gray-300 dark:disabled:bg-gray-600 disabled:cursor-not-allowed;
}
.pc-checkbox-group {
@apply pt-2;
}
.pc-checkbox-group--row {
@apply flex flex-row gap-4 mb-3;
}
.pc-checkbox-group--col {
@apply flex flex-col gap-4 mb-3;
}
.pc-checkbox-group__item--row {
@apply inline-flex items-center gap-2 cursor-pointer;
}
.pc-checkbox-group__item--col {
@apply inline-flex items-center gap-3 cursor-pointer;
}
.pc-radio {
@apply w-4 h-4 border-gray-300 cursor-pointer text-primary-600 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-600;
}
.pc-radio-group {
@apply pt-2;
}
.pc-radio-group--row {
@apply flex flex-row gap-4 mb-3;
}
.pc-radio-group--col {
@apply flex flex-col gap-4 mb-3;
}
.pc-radio-group__item--row {
@apply inline-flex items-center gap-2 cursor-pointer;
}
.pc-radio-group__item--col {
@apply inline-flex items-center gap-3 cursor-pointer;
}
.pc-checkbox-group--empty-message,
.pc-radio-group--empty-message {
@apply text-sm;
}
/* Radio Card Styles */
.pc-radio-card-group {
@apply flex gap-4;
}
.pc-radio-card-group--row {
@apply flex-col sm:flex-row;
}
.pc-radio-card-group--col {
@apply flex-col;
}
.pc-radio-card {
@apply relative transition-all cursor-pointer select-none;
@apply flex items-center justify-center text-left text-gray-900 dark:text-white;
}
/* Radio Card Size Styles */
/* Apply padding to .pc-radio-card__content */
.pc-radio-card--sm > .pc-radio-card__content {
@apply px-4 py-2;
}
.pc-radio-card--md > .pc-radio-card__content {
@apply px-8 py-4;
}
.pc-radio-card--lg > .pc-radio-card__content {
@apply px-12 py-6;
}
/* Adjust text size for labels */
.pc-radio-card--sm .pc-radio-card__label {
@apply text-sm;
}
.pc-radio-card--md .pc-radio-card__label {
@apply text-base;
}
.pc-radio-card--lg .pc-radio-card__label {
@apply text-lg;
}
/* Adjust text size for descriptions */
.pc-radio-card--sm .pc-radio-card__description {
@apply text-xs;
}
.pc-radio-card--md .pc-radio-card__description {
@apply text-sm;
}
.pc-radio-card--lg .pc-radio-card__description {
@apply text-base;
}
.pc-radio-card--outline .pc-radio-card__fake-input {
@apply bg-white border border-gray-300;
@apply dark:bg-gray-800 dark:border-gray-600;
}
.pc-radio-card--outline:hover .pc-radio-card__fake-input {
@apply bg-gray-50 dark:bg-gray-800;
}
.pc-radio-card--classic .pc-radio-card__fake-input {
@apply bg-gray-100 border border-gray-100 dark:border-gray-800 dark:bg-gray-800;
}
.pc-radio-card--classic:hover .pc-radio-card__fake-input {
@apply bg-gray-50 dark:bg-gray-800;
}
/* Checked State Styles */
.pc-radio-card__input:checked ~ .pc-radio-card__fake-input {
@apply border-2 border-primary-500 bg-primary-50;
@apply dark:bg-gray-800;
}
/* Disabled State */
.pc-radio-card--disabled {
@apply opacity-50 cursor-not-allowed;
}
/* Input Styles */
.pc-radio-card__input {
@apply sr-only;
}
/* Fake Input Styles */
.pc-radio-card__fake-input {
@apply absolute inset-0 rounded-lg;
}
/* Content Styles */
.pc-radio-card__content {
@apply relative pointer-events-none;
}
/* Label Styles */
.pc-radio-card__label {
@apply font-semibold;
}
/* Description Styles */
.pc-radio-card__description {
@apply text-sm font-normal text-gray-600;
@apply dark:text-gray-400;
}
/* Adjust Description Font Size Based on Size */
.pc-radio-card--sm .pc-radio-card__description {
@apply text-xs;
}
.pc-radio-card--lg .pc-radio-card__description {
@apply text-base;
}
/* Apply styles when input is checked using peer-checked variants */
.pc-radio-card.peer-checked\\:border-primary-500 {
@apply border-primary-500;
}
.pc-radio-card.peer-checked\\:bg-primary-50 {
@apply bg-primary-50;
}
.pc-radio-card.dark\\:peer-checked\\:bg-primary-700 {
@apply dark:bg-primary-700;
}
/* Dropdown */
.pc-dropdown {
@apply relative inline-block text-left;
}
.pc-dropdown__chevron {
@apply w-5 h-5 ml-2 -mr-1 dark:text-gray-100;
}
.pc-dropdown__menu-items-wrapper {
@apply absolute z-30 w-56 mt-2 bg-white rounded-md shadow-lg dark:bg-gray-800 ring-1 ring-black ring-opacity-5 focus:outline-none;
}
.pc-dropdown__menu-items-wrapper-placement--left {
@apply right-0 origin-top-right;
}
.pc-dropdown__menu-items-wrapper-placement--right {
@apply left-0 origin-top-left;
}
.pc-dropdown__menu-item {
@apply flex items-center self-start justify-start w-full gap-2 px-4 py-2 text-sm text-left text-gray-700 transition duration-150 ease-in-out dark:hover:bg-gray-700 dark:text-gray-300 dark:bg-gray-800 hover:bg-gray-100;
}
.pc-dropdown__trigger-button--no-label {
@apply flex items-center text-gray-400 rounded-full hover:text-gray-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-primary-500;
}
.pc-dropdown__trigger-button--with-label {
@apply inline-flex justify-center w-full px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md shadow-sm dark:text-gray-300 dark:bg-gray-800 hover:dark:bg-gray-700 dark:border-gray-700 dark:focus:bg-gray-800 hover:bg-gray-50 focus:outline-none;
}
.pc-dropdown__trigger-button--with-label-and-trigger-element {
@apply align-middle;
}
.pc-dropdown__menu-item--disabled {
@apply text-gray-500 hover:bg-transparent;
}
.pc-dropdown__ellipsis {
@apply w-5 h-5;
}
/* Loading */
.pc-spinner--sm {
@apply w-5 h-5 shrink-0;
}
.pc-spinner--md {
@apply w-8 h-8 shrink-0;
}
.pc-spinner--lg {
@apply w-16 h-16 shrink-0;
}
/* Breadcrumbs */
.pc-breadcrumbs {
@apply flex items-center;
}
.pc-breadcrumb {
@apply flex text-gray-500 hover:underline dark:text-gray-400;
}
.pc-breadcrumbs__separator-slash {
@apply px-5 text-lg text-gray-300;
}
.pc-breadcrumbs__separator-chevron {
@apply px-3 text-gray-300;
}
.pc-breadcrumbs__separator-chevron__icon {
@apply w-6 h-6;
}
.pc-breadcrumb-icon {
@apply w-6 h-6 shrink-0;
}
/* Avatars */
.pc-avatar--with-image {
@apply object-cover rounded-full;
}
.pc-avatar--with-placeholder-icon {
@apply relative inline-block overflow-hidden bg-gray-100 rounded-full dark:bg-gray-700;
}
.pc-avatar--with-placeholder-initials {
@apply flex items-center justify-center font-semibold text-gray-500 uppercase bg-gray-100 rounded-full dark:bg-gray-700 dark:text-gray-300;
}
.pc-avatar-group {
@apply ring-white ring-2 dark:ring-gray-100;
}
.pc-avatar__placeholder-icon {
@apply relative w-full h-full bg-gray-300 top-[12%] scale-[1.15] transform !important;
}
/* Avatars - sizes */
.pc-avatar--xs {
@apply text-xs w-7 h-7;
}
.pc-avatar--sm {
@apply w-8 h-8 text-sm;
}
.pc-avatar--md {
@apply w-10 h-10 text-base;
}
.pc-avatar--lg {
@apply w-12 h-12 text-lg;
}
.pc-avatar--xl {
@apply text-xl w-14 h-14;
}
.pc-avatar-group--xs {
@apply relative z-0 flex -space-x-2;
}
.pc-avatar-group--sm {
@apply relative z-0 flex -space-x-3;
}
.pc-avatar-group--md {
@apply relative z-0 flex -space-x-4;
}
.pc-avatar-group--lg {
@apply relative z-0 flex -space-x-5;
}
.pc-avatar-group--xl {
@apply relative z-0 flex -space-x-6;
}
/* Progress */
.pc-progress {
@apply flex overflow-hidden;
}
.pc-progress__inner {
@apply flex flex-col justify-center;
}
/* Progress - label (xl only) */
.pc-progress__label {
@apply px-4 text-xs font-normal leading-6 text-center text-white whitespace-nowrap;
}
/* Progress - sizes */
.pc-progress--xs {
@apply h-1 rounded-sm;
}
.pc-progress--sm {
@apply h-2 rounded-md;
}
.pc-progress--md {
@apply h-3 rounded-md;
}
.pc-progress--lg {
@apply h-4 rounded-lg;
}
.pc-progress--xl {
@apply h-5 rounded-xl;
}
/* Progress - colors */
.pc-progress--primary {
@apply bg-primary-100 dark:bg-primary-900;
}
.pc-progress--secondary {
@apply bg-secondary-100 dark:bg-secondary-900;
}
.pc-progress--info {
@apply bg-info-100 dark:bg-info-900;
}
.pc-progress--success {
@apply bg-success-100 dark:bg-success-900;
}
.pc-progress--warning {
@apply bg-warning-100 dark:bg-warning-900;
}
.pc-progress--danger {
@apply bg-danger-100 dark:bg-danger-900;
}
.pc-progress--gray {
@apply bg-gray-100 dark:bg-gray-900;
}
.pc-progress__inner--primary {
@apply bg-primary-500;
}
.pc-progress__inner--secondary {
@apply bg-secondary-500;
}
.pc-progress__inner--info {
@apply bg-info-500;
}
.pc-progress__inner--success {
@apply bg-success-500;
}
.pc-progress__inner--warning {
@apply bg-warning-500;
}
.pc-progress__inner--danger {
@apply bg-danger-500;
}
.pc-progress__inner--gray {
@apply bg-gray-500;
}
/* Pagination */
.pc-pagination {
@apply flex;
}
.pc-pagination__inner {
@apply inline-flex -space-x-px text-sm font-medium;
}
.pc-pagination__item {
@apply inline-flex items-center justify-center leading-5 px-3.5 py-2 border border-gray-200 dark:border-gray-700;
}
.pc-pagination__item--is-current {
@apply text-gray-800 bg-gray-100 dark:bg-gray-800 dark:text-gray-300;
}
.pc-pagination__item--is-not-current {
@apply text-gray-600 bg-white hover:bg-gray-50 hover:text-gray-800 dark:bg-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-400;
}
.pc-pagination__item--current {
@apply inline-flex items-center justify-center leading-5 px-3.5 py-2 border border-gray-200 dark:border-gray-700;
}
.pc-pagination__item__previous {
@apply mr-2 inline-flex items-center justify-center rounded leading-5 px-2.5 py-2 bg-white enabled:hover:bg-gray-50 dark:bg-gray-900 enabled:dark:hover:bg-gray-800 border dark:border-gray-700 border-gray-200 text-gray-600 enabled:hover:text-gray-800 disabled:opacity-50;
}
.pc-pagination__item__previous__chevron {
/* !important is needed because heroicon class overrides width and height */
@apply w-5 h-5 text-gray-600 dark:text-gray-400 !important;
}
.pc-pagination__item__next {
@apply ml-2 inline-flex items-center justify-center rounded leading-5 px-2.5 py-2 bg-white enabled:hover:bg-gray-50 dark:bg-gray-900 enabled:dark:hover:bg-gray-800 dark:border-gray-700 border border-gray-200 text-gray-600 enabled:hover:text-gray-800 disabled:opacity-50;
}
.pc-pagination__item__next__chevron {
/* !important is needed because heroicon class overrides width and height */
@apply w-5 h-5 text-gray-600 dark:text-gray-400 !important;
}
.pc-pagination__item__ellipsis {
@apply inline-flex items-center justify-center leading-5 px-3.5 py-2 bg-white border dark:bg-gray-900 dark:border-gray-700 border-gray-200 text-gray-400;
}
/* Pagination - number(s) rounded box corner style */
.pc-pagination__item--with-single-box {
@apply rounded;
}
.pc-pagination__item--with-multiple-boxes--left {
@apply rounded-l;
}
.pc-pagination__item--with-multiple-boxes--right {
@apply rounded-r;
}
.pc-pagination__item--with-multiple-boxes--right {
@apply rounded-r;
}
/* Tabs */
.pc-tabs {
@apply flex gap-x-8 gap-y-2;
}
.pc-tabs--underlined {
@apply border-b border-gray-200 dark:border-gray-600;
}
/* Tabs - Pill */
.pc-tab__pill {
@apply flex items-center px-3 py-2 text-sm font-medium rounded-md whitespace-nowrap;
}
.pc-tab__pill--is-active {
@apply bg-primary-100 dark:bg-gray-800 text-primary-600 dark:text-primary-500;
}
.pc-tab__pill--is-not-active {
@apply text-gray-500 hover:text-gray-600 dark:hover:text-gray-300 dark:text-gray-400 dark:hover:bg-gray-800 hover:bg-gray-100;
}
/* Tabs - Individual Tab Underline */
.pc-tab__underline {
@apply flex items-center px-3 py-3 text-sm font-medium border-b-2 whitespace-nowrap;
}
.pc-tab__underline--is-active {
@apply border-primary-500 text-primary-600 dark:text-primary-500 dark:border-primary-500;
}
.pc-tab__underline--is-not-active {
@apply text-gray-500 border-transparent dark:hover:text-gray-300 dark:text-gray-400 hover:border-gray-300 hover:text-gray-600;
}
.pc-tab__underline--with-underline-and-is-active {
}
.pc-tab__underline--with-underline-and-is-not-active {
@apply hover:border-gray-300;
}
/* Tabs - Number */
.pc-tab__number {
@apply whitespace-nowrap ml-2 py-0.5 px-2 rounded-full text-xs font-normal;
}
/* Tabs - Pill with number */
.pc-tab__number__pill--is-active {
@apply text-white bg-primary-600;
}
.pc-tab__number__pill--is-not-active {
@apply text-white bg-gray-500 dark:bg-gray-600;
}
/* Tabs - Underlined with number */
.pc-tab__number__underline--is-active {
@apply bg-primary-100 text-primary-600;
}
.pc-tab__number__underline--is-not-active {
@apply text-gray-500 bg-gray-100;
}
.pc-tab__number__underline--with-underline-and-is-active {
@apply bg-primary-100 dark:bg-primary-600 text-primary-600 dark:text-white;
}
.pc-tab__number__underline--with-underline-and-is-not-active {
@apply text-gray-500 bg-gray-100 dark:bg-gray-600 dark:text-white;
}
/* Cards */
.pc-card {
@apply flex flex-wrap overflow-hidden bg-white dark:bg-gray-800;
}
.pc-card__inner {
@apply flex flex-col w-full max-w-full;
}
.pc-card--basic {
@apply border border-gray-200 rounded-lg shadow-lg dark:shadow-2xl dark:border-none;
}
.pc-card--outline {
@apply border border-gray-300 rounded-lg dark:border-gray-600;
}
/* Cards - content */
.pc-card__content {
@apply flex-1 p-6 text-base font-light text-gray-500 dark:text-gray-400;
}
.pc-card__category {
@apply mb-3 text-sm font-medium;
}
.pc-card__category--primary {
@apply text-primary-600 dark:text-primary-400;
}
.pc-card__heading {
@apply mb-2 text-xl font-medium text-gray-900 dark:text-gray-300;
}
/* Cards - with media */
.pc-card__image {
@apply flex-shrink-0 object-cover w-full;
}
.pc-card__image-placeholder {
@apply flex-shrink-0 w-full bg-gray-300 dark:bg-gray-700;
}
/* Cards - footer */
.pc-card__footer {
@apply px-6 pb-6;
}
/* Table */
.pc-table--basic {
@apply min-w-full overflow-hidden rounded-sm shadow table-auto ring-1 ring-gray-200 dark:ring-gray-800 sm:rounded;
}
.pc-table--ghost {
@apply min-w-full overflow-hidden table-auto;
}
.pc-table__th {
@apply px-6 py-3 text-sm font-semibold tracking-wider text-left text-gray-900 bg-gray-50 dark:bg-gray-800 dark:text-gray-300;
}
.pc-table thead {
@apply border-b dark:border-gray-800 dark:bg-gray-900;
}
.pc-table__tr {
@apply bg-white border-b dark:border-gray-800 dark:bg-gray-900 last:border-none;
}
.pc-table__tr--row-click {
@apply hover:bg-gray-50 dark:hover:bg-gray-800;
}
.pc-table__td {
@apply px-6 py-4 text-sm text-gray-500 dark:text-gray-400;
}
.pc-table__td--first-col {
@apply font-semibold;
}
.pc-table__td--row-click {
@apply hover:cursor-pointer;
}
.pc-table__user-inner-td {
@apply flex items-center gap-3;
}
.pc-table__user-inner-td__inner {
@apply flex flex-col overflow-hidden;
}
.pc-table__user-inner-td__label {
@apply overflow-hidden font-medium text-gray-900 whitespace-nowrap text-ellipsis dark:text-gray-300;
}
.pc-table__user-inner-td__sub-label {
@apply overflow-hidden font-normal text-gray-500 whitespace-nowrap text-ellipsis;
}
/* Accordion */
.pc-accordion-item {
@apply flex items-center justify-between w-full p-5 text-left text-gray-800 bg-white border border-gray-200 dark:bg-gray-900 dark:border-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-800;
}
.pc-accordion-item--first {
@apply rounded-t-xl;
}
.pc-accordion-item--all-except-last {
@apply border-b-0;
}
.pc-accordion-item__heading {
@apply text-base font-semibold;
}
.pc-accordion-item__chevron {
@apply flex-shrink-0 w-6 h-6 ml-3 text-gray-400 duration-300 fill-current dark:group-hover:text-gray-300 group-hover:text-gray-500;
}
.pc-accordion-item__content-container {
@apply p-5 bg-white border border-gray-200 dark:border-gray-700 dark:bg-gray-900;
}
.pc-accordion-item__content-container--not-last {
@apply border-b-0;
}
.pc-accordion-item__content-container--last {
@apply border-t-0;
}
.pc-accordion-item__content-container--highlight-accordion-button-on-expanded-js-attributes {
@apply bg-gray-50 dark:bg-gray-800;
}
/* Ghost variant */
.pc-accordion--ghost {
@apply w-full mx-auto divide-y divide-gray-900/10 dark:divide-gray-100/10;
}
.pc-accordion-item--ghost {
@apply py-6;
}
.pc-accordion-item__button--ghost {
@apply flex items-start justify-between w-full text-left text-gray-900 dark:text-gray-100;
}
.pc-accordion-item__minus {
@apply !w-6 !h-6 text-gray-400 duration-300 fill-current dark:group-hover:text-gray-300 group-hover:text-gray-500;
}
.pc-accordion-item__plus {
@apply !w-6 !h-6 text-gray-400 duration-300 fill-current dark:group-hover:text-gray-300 group-hover:text-gray-500;
}
.pc-accordion--ghost [x-cloak].pc-accordion-item__plus,
.pc-accordion--ghost [x-cloak].pc-accordion-item__minus {
display: none !important;
}
.pc-accordion-item__heading--ghost {
@apply text-base font-semibold leading-7;
}
.pc-accordion-item__icon-container--ghost {
@apply relative flex items-center ml-6 h-7;
}
.pc-accordion-item__content--ghost {
@apply pr-12 my-2;
}
/* Hide icons by default for LiveView */
.pc-accordion-item__plus[data-js-loading],
.pc-accordion-item__minus[data-js-loading] {
display: none;
}
/* Marquee Container */
.pc-marquee-container {
@apply relative flex p-2 overflow-hidden;
gap: var(--gap);
}
.pc-marquee-container.pc-vertical {
@apply flex-col;
}
/* Max width variants */
.pc-marquee-container[max-width="sm"] {
@apply max-w-sm;
}
.pc-marquee-container[max-width="md"] {
@apply max-w-md;
}
.pc-marquee-container[max-width="lg"] {
@apply max-w-lg;
}
.pc-marquee-container[max-width="xl"] {
@apply max-w-xl;
}
.pc-marquee-container[max-width="2xl"] {
@apply max-w-2xl;
}
/* Max height variants */
.pc-marquee-container[max-height="sm"] {
@apply max-h-[24rem];
}
.pc-marquee-container[max-height="md"] {
@apply max-h-[28rem];
}
.pc-marquee-container[max-height="lg"] {
@apply max-h-[32rem];
}
.pc-marquee-container[max-height="xl"] {
@apply max-h-[36rem];
}
.pc-marquee-container[max-height="2xl"] {
@apply max-h-[42rem];
}
/* Marquee Content */
.pc-marquee-content {
@apply flex justify-around shrink-0;
gap: var(--gap);
}
.pc-marquee-horizontal {
@apply flex-row;
animation: marquee var(--duration) linear infinite;
}
.pc-marquee-vertical {
@apply flex-col;
animation: marquee-vertical var(--duration) linear infinite;
}
.pc-pause-on-hover {
@apply group-hover:[animation-play-state:paused];
}
.pc-review-card {
@apply relative md:w-64 cursor-pointer overflow-hidden rounded-xl border p-4
border-black/10 bg-black/[0.01] hover:bg-black/[0.05]
dark:border-white/10 dark:bg-white/10 dark:hover:bg-white/[0.15];
}
.pc-review-header {
@apply flex items-center gap-2;
}
.pc-review-meta {
@apply flex flex-col;
}
.pc-review-username {
@apply text-xs text-black/40 dark:text-white/40;
}
.pc-review-body {
@apply mt-2;
}
/* Animations */
@keyframes marquee {
from {
transform: translateX(0);
}
to {
transform: translateX(calc(-100% - var(--gap)));
}
}
@keyframes marquee-vertical {
from {
transform: translateY(0);
}
to {
transform: translateY(calc(-100% - var(--gap)));
}
}
.pc-gradient-overlay-left {
@apply absolute top-0 bottom-0 left-0 w-1/3 pointer-events-none bg-gradient-to-r from-white to-white/0 dark:from-gray-900 dark:to-gray-900/0;
}
.pc-gradient-overlay-right {
@apply absolute top-0 bottom-0 right-0 w-1/3 pointer-events-none bg-gradient-to-r from-white/0 to-white dark:from-gray-900/0 dark:to-gray-900;
}
.pc-gradient-overlay-top {
@apply absolute top-0 left-0 right-0 pointer-events-none h-1/3 bg-gradient-to-b from-white to-white/0 dark:from-gray-900 dark:to-gray-900/0;
}
.pc-gradient-overlay-bottom {
@apply absolute bottom-0 left-0 right-0 pointer-events-none h-1/3 bg-gradient-to-t from-white to-white/0 dark:from-gray-900 dark:to-gray-900/0;
}
/* Modal */
.pc-modal {
@apply relative z-50;
}
.pc-modal__overlay {
@apply fixed inset-0 z-50 transition-opacity bg-gray-50/90 dark:bg-gray-900/90;
}
.pc-modal__wrapper {
@apply fixed inset-0 z-50 flex items-center justify-center px-4 my-4 overflow-hidden transform sm:px-6;
}
.pc-modal__box {
@apply w-full max-h-full overflow-auto bg-white shadow-lg rounded-xl dark:bg-gray-800;
}
.pc-modal__box--sm {
@apply max-w-sm;
}
.pc-modal__box--md {
@apply max-w-xl;
}
.pc-modal__box--lg {
@apply max-w-3xl;
}
.pc-modal__box--xl {
@apply max-w-5xl;
}
.pc-modal__box--2xl {
@apply max-w-7xl;
}
.pc-modal__box--full {
@apply max-w-full;
}
.pc-modal__header {
@apply px-5 py-3 border-b border-gray-100 dark:border-gray-700;
}
.pc-modal__header__container {
@apply flex items-center justify-between;
}
.pc-modal__header__text {
@apply font-semibold text-gray-800 dark:text-gray-200;
}
.pc-modal__header__button {
@apply text-gray-400 hover:text-gray-500;
}
.pc-modal__header__close-svg {
@apply w-5 h-5 fill-current;
}
.pc-modal__content {
@apply p-5;
}
/* Skeleton */
.pc-skeleton {
@apply animate-pulse;
}
/* Default Skeleton */
.pc-skeleton--default {
@apply max-w-sm pc-skeleton;
}
.pc-skeleton--default__line {
@apply bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--default__line--h-2 {
@apply h-2;
}
.pc-skeleton--default__line--h-2\.5 {
@apply h-2.5;
}
.pc-skeleton--default__line--w-48 {
@apply w-48;
}
.pc-skeleton--default__line--mb-4 {
@apply mb-4;
}
.pc-skeleton--default__line--mb-2\.5 {
@apply mb-2.5;
}
.pc-skeleton--default__line--max-w-360px {
@apply max-w-[360px];
}
.pc-skeleton--default__line--max-w-330px {
@apply max-w-[330px];
}
.pc-skeleton--default__line--max-w-300px {
@apply max-w-[300px];
}
/* Image Skeleton */
.pc-skeleton--image {
@apply space-y-8 pc-skeleton md:space-y-0 md:space-x-8 rtl:space-x-reverse md:flex md:items-center;
}
.pc-skeleton--image__image-placeholder {
@apply flex items-center justify-center w-full h-48 bg-gray-300 rounded sm:w-96 dark:bg-gray-700;
}
.pc-skeleton--image__icon {
@apply w-10 h-10 text-gray-200 dark:text-gray-600;
}
.pc-skeleton--image__content {
@apply w-full;
}
/* Repeat similar classes for lines inside the image skeleton */
.pc-skeleton--image__line {
@apply bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--image__line--h-2 {
@apply h-2;
}
.pc-skeleton--image__line--h-2\.5 {
@apply h-2.5;
}
.pc-skeleton--image__line--w-48 {
@apply w-48;
}
.pc-skeleton--image__line--mb-4 {
@apply mb-4;
}
.pc-skeleton--image__line--mb-2\.5 {
@apply mb-2.5;
}
.pc-skeleton--image__line--max-w-480px {
@apply max-w-[480px];
}
.pc-skeleton--image__line--max-w-440px {
@apply max-w-[440px];
}
.pc-skeleton--image__line--max-w-460px {
@apply max-w-[460px];
}
.pc-skeleton--image__line--max-w-360px {
@apply max-w-[360px];
}
/* Video Skeleton */
.pc-skeleton--video {
@apply flex items-center justify-center h-56 max-w-sm bg-gray-300 rounded-lg pc-skeleton dark:bg-gray-700;
}
.pc-skeleton--video__icon {
@apply w-10 h-10 text-gray-200 dark:text-gray-600;
}
/* Text Skeleton */
.pc-skeleton--text {
@apply pc-skeleton space-y-2.5 max-w-lg;
}
.pc-skeleton--text__line-group {
@apply flex items-center w-full;
}
.pc-skeleton--text__line-group--max-w-480px {
@apply max-w-[480px];
}
.pc-skeleton--text__line-group--max-w-400px {
@apply max-w-[400px];
}
.pc-skeleton--text__line-group--max-w-440px {
@apply max-w-[440px];
}
.pc-skeleton--text__line-group--max-w-360px {
@apply max-w-[360px];
}
.pc-skeleton--text__block {
@apply h-2.5 bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--text__block--bg-gray-300 {
@apply bg-gray-300 dark:bg-gray-600;
}
.pc-skeleton--text__block--w-32 {
@apply w-32;
}
.pc-skeleton--text__block--w-24 {
@apply w-24;
}
.pc-skeleton--text__block--w-full {
@apply w-full;
}
.pc-skeleton--text__block--w-80 {
@apply w-80;
}
.pc-skeleton--text__block--ms-2 {
@apply ms-2;
}
/* Card Skeleton */
.pc-skeleton--card {
@apply max-w-sm p-4 border border-gray-200 rounded shadow pc-skeleton md:p-6 dark:border-gray-700;
}
.pc-skeleton--card__image-placeholder {
@apply flex items-center justify-center h-48 mb-4 bg-gray-300 rounded dark:bg-gray-700;
}
.pc-skeleton--card__icon {
@apply w-10 h-10 text-gray-200 dark:text-gray-600;
}
.pc-skeleton--card__line {
@apply bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--card__line--h-2\.5 {
@apply h-2.5 w-48;
}
.pc-skeleton--card__line--h-2 {
@apply h-2;
}
.pc-skeleton--card__line--mb-4 {
@apply mb-4;
}
.pc-skeleton--card__line--mb-2\.5 {
@apply mb-2.5;
}
.pc-skeleton--card__avatar {
@apply flex items-center mt-4;
}
.pc-skeleton--card__avatar-icon {
@apply w-10 h-10 text-gray-200 me-3 dark:text-gray-700;
}
.pc-skeleton--card__avatar-text {
@apply h-2.5 bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--card__avatar-text--w-32 {
@apply w-32 mb-2;
}
.pc-skeleton--card__avatar-text--w-48 {
@apply w-48 h-2;
}
/* Widget Skeleton */
.pc-skeleton--widget {
@apply max-w-sm p-4 border border-gray-200 rounded shadow pc-skeleton md:p-6 dark:border-gray-700;
}
.pc-skeleton--widget__header-line {
@apply h-2.5 bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--widget__header-line--w-32 {
@apply w-32 mb-2.5;
}
.pc-skeleton--widget__header-line--w-48 {
@apply w-48 h-2 mb-10;
}
.pc-skeleton--widget__chart {
@apply flex items-baseline mt-4;
}
.pc-skeleton--widget__chart-bar {
@apply w-full bg-gray-200 rounded-t-lg dark:bg-gray-700;
}
.pc-skeleton--widget__chart-bar--h-72 {
@apply h-72;
}
.pc-skeleton--widget__chart-bar--h-56 {
@apply h-56;
}
.pc-skeleton--widget__chart-bar--h-64 {
@apply h-64;
}
.pc-skeleton--widget__chart-bar--h-80 {
@apply h-80;
}
.pc-skeleton--widget__chart-bar--ms-6 {
@apply ms-6;
}
/* List Skeleton */
.pc-skeleton--list {
@apply max-w-md p-4 space-y-4 border border-gray-200 divide-y divide-gray-200 rounded shadow pc-skeleton md:p-6 dark:divide-gray-700 dark:border-gray-700;
}
.pc-skeleton--list__item {
@apply flex items-center justify-between;
}
.pc-skeleton--list__item--pt-4 {
@apply pt-4;
}
.pc-skeleton--list__text-group {
@apply flex flex-col;
}
.pc-skeleton--list__text-line {
@apply w-24 mb-2.5 bg-gray-300 rounded-full dark:bg-gray-600;
}
.pc-skeleton--list__sub-text-line {
@apply w-32 h-2 bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--list__text-line--h-2\.5 {
@apply h-2.5;
}
.pc-skeleton--list__button {
@apply h-2.5 bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--list__button--w-12 {
@apply w-12;
}
/* Testimonial Skeleton */
.pc-skeleton--testimonial {
@apply pc-skeleton;
}
.pc-skeleton--testimonial__line {
@apply h-2.5 bg-gray-300 rounded-full dark:bg-gray-700 mx-auto;
}
.pc-skeleton--testimonial__line--h-2\.5 {
@apply h-2.5;
}
.pc-skeleton--testimonial__line--max-w-640px {
@apply max-w-[640px] mb-2.5;
}
.pc-skeleton--testimonial__line--max-w-540px {
@apply max-w-[540px];
}
.pc-skeleton--testimonial__footer {
@apply flex items-center justify-center mt-4;
}
.pc-skeleton--testimonial__avatar-icon {
@apply w-8 h-8 text-gray-200 me-4 dark:text-gray-700;
}
.pc-skeleton--testimonial__avatar-text {
@apply h-2.5 bg-gray-200 rounded-full dark:bg-gray-700;
}
.pc-skeleton--testimonial__avatar-text--w-20 {
@apply w-20 me-3;
}
.pc-skeleton--testimonial__avatar-text--w-24 {
@apply w-24 h-2;
}
/* Slideover */
.pc-slideover__overlay {
@apply fixed inset-0 z-50 transition-opacity bg-gray-900 dark:bg-gray-900 bg-opacity-30 dark:bg-opacity-70;
}
.pc-slideover__wrapper {
@apply fixed inset-0 z-50 flex overflow-hidden;
}
.pc-slideover__box {
@apply w-full max-h-full overflow-auto bg-white shadow-lg dark:bg-gray-800;
}
.pc-slideover__box--sm {
@apply max-w-sm;
}
.pc-slideover__box--md {
@apply max-w-xl;
}
.pc-slideover__box--lg {
@apply max-w-3xl;
}
.pc-slideover__box--xl {
@apply max-w-5xl;
}
.pc-slideover__box--2xl {
@apply max-w-7xl;
}
.pc-slideover__box--full {
@apply max-w-full;
}
.pc-slideover__header {
@apply px-5 py-3 border-b border-gray-100 dark:border-gray-600;
}
.pc-slideover__header__container {
@apply flex items-center justify-between;
}
.pc-slideover__header__text {
@apply font-semibold text-gray-800 dark:text-gray-200;
}
.pc-slideover__header__button {
@apply text-gray-400 hover:text-gray-500;
}
.pc-slideover__header__close-svg {
@apply w-4 h-4 fill-current;
}
.pc-slideover__content {
@apply p-5;
}
/* Stepper */
.pc-stepper {
@apply w-full;
}
.pc-stepper__container {
@apply flex md:gap-4;
}
.pc-stepper--horizontal .pc-stepper__container {
@apply flex-col items-start md:flex-row md:items-center;
}
.pc-stepper--vertical .pc-stepper__container {
@apply flex-col items-start;
}
/* Item */
.pc-stepper__item {
@apply flex-shrink-0;
}
.pc-stepper__item-content {
@apply flex items-center gap-4 focus:outline-none ring-0;
}
/* Node */
.pc-stepper__node {
@apply flex items-center gap-4 transition-all duration-200 cursor-pointer hover:opacity-90;
}
/* Indicator */
.pc-stepper__indicator {
@apply grid flex-shrink-0 text-white transition-all duration-200 bg-gray-500 rounded-full place-items-center;
}
.pc-stepper__node--complete .pc-stepper__indicator {
@apply bg-success-500;
}
.pc-stepper__node--active .pc-stepper__indicator {
@apply border-2 border-success-800 dark:border-success-100;
}
/* Size variants for indicator */
.pc-stepper--sm .pc-stepper__indicator {
@apply w-8 h-8;
}
.pc-stepper--md .pc-stepper__indicator {
@apply w-10 h-10;
}
.pc-stepper--lg .pc-stepper__indicator {
@apply w-12 h-12;
}
/* Check icon */
.pc-stepper__check {
@apply text-white;
}
.pc-stepper--sm .pc-stepper__check {
@apply w-4 h-4;
}
.pc-stepper--md .pc-stepper__check {
@apply w-5 h-5;
}
.pc-stepper--lg .pc-stepper__check {
@apply w-6 h-6;
}
/* Number */
.pc-stepper__number {
@apply font-semibold;
}
.pc-stepper--sm .pc-stepper__number {
@apply text-sm;
}
.pc-stepper--md .pc-stepper__number {
@apply text-base;
}
.pc-stepper--lg .pc-stepper__number {
@apply text-lg;
}
/* Content */
.pc-stepper__content {
@apply flex flex-col w-full gap-1 text-left grow;
}
/* Title */
.pc-stepper__title {
@apply text-sm font-semibold text-gray-900 dark:text-gray-100;
}
/* Description */
.pc-stepper__description {
@apply text-sm text-gray-500 dark:text-gray-400;
}
/* Connector Wrapper */
.pc-stepper__connector-wrapper {
@apply flex self-start shrink md:self-center;
}
/* Size Variants */
.pc-stepper--sm .pc-stepper__connector-wrapper {
@apply pl-4 md:pl-0;
}
.pc-stepper--md .pc-stepper__connector-wrapper {
@apply pl-5 md:pl-0;
}
.pc-stepper--lg .pc-stepper__connector-wrapper {
@apply pl-6 md:pl-0;
}
.pc-stepper--horizontal .pc-stepper__connector-wrapper {
@apply flex h-full md:w-full md:h-auto;
}
/* Vertical Orientation Connector Wrapper Adjustments */
/* Small Size */
.pc-stepper--vertical.pc-stepper--sm .pc-stepper__connector-wrapper {
@apply self-start;
@apply md:pl-4;
}
/* Medium Size */
.pc-stepper--vertical.pc-stepper--md .pc-stepper__connector-wrapper {
@apply self-start;
@apply md:pl-5;
}
/* Large Size */
.pc-stepper--vertical.pc-stepper--lg .pc-stepper__connector-wrapper {
@apply self-start;
@apply md:pl-6;
}
.pc-stepper--vertical .pc-stepper__container {
@apply md:gap-1;
}
/* Connector */
.pc-stepper__connector {
@apply bg-gray-200 shrink dark:bg-gray-600;
}
.pc-stepper__connector--complete {
@apply bg-success-500 dark:bg-success-500;
}
.pc-stepper--horizontal .pc-stepper__connector {
@apply h-8 w-0.5 my-2 mx-auto md:h-0.5 md:w-full md:my-auto md:mx-0;
}
.pc-stepper--vertical .pc-stepper__connector {
@apply w-0.5 h-8 mx-auto;
}
/* Rating */
.pc-rating__wrapper {
@apply flex items-center gap-1;
}
.pc-rating__label {
@apply ml-1 text-base font-bold text-gray-700 dark:text-gray-300;
}
.pc-rating__star--filled {
@apply w-5 h-5 fill-warning-500;
}
.pc-rating__star--half {
@apply w-5 h-5 fill-warning-500;
}
.pc-rating__star--empty {
@apply w-5 h-5 fill-gray-400 dark:fill-gray-500;
}
/* Menu */
.pc-vertical-menu {
@apply flex flex-col gap-5;
}
.pc-vertical-menu-item__icon {
@apply flex-shrink-0 w-5 h-5;
}
.pc-vertical-menu-item {
@apply flex items-center w-full gap-3 px-3 py-2 text-sm font-semibold leading-none transition duration-200 rounded-md;
}
.pc-vertical-menu-item--active {
@apply text-primary-700 dark:text-primary-400 bg-gray-50 dark:bg-gray-800;
}
.pc-vertical-menu-item--inactive {
@apply text-gray-700 hover:bg-gray-50 dark:text-gray-200 hover:text-gray-900 dark:hover:text-white dark:hover:bg-gray-700;
}
.pc-vertical-menu__menu-group__wrapper {
@apply divide-y divide-gray-300;
}
.pc-vertical-menu__menu-group {
@apply space-y-1;
}
.pc-vertical-menu__menu-group__title {
@apply pl-3 mb-3 text-xs font-semibold leading-6 text-gray-400 uppercase;
}
.pc-vertical-menu-item__label {
@apply flex-1;
}
.pc-vertical-menu-item__toggle-label {
@apply flex-1 text-left;
}
.pc-vertical-menu-item__toggle-chevron__icon {
/* !important is needed because heroicon class overrides width and height */
@apply w-3 h-3 ml-2 transition duration-200 transform !important;
}
.pc-vertical-menu-item__toggle-chevron__wrapper {
@apply relative inline-block;
}
.pc-vertical-menu-item__submenu-wrapper {
@apply mt-1 ml-3 space-y-1;
}
.pc-vertical-menu-item__icon--active {
@apply flex-shrink-0 w-5 h-5;
}
.pc-vertical-menu-item__icon--inactive {
@apply flex-shrink-0 w-5 h-5;
}
/* Other */
/* This is for selects inside of a group of selects. Phoenix doesn't provide a way to add a class to these. */
.select-wrapper select {
@apply text-sm border-gray-300 rounded-md shadow-sm cursor-pointer disabled:bg-gray-100 disabled:cursor-not-allowed focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:focus:border-primary-500 dark:bg-gray-800 dark:text-gray-300 focus:outline-none;
}
label.has-error {
@apply !text-danger-900 dark:!text-danger-200;
}
span.has-error {
@apply !text-danger-900 dark:!text-danger-200;
}
textarea.has-error,
input.has-error:not(:checked),
select.has-error {
@apply !border-danger-500 focus:!border-danger-500 !text-danger-900 !placeholder-danger-700 !bg-danger-50 dark:!text-danger-100 dark:!placeholder-danger-300 dark:!bg-danger-900 focus:!ring-danger-500;
}
input[type="file_input"].has-error {
@apply !border-danger-500 !rounded-md focus:!border-danger-500 !text-danger-900 !placeholder-danger-700 !bg-danger-50 file:!border-none dark:!border-none dark:!bg-gray-950 dark:text-danger-400;
}
/* If in tailwind.config.json, darkMode: 'class', use this: */
.dark ::-webkit-calendar-picker-indicator {
filter: invert(1);
}
/* Needed for Alpine JS */
[x-cloak=""] {
display: none;
}
/*
Needed for datetime inputs to have the correct size in Safari
See: https://github.com/twbs/bootstrap/issues/34433#issuecomment-1831467352
*/
input::-webkit-datetime-edit {
display: block;
padding: 0;
}