Edições idempotentes nos arquivos do app host (CSS, JS, mix.exs), em funções
puras conteúdo -> {:ok, novo, mudou?} | {:error, motivo}. A task
mix frappe_ui_phx.install só lê/escreve arquivos em volta delas.
Idempotência é a pós-condição principal: aplicar duas vezes devolve o mesmo
conteúdo e mudou? == false na segunda.
Summary
Functions
O mix.exs do host compila com :phoenix_live_view (necessário para extrair os
hooks colocated)? Não edita o arquivo; devolve :ok ou {:missing, instrução}.
Acrescenta os @import do CSS de tokens e o @source dos componentes
logo depois de @import "tailwindcss". rel é o caminho da dependência a partir
do app.css (ex.: "../../deps/frappe_ui_phx").
Importa os hooks colocated da biblioteca e os junta ao objeto hooks: do
LiveSocket (acompanha o colocatedHooks do Phoenix 1.8 quando existe).
Caminho da dependência relativo a from_dir (ambos absolutos).
Types
Functions
O mix.exs do host compila com :phoenix_live_view (necessário para extrair os
hooks colocated)? Não edita o arquivo; devolve :ok ou {:missing, instrução}.
Acrescenta os @import do CSS de tokens e o @source dos componentes
logo depois de @import "tailwindcss". rel é o caminho da dependência a partir
do app.css (ex.: "../../deps/frappe_ui_phx").
Importa os hooks colocated da biblioteca e os junta ao objeto hooks: do
LiveSocket (acompanha o colocatedHooks do Phoenix 1.8 quando existe).
Caminho da dependência relativo a from_dir (ambos absolutos).