autofocus#if>
- <#if disabled>disabled#if>
- <#if required>required#if>
+ <#if type == "password">
+
autofocus#if>
+ <#if disabled>disabled#if>
+ <#if required>required#if>
+
+ aria-invalid="${invalid?c}"
+ class="block border-secondary-200 mt-1 rounded-md w-full focus:border-primary-300 focus:ring focus:ring-primary-200 focus:ring-opacity-50 sm:text-sm"
+ id="<#if id=="">${name}<#else>${id}#if>"
+ name="${name}"
+ placeholder="${label}"
+ type="${type}"
+
+ <#list rest as attrName, attrValue>
+ <#if attrValue!="">
+ ${attrName}="${attrValue}"
+ #if>
+ #list>
+ >
+ #if>
<#if invalid?? && message??>
${message?no_esc}
diff --git a/theme/keywind/login/components/atoms/link.ftl b/theme/keywind/login/components/atoms/link.ftl
index bde766653..0baf40494 100644
--- a/theme/keywind/login/components/atoms/link.ftl
+++ b/theme/keywind/login/components/atoms/link.ftl
@@ -22,7 +22,9 @@
class="<#compress>${colorClass} ${sizeClass} inline-flex#compress>"
<#list rest as attrName, attrValue>
- ${attrName}="${attrValue}"
+ <#if attrValue!="">
+ ${attrName}="${attrValue}"
+ #if>
#list>
>
<#nested>
diff --git a/theme/keywind/login/components/atoms/radio.ftl b/theme/keywind/login/components/atoms/radio.ftl
index 5596d5c4b..747b4312d 100644
--- a/theme/keywind/login/components/atoms/radio.ftl
+++ b/theme/keywind/login/components/atoms/radio.ftl
@@ -1,14 +1,32 @@
-<#macro kw checked=false id="" label="" rest...>
+<#macro
+ kw
+ autofocus=false
+ checked=false
+ disabled=false
+ id=""
+ invalid=false
+ label=""
+ name=""
+ required=false
+ rest...
+>
autofocus#if>
+ <#if disabled>disabled#if>
+ <#if required>required#if>
<#if checked>checked#if>
+ aria-invalid="${invalid?c}"
class="border-secondary-200 focus:ring-primary-600"
- id="${id}"
+ id="<#if id=="">${name}<#else>${id}#if>"
+ name="${name}"
type="radio"
<#list rest as attrName, attrValue>
- ${attrName}="${attrValue}"
+ <#if attrValue!="">
+ ${attrName}="${attrValue}"
+ #if>
#list>
>