sql-formatter では lht-text-field-help を使って SQL Input の説明文を表示したい。
ただし現状の lht-cmn では、md-outlined-text-field が利用できる環境では help-text が下部の supporting text として表示される一方、fallback の textarea / input では title 属性へ退避されるだけで、画面下部に説明文が出ない。
この差により、同じ lht-text-field-help を使っていても Material 利用可否で UX が変わる。
lht-text-field-help の fallback でも、help-text を画面下部へ表示できるようにしたい。
あわせて、Material Web の依存も lht-cmn の配布単位として扱えるようにしたい。
help-textは Material 利用時と fallback 時で、できるだけ同じ意味で見えることfocus時に説明文が表示されることblur後はhide-delay-msに従って非表示になることhide-delay-ms未指定時の既定値は現在どおり160msでよい- fallback 時も
titleのみへ退避する挙動ではなく、視認できる説明文を持つこと
lht-text-field-helpを使う側は、Material 読込の有無を意識せずに同じ UI 契約を期待したい- ページ側で個別に補助説明 DOM を足す実装を避けたい
lht-cmnの self-contained 方針とも整合しやすい- 生成AIや後続開発者が、fallback 差分のために各画面で独自実装を足すことを防ぎたい
lht-cmnが Material Web を優先利用する方針であるなら、必要な Material bundle もlht-cmn一式の一部として扱いたい- 利用側プロジェクトが毎回
md-outlined-text-fieldなどの依存実体を個別に vendor する運用は避けたい - 理想形は、利用側が
lht-cmnを最新版一式で取り込めば、必要な Material 依存も揃う状態である - その結果、利用側は
lht-cmn/css/components.cssとlht-cmn/js/components.js、およびlht-cmnが定める依存セットをそのまま配布対象に含めればよい - もし bundle を
lht-cmn/js/components.js側へ内包しない場合でも、lht-cmn配下の標準パスとして同梱場所を固定してほしい
このリポジトリでは当面の対処として、md-outlined-text-field を vendor 読込して lht-text-field-help の supporting text 表示を有効化している。
ただしこれは sql-formatter 側の回避策であり、根本的には fallback 時の表示保証が lht-cmn 側にあるほうが望ましい。
また、Material bundle を sql-formatter 側の vendor/ へ置いているのも暫定措置であり、将来的には lht-cmn 側の配布単位として扱える形へ寄せたい。