Fatti

La [A. GmbH] (attrice, ricorrente) è stata impiegata negli anni 2016 e 2017 dalla [B. AG] (convenuta, intimata) come subappaltatrice per lavori di gesso e cartongesso su diversi cantieri. I contratti d'appalto sono stati conclusi oralmente, con un'eccezione.

Oggetto della lite nel presente procedimento è un singolo cantiere (lavori di gessatura su un complesso residenziale). L'attrice ha emesso per questo fatture per complessivi fr. 65'592.30. La convenuta ha pagato soltanto tre volte fr. 16'000.--, per cui l'attrice ha avviato l'esecuzione il 20 dicembre 2017. La convenuta ha sollevato opposizione al precetto esecutivo.

Con azione di riconoscimento del debito del 17 ottobre 2018 l'attrice ha chiesto al Tribunale di commercio del Cantone Argovia il pagamento dell'importo precettato, oltre interessi, nonché l'eliminazione dell'opposizione. Dopo lo scambio di scritti, una fase di conciliazione fallita e la riduzione della domanda a fr. 64'700.--, il procedimento è stato trasmesso al Tribunale di commercio il 9 ottobre 2019. Il vicepresidente ha assegnato alle parti un termine per comunicare se intendessero rinunciare all'udienza di discussione o presentare arringhe scritte.

La convenuta ha rinunciato all'udienza di discussione e alle arringhe orali. Nella sua risposta del 17 ottobre 2019 l'attrice ha dapprima mantenuto la richiesta di un'udienza di discussione orale, ma successivamente ha acconsentito alla rinuncia alle arringhe orali e ha chiesto arringhe scritte. Con decreto del 18 ottobre 2019 il vicepresidente ha ritenuto che entrambe le parti avessero rinunciato all'udienza di discussione e ha fissato un termine per le arringhe scritte. Il 22 ottobre 2019 l'attrice ha reagito chiedendo un nuovo decreto, in quanto manteneva la richiesta di un'udienza di discussione orale. Con decreto del 23 ottobre 2019 il vicepresidente ha respinto tale richiesta.

Con sentenza del 27 novembre 2019 il Tribunale di commercio ha respinto l'azione, nella misura in cui non è stata stralciata per ritiro dell'azione per fr. 892.30. Ha posto a carico dell'attrice spese processuali di fr. 5'360.-- e un'indennità di parte di fr. 9'611.40.

L'attrice ha proposto ricorso in materia civile chiedendo l'annullamento della sentenza e il rinvio della causa. La convenuta ha chiesto la reiezione del ricorso. Il Tribunale di commercio ha rinunciato per il resto a una risposta.

Questione centrale: se l'attrice abbia rinunciato all'udienza di discussione ai sensi dell'art. 233 CPC e se siano stati violati il diritto di essere sentiti e il diritto a un procedimento pubblico.

Diritto

Il ricorso concerne una causa civile (art. 72 LTF) e si dirige contro una decisione finale (art. 90 LTF) di un tribunale specializzato cantonale superiore in materia di diritto commerciale (art. 75 cpv. 2 lett. b LTF). Non è richiesto un valore litigioso minimo (art. 74 cpv. 2 lett. b LTF). Il termine è rispettato. Trattandosi di un ricorso reformatorio, sarebbe in linea di principio necessaria una domanda di merito. Una semplice domanda di rinvio è eccezionalmente sufficiente se il Tribunale federale, per mancanza di accertamenti di fatto, non potrebbe decidere esso stesso (DTF 133 III 489 consid. 3.1). Poiché la ricorrente lamenta una violazione del diritto di essere sentiti (art. 29 cpv. 2 Cost.) che dovrebbe portare al rinvio, il ricorso è ammissibile.

Il Tribunale federale applica il diritto d'ufficio (art. 106 cpv. 1 LTF), ma esamina soltanto le censure sollevate, salvo che i vizi giuridici siano manifesti. L'accertamento dei fatti può essere corretto soltanto in caso di manifesta inesattezza (arbitrio) (art. 105 cpv. 2 LTF), vigendo il rigoroso principio di allegazione (art. 106 cpv. 2 LTF).

La ricorrente lamenta una violazione dell'art. 6 cpv. 1 CEDU, dell'art. 14 cpv. 1 del Patto ONU II, dell'art. 29 cpv. 2 e dell'art. 30 cpv. 3 Cost. nonché degli art. 54, 228 e 233 CPC, poiché non è stata svolta un'udienza di discussione orale. Il Tribunale di commercio ha ritenuto che la ricorrente avesse rinunciato in modo concludente all'udienza di discussione, acconsentendo alla rinuncia alle arringhe orali e chiedendo arringhe scritte. Inoltre, secondo la prassi, la variante con udienza di discussione seguita da arringhe orali non sarebbe stata offerta.

Secondo gli art. 228 segg. CPC le parti hanno diritto a un'udienza di discussione orale; l'art. 233 CPC consente tuttavia la rinuncia congiunta. La rinuncia deve essere dichiarata da entrambe le parti, non necessita di una forma determinata e può avvenire in modo concludente. Poiché l'udienza orale serve a garanzie fondamentali come il diritto di essere sentiti e la pubblicità, non si può dedurre con leggerezza una rinuncia (DTF 140 III 450 consid. 3.2). Anche una rinuncia parziale (solo alle allegazioni delle parti, all'assunzione delle prove o alle arringhe) è possibile, ma una rinuncia generica non vale automaticamente come rinuncia globale.

Il Tribunale federale ritiene fondata la censura: la precedente istanza non poteva presumere che la ricorrente avesse rinunciato all'udienza di discussione. Il suo patrocinatore aveva espressamente…