feat: Nova UI component library + Studio dropdown/picker polish
- Add Nova UI library: Button, TextInput, Textarea, FormField, Select, NovaSelect, Checkbox, Radio/RadioGroup, Toggle, DatePicker, DateRangePicker, Modal + barrel index.js - Replace all native <select> in Studio with NovaSelect (StudioFilters, StudioToolbar, BulkActionsBar) including frosted-glass portal and category group headers - Replace native checkboxes in StudioGridCard, StudioTable, UploadSidebar, UploadWizard, Upload/Index with custom Checkbox component - Add nova-scrollbar CSS utility (thin 4px, semi-transparent) - Fix portal position drift: use viewport-relative coords (no scrollY offset) for NovaSelect, DatePicker and DateRangePicker - Close portals on external scroll instead of remeasuring - Improve hover highlight visibility in NovaSelect (bg-white/[0.13]) - Move search icon to right side in NovaSelect dropdown - Reduce Studio layout top spacing (py-6 -> pt-4 pb-8) - Add StudioCheckbox and SquareCheckbox backward-compat shims - Add sync.sh rsync deploy script
This commit is contained in:
@@ -2,6 +2,7 @@ import React, { useCallback, useEffect, useMemo, useReducer, useRef, useState }
|
||||
import { usePage } from '@inertiajs/react'
|
||||
import TagInput from '../../components/tags/TagInput'
|
||||
import UploadWizard from '../../components/upload/UploadWizard'
|
||||
import Checkbox from '../../Components/ui/Checkbox'
|
||||
|
||||
const phases = {
|
||||
idle: 'idle',
|
||||
@@ -918,15 +919,15 @@ export default function UploadPage({ draftId, filesCdnUrl, chunkSize }) {
|
||||
/>
|
||||
</label>
|
||||
|
||||
<label className="mt-4 inline-flex items-center gap-3 text-sm text-white/80">
|
||||
<input
|
||||
type="checkbox"
|
||||
<div className="mt-4">
|
||||
<Checkbox
|
||||
checked={state.metadata.licenseAccepted}
|
||||
onChange={(e) => dispatch({ type: 'SET_METADATA', payload: { licenseAccepted: e.target.checked } })}
|
||||
className="h-4 w-4 shrink-0 border border-white/30 bg-transparent accent-emerald-500 focus:outline-none focus:ring-2 focus:ring-emerald-400"
|
||||
size={16}
|
||||
variant="emerald"
|
||||
label="I confirm I own the rights to this artwork."
|
||||
/>
|
||||
I confirm I own the rights to this artwork.
|
||||
</label>
|
||||
</div>
|
||||
|
||||
{state.cancelledAt && (
|
||||
<div role="alert" aria-live="polite" className="mt-4 rounded-xl border border-amber-400/40 bg-amber-400/10 px-4 py-3 text-sm text-amber-100">
|
||||
|
||||
Reference in New Issue
Block a user