chore(autonomous-session): consolidate uncommitted work from prior session
Bundles the prior autonomous-session output that was sitting unstaged: - Em-dash sweep across src/ + tests/ (en-dash/em-dash to hyphen, ~2280 instances) - country-flag-icons rollout (CountryFlag component, replaces emoji glyphs that never rendered on Windows; lazy-loads the 3x2 SVG index as a single chunk after the per-subpath dynamic-import approach silently failed in webpack) - Admin IA Phase 1+2: 7-domain regroup, 41 to 38 pages, /admin/berths index, redirects (ocr to ai, reports to dashboard, invitations to users), docs/admin-ia-proposal.md - Per-template email tester (registry + endpoint + UI on Email admin page) - Cancel-document mode picker (delete-from-Documenso vs keep-for-audit) - Dashboard PDF report: 25 widgets, SVG charts, date-range picker, 11 resolvers - Customize-widgets per-region sortables at xl+ (charts/rails/feed); single flat sortable below xl when the layout stacks; per-viewport saved orders - Audit doc updates capturing each shipped item - Lint fixes: react-compiler immutability in DonutChart (reduce instead of let-reassign), set-state-in-effect disables in CountryFlag and UploadForSigning preview-bytes effect, unused 'confirm' destructures in interest contract + reservation tabs, unescaped apostrophe in test-template card copy
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
* dimensions / pontoon / pricing. "Apply to all" inputs at the top
|
||||
* of each column copy a value down. Validation is inline.
|
||||
*
|
||||
* Per PRE-DEPLOY-PLAN § 1.4.13. Drag-fill is a stretch — left as a
|
||||
* Per PRE-DEPLOY-PLAN § 1.4.13. Drag-fill is a stretch - left as a
|
||||
* follow-up; keyboard-friendly "Apply to all" covers most of the
|
||||
* speed win without the complexity.
|
||||
*/
|
||||
@@ -39,7 +39,7 @@ import { useVocabulary } from '@/hooks/use-vocabulary';
|
||||
import { CurrencySelect } from '@/components/shared/currency-select';
|
||||
|
||||
// Common dock-letter shorthand. Wizard accepts any uppercase letter
|
||||
// sequence matching the canonical mooring regex (`^[A-Z]+$`) — these
|
||||
// sequence matching the canonical mooring regex (`^[A-Z]+$`) - these
|
||||
// five are the most-frequently-used; reps add new ones via the
|
||||
// "Custom" input below.
|
||||
const COMMON_DOCK_LETTERS = ['A', 'B', 'C', 'D', 'E'] as const;
|
||||
@@ -117,7 +117,7 @@ export function BulkAddBerthsWizard() {
|
||||
const [checkingDups, setCheckingDups] = useState(false);
|
||||
|
||||
async function handleGenerate() {
|
||||
// Validate the dock letter — must be one or more uppercase letters per
|
||||
// Validate the dock letter - must be one or more uppercase letters per
|
||||
// the canonical mooring regex. Custom-input path normalises to upper
|
||||
// already, but guard against an empty input.
|
||||
if (!letter || !/^[A-Z]+$/.test(letter)) {
|
||||
@@ -321,7 +321,7 @@ export function BulkAddBerthsWizard() {
|
||||
{/* Dimension-unit toggle. The wizard stores values as-entered;
|
||||
conversion to canonical feet (1 m = 3.28084 ft) happens once
|
||||
at submit. Switching mid-edit leaves existing inputs as
|
||||
numeric strings — the rep is responsible for re-entering if
|
||||
numeric strings - the rep is responsible for re-entering if
|
||||
the unit interpretation just changed under them. */}
|
||||
<Button
|
||||
type="button"
|
||||
@@ -329,7 +329,7 @@ export function BulkAddBerthsWizard() {
|
||||
variant="outline"
|
||||
onClick={() => setDimUnit(dimUnit === 'ft' ? 'm' : 'ft')}
|
||||
aria-label={`Switch dimension entry to ${dimUnit === 'ft' ? 'metres' : 'feet'}`}
|
||||
title={`Entering dimensions in ${dimUnit === 'ft' ? 'feet' : 'metres'} — click to switch`}
|
||||
title={`Entering dimensions in ${dimUnit === 'ft' ? 'feet' : 'metres'} - click to switch`}
|
||||
className="font-mono text-xs"
|
||||
>
|
||||
{dimUnit}
|
||||
|
||||
Reference in New Issue
Block a user