UNPKG

@unified-api/react-calendar-scheduler

Version:
291 lines (246 loc) 5.89 kB
/* Calendar Scheduler Component Styles */ .calendar-scheduler { padding: 1.5rem; max-width: 64rem; margin: 0 auto; background-color: white; border-radius: 0.5rem; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } .calendar-scheduler .calendar-scheduler-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; } @media (min-width: 1024px) { .calendar-scheduler .calendar-scheduler-grid { grid-template-columns: 1fr 1fr; } } .calendar-scheduler .calendar-section { /* Calendar section container */ } .calendar-scheduler .calendar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; } .calendar-scheduler .calendar-header button { padding: 0.5rem; border-radius: 0.375rem; border: none; background: none; cursor: pointer; transition: background-color 0.15s ease-in-out; } .calendar-scheduler .calendar-header button:hover { background-color: #f3f4f6; } .calendar-scheduler .calendar-header h2 { font-size: 1.25rem; font-weight: 600; margin: 0; } .calendar-scheduler .calendar-grid { /* Calendar grid container */ } .calendar-scheduler .calendar-days-header { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.25rem; margin-bottom: 0.5rem; } .calendar-scheduler .calendar-days-header div { text-align: center; font-size: 0.875rem; font-weight: 500; color: #6b7280; padding: 0.5rem; } .calendar-scheduler .calendar-days-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.25rem; } .calendar-scheduler .calendar-day-button { padding: 0.5rem; font-size: 0.875rem; border-radius: 0.375rem; border: none; background: none; cursor: pointer; transition: all 0.15s ease-in-out; } .calendar-scheduler .calendar-day-button:hover:not(:disabled) { background-color: #dbeafe; } .calendar-scheduler .calendar-day-button:disabled { color: #d1d5db; cursor: not-allowed; } .calendar-scheduler .calendar-day-button.selected { background-color: #3b82f6; color: white; } .calendar-scheduler .calendar-day-button.other-month { color: #9ca3af; } .calendar-scheduler .time-slots-section h3 { font-size: 1.125rem; font-weight: 600; margin-bottom: 1rem; margin-top: 0; } .calendar-scheduler .loading-container { text-align: center; padding: 1rem 0; } .calendar-scheduler .loading-spinner { animation: spin 1s linear infinite; border-radius: 50%; height: 2rem; width: 2rem; border-bottom: 2px solid #3b82f6; margin: 0 auto; } @keyframes spin { to { transform: rotate(360deg); } } .calendar-scheduler .loading-text { margin-top: 0.5rem; color: #4b5563; } .calendar-scheduler .time-slots-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; max-height: 16rem; overflow-y: auto; } .calendar-scheduler .time-slot-button { padding: 0.5rem; font-size: 0.875rem; border: 1px solid #d1d5db; border-radius: 0.375rem; background: none; cursor: pointer; transition: all 0.15s ease-in-out; } .calendar-scheduler .time-slot-button:hover { background-color: #eff6ff; border-color: #93c5fd; } .calendar-scheduler .no-times-message { grid-column: span 2; color: #6b7280; text-align: center; padding: 1rem 0; } .calendar-scheduler .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 50; } .calendar-scheduler .modal-content { background-color: white; padding: 1.5rem; border-radius: 0.5rem; max-width: 28rem; width: 100%; margin: 0 1rem; } .calendar-scheduler .modal-title { font-size: 1.125rem; font-weight: 600; margin-bottom: 1rem; margin-top: 0; } .calendar-scheduler .booking-form { display: flex; flex-direction: column; gap: 1rem; } .calendar-scheduler .form-group { /* Form group container */ } .calendar-scheduler .form-label { display: block; font-size: 0.875rem; font-weight: 500; color: #374151; margin-bottom: 0.25rem; } .calendar-scheduler .form-text { font-size: 0.875rem; color: #4b5563; margin: 0; } .calendar-scheduler .form-input { width: 100%; padding: 0.5rem; border: 1px solid #d1d5db; border-radius: 0.375rem; font-size: 0.875rem; transition: all 0.15s ease-in-out; } .calendar-scheduler .form-input:focus { outline: none; box-shadow: 0 0 0 2px #3b82f6; border-color: #3b82f6; } .calendar-scheduler .form-textarea { width: 100%; padding: 0.5rem; border: 1px solid #d1d5db; border-radius: 0.375rem; font-size: 0.875rem; resize: vertical; transition: all 0.15s ease-in-out; } .calendar-scheduler .form-textarea:focus { outline: none; box-shadow: 0 0 0 2px #3b82f6; border-color: #3b82f6; } .calendar-scheduler .form-buttons { display: flex; gap: 0.5rem; padding-top: 0.5rem; } .calendar-scheduler .btn { flex: 1; padding: 0.5rem 1rem; border-radius: 0.375rem; border: none; font-size: 0.875rem; cursor: pointer; transition: background-color 0.15s ease-in-out; } .calendar-scheduler .btn-primary { background-color: #3b82f6; color: white; } .calendar-scheduler .btn-primary:hover:not(:disabled) { background-color: #2563eb; } .calendar-scheduler .btn-primary:disabled { background-color: #d1d5db; cursor: not-allowed; } .calendar-scheduler .btn-secondary { background-color: #d1d5db; color: #374151; } .calendar-scheduler .btn-secondary:hover { background-color: #9ca3af; }