mokkun 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +18 -6
  2. package/bin/cli.mjs +6 -6
  3. package/bin/viewer.html +78 -3
  4. package/dist/example.html +225 -0
  5. package/dist/mokkun.css +1 -1
  6. package/dist/mokkun.esm.js +14476 -9626
  7. package/dist/mokkun.esm.js.map +1 -1
  8. package/dist/mokkun.js +761 -363
  9. package/dist/mokkun.js.map +1 -1
  10. package/dist/types/lib.d.ts +109 -0
  11. package/dist/types/loader/file-loader.d.ts +118 -0
  12. package/dist/types/loader/index.d.ts +4 -0
  13. package/dist/types/parser/index.d.ts +5 -0
  14. package/dist/types/parser/key-normalizer.d.ts +24 -0
  15. package/dist/types/parser/v2/compile-expand.d.ts +23 -0
  16. package/dist/types/parser/v2/compile-field.d.ts +28 -0
  17. package/dist/types/parser/v2/compile-section.d.ts +6 -0
  18. package/dist/types/parser/v2/compile-v2.d.ts +14 -0
  19. package/dist/types/parser/v2/compile-warnings.d.ts +17 -0
  20. package/dist/types/parser/v2/file-spec.d.ts +24 -0
  21. package/dist/types/parser/v2/index.d.ts +5 -0
  22. package/dist/types/parser/v2/iso-date.d.ts +10 -0
  23. package/dist/types/parser/v2/parse-v2.d.ts +24 -0
  24. package/dist/types/parser/v2/validate-action.d.ts +11 -0
  25. package/dist/types/parser/v2/validate-app.d.ts +9 -0
  26. package/dist/types/parser/v2/validate-context.d.ts +41 -0
  27. package/dist/types/parser/v2/validate-field.d.ts +17 -0
  28. package/dist/types/parser/v2/validate-keys.d.ts +29 -0
  29. package/dist/types/parser/v2/validate-list.d.ts +5 -0
  30. package/dist/types/parser/v2/validate-v2.d.ts +6 -0
  31. package/dist/types/parser/v2/validate-view.d.ts +6 -0
  32. package/dist/types/parser/yaml-parser.d.ts +68 -0
  33. package/dist/types/renderer/action-handler.d.ts +76 -0
  34. package/dist/types/renderer/components/accordion-panel.d.ts +144 -0
  35. package/dist/types/renderer/components/action-buttons.d.ts +183 -0
  36. package/dist/types/renderer/components/alert-banner.d.ts +43 -0
  37. package/dist/types/renderer/components/app-header.d.ts +277 -0
  38. package/dist/types/renderer/components/app-navi.d.ts +167 -0
  39. package/dist/types/renderer/components/badge.d.ts +134 -0
  40. package/dist/types/renderer/components/browser.d.ts +134 -0
  41. package/dist/types/renderer/components/calendar.d.ts +198 -0
  42. package/dist/types/renderer/components/checkbox.d.ts +132 -0
  43. package/dist/types/renderer/components/chip.d.ts +120 -0
  44. package/dist/types/renderer/components/combobox.d.ts +217 -0
  45. package/dist/types/renderer/components/data-table.d.ts +186 -0
  46. package/dist/types/renderer/components/date-range-picker.d.ts +203 -0
  47. package/dist/types/renderer/components/definition-list.d.ts +165 -0
  48. package/dist/types/renderer/components/delete-confirm-dialog.d.ts +151 -0
  49. package/dist/types/renderer/components/dialog/action-dialog.d.ts +61 -0
  50. package/dist/types/renderer/components/dialog/base-dialog.d.ts +125 -0
  51. package/dist/types/renderer/components/dialog/dialog-types.d.ts +96 -0
  52. package/dist/types/renderer/components/disclosure.d.ts +118 -0
  53. package/dist/types/renderer/components/dropdown.d.ts +220 -0
  54. package/dist/types/renderer/components/duration-input.d.ts +154 -0
  55. package/dist/types/renderer/components/duration-picker.d.ts +108 -0
  56. package/dist/types/renderer/components/field-renderer.d.ts +22 -0
  57. package/dist/types/renderer/components/float-area.d.ts +196 -0
  58. package/dist/types/renderer/components/form-fields.d.ts +94 -0
  59. package/dist/types/renderer/components/form-section.d.ts +118 -0
  60. package/dist/types/renderer/components/google-map-embed.d.ts +88 -0
  61. package/dist/types/renderer/components/heading.d.ts +119 -0
  62. package/dist/types/renderer/components/image-uploader.d.ts +271 -0
  63. package/dist/types/renderer/components/index.d.ts +48 -0
  64. package/dist/types/renderer/components/information-panel.d.ts +139 -0
  65. package/dist/types/renderer/components/input.d.ts +222 -0
  66. package/dist/types/renderer/components/layout.d.ts +71 -0
  67. package/dist/types/renderer/components/line-clamp.d.ts +170 -0
  68. package/dist/types/renderer/components/loader.d.ts +104 -0
  69. package/dist/types/renderer/components/notification-bar.d.ts +251 -0
  70. package/dist/types/renderer/components/pagination.d.ts +167 -0
  71. package/dist/types/renderer/components/photo-manager-renderer.d.ts +9 -0
  72. package/dist/types/renderer/components/radio-button-panel.d.ts +152 -0
  73. package/dist/types/renderer/components/radio.d.ts +117 -0
  74. package/dist/types/renderer/components/repeater.d.ts +116 -0
  75. package/dist/types/renderer/components/response-message.d.ts +180 -0
  76. package/dist/types/renderer/components/search-input.d.ts +198 -0
  77. package/dist/types/renderer/components/section-nav.d.ts +151 -0
  78. package/dist/types/renderer/components/segmented-control.d.ts +143 -0
  79. package/dist/types/renderer/components/select.d.ts +98 -0
  80. package/dist/types/renderer/components/status-label.d.ts +146 -0
  81. package/dist/types/renderer/components/stepper.d.ts +123 -0
  82. package/dist/types/renderer/components/tabs.d.ts +185 -0
  83. package/dist/types/renderer/components/textarea.d.ts +173 -0
  84. package/dist/types/renderer/components/timeline.d.ts +146 -0
  85. package/dist/types/renderer/components/toggle.d.ts +109 -0
  86. package/dist/types/renderer/components/tooltip.d.ts +158 -0
  87. package/dist/types/renderer/components/wizard.d.ts +118 -0
  88. package/dist/types/renderer/layouts/index.d.ts +5 -0
  89. package/dist/types/renderer/layouts/shell.d.ts +7 -0
  90. package/dist/types/renderer/layouts/types.d.ts +34 -0
  91. package/dist/types/renderer/screen-renderer.d.ts +57 -0
  92. package/dist/types/renderer/utils/dom.d.ts +29 -0
  93. package/dist/types/renderer/utils/dummy-data.d.ts +13 -0
  94. package/dist/types/renderer/utils/field-helpers.d.ts +90 -0
  95. package/dist/types/renderer/utils/icons.d.ts +13 -0
  96. package/dist/types/renderer/utils/index.d.ts +6 -0
  97. package/dist/types/renderer-v2/actions.d.ts +30 -0
  98. package/dist/types/renderer-v2/app-shell.d.ts +15 -0
  99. package/dist/types/renderer-v2/condition.d.ts +19 -0
  100. package/dist/types/renderer-v2/context.d.ts +37 -0
  101. package/dist/types/renderer-v2/fields/choice.d.ts +12 -0
  102. package/dist/types/renderer-v2/fields/control-label.d.ts +57 -0
  103. package/dist/types/renderer-v2/fields/date.d.ts +6 -0
  104. package/dist/types/renderer-v2/fields/display.d.ts +22 -0
  105. package/dist/types/renderer-v2/fields/file-support.d.ts +15 -0
  106. package/dist/types/renderer-v2/fields/file.d.ts +9 -0
  107. package/dist/types/renderer-v2/fields/index.d.ts +20 -0
  108. package/dist/types/renderer-v2/fields/select.d.ts +17 -0
  109. package/dist/types/renderer-v2/fields/text.d.ts +26 -0
  110. package/dist/types/renderer-v2/fields/textarea.d.ts +5 -0
  111. package/dist/types/renderer-v2/fields/toggle.d.ts +6 -0
  112. package/dist/types/renderer-v2/icons.d.ts +35 -0
  113. package/dist/types/renderer-v2/index.d.ts +45 -0
  114. package/dist/types/renderer-v2/list-cells.d.ts +6 -0
  115. package/dist/types/renderer-v2/list-data.d.ts +53 -0
  116. package/dist/types/renderer-v2/mount-parts.d.ts +19 -0
  117. package/dist/types/renderer-v2/mount-repeat.d.ts +8 -0
  118. package/dist/types/renderer-v2/mount-section.d.ts +10 -0
  119. package/dist/types/renderer-v2/mount-visibility.d.ts +13 -0
  120. package/dist/types/renderer-v2/mount.d.ts +9 -0
  121. package/dist/types/renderer-v2/role.d.ts +15 -0
  122. package/dist/types/renderer-v2/section-fields.d.ts +11 -0
  123. package/dist/types/renderer-v2/section-list.d.ts +8 -0
  124. package/dist/types/renderer-v2/section-readonly.d.ts +8 -0
  125. package/dist/types/renderer-v2/section.d.ts +15 -0
  126. package/dist/types/renderer-v2/styles.d.ts +13 -0
  127. package/dist/types/renderer-v2/util.d.ts +28 -0
  128. package/dist/types/renderer-v2/view-state.d.ts +25 -0
  129. package/dist/types/renderer-v2/view.d.ts +8 -0
  130. package/dist/types/theme/index.d.ts +6 -0
  131. package/dist/types/theme/theme-manager.d.ts +102 -0
  132. package/dist/types/types/field-renderable.d.ts +40 -0
  133. package/dist/types/types/index.d.ts +7 -0
  134. package/dist/types/types/schema-v2.d.ts +270 -0
  135. package/dist/types/types/schema.d.ts +1712 -0
  136. package/dist/types/types/theme.d.ts +111 -0
  137. package/package.json +3 -1
package/dist/mokkun.js CHANGED
@@ -1,75 +1,83 @@
1
- (function(T,O){typeof exports=="object"&&typeof module<"u"?O(exports):typeof define=="function"&&define.amd?define(["exports"],O):(T=typeof globalThis<"u"?globalThis:T||self,O(T.Mokkun={}))})(this,(function(T){"use strict";var io=Object.defineProperty;var no=(T,O,G)=>O in T?io(T,O,{enumerable:!0,configurable:!0,writable:!0,value:G}):T[O]=G;var h=(T,O,G)=>no(T,typeof O!="symbol"?O+"":O,G);/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */function O(t){return typeof t>"u"||t===null}function G(t){return typeof t=="object"&&t!==null}function Mi(t){return Array.isArray(t)?t:O(t)?[]:[t]}function Di(t,e){var i,n,s,a;if(e)for(a=Object.keys(e),i=0,n=a.length;i<n;i+=1)s=a[i],t[s]=e[s];return t}function Fi(t,e){var i="",n;for(n=0;n<e;n+=1)i+=t;return i}function Oi(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var Hi=O,zi=G,Bi=Mi,Ri=Fi,Pi=Oi,Vi=Di,L={isNothing:Hi,isObject:zi,toArray:Bi,repeat:Ri,isNegativeZero:Pi,extend:Vi};function nt(t,e){var i="",n=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(i+='in "'+t.mark.name+'" '),i+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(i+=`
1
+ (function(O,G){typeof exports=="object"&&typeof module<"u"?G(exports):typeof define=="function"&&define.amd?define(["exports"],G):(O=typeof globalThis<"u"?globalThis:O||self,G(O.Mokkun={}))})(this,(function(O){"use strict";var nm=Object.defineProperty;var rm=(O,G,ge)=>G in O?nm(O,G,{enumerable:!0,configurable:!0,writable:!0,value:ge}):O[G]=ge;var p=(O,G,ge)=>rm(O,typeof G!="symbol"?G+"":G,ge);/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */function G(t){return typeof t>"u"||t===null}function ge(t){return typeof t=="object"&&t!==null}function br(t){return Array.isArray(t)?t:G(t)?[]:[t]}function vr(t,e){var i,a,n,r;if(e)for(r=Object.keys(e),i=0,a=r.length;i<a;i+=1)n=r[i],t[n]=e[n];return t}function yr(t,e){var i="",a;for(a=0;a<e;a+=1)i+=t;return i}function _r(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var xr=G,wr=ge,kr=br,Cr=yr,$r=_r,Ar=vr,B={isNothing:xr,isObject:wr,toArray:kr,repeat:Cr,isNegativeZero:$r,extend:Ar};function fi(t,e){var i="",a=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(i+='in "'+t.mark.name+'" '),i+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(i+=`
2
2
 
3
- `+t.mark.snippet),n+" "+i):n}function se(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=nt(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}se.prototype=Object.create(Error.prototype),se.prototype.constructor=se,se.prototype.toString=function(e){return this.name+": "+nt(this,e)};var M=se;function _e(t,e,i,n,s){var a="",r="",o=Math.floor(s/2)-1;return n-e>o&&(a=" ... ",e=n-o+a.length),i-n>o&&(r=" ...",i=n+o-r.length),{str:a+t.slice(e,i).replace(/\t/g,"→")+r,pos:n-e+a.length}}function Ne(t,e){return L.repeat(" ",e-t.length)+t}function ji(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var i=/\r?\n|\r|\0/g,n=[0],s=[],a,r=-1;a=i.exec(t.buffer);)s.push(a.index),n.push(a.index+a[0].length),t.position<=a.index&&r<0&&(r=n.length-2);r<0&&(r=n.length-1);var o="",l,d,p=Math.min(t.line+e.linesAfter,s.length).toString().length,u=e.maxLength-(e.indent+p+3);for(l=1;l<=e.linesBefore&&!(r-l<0);l++)d=_e(t.buffer,n[r-l],s[r-l],t.position-(n[r]-n[r-l]),u),o=L.repeat(" ",e.indent)+Ne((t.line-l+1).toString(),p)+" | "+d.str+`
4
- `+o;for(d=_e(t.buffer,n[r],s[r],t.position,u),o+=L.repeat(" ",e.indent)+Ne((t.line+1).toString(),p)+" | "+d.str+`
5
- `,o+=L.repeat("-",e.indent+p+3+d.pos)+`^
6
- `,l=1;l<=e.linesAfter&&!(r+l>=s.length);l++)d=_e(t.buffer,n[r+l],s[r+l],t.position-(n[r]-n[r+l]),u),o+=L.repeat(" ",e.indent)+Ne((t.line+l+1).toString(),p)+" | "+d.str+`
7
- `;return o.replace(/\n$/,"")}var Ui=ji,qi=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Wi=["scalar","sequence","mapping"];function Yi(t){var e={};return t!==null&&Object.keys(t).forEach(function(i){t[i].forEach(function(n){e[String(n)]=i})}),e}function Gi(t,e){if(e=e||{},Object.keys(e).forEach(function(i){if(qi.indexOf(i)===-1)throw new M('Unknown option "'+i+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(i){return i},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=Yi(e.styleAliases||null),Wi.indexOf(this.kind)===-1)throw new M('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var $=Gi;function st(t,e){var i=[];return t[e].forEach(function(n){var s=i.length;i.forEach(function(a,r){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(s=r)}),i[s]=n}),i}function Zi(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,i;function n(s){s.multi?(t.multi[s.kind].push(s),t.multi.fallback.push(s)):t[s.kind][s.tag]=t.fallback[s.tag]=s}for(e=0,i=arguments.length;e<i;e+=1)arguments[e].forEach(n);return t}function Te(t){return this.extend(t)}Te.prototype.extend=function(e){var i=[],n=[];if(e instanceof $)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(i=i.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new M("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");i.forEach(function(a){if(!(a instanceof $))throw new M("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new M("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new M("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof $))throw new M("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var s=Object.create(Te.prototype);return s.implicit=(this.implicit||[]).concat(i),s.explicit=(this.explicit||[]).concat(n),s.compiledImplicit=st(s,"implicit"),s.compiledExplicit=st(s,"explicit"),s.compiledTypeMap=Zi(s.compiledImplicit,s.compiledExplicit),s};var at=Te,rt=new $("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),ot=new $("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),lt=new $("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),ct=new at({explicit:[rt,ot,lt]});function Ki(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Qi(){return null}function Ji(t){return t===null}var dt=new $("tag:yaml.org,2002:null",{kind:"scalar",resolve:Ki,construct:Qi,predicate:Ji,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Xi(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function en(t){return t==="true"||t==="True"||t==="TRUE"}function tn(t){return Object.prototype.toString.call(t)==="[object Boolean]"}var ht=new $("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Xi,construct:en,predicate:tn,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function nn(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function sn(t){return 48<=t&&t<=55}function an(t){return 48<=t&&t<=57}function rn(t){if(t===null)return!1;var e=t.length,i=0,n=!1,s;if(!e)return!1;if(s=t[i],(s==="-"||s==="+")&&(s=t[++i]),s==="0"){if(i+1===e)return!0;if(s=t[++i],s==="b"){for(i++;i<e;i++)if(s=t[i],s!=="_"){if(s!=="0"&&s!=="1")return!1;n=!0}return n&&s!=="_"}if(s==="x"){for(i++;i<e;i++)if(s=t[i],s!=="_"){if(!nn(t.charCodeAt(i)))return!1;n=!0}return n&&s!=="_"}if(s==="o"){for(i++;i<e;i++)if(s=t[i],s!=="_"){if(!sn(t.charCodeAt(i)))return!1;n=!0}return n&&s!=="_"}}if(s==="_")return!1;for(;i<e;i++)if(s=t[i],s!=="_"){if(!an(t.charCodeAt(i)))return!1;n=!0}return!(!n||s==="_")}function on(t){var e=t,i=1,n;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),n=e[0],(n==="-"||n==="+")&&(n==="-"&&(i=-1),e=e.slice(1),n=e[0]),e==="0")return 0;if(n==="0"){if(e[1]==="b")return i*parseInt(e.slice(2),2);if(e[1]==="x")return i*parseInt(e.slice(2),16);if(e[1]==="o")return i*parseInt(e.slice(2),8)}return i*parseInt(e,10)}function ln(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!L.isNegativeZero(t)}var ut=new $("tag:yaml.org,2002:int",{kind:"scalar",resolve:rn,construct:on,predicate:ln,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),cn=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function dn(t){return!(t===null||!cn.test(t)||t[t.length-1]==="_")}function hn(t){var e,i;return e=t.replace(/_/g,"").toLowerCase(),i=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:i*parseFloat(e,10)}var un=/^[-+]?[0-9]+e/;function pn(t,e){var i;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(L.isNegativeZero(t))return"-0.0";return i=t.toString(10),un.test(i)?i.replace("e",".e"):i}function fn(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||L.isNegativeZero(t))}var pt=new $("tag:yaml.org,2002:float",{kind:"scalar",resolve:dn,construct:hn,predicate:fn,represent:pn,defaultStyle:"lowercase"}),ft=ct.extend({implicit:[dt,ht,ut,pt]}),mt=ft,gt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),bt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function mn(t){return t===null?!1:gt.exec(t)!==null||bt.exec(t)!==null}function gn(t){var e,i,n,s,a,r,o,l=0,d=null,p,u,f;if(e=gt.exec(t),e===null&&(e=bt.exec(t)),e===null)throw new Error("Date resolve error");if(i=+e[1],n=+e[2]-1,s=+e[3],!e[4])return new Date(Date.UTC(i,n,s));if(a=+e[4],r=+e[5],o=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(p=+e[10],u=+(e[11]||0),d=(p*60+u)*6e4,e[9]==="-"&&(d=-d)),f=new Date(Date.UTC(i,n,s,a,r,o,l)),d&&f.setTime(f.getTime()-d),f}function bn(t){return t.toISOString()}var vt=new $("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:mn,construct:gn,instanceOf:Date,represent:bn});function vn(t){return t==="<<"||t===null}var yt=new $("tag:yaml.org,2002:merge",{kind:"scalar",resolve:vn}),Me=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
8
- \r`;function yn(t){if(t===null)return!1;var e,i,n=0,s=t.length,a=Me;for(i=0;i<s;i++)if(e=a.indexOf(t.charAt(i)),!(e>64)){if(e<0)return!1;n+=6}return n%8===0}function xn(t){var e,i,n=t.replace(/[\r\n=]/g,""),s=n.length,a=Me,r=0,o=[];for(e=0;e<s;e++)e%4===0&&e&&(o.push(r>>16&255),o.push(r>>8&255),o.push(r&255)),r=r<<6|a.indexOf(n.charAt(e));return i=s%4*6,i===0?(o.push(r>>16&255),o.push(r>>8&255),o.push(r&255)):i===18?(o.push(r>>10&255),o.push(r>>2&255)):i===12&&o.push(r>>4&255),new Uint8Array(o)}function Cn(t){var e="",i=0,n,s,a=t.length,r=Me;for(n=0;n<a;n++)n%3===0&&n&&(e+=r[i>>18&63],e+=r[i>>12&63],e+=r[i>>6&63],e+=r[i&63]),i=(i<<8)+t[n];return s=a%3,s===0?(e+=r[i>>18&63],e+=r[i>>12&63],e+=r[i>>6&63],e+=r[i&63]):s===2?(e+=r[i>>10&63],e+=r[i>>4&63],e+=r[i<<2&63],e+=r[64]):s===1&&(e+=r[i>>2&63],e+=r[i<<4&63],e+=r[64],e+=r[64]),e}function kn(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var xt=new $("tag:yaml.org,2002:binary",{kind:"scalar",resolve:yn,construct:xn,predicate:kn,represent:Cn}),wn=Object.prototype.hasOwnProperty,En=Object.prototype.toString;function An(t){if(t===null)return!0;var e=[],i,n,s,a,r,o=t;for(i=0,n=o.length;i<n;i+=1){if(s=o[i],r=!1,En.call(s)!=="[object Object]")return!1;for(a in s)if(wn.call(s,a))if(!r)r=!0;else return!1;if(!r)return!1;if(e.indexOf(a)===-1)e.push(a);else return!1}return!0}function In(t){return t!==null?t:[]}var Ct=new $("tag:yaml.org,2002:omap",{kind:"sequence",resolve:An,construct:In}),Sn=Object.prototype.toString;function Ln(t){if(t===null)return!0;var e,i,n,s,a,r=t;for(a=new Array(r.length),e=0,i=r.length;e<i;e+=1){if(n=r[e],Sn.call(n)!=="[object Object]"||(s=Object.keys(n),s.length!==1))return!1;a[e]=[s[0],n[s[0]]]}return!0}function $n(t){if(t===null)return[];var e,i,n,s,a,r=t;for(a=new Array(r.length),e=0,i=r.length;e<i;e+=1)n=r[e],s=Object.keys(n),a[e]=[s[0],n[s[0]]];return a}var kt=new $("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Ln,construct:$n}),_n=Object.prototype.hasOwnProperty;function Nn(t){if(t===null)return!0;var e,i=t;for(e in i)if(_n.call(i,e)&&i[e]!==null)return!1;return!0}function Tn(t){return t!==null?t:{}}var wt=new $("tag:yaml.org,2002:set",{kind:"mapping",resolve:Nn,construct:Tn}),De=mt.extend({implicit:[vt,yt],explicit:[xt,Ct,kt,wt]}),q=Object.prototype.hasOwnProperty,fe=1,Et=2,At=3,me=4,Fe=1,Mn=2,It=3,Dn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Fn=/[\x85\u2028\u2029]/,On=/[,\[\]\{\}]/,St=/^(?:!|!!|![a-z\-]+!)$/i,Lt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function $t(t){return Object.prototype.toString.call(t)}function R(t){return t===10||t===13}function Y(t){return t===9||t===32}function H(t){return t===9||t===32||t===10||t===13}function Z(t){return t===44||t===91||t===93||t===123||t===125}function Hn(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function zn(t){return t===120?2:t===117?4:t===85?8:0}function Bn(t){return 48<=t&&t<=57?t-48:-1}function _t(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
9
- `:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"…":t===95?" ":t===76?"\u2028":t===80?"\u2029":""}function Rn(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}function Nt(t,e,i){e==="__proto__"?Object.defineProperty(t,e,{configurable:!0,enumerable:!0,writable:!0,value:i}):t[e]=i}for(var Tt=new Array(256),Mt=new Array(256),K=0;K<256;K++)Tt[K]=_t(K)?1:0,Mt[K]=_t(K);function Pn(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||De,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Dt(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=Ui(i),new M(e,i)}function v(t,e){throw Dt(t,e)}function ge(t,e){t.onWarning&&t.onWarning.call(null,Dt(t,e))}var Ft={YAML:function(e,i,n){var s,a,r;e.version!==null&&v(e,"duplication of %YAML directive"),n.length!==1&&v(e,"YAML directive accepts exactly one argument"),s=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),s===null&&v(e,"ill-formed argument of the YAML directive"),a=parseInt(s[1],10),r=parseInt(s[2],10),a!==1&&v(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=r<2,r!==1&&r!==2&&ge(e,"unsupported YAML version of the document")},TAG:function(e,i,n){var s,a;n.length!==2&&v(e,"TAG directive accepts exactly two arguments"),s=n[0],a=n[1],St.test(s)||v(e,"ill-formed tag handle (first argument) of the TAG directive"),q.call(e.tagMap,s)&&v(e,'there is a previously declared suffix for "'+s+'" tag handle'),Lt.test(a)||v(e,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{v(e,"tag prefix is malformed: "+a)}e.tagMap[s]=a}};function W(t,e,i,n){var s,a,r,o;if(e<i){if(o=t.input.slice(e,i),n)for(s=0,a=o.length;s<a;s+=1)r=o.charCodeAt(s),r===9||32<=r&&r<=1114111||v(t,"expected valid JSON character");else Dn.test(o)&&v(t,"the stream contains non-printable characters");t.result+=o}}function Ot(t,e,i,n){var s,a,r,o;for(L.isObject(i)||v(t,"cannot merge mappings; the provided source object is unacceptable"),s=Object.keys(i),r=0,o=s.length;r<o;r+=1)a=s[r],q.call(e,a)||(Nt(e,a,i[a]),n[a]=!0)}function Q(t,e,i,n,s,a,r,o,l){var d,p;if(Array.isArray(s))for(s=Array.prototype.slice.call(s),d=0,p=s.length;d<p;d+=1)Array.isArray(s[d])&&v(t,"nested arrays are not supported inside keys"),typeof s=="object"&&$t(s[d])==="[object Object]"&&(s[d]="[object Object]");if(typeof s=="object"&&$t(s)==="[object Object]"&&(s="[object Object]"),s=String(s),e===null&&(e={}),n==="tag:yaml.org,2002:merge")if(Array.isArray(a))for(d=0,p=a.length;d<p;d+=1)Ot(t,e,a[d],i);else Ot(t,e,a,i);else!t.json&&!q.call(i,s)&&q.call(e,s)&&(t.line=r||t.line,t.lineStart=o||t.lineStart,t.position=l||t.position,v(t,"duplicated mapping key")),Nt(e,s,a),delete i[s];return e}function Oe(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):v(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function I(t,e,i){for(var n=0,s=t.input.charCodeAt(t.position);s!==0;){for(;Y(s);)s===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),s=t.input.charCodeAt(++t.position);if(e&&s===35)do s=t.input.charCodeAt(++t.position);while(s!==10&&s!==13&&s!==0);if(R(s))for(Oe(t),s=t.input.charCodeAt(t.position),n++,t.lineIndent=0;s===32;)t.lineIndent++,s=t.input.charCodeAt(++t.position);else break}return i!==-1&&n!==0&&t.lineIndent<i&&ge(t,"deficient indentation"),n}function be(t){var e=t.position,i;return i=t.input.charCodeAt(e),!!((i===45||i===46)&&i===t.input.charCodeAt(e+1)&&i===t.input.charCodeAt(e+2)&&(e+=3,i=t.input.charCodeAt(e),i===0||H(i)))}function He(t,e){e===1?t.result+=" ":e>1&&(t.result+=L.repeat(`
10
- `,e-1))}function Vn(t,e,i){var n,s,a,r,o,l,d,p,u=t.kind,f=t.result,g;if(g=t.input.charCodeAt(t.position),H(g)||Z(g)||g===35||g===38||g===42||g===33||g===124||g===62||g===39||g===34||g===37||g===64||g===96||(g===63||g===45)&&(s=t.input.charCodeAt(t.position+1),H(s)||i&&Z(s)))return!1;for(t.kind="scalar",t.result="",a=r=t.position,o=!1;g!==0;){if(g===58){if(s=t.input.charCodeAt(t.position+1),H(s)||i&&Z(s))break}else if(g===35){if(n=t.input.charCodeAt(t.position-1),H(n))break}else{if(t.position===t.lineStart&&be(t)||i&&Z(g))break;if(R(g))if(l=t.line,d=t.lineStart,p=t.lineIndent,I(t,!1,-1),t.lineIndent>=e){o=!0,g=t.input.charCodeAt(t.position);continue}else{t.position=r,t.line=l,t.lineStart=d,t.lineIndent=p;break}}o&&(W(t,a,r,!1),He(t,t.line-l),a=r=t.position,o=!1),Y(g)||(r=t.position+1),g=t.input.charCodeAt(++t.position)}return W(t,a,r,!1),t.result?!0:(t.kind=u,t.result=f,!1)}function jn(t,e){var i,n,s;if(i=t.input.charCodeAt(t.position),i!==39)return!1;for(t.kind="scalar",t.result="",t.position++,n=s=t.position;(i=t.input.charCodeAt(t.position))!==0;)if(i===39)if(W(t,n,t.position,!0),i=t.input.charCodeAt(++t.position),i===39)n=t.position,t.position++,s=t.position;else return!0;else R(i)?(W(t,n,s,!0),He(t,I(t,!1,e)),n=s=t.position):t.position===t.lineStart&&be(t)?v(t,"unexpected end of the document within a single quoted scalar"):(t.position++,s=t.position);v(t,"unexpected end of the stream within a single quoted scalar")}function Un(t,e){var i,n,s,a,r,o;if(o=t.input.charCodeAt(t.position),o!==34)return!1;for(t.kind="scalar",t.result="",t.position++,i=n=t.position;(o=t.input.charCodeAt(t.position))!==0;){if(o===34)return W(t,i,t.position,!0),t.position++,!0;if(o===92){if(W(t,i,t.position,!0),o=t.input.charCodeAt(++t.position),R(o))I(t,!1,e);else if(o<256&&Tt[o])t.result+=Mt[o],t.position++;else if((r=zn(o))>0){for(s=r,a=0;s>0;s--)o=t.input.charCodeAt(++t.position),(r=Hn(o))>=0?a=(a<<4)+r:v(t,"expected hexadecimal character");t.result+=Rn(a),t.position++}else v(t,"unknown escape sequence");i=n=t.position}else R(o)?(W(t,i,n,!0),He(t,I(t,!1,e)),i=n=t.position):t.position===t.lineStart&&be(t)?v(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}v(t,"unexpected end of the stream within a double quoted scalar")}function qn(t,e){var i=!0,n,s,a,r=t.tag,o,l=t.anchor,d,p,u,f,g,y=Object.create(null),C,w,z,b;if(b=t.input.charCodeAt(t.position),b===91)p=93,g=!1,o=[];else if(b===123)p=125,g=!0,o={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=o),b=t.input.charCodeAt(++t.position);b!==0;){if(I(t,!0,e),b=t.input.charCodeAt(t.position),b===p)return t.position++,t.tag=r,t.anchor=l,t.kind=g?"mapping":"sequence",t.result=o,!0;i?b===44&&v(t,"expected the node content, but found ','"):v(t,"missed comma between flow collection entries"),w=C=z=null,u=f=!1,b===63&&(d=t.input.charCodeAt(t.position+1),H(d)&&(u=f=!0,t.position++,I(t,!0,e))),n=t.line,s=t.lineStart,a=t.position,J(t,e,fe,!1,!0),w=t.tag,C=t.result,I(t,!0,e),b=t.input.charCodeAt(t.position),(f||t.line===n)&&b===58&&(u=!0,b=t.input.charCodeAt(++t.position),I(t,!0,e),J(t,e,fe,!1,!0),z=t.result),g?Q(t,o,y,w,C,z,n,s,a):u?o.push(Q(t,null,y,w,C,z,n,s,a)):o.push(C),I(t,!0,e),b=t.input.charCodeAt(t.position),b===44?(i=!0,b=t.input.charCodeAt(++t.position)):i=!1}v(t,"unexpected end of the stream within a flow collection")}function Wn(t,e){var i,n,s=Fe,a=!1,r=!1,o=e,l=0,d=!1,p,u;if(u=t.input.charCodeAt(t.position),u===124)n=!1;else if(u===62)n=!0;else return!1;for(t.kind="scalar",t.result="";u!==0;)if(u=t.input.charCodeAt(++t.position),u===43||u===45)Fe===s?s=u===43?It:Mn:v(t,"repeat of a chomping mode identifier");else if((p=Bn(u))>=0)p===0?v(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):r?v(t,"repeat of an indentation width identifier"):(o=e+p-1,r=!0);else break;if(Y(u)){do u=t.input.charCodeAt(++t.position);while(Y(u));if(u===35)do u=t.input.charCodeAt(++t.position);while(!R(u)&&u!==0)}for(;u!==0;){for(Oe(t),t.lineIndent=0,u=t.input.charCodeAt(t.position);(!r||t.lineIndent<o)&&u===32;)t.lineIndent++,u=t.input.charCodeAt(++t.position);if(!r&&t.lineIndent>o&&(o=t.lineIndent),R(u)){l++;continue}if(t.lineIndent<o){s===It?t.result+=L.repeat(`
11
- `,a?1+l:l):s===Fe&&a&&(t.result+=`
12
- `);break}for(n?Y(u)?(d=!0,t.result+=L.repeat(`
13
- `,a?1+l:l)):d?(d=!1,t.result+=L.repeat(`
14
- `,l+1)):l===0?a&&(t.result+=" "):t.result+=L.repeat(`
15
- `,l):t.result+=L.repeat(`
16
- `,a?1+l:l),a=!0,r=!0,l=0,i=t.position;!R(u)&&u!==0;)u=t.input.charCodeAt(++t.position);W(t,i,t.position,!1)}return!0}function Ht(t,e){var i,n=t.tag,s=t.anchor,a=[],r,o=!1,l;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=a),l=t.input.charCodeAt(t.position);l!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,v(t,"tab characters must not be used in indentation")),!(l!==45||(r=t.input.charCodeAt(t.position+1),!H(r))));){if(o=!0,t.position++,I(t,!0,-1)&&t.lineIndent<=e){a.push(null),l=t.input.charCodeAt(t.position);continue}if(i=t.line,J(t,e,At,!1,!0),a.push(t.result),I(t,!0,-1),l=t.input.charCodeAt(t.position),(t.line===i||t.lineIndent>e)&&l!==0)v(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return o?(t.tag=n,t.anchor=s,t.kind="sequence",t.result=a,!0):!1}function Yn(t,e,i){var n,s,a,r,o,l,d=t.tag,p=t.anchor,u={},f=Object.create(null),g=null,y=null,C=null,w=!1,z=!1,b;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=u),b=t.input.charCodeAt(t.position);b!==0;){if(!w&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,v(t,"tab characters must not be used in indentation")),n=t.input.charCodeAt(t.position+1),a=t.line,(b===63||b===58)&&H(n))b===63?(w&&(Q(t,u,f,g,y,null,r,o,l),g=y=C=null),z=!0,w=!0,s=!0):w?(w=!1,s=!0):v(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,b=n;else{if(r=t.line,o=t.lineStart,l=t.position,!J(t,i,Et,!1,!0))break;if(t.line===a){for(b=t.input.charCodeAt(t.position);Y(b);)b=t.input.charCodeAt(++t.position);if(b===58)b=t.input.charCodeAt(++t.position),H(b)||v(t,"a whitespace character is expected after the key-value separator within a block mapping"),w&&(Q(t,u,f,g,y,null,r,o,l),g=y=C=null),z=!0,w=!1,s=!1,g=t.tag,y=t.result;else if(z)v(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=d,t.anchor=p,!0}else if(z)v(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=d,t.anchor=p,!0}if((t.line===a||t.lineIndent>e)&&(w&&(r=t.line,o=t.lineStart,l=t.position),J(t,e,me,!0,s)&&(w?y=t.result:C=t.result),w||(Q(t,u,f,g,y,C,r,o,l),g=y=C=null),I(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&b!==0)v(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return w&&Q(t,u,f,g,y,null,r,o,l),z&&(t.tag=d,t.anchor=p,t.kind="mapping",t.result=u),z}function Gn(t){var e,i=!1,n=!1,s,a,r;if(r=t.input.charCodeAt(t.position),r!==33)return!1;if(t.tag!==null&&v(t,"duplication of a tag property"),r=t.input.charCodeAt(++t.position),r===60?(i=!0,r=t.input.charCodeAt(++t.position)):r===33?(n=!0,s="!!",r=t.input.charCodeAt(++t.position)):s="!",e=t.position,i){do r=t.input.charCodeAt(++t.position);while(r!==0&&r!==62);t.position<t.length?(a=t.input.slice(e,t.position),r=t.input.charCodeAt(++t.position)):v(t,"unexpected end of the stream within a verbatim tag")}else{for(;r!==0&&!H(r);)r===33&&(n?v(t,"tag suffix cannot contain exclamation marks"):(s=t.input.slice(e-1,t.position+1),St.test(s)||v(t,"named tag handle cannot contain such characters"),n=!0,e=t.position+1)),r=t.input.charCodeAt(++t.position);a=t.input.slice(e,t.position),On.test(a)&&v(t,"tag suffix cannot contain flow indicator characters")}a&&!Lt.test(a)&&v(t,"tag name cannot contain such characters: "+a);try{a=decodeURIComponent(a)}catch{v(t,"tag name is malformed: "+a)}return i?t.tag=a:q.call(t.tagMap,s)?t.tag=t.tagMap[s]+a:s==="!"?t.tag="!"+a:s==="!!"?t.tag="tag:yaml.org,2002:"+a:v(t,'undeclared tag handle "'+s+'"'),!0}function Zn(t){var e,i;if(i=t.input.charCodeAt(t.position),i!==38)return!1;for(t.anchor!==null&&v(t,"duplication of an anchor property"),i=t.input.charCodeAt(++t.position),e=t.position;i!==0&&!H(i)&&!Z(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&v(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function Kn(t){var e,i,n;if(n=t.input.charCodeAt(t.position),n!==42)return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;n!==0&&!H(n)&&!Z(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&v(t,"name of an alias node must contain at least one character"),i=t.input.slice(e,t.position),q.call(t.anchorMap,i)||v(t,'unidentified alias "'+i+'"'),t.result=t.anchorMap[i],I(t,!0,-1),!0}function J(t,e,i,n,s){var a,r,o,l=1,d=!1,p=!1,u,f,g,y,C,w;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,a=r=o=me===i||At===i,n&&I(t,!0,-1)&&(d=!0,t.lineIndent>e?l=1:t.lineIndent===e?l=0:t.lineIndent<e&&(l=-1)),l===1)for(;Gn(t)||Zn(t);)I(t,!0,-1)?(d=!0,o=a,t.lineIndent>e?l=1:t.lineIndent===e?l=0:t.lineIndent<e&&(l=-1)):o=!1;if(o&&(o=d||s),(l===1||me===i)&&(fe===i||Et===i?C=e:C=e+1,w=t.position-t.lineStart,l===1?o&&(Ht(t,w)||Yn(t,w,C))||qn(t,C)?p=!0:(r&&Wn(t,C)||jn(t,C)||Un(t,C)?p=!0:Kn(t)?(p=!0,(t.tag!==null||t.anchor!==null)&&v(t,"alias node should not have any properties")):Vn(t,C,fe===i)&&(p=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):l===0&&(p=o&&Ht(t,w))),t.tag===null)t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);else if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&v(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),u=0,f=t.implicitTypes.length;u<f;u+=1)if(y=t.implicitTypes[u],y.resolve(t.result)){t.result=y.construct(t.result),t.tag=y.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else if(t.tag!=="!"){if(q.call(t.typeMap[t.kind||"fallback"],t.tag))y=t.typeMap[t.kind||"fallback"][t.tag];else for(y=null,g=t.typeMap.multi[t.kind||"fallback"],u=0,f=g.length;u<f;u+=1)if(t.tag.slice(0,g[u].tag.length)===g[u].tag){y=g[u];break}y||v(t,"unknown tag !<"+t.tag+">"),t.result!==null&&y.kind!==t.kind&&v(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+y.kind+'", not "'+t.kind+'"'),y.resolve(t.result,t.tag)?(t.result=y.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):v(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||p}function Qn(t){var e=t.position,i,n,s,a=!1,r;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(r=t.input.charCodeAt(t.position))!==0&&(I(t,!0,-1),r=t.input.charCodeAt(t.position),!(t.lineIndent>0||r!==37));){for(a=!0,r=t.input.charCodeAt(++t.position),i=t.position;r!==0&&!H(r);)r=t.input.charCodeAt(++t.position);for(n=t.input.slice(i,t.position),s=[],n.length<1&&v(t,"directive name must not be less than one character in length");r!==0;){for(;Y(r);)r=t.input.charCodeAt(++t.position);if(r===35){do r=t.input.charCodeAt(++t.position);while(r!==0&&!R(r));break}if(R(r))break;for(i=t.position;r!==0&&!H(r);)r=t.input.charCodeAt(++t.position);s.push(t.input.slice(i,t.position))}r!==0&&Oe(t),q.call(Ft,n)?Ft[n](t,n,s):ge(t,'unknown document directive "'+n+'"')}if(I(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,I(t,!0,-1)):a&&v(t,"directives end mark is expected"),J(t,t.lineIndent-1,me,!1,!0),I(t,!0,-1),t.checkLineBreaks&&Fn.test(t.input.slice(e,t.position))&&ge(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&be(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,I(t,!0,-1));return}if(t.position<t.length-1)v(t,"end of the stream or a document separator is expected");else return}function zt(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
17
- `),t.charCodeAt(0)===65279&&(t=t.slice(1)));var i=new Pn(t,e),n=t.indexOf("\0");for(n!==-1&&(i.position=n,v(i,"null byte is not allowed in input")),i.input+="\0";i.input.charCodeAt(i.position)===32;)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)Qn(i);return i.documents}function Jn(t,e,i){e!==null&&typeof e=="object"&&typeof i>"u"&&(i=e,e=null);var n=zt(t,i);if(typeof e!="function")return n;for(var s=0,a=n.length;s<a;s+=1)e(n[s])}function Xn(t,e){var i=zt(t,e);if(i.length!==0){if(i.length===1)return i[0];throw new M("expected a single document in the stream, but found more")}}var es=Jn,ts=Xn,Bt={loadAll:es,load:ts},Rt=Object.prototype.toString,Pt=Object.prototype.hasOwnProperty,ze=65279,is=9,ae=10,ns=13,ss=32,as=33,rs=34,Be=35,os=37,ls=38,cs=39,ds=42,Vt=44,hs=45,ve=58,us=61,ps=62,fs=63,ms=64,jt=91,Ut=93,gs=96,qt=123,bs=124,Wt=125,_={};_[0]="\\0",_[7]="\\a",_[8]="\\b",_[9]="\\t",_[10]="\\n",_[11]="\\v",_[12]="\\f",_[13]="\\r",_[27]="\\e",_[34]='\\"',_[92]="\\\\",_[133]="\\N",_[160]="\\_",_[8232]="\\L",_[8233]="\\P";var vs=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],ys=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function xs(t,e){var i,n,s,a,r,o,l;if(e===null)return{};for(i={},n=Object.keys(e),s=0,a=n.length;s<a;s+=1)r=n[s],o=String(e[r]),r.slice(0,2)==="!!"&&(r="tag:yaml.org,2002:"+r.slice(2)),l=t.compiledTypeMap.fallback[r],l&&Pt.call(l.styleAliases,o)&&(o=l.styleAliases[o]),i[r]=o;return i}function Cs(t){var e,i,n;if(e=t.toString(16).toUpperCase(),t<=255)i="x",n=2;else if(t<=65535)i="u",n=4;else if(t<=4294967295)i="U",n=8;else throw new M("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+i+L.repeat("0",n-e.length)+e}var ks=1,re=2;function ws(t){this.schema=t.schema||De,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=L.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=xs(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType=t.quotingType==='"'?re:ks,this.forceQuotes=t.forceQuotes||!1,this.replacer=typeof t.replacer=="function"?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function Yt(t,e){for(var i=L.repeat(" ",e),n=0,s=-1,a="",r,o=t.length;n<o;)s=t.indexOf(`
18
- `,n),s===-1?(r=t.slice(n),n=o):(r=t.slice(n,s+1),n=s+1),r.length&&r!==`
19
- `&&(a+=i),a+=r;return a}function Re(t,e){return`
20
- `+L.repeat(" ",t.indent*e)}function Es(t,e){var i,n,s;for(i=0,n=t.implicitTypes.length;i<n;i+=1)if(s=t.implicitTypes[i],s.resolve(e))return!0;return!1}function ye(t){return t===ss||t===is}function oe(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==ze||65536<=t&&t<=1114111}function Gt(t){return oe(t)&&t!==ze&&t!==ns&&t!==ae}function Zt(t,e,i){var n=Gt(t),s=n&&!ye(t);return(i?n:n&&t!==Vt&&t!==jt&&t!==Ut&&t!==qt&&t!==Wt)&&t!==Be&&!(e===ve&&!s)||Gt(e)&&!ye(e)&&t===Be||e===ve&&s}function As(t){return oe(t)&&t!==ze&&!ye(t)&&t!==hs&&t!==fs&&t!==ve&&t!==Vt&&t!==jt&&t!==Ut&&t!==qt&&t!==Wt&&t!==Be&&t!==ls&&t!==ds&&t!==as&&t!==bs&&t!==us&&t!==ps&&t!==cs&&t!==rs&&t!==os&&t!==ms&&t!==gs}function Is(t){return!ye(t)&&t!==ve}function le(t,e){var i=t.charCodeAt(e),n;return i>=55296&&i<=56319&&e+1<t.length&&(n=t.charCodeAt(e+1),n>=56320&&n<=57343)?(i-55296)*1024+n-56320+65536:i}function Kt(t){var e=/^\n* /;return e.test(t)}var Qt=1,Pe=2,Jt=3,Xt=4,X=5;function Ss(t,e,i,n,s,a,r,o){var l,d=0,p=null,u=!1,f=!1,g=n!==-1,y=-1,C=As(le(t,0))&&Is(le(t,t.length-1));if(e||r)for(l=0;l<t.length;d>=65536?l+=2:l++){if(d=le(t,l),!oe(d))return X;C=C&&Zt(d,p,o),p=d}else{for(l=0;l<t.length;d>=65536?l+=2:l++){if(d=le(t,l),d===ae)u=!0,g&&(f=f||l-y-1>n&&t[y+1]!==" ",y=l);else if(!oe(d))return X;C=C&&Zt(d,p,o),p=d}f=f||g&&l-y-1>n&&t[y+1]!==" "}return!u&&!f?C&&!r&&!s(t)?Qt:a===re?X:Pe:i>9&&Kt(t)?X:r?a===re?X:Pe:f?Xt:Jt}function Ls(t,e,i,n,s){t.dump=(function(){if(e.length===0)return t.quotingType===re?'""':"''";if(!t.noCompatMode&&(vs.indexOf(e)!==-1||ys.test(e)))return t.quotingType===re?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,i),r=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),o=n||t.flowLevel>-1&&i>=t.flowLevel;function l(d){return Es(t,d)}switch(Ss(e,o,t.indent,r,l,t.quotingType,t.forceQuotes&&!n,s)){case Qt:return e;case Pe:return"'"+e.replace(/'/g,"''")+"'";case Jt:return"|"+ei(e,t.indent)+ti(Yt(e,a));case Xt:return">"+ei(e,t.indent)+ti(Yt($s(e,r),a));case X:return'"'+_s(e)+'"';default:throw new M("impossible error: invalid scalar style")}})()}function ei(t,e){var i=Kt(t)?String(e):"",n=t[t.length-1]===`
21
- `,s=n&&(t[t.length-2]===`
3
+ `+t.mark.snippet),a+" "+i):a}function Ee(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=fi(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Ee.prototype=Object.create(Error.prototype),Ee.prototype.constructor=Ee,Ee.prototype.toString=function(e){return this.name+": "+fi(this,e)};var q=Ee;function ut(t,e,i,a,n){var r="",s="",o=Math.floor(n/2)-1;return a-e>o&&(r=" ... ",e=a-o+r.length),i-a>o&&(s=" ...",i=a+o-s.length),{str:r+t.slice(e,i).replace(/\t/g,"→")+s,pos:a-e+r.length}}function ht(t,e){return B.repeat(" ",e-t.length)+t}function Er(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var i=/\r?\n|\r|\0/g,a=[0],n=[],r,s=-1;r=i.exec(t.buffer);)n.push(r.index),a.push(r.index+r[0].length),t.position<=r.index&&s<0&&(s=a.length-2);s<0&&(s=a.length-1);var o="",l,d,u=Math.min(t.line+e.linesAfter,n.length).toString().length,h=e.maxLength-(e.indent+u+3);for(l=1;l<=e.linesBefore&&!(s-l<0);l++)d=ut(t.buffer,a[s-l],n[s-l],t.position-(a[s]-a[s-l]),h),o=B.repeat(" ",e.indent)+ht((t.line-l+1).toString(),u)+" | "+d.str+`
4
+ `+o;for(d=ut(t.buffer,a[s],n[s],t.position,h),o+=B.repeat(" ",e.indent)+ht((t.line+1).toString(),u)+" | "+d.str+`
5
+ `,o+=B.repeat("-",e.indent+u+3+d.pos)+`^
6
+ `,l=1;l<=e.linesAfter&&!(s+l>=n.length);l++)d=ut(t.buffer,a[s+l],n[s+l],t.position-(a[s]-a[s+l]),h),o+=B.repeat(" ",e.indent)+ht((t.line+l+1).toString(),u)+" | "+d.str+`
7
+ `;return o.replace(/\n$/,"")}var Ir=Er,Sr=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Lr=["scalar","sequence","mapping"];function Nr(t){var e={};return t!==null&&Object.keys(t).forEach(function(i){t[i].forEach(function(a){e[String(a)]=i})}),e}function Tr(t,e){if(e=e||{},Object.keys(e).forEach(function(i){if(Sr.indexOf(i)===-1)throw new q('Unknown option "'+i+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(i){return i},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=Nr(e.styleAliases||null),Lr.indexOf(this.kind)===-1)throw new q('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var j=Tr;function gi(t,e){var i=[];return t[e].forEach(function(a){var n=i.length;i.forEach(function(r,s){r.tag===a.tag&&r.kind===a.kind&&r.multi===a.multi&&(n=s)}),i[n]=a}),i}function zr(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,i;function a(n){n.multi?(t.multi[n.kind].push(n),t.multi.fallback.push(n)):t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,i=arguments.length;e<i;e+=1)arguments[e].forEach(a);return t}function pt(t){return this.extend(t)}pt.prototype.extend=function(e){var i=[],a=[];if(e instanceof j)a.push(e);else if(Array.isArray(e))a=a.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(i=i.concat(e.implicit)),e.explicit&&(a=a.concat(e.explicit));else throw new q("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");i.forEach(function(r){if(!(r instanceof j))throw new q("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(r.loadKind&&r.loadKind!=="scalar")throw new q("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(r.multi)throw new q("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),a.forEach(function(r){if(!(r instanceof j))throw new q("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var n=Object.create(pt.prototype);return n.implicit=(this.implicit||[]).concat(i),n.explicit=(this.explicit||[]).concat(a),n.compiledImplicit=gi(n,"implicit"),n.compiledExplicit=gi(n,"explicit"),n.compiledTypeMap=zr(n.compiledImplicit,n.compiledExplicit),n};var bi=pt,vi=new j("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),yi=new j("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),_i=new j("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),xi=new bi({explicit:[vi,yi,_i]});function Dr(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Or(){return null}function Mr(t){return t===null}var wi=new j("tag:yaml.org,2002:null",{kind:"scalar",resolve:Dr,construct:Or,predicate:Mr,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Hr(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function Fr(t){return t==="true"||t==="True"||t==="TRUE"}function Vr(t){return Object.prototype.toString.call(t)==="[object Boolean]"}var ki=new j("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Hr,construct:Fr,predicate:Vr,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function Br(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function jr(t){return 48<=t&&t<=55}function Rr(t){return 48<=t&&t<=57}function Pr(t){if(t===null)return!1;var e=t.length,i=0,a=!1,n;if(!e)return!1;if(n=t[i],(n==="-"||n==="+")&&(n=t[++i]),n==="0"){if(i+1===e)return!0;if(n=t[++i],n==="b"){for(i++;i<e;i++)if(n=t[i],n!=="_"){if(n!=="0"&&n!=="1")return!1;a=!0}return a&&n!=="_"}if(n==="x"){for(i++;i<e;i++)if(n=t[i],n!=="_"){if(!Br(t.charCodeAt(i)))return!1;a=!0}return a&&n!=="_"}if(n==="o"){for(i++;i<e;i++)if(n=t[i],n!=="_"){if(!jr(t.charCodeAt(i)))return!1;a=!0}return a&&n!=="_"}}if(n==="_")return!1;for(;i<e;i++)if(n=t[i],n!=="_"){if(!Rr(t.charCodeAt(i)))return!1;a=!0}return!(!a||n==="_")}function Ur(t){var e=t,i=1,a;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),a=e[0],(a==="-"||a==="+")&&(a==="-"&&(i=-1),e=e.slice(1),a=e[0]),e==="0")return 0;if(a==="0"){if(e[1]==="b")return i*parseInt(e.slice(2),2);if(e[1]==="x")return i*parseInt(e.slice(2),16);if(e[1]==="o")return i*parseInt(e.slice(2),8)}return i*parseInt(e,10)}function qr(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!B.isNegativeZero(t)}var Ci=new j("tag:yaml.org,2002:int",{kind:"scalar",resolve:Pr,construct:Ur,predicate:qr,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Wr=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Yr(t){return!(t===null||!Wr.test(t)||t[t.length-1]==="_")}function Gr(t){var e,i;return e=t.replace(/_/g,"").toLowerCase(),i=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:i*parseFloat(e,10)}var Kr=/^[-+]?[0-9]+e/;function Zr(t,e){var i;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(B.isNegativeZero(t))return"-0.0";return i=t.toString(10),Kr.test(i)?i.replace("e",".e"):i}function Qr(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||B.isNegativeZero(t))}var $i=new j("tag:yaml.org,2002:float",{kind:"scalar",resolve:Yr,construct:Gr,predicate:Qr,represent:Zr,defaultStyle:"lowercase"}),Ai=xi.extend({implicit:[wi,ki,Ci,$i]}),Ei=Ai,Ii=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Si=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Jr(t){return t===null?!1:Ii.exec(t)!==null||Si.exec(t)!==null}function Xr(t){var e,i,a,n,r,s,o,l=0,d=null,u,h,m;if(e=Ii.exec(t),e===null&&(e=Si.exec(t)),e===null)throw new Error("Date resolve error");if(i=+e[1],a=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(i,a,n));if(r=+e[4],s=+e[5],o=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],h=+(e[11]||0),d=(u*60+h)*6e4,e[9]==="-"&&(d=-d)),m=new Date(Date.UTC(i,a,n,r,s,o,l)),d&&m.setTime(m.getTime()-d),m}function es(t){return t.toISOString()}var Li=new j("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Jr,construct:Xr,instanceOf:Date,represent:es});function ts(t){return t==="<<"||t===null}var Ni=new j("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ts}),mt=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
8
+ \r`;function is(t){if(t===null)return!1;var e,i,a=0,n=t.length,r=mt;for(i=0;i<n;i++)if(e=r.indexOf(t.charAt(i)),!(e>64)){if(e<0)return!1;a+=6}return a%8===0}function as(t){var e,i,a=t.replace(/[\r\n=]/g,""),n=a.length,r=mt,s=0,o=[];for(e=0;e<n;e++)e%4===0&&e&&(o.push(s>>16&255),o.push(s>>8&255),o.push(s&255)),s=s<<6|r.indexOf(a.charAt(e));return i=n%4*6,i===0?(o.push(s>>16&255),o.push(s>>8&255),o.push(s&255)):i===18?(o.push(s>>10&255),o.push(s>>2&255)):i===12&&o.push(s>>4&255),new Uint8Array(o)}function ns(t){var e="",i=0,a,n,r=t.length,s=mt;for(a=0;a<r;a++)a%3===0&&a&&(e+=s[i>>18&63],e+=s[i>>12&63],e+=s[i>>6&63],e+=s[i&63]),i=(i<<8)+t[a];return n=r%3,n===0?(e+=s[i>>18&63],e+=s[i>>12&63],e+=s[i>>6&63],e+=s[i&63]):n===2?(e+=s[i>>10&63],e+=s[i>>4&63],e+=s[i<<2&63],e+=s[64]):n===1&&(e+=s[i>>2&63],e+=s[i<<4&63],e+=s[64],e+=s[64]),e}function rs(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var Ti=new j("tag:yaml.org,2002:binary",{kind:"scalar",resolve:is,construct:as,predicate:rs,represent:ns}),ss=Object.prototype.hasOwnProperty,os=Object.prototype.toString;function ls(t){if(t===null)return!0;var e=[],i,a,n,r,s,o=t;for(i=0,a=o.length;i<a;i+=1){if(n=o[i],s=!1,os.call(n)!=="[object Object]")return!1;for(r in n)if(ss.call(n,r))if(!s)s=!0;else return!1;if(!s)return!1;if(e.indexOf(r)===-1)e.push(r);else return!1}return!0}function ds(t){return t!==null?t:[]}var zi=new j("tag:yaml.org,2002:omap",{kind:"sequence",resolve:ls,construct:ds}),cs=Object.prototype.toString;function us(t){if(t===null)return!0;var e,i,a,n,r,s=t;for(r=new Array(s.length),e=0,i=s.length;e<i;e+=1){if(a=s[e],cs.call(a)!=="[object Object]"||(n=Object.keys(a),n.length!==1))return!1;r[e]=[n[0],a[n[0]]]}return!0}function hs(t){if(t===null)return[];var e,i,a,n,r,s=t;for(r=new Array(s.length),e=0,i=s.length;e<i;e+=1)a=s[e],n=Object.keys(a),r[e]=[n[0],a[n[0]]];return r}var Di=new j("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:us,construct:hs}),ps=Object.prototype.hasOwnProperty;function ms(t){if(t===null)return!0;var e,i=t;for(e in i)if(ps.call(i,e)&&i[e]!==null)return!1;return!0}function fs(t){return t!==null?t:{}}var Oi=new j("tag:yaml.org,2002:set",{kind:"mapping",resolve:ms,construct:fs}),ft=Ei.extend({implicit:[Li,Ni],explicit:[Ti,zi,Di,Oi]}),oe=Object.prototype.hasOwnProperty,Fe=1,Mi=2,Hi=3,Ve=4,gt=1,gs=2,Fi=3,bs=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,vs=/[\x85\u2028\u2029]/,ys=/[,\[\]\{\}]/,Vi=/^(?:!|!!|![a-z\-]+!)$/i,Bi=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function ji(t){return Object.prototype.toString.call(t)}function te(t){return t===10||t===13}function ce(t){return t===9||t===32}function K(t){return t===9||t===32||t===10||t===13}function be(t){return t===44||t===91||t===93||t===123||t===125}function _s(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function xs(t){return t===120?2:t===117?4:t===85?8:0}function ws(t){return 48<=t&&t<=57?t-48:-1}function Ri(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
9
+ `:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"…":t===95?" ":t===76?"\u2028":t===80?"\u2029":""}function ks(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}function Pi(t,e,i){e==="__proto__"?Object.defineProperty(t,e,{configurable:!0,enumerable:!0,writable:!0,value:i}):t[e]=i}for(var Ui=new Array(256),qi=new Array(256),ve=0;ve<256;ve++)Ui[ve]=Ri(ve)?1:0,qi[ve]=Ri(ve);function Cs(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||ft,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Wi(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=Ir(i),new q(e,i)}function k(t,e){throw Wi(t,e)}function Be(t,e){t.onWarning&&t.onWarning.call(null,Wi(t,e))}var Yi={YAML:function(e,i,a){var n,r,s;e.version!==null&&k(e,"duplication of %YAML directive"),a.length!==1&&k(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(a[0]),n===null&&k(e,"ill-formed argument of the YAML directive"),r=parseInt(n[1],10),s=parseInt(n[2],10),r!==1&&k(e,"unacceptable YAML version of the document"),e.version=a[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&Be(e,"unsupported YAML version of the document")},TAG:function(e,i,a){var n,r;a.length!==2&&k(e,"TAG directive accepts exactly two arguments"),n=a[0],r=a[1],Vi.test(n)||k(e,"ill-formed tag handle (first argument) of the TAG directive"),oe.call(e.tagMap,n)&&k(e,'there is a previously declared suffix for "'+n+'" tag handle'),Bi.test(r)||k(e,"ill-formed tag prefix (second argument) of the TAG directive");try{r=decodeURIComponent(r)}catch{k(e,"tag prefix is malformed: "+r)}e.tagMap[n]=r}};function le(t,e,i,a){var n,r,s,o;if(e<i){if(o=t.input.slice(e,i),a)for(n=0,r=o.length;n<r;n+=1)s=o.charCodeAt(n),s===9||32<=s&&s<=1114111||k(t,"expected valid JSON character");else bs.test(o)&&k(t,"the stream contains non-printable characters");t.result+=o}}function Gi(t,e,i,a){var n,r,s,o;for(B.isObject(i)||k(t,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(i),s=0,o=n.length;s<o;s+=1)r=n[s],oe.call(e,r)||(Pi(e,r,i[r]),a[r]=!0)}function ye(t,e,i,a,n,r,s,o,l){var d,u;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),d=0,u=n.length;d<u;d+=1)Array.isArray(n[d])&&k(t,"nested arrays are not supported inside keys"),typeof n=="object"&&ji(n[d])==="[object Object]"&&(n[d]="[object Object]");if(typeof n=="object"&&ji(n)==="[object Object]"&&(n="[object Object]"),n=String(n),e===null&&(e={}),a==="tag:yaml.org,2002:merge")if(Array.isArray(r))for(d=0,u=r.length;d<u;d+=1)Gi(t,e,r[d],i);else Gi(t,e,r,i);else!t.json&&!oe.call(i,n)&&oe.call(e,n)&&(t.line=s||t.line,t.lineStart=o||t.lineStart,t.position=l||t.position,k(t,"duplicated mapping key")),Pi(e,n,r),delete i[n];return e}function bt(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):k(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function H(t,e,i){for(var a=0,n=t.input.charCodeAt(t.position);n!==0;){for(;ce(n);)n===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),n=t.input.charCodeAt(++t.position);if(e&&n===35)do n=t.input.charCodeAt(++t.position);while(n!==10&&n!==13&&n!==0);if(te(n))for(bt(t),n=t.input.charCodeAt(t.position),a++,t.lineIndent=0;n===32;)t.lineIndent++,n=t.input.charCodeAt(++t.position);else break}return i!==-1&&a!==0&&t.lineIndent<i&&Be(t,"deficient indentation"),a}function je(t){var e=t.position,i;return i=t.input.charCodeAt(e),!!((i===45||i===46)&&i===t.input.charCodeAt(e+1)&&i===t.input.charCodeAt(e+2)&&(e+=3,i=t.input.charCodeAt(e),i===0||K(i)))}function vt(t,e){e===1?t.result+=" ":e>1&&(t.result+=B.repeat(`
10
+ `,e-1))}function $s(t,e,i){var a,n,r,s,o,l,d,u,h=t.kind,m=t.result,f;if(f=t.input.charCodeAt(t.position),K(f)||be(f)||f===35||f===38||f===42||f===33||f===124||f===62||f===39||f===34||f===37||f===64||f===96||(f===63||f===45)&&(n=t.input.charCodeAt(t.position+1),K(n)||i&&be(n)))return!1;for(t.kind="scalar",t.result="",r=s=t.position,o=!1;f!==0;){if(f===58){if(n=t.input.charCodeAt(t.position+1),K(n)||i&&be(n))break}else if(f===35){if(a=t.input.charCodeAt(t.position-1),K(a))break}else{if(t.position===t.lineStart&&je(t)||i&&be(f))break;if(te(f))if(l=t.line,d=t.lineStart,u=t.lineIndent,H(t,!1,-1),t.lineIndent>=e){o=!0,f=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=l,t.lineStart=d,t.lineIndent=u;break}}o&&(le(t,r,s,!1),vt(t,t.line-l),r=s=t.position,o=!1),ce(f)||(s=t.position+1),f=t.input.charCodeAt(++t.position)}return le(t,r,s,!1),t.result?!0:(t.kind=h,t.result=m,!1)}function As(t,e){var i,a,n;if(i=t.input.charCodeAt(t.position),i!==39)return!1;for(t.kind="scalar",t.result="",t.position++,a=n=t.position;(i=t.input.charCodeAt(t.position))!==0;)if(i===39)if(le(t,a,t.position,!0),i=t.input.charCodeAt(++t.position),i===39)a=t.position,t.position++,n=t.position;else return!0;else te(i)?(le(t,a,n,!0),vt(t,H(t,!1,e)),a=n=t.position):t.position===t.lineStart&&je(t)?k(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);k(t,"unexpected end of the stream within a single quoted scalar")}function Es(t,e){var i,a,n,r,s,o;if(o=t.input.charCodeAt(t.position),o!==34)return!1;for(t.kind="scalar",t.result="",t.position++,i=a=t.position;(o=t.input.charCodeAt(t.position))!==0;){if(o===34)return le(t,i,t.position,!0),t.position++,!0;if(o===92){if(le(t,i,t.position,!0),o=t.input.charCodeAt(++t.position),te(o))H(t,!1,e);else if(o<256&&Ui[o])t.result+=qi[o],t.position++;else if((s=xs(o))>0){for(n=s,r=0;n>0;n--)o=t.input.charCodeAt(++t.position),(s=_s(o))>=0?r=(r<<4)+s:k(t,"expected hexadecimal character");t.result+=ks(r),t.position++}else k(t,"unknown escape sequence");i=a=t.position}else te(o)?(le(t,i,a,!0),vt(t,H(t,!1,e)),i=a=t.position):t.position===t.lineStart&&je(t)?k(t,"unexpected end of the document within a double quoted scalar"):(t.position++,a=t.position)}k(t,"unexpected end of the stream within a double quoted scalar")}function Is(t,e){var i=!0,a,n,r,s=t.tag,o,l=t.anchor,d,u,h,m,f,b=Object.create(null),y,_,x,w;if(w=t.input.charCodeAt(t.position),w===91)u=93,f=!1,o=[];else if(w===123)u=125,f=!0,o={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=o),w=t.input.charCodeAt(++t.position);w!==0;){if(H(t,!0,e),w=t.input.charCodeAt(t.position),w===u)return t.position++,t.tag=s,t.anchor=l,t.kind=f?"mapping":"sequence",t.result=o,!0;i?w===44&&k(t,"expected the node content, but found ','"):k(t,"missed comma between flow collection entries"),_=y=x=null,h=m=!1,w===63&&(d=t.input.charCodeAt(t.position+1),K(d)&&(h=m=!0,t.position++,H(t,!0,e))),a=t.line,n=t.lineStart,r=t.position,_e(t,e,Fe,!1,!0),_=t.tag,y=t.result,H(t,!0,e),w=t.input.charCodeAt(t.position),(m||t.line===a)&&w===58&&(h=!0,w=t.input.charCodeAt(++t.position),H(t,!0,e),_e(t,e,Fe,!1,!0),x=t.result),f?ye(t,o,b,_,y,x,a,n,r):h?o.push(ye(t,null,b,_,y,x,a,n,r)):o.push(y),H(t,!0,e),w=t.input.charCodeAt(t.position),w===44?(i=!0,w=t.input.charCodeAt(++t.position)):i=!1}k(t,"unexpected end of the stream within a flow collection")}function Ss(t,e){var i,a,n=gt,r=!1,s=!1,o=e,l=0,d=!1,u,h;if(h=t.input.charCodeAt(t.position),h===124)a=!1;else if(h===62)a=!0;else return!1;for(t.kind="scalar",t.result="";h!==0;)if(h=t.input.charCodeAt(++t.position),h===43||h===45)gt===n?n=h===43?Fi:gs:k(t,"repeat of a chomping mode identifier");else if((u=ws(h))>=0)u===0?k(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?k(t,"repeat of an indentation width identifier"):(o=e+u-1,s=!0);else break;if(ce(h)){do h=t.input.charCodeAt(++t.position);while(ce(h));if(h===35)do h=t.input.charCodeAt(++t.position);while(!te(h)&&h!==0)}for(;h!==0;){for(bt(t),t.lineIndent=0,h=t.input.charCodeAt(t.position);(!s||t.lineIndent<o)&&h===32;)t.lineIndent++,h=t.input.charCodeAt(++t.position);if(!s&&t.lineIndent>o&&(o=t.lineIndent),te(h)){l++;continue}if(t.lineIndent<o){n===Fi?t.result+=B.repeat(`
11
+ `,r?1+l:l):n===gt&&r&&(t.result+=`
12
+ `);break}for(a?ce(h)?(d=!0,t.result+=B.repeat(`
13
+ `,r?1+l:l)):d?(d=!1,t.result+=B.repeat(`
14
+ `,l+1)):l===0?r&&(t.result+=" "):t.result+=B.repeat(`
15
+ `,l):t.result+=B.repeat(`
16
+ `,r?1+l:l),r=!0,s=!0,l=0,i=t.position;!te(h)&&h!==0;)h=t.input.charCodeAt(++t.position);le(t,i,t.position,!1)}return!0}function Ki(t,e){var i,a=t.tag,n=t.anchor,r=[],s,o=!1,l;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=r),l=t.input.charCodeAt(t.position);l!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,k(t,"tab characters must not be used in indentation")),!(l!==45||(s=t.input.charCodeAt(t.position+1),!K(s))));){if(o=!0,t.position++,H(t,!0,-1)&&t.lineIndent<=e){r.push(null),l=t.input.charCodeAt(t.position);continue}if(i=t.line,_e(t,e,Hi,!1,!0),r.push(t.result),H(t,!0,-1),l=t.input.charCodeAt(t.position),(t.line===i||t.lineIndent>e)&&l!==0)k(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return o?(t.tag=a,t.anchor=n,t.kind="sequence",t.result=r,!0):!1}function Ls(t,e,i){var a,n,r,s,o,l,d=t.tag,u=t.anchor,h={},m=Object.create(null),f=null,b=null,y=null,_=!1,x=!1,w;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=h),w=t.input.charCodeAt(t.position);w!==0;){if(!_&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,k(t,"tab characters must not be used in indentation")),a=t.input.charCodeAt(t.position+1),r=t.line,(w===63||w===58)&&K(a))w===63?(_&&(ye(t,h,m,f,b,null,s,o,l),f=b=y=null),x=!0,_=!0,n=!0):_?(_=!1,n=!0):k(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,w=a;else{if(s=t.line,o=t.lineStart,l=t.position,!_e(t,i,Mi,!1,!0))break;if(t.line===r){for(w=t.input.charCodeAt(t.position);ce(w);)w=t.input.charCodeAt(++t.position);if(w===58)w=t.input.charCodeAt(++t.position),K(w)||k(t,"a whitespace character is expected after the key-value separator within a block mapping"),_&&(ye(t,h,m,f,b,null,s,o,l),f=b=y=null),x=!0,_=!1,n=!1,f=t.tag,b=t.result;else if(x)k(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=d,t.anchor=u,!0}else if(x)k(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=d,t.anchor=u,!0}if((t.line===r||t.lineIndent>e)&&(_&&(s=t.line,o=t.lineStart,l=t.position),_e(t,e,Ve,!0,n)&&(_?b=t.result:y=t.result),_||(ye(t,h,m,f,b,y,s,o,l),f=b=y=null),H(t,!0,-1),w=t.input.charCodeAt(t.position)),(t.line===r||t.lineIndent>e)&&w!==0)k(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return _&&ye(t,h,m,f,b,null,s,o,l),x&&(t.tag=d,t.anchor=u,t.kind="mapping",t.result=h),x}function Ns(t){var e,i=!1,a=!1,n,r,s;if(s=t.input.charCodeAt(t.position),s!==33)return!1;if(t.tag!==null&&k(t,"duplication of a tag property"),s=t.input.charCodeAt(++t.position),s===60?(i=!0,s=t.input.charCodeAt(++t.position)):s===33?(a=!0,n="!!",s=t.input.charCodeAt(++t.position)):n="!",e=t.position,i){do s=t.input.charCodeAt(++t.position);while(s!==0&&s!==62);t.position<t.length?(r=t.input.slice(e,t.position),s=t.input.charCodeAt(++t.position)):k(t,"unexpected end of the stream within a verbatim tag")}else{for(;s!==0&&!K(s);)s===33&&(a?k(t,"tag suffix cannot contain exclamation marks"):(n=t.input.slice(e-1,t.position+1),Vi.test(n)||k(t,"named tag handle cannot contain such characters"),a=!0,e=t.position+1)),s=t.input.charCodeAt(++t.position);r=t.input.slice(e,t.position),ys.test(r)&&k(t,"tag suffix cannot contain flow indicator characters")}r&&!Bi.test(r)&&k(t,"tag name cannot contain such characters: "+r);try{r=decodeURIComponent(r)}catch{k(t,"tag name is malformed: "+r)}return i?t.tag=r:oe.call(t.tagMap,n)?t.tag=t.tagMap[n]+r:n==="!"?t.tag="!"+r:n==="!!"?t.tag="tag:yaml.org,2002:"+r:k(t,'undeclared tag handle "'+n+'"'),!0}function Ts(t){var e,i;if(i=t.input.charCodeAt(t.position),i!==38)return!1;for(t.anchor!==null&&k(t,"duplication of an anchor property"),i=t.input.charCodeAt(++t.position),e=t.position;i!==0&&!K(i)&&!be(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&k(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function zs(t){var e,i,a;if(a=t.input.charCodeAt(t.position),a!==42)return!1;for(a=t.input.charCodeAt(++t.position),e=t.position;a!==0&&!K(a)&&!be(a);)a=t.input.charCodeAt(++t.position);return t.position===e&&k(t,"name of an alias node must contain at least one character"),i=t.input.slice(e,t.position),oe.call(t.anchorMap,i)||k(t,'unidentified alias "'+i+'"'),t.result=t.anchorMap[i],H(t,!0,-1),!0}function _e(t,e,i,a,n){var r,s,o,l=1,d=!1,u=!1,h,m,f,b,y,_;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,r=s=o=Ve===i||Hi===i,a&&H(t,!0,-1)&&(d=!0,t.lineIndent>e?l=1:t.lineIndent===e?l=0:t.lineIndent<e&&(l=-1)),l===1)for(;Ns(t)||Ts(t);)H(t,!0,-1)?(d=!0,o=r,t.lineIndent>e?l=1:t.lineIndent===e?l=0:t.lineIndent<e&&(l=-1)):o=!1;if(o&&(o=d||n),(l===1||Ve===i)&&(Fe===i||Mi===i?y=e:y=e+1,_=t.position-t.lineStart,l===1?o&&(Ki(t,_)||Ls(t,_,y))||Is(t,y)?u=!0:(s&&Ss(t,y)||As(t,y)||Es(t,y)?u=!0:zs(t)?(u=!0,(t.tag!==null||t.anchor!==null)&&k(t,"alias node should not have any properties")):$s(t,y,Fe===i)&&(u=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):l===0&&(u=o&&Ki(t,_))),t.tag===null)t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);else if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&k(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),h=0,m=t.implicitTypes.length;h<m;h+=1)if(b=t.implicitTypes[h],b.resolve(t.result)){t.result=b.construct(t.result),t.tag=b.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else if(t.tag!=="!"){if(oe.call(t.typeMap[t.kind||"fallback"],t.tag))b=t.typeMap[t.kind||"fallback"][t.tag];else for(b=null,f=t.typeMap.multi[t.kind||"fallback"],h=0,m=f.length;h<m;h+=1)if(t.tag.slice(0,f[h].tag.length)===f[h].tag){b=f[h];break}b||k(t,"unknown tag !<"+t.tag+">"),t.result!==null&&b.kind!==t.kind&&k(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+b.kind+'", not "'+t.kind+'"'),b.resolve(t.result,t.tag)?(t.result=b.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):k(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function Ds(t){var e=t.position,i,a,n,r=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(H(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(r=!0,s=t.input.charCodeAt(++t.position),i=t.position;s!==0&&!K(s);)s=t.input.charCodeAt(++t.position);for(a=t.input.slice(i,t.position),n=[],a.length<1&&k(t,"directive name must not be less than one character in length");s!==0;){for(;ce(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!te(s));break}if(te(s))break;for(i=t.position;s!==0&&!K(s);)s=t.input.charCodeAt(++t.position);n.push(t.input.slice(i,t.position))}s!==0&&bt(t),oe.call(Yi,a)?Yi[a](t,a,n):Be(t,'unknown document directive "'+a+'"')}if(H(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,H(t,!0,-1)):r&&k(t,"directives end mark is expected"),_e(t,t.lineIndent-1,Ve,!1,!0),H(t,!0,-1),t.checkLineBreaks&&vs.test(t.input.slice(e,t.position))&&Be(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&je(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,H(t,!0,-1));return}if(t.position<t.length-1)k(t,"end of the stream or a document separator is expected");else return}function Zi(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
17
+ `),t.charCodeAt(0)===65279&&(t=t.slice(1)));var i=new Cs(t,e),a=t.indexOf("\0");for(a!==-1&&(i.position=a,k(i,"null byte is not allowed in input")),i.input+="\0";i.input.charCodeAt(i.position)===32;)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)Ds(i);return i.documents}function Os(t,e,i){e!==null&&typeof e=="object"&&typeof i>"u"&&(i=e,e=null);var a=Zi(t,i);if(typeof e!="function")return a;for(var n=0,r=a.length;n<r;n+=1)e(a[n])}function Ms(t,e){var i=Zi(t,e);if(i.length!==0){if(i.length===1)return i[0];throw new q("expected a single document in the stream, but found more")}}var Hs=Os,Fs=Ms,Qi={loadAll:Hs,load:Fs},Ji=Object.prototype.toString,Xi=Object.prototype.hasOwnProperty,yt=65279,Vs=9,Ie=10,Bs=13,js=32,Rs=33,Ps=34,_t=35,Us=37,qs=38,Ws=39,Ys=42,ea=44,Gs=45,Re=58,Ks=61,Zs=62,Qs=63,Js=64,ta=91,ia=93,Xs=96,aa=123,eo=124,na=125,U={};U[0]="\\0",U[7]="\\a",U[8]="\\b",U[9]="\\t",U[10]="\\n",U[11]="\\v",U[12]="\\f",U[13]="\\r",U[27]="\\e",U[34]='\\"',U[92]="\\\\",U[133]="\\N",U[160]="\\_",U[8232]="\\L",U[8233]="\\P";var to=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],io=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function ao(t,e){var i,a,n,r,s,o,l;if(e===null)return{};for(i={},a=Object.keys(e),n=0,r=a.length;n<r;n+=1)s=a[n],o=String(e[s]),s.slice(0,2)==="!!"&&(s="tag:yaml.org,2002:"+s.slice(2)),l=t.compiledTypeMap.fallback[s],l&&Xi.call(l.styleAliases,o)&&(o=l.styleAliases[o]),i[s]=o;return i}function no(t){var e,i,a;if(e=t.toString(16).toUpperCase(),t<=255)i="x",a=2;else if(t<=65535)i="u",a=4;else if(t<=4294967295)i="U",a=8;else throw new q("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+i+B.repeat("0",a-e.length)+e}var ro=1,Se=2;function so(t){this.schema=t.schema||ft,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=B.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=ao(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType=t.quotingType==='"'?Se:ro,this.forceQuotes=t.forceQuotes||!1,this.replacer=typeof t.replacer=="function"?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function ra(t,e){for(var i=B.repeat(" ",e),a=0,n=-1,r="",s,o=t.length;a<o;)n=t.indexOf(`
18
+ `,a),n===-1?(s=t.slice(a),a=o):(s=t.slice(a,n+1),a=n+1),s.length&&s!==`
19
+ `&&(r+=i),r+=s;return r}function xt(t,e){return`
20
+ `+B.repeat(" ",t.indent*e)}function oo(t,e){var i,a,n;for(i=0,a=t.implicitTypes.length;i<a;i+=1)if(n=t.implicitTypes[i],n.resolve(e))return!0;return!1}function Pe(t){return t===js||t===Vs}function Le(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==yt||65536<=t&&t<=1114111}function sa(t){return Le(t)&&t!==yt&&t!==Bs&&t!==Ie}function oa(t,e,i){var a=sa(t),n=a&&!Pe(t);return(i?a:a&&t!==ea&&t!==ta&&t!==ia&&t!==aa&&t!==na)&&t!==_t&&!(e===Re&&!n)||sa(e)&&!Pe(e)&&t===_t||e===Re&&n}function lo(t){return Le(t)&&t!==yt&&!Pe(t)&&t!==Gs&&t!==Qs&&t!==Re&&t!==ea&&t!==ta&&t!==ia&&t!==aa&&t!==na&&t!==_t&&t!==qs&&t!==Ys&&t!==Rs&&t!==eo&&t!==Ks&&t!==Zs&&t!==Ws&&t!==Ps&&t!==Us&&t!==Js&&t!==Xs}function co(t){return!Pe(t)&&t!==Re}function Ne(t,e){var i=t.charCodeAt(e),a;return i>=55296&&i<=56319&&e+1<t.length&&(a=t.charCodeAt(e+1),a>=56320&&a<=57343)?(i-55296)*1024+a-56320+65536:i}function la(t){var e=/^\n* /;return e.test(t)}var da=1,wt=2,ca=3,ua=4,xe=5;function uo(t,e,i,a,n,r,s,o){var l,d=0,u=null,h=!1,m=!1,f=a!==-1,b=-1,y=lo(Ne(t,0))&&co(Ne(t,t.length-1));if(e||s)for(l=0;l<t.length;d>=65536?l+=2:l++){if(d=Ne(t,l),!Le(d))return xe;y=y&&oa(d,u,o),u=d}else{for(l=0;l<t.length;d>=65536?l+=2:l++){if(d=Ne(t,l),d===Ie)h=!0,f&&(m=m||l-b-1>a&&t[b+1]!==" ",b=l);else if(!Le(d))return xe;y=y&&oa(d,u,o),u=d}m=m||f&&l-b-1>a&&t[b+1]!==" "}return!h&&!m?y&&!s&&!n(t)?da:r===Se?xe:wt:i>9&&la(t)?xe:s?r===Se?xe:wt:m?ua:ca}function ho(t,e,i,a,n){t.dump=(function(){if(e.length===0)return t.quotingType===Se?'""':"''";if(!t.noCompatMode&&(to.indexOf(e)!==-1||io.test(e)))return t.quotingType===Se?'"'+e+'"':"'"+e+"'";var r=t.indent*Math.max(1,i),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-r),o=a||t.flowLevel>-1&&i>=t.flowLevel;function l(d){return oo(t,d)}switch(uo(e,o,t.indent,s,l,t.quotingType,t.forceQuotes&&!a,n)){case da:return e;case wt:return"'"+e.replace(/'/g,"''")+"'";case ca:return"|"+ha(e,t.indent)+pa(ra(e,r));case ua:return">"+ha(e,t.indent)+pa(ra(po(e,s),r));case xe:return'"'+mo(e)+'"';default:throw new q("impossible error: invalid scalar style")}})()}function ha(t,e){var i=la(t)?String(e):"",a=t[t.length-1]===`
21
+ `,n=a&&(t[t.length-2]===`
22
22
  `||t===`
23
- `),a=s?"+":n?"":"-";return i+a+`
24
- `}function ti(t){return t[t.length-1]===`
25
- `?t.slice(0,-1):t}function $s(t,e){for(var i=/(\n+)([^\n]*)/g,n=(function(){var d=t.indexOf(`
26
- `);return d=d!==-1?d:t.length,i.lastIndex=d,ii(t.slice(0,d),e)})(),s=t[0]===`
27
- `||t[0]===" ",a,r;r=i.exec(t);){var o=r[1],l=r[2];a=l[0]===" ",n+=o+(!s&&!a&&l!==""?`
28
- `:"")+ii(l,e),s=a}return n}function ii(t,e){if(t===""||t[0]===" ")return t;for(var i=/ [^ ]/g,n,s=0,a,r=0,o=0,l="";n=i.exec(t);)o=n.index,o-s>e&&(a=r>s?r:o,l+=`
29
- `+t.slice(s,a),s=a+1),r=o;return l+=`
30
- `,t.length-s>e&&r>s?l+=t.slice(s,r)+`
31
- `+t.slice(r+1):l+=t.slice(s),l.slice(1)}function _s(t){for(var e="",i=0,n,s=0;s<t.length;i>=65536?s+=2:s++)i=le(t,s),n=_[i],!n&&oe(i)?(e+=t[s],i>=65536&&(e+=t[s+1])):e+=n||Cs(i);return e}function Ns(t,e,i){var n="",s=t.tag,a,r,o;for(a=0,r=i.length;a<r;a+=1)o=i[a],t.replacer&&(o=t.replacer.call(i,String(a),o)),(V(t,e,o,!1,!1)||typeof o>"u"&&V(t,e,null,!1,!1))&&(n!==""&&(n+=","+(t.condenseFlow?"":" ")),n+=t.dump);t.tag=s,t.dump="["+n+"]"}function ni(t,e,i,n){var s="",a=t.tag,r,o,l;for(r=0,o=i.length;r<o;r+=1)l=i[r],t.replacer&&(l=t.replacer.call(i,String(r),l)),(V(t,e+1,l,!0,!0,!1,!0)||typeof l>"u"&&V(t,e+1,null,!0,!0,!1,!0))&&((!n||s!=="")&&(s+=Re(t,e)),t.dump&&ae===t.dump.charCodeAt(0)?s+="-":s+="- ",s+=t.dump);t.tag=a,t.dump=s||"[]"}function Ts(t,e,i){var n="",s=t.tag,a=Object.keys(i),r,o,l,d,p;for(r=0,o=a.length;r<o;r+=1)p="",n!==""&&(p+=", "),t.condenseFlow&&(p+='"'),l=a[r],d=i[l],t.replacer&&(d=t.replacer.call(i,l,d)),V(t,e,l,!1,!1)&&(t.dump.length>1024&&(p+="? "),p+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),V(t,e,d,!1,!1)&&(p+=t.dump,n+=p));t.tag=s,t.dump="{"+n+"}"}function Ms(t,e,i,n){var s="",a=t.tag,r=Object.keys(i),o,l,d,p,u,f;if(t.sortKeys===!0)r.sort();else if(typeof t.sortKeys=="function")r.sort(t.sortKeys);else if(t.sortKeys)throw new M("sortKeys must be a boolean or a function");for(o=0,l=r.length;o<l;o+=1)f="",(!n||s!=="")&&(f+=Re(t,e)),d=r[o],p=i[d],t.replacer&&(p=t.replacer.call(i,d,p)),V(t,e+1,d,!0,!0,!0)&&(u=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,u&&(t.dump&&ae===t.dump.charCodeAt(0)?f+="?":f+="? "),f+=t.dump,u&&(f+=Re(t,e)),V(t,e+1,p,!0,u)&&(t.dump&&ae===t.dump.charCodeAt(0)?f+=":":f+=": ",f+=t.dump,s+=f));t.tag=a,t.dump=s||"{}"}function si(t,e,i){var n,s,a,r,o,l;for(s=i?t.explicitTypes:t.implicitTypes,a=0,r=s.length;a<r;a+=1)if(o=s[a],(o.instanceOf||o.predicate)&&(!o.instanceOf||typeof e=="object"&&e instanceof o.instanceOf)&&(!o.predicate||o.predicate(e))){if(i?o.multi&&o.representName?t.tag=o.representName(e):t.tag=o.tag:t.tag="?",o.represent){if(l=t.styleMap[o.tag]||o.defaultStyle,Rt.call(o.represent)==="[object Function]")n=o.represent(e,l);else if(Pt.call(o.represent,l))n=o.represent[l](e,l);else throw new M("!<"+o.tag+'> tag resolver accepts not "'+l+'" style');t.dump=n}return!0}return!1}function V(t,e,i,n,s,a,r){t.tag=null,t.dump=i,si(t,i,!1)||si(t,i,!0);var o=Rt.call(t.dump),l=n,d;n&&(n=t.flowLevel<0||t.flowLevel>e);var p=o==="[object Object]"||o==="[object Array]",u,f;if(p&&(u=t.duplicates.indexOf(i),f=u!==-1),(t.tag!==null&&t.tag!=="?"||f||t.indent!==2&&e>0)&&(s=!1),f&&t.usedDuplicates[u])t.dump="*ref_"+u;else{if(p&&f&&!t.usedDuplicates[u]&&(t.usedDuplicates[u]=!0),o==="[object Object]")n&&Object.keys(t.dump).length!==0?(Ms(t,e,t.dump,s),f&&(t.dump="&ref_"+u+t.dump)):(Ts(t,e,t.dump),f&&(t.dump="&ref_"+u+" "+t.dump));else if(o==="[object Array]")n&&t.dump.length!==0?(t.noArrayIndent&&!r&&e>0?ni(t,e-1,t.dump,s):ni(t,e,t.dump,s),f&&(t.dump="&ref_"+u+t.dump)):(Ns(t,e,t.dump),f&&(t.dump="&ref_"+u+" "+t.dump));else if(o==="[object String]")t.tag!=="?"&&Ls(t,t.dump,e,a,l);else{if(o==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new M("unacceptable kind of an object to dump "+o)}t.tag!==null&&t.tag!=="?"&&(d=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?d="!"+d:d.slice(0,18)==="tag:yaml.org,2002:"?d="!!"+d.slice(18):d="!<"+d+">",t.dump=d+" "+t.dump)}return!0}function Ds(t,e){var i=[],n=[],s,a;for(Ve(t,i,n),s=0,a=n.length;s<a;s+=1)e.duplicates.push(i[n[s]]);e.usedDuplicates=new Array(a)}function Ve(t,e,i){var n,s,a;if(t!==null&&typeof t=="object")if(s=e.indexOf(t),s!==-1)i.indexOf(s)===-1&&i.push(s);else if(e.push(t),Array.isArray(t))for(s=0,a=t.length;s<a;s+=1)Ve(t[s],e,i);else for(n=Object.keys(t),s=0,a=n.length;s<a;s+=1)Ve(t[n[s]],e,i)}function Fs(t,e){e=e||{};var i=new ws(e);i.noRefs||Ds(t,i);var n=t;return i.replacer&&(n=i.replacer.call({"":n},"",n)),V(i,0,n,!0,!0)?i.dump+`
32
- `:""}var Os=Fs,Hs={dump:Os};function je(t,e){return function(){throw new Error("Function yaml."+t+" is removed in js-yaml 4. Use yaml."+e+" instead, which is now safe by default.")}}var zs=$,Bs=at,Rs=ct,Ps=ft,Vs=mt,js=De,ai=Bt.load,Us=Bt.loadAll,qs=Hs.dump,Ws=M,Ys={binary:xt,float:pt,map:lt,null:dt,pairs:kt,set:wt,timestamp:vt,bool:ht,int:ut,merge:yt,omap:Ct,seq:ot,str:rt},Gs=je("safeLoad","load"),Zs=je("safeLoadAll","loadAll"),Ks=je("safeDump","dump"),ri={Type:zs,Schema:Bs,FAILSAFE_SCHEMA:Rs,JSON_SCHEMA:Ps,CORE_SCHEMA:Vs,DEFAULT_SCHEMA:js,load:ai,loadAll:Us,dump:qs,YAMLException:Ws,types:Ys,safeLoad:Gs,safeLoadAll:Zs,safeDump:Ks};const oi=["submit","navigate","custom","reset"],li=["field_group","action_group","layout","template"];function k(t){return t!=null}function N(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function S(t){return Array.isArray(t)}function ee(t){return typeof t=="string"}const Qs=new Set(["__proto__","constructor","prototype"]);function xe(t){const e=t.toLowerCase().replace(/[()()]/g,"").replace(/[・]/g,"_").replace(/\s+/g,"_").replace(/[^a-z0-9_\u3040-\u309f\u30a0-\u30ff\u4e00-\u9faf]/g,"");return e?Qs.has(e)?`_${e}`:e:"_unnamed"}function Js(){let t=0;return()=>(t++,`__auto_field_${t}`)}function te(t,e){var o,l;const i=t.id??t.field_name??e(),n=t.label??t.field_name??i;let s;t.options&&(S(t.options)&&t.options.length>0?s=t.options.map(d=>{if(ee(d))return{value:d,label:d};if(N(d)&&k(d.value))return{...d,label:d.label??d.value};const p=String(d);return{value:p,label:p}}):ee(t.options)&&(s=t.options));const a={id:i,label:n,description:t.description,required:t.required,placeholder:t.placeholder,...t.visible_when?{visible_when:t.visible_when}:{}},r=t.type;switch(r){case"text":return{...a,type:"text",input_type:t.input_type};case"number":return{...a,type:"number",min:t.min,max:t.max,unit:t.unit};case"textarea":return{...a,type:"textarea",rows:t.rows};case"select":return{...a,type:"select",options:s??[]};case"multi_select":return{...a,type:"multi_select",options:s??[]};case"radio_group":return{...a,type:"radio_group",options:s??[]};case"checkbox_group":return{...a,type:"checkbox_group",options:s??[]};case"date_picker":return{...a,type:"date_picker"};case"time_picker":return{...a,type:"time_picker"};case"duration_picker":return{...a,type:"duration_picker",units:t.units};case"duration_input":return{...a,type:"duration_input",display_unit:t.unit};case"file_upload":return{...a,type:"file_upload",accept:((o=t.accepted_types)==null?void 0:o.split(",").map(d=>d.trim()))??t.accept,multiple:t.multiple};case"repeater":return{...a,type:"repeater",item_fields:((l=t.item_fields)==null?void 0:l.map(d=>te(d,e)))??[]};case"data_table":{const d=t.data,p=d==null?void 0:d.map((u,f)=>k(u.id)?u:{...u,id:`row-${f}`});return{...a,type:"data_table",columns:t.columns??[],data:p,selection:t.selection,row_actions:t.row_actions,default_sort:t.default_sort,pagination:t.pagination,filters:t.filters,empty_state:t.empty_state,height:t.height,striped:t.striped,hoverable:t.hoverable,bordered:t.bordered,compact:t.compact,responsive:t.responsive}}case"google_map_embed":return{...a,type:"google_map_embed",height:t.height,width:t.width,show_open_link:t.show_open_link,zoom:t.zoom};case"photo_manager":return{...a,type:"photo_manager",photos:t.photos,max_photos:t.max_photos,max_file_size:t.max_file_size,accepted_formats:t.accepted_formats,columns:t.columns};case"image_uploader":return{...a,type:"image_uploader",accepted_formats:t.accepted_formats,max_file_size:t.max_file_size,max_files:t.max_files,min_files:t.min_files};case"browser":return{...a,type:"browser",items:t.browser_items??t.items??[],default:t.default_value??t.default,maxColumns:t.max_columns,height:t.height};case"calendar":return{...a,type:"calendar",default:t.default,from:t.calendar_from??t.from,to:t.calendar_to??t.to,weekStartsOn:t.week_starts_on,locale:t.locale};case"combobox":return{...a,type:"combobox",mode:t.mode,options:s,searchable:t.searchable,async_loader:t.async_loader,min_search_length:t.min_search_length,debounce_ms:t.debounce_ms,clearable:t.clearable,max_selections:t.max_selections};case"checkbox":return{...a,type:"checkbox",checked_label:t.checked_label,unchecked_label:t.unchecked_label,size:t.size,name:t.name,label_position:t.label_position};case"toggle":return{...a,type:"toggle",checked_label:t.checked_label,unchecked_label:t.unchecked_label,size:t.size,name:t.name,label_position:t.label_position};case"badge":return{...a,type:"badge",color:t.color,size:t.size,dot:t.dot,count:t.count,max_count:t.max_count,text:t.text};case"heading":return{...a,type:"heading",level:t.level??2,text:t.label??t.text??"",size:t.size,align:t.align,color:t.color,icon:t.icon};case"tooltip":return{...a,type:"tooltip",content:t.content??"",position:t.position,delay:t.delay,show_arrow:t.show_arrow,is_html:t.is_html,max_width:t.max_width};case"pagination":return{...a,type:"pagination",total_items:t.total_items??0,current_page:t.current_page,page_size:t.page_size,page_size_options:t.page_size_options,show_page_size_selector:t.show_page_size_selector,show_item_count:t.show_item_count,show_jump_buttons:t.show_jump_buttons,max_page_buttons:t.max_page_buttons,compact:t.compact,align:t.align};case"float_area":return{...a,type:"float_area",position:t.position,show_shadow:t.show_shadow,show_border:t.show_border,z_index:t.z_index,responsive:t.responsive,sticky:t.sticky,align:t.float_align??t.align,padding:t.padding,gap:t.gap,aria_label:t.aria_label};case"loader":return{...a,type:"loader",size:t.loader_size??t.size,loaderType:t.loader_type??t.loaderType,overlay:t.overlay,showProgress:t.show_progress??t.showProgress,initialProgress:t.initial_progress??t.initialProgress};default:return{...a,type:r}}}function Xs(t,e,i){const n=t.map((r,o)=>({id:`col_${o}`,label:r,sortable:!0}));let s;return e&&e.length>0&&(s={enabled:!0,show_search:e.some(r=>r.includes("キーワード")||r.includes("検索")),fields:e.filter(r=>!r.includes("キーワード")&&!r.includes("検索")).map((r,o)=>({id:`filter_${o}`,label:r,column:`col_${o}`,type:"select",options:[]}))}),{id:i?xe(i)+"_table":"data_table",type:"data_table",label:i??"一覧",columns:n,data:[],selection:"single",pagination:{enabled:!0,page_size:10,page_size_options:[10,25,50,100]},filters:s,empty_state:{title:"データがありません",description:"表示するデータが存在しません",icon:"📭"},hoverable:!0,striped:!0}}function ea(t,e){var i;return{...t,input_fields:(i=t.input_fields)==null?void 0:i.map(n=>te(n,e))}}function ta(t){var e;if(t)return{logo:t.logo,logoAlt:t.logo_alt,logoHref:t.logo_href,appName:t.app_name??t.appName??"",tenants:t.tenants,currentTenantId:t.current_tenant_id??t.currentTenantId,userInfo:t.user_info?{name:t.user_info.name,email:t.user_info.email,avatarUrl:t.user_info.avatar_url??t.user_info.avatarUrl}:{name:""},navigations:(e=t.navigations)==null?void 0:e.map(i=>{var n;return{id:i.id,label:i.label,href:i.href,active:i.active,disabled:i.disabled,dropdown:(n=i.dropdown)==null?void 0:n.map(s=>({id:s.id,label:s.label,href:s.href,divider:s.divider}))}}),appLauncher:t.app_launcher??t.appLauncher,helpPageUrl:t.help_page_url??t.helpPageUrl,showReleaseNote:t.show_release_note??t.showReleaseNote,releaseNoteText:t.release_note_text??t.releaseNoteText,showDataSync:t.show_data_sync??t.showDataSync}}function ia(t){var i;if(!t)return;const e=((i=t.items)==null?void 0:i.map(n=>{var s;return{id:n.id,label:n.label,type:n.type,icon:n.icon,disabled:n.disabled,current:n.current,href:n.href,target:n.target,dropdownItems:(s=n.dropdown_items??n.dropdownItems)==null?void 0:s.map(a=>({id:a.id,label:a.label,icon:a.icon,disabled:a.disabled,href:a.href}))}}))??[];return{label:t.label,items:e}}function na(t,e){return{...t,steps:t.steps.map(i=>({...i,fields:(i.fields??[]).map(n=>te(n,e))}))}}function ci(t,e){const i=t.title??t.name??"Untitled";let n,s;if(t.sections&&t.sections.length>0){n=t.sections.map(r=>ea(r,e)),s=[];for(const r of n)if(r.input_fields)for(const o of r.input_fields)s.push(o)}else t.fields?s=t.fields.map(r=>te(r,e)):t.display_fields&&S(t.display_fields)&&(s=[Xs(t.display_fields,t.filters,t.name)]);!s&&t.input_fields&&S(t.input_fields)&&(s=t.input_fields.map(r=>te(r,e)));let a=t.actions;return a&&S(a)&&(a=a.map((r,o)=>ee(r)?{id:`action_${o}`,type:"submit",label:r,style:o===0?"primary":"secondary"}:r)),{title:i,description:t.description??t.purpose,app_header:ta(t.app_header),app_navi:ia(t.app_navi),sections:n,fields:s,actions:a,wizard:t.wizard?na(t.wizard,e):void 0,layout:t.layout}}function sa(t,e){if(S(t)){const n={};for(const s of t){const a=s.name?xe(s.name):`screen_${Object.keys(n).length}`;n[a]=ci(s,e)}return n}const i={};for(const[n,s]of Object.entries(t))i[n]=ci(s,e);return i}function aa(t,e){if(!t)return;if(S(t)){const n={};for(const s of t){const a=s.component_name??s.name,r=xe(a);n[r]={name:a,description:s.description,type:"field_group"}}return n}const i={};for(const[n,s]of Object.entries(t))i[n]={...s,fields:s.fields?s.fields.map(a=>te(a,e)):void 0};return i}function ra(t){if(!t)return;if(S(t)){const i={};for(const n of t){const s=xe(n.field);i[s]={name:n.field,rules:{message:n.rule},message:n.rule}}return i}const e={};for(const[i,n]of Object.entries(t))e[i]={...n,name:n.name??i};return e}function oa(t){const e=Js();return{view:sa(t.view,e),common_components:aa(t.common_components,e),validations:ra(t.validations)}}function Ce(t,e){const i=[];return N(t)?(k(t.type)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Field must have a "type"',path:e}),["badge","pagination","float_area"].includes(t.type)&&!k(t.label)&&i.push({type:"MISSING_REQUIRED_FIELD",message:`Field type "${t.type}" requires a "label"`,path:e}),["select","multi_select","radio_group","checkbox_group"].includes(t.type)&&(k(t.options)?!S(t.options)&&!ee(t.options)?i.push({type:"INVALID_VALUE",message:"Options must be an array or a reference string",path:`${e}.options`}):S(t.options)&&t.options.forEach((a,r)=>{i.push(...la(a,`${e}.options[${r}]`))}):i.push({type:"MISSING_REQUIRED_FIELD",message:`Field type "${t.type}" requires "options"`,path:e})),t.type==="repeater"&&(k(t.item_fields)?S(t.item_fields)?t.item_fields.forEach((a,r)=>{i.push(...Ce(a,`${e}.item_fields[${r}]`))}):i.push({type:"INVALID_VALUE",message:"item_fields must be an array",path:`${e}.item_fields`}):i.push({type:"MISSING_REQUIRED_FIELD",message:'Repeater field must have "item_fields"',path:e})),i):(i.push({type:"INVALID_VALUE",message:"Field must be an object",path:e}),i)}function la(t,e){const i=[];return ee(t)?i:N(t)?(k(t.value)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Option must have a "value"',path:e}),k(t.label)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Option must have a "label"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Option must be an object or string",path:e}),i)}function di(t,e,i={}){const n=i.allowString??!0,s=[];return ee(t)?(n||s.push({type:"INVALID_VALUE",message:"Action must be an object",path:e}),s):N(t)?(k(t.id)||s.push({type:"MISSING_REQUIRED_FIELD",message:'Action must have an "id"',path:e}),k(t.type)?oi.includes(t.type)||s.push({type:"INVALID_FIELD_TYPE",message:`Invalid action type: "${t.type}". Valid types are: ${oi.join(", ")}`,path:`${e}.type`}):s.push({type:"MISSING_REQUIRED_FIELD",message:'Action must have a "type"',path:e}),k(t.label)||s.push({type:"MISSING_REQUIRED_FIELD",message:'Action must have a "label"',path:e}),t.type==="navigate"&&!k(t.to)&&s.push({type:"MISSING_REQUIRED_FIELD",message:'Navigate action must have a "to" destination',path:e}),s):(s.push({type:"INVALID_VALUE",message:"Action must be an object or string",path:e}),s)}function ca(t,e){const i=[];return N(t)?k(t.steps)?S(t.steps)?(t.steps.forEach((n,s)=>{i.push(...da(n,`${e}.steps[${s}]`))}),i):(i.push({type:"INVALID_VALUE",message:"Wizard steps must be an array",path:`${e}.steps`}),i):(i.push({type:"MISSING_REQUIRED_FIELD",message:'Wizard must have "steps"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Wizard must be an object",path:e}),i)}function da(t,e){const i=[];return N(t)?(k(t.id)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Wizard step must have an "id"',path:e}),k(t.title)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Wizard step must have a "title"',path:e}),k(t.fields)?S(t.fields)?t.fields.forEach((n,s)=>{i.push(...Ce(n,`${e}.fields[${s}]`))}):i.push({type:"INVALID_VALUE",message:"Wizard step fields must be an array",path:`${e}.fields`}):i.push({type:"MISSING_REQUIRED_FIELD",message:'Wizard step must have "fields"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Wizard step must be an object",path:e}),i)}function ha(t,e){const i=[];return N(t)?(k(t.title)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Screen must have a "title"',path:e}),k(t.wizard)&&i.push(...ca(t.wizard,`${e}.wizard`)),k(t.fields)&&(S(t.fields)?t.fields.forEach((n,s)=>{i.push(...Ce(n,`${e}.fields[${s}]`))}):i.push({type:"INVALID_VALUE",message:"Screen fields must be an array",path:`${e}.fields`})),k(t.actions)&&(S(t.actions)?t.actions.forEach((n,s)=>{i.push(...di(n,`${e}.actions[${s}]`))}):i.push({type:"INVALID_VALUE",message:"Screen actions must be an array",path:`${e}.actions`})),i):(i.push({type:"INVALID_VALUE",message:"Screen definition must be an object",path:e}),i)}function ua(t,e){const i=[];return N(t)?(k(t.name)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Common component must have a "name"',path:e}),k(t.type)?li.includes(t.type)||i.push({type:"INVALID_FIELD_TYPE",message:`Invalid component type: "${t.type}". Valid types are: ${li.join(", ")}`,path:`${e}.type`}):i.push({type:"MISSING_REQUIRED_FIELD",message:'Common component must have a "type"',path:e}),t.type==="field_group"&&k(t.fields)&&(S(t.fields)?t.fields.forEach((n,s)=>{i.push(...Ce(n,`${e}.fields[${s}]`))}):i.push({type:"INVALID_VALUE",message:"Component fields must be an array",path:`${e}.fields`})),t.type==="action_group"&&k(t.actions)&&(S(t.actions)?t.actions.forEach((n,s)=>{i.push(...di(n,`${e}.actions[${s}]`,{allowString:!1}))}):i.push({type:"INVALID_VALUE",message:"Component actions must be an array",path:`${e}.actions`})),i):(i.push({type:"INVALID_VALUE",message:"Common component must be an object",path:e}),i)}function pa(t,e){const i=[];return N(t)?(k(t.rules)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Validation rule must have "rules"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Validation rule must be an object",path:e}),i)}function fa(t,e){const i=[];return N(t)?(!k(t.name)&&!k(t.title)&&i.push({type:"MISSING_REQUIRED_FIELD",message:'Screen must have a "name" or "title"',path:e}),k(t.sections)&&(S(t.sections)||i.push({type:"INVALID_VALUE",message:"sections must be an array",path:`${e}.sections`})),i):(i.push({type:"INVALID_VALUE",message:"Screen definition must be an object",path:e}),i)}function ma(t,e){const i=[];return N(t)?(!k(t.component_name)&&!k(t.name)&&i.push({type:"MISSING_REQUIRED_FIELD",message:'Common component must have a "component_name" or "name"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Common component must be an object",path:e}),i)}function ga(t,e){const i=[];return N(t)?(k(t.field)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Validation rule must have a "field"',path:e}),k(t.rule)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Validation rule must have a "rule"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Validation rule must be an object",path:e}),i)}function ba(t){const e=[];if(!N(t))return e.push({type:"SCHEMA_VALIDATION_ERROR",message:"Root must be an object",path:""}),e;if(!k(t.view))e.push({type:"MISSING_REQUIRED_FIELD",message:'Schema must have a "view" section',path:""});else if(S(t.view))t.view.forEach((i,n)=>{e.push(...fa(i,`view[${n}]`))});else if(N(t.view))for(const[i,n]of Object.entries(t.view))e.push(...ha(n,`view.${i}`));else e.push({type:"INVALID_VALUE",message:'"view" must be an object or array',path:"view"});if(k(t.common_components))if(S(t.common_components))t.common_components.forEach((i,n)=>{e.push(...ma(i,`common_components[${n}]`))});else if(N(t.common_components))for(const[i,n]of Object.entries(t.common_components))e.push(...ua(n,`common_components.${i}`));else e.push({type:"INVALID_VALUE",message:'"common_components" must be an object or array',path:"common_components"});if(k(t.validations))if(S(t.validations))t.validations.forEach((i,n)=>{e.push(...ga(i,`validations[${n}]`))});else if(N(t.validations))for(const[i,n]of Object.entries(t.validations))e.push(...pa(n,`validations.${i}`));else e.push({type:"INVALID_VALUE",message:'"validations" must be an object or array',path:"validations"});return e}function Ue(t){var e,i;try{const n=ri.load(t),s=ba(n);return s.length>0?{success:!1,errors:s}:{success:!0,data:oa(n)}}catch(n){return n instanceof ri.YAMLException?{success:!1,errors:[{type:"YAML_SYNTAX_ERROR",message:n.message,line:(e=n.mark)==null?void 0:e.line,column:(i=n.mark)==null?void 0:i.column}]}:{success:!1,errors:[{type:"YAML_SYNTAX_ERROR",message:n instanceof Error?n.message:"Unknown error"}]}}}function va(t){return t.map(e=>{let i="";return e.path&&(i=` at "${e.path}"`),e.line!==void 0&&(i+=` (line ${e.line+1}`,e.column!==void 0&&(i+=`, column ${e.column+1}`),i+=")"),`[${e.type}]${i}: ${e.message}`}).join(`
33
- `)}function qe(t,e){return t.view[e]}function hi(t){return Object.keys(t.view)}function ui(t,e){for(const i of t){if(i.id===e)return i;if(i.type==="repeater"){const n=ui(i.item_fields,e);if(n)return n}}}function c(t,e){const i=document.createElement(t);if(e!=null&&e.className&&(i.className=e.className),e!=null&&e.attributes)for(const[n,s]of Object.entries(e.attributes))i.setAttribute(n,s);if(e!=null&&e.textContent&&(i.textContent=e.textContent),e!=null&&e.children)for(const n of e.children)typeof n=="string"?i.appendChild(document.createTextNode(n)):i.appendChild(n);return i}function B(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function E(t="mokkun"){return`${t}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}function ya(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function m(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function x(t,e){const i=t.required?'<span class="required-mark">*</span>':"",n=t.description?`<p class="field-description">${m(t.description)}</p>`:"",s=["form-field",`field-type-${t.type}`];t.class&&s.push(t.class);const a=t.visible_when?` data-visible-when="${m(JSON.stringify(t.visible_when))}"`:"";return`
34
- <div class="${s.join(" ")}" data-field-id="${m(t.id)}"${a}>
35
- <label class="field-label" for="${m(t.id)}">
36
- ${m(t.label)}${i}
37
- </label>
23
+ `),r=n?"+":a?"":"-";return i+r+`
24
+ `}function pa(t){return t[t.length-1]===`
25
+ `?t.slice(0,-1):t}function po(t,e){for(var i=/(\n+)([^\n]*)/g,a=(function(){var d=t.indexOf(`
26
+ `);return d=d!==-1?d:t.length,i.lastIndex=d,ma(t.slice(0,d),e)})(),n=t[0]===`
27
+ `||t[0]===" ",r,s;s=i.exec(t);){var o=s[1],l=s[2];r=l[0]===" ",a+=o+(!n&&!r&&l!==""?`
28
+ `:"")+ma(l,e),n=r}return a}function ma(t,e){if(t===""||t[0]===" ")return t;for(var i=/ [^ ]/g,a,n=0,r,s=0,o=0,l="";a=i.exec(t);)o=a.index,o-n>e&&(r=s>n?s:o,l+=`
29
+ `+t.slice(n,r),n=r+1),s=o;return l+=`
30
+ `,t.length-n>e&&s>n?l+=t.slice(n,s)+`
31
+ `+t.slice(s+1):l+=t.slice(n),l.slice(1)}function mo(t){for(var e="",i=0,a,n=0;n<t.length;i>=65536?n+=2:n++)i=Ne(t,n),a=U[i],!a&&Le(i)?(e+=t[n],i>=65536&&(e+=t[n+1])):e+=a||no(i);return e}function fo(t,e,i){var a="",n=t.tag,r,s,o;for(r=0,s=i.length;r<s;r+=1)o=i[r],t.replacer&&(o=t.replacer.call(i,String(r),o)),(ae(t,e,o,!1,!1)||typeof o>"u"&&ae(t,e,null,!1,!1))&&(a!==""&&(a+=","+(t.condenseFlow?"":" ")),a+=t.dump);t.tag=n,t.dump="["+a+"]"}function fa(t,e,i,a){var n="",r=t.tag,s,o,l;for(s=0,o=i.length;s<o;s+=1)l=i[s],t.replacer&&(l=t.replacer.call(i,String(s),l)),(ae(t,e+1,l,!0,!0,!1,!0)||typeof l>"u"&&ae(t,e+1,null,!0,!0,!1,!0))&&((!a||n!=="")&&(n+=xt(t,e)),t.dump&&Ie===t.dump.charCodeAt(0)?n+="-":n+="- ",n+=t.dump);t.tag=r,t.dump=n||"[]"}function go(t,e,i){var a="",n=t.tag,r=Object.keys(i),s,o,l,d,u;for(s=0,o=r.length;s<o;s+=1)u="",a!==""&&(u+=", "),t.condenseFlow&&(u+='"'),l=r[s],d=i[l],t.replacer&&(d=t.replacer.call(i,l,d)),ae(t,e,l,!1,!1)&&(t.dump.length>1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),ae(t,e,d,!1,!1)&&(u+=t.dump,a+=u));t.tag=n,t.dump="{"+a+"}"}function bo(t,e,i,a){var n="",r=t.tag,s=Object.keys(i),o,l,d,u,h,m;if(t.sortKeys===!0)s.sort();else if(typeof t.sortKeys=="function")s.sort(t.sortKeys);else if(t.sortKeys)throw new q("sortKeys must be a boolean or a function");for(o=0,l=s.length;o<l;o+=1)m="",(!a||n!=="")&&(m+=xt(t,e)),d=s[o],u=i[d],t.replacer&&(u=t.replacer.call(i,d,u)),ae(t,e+1,d,!0,!0,!0)&&(h=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,h&&(t.dump&&Ie===t.dump.charCodeAt(0)?m+="?":m+="? "),m+=t.dump,h&&(m+=xt(t,e)),ae(t,e+1,u,!0,h)&&(t.dump&&Ie===t.dump.charCodeAt(0)?m+=":":m+=": ",m+=t.dump,n+=m));t.tag=r,t.dump=n||"{}"}function ga(t,e,i){var a,n,r,s,o,l;for(n=i?t.explicitTypes:t.implicitTypes,r=0,s=n.length;r<s;r+=1)if(o=n[r],(o.instanceOf||o.predicate)&&(!o.instanceOf||typeof e=="object"&&e instanceof o.instanceOf)&&(!o.predicate||o.predicate(e))){if(i?o.multi&&o.representName?t.tag=o.representName(e):t.tag=o.tag:t.tag="?",o.represent){if(l=t.styleMap[o.tag]||o.defaultStyle,Ji.call(o.represent)==="[object Function]")a=o.represent(e,l);else if(Xi.call(o.represent,l))a=o.represent[l](e,l);else throw new q("!<"+o.tag+'> tag resolver accepts not "'+l+'" style');t.dump=a}return!0}return!1}function ae(t,e,i,a,n,r,s){t.tag=null,t.dump=i,ga(t,i,!1)||ga(t,i,!0);var o=Ji.call(t.dump),l=a,d;a&&(a=t.flowLevel<0||t.flowLevel>e);var u=o==="[object Object]"||o==="[object Array]",h,m;if(u&&(h=t.duplicates.indexOf(i),m=h!==-1),(t.tag!==null&&t.tag!=="?"||m||t.indent!==2&&e>0)&&(n=!1),m&&t.usedDuplicates[h])t.dump="*ref_"+h;else{if(u&&m&&!t.usedDuplicates[h]&&(t.usedDuplicates[h]=!0),o==="[object Object]")a&&Object.keys(t.dump).length!==0?(bo(t,e,t.dump,n),m&&(t.dump="&ref_"+h+t.dump)):(go(t,e,t.dump),m&&(t.dump="&ref_"+h+" "+t.dump));else if(o==="[object Array]")a&&t.dump.length!==0?(t.noArrayIndent&&!s&&e>0?fa(t,e-1,t.dump,n):fa(t,e,t.dump,n),m&&(t.dump="&ref_"+h+t.dump)):(fo(t,e,t.dump),m&&(t.dump="&ref_"+h+" "+t.dump));else if(o==="[object String]")t.tag!=="?"&&ho(t,t.dump,e,r,l);else{if(o==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new q("unacceptable kind of an object to dump "+o)}t.tag!==null&&t.tag!=="?"&&(d=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?d="!"+d:d.slice(0,18)==="tag:yaml.org,2002:"?d="!!"+d.slice(18):d="!<"+d+">",t.dump=d+" "+t.dump)}return!0}function vo(t,e){var i=[],a=[],n,r;for(kt(t,i,a),n=0,r=a.length;n<r;n+=1)e.duplicates.push(i[a[n]]);e.usedDuplicates=new Array(r)}function kt(t,e,i){var a,n,r;if(t!==null&&typeof t=="object")if(n=e.indexOf(t),n!==-1)i.indexOf(n)===-1&&i.push(n);else if(e.push(t),Array.isArray(t))for(n=0,r=t.length;n<r;n+=1)kt(t[n],e,i);else for(a=Object.keys(t),n=0,r=a.length;n<r;n+=1)kt(t[a[n]],e,i)}function yo(t,e){e=e||{};var i=new so(e);i.noRefs||vo(t,i);var a=t;return i.replacer&&(a=i.replacer.call({"":a},"",a)),ae(i,0,a,!0,!0)?i.dump+`
32
+ `:""}var _o=yo,xo={dump:_o};function Ct(t,e){return function(){throw new Error("Function yaml."+t+" is removed in js-yaml 4. Use yaml."+e+" instead, which is now safe by default.")}}var wo=j,ko=bi,Co=xi,$o=Ai,Ao=Ei,Eo=ft,ba=Qi.load,Io=Qi.loadAll,So=xo.dump,Lo=q,No={binary:Ti,float:$i,map:_i,null:wi,pairs:Di,set:Oi,timestamp:Li,bool:ki,int:Ci,merge:Ni,omap:zi,seq:yi,str:vi},To=Ct("safeLoad","load"),zo=Ct("safeLoadAll","loadAll"),Do=Ct("safeDump","dump"),we={Type:wo,Schema:ko,FAILSAFE_SCHEMA:Co,JSON_SCHEMA:$o,CORE_SCHEMA:Ao,DEFAULT_SCHEMA:Eo,load:ba,loadAll:Io,dump:So,YAMLException:Lo,types:No,safeLoad:To,safeLoadAll:zo,safeDump:Do};const Oo=["accepted_formats","accepted_types","add_button_label","allow_back","app_header","app_launcher","app_name","app_navi","aria_label","async_loader","avatar_url","browser_items","calendar_from","calendar_to","cancel_label","checked_label","clickable_steps","column_resize","common_components","component_name","confirm_label","currency_format","current_page","current_tenant_id","debounce_ms","default_expanded","default_sort","default_value","disabled_when","display_fields","display_unit","drag_drop","dropdown_items","empty_state","field_name","fixed_header","float_align","header_renderer","help_page_url","hide_on_zero","include_time","initial_progress","input_fields","input_type","is_html","is_main","item_fields","label_position","loader_size","loader_type","loading_message","logo_alt","logo_href","max_columns","max_count","max_date","max_duration","max_file_size","max_files","max_items","max_length","max_page_buttons","max_photos","max_selections","max_size","max_width","min_date","min_duration","min_files","min_items","min_length","min_search_length","min_selections","min_width","minute_step","next_condition","no_options_message","on_error","on_resize","on_success","page_size","page_size_options","publish_toggle","related_models","related_usecases","release_note_text","row_actions","section_name","show_arrow","show_border","show_data_sync","show_item_count","show_jump_buttons","show_open_link","show_page_size_selector","show_progress","show_release_note","show_remove_button","show_search","show_shadow","status_map","system_name","table_layout","total_count","total_items","unchecked_label","use_24_hour","used_in","user_info","validate_on_step","visible_when","week_starts_on","z_index"];function Mo(t){return t.replace(/_([a-z0-9])/g,(e,i)=>i.toUpperCase())}const va=Object.fromEntries(Oo.map(t=>[Mo(t),t])),Ho=new Set(["view","common_components","commonComponents","validations","status_map","statusMap","default_value","defaultValue","params","selected_values","selectedValues","value","_cellMerge"]),Fo=new Set(["data","rows","default","default_value","defaultValue","selected_values","selectedValues","value"]),Vo=new Set(["view","common_components","commonComponents","validations"]);function ya(t){if(typeof t!="object"||t===null)return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||e===null}const Bo=new Set(["__proto__","constructor","prototype"]);function Ue(t,e,i=!1,a=!1){if(Array.isArray(t)){const l=e!==void 0&&Fo.has(e);return t.map(d=>Ue(d,void 0,l&&ya(d)))}if(!ya(t))return t;const n=i||!a&&e!==void 0&&Ho.has(e),r=e!==void 0&&Vo.has(e)&&!a,s={},o=[];for(const[l,d]of Object.entries(t)){if(Bo.has(l))continue;const u=!n&&Object.prototype.hasOwnProperty.call(va,l)?va[l]:l,h=Ue(d,l,!1,r);u!==l?o.push([u,h]):s[l]=h}for(const[l,d]of o)Object.prototype.hasOwnProperty.call(s,l)||(s[l]=d);return s}function c(t,e){const i=document.createElement(t);if(e!=null&&e.className&&(i.className=e.className),e!=null&&e.attributes)for(const[a,n]of Object.entries(e.attributes))i.setAttribute(a,n);if(e!=null&&e.textContent&&(i.textContent=e.textContent),e!=null&&e.children)for(const a of e.children)typeof a=="string"?i.appendChild(document.createTextNode(a)):i.appendChild(a);return i}function W(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function N(t="mokkun"){return`${t}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}function jo(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function g(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML.replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function _a(t){return typeof document<"u"?g(t):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function xa(t,e){return t||(e.length<=4&&e.every(a=>String(a.label).length<=8&&!a.description)?"horizontal":"vertical")}const Ro=new Set(["heading","badge","chip","status_label","timeline","information_panel","tooltip","pagination","definition_list","disclosure","accordion_panel","section_nav","dropdown","delete_confirm_dialog"]),wa=new Set(["data_table","calendar","browser","google_map_embed","photo_manager","loader","notification_bar","response_message","line_clamp","tabs","stepper","float_area"]),Po=new Set(["browser","calendar"]);function $(t,e){const i=t.required?'<span class="required-mark">*</span>':"",a=t.description?`<p class="field-description">${g(t.description)}</p>`:"",n=["form-field",`field-type-${t.type}`],r=Ca(t.class);r&&n.push(r);const s=t.visible_when?` data-visible-when="${g(JSON.stringify(t.visible_when))}"`:"";if(Ro.has(t.type))return`
33
+ <div class="${n.join(" ")}" data-field-id="${g(t.id)}"${s}>
38
34
  ${e}
39
- ${n}
40
35
  </div>
41
- `}function j(t){const e=[`id="${m(t.id)}"`,`name="${m(t.id)}"`];return t.required&&e.push("required"),t.disabled&&e.push("disabled"),t.readonly&&e.push("readonly"),"placeholder"in t&&t.placeholder&&e.push(`placeholder="${m(t.placeholder)}"`),e.join(" ")}function ce(t){return typeof t=="string"?[]:t}function xa(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Ca(t){return{"image/jpeg":"JPEG","image/png":"PNG","image/webp":"WebP","image/gif":"GIF"}[t]??t}function pi(t){return{1:"2xl",2:"xl",3:"lg",4:"md",5:"sm",6:"xs"}[t]}const ke={days:"日",hours:"時間",minutes:"分",seconds:"秒"};class ie{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"inputElement",null);this.config=i,this.container=e,this.callbacks=n,this.instanceId=E("input"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"medium",i=!!this.config.prefix,n=!!this.config.suffix||!!this.config.clearable;this.container.className=`mokkun-input input-${e}`,this.container.setAttribute("data-state",this.getDataState()),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled"),this.state.readonly?this.container.setAttribute("data-readonly",""):this.container.removeAttribute("data-readonly"),this.state.error?this.container.setAttribute("data-error",""):this.container.removeAttribute("data-error");const s=c("div",{className:"input-wrapper"}),a=this.renderInputGroup(i,n);if(s.appendChild(a),this.state.error&&this.state.errorMessage){const r=this.renderError();s.appendChild(r)}this.container.appendChild(s),this.config.autoFocus&&this.inputElement&&this.inputElement.focus()}setValue(e){var i,n;this.state.value!==e&&(this.state={...this.state,value:e},this.inputElement&&(this.inputElement.value=e),(n=(i=this.callbacks).onChange)==null||n.call(i,e,this.state))}getValue(){return this.state.value}setError(e,i){this.state={...this.state,error:e,errorMessage:i},this.render()}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setReadonly(e){this.state.readonly!==e&&(this.state={...this.state,readonly:e},this.render())}focus(){this.inputElement&&this.inputElement.focus()}blur(){this.inputElement&&this.inputElement.blur()}clear(){var e,i;this.setValue(""),(i=(e=this.callbacks).onClear)==null||i.call(e,this.state),this.focus()}getState(){return{...this.state}}destroy(){this.container.innerHTML=""}createInitialState(){return{value:this.config.defaultValue??"",disabled:this.config.disabled??!1,readonly:this.config.readonly??!1,error:!!this.config.errorMessage,errorMessage:this.config.errorMessage,focused:!1}}getDataState(){return this.state.error?"error":this.state.focused?"focused":this.state.value?"filled":"empty"}renderInputGroup(e,i){const n=c("div",{className:`input-group ${e?"has-prefix":""} ${i?"has-suffix":""}`});if(e&&this.config.prefix){const a=this.renderAffix(this.config.prefix,"prefix");n.appendChild(a)}const s=this.renderInput();if(n.appendChild(s),i){if(this.config.clearable&&this.state.value&&!this.state.disabled&&!this.state.readonly){const a=this.renderClearButton();n.appendChild(a)}else if(this.config.suffix){const a=this.renderAffix(this.config.suffix,"suffix");n.appendChild(a)}}return n}renderInput(){const e=c("input",{className:"input-field",attributes:{type:this.config.type??"text",id:this.instanceId,...this.config.name&&{name:this.config.name},...this.config.placeholder&&{placeholder:this.config.placeholder},...this.config.required&&{required:"required"},...this.config.autoComplete&&{autocomplete:this.config.autoComplete},...this.config.ariaLabel&&{"aria-label":this.config.ariaLabel},...this.config.ariaDescribedBy&&{"aria-describedby":this.config.ariaDescribedBy},...this.state.disabled&&{disabled:"disabled"},...this.state.readonly&&{readonly:"readonly"},...this.state.error&&{"aria-invalid":"true"}}});return e.value=this.state.value,e.addEventListener("input",this.handleInput.bind(this)),e.addEventListener("focus",this.handleFocus.bind(this)),e.addEventListener("blur",this.handleBlur.bind(this)),e.addEventListener("keydown",this.handleKeyDown.bind(this)),this.inputElement=e,e}renderAffix(e,i){const n=c("span",{className:`input-${i}`});return typeof e=="string"?n.textContent=e:n.appendChild(e),n}renderClearButton(){const e=c("button",{className:"input-clear-button",attributes:{type:"button","aria-label":"Clear input"}}),i=c("span",{className:"clear-icon",textContent:"×"});return e.appendChild(i),e.addEventListener("click",this.handleClear.bind(this)),e}renderError(){return c("div",{className:"input-error-message",attributes:{id:`${this.instanceId}-error`,role:"alert"},textContent:this.state.errorMessage??""})}handleInput(e){var s,a;const n=e.target.value;this.state={...this.state,value:n},(a=(s=this.callbacks).onChange)==null||a.call(s,n,this.state),this.config.clearable&&this.updateClearButton()}updateClearButton(){const e=this.container.querySelector(".input-group");if(!e)return;const i=e.querySelector(".input-clear-button"),n=e.querySelector(".input-suffix"),s=this.state.value&&!this.state.disabled&&!this.state.readonly;if(s&&!i){n&&n.remove();const a=this.renderClearButton();e.appendChild(a)}else if(!s&&i&&(i.remove(),this.config.suffix)){const a=this.renderAffix(this.config.suffix,"suffix");e.appendChild(a)}}handleFocus(){var e,i;this.state={...this.state,focused:!0},this.container.setAttribute("data-state",this.getDataState()),(i=(e=this.callbacks).onFocus)==null||i.call(e,this.state)}handleBlur(){var e,i;this.state={...this.state,focused:!1},this.container.setAttribute("data-state",this.getDataState()),(i=(e=this.callbacks).onBlur)==null||i.call(e,this.state)}handleKeyDown(e){var i,n;e.key==="Enter"&&((n=(i=this.callbacks).onEnter)==null||n.call(i,this.state.value,this.state))}handleClear(){this.clear()}static renderField(e){switch(e.type){case"text":return ie.renderTextField(e);case"number":return ie.renderNumberField(e);case"date_picker":return ie.renderDatePickerField(e);case"time_picker":return ie.renderTimePickerField(e);default:return""}}static renderTextField(e){const i=e.input_type??"text",n=[j(e)];e.min_length!==void 0&&n.push(`minlength="${e.min_length}"`),e.max_length!==void 0&&n.push(`maxlength="${e.max_length}"`),e.pattern&&n.push(`pattern="${m(e.pattern)}"`),e.default!==void 0&&n.push(`value="${m(String(e.default))}"`);const s=`<input type="${i}" class="form-input" ${n.join(" ")} />`;return x(e,s)}static renderNumberField(e){const i=[j(e)];e.min!==void 0&&i.push(`min="${e.min}"`),e.max!==void 0&&i.push(`max="${e.max}"`),e.step!==void 0&&i.push(`step="${e.step}"`),e.default!==void 0&&i.push(`value="${e.default}"`);let n=`<input type="number" class="form-input" ${i.join(" ")} />`;return e.unit&&(n=`
36
+ `;if(wa.has(t.type)){const o=`${t.id}-label`,l=Po.has(t.type)&&!!t.label,d=t.label?`<div class="field-label"${l?` id="${g(o)}"`:""}>${g(t.label)}</div>`:"",u=l?` role="group" aria-labelledby="${g(o)}"`:"";return`
37
+ <div class="${n.join(" ")}" data-field-id="${g(t.id)}"${u}${s}>
38
+ ${d}
39
+ ${e}
40
+ </div>
41
+ `}return`
42
+ <div class="${n.join(" ")}" data-field-id="${g(t.id)}"${s}>
43
+ ${t.label?`<label class="field-label" for="${g(t.id)}">
44
+ ${g(t.label)}${i}
45
+ </label>`:""}
46
+ ${e}
47
+ ${a}
48
+ </div>
49
+ `}function ne(t){const e=[`id="${g(t.id)}"`,`name="${g(t.id)}"`];return t.required&&e.push("required"),t.disabled&&e.push("disabled"),t.readonly&&e.push("readonly"),"placeholder"in t&&t.placeholder&&(e.push(`placeholder="${g(t.placeholder)}"`),t.label||e.push(`aria-label="${g(t.placeholder)}"`)),e.join(" ")}function Te(t){return typeof t=="string"?[]:t}function Uo(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function qo(t){return{"image/jpeg":"JPEG","image/png":"PNG","image/webp":"WebP","image/gif":"GIF"}[t]??t}function ka(t){return{1:"2xl",2:"xl",3:"lg",4:"md",5:"sm",6:"xs"}[t]}const qe={days:"日",hours:"時間",minutes:"分",seconds:"秒"};function Ca(t){if(typeof t=="string")return/^[\w\- ]+$/.test(t)?t:void 0}function re(t,e){if(e==null||e===""||typeof e=="boolean")return"";const i=Number(e);return Number.isFinite(i)?`${t}="${i}"`:""}function $a(t,e){return typeof t=="string"&&/^[\w-]+$/.test(t)?t:e}class ke{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"inputElement",null);this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("input"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"medium",i=!!this.config.prefix,a=!!this.config.suffix||!!this.config.clearable;this.container.className=`mokkun-input input-${e}`,this.container.setAttribute("data-state",this.getDataState()),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled"),this.state.readonly?this.container.setAttribute("data-readonly",""):this.container.removeAttribute("data-readonly"),this.state.error?this.container.setAttribute("data-error",""):this.container.removeAttribute("data-error");const n=c("div",{className:"input-wrapper"}),r=this.renderInputGroup(i,a);if(n.appendChild(r),this.state.error&&this.state.errorMessage){const s=this.renderError();n.appendChild(s)}this.container.appendChild(n),this.config.autoFocus&&this.inputElement&&this.inputElement.focus()}setValue(e){var i,a;this.state.value!==e&&(this.state={...this.state,value:e},this.inputElement&&(this.inputElement.value=e),(a=(i=this.callbacks).onChange)==null||a.call(i,e,this.state))}getValue(){return this.state.value}setError(e,i){this.state={...this.state,error:e,errorMessage:i},this.render()}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setReadonly(e){this.state.readonly!==e&&(this.state={...this.state,readonly:e},this.render())}focus(){this.inputElement&&this.inputElement.focus()}blur(){this.inputElement&&this.inputElement.blur()}clear(){var e,i;this.setValue(""),(i=(e=this.callbacks).onClear)==null||i.call(e,this.state),this.focus()}getState(){return{...this.state}}destroy(){this.container.innerHTML=""}createInitialState(){return{value:this.config.defaultValue??"",disabled:this.config.disabled??!1,readonly:this.config.readonly??!1,error:!!this.config.errorMessage,errorMessage:this.config.errorMessage,focused:!1}}getDataState(){return this.state.error?"error":this.state.focused?"focused":this.state.value?"filled":"empty"}renderInputGroup(e,i){const a=c("div",{className:`input-group ${e?"has-prefix":""} ${i?"has-suffix":""}`});if(e&&this.config.prefix){const r=this.renderAffix(this.config.prefix,"prefix");a.appendChild(r)}const n=this.renderInput();if(a.appendChild(n),i){if(this.config.clearable&&this.state.value&&!this.state.disabled&&!this.state.readonly){const r=this.renderClearButton();a.appendChild(r)}else if(this.config.suffix){const r=this.renderAffix(this.config.suffix,"suffix");a.appendChild(r)}}return a}renderInput(){const e=c("input",{className:"input-field",attributes:{type:this.config.type??"text",id:this.instanceId,...this.config.name&&{name:this.config.name},...this.config.placeholder&&{placeholder:this.config.placeholder},...this.config.required&&{required:"required"},...this.config.autoComplete&&{autocomplete:this.config.autoComplete},...this.config.ariaLabel&&{"aria-label":this.config.ariaLabel},...this.config.ariaDescribedBy&&{"aria-describedby":this.config.ariaDescribedBy},...this.state.disabled&&{disabled:"disabled"},...this.state.readonly&&{readonly:"readonly"},...this.state.error&&{"aria-invalid":"true"}}});return e.value=this.state.value,e.addEventListener("input",this.handleInput.bind(this)),e.addEventListener("focus",this.handleFocus.bind(this)),e.addEventListener("blur",this.handleBlur.bind(this)),e.addEventListener("keydown",this.handleKeyDown.bind(this)),this.inputElement=e,e}renderAffix(e,i){const a=c("span",{className:`input-${i}`});return typeof e=="string"?a.textContent=e:a.appendChild(e),a}renderClearButton(){const e=c("button",{className:"input-clear-button",attributes:{type:"button","aria-label":"Clear input"}}),i=c("span",{className:"clear-icon",textContent:"×"});return e.appendChild(i),e.addEventListener("click",this.handleClear.bind(this)),e}renderError(){return c("div",{className:"input-error-message",attributes:{id:`${this.instanceId}-error`,role:"alert"},textContent:this.state.errorMessage??""})}handleInput(e){var n,r;const a=e.target.value;this.state={...this.state,value:a},(r=(n=this.callbacks).onChange)==null||r.call(n,a,this.state),this.config.clearable&&this.updateClearButton()}updateClearButton(){const e=this.container.querySelector(".input-group");if(!e)return;const i=e.querySelector(".input-clear-button"),a=e.querySelector(".input-suffix"),n=this.state.value&&!this.state.disabled&&!this.state.readonly;if(n&&!i){a&&a.remove();const r=this.renderClearButton();e.appendChild(r)}else if(!n&&i&&(i.remove(),this.config.suffix)){const r=this.renderAffix(this.config.suffix,"suffix");e.appendChild(r)}}handleFocus(){var e,i;this.state={...this.state,focused:!0},this.container.setAttribute("data-state",this.getDataState()),(i=(e=this.callbacks).onFocus)==null||i.call(e,this.state)}handleBlur(){var e,i;this.state={...this.state,focused:!1},this.container.setAttribute("data-state",this.getDataState()),(i=(e=this.callbacks).onBlur)==null||i.call(e,this.state)}handleKeyDown(e){var i,a;e.key==="Enter"&&((a=(i=this.callbacks).onEnter)==null||a.call(i,this.state.value,this.state))}handleClear(){this.clear()}static renderField(e){switch(e.type){case"text":return ke.renderTextField(e);case"number":return ke.renderNumberField(e);case"date_picker":return ke.renderDatePickerField(e);case"time_picker":return ke.renderTimePickerField(e);default:return""}}static renderTextField(e){const i=e.input_type??"text",a=[ne(e)];e.min_length!==void 0&&a.push(re("minlength",e.min_length)),e.max_length!==void 0&&a.push(re("maxlength",e.max_length)),e.pattern&&a.push(`pattern="${g(e.pattern)}"`),e.default!==void 0&&a.push(`value="${g(String(e.default))}"`);const n=`<input type="${i}" class="form-input" ${a.join(" ")} />`;return $(e,n)}static renderNumberField(e){const i=[ne(e)];e.min!==void 0&&i.push(re("min",e.min)),e.max!==void 0&&i.push(re("max",e.max)),e.step!==void 0&&i.push(re("step",e.step)),e.default!==void 0&&i.push(`value="${g(String(e.default))}"`);let a=`<input type="number" class="form-input" ${i.join(" ")} />`;return e.unit&&(a=`
42
50
  <div class="input-with-unit">
43
- ${n}
44
- <span class="input-unit">${m(e.unit)}</span>
51
+ ${a}
52
+ <span class="input-unit">${g(e.unit)}</span>
45
53
  </div>
46
- `),x(e,n)}static renderDatePickerField(e){const i=e.include_time?"datetime-local":"date",n=[j(e)];e.min_date&&n.push(`min="${m(e.min_date)}"`),e.max_date&&n.push(`max="${m(e.max_date)}"`),e.default!==void 0&&n.push(`value="${m(String(e.default))}"`);const s=`<input type="${i}" class="form-input" ${n.join(" ")} />`;return x(e,s)}static renderTimePickerField(e){const i=[j(e)];e.minute_step&&i.push(`step="${e.minute_step*60}"`),e.default!==void 0&&i.push(`value="${m(String(e.default))}"`);const n=`<input type="time" class="form-input" ${i.join(" ")} />`;return x(e,n)}}class We{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"textareaElement");h(this,"instanceId");this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("textarea"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=c("div",{className:"mokkun-textarea-wrapper"});this.state.error&&e.classList.add("has-error"),this.state.disabled&&e.classList.add("is-disabled"),this.state.readonly&&e.classList.add("is-readonly");const i=this.renderTextarea();if(e.appendChild(i),this.config.showCount){const n=this.renderCounter();e.appendChild(n)}if(this.state.error&&this.state.errorMessage){const n=this.renderError();e.appendChild(n)}this.container.appendChild(e)}setValue(e){var i,n;this.state.value!==e&&(this.state={...this.state,value:e,characterCount:e.length},this.textareaElement&&(this.textareaElement.value=e,this.config.autoResize&&this.adjustHeight()),this.render(),(n=(i=this.callbacks).onChange)==null||n.call(i,e,this.state))}getValue(){return this.state.value}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setReadonly(e){this.state.readonly!==e&&(this.state={...this.state,readonly:e},this.render())}setError(e,i){this.state.error===e&&this.state.errorMessage===i||(this.state={...this.state,error:e,errorMessage:i},this.render())}clear(){this.setValue("")}focus(){var e;(e=this.textareaElement)==null||e.focus()}blur(){var e;(e=this.textareaElement)==null||e.blur()}validate(){const e=this.state.value;return this.config.required&&!e.trim()?(this.setError(!0,"この項目は必須です"),!1):this.config.minLength!==void 0&&e.length<this.config.minLength?(this.setError(!0,`${this.config.minLength}文字以上入力してください`),!1):this.config.maxLength!==void 0&&e.length>this.config.maxLength?(this.setError(!0,`${this.config.maxLength}文字以内で入力してください`),!1):(this.setError(!1),!0)}getState(){return{...this.state}}createInitialState(){const e=this.config.defaultValue??"";return{value:e,disabled:this.config.disabled??!1,readonly:this.config.readonly??!1,error:!1,errorMessage:this.config.errorMessage,characterCount:e.length}}renderTextarea(){const e=this.config.rows??3,i=this.config.resizable===!1?"no-resize":"",n=c("textarea",{className:`mokkun-textarea ${i}`,attributes:{id:this.instanceId,rows:String(e),"aria-label":"Textarea"}});return this.config.name&&n.setAttribute("name",this.config.name),this.config.placeholder&&n.setAttribute("placeholder",this.config.placeholder),this.config.minLength!==void 0&&n.setAttribute("minlength",String(this.config.minLength)),this.config.maxLength!==void 0&&n.setAttribute("maxlength",String(this.config.maxLength)),this.config.required&&(n.setAttribute("required","required"),n.setAttribute("aria-required","true")),this.state.disabled&&(n.setAttribute("disabled","disabled"),n.setAttribute("aria-disabled","true")),this.state.readonly&&(n.setAttribute("readonly","readonly"),n.setAttribute("aria-readonly","true")),this.state.error&&(n.setAttribute("aria-invalid","true"),this.state.errorMessage&&n.setAttribute("aria-describedby",`${this.instanceId}-error`)),n.value=this.state.value,n.addEventListener("input",s=>{var o,l;const r=s.target.value;this.state={...this.state,value:r,characterCount:r.length},this.config.autoResize&&this.adjustHeight(),this.config.showCount&&this.updateCounter(),(l=(o=this.callbacks).onInput)==null||l.call(o,r,this.state)}),n.addEventListener("change",s=>{var o,l;const r=s.target.value;(l=(o=this.callbacks).onChange)==null||l.call(o,r,this.state)}),n.addEventListener("focus",()=>{var s,a;(a=(s=this.callbacks).onFocus)==null||a.call(s,this.state)}),n.addEventListener("blur",()=>{var s,a;(a=(s=this.callbacks).onBlur)==null||a.call(s,this.state),this.validate()}),this.textareaElement=n,this.config.autoResize&&setTimeout(()=>this.adjustHeight(),0),n}renderCounter(){const e=c("div",{className:"mokkun-textarea-counter",attributes:{id:`${this.instanceId}-counter`,"aria-live":"polite"}});return this.updateCounterContent(e),e}updateCounterContent(e){const{characterCount:i}=this.state,{maxLength:n}=this.config;n!==void 0?(e.textContent=`${i} / ${n}`,i>n?e.classList.add("over-limit"):e.classList.remove("over-limit")):e.textContent=`${i}文字`}updateCounter(){const e=this.container.querySelector(`#${this.instanceId}-counter`);e instanceof HTMLElement&&this.updateCounterContent(e)}renderError(){return c("div",{className:"mokkun-textarea-error",textContent:this.state.errorMessage??"",attributes:{id:`${this.instanceId}-error`,role:"alert","aria-live":"polite"}})}adjustHeight(){if(!this.textareaElement)return;this.textareaElement.style.height="auto";const e=this.textareaElement.scrollHeight;this.textareaElement.style.height=`${e}px`}static renderField(e){const i=[j(e)];e.rows&&i.push(`rows="${e.rows}"`),e.min_length!==void 0&&i.push(`minlength="${e.min_length}"`),e.max_length!==void 0&&i.push(`maxlength="${e.max_length}"`);const n=e.resizable===!1?"no-resize":"",s=e.default!==void 0?m(String(e.default)):"",a=`<textarea class="form-textarea ${n}" ${i.join(" ")}>${s}</textarea>`;return x(e,a)}}function ka(t,e={},i={}){const n=new We(t,e,i);return n.render(),n}function wa(t){return"options"in t&&Array.isArray(t.options)}class we{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"selectElement",null);this.config=i,this.container=e,this.callbacks=n,this.instanceId=E("select"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"default";this.container.className=`mokkun-select select-${e}`,this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled"),this.state.error?this.container.setAttribute("data-error",""):this.container.removeAttribute("data-error");const i=this.renderSelect();this.selectElement=i,this.container.appendChild(i)}setValue(e){var n,s;if(this.state.disabled)return;const i=e===null?"":String(e);this.state.value!==e&&(this.state={...this.state,value:e},this.selectElement&&(this.selectElement.value=i),(s=(n=this.callbacks).onChange)==null||s.call(n,e,this.state))}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setError(e){this.state.error!==e&&(this.state={...this.state,error:e},this.render())}getState(){return{...this.state}}getValue(){return this.state.value}isDisabled(){return this.state.disabled}hasError(){return this.state.error}createInitialState(){return{value:this.config.defaultValue??null,disabled:this.config.disabled??!1,error:this.config.error??!1}}renderSelect(){const e=["field-input","field-select",this.state.error?"error":""].filter(Boolean).join(" "),i=c("select",{className:e,attributes:{id:this.instanceId,"aria-invalid":this.state.error?"true":"false"}});if(this.config.name&&i.setAttribute("name",this.config.name),this.config.width){const n=typeof this.config.width=="number"?`${this.config.width}px`:this.config.width;i.style.width=n}if(this.state.disabled&&(i.setAttribute("disabled","disabled"),i.setAttribute("aria-disabled","true")),this.config.required&&(i.setAttribute("required","required"),i.setAttribute("aria-required","true")),this.config.hasBlank!==!1){const n=c("option",{textContent:this.config.placeholder??this.config.blankLabel??"Select..."});n.value="",(this.state.value===null||this.state.value==="")&&(n.selected=!0),i.appendChild(n)}return this.appendOptions(i,this.config.options),i.addEventListener("change",n=>{const s=n.target,a=s.value===""?null:s.value;this.setValue(a)}),i.addEventListener("keydown",n=>{n.key==="Escape"&&i.blur()}),i}appendOptions(e,i){for(const n of i)if(wa(n)){const s=this.createOptgroup(n);e.appendChild(s)}else{const s=this.createOption(n);e.appendChild(s)}}createOption(e){const i=c("option",{textContent:e.label});return i.value=String(e.value),e.disabled&&(i.disabled=!0),this.state.value!==null&&String(e.value)===String(this.state.value)&&(i.selected=!0),i}createOptgroup(e){const i=document.createElement("optgroup");i.label=e.label,e.disabled&&(i.disabled=!0);for(const n of e.options){const s=this.createOption(n);i.appendChild(s)}return i}static renderField(e){return e.type==="multi_select"?we.renderMultiSelectField(e):we.renderSelectField(e)}static renderSelectField(e){const i=[j(e)],n=e.size?`select-${e.size}`:"select-default",s=ce(e.options),a=new Map,r=[];for(const g of s)g.group?(a.has(g.group)||a.set(g.group,[]),a.get(g.group).push(g)):r.push(g);const o=g=>{const y=e.default===g.value?"selected":"",C=g.disabled?"disabled":"";return`<option value="${m(String(g.value))}" ${y} ${C}>${m(g.label)}</option>`},l=r.map(o).join(""),d=Array.from(a.entries()).map(([g,y])=>{const C=y.map(o).join("");return`<optgroup label="${m(g)}">${C}</optgroup>`}).join(""),u=!e.required||e.clearable?`<option value="">${m(e.placeholder??"Select...")}</option>`:"",f=`
47
- <select class="field-select ${n}" ${i.join(" ")}>
48
- ${u}
54
+ `),$(e,a)}static renderDatePickerField(e){const i=e.include_time?"datetime-local":"date",a=[ne(e)];e.min_date&&a.push(`min="${g(e.min_date)}"`),e.max_date&&a.push(`max="${g(e.max_date)}"`),e.default!==void 0&&a.push(`value="${g(String(e.default))}"`);const n=`<input type="${i}" class="form-input" ${a.join(" ")} />`;return $(e,n)}static renderTimePickerField(e){const i=[ne(e)];e.minute_step&&i.push(re("step",Number(e.minute_step)*60)),e.default!==void 0&&i.push(`value="${g(String(e.default))}"`);const a=`<input type="time" class="form-input" ${i.join(" ")} />`;return $(e,a)}}class $t{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"textareaElement");p(this,"instanceId");this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("textarea"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=c("div",{className:"mokkun-textarea-wrapper"});this.state.error&&e.classList.add("has-error"),this.state.disabled&&e.classList.add("is-disabled"),this.state.readonly&&e.classList.add("is-readonly");const i=this.renderTextarea();if(e.appendChild(i),this.config.showCount){const a=this.renderCounter();e.appendChild(a)}if(this.state.error&&this.state.errorMessage){const a=this.renderError();e.appendChild(a)}this.container.appendChild(e)}setValue(e){var i,a;this.state.value!==e&&(this.state={...this.state,value:e,characterCount:e.length},this.textareaElement&&(this.textareaElement.value=e,this.config.autoResize&&this.adjustHeight()),this.render(),(a=(i=this.callbacks).onChange)==null||a.call(i,e,this.state))}getValue(){return this.state.value}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setReadonly(e){this.state.readonly!==e&&(this.state={...this.state,readonly:e},this.render())}setError(e,i){this.state.error===e&&this.state.errorMessage===i||(this.state={...this.state,error:e,errorMessage:i},this.render())}clear(){this.setValue("")}focus(){var e;(e=this.textareaElement)==null||e.focus()}blur(){var e;(e=this.textareaElement)==null||e.blur()}validate(){const e=this.state.value;return this.config.required&&!e.trim()?(this.setError(!0,"この項目は必須です"),!1):this.config.minLength!==void 0&&e.length<this.config.minLength?(this.setError(!0,`${this.config.minLength}文字以上入力してください`),!1):this.config.maxLength!==void 0&&e.length>this.config.maxLength?(this.setError(!0,`${this.config.maxLength}文字以内で入力してください`),!1):(this.setError(!1),!0)}getState(){return{...this.state}}createInitialState(){const e=this.config.defaultValue??"";return{value:e,disabled:this.config.disabled??!1,readonly:this.config.readonly??!1,error:!1,errorMessage:this.config.errorMessage,characterCount:e.length}}renderTextarea(){const e=this.config.rows??3,i=this.config.resizable===!1?"no-resize":"",a=c("textarea",{className:`mokkun-textarea ${i}`,attributes:{id:this.instanceId,rows:String(e),"aria-label":"Textarea"}});return this.config.name&&a.setAttribute("name",this.config.name),this.config.placeholder&&a.setAttribute("placeholder",this.config.placeholder),this.config.minLength!==void 0&&a.setAttribute("minlength",String(this.config.minLength)),this.config.maxLength!==void 0&&a.setAttribute("maxlength",String(this.config.maxLength)),this.config.required&&(a.setAttribute("required","required"),a.setAttribute("aria-required","true")),this.state.disabled&&(a.setAttribute("disabled","disabled"),a.setAttribute("aria-disabled","true")),this.state.readonly&&(a.setAttribute("readonly","readonly"),a.setAttribute("aria-readonly","true")),this.state.error&&(a.setAttribute("aria-invalid","true"),this.state.errorMessage&&a.setAttribute("aria-describedby",`${this.instanceId}-error`)),a.value=this.state.value,a.addEventListener("input",n=>{var o,l;const s=n.target.value;this.state={...this.state,value:s,characterCount:s.length},this.config.autoResize&&this.adjustHeight(),this.config.showCount&&this.updateCounter(),(l=(o=this.callbacks).onInput)==null||l.call(o,s,this.state)}),a.addEventListener("change",n=>{var o,l;const s=n.target.value;(l=(o=this.callbacks).onChange)==null||l.call(o,s,this.state)}),a.addEventListener("focus",()=>{var n,r;(r=(n=this.callbacks).onFocus)==null||r.call(n,this.state)}),a.addEventListener("blur",()=>{var n,r;(r=(n=this.callbacks).onBlur)==null||r.call(n,this.state),this.validate()}),this.textareaElement=a,this.config.autoResize&&setTimeout(()=>this.adjustHeight(),0),a}renderCounter(){const e=c("div",{className:"mokkun-textarea-counter",attributes:{id:`${this.instanceId}-counter`,"aria-live":"polite"}});return this.updateCounterContent(e),e}updateCounterContent(e){const{characterCount:i}=this.state,{maxLength:a}=this.config;a!==void 0?(e.textContent=`${i} / ${a}`,i>a?e.classList.add("over-limit"):e.classList.remove("over-limit")):e.textContent=`${i}文字`}updateCounter(){const e=this.container.querySelector(`#${this.instanceId}-counter`);e instanceof HTMLElement&&this.updateCounterContent(e)}renderError(){return c("div",{className:"mokkun-textarea-error",textContent:this.state.errorMessage??"",attributes:{id:`${this.instanceId}-error`,role:"alert","aria-live":"polite"}})}adjustHeight(){if(!this.textareaElement)return;this.textareaElement.style.height="auto";const e=this.textareaElement.scrollHeight;this.textareaElement.style.height=`${e}px`}static renderField(e){const i=[ne(e)];e.rows&&i.push(re("rows",e.rows)),e.min_length!==void 0&&i.push(re("minlength",e.min_length)),e.max_length!==void 0&&i.push(re("maxlength",e.max_length));const a=e.resizable===!1?"no-resize":"",n=e.default!==void 0?g(String(e.default)):"",r=`<textarea class="form-textarea ${a}" ${i.join(" ")}>${n}</textarea>`;return $(e,r)}}function Wo(t,e={},i={}){const a=new $t(t,e,i);return a.render(),a}function Yo(t){return"options"in t&&Array.isArray(t.options)}class We{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"selectElement",null);this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("select"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"default";this.container.className=`mokkun-select select-${e}`,this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled"),this.state.error?this.container.setAttribute("data-error",""):this.container.removeAttribute("data-error");const i=this.renderSelect();this.selectElement=i,this.container.appendChild(i)}setValue(e){var a,n;if(this.state.disabled)return;const i=e===null?"":String(e);this.state.value!==e&&(this.state={...this.state,value:e},this.selectElement&&(this.selectElement.value=i),(n=(a=this.callbacks).onChange)==null||n.call(a,e,this.state))}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setError(e){this.state.error!==e&&(this.state={...this.state,error:e},this.render())}getState(){return{...this.state}}getValue(){return this.state.value}isDisabled(){return this.state.disabled}hasError(){return this.state.error}createInitialState(){return{value:this.config.defaultValue??null,disabled:this.config.disabled??!1,error:this.config.error??!1}}renderSelect(){const e=["field-input","field-select",this.state.error?"error":""].filter(Boolean).join(" "),i=c("select",{className:e,attributes:{id:this.instanceId,"aria-invalid":this.state.error?"true":"false"}});if(this.config.name&&i.setAttribute("name",this.config.name),this.config.width){const a=typeof this.config.width=="number"?`${this.config.width}px`:this.config.width;i.style.width=a}if(this.state.disabled&&(i.setAttribute("disabled","disabled"),i.setAttribute("aria-disabled","true")),this.config.required&&(i.setAttribute("required","required"),i.setAttribute("aria-required","true")),this.config.hasBlank!==!1){const a=c("option",{textContent:this.config.placeholder??this.config.blankLabel??"選択してください"});a.value="",this.config.required&&(a.disabled=!0),(this.state.value===null||this.state.value==="")&&(a.selected=!0),i.appendChild(a)}return this.appendOptions(i,this.config.options),i.addEventListener("change",a=>{const n=a.target,r=n.value===""?null:n.value;this.setValue(r)}),i.addEventListener("keydown",a=>{a.key==="Escape"&&i.blur()}),i}appendOptions(e,i){for(const a of i)if(Yo(a)){const n=this.createOptgroup(a);e.appendChild(n)}else{const n=this.createOption(a);e.appendChild(n)}}createOption(e){const i=c("option",{textContent:e.label});return i.value=String(e.value),e.disabled&&(i.disabled=!0),this.state.value!==null&&String(e.value)===String(this.state.value)&&(i.selected=!0),i}createOptgroup(e){const i=document.createElement("optgroup");i.label=e.label,e.disabled&&(i.disabled=!0);for(const a of e.options){const n=this.createOption(a);i.appendChild(n)}return i}static renderField(e){return e.type==="multi_select"?We.renderMultiSelectField(e):We.renderSelectField(e)}static renderSelectField(e){const i=[ne(e)],a=e.size?`select-${e.size}`:"select-default",n=Te(e.options),r=new Map,s=[];for(const _ of n)_.group?(r.has(_.group)||r.set(_.group,[]),r.get(_.group).push(_)):s.push(_);const o=_=>{const x=e.default===_.value?"selected":"",w=_.disabled?"disabled":"";return`<option value="${g(String(_.value))}" ${x} ${w}>${g(_.label)}</option>`},l=s.map(o).join(""),d=Array.from(r.entries()).map(([_,x])=>{const w=x.map(o).join("");return`<optgroup label="${g(_)}">${w}</optgroup>`}).join(""),u=!!e.required&&!e.clearable,h=n.some(_=>String(_.value)===""),m=e.default!==void 0&&n.some(_=>String(_.value)!==""&&_.value===e.default),f=[u?"disabled":"",m?"":"selected"].filter(Boolean).join(" "),b=h?"":`<option value="" ${f}>${g(e.placeholder??"選択してください")}</option>`,y=`
55
+ <select class="field-select ${a}" ${i.join(" ")}>
56
+ ${b}
49
57
  ${l}
50
58
  ${d}
51
59
  </select>
52
- `;return x(e,f)}static renderMultiSelectField(e){const i=[j(e),"multiple"],n=ce(e.options),s=Array.isArray(e.default)?e.default:[],a=n.map(o=>{const l=s.includes(o.value)?"selected":"",d=o.disabled?"disabled":"";return`<option value="${m(String(o.value))}" ${l} ${d}>${m(o.label)}</option>`}).join(""),r=`
60
+ `;return $(e,y)}static renderMultiSelectField(e){const i=[ne(e),"multiple"],a=Te(e.options),n=Array.isArray(e.default)?e.default:[],r=a.map(o=>{const l=n.includes(o.value)?"selected":"",d=o.disabled?"disabled":"";return`<option value="${g(String(o.value))}" ${l} ${d}>${g(o.label)}</option>`}).join(""),s=`
53
61
  <select class="form-select form-multiselect" ${i.join(" ")}>
54
- ${a}
62
+ ${r}
55
63
  </select>
56
- `;return x(e,r)}}class Ea{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");this.config=i,this.container=e,this.callbacks=n,this.instanceId=E("radio"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"medium",i=this.config.labelPosition??"right";this.container.className=`mokkun-radio radio-${e} radio-label-${i}`;const n=this.state.checked?"checked":"unchecked";this.container.setAttribute("data-state",n),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const s=c("div",{className:"radio-wrapper"});if(i==="left"){const r=this.renderLabel();s.appendChild(r)}const a=this.renderRadio();if(s.appendChild(a),i==="right"){const r=this.renderLabel();s.appendChild(r)}this.container.appendChild(s)}setChecked(e){var i,n,s,a;this.state.disabled||this.state.checked!==e&&(this.state={...this.state,checked:e},this.render(),(n=(i=this.callbacks).onChange)==null||n.call(i,e,this.state),(a=(s=this.callbacks).onCheckedChange)==null||a.call(s,e))}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}isChecked(){return this.state.checked}isDisabled(){return this.state.disabled}getValue(){return this.config.value}getName(){return this.config.name}createInitialState(){return{checked:this.config.defaultChecked??!1,disabled:this.config.disabled??!1}}renderRadio(){const e=c("div",{className:"radio-input-container"}),i=c("input",{className:"radio-input",attributes:{type:"radio",id:this.instanceId,role:"radio","aria-checked":String(this.state.checked),"aria-label":this.state.checked?this.config.checkedLabel??"選択済み":this.config.uncheckedLabel??"未選択"}});this.config.name&&i.setAttribute("name",this.config.name),this.config.value&&i.setAttribute("value",this.config.value),this.state.checked&&i.setAttribute("checked","checked"),this.state.disabled&&(i.setAttribute("disabled","disabled"),i.setAttribute("aria-disabled","true")),i.addEventListener("change",l=>{const d=l.target;this.setChecked(d.checked)}),i.addEventListener("keydown",l=>{(l.key===" "||l.key==="Enter")&&(l.preventDefault(),this.state.disabled||this.setChecked(!0))}),e.appendChild(i);const n=this.state.checked?"checked":"unchecked",s=["radio-visual",n,this.state.disabled?"disabled":""].filter(Boolean).join(" "),a=c("label",{className:s,attributes:{for:this.instanceId,"data-state":n}});this.state.disabled&&a.setAttribute("data-disabled","");const r=c("span",{className:"radio-circle"}),o=c("span",{className:"radio-dot",attributes:{"data-state":n}});return r.appendChild(o),a.appendChild(r),e.appendChild(a),e}renderLabel(){const e=this.config.checkedLabel??"",i=this.config.uncheckedLabel??"",n=this.state.checked?"checked":"unchecked",s=["radio-label",n,this.state.disabled?"disabled":""].filter(Boolean).join(" "),a=this.state.checked?e:i,r=c("label",{className:s,textContent:a,attributes:{for:this.instanceId,"aria-live":"polite","data-state":n}});return this.state.disabled&&r.setAttribute("data-disabled",""),r}static renderField(e){const i=ce(e.options),n=e.direction??"vertical",s=i.map(r=>{const o=e.default===r.value?"checked":"",l=r.disabled||e.disabled?"disabled":"",d=`${e.id}-${r.value}`,p=r.description?`<span class="radio-option-description">${m(r.description)}</span>`:"";return`
57
- <label class="radio-option" for="${m(d)}">
64
+ `;return $(e,s)}}class Go{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("radio"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"medium",i=this.config.labelPosition??"right";this.container.className=`mokkun-radio radio-${e} radio-label-${i}`;const a=this.state.checked?"checked":"unchecked";this.container.setAttribute("data-state",a),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const n=c("div",{className:"radio-wrapper"});if(i==="left"){const s=this.renderLabel();n.appendChild(s)}const r=this.renderRadio();if(n.appendChild(r),i==="right"){const s=this.renderLabel();n.appendChild(s)}this.container.appendChild(n)}setChecked(e){var i,a,n,r;this.state.disabled||this.state.checked!==e&&(this.state={...this.state,checked:e},this.render(),(a=(i=this.callbacks).onChange)==null||a.call(i,e,this.state),(r=(n=this.callbacks).onCheckedChange)==null||r.call(n,e))}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}isChecked(){return this.state.checked}isDisabled(){return this.state.disabled}getValue(){return this.config.value}getName(){return this.config.name}createInitialState(){return{checked:this.config.defaultChecked??!1,disabled:this.config.disabled??!1}}renderRadio(){const e=c("div",{className:"radio-input-container"}),i=c("input",{className:"radio-input",attributes:{type:"radio",id:this.instanceId,role:"radio","aria-checked":String(this.state.checked),"aria-label":this.state.checked?this.config.checkedLabel??"選択済み":this.config.uncheckedLabel??"未選択"}});this.config.name&&i.setAttribute("name",this.config.name),this.config.value&&i.setAttribute("value",this.config.value),this.state.checked&&i.setAttribute("checked","checked"),this.state.disabled&&(i.setAttribute("disabled","disabled"),i.setAttribute("aria-disabled","true")),i.addEventListener("change",l=>{const d=l.target;this.setChecked(d.checked)}),i.addEventListener("keydown",l=>{(l.key===" "||l.key==="Enter")&&(l.preventDefault(),this.state.disabled||this.setChecked(!0))}),e.appendChild(i);const a=this.state.checked?"checked":"unchecked",n=["radio-visual",a,this.state.disabled?"disabled":""].filter(Boolean).join(" "),r=c("label",{className:n,attributes:{for:this.instanceId,"data-state":a}});this.state.disabled&&r.setAttribute("data-disabled","");const s=c("span",{className:"radio-circle"}),o=c("span",{className:"radio-dot",attributes:{"data-state":a}});return s.appendChild(o),r.appendChild(s),e.appendChild(r),e}renderLabel(){const e=this.config.checkedLabel??"",i=this.config.uncheckedLabel??"",a=this.state.checked?"checked":"unchecked",n=["radio-label",a,this.state.disabled?"disabled":""].filter(Boolean).join(" "),r=this.state.checked?e:i,s=c("label",{className:n,textContent:r,attributes:{for:this.instanceId,"aria-live":"polite","data-state":a}});return this.state.disabled&&s.setAttribute("data-disabled",""),s}static renderField(e){const i=Te(e.options),a=xa(e.direction,i),n=i.map(s=>{const o=e.default===s.value?"checked":"",l=s.disabled||e.disabled?"disabled":"",d=`${e.id}-${s.value}`,u=s.description?`<span class="radio-option-description">${g(s.description)}</span>`:"";return`
65
+ <label class="radio-option" for="${g(d)}">
58
66
  <input
59
67
  type="radio"
60
- id="${m(d)}"
61
- name="${m(e.id)}"
62
- value="${m(String(r.value))}"
68
+ id="${g(d)}"
69
+ name="${g(e.id)}"
70
+ value="${g(String(s.value))}"
63
71
  ${o}
64
72
  ${l}
65
73
  ${e.required?"required":""}
66
74
  />
67
75
  <span class="radio-label-group">
68
- <span class="radio-label">${m(r.label)}</span>
69
- ${p}
76
+ <span class="radio-label">${g(s.label)}</span>
77
+ ${u}
70
78
  </span>
71
79
  </label>
72
- `}).join(""),a=`<div class="radio-group direction-${n}">${s}</div>`;return x(e,a)}}class Ee{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");this.config=i,this.container=e,this.callbacks=n,this.instanceId=E("checkbox"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"medium",i=this.config.labelPosition??"right";this.container.className=`mokkun-checkbox checkbox-${e} checkbox-label-${i}`;const n=this.state.indeterminate?"indeterminate":this.state.checked?"checked":"unchecked";this.container.setAttribute("data-state",n),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const s=c("div",{className:"checkbox-wrapper"});if(i==="left"){const r=this.renderLabel();s.appendChild(r)}const a=this.renderCheckbox();if(s.appendChild(a),i==="right"){const r=this.renderLabel();s.appendChild(r)}this.container.appendChild(s)}setChecked(e){var i,n,s,a;this.state.disabled||this.state.checked===e&&!this.state.indeterminate||(this.state={...this.state,checked:e,indeterminate:!1},this.render(),(n=(i=this.callbacks).onChange)==null||n.call(i,e,this.state),(a=(s=this.callbacks).onCheckedChange)==null||a.call(s,e))}setIndeterminate(e){this.state.disabled||this.state.indeterminate!==e&&(this.state={...this.state,indeterminate:e},this.render())}toggle(){this.state.indeterminate?this.setChecked(!0):this.setChecked(!this.state.checked)}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}isChecked(){return this.state.checked}isIndeterminate(){return this.state.indeterminate}isDisabled(){return this.state.disabled}createInitialState(){return{checked:this.config.defaultChecked??!1,indeterminate:this.config.defaultIndeterminate??!1,disabled:this.config.disabled??!1}}renderCheckbox(){const e=c("div",{className:"checkbox-input-container"}),i=c("input",{className:"checkbox-input",attributes:{type:"checkbox",id:this.instanceId,role:"checkbox","aria-checked":this.state.indeterminate?"mixed":String(this.state.checked),"aria-label":this.state.checked?this.config.checkedLabel??"チェック済み":this.config.uncheckedLabel??"未チェック"}});this.config.name&&i.setAttribute("name",this.config.name),this.state.checked&&i.setAttribute("checked","checked"),this.state.indeterminate&&(i.indeterminate=!0),this.state.disabled&&(i.setAttribute("disabled","disabled"),i.setAttribute("aria-disabled","true")),i.addEventListener("change",l=>{const d=l.target;this.setChecked(d.checked)}),i.addEventListener("keydown",l=>{(l.key===" "||l.key==="Enter")&&(l.preventDefault(),this.state.disabled||this.toggle())}),e.appendChild(i);const n=this.state.indeterminate?"indeterminate":this.state.checked?"checked":"unchecked",s=["checkbox-visual",n,this.state.disabled?"disabled":""].filter(Boolean).join(" "),a=c("label",{className:s,attributes:{for:this.instanceId,"data-state":n}});this.state.disabled&&a.setAttribute("data-disabled","");const r=c("span",{className:"checkbox-box"}),o=c("span",{className:"checkbox-icon",attributes:{"data-state":n}});return this.state.indeterminate?o.innerHTML=`
80
+ `}).join(""),r=`<div class="radio-group direction-${a}${a==="horizontal"?" inline":""}">${n}</div>`;return $(e,r)}}class Ye{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("checkbox"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"medium",i=this.config.labelPosition??"right";this.container.className=`mokkun-checkbox checkbox-${e} checkbox-label-${i}`;const a=this.state.indeterminate?"indeterminate":this.state.checked?"checked":"unchecked";this.container.setAttribute("data-state",a),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const n=c("div",{className:"checkbox-wrapper"});if(i==="left"){const s=this.renderLabel();n.appendChild(s)}const r=this.renderCheckbox();if(n.appendChild(r),i==="right"){const s=this.renderLabel();n.appendChild(s)}this.container.appendChild(n)}setChecked(e){var i,a,n,r;this.state.disabled||this.state.checked===e&&!this.state.indeterminate||(this.state={...this.state,checked:e,indeterminate:!1},this.render(),(a=(i=this.callbacks).onChange)==null||a.call(i,e,this.state),(r=(n=this.callbacks).onCheckedChange)==null||r.call(n,e))}setIndeterminate(e){this.state.disabled||this.state.indeterminate!==e&&(this.state={...this.state,indeterminate:e},this.render())}toggle(){this.state.indeterminate?this.setChecked(!0):this.setChecked(!this.state.checked)}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}isChecked(){return this.state.checked}isIndeterminate(){return this.state.indeterminate}isDisabled(){return this.state.disabled}createInitialState(){return{checked:this.config.defaultChecked??!1,indeterminate:this.config.defaultIndeterminate??!1,disabled:this.config.disabled??!1}}renderCheckbox(){const e=c("div",{className:"checkbox-input-container"}),i=c("input",{className:"checkbox-input",attributes:{type:"checkbox",id:this.instanceId,role:"checkbox","aria-checked":this.state.indeterminate?"mixed":String(this.state.checked),"aria-label":this.state.checked?this.config.checkedLabel??"チェック済み":this.config.uncheckedLabel??"未チェック"}});this.config.name&&i.setAttribute("name",this.config.name),this.state.checked&&i.setAttribute("checked","checked"),this.state.indeterminate&&(i.indeterminate=!0),this.state.disabled&&(i.setAttribute("disabled","disabled"),i.setAttribute("aria-disabled","true")),i.addEventListener("change",l=>{const d=l.target;this.setChecked(d.checked)}),i.addEventListener("keydown",l=>{(l.key===" "||l.key==="Enter")&&(l.preventDefault(),this.state.disabled||this.toggle())}),e.appendChild(i);const a=this.state.indeterminate?"indeterminate":this.state.checked?"checked":"unchecked",n=["checkbox-visual",a,this.state.disabled?"disabled":""].filter(Boolean).join(" "),r=c("label",{className:n,attributes:{for:this.instanceId,"data-state":a}});this.state.disabled&&r.setAttribute("data-disabled","");const s=c("span",{className:"checkbox-box"}),o=c("span",{className:"checkbox-icon",attributes:{"data-state":a}});return this.state.indeterminate?o.innerHTML=`
73
81
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
74
82
  <path d="M3 8H13" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
75
83
  </svg>
@@ -77,121 +85,113 @@
77
85
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
78
86
  <path d="M3 8L6.5 11.5L13 4.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
79
87
  </svg>
80
- `),r.appendChild(o),a.appendChild(r),e.appendChild(a),e}renderLabel(){const e=this.config.checkedLabel??"",i=this.config.uncheckedLabel??"",n=this.state.indeterminate?"indeterminate":this.state.checked?"checked":"unchecked",s=["checkbox-label",n,this.state.disabled?"disabled":""].filter(Boolean).join(" "),a=this.state.checked?e:i,r=c("label",{className:s,textContent:a,attributes:{for:this.instanceId,"aria-live":"polite","data-state":n}});return this.state.disabled&&r.setAttribute("data-disabled",""),r}static renderField(e){return e.type==="checkbox"?Ee.renderSingleCheckbox(e):Ee.renderCheckboxGroup(e)}static renderSingleCheckbox(e){const i=e.label_position??"right",n=e.size??"medium",s=e.disabled?"disabled":"",a=`
88
+ `),s.appendChild(o),r.appendChild(s),e.appendChild(r),e}renderLabel(){const e=this.config.checkedLabel??"",i=this.config.uncheckedLabel??"",a=this.state.indeterminate?"indeterminate":this.state.checked?"checked":"unchecked",n=["checkbox-label",a,this.state.disabled?"disabled":""].filter(Boolean).join(" "),r=this.state.checked?e:i,s=c("label",{className:n,textContent:r,attributes:{for:this.instanceId,"aria-live":"polite","data-state":a}});return this.state.disabled&&s.setAttribute("data-disabled",""),s}static renderField(e){return e.type==="checkbox"?Ye.renderSingleCheckbox(e):Ye.renderCheckboxGroup(e)}static renderSingleCheckbox(e){const i=e.label_position??"right",a=e.size??"medium",n=e.disabled?"disabled":"",r=`
81
89
  <input
82
90
  type="checkbox"
83
- id="${m(e.id)}"
84
- name="${m(e.name??e.id)}"
85
- class="checkbox-input checkbox-${n}"
91
+ id="${g(e.id)}"
92
+ name="${g(e.name??e.id)}"
93
+ class="checkbox-input checkbox-${a}"
86
94
  ${e.required?"required":""}
87
- ${s}
95
+ ${n}
88
96
  />
89
- `,r=e.label?`<span class="checkbox-label-text">${m(e.label)}</span>`:"",o=i==="left"?`<label class="checkbox-single label-left">${r}${a}</label>`:`<label class="checkbox-single label-right">${a}${r}</label>`;return x({...e,label:""},o)}static renderCheckboxGroup(e){const i=ce(e.options),n=e.direction??"vertical",s=Array.isArray(e.default)?e.default:[],a=i.map(o=>{const l=s.includes(o.value)?"checked":"",d=o.disabled||e.disabled?"disabled":"",p=`${e.id}-${o.value}`;return`
90
- <label class="checkbox-option" for="${m(p)}">
97
+ `,s=e.label?`<span class="checkbox-label-text">${g(e.label)}</span>`:"",o=i==="left"?`<label class="checkbox-single label-left">${s}${r}</label>`:`<label class="checkbox-single label-right">${r}${s}</label>`;return $({...e,label:""},o)}static renderCheckboxGroup(e){const i=Te(e.options),a=xa(e.direction,i),n=Array.isArray(e.default)?e.default:[],r=i.map(o=>{const l=n.includes(o.value)?"checked":"",d=o.disabled||e.disabled?"disabled":"",u=`${e.id}-${o.value}`;return`
98
+ <label class="checkbox-option" for="${g(u)}">
91
99
  <input
92
100
  type="checkbox"
93
- id="${m(p)}"
94
- name="${m(e.id)}"
95
- value="${m(String(o.value))}"
101
+ id="${g(u)}"
102
+ name="${g(e.id)}"
103
+ value="${g(String(o.value))}"
96
104
  ${l}
97
105
  ${d}
98
106
  />
99
- <span class="checkbox-label">${m(o.label)}</span>
107
+ <span class="checkbox-label">${g(o.label)}</span>
100
108
  </label>
101
- `}).join(""),r=`<div class="checkbox-group direction-${n}">${a}</div>`;return x(e,r)}}class fi{constructor(e,i,n={},s=[]){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"debounceTimer",null);h(this,"inputRef",null);h(this,"listboxRef",null);h(this,"documentClickHandler",null);h(this,"abortController",null);this.config=i,this.container=e,this.callbacks=n,this.instanceId=E("combobox"),this.state=this.createInitialState(s)}render(){B(this.container),this.container.className=`mokkun-combobox combobox-${this.config.mode}`,this.container.setAttribute("data-state",this.state.isOpen?"open":"closed"),this.config.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const e=c("div",{className:"combobox-wrapper"});e.appendChild(this.renderInputArea()),this.state.isOpen&&e.appendChild(this.renderDropdown()),this.container.appendChild(e),this.setupEventListeners()}getValue(){return[...this.state.selectedValues]}setValue(e){this.setState({selectedValues:e})}getSelectedOptions(){const e=this.config.options??[];return this.state.selectedValues.map(i=>e.find(n=>n.value===i)).filter(i=>i!==void 0)}open(){var e,i;this.config.disabled||this.state.isOpen||(this.setState({isOpen:!0,highlightedIndex:-1}),(i=(e=this.callbacks).onOpen)==null||i.call(e,this.state))}close(){var e,i;this.state.isOpen&&(this.setState({isOpen:!1,highlightedIndex:-1}),(i=(e=this.callbacks).onClose)==null||i.call(e,this.state))}toggle(){this.state.isOpen?this.close():this.open()}isOpenState(){return this.state.isOpen}setOptions(e){this.config.options=e,this.updateFilteredOptions()}addOption(e){this.config.options||(this.config.options=[]),this.config.options.push(e),this.updateFilteredOptions()}removeOption(e){this.config.options&&(this.config.options=this.config.options.filter(i=>i.value!==e),this.updateFilteredOptions())}getState(){return{...this.state}}destroy(){this.debounceTimer&&clearTimeout(this.debounceTimer),this.abortController&&this.abortController.abort(),this.documentClickHandler&&document.removeEventListener("click",this.documentClickHandler),B(this.container),this.inputRef=null,this.listboxRef=null}createInitialState(e){const i=this.config.options??[],n=this.filterOptions("",i);return{selectedValues:e,inputValue:"",isOpen:!1,highlightedIndex:-1,filteredOptions:n,groupedOptions:this.groupOptions(n),isLoading:!1,error:null}}setState(e){this.state={...this.state,...e},this.render()}updateFilteredOptions(){const e=this.config.options??[],i=this.filterOptions(this.state.inputValue,e);this.setState({filteredOptions:i,groupedOptions:this.groupOptions(i)})}filterOptions(e,i){if(!e)return i;const n=e.toLowerCase().trim();return i.filter(s=>{var l,d;const a=s.label.toLowerCase().includes(n),r=((l=s.description)==null?void 0:l.toLowerCase().includes(n))??!1,o=((d=s.group)==null?void 0:d.toLowerCase().includes(n))??!1;return a||r||o})}groupOptions(e){const i=new Map,n=[];for(const s of e)s.group?(i.has(s.group)||i.set(s.group,[]),i.get(s.group).push(s)):n.push(s);return n.length>0&&i.set("",n),i}async loadOptionsAsync(e){if(!this.config.loadOptions)return;this.debounceTimer&&clearTimeout(this.debounceTimer);const i=this.config.minSearchLength??0;if(e.length<i){this.setState({filteredOptions:[],groupedOptions:new Map,isLoading:!1,error:null});return}this.abortController&&this.abortController.abort(),this.abortController=new AbortController,this.setState({isLoading:!0,error:null}),this.debounceTimer=setTimeout(async()=>{var n,s;try{const a=await this.config.loadOptions(e),r=this.filterOptions(e,a);this.setState({filteredOptions:r,groupedOptions:this.groupOptions(r),isLoading:!1,error:null})}catch(a){if(a.name==="AbortError")return;this.setState({isLoading:!1,error:a.message}),(s=(n=this.callbacks).onError)==null||s.call(n,a,this.state)}},this.config.debounceMs??300)}renderInputArea(){const e=c("div",{className:`combobox-control ${this.config.disabled?"disabled":""}`}),i=c("div",{className:"combobox-value-container"});if(this.config.mode==="multi"){const a=this.renderTags();a&&i.appendChild(a)}else if(this.state.selectedValues.length>0){const a=this.getSelectedOptions()[0];if(a){const r=c("span",{className:"combobox-single-value"});this.config.renderSelected?r.innerHTML=this.config.renderSelected(a):r.textContent=a.label,i.appendChild(r)}}const n=this.createInputElement();this.inputRef=n,i.appendChild(n),e.appendChild(i);const s=this.renderIndicators();return e.appendChild(s),e}createInputElement(){const e={type:"text",role:"combobox","aria-haspopup":"listbox","aria-expanded":String(this.state.isOpen),"aria-controls":`${this.instanceId}-listbox`,"aria-autocomplete":"list",id:this.config.id,name:this.config.name??this.config.id,placeholder:this.config.placeholder??""};this.config.disabled&&(e.disabled="true"),this.config.required&&(e.required="true");const i=c("input",{className:"combobox-input",attributes:e});return this.state.highlightedIndex>=0&&this.state.filteredOptions[this.state.highlightedIndex]&&i.setAttribute("aria-activedescendant",`${this.instanceId}-option-${this.state.highlightedIndex}`),i}renderTags(){if(this.state.selectedValues.length===0)return null;const e=c("div",{className:"combobox-tags"}),i=this.getSelectedOptions();for(const n of i){const s=c("span",{className:"combobox-tag"}),a=c("span",{className:"combobox-tag-label"});this.config.renderSelected?a.innerHTML=this.config.renderSelected(n):a.textContent=n.label,s.appendChild(a);const r=c("button",{className:"combobox-tag-remove",attributes:{type:"button","aria-label":`Remove ${n.label}`,"data-value":String(n.value)}});r.textContent="×",s.appendChild(r),e.appendChild(s)}return e}renderIndicators(){const e=c("div",{className:"combobox-indicators"});if(this.config.clearable&&this.state.selectedValues.length>0){const n=c("button",{className:"combobox-clear",attributes:{type:"button","aria-label":"Clear selection"}});n.textContent="×",e.appendChild(n);const s=c("span",{className:"combobox-separator"});e.appendChild(s)}const i=c("button",{className:"combobox-dropdown-indicator",attributes:{type:"button","aria-label":this.state.isOpen?"Close options":"Open options"}});return i.textContent="▼",e.appendChild(i),e}renderDropdown(){const e=c("div",{className:"combobox-dropdown",attributes:{role:"listbox",id:`${this.instanceId}-listbox`,"aria-label":"Options"}});if(this.listboxRef=e,this.state.isLoading){const n=c("div",{className:"combobox-loading"});return n.textContent=this.config.loadingMessage??"Loading...",e.appendChild(n),e}if(this.state.error){const n=c("div",{className:"combobox-error"});return n.textContent=this.state.error,e.appendChild(n),e}if(this.state.filteredOptions.length===0){const n=c("div",{className:"combobox-no-options"});return n.textContent=this.config.noOptionsMessage??"No options found",e.appendChild(n),e}let i=0;for(const[n,s]of this.state.groupedOptions.entries()){const a=c("div",{className:"combobox-option-group"});if(n){const r=c("div",{className:"combobox-group-header"});r.textContent=n,a.appendChild(r)}for(const r of s){const o=this.renderOption(r,i);a.appendChild(o),i++}e.appendChild(a)}return e}renderOption(e,i){const n=this.state.selectedValues.includes(e.value),s=this.state.highlightedIndex===i,a=c("div",{className:`combobox-option ${n?"selected":""} ${s?"highlighted":""} ${e.disabled?"disabled":""}`,attributes:{role:"option","aria-selected":String(n),"data-value":String(e.value),"data-index":String(i),id:`${this.instanceId}-option-${i}`}});if(this.config.renderOption)a.innerHTML=this.config.renderOption(e);else{if(e.icon){const o=c("span",{className:"combobox-option-icon"});o.innerHTML=e.icon,a.appendChild(o)}const r=c("span",{className:"combobox-option-label"});if(r.textContent=e.label,a.appendChild(r),e.description){const o=c("span",{className:"combobox-option-description"});o.textContent=e.description,a.appendChild(o)}}return a}setupEventListeners(){if(!this.inputRef)return;this.inputRef.addEventListener("focus",()=>this.handleInputFocus()),this.inputRef.addEventListener("input",s=>this.handleInput(s)),this.inputRef.addEventListener("keydown",s=>this.handleKeyDown(s));const e=this.container.querySelector(".combobox-clear");e&&e.addEventListener("click",()=>this.handleClear());const i=this.container.querySelector(".combobox-dropdown-indicator");i&&i.addEventListener("click",()=>this.toggle()),this.container.querySelectorAll(".combobox-tag-remove").forEach(s=>{s.addEventListener("click",a=>{var o;const r=(o=a.target.closest("[data-value]"))==null?void 0:o.getAttribute("data-value");r!=null&&this.deselectOption(r)})}),this.listboxRef&&(this.listboxRef.addEventListener("click",s=>this.handleOptionClick(s)),this.listboxRef.addEventListener("mouseover",s=>this.handleOptionHover(s))),this.documentClickHandler=s=>{this.container.contains(s.target)||this.close()},document.addEventListener("click",this.documentClickHandler)}handleInputFocus(){this.state.isOpen||this.open()}handleInput(e){var s,a;const n=e.target.value;this.state.inputValue=n,(a=(s=this.callbacks).onInputChange)==null||a.call(s,n,this.state),this.config.loadOptions?this.loadOptionsAsync(n):this.updateFilteredOptions(),this.state.isOpen||this.open()}handleKeyDown(e){switch(e.key){case"ArrowDown":e.preventDefault(),this.state.isOpen?this.highlightNext():this.open();break;case"ArrowUp":e.preventDefault(),this.state.isOpen&&this.highlightPrevious();break;case"Enter":e.preventDefault(),this.state.isOpen&&this.state.highlightedIndex>=0&&this.selectHighlighted();break;case"Escape":e.preventDefault(),this.close();break;case"Tab":this.close();break;case"Backspace":this.config.mode==="multi"&&!this.state.inputValue&&this.removeLastSelected();break}}handleClear(){this.clearSelection()}handleOptionClick(e){const n=e.target.closest(".combobox-option");if(!n)return;const s=n.getAttribute("data-value");if(s===null)return;const a=this.state.filteredOptions.find(r=>String(r.value)===s);!a||a.disabled||this.selectOption(a.value)}handleOptionHover(e){const n=e.target.closest(".combobox-option");if(!n)return;const s=parseInt(n.getAttribute("data-index")??"-1");s>=0&&this.highlightOption(s)}selectOption(e){var i,n;if(this.config.mode==="single")this.setState({selectedValues:[e],inputValue:"",isOpen:!1});else{if(this.state.selectedValues.includes(e)){this.deselectOption(e);return}const s=this.config.maxSelections;if(s&&this.state.selectedValues.length>=s)return;this.setState({selectedValues:[...this.state.selectedValues,e],inputValue:""})}(n=(i=this.callbacks).onChange)==null||n.call(i,this.state.selectedValues,this.state)}deselectOption(e){var i,n;this.setState({selectedValues:this.state.selectedValues.filter(s=>String(s)!==String(e))}),(n=(i=this.callbacks).onChange)==null||n.call(i,this.state.selectedValues,this.state)}clearSelection(){var e,i;this.setState({selectedValues:[],inputValue:""}),(i=(e=this.callbacks).onChange)==null||i.call(e,this.state.selectedValues,this.state)}selectHighlighted(){if(this.state.highlightedIndex<0)return;const e=this.state.filteredOptions[this.state.highlightedIndex];!e||e.disabled||this.selectOption(e.value)}removeLastSelected(){if(this.state.selectedValues.length===0)return;const e=this.state.selectedValues[this.state.selectedValues.length-1];this.deselectOption(e)}highlightNext(){let e=this.state.highlightedIndex+1;for(;e<this.state.filteredOptions.length;){if(!this.state.filteredOptions[e].disabled){this.highlightOption(e);return}e++}}highlightPrevious(){let e=this.state.highlightedIndex-1;for(;e>=0;){if(!this.state.filteredOptions[e].disabled){this.highlightOption(e);return}e--}}highlightOption(e){var s,a;if(e<0||e>=this.state.filteredOptions.length)return;const i=this.state.highlightedIndex;if(this.state.highlightedIndex=e,this.listboxRef){if(i>=0){const o=this.listboxRef.querySelector(`[data-index="${i}"]`);o==null||o.classList.remove("highlighted")}const r=this.listboxRef.querySelector(`[data-index="${e}"]`);r==null||r.classList.add("highlighted"),this.inputRef&&this.inputRef.setAttribute("aria-activedescendant",`${this.instanceId}-option-${e}`),r&&typeof r.scrollIntoView=="function"&&r.scrollIntoView({block:"nearest"})}const n=this.state.filteredOptions[e];(a=(s=this.callbacks).onHighlight)==null||a.call(s,n,this.state)}static renderField(e){const i=[`id="${m(e.id)}"`,`name="${m(e.id)}"`,'role="combobox"','aria-haspopup="listbox"','aria-expanded="false"'];e.required&&i.push("required"),e.disabled&&i.push("disabled"),e.placeholder&&i.push(`placeholder="${m(e.placeholder)}"`);const n=ce(e.options??[]),s=`${e.id}-listbox`;i.push(`aria-controls="${s}"`);const a=n.map((o,l)=>{const d=o.disabled?'aria-disabled="true"':"";return`
109
+ `}).join(""),s=`<div class="checkbox-group direction-${a}${a==="horizontal"?" inline":""}">${r}</div>`;return $(e,s)}}class Aa{constructor(e,i,a={},n=[]){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"debounceTimer",null);p(this,"inputRef",null);p(this,"listboxRef",null);p(this,"documentClickHandler",null);p(this,"abortController",null);this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("combobox"),this.state=this.createInitialState(n)}render(){W(this.container),this.container.className=`mokkun-combobox combobox-${this.config.mode}`,this.container.setAttribute("data-state",this.state.isOpen?"open":"closed"),this.config.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const e=c("div",{className:"combobox-wrapper"});e.appendChild(this.renderInputArea()),this.state.isOpen&&e.appendChild(this.renderDropdown()),this.container.appendChild(e),this.setupEventListeners()}getValue(){return[...this.state.selectedValues]}setValue(e){this.setState({selectedValues:e})}getSelectedOptions(){const e=this.config.options??[];return this.state.selectedValues.map(i=>e.find(a=>a.value===i)).filter(i=>i!==void 0)}open(){var e,i;this.config.disabled||this.state.isOpen||(this.setState({isOpen:!0,highlightedIndex:-1}),(i=(e=this.callbacks).onOpen)==null||i.call(e,this.state))}close(){var e,i;this.state.isOpen&&(this.setState({isOpen:!1,highlightedIndex:-1}),(i=(e=this.callbacks).onClose)==null||i.call(e,this.state))}toggle(){this.state.isOpen?this.close():this.open()}isOpenState(){return this.state.isOpen}setOptions(e){this.config.options=e,this.updateFilteredOptions()}addOption(e){this.config.options||(this.config.options=[]),this.config.options.push(e),this.updateFilteredOptions()}removeOption(e){this.config.options&&(this.config.options=this.config.options.filter(i=>i.value!==e),this.updateFilteredOptions())}getState(){return{...this.state}}destroy(){this.debounceTimer&&clearTimeout(this.debounceTimer),this.abortController&&this.abortController.abort(),this.documentClickHandler&&document.removeEventListener("click",this.documentClickHandler),W(this.container),this.inputRef=null,this.listboxRef=null}createInitialState(e){const i=this.config.options??[],a=this.filterOptions("",i);return{selectedValues:e,inputValue:"",isOpen:!1,highlightedIndex:-1,filteredOptions:a,groupedOptions:this.groupOptions(a),isLoading:!1,error:null}}setState(e){this.state={...this.state,...e},this.render()}updateFilteredOptions(){const e=this.config.options??[],i=this.filterOptions(this.state.inputValue,e);this.setState({filteredOptions:i,groupedOptions:this.groupOptions(i)})}filterOptions(e,i){if(!e)return i;const a=e.toLowerCase().trim();return i.filter(n=>{var l,d;const r=n.label.toLowerCase().includes(a),s=((l=n.description)==null?void 0:l.toLowerCase().includes(a))??!1,o=((d=n.group)==null?void 0:d.toLowerCase().includes(a))??!1;return r||s||o})}groupOptions(e){const i=new Map,a=[];for(const n of e)n.group?(i.has(n.group)||i.set(n.group,[]),i.get(n.group).push(n)):a.push(n);return a.length>0&&i.set("",a),i}async loadOptionsAsync(e){if(!this.config.loadOptions)return;this.debounceTimer&&clearTimeout(this.debounceTimer);const i=this.config.minSearchLength??0;if(e.length<i){this.setState({filteredOptions:[],groupedOptions:new Map,isLoading:!1,error:null});return}this.abortController&&this.abortController.abort(),this.abortController=new AbortController,this.setState({isLoading:!0,error:null}),this.debounceTimer=setTimeout(async()=>{var a,n;try{const r=await this.config.loadOptions(e),s=this.filterOptions(e,r);this.setState({filteredOptions:s,groupedOptions:this.groupOptions(s),isLoading:!1,error:null})}catch(r){if(r.name==="AbortError")return;this.setState({isLoading:!1,error:r.message}),(n=(a=this.callbacks).onError)==null||n.call(a,r,this.state)}},this.config.debounceMs??300)}renderInputArea(){const e=c("div",{className:`combobox-control ${this.config.disabled?"disabled":""}`}),i=c("div",{className:"combobox-value-container"});if(this.config.mode==="multi"){const r=this.renderTags();r&&i.appendChild(r)}else if(this.state.selectedValues.length>0){const r=this.getSelectedOptions()[0];if(r){const s=c("span",{className:"combobox-single-value"});this.config.renderSelected?s.innerHTML=this.config.renderSelected(r):s.textContent=r.label,i.appendChild(s)}}const a=this.createInputElement();this.inputRef=a,i.appendChild(a),e.appendChild(i);const n=this.renderIndicators();return e.appendChild(n),e}createInputElement(){const e={type:"text",role:"combobox","aria-haspopup":"listbox","aria-expanded":String(this.state.isOpen),"aria-controls":`${this.instanceId}-listbox`,"aria-autocomplete":"list",id:this.config.id,name:this.config.name??this.config.id,placeholder:this.config.placeholder??""};this.config.disabled&&(e.disabled="true"),this.config.required&&(e.required="true");const i=c("input",{className:"combobox-input",attributes:e});return this.state.highlightedIndex>=0&&this.state.filteredOptions[this.state.highlightedIndex]&&i.setAttribute("aria-activedescendant",`${this.instanceId}-option-${this.state.highlightedIndex}`),i}renderTags(){if(this.state.selectedValues.length===0)return null;const e=c("div",{className:"combobox-tags"}),i=this.getSelectedOptions();for(const a of i){const n=c("span",{className:"combobox-tag"}),r=c("span",{className:"combobox-tag-label"});this.config.renderSelected?r.innerHTML=this.config.renderSelected(a):r.textContent=a.label,n.appendChild(r);const s=c("button",{className:"combobox-tag-remove",attributes:{type:"button","aria-label":`Remove ${a.label}`,"data-value":String(a.value)}});s.textContent="×",n.appendChild(s),e.appendChild(n)}return e}renderIndicators(){const e=c("div",{className:"combobox-indicators"});if(this.config.clearable&&this.state.selectedValues.length>0){const a=c("button",{className:"combobox-clear",attributes:{type:"button","aria-label":"Clear selection"}});a.textContent="×",e.appendChild(a);const n=c("span",{className:"combobox-separator"});e.appendChild(n)}const i=c("button",{className:"combobox-dropdown-indicator",attributes:{type:"button","aria-label":this.state.isOpen?"Close options":"Open options"}});return i.textContent="▼",e.appendChild(i),e}renderDropdown(){const e=c("div",{className:"combobox-dropdown",attributes:{role:"listbox",id:`${this.instanceId}-listbox`,"aria-label":"Options"}});if(this.listboxRef=e,this.state.isLoading){const a=c("div",{className:"combobox-loading"});return a.textContent=this.config.loadingMessage??"Loading...",e.appendChild(a),e}if(this.state.error){const a=c("div",{className:"combobox-error"});return a.textContent=this.state.error,e.appendChild(a),e}if(this.state.filteredOptions.length===0){const a=c("div",{className:"combobox-no-options"});return a.textContent=this.config.noOptionsMessage??"No options found",e.appendChild(a),e}let i=0;for(const[a,n]of this.state.groupedOptions.entries()){const r=c("div",{className:"combobox-option-group"});if(a){const s=c("div",{className:"combobox-group-header"});s.textContent=a,r.appendChild(s)}for(const s of n){const o=this.renderOption(s,i);r.appendChild(o),i++}e.appendChild(r)}return e}renderOption(e,i){const a=this.state.selectedValues.includes(e.value),n=this.state.highlightedIndex===i,r=c("div",{className:`combobox-option ${a?"selected":""} ${n?"highlighted":""} ${e.disabled?"disabled":""}`,attributes:{role:"option","aria-selected":String(a),"data-value":String(e.value),"data-index":String(i),id:`${this.instanceId}-option-${i}`}});if(this.config.renderOption)r.innerHTML=this.config.renderOption(e);else{if(e.icon){const o=c("span",{className:"combobox-option-icon"});o.innerHTML=e.icon,r.appendChild(o)}const s=c("span",{className:"combobox-option-label"});if(s.textContent=e.label,r.appendChild(s),e.description){const o=c("span",{className:"combobox-option-description"});o.textContent=e.description,r.appendChild(o)}}return r}setupEventListeners(){if(!this.inputRef)return;this.inputRef.addEventListener("focus",()=>this.handleInputFocus()),this.inputRef.addEventListener("input",n=>this.handleInput(n)),this.inputRef.addEventListener("keydown",n=>this.handleKeyDown(n));const e=this.container.querySelector(".combobox-clear");e&&e.addEventListener("click",()=>this.handleClear());const i=this.container.querySelector(".combobox-dropdown-indicator");i&&i.addEventListener("click",()=>this.toggle()),this.container.querySelectorAll(".combobox-tag-remove").forEach(n=>{n.addEventListener("click",r=>{var o;const s=(o=r.target.closest("[data-value]"))==null?void 0:o.getAttribute("data-value");s!=null&&this.deselectOption(s)})}),this.listboxRef&&(this.listboxRef.addEventListener("click",n=>this.handleOptionClick(n)),this.listboxRef.addEventListener("mouseover",n=>this.handleOptionHover(n))),this.documentClickHandler=n=>{this.container.contains(n.target)||this.close()},document.addEventListener("click",this.documentClickHandler)}handleInputFocus(){this.state.isOpen||this.open()}handleInput(e){var n,r;const a=e.target.value;this.state.inputValue=a,(r=(n=this.callbacks).onInputChange)==null||r.call(n,a,this.state),this.config.loadOptions?this.loadOptionsAsync(a):this.updateFilteredOptions(),this.state.isOpen||this.open()}handleKeyDown(e){switch(e.key){case"ArrowDown":e.preventDefault(),this.state.isOpen?this.highlightNext():this.open();break;case"ArrowUp":e.preventDefault(),this.state.isOpen&&this.highlightPrevious();break;case"Enter":e.preventDefault(),this.state.isOpen&&this.state.highlightedIndex>=0&&this.selectHighlighted();break;case"Escape":e.preventDefault(),this.close();break;case"Tab":this.close();break;case"Backspace":this.config.mode==="multi"&&!this.state.inputValue&&this.removeLastSelected();break}}handleClear(){this.clearSelection()}handleOptionClick(e){const a=e.target.closest(".combobox-option");if(!a)return;const n=a.getAttribute("data-value");if(n===null)return;const r=this.state.filteredOptions.find(s=>String(s.value)===n);!r||r.disabled||this.selectOption(r.value)}handleOptionHover(e){const a=e.target.closest(".combobox-option");if(!a)return;const n=parseInt(a.getAttribute("data-index")??"-1");n>=0&&this.highlightOption(n)}selectOption(e){var i,a;if(this.config.mode==="single")this.setState({selectedValues:[e],inputValue:"",isOpen:!1});else{if(this.state.selectedValues.includes(e)){this.deselectOption(e);return}const n=this.config.maxSelections;if(n&&this.state.selectedValues.length>=n)return;this.setState({selectedValues:[...this.state.selectedValues,e],inputValue:""})}(a=(i=this.callbacks).onChange)==null||a.call(i,this.state.selectedValues,this.state)}deselectOption(e){var i,a;this.setState({selectedValues:this.state.selectedValues.filter(n=>String(n)!==String(e))}),(a=(i=this.callbacks).onChange)==null||a.call(i,this.state.selectedValues,this.state)}clearSelection(){var e,i;this.setState({selectedValues:[],inputValue:""}),(i=(e=this.callbacks).onChange)==null||i.call(e,this.state.selectedValues,this.state)}selectHighlighted(){if(this.state.highlightedIndex<0)return;const e=this.state.filteredOptions[this.state.highlightedIndex];!e||e.disabled||this.selectOption(e.value)}removeLastSelected(){if(this.state.selectedValues.length===0)return;const e=this.state.selectedValues[this.state.selectedValues.length-1];this.deselectOption(e)}highlightNext(){let e=this.state.highlightedIndex+1;for(;e<this.state.filteredOptions.length;){if(!this.state.filteredOptions[e].disabled){this.highlightOption(e);return}e++}}highlightPrevious(){let e=this.state.highlightedIndex-1;for(;e>=0;){if(!this.state.filteredOptions[e].disabled){this.highlightOption(e);return}e--}}highlightOption(e){var n,r;if(e<0||e>=this.state.filteredOptions.length)return;const i=this.state.highlightedIndex;if(this.state.highlightedIndex=e,this.listboxRef){if(i>=0){const o=this.listboxRef.querySelector(`[data-index="${i}"]`);o==null||o.classList.remove("highlighted")}const s=this.listboxRef.querySelector(`[data-index="${e}"]`);s==null||s.classList.add("highlighted"),this.inputRef&&this.inputRef.setAttribute("aria-activedescendant",`${this.instanceId}-option-${e}`),s&&typeof s.scrollIntoView=="function"&&s.scrollIntoView({block:"nearest"})}const a=this.state.filteredOptions[e];(r=(n=this.callbacks).onHighlight)==null||r.call(n,a,this.state)}static renderField(e){const i=[`id="${g(e.id)}"`,`name="${g(e.id)}"`,'role="combobox"','aria-haspopup="listbox"','aria-expanded="false"'];e.required&&i.push("required"),e.disabled&&i.push("disabled"),e.placeholder&&i.push(`placeholder="${g(e.placeholder)}"`);const a=Te(e.options??[]),n=`${e.id}-listbox`;i.push(`aria-controls="${n}"`);const r=a.map((o,l)=>{const d=o.disabled?'aria-disabled="true"':"";return`
102
110
  <div
103
111
  role="option"
104
- id="${m(e.id)}-option-${l}"
105
- data-value="${m(String(o.value))}"
112
+ id="${g(e.id)}-option-${l}"
113
+ data-value="${g(String(o.value))}"
106
114
  ${d}
107
115
  >
108
- ${m(o.label)}
116
+ ${g(o.label)}
109
117
  </div>
110
- `}).join(""),r=`
118
+ `}).join(""),s=`
111
119
  <div class="combobox-wrapper" data-state="closed">
112
120
  <div class="combobox-control">
113
121
  <input type="text" class="combobox-input" ${i.join(" ")} />
114
122
  <button type="button" class="combobox-dropdown-indicator" aria-label="Open options">▼</button>
115
123
  </div>
116
- <div role="listbox" id="${s}" class="combobox-dropdown" hidden>
117
- ${a}
124
+ <div role="listbox" id="${n}" class="combobox-dropdown" hidden>
125
+ ${r}
118
126
  </div>
119
127
  </div>
120
- `;return x(e,r)}}class Aa{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("heading"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.state.level,i=this.state.size??this.getDefaultSizeForLevel(e),n=this.state.align??"left",s=this.state.color??"default";this.container.className=["mokkun-heading",`heading-level-${e}`,`heading-size-${i}`,`heading-align-${n}`,`heading-color-${s}`,this.config.className??""].filter(Boolean).join(" ");const a=this.createHeadingElement();this.container.appendChild(a)}setText(e){this.state={...this.state,text:e},this.render()}setLevel(e){this.state={...this.state,level:e},this.render()}setSize(e){this.state={...this.state,size:e},this.render()}setAlign(e){this.state={...this.state,align:e},this.render()}setColor(e){this.state={...this.state,color:e},this.render()}getState(){return{...this.state}}createInitialState(){return{level:this.config.level,text:this.config.text,size:this.config.size,align:this.config.align,color:this.config.color,icon:this.config.icon}}createHeadingElement(){const e=`h${this.state.level}`,i=c(e,{className:"heading-element",attributes:{id:this.instanceId}});if(this.state.icon){const s=c("span",{className:"heading-icon",textContent:this.state.icon});i.appendChild(s)}const n=c("span",{className:"heading-text",textContent:this.state.text});return i.appendChild(n),this.callbacks.onClick&&(i.style.cursor="pointer",i.addEventListener("click",()=>{var s,a;(a=(s=this.callbacks).onClick)==null||a.call(s,this.getState())})),i}getDefaultSizeForLevel(e){return pi(e)}static renderField(e){const i=e.size??pi(e.level),n=e.align??"left",s=e.color??"default",a=`h${e.level}`,r=["heading-field-container",`heading-level-${e.level}`,`heading-size-${i}`,`heading-align-${n}`,`heading-color-${s}`];e.class&&r.push(e.class);const o=e.icon?`<span class="heading-icon">${m(e.icon)}</span>`:"";return`
121
- <div class="${r.join(" ")}" data-field-id="${m(e.id)}">
122
- <${a} class="heading-element" id="${m(e.id)}">
123
- ${o}
124
- <span class="heading-text">${m(e.text)}</span>
125
- </${a}>
128
+ `;return $(e,s)}}class Ko{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("heading"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.state.level,i=this.state.size??this.getDefaultSizeForLevel(e),a=this.state.align??"left",n=this.state.color??"default";this.container.className=["mokkun-heading",`heading-level-${e}`,`heading-size-${i}`,`heading-align-${a}`,`heading-color-${n}`,this.config.className??""].filter(Boolean).join(" ");const r=this.createHeadingElement();this.container.appendChild(r)}setText(e){this.state={...this.state,text:e},this.render()}setLevel(e){this.state={...this.state,level:e},this.render()}setSize(e){this.state={...this.state,size:e},this.render()}setAlign(e){this.state={...this.state,align:e},this.render()}setColor(e){this.state={...this.state,color:e},this.render()}getState(){return{...this.state}}createInitialState(){return{level:this.config.level,text:this.config.text,size:this.config.size,align:this.config.align,color:this.config.color,icon:this.config.icon}}createHeadingElement(){const e=`h${this.state.level}`,i=c(e,{className:"heading-element",attributes:{id:this.instanceId}});if(this.state.icon){const n=c("span",{className:"heading-icon",textContent:this.state.icon});i.appendChild(n)}const a=c("span",{className:"heading-text",textContent:this.state.text});return i.appendChild(a),this.callbacks.onClick&&(i.style.cursor="pointer",i.addEventListener("click",()=>{var n,r;(r=(n=this.callbacks).onClick)==null||r.call(n,this.getState())})),i}getDefaultSizeForLevel(e){return ka(e)}static renderField(e){const i=e.size??ka(e.level),a=e.align??"left",n=e.color??"default",r=`h${e.level}`,s=["heading-field-container",`heading-level-${e.level}`,`heading-size-${i}`,`heading-align-${a}`,`heading-color-${n}`],o=Ca(e.class);o&&s.push(o);const l=e.icon?`<span class="heading-icon">${g(e.icon)}</span>`:"";return`
129
+ <div class="${s.join(" ")}" data-field-id="${g(e.id)}">
130
+ <${r} class="heading-element" id="${g(e.id)}">
131
+ ${l}
132
+ <span class="heading-text">${g(e.text)}</span>
133
+ </${r}>
126
134
  </div>
127
- `}}class Ia{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("duration-picker"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=c("div",{className:"mokkun-duration-picker"});this.state.disabled&&e.classList.add("is-disabled");for(const i of this.config.units){const n=this.renderUnitSelector(i);e.appendChild(n)}this.container.appendChild(e)}setValue(e,i){var n,s;this.state.disabled||(this.state={...this.state,values:{...this.state.values,[e]:i}},this.render(),(s=(n=this.callbacks).onChange)==null||s.call(n,this.state.values,this.state))}setValues(e){var i,n;this.state.disabled||(this.state={...this.state,values:{...this.state.values,...e}},this.render(),(n=(i=this.callbacks).onChange)==null||n.call(i,this.state.values,this.state))}getValue(e){return this.state.values[e]}getValues(){return{...this.state.values}}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}createInitialState(){const e=this.config.defaultValues??{};return{values:{days:e.days??0,hours:e.hours??0,minutes:e.minutes??0,seconds:e.seconds??0},disabled:this.config.disabled??!1}}renderUnitSelector(e){const i=c("div",{className:"duration-unit"}),n=`${this.instanceId}-${e}`,s=this.getMaxForUnit(e),a=this.state.values[e],r=c("select",{className:"form-select duration-select",attributes:{id:n,name:this.config.name?`${this.config.name}-${e}`:n}});this.state.disabled&&r.setAttribute("disabled","disabled");for(let l=0;l<=s;l++){const d=c("option",{textContent:String(l)});d.setAttribute("value",String(l)),l===a&&d.setAttribute("selected","selected"),r.appendChild(d)}r.addEventListener("change",l=>{const d=l.target;this.setValue(e,parseInt(d.value,10))}),i.appendChild(r);const o=c("span",{className:"duration-unit-label",textContent:ke[e]??e});return i.appendChild(o),i}getMaxForUnit(e){switch(e){case"days":return 365;case"hours":return 23;case"minutes":case"seconds":return 59;default:return 59}}static renderField(e){const i=e.units??["hours","minutes"],n=e.id,a=`<div class="duration-picker">${i.map(r=>{const o=`${n}-${r}`;let l=59;r==="hours"&&(l=23),r==="days"&&(l=365);const d=Array.from({length:l+1},(p,u)=>`<option value="${u}">${u}</option>`).join("");return`
135
+ `}}class Zo{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("duration-picker"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=c("div",{className:"mokkun-duration-picker"});this.state.disabled&&e.classList.add("is-disabled");for(const i of this.config.units){const a=this.renderUnitSelector(i);e.appendChild(a)}this.container.appendChild(e)}setValue(e,i){var a,n;this.state.disabled||(this.state={...this.state,values:{...this.state.values,[e]:i}},this.render(),(n=(a=this.callbacks).onChange)==null||n.call(a,this.state.values,this.state))}setValues(e){var i,a;this.state.disabled||(this.state={...this.state,values:{...this.state.values,...e}},this.render(),(a=(i=this.callbacks).onChange)==null||a.call(i,this.state.values,this.state))}getValue(e){return this.state.values[e]}getValues(){return{...this.state.values}}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}createInitialState(){const e=this.config.defaultValues??{};return{values:{days:e.days??0,hours:e.hours??0,minutes:e.minutes??0,seconds:e.seconds??0},disabled:this.config.disabled??!1}}renderUnitSelector(e){const i=c("div",{className:"duration-unit"}),a=`${this.instanceId}-${e}`,n=this.getMaxForUnit(e),r=this.state.values[e],s=c("select",{className:"form-select duration-select",attributes:{id:a,name:this.config.name?`${this.config.name}-${e}`:a}});this.state.disabled&&s.setAttribute("disabled","disabled");for(let l=0;l<=n;l++){const d=c("option",{textContent:String(l)});d.setAttribute("value",String(l)),l===r&&d.setAttribute("selected","selected"),s.appendChild(d)}s.addEventListener("change",l=>{const d=l.target;this.setValue(e,parseInt(d.value,10))}),i.appendChild(s);const o=c("span",{className:"duration-unit-label",textContent:qe[e]??e});return i.appendChild(o),i}getMaxForUnit(e){switch(e){case"days":return 365;case"hours":return 23;case"minutes":case"seconds":return 59;default:return 59}}static renderField(e){const i=e.units??["hours","minutes"],a=e.id,r=`<div class="duration-picker">${i.map(s=>{const o=`${a}-${s}`;let l=59;s==="hours"&&(l=23),s==="days"&&(l=365);const d=Array.from({length:l+1},(u,h)=>`<option value="${h}">${h}</option>`).join("");return`
128
136
  <div class="duration-unit">
129
- <select id="${m(o)}" name="${m(o)}" class="form-select duration-select" ${e.disabled?"disabled":""}>
137
+ <select id="${g(o)}" name="${g(o)}" class="form-select duration-select" ${e.disabled?"disabled":""}>
130
138
  ${d}
131
139
  </select>
132
- <span class="duration-unit-label">${ke[r]??r}</span>
140
+ <span class="duration-unit-label">${qe[s]??s}</span>
133
141
  </div>
134
- `}).join("")}</div>`;return x(e,a)}}class Sa{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"inputElement",null);this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("duration-input"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=c("div",{className:"mokkun-duration-input"});this.state.disabled&&e.classList.add("is-disabled"),this.state.readonly&&e.classList.add("is-readonly"),this.state.error&&e.classList.add("has-error");const i=this.renderInputGroup();if(e.appendChild(i),this.state.error&&this.state.errorMessage){const n=this.renderError();e.appendChild(n)}this.container.appendChild(e)}setValue(e){var i,n;this.state.value!==e&&(this.state={...this.state,value:e},this.inputElement&&(this.inputElement.value=String(e)),(n=(i=this.callbacks).onChange)==null||n.call(i,e,this.state))}getValue(){return this.state.value}setError(e,i){this.state={...this.state,error:e,errorMessage:i},this.render()}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setReadonly(e){this.state.readonly!==e&&(this.state={...this.state,readonly:e},this.render())}focus(){var e;(e=this.inputElement)==null||e.focus()}blur(){var e;(e=this.inputElement)==null||e.blur()}getState(){return{...this.state}}createInitialState(){return{value:this.config.defaultValue??0,disabled:this.config.disabled??!1,readonly:this.config.readonly??!1,error:!1,errorMessage:void 0}}renderInputGroup(){const e=c("div",{className:"input-with-unit"}),i=this.renderInput();e.appendChild(i);const n=this.config.displayUnit??"minutes",s=c("span",{className:"input-unit",textContent:ke[n]??n});return e.appendChild(s),e}renderInput(){const e=c("input",{className:"form-input duration-input-field",attributes:{type:"number",id:this.instanceId,name:this.config.name??this.instanceId,min:String(this.config.min??0),...this.config.max!==void 0&&{max:String(this.config.max)},...this.config.placeholder&&{placeholder:this.config.placeholder},...this.config.required&&{required:"required"},...this.state.disabled&&{disabled:"disabled"},...this.state.readonly&&{readonly:"readonly"},...this.state.error&&{"aria-invalid":"true"}}});return e.value=String(this.state.value),e.addEventListener("input",this.handleInput.bind(this)),e.addEventListener("focus",this.handleFocus.bind(this)),e.addEventListener("blur",this.handleBlur.bind(this)),this.inputElement=e,e}renderError(){return c("div",{className:"duration-input-error",textContent:this.state.errorMessage??"",attributes:{id:`${this.instanceId}-error`,role:"alert"}})}handleInput(e){var s,a;const i=e.target,n=parseInt(i.value,10)||0;this.state={...this.state,value:n},(a=(s=this.callbacks).onChange)==null||a.call(s,n,this.state)}handleFocus(){var e,i;(i=(e=this.callbacks).onFocus)==null||i.call(e,this.state)}handleBlur(){var e,i;(i=(e=this.callbacks).onBlur)==null||i.call(e,this.state)}static renderField(e){const i=[j(e)];i.push('min="0"'),e.default!==void 0&&i.push(`value="${e.default}"`);const n=e.display_unit??"minutes",s=`
142
+ `}).join("")}</div>`;return $(e,r)}}class Qo{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"inputElement",null);this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("duration-input"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=c("div",{className:"mokkun-duration-input"});this.state.disabled&&e.classList.add("is-disabled"),this.state.readonly&&e.classList.add("is-readonly"),this.state.error&&e.classList.add("has-error");const i=this.renderInputGroup();if(e.appendChild(i),this.state.error&&this.state.errorMessage){const a=this.renderError();e.appendChild(a)}this.container.appendChild(e)}setValue(e){var i,a;this.state.value!==e&&(this.state={...this.state,value:e},this.inputElement&&(this.inputElement.value=String(e)),(a=(i=this.callbacks).onChange)==null||a.call(i,e,this.state))}getValue(){return this.state.value}setError(e,i){this.state={...this.state,error:e,errorMessage:i},this.render()}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setReadonly(e){this.state.readonly!==e&&(this.state={...this.state,readonly:e},this.render())}focus(){var e;(e=this.inputElement)==null||e.focus()}blur(){var e;(e=this.inputElement)==null||e.blur()}getState(){return{...this.state}}createInitialState(){return{value:this.config.defaultValue??0,disabled:this.config.disabled??!1,readonly:this.config.readonly??!1,error:!1,errorMessage:void 0}}renderInputGroup(){const e=c("div",{className:"input-with-unit"}),i=this.renderInput();e.appendChild(i);const a=this.config.displayUnit??"minutes",n=c("span",{className:"input-unit",textContent:qe[a]??a});return e.appendChild(n),e}renderInput(){const e=c("input",{className:"form-input duration-input-field",attributes:{type:"number",id:this.instanceId,name:this.config.name??this.instanceId,min:String(this.config.min??0),...this.config.max!==void 0&&{max:String(this.config.max)},...this.config.placeholder&&{placeholder:this.config.placeholder},...this.config.required&&{required:"required"},...this.state.disabled&&{disabled:"disabled"},...this.state.readonly&&{readonly:"readonly"},...this.state.error&&{"aria-invalid":"true"}}});return e.value=String(this.state.value),e.addEventListener("input",this.handleInput.bind(this)),e.addEventListener("focus",this.handleFocus.bind(this)),e.addEventListener("blur",this.handleBlur.bind(this)),this.inputElement=e,e}renderError(){return c("div",{className:"duration-input-error",textContent:this.state.errorMessage??"",attributes:{id:`${this.instanceId}-error`,role:"alert"}})}handleInput(e){var n,r;const i=e.target,a=parseInt(i.value,10)||0;this.state={...this.state,value:a},(r=(n=this.callbacks).onChange)==null||r.call(n,a,this.state)}handleFocus(){var e,i;(i=(e=this.callbacks).onFocus)==null||i.call(e,this.state)}handleBlur(){var e,i;(i=(e=this.callbacks).onBlur)==null||i.call(e,this.state)}static renderField(e){const i=[ne(e)];i.push('min="0"'),e.default!==void 0&&i.push(`value="${g(String(e.default))}"`);const a=e.display_unit??"minutes",n=`
135
143
  <div class="input-with-unit">
136
144
  <input type="number" class="form-input" ${i.join(" ")} />
137
- <span class="input-unit">${ke[n]??n}</span>
145
+ <span class="input-unit">${qe[a]??a}</span>
138
146
  </div>
139
- `;return x(e,s)}}class La{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");this.config=i,this.container=e,this.callbacks=n,this.instanceId=E("pagination"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.align??"center",i=this.config.compact??!1;this.container.className=`mokkun-pagination pagination-align-${e} ${i?"pagination-compact":""}`;const n=c("div",{className:"pagination-wrapper"});if(this.config.showPageSizeSelector!==!1){const a=this.renderPageSizeSelector();n.appendChild(a)}const s=this.renderNavigation();if(n.appendChild(s),this.config.showItemCount!==!1){const a=this.renderItemCount();n.appendChild(a)}this.container.appendChild(n)}goToPage(e){var n,s;const i=this.clampPage(e);this.state.currentPage!==i&&(this.state={...this.state,currentPage:i},this.render(),(s=(n=this.callbacks).onPageChange)==null||s.call(n,i,this.state))}nextPage(){this.goToPage(this.state.currentPage+1)}previousPage(){this.goToPage(this.state.currentPage-1)}firstPage(){this.goToPage(1)}lastPage(){this.goToPage(this.state.totalPages)}setPageSize(e){var a,r;if(this.state.pageSize===e)return;const i=(this.state.currentPage-1)*this.state.pageSize,n=Math.floor(i/e)+1,s=Math.ceil(this.state.totalItems/e);this.state={...this.state,pageSize:e,totalPages:s,currentPage:this.clampPage(n,s)},this.render(),(r=(a=this.callbacks).onPageSizeChange)==null||r.call(a,e,this.state)}setTotalItems(e){const i=Math.ceil(e/this.state.pageSize);this.state={...this.state,totalItems:e,totalPages:i,currentPage:this.clampPage(this.state.currentPage,i)},this.render()}getState(){return{...this.state}}getCurrentPage(){return this.state.currentPage}getPageSize(){return this.state.pageSize}getItemRange(){const e=(this.state.currentPage-1)*this.state.pageSize+1,i=Math.min(this.state.currentPage*this.state.pageSize,this.state.totalItems);return{start:e,end:i}}createInitialState(){const e=this.config.initialPageSize??10,i=Math.ceil(this.config.totalItems/e);return{currentPage:this.clampPage(this.config.initialPage??1,i),pageSize:e,totalItems:this.config.totalItems,totalPages:i}}clampPage(e,i){const n=i??this.state.totalPages;return Math.max(1,Math.min(e,n))}renderPageSizeSelector(){const e=c("div",{className:"pagination-page-size-selector"}),i=c("label",{className:"page-size-label",textContent:"表示件数:",attributes:{for:`${this.instanceId}-page-size`}}),n=c("select",{className:"page-size-select",attributes:{id:`${this.instanceId}-page-size`,"aria-label":"ページサイズ選択"}});return(this.config.pageSizeOptions??[10,25,50,100]).forEach(a=>{const r=c("option",{textContent:`${a}件`,attributes:{value:String(a)}});a===this.state.pageSize&&(r.selected=!0),n.appendChild(r)}),n.addEventListener("change",a=>{const r=a.target;this.setPageSize(parseInt(r.value,10))}),e.appendChild(i),e.appendChild(n),e}renderNavigation(){const e=c("div",{className:"pagination-navigation"}),{currentPage:i,totalPages:n}=this.state,s=this.config.showJumpButtons!==!1;if(s){const l=this.createButton("最初","first",i===1);l.addEventListener("click",()=>this.firstPage()),e.appendChild(l)}const a=this.createButton("前へ","prev",i===1);a.addEventListener("click",()=>this.previousPage()),e.appendChild(a),this.renderPageButtons().forEach(l=>e.appendChild(l));const o=this.createButton("次へ","next",i===n);if(o.addEventListener("click",()=>this.nextPage()),e.appendChild(o),s){const l=this.createButton("最後","last",i===n);l.addEventListener("click",()=>this.lastPage()),e.appendChild(l)}return e}renderPageButtons(){const{currentPage:e,totalPages:i}=this.state,n=this.config.maxPageButtons??7;if(i===0)return[];const s=[],a=this.calculateVisiblePages(e,i,n);let r=0;return a.forEach(o=>{if(r>0&&o>r+1){const d=c("span",{className:"pagination-ellipsis",textContent:"...",attributes:{"aria-hidden":"true"}});s.push(d)}const l=this.createPageButton(o,o===e);l.addEventListener("click",()=>this.goToPage(o)),s.push(l),r=o}),s}calculateVisiblePages(e,i,n){if(i<=n)return Array.from({length:i},(r,o)=>o+1);const s=[],a=Math.floor((n-3)/2);if(s.push(1),e<=a+2)for(let r=2;r<n-1;r++)s.push(r);else if(e>=i-a-1)for(let r=i-n+2;r<i;r++)s.push(r);else for(let r=e-a;r<=e+a;r++)r>1&&r<i&&s.push(r);return i>1&&!s.includes(i)&&s.push(i),s.sort((r,o)=>r-o)}createButton(e,i,n){const s=c("button",{className:`pagination-button pagination-button-${i}`,textContent:e,attributes:{type:"button","aria-label":e}});return n&&(s.setAttribute("disabled","disabled"),s.setAttribute("aria-disabled","true")),s}createPageButton(e,i){const n=c("button",{className:`pagination-button pagination-page-button ${i?"active":""}`,textContent:String(e),attributes:{type:"button","aria-label":`ページ ${e}`,"aria-current":i?"page":"false"}});return i&&n.setAttribute("data-active",""),n}renderItemCount(){const{start:e,end:i}=this.getItemRange(),{totalItems:n}=this.state,s=c("div",{className:"pagination-item-count"}),a=n>0?`${n}件中 ${e}-${i}件を表示`:"0件",r=c("span",{className:"item-count-text",textContent:a,attributes:{"aria-live":"polite","aria-atomic":"true"}});return s.appendChild(r),s}static renderField(e){const i=e,n=i.totalItems??0,s=i.pageSize??10,a=i.currentPage??1,r=Math.ceil(n/s),o=n>0?(a-1)*s+1:0,l=Math.min(a*s,n),d=`
140
- <div class="mokkun-pagination pagination-align-center">
147
+ `;return $(e,n)}}class Jo{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("pagination"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.align??"center",i=this.config.compact??!1;this.container.className=`mokkun-pagination pagination-align-${e} ${i?"pagination-compact":""}`;const a=c("div",{className:"pagination-wrapper"});if(this.config.showPageSizeSelector!==!1){const r=this.renderPageSizeSelector();a.appendChild(r)}const n=this.renderNavigation();if(a.appendChild(n),this.config.showItemCount!==!1){const r=this.renderItemCount();a.appendChild(r)}this.container.appendChild(a)}goToPage(e){var a,n;const i=this.clampPage(e);this.state.currentPage!==i&&(this.state={...this.state,currentPage:i},this.render(),(n=(a=this.callbacks).onPageChange)==null||n.call(a,i,this.state))}nextPage(){this.goToPage(this.state.currentPage+1)}previousPage(){this.goToPage(this.state.currentPage-1)}firstPage(){this.goToPage(1)}lastPage(){this.goToPage(this.state.totalPages)}setPageSize(e){var r,s;if(this.state.pageSize===e)return;const i=(this.state.currentPage-1)*this.state.pageSize,a=Math.floor(i/e)+1,n=Math.ceil(this.state.totalItems/e);this.state={...this.state,pageSize:e,totalPages:n,currentPage:this.clampPage(a,n)},this.render(),(s=(r=this.callbacks).onPageSizeChange)==null||s.call(r,e,this.state)}setTotalItems(e){const i=Math.ceil(e/this.state.pageSize);this.state={...this.state,totalItems:e,totalPages:i,currentPage:this.clampPage(this.state.currentPage,i)},this.render()}getState(){return{...this.state}}getCurrentPage(){return this.state.currentPage}getPageSize(){return this.state.pageSize}getItemRange(){const e=(this.state.currentPage-1)*this.state.pageSize+1,i=Math.min(this.state.currentPage*this.state.pageSize,this.state.totalItems);return{start:e,end:i}}createInitialState(){const e=this.config.initialPageSize??10,i=Math.ceil(this.config.totalItems/e);return{currentPage:this.clampPage(this.config.initialPage??1,i),pageSize:e,totalItems:this.config.totalItems,totalPages:i}}clampPage(e,i){const a=i??this.state.totalPages;return Math.max(1,Math.min(e,a))}renderPageSizeSelector(){const e=c("div",{className:"pagination-page-size-selector"}),i=c("label",{className:"page-size-label",textContent:"表示件数:",attributes:{for:`${this.instanceId}-page-size`}}),a=c("select",{className:"page-size-select",attributes:{id:`${this.instanceId}-page-size`,"aria-label":"ページサイズ選択"}});return(this.config.pageSizeOptions??[10,25,50,100]).forEach(r=>{const s=c("option",{textContent:`${r}件`,attributes:{value:String(r)}});r===this.state.pageSize&&(s.selected=!0),a.appendChild(s)}),a.addEventListener("change",r=>{const s=r.target;this.setPageSize(parseInt(s.value,10))}),e.appendChild(i),e.appendChild(a),e}renderNavigation(){const e=c("div",{className:"pagination-navigation"}),{currentPage:i,totalPages:a}=this.state,n=this.config.showJumpButtons!==!1;if(n){const l=this.createButton("最初","first",i===1);l.addEventListener("click",()=>this.firstPage()),e.appendChild(l)}const r=this.createButton("前へ","prev",i===1);r.addEventListener("click",()=>this.previousPage()),e.appendChild(r),this.renderPageButtons().forEach(l=>e.appendChild(l));const o=this.createButton("次へ","next",i===a);if(o.addEventListener("click",()=>this.nextPage()),e.appendChild(o),n){const l=this.createButton("最後","last",i===a);l.addEventListener("click",()=>this.lastPage()),e.appendChild(l)}return e}renderPageButtons(){const{currentPage:e,totalPages:i}=this.state,a=this.config.maxPageButtons??7;if(i===0)return[];const n=[],r=this.calculateVisiblePages(e,i,a);let s=0;return r.forEach(o=>{if(s>0&&o>s+1){const d=c("span",{className:"pagination-ellipsis",textContent:"...",attributes:{"aria-hidden":"true"}});n.push(d)}const l=this.createPageButton(o,o===e);l.addEventListener("click",()=>this.goToPage(o)),n.push(l),s=o}),n}calculateVisiblePages(e,i,a){if(i<=a)return Array.from({length:i},(s,o)=>o+1);const n=[],r=Math.floor((a-3)/2);if(n.push(1),e<=r+2)for(let s=2;s<a-1;s++)n.push(s);else if(e>=i-r-1)for(let s=i-a+2;s<i;s++)n.push(s);else for(let s=e-r;s<=e+r;s++)s>1&&s<i&&n.push(s);return i>1&&!n.includes(i)&&n.push(i),n.sort((s,o)=>s-o)}createButton(e,i,a){const n=c("button",{className:`pagination-button pagination-button-${i}`,textContent:e,attributes:{type:"button","aria-label":e}});return a&&(n.setAttribute("disabled","disabled"),n.setAttribute("aria-disabled","true")),n}createPageButton(e,i){const a=c("button",{className:`pagination-button pagination-page-button ${i?"active":""}`,textContent:String(e),attributes:{type:"button","aria-label":`ページ ${e}`,"aria-current":i?"page":"false"}});return i&&a.setAttribute("data-active",""),a}renderItemCount(){const{start:e,end:i}=this.getItemRange(),{totalItems:a}=this.state,n=c("div",{className:"pagination-item-count"}),r=a>0?`${a}件中 ${e}-${i}件を表示`:"0件",s=c("span",{className:"item-count-text",textContent:r,attributes:{"aria-live":"polite","aria-atomic":"true"}});return n.appendChild(s),n}static renderField(e){const i=e,a=(S,Y)=>i[S]??i[Y],n=a("total_items","totalItems")??0,r=a("page_size","pageSize")??10,s=Math.max(1,Math.ceil(n/r)),o=Math.min(Math.max(1,a("current_page","currentPage")??1),s),l=a("page_size_options","pageSizeOptions")??[10,25,50,100],d=a("show_page_size_selector","showPageSizeSelector")??!0,u=a("show_item_count","showItemCount")??!0,h=a("show_jump_buttons","showJumpButtons")??!0,m=Math.max(3,a("max_page_buttons","maxPageButtons")??7),f=i.align,b=f&&["left","center","right"].includes(f)?f:"center",y=n>0?(o-1)*r+1:0,_=Math.min(o*r,n),x=[];let w=Math.max(1,o-Math.floor(m/2));const F=Math.min(s,w+m-1);w=Math.max(1,F-m+1);for(let S=w;S<=F;S++)x.push(S);const D=o===1,L=o===s,Q=l.includes(r)?l:[...l,r].sort((S,Y)=>S-Y),P=`
148
+ <div class="mokkun-pagination pagination-align-${g(b)}">
141
149
  <div class="pagination-wrapper">
142
- <div class="pagination-page-size-selector">
150
+ ${d?`<div class="pagination-page-size-selector">
143
151
  <label class="page-size-label">表示件数:</label>
144
152
  <select class="page-size-select" aria-label="ページサイズ選択">
145
- <option value="10" ${s===10?"selected":""}>10件</option>
146
- <option value="25" ${s===25?"selected":""}>25件</option>
147
- <option value="50" ${s===50?"selected":""}>50件</option>
148
- <option value="100" ${s===100?"selected":""}>100件</option>
153
+ ${Q.map(S=>`<option value="${S}" ${r===S?"selected":""}>${S}件</option>`).join("")}
149
154
  </select>
150
- </div>
155
+ </div>`:""}
151
156
  <div class="pagination-navigation">
152
- <button type="button" class="pagination-button pagination-button-first" ${a===1?"disabled":""} aria-label="最初">最初</button>
153
- <button type="button" class="pagination-button pagination-button-prev" ${a===1?"disabled":""} aria-label="前へ">前へ</button>
154
- ${Array.from({length:Math.min(r,7)},(p,u)=>{const f=u+1;return`<button type="button" class="pagination-button pagination-page-button ${f===a?"active":""}" aria-label="ページ ${f}" ${f===a?'aria-current="page"':""}>${f}</button>`}).join("")}
155
- <button type="button" class="pagination-button pagination-button-next" ${a===r||r===0?"disabled":""} aria-label="次へ">次へ</button>
156
- <button type="button" class="pagination-button pagination-button-last" ${a===r||r===0?"disabled":""} aria-label="最後">最後</button>
157
- </div>
158
- <div class="pagination-item-count">
159
- <span class="item-count-text" aria-live="polite">${n>0?`${n}件中 ${o}-${l}件を表示`:"0件"}</span>
157
+ ${h?`<button type="button" class="pagination-button pagination-button-first" ${D?"disabled":""} aria-label="最初">最初</button>`:""}
158
+ <button type="button" class="pagination-button pagination-button-prev" ${D?"disabled":""} aria-label="前へ">前へ</button>
159
+ ${x.map(S=>`<button type="button" class="pagination-button pagination-page-button ${S===o?"active":""}" aria-label="ページ ${S}" ${S===o?'aria-current="page"':""}>${S}</button>`).join("")}
160
+ <button type="button" class="pagination-button pagination-button-next" ${L?"disabled":""} aria-label="次へ">次へ</button>
161
+ ${h?`<button type="button" class="pagination-button pagination-button-last" ${L?"disabled":""} aria-label="最後">最後</button>`:""}
160
162
  </div>
163
+ ${u?`<div class="pagination-item-count">
164
+ <span class="item-count-text" aria-live="polite">${n>0?`${n}件中 ${y}-${_}件を表示(全${s}ページ)`:"0件"}</span>
165
+ </div>`:""}
161
166
  </div>
162
167
  </div>
163
- `;return x(e,d)}}class $a{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");this.config=i,this.container=e,this.callbacks=n,this.instanceId=E("toggle"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"medium",i=this.config.labelPosition??"right";this.container.className=`mokkun-toggle toggle-${e} toggle-label-${i}`,this.container.setAttribute("data-state",this.state.checked?"checked":"unchecked"),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const n=c("div",{className:"toggle-wrapper"});if(i==="left"){const a=this.renderLabel();n.appendChild(a)}const s=this.renderToggle();if(n.appendChild(s),i==="right"){const a=this.renderLabel();n.appendChild(a)}this.container.appendChild(n)}setChecked(e){var i,n,s,a;this.state.disabled||this.state.checked!==e&&(this.state={...this.state,checked:e},this.render(),(n=(i=this.callbacks).onChange)==null||n.call(i,e,this.state),(a=(s=this.callbacks).onCheckedChange)==null||a.call(s,e))}toggle(){this.setChecked(!this.state.checked)}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}isChecked(){return this.state.checked}isDisabled(){return this.state.disabled}createInitialState(){return{checked:this.config.defaultChecked??!1,disabled:this.config.disabled??!1}}renderToggle(){const e=c("div",{className:"toggle-switch-container"}),i=c("input",{className:"toggle-checkbox visually-hidden",attributes:{type:"checkbox",id:this.instanceId,role:"switch","aria-checked":String(this.state.checked),"aria-label":this.state.checked?this.config.checkedLabel??"ON":this.config.uncheckedLabel??"OFF"}});this.config.name&&i.setAttribute("name",this.config.name),this.state.checked&&i.setAttribute("checked","checked"),this.state.disabled&&(i.setAttribute("disabled","disabled"),i.setAttribute("aria-disabled","true")),i.addEventListener("change",l=>{const d=l.target;this.setChecked(d.checked)}),i.addEventListener("keydown",l=>{(l.key===" "||l.key==="Enter")&&(l.preventDefault(),this.state.disabled||this.toggle())}),e.appendChild(i);const n=this.state.checked?"checked":"unchecked",s=["toggle-switch",n,this.state.disabled?"disabled":""].filter(Boolean).join(" "),a=c("label",{className:s,attributes:{for:this.instanceId,"data-state":n}});this.state.disabled&&a.setAttribute("data-disabled","");const r=c("span",{className:"toggle-track"});a.appendChild(r);const o=c("span",{className:"toggle-thumb",attributes:{"data-state":n}});return a.appendChild(o),e.appendChild(a),e}renderLabel(){const e=this.config.checkedLabel??"ON",i=this.config.uncheckedLabel??"OFF",n=this.state.checked?"checked":"unchecked",s=["toggle-label",n,this.state.disabled?"disabled":""].filter(Boolean).join(" "),a=c("span",{className:s,textContent:this.state.checked?e:i,attributes:{"aria-live":"polite","data-state":n}});return this.state.disabled&&a.setAttribute("data-disabled",""),a}static renderField(e){const i=e,n=i.defaultChecked??!1,s=i.checkedLabel??"ON",a=i.uncheckedLabel??"OFF",r=i.size??"medium",o=n?"checked":"unchecked",l=`
164
- <div class="mokkun-toggle toggle-${r} toggle-label-right" data-state="${o}">
168
+ `;return $(e,P)}}class Xo{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("toggle"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.size??"medium",i=this.config.labelPosition??"right";this.container.className=`mokkun-toggle toggle-${e} toggle-label-${i}`,this.container.setAttribute("data-state",this.state.checked?"checked":"unchecked"),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const a=c("div",{className:"toggle-wrapper"});if(i==="left"){const r=this.renderLabel();a.appendChild(r)}const n=this.renderToggle();if(a.appendChild(n),i==="right"){const r=this.renderLabel();a.appendChild(r)}this.container.appendChild(a)}setChecked(e){var i,a,n,r;this.state.disabled||this.state.checked!==e&&(this.state={...this.state,checked:e},this.render(),(a=(i=this.callbacks).onChange)==null||a.call(i,e,this.state),(r=(n=this.callbacks).onCheckedChange)==null||r.call(n,e))}toggle(){this.setChecked(!this.state.checked)}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}isChecked(){return this.state.checked}isDisabled(){return this.state.disabled}createInitialState(){return{checked:this.config.defaultChecked??!1,disabled:this.config.disabled??!1}}renderToggle(){const e=c("div",{className:"toggle-switch-container"}),i=c("input",{className:"toggle-checkbox visually-hidden",attributes:{type:"checkbox",id:this.instanceId,role:"switch","aria-checked":String(this.state.checked),"aria-label":this.state.checked?this.config.checkedLabel??"ON":this.config.uncheckedLabel??"OFF"}});this.config.name&&i.setAttribute("name",this.config.name),this.state.checked&&i.setAttribute("checked","checked"),this.state.disabled&&(i.setAttribute("disabled","disabled"),i.setAttribute("aria-disabled","true")),i.addEventListener("change",l=>{const d=l.target;this.setChecked(d.checked)}),i.addEventListener("keydown",l=>{(l.key===" "||l.key==="Enter")&&(l.preventDefault(),this.state.disabled||this.toggle())}),e.appendChild(i);const a=this.state.checked?"checked":"unchecked",n=["toggle-switch",a,this.state.disabled?"disabled":""].filter(Boolean).join(" "),r=c("label",{className:n,attributes:{for:this.instanceId,"data-state":a}});this.state.disabled&&r.setAttribute("data-disabled","");const s=c("span",{className:"toggle-track"});r.appendChild(s);const o=c("span",{className:"toggle-thumb",attributes:{"data-state":a}});return r.appendChild(o),e.appendChild(r),e}renderLabel(){const e=this.config.checkedLabel??"ON",i=this.config.uncheckedLabel??"OFF",a=this.state.checked?"checked":"unchecked",n=["toggle-label",a,this.state.disabled?"disabled":""].filter(Boolean).join(" "),r=c("span",{className:n,textContent:this.state.checked?e:i,attributes:{"aria-live":"polite","data-state":a}});return this.state.disabled&&r.setAttribute("data-disabled",""),r}static renderField(e){const i=e,a=i.default!==void 0?i.default===!0||i.default==="true":i.defaultChecked??!1,n=i.disabled===!0,r=i.checked_label??i.checkedLabel??"ON",s=i.unchecked_label??i.uncheckedLabel??"OFF",o=$a(i.label_position??i.labelPosition,"right")==="left"?"left":"right",l=$a(i.size,"medium"),d=a?"checked":"unchecked",u=n?' disabled aria-disabled="true"':"",h=n?" disabled":"",m=n?" data-disabled":"",f=`<span class="toggle-label ${d}" aria-live="polite" data-state="${d}">${g(a?r:s)}</span>`,b=`
169
+ <div class="mokkun-toggle toggle-${l} toggle-label-${o}" data-state="${d}"${m}>
165
170
  <div class="toggle-wrapper">
171
+ ${o==="left"?f:""}
166
172
  <div class="toggle-switch-container">
167
- <input type="checkbox" class="toggle-checkbox visually-hidden" id="${m(e.id)}" role="switch" aria-checked="${n}" ${n?"checked":""}>
168
- <label class="toggle-switch ${o}" for="${m(e.id)}" data-state="${o}">
173
+ <input type="checkbox" class="toggle-checkbox visually-hidden" id="${g(e.id)}" role="switch" aria-checked="${a}" ${a?"checked":""}${u}>
174
+ <label class="toggle-switch ${d}${h}" for="${g(e.id)}" data-state="${d}"${m}>
169
175
  <span class="toggle-track"></span>
170
- <span class="toggle-thumb" data-state="${o}"></span>
176
+ <span class="toggle-thumb" data-state="${d}"></span>
171
177
  </label>
172
178
  </div>
173
- <span class="toggle-label ${o}" aria-live="polite" data-state="${o}">${m(n?s:a)}</span>
174
- </div>
175
- </div>
176
- `;return x(e,l)}}class _a{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"clickHandler",null);this.config=i,this.container=e,this.callbacks=n,this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.color??"gray",i=this.config.size??"medium",n=this.config.clickable??!1;if(this.container.className=`mokkun-badge badge-${e} badge-${i}`,n&&this.container.classList.add("badge-clickable"),this.state.dot&&this.container.classList.add("badge-dot"),this.container.setAttribute("data-color",e),this.container.setAttribute("data-size",i),this.state.hidden){this.container.setAttribute("data-hidden",""),this.container.style.display="none";return}else this.container.removeAttribute("data-hidden"),this.container.style.display="";const s=this.renderBadge();this.container.appendChild(s),this.clickHandler&&(this.container.removeEventListener("click",this.clickHandler),this.clickHandler=null),n&&this.callbacks.onClick&&(this.clickHandler=this.handleClick.bind(this),this.container.addEventListener("click",this.clickHandler))}setCount(e){var i,n;e<0&&(e=0),this.state.count!==e&&(this.state={...this.state,count:e,text:null,hidden:this.config.hideOnZero===!0&&e===0},this.render(),(n=(i=this.callbacks).onCountChange)==null||n.call(i,e))}setText(e){this.state.text!==e&&(this.state={...this.state,text:e,count:null,hidden:!1},this.render())}setDot(e){this.state.dot!==e&&(this.state={...this.state,dot:e},this.render())}setHidden(e){this.state.hidden!==e&&(this.state={...this.state,hidden:e},this.render())}getCount(){return this.state.count}getText(){return this.state.text}getState(){return{...this.state}}destroy(){this.clickHandler&&(this.container.removeEventListener("click",this.clickHandler),this.clickHandler=null),this.container.innerHTML=""}createInitialState(){const e=this.config.count??null,i=this.config.text??null,n=this.config.dot??!1,s=this.config.hideOnZero===!0;return{count:e,text:i,dot:n,hidden:s&&e===0}}renderBadge(){const e=c("span",{className:"badge-content"});e.setAttribute("role","status");const i=this.getAriaLabel();if(i&&e.setAttribute("aria-label",i),this.state.dot){const n=c("span",{className:"badge-dot-indicator",attributes:{"aria-hidden":"true"}});return e.appendChild(n),e}if(this.state.text!==null)return e.textContent=this.state.text,e;if(this.state.count!==null){const n=this.formatCount(this.state.count);return e.textContent=n,e}return e}formatCount(e){const i=this.config.maxCount??99;return e>i?`${i}+`:String(e)}getAriaLabel(){if(this.config.label)return this.config.label;if(this.state.dot)return"Status indicator";if(this.state.text!==null)return this.state.text;if(this.state.count!==null){const e=this.state.count,i=this.config.maxCount??99;return e>i?`${i}+ notifications`:`${e} notification${e===1?"":"s"}`}return""}handleClick(e){var i,n;(n=(i=this.callbacks).onClick)==null||n.call(i,e)}static renderField(e){const i=e,n=i.text??e.label,a=`
177
- <span class="mokkun-badge badge-${i.variant??"default"}">${m(n)}</span>
178
- `;return x(e,a)}}class Na{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"columnsWrapper",null);h(this,"itemsMap",new Map);h(this,"parentMap",new Map);this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("browser"),this.buildItemsMap(i.items,null);const s=i.defaultValue?this.getPathToValue(i.defaultValue):[];this.state={selectedValue:i.defaultValue??null,selectedPath:s,focusedColumnIndex:0,focusedItemIndexes:new Array(i.maxColumns??3).fill(0)}}render(){this.container.innerHTML="",this.container.className=["mokkun-browser",this.config.className??""].filter(Boolean).join(" "),this.container.id=this.instanceId,this.container.setAttribute("role","application"),this.container.setAttribute("aria-label","階層ブラウザ"),this.config.height&&this.config.height!=="auto"&&(this.container.style.height=this.config.height),this.columnsWrapper=c("div",{className:"browser-columns"}),this.container.addEventListener("keydown",this.handleKeyDown.bind(this)),this.container.appendChild(this.columnsWrapper),this.renderColumns()}selectValue(e){var s,a,r,o;const i=this.itemsMap.get(e);if(!i||i.disabled)return;const n=this.getPathToValue(e);this.state={...this.state,selectedValue:e,selectedPath:n},this.renderColumns(),(a=(s=this.callbacks).onSelect)==null||a.call(s,e,n,i),(o=(r=this.callbacks).onChange)==null||o.call(r,e,n)}clearSelection(){var e,i;this.state={...this.state,selectedValue:null,selectedPath:[]},this.renderColumns(),(i=(e=this.callbacks).onChange)==null||i.call(e,null,[])}getValue(){return this.state.selectedValue}getPath(){return[...this.state.selectedPath]}getState(){return{...this.state}}setItems(e){this.config={...this.config,items:e},this.itemsMap.clear(),this.parentMap.clear(),this.buildItemsMap(e,null),this.state.selectedValue&&!this.itemsMap.has(this.state.selectedValue)&&(this.state={...this.state,selectedValue:null,selectedPath:[]}),this.renderColumns()}destroy(){this.container.innerHTML="",this.columnsWrapper=null,this.itemsMap.clear(),this.parentMap.clear()}buildItemsMap(e,i){for(const n of e)this.itemsMap.set(n.value,n),this.parentMap.set(n.value,i),n.children&&n.children.length>0&&this.buildItemsMap(n.children,n.value)}getPathToValue(e){const i=[];let n=e;for(;n!==null;)i.unshift(n),n=this.parentMap.get(n)??null;return i}getColumnsData(){const e=[],i=this.config.maxColumns??3;e.push({items:this.config.items,parentValue:null});for(let n=0;n<this.state.selectedPath.length&&e.length<i;n++){const s=this.state.selectedPath[n],a=this.itemsMap.get(s);a!=null&&a.children&&a.children.length>0&&e.push({items:a.children,parentValue:s})}return e}renderColumns(){if(!this.columnsWrapper)return;this.columnsWrapper.innerHTML="",this.getColumnsData().forEach((i,n)=>{const s=this.renderColumn(i,n);this.columnsWrapper.appendChild(s)})}renderColumn(e,i){const n=c("div",{className:"browser-column",attributes:{role:"listbox","aria-label":`カラム ${i+1}`,"data-column-index":String(i)}});return e.items.forEach((s,a)=>{const r=this.renderItem(s,i,a);n.appendChild(r)}),n}renderItem(e,i,n){const s=this.state.selectedPath.includes(e.value),a=this.state.selectedValue===e.value,r=e.children&&e.children.length>0,o=this.state.focusedColumnIndex===i&&this.state.focusedItemIndexes[i]===n,l=c("label",{className:["browser-item",s?"is-selected":"",a?"is-leaf-selected":"",e.disabled?"is-disabled":"",o?"is-focused":""].filter(Boolean).join(" "),attributes:{"data-value":e.value,"data-column":String(i),"data-index":String(n)}}),d=document.createElement("input");d.type="radio",d.name=`${this.instanceId}-column-${i}`,d.value=e.value,d.checked=s,d.disabled=e.disabled??!1,d.tabIndex=o?0:-1,d.className="browser-item-radio",d.setAttribute("aria-label",e.label),d.addEventListener("change",()=>{e.disabled||this.handleItemSelect(e,i,n)}),d.addEventListener("focus",()=>{this.state={...this.state,focusedColumnIndex:i,focusedItemIndexes:this.state.focusedItemIndexes.map((f,g)=>g===i?n:f)}}),l.appendChild(d);const p=c("span",{className:"browser-item-content"}),u=c("span",{className:"browser-item-label",textContent:e.label});if(p.appendChild(u),r){const f=this.renderArrowIcon();p.appendChild(f)}return l.appendChild(p),l.addEventListener("click",f=>{if(e.disabled){f.preventDefault();return}this.handleItemSelect(e,i,n)}),l}renderArrowIcon(){const e=c("span",{className:"browser-item-arrow",attributes:{"aria-hidden":"true"}}),i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("width","16"),i.setAttribute("height","16"),i.setAttribute("viewBox","0 0 16 16"),i.setAttribute("fill","currentColor");const n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d","M6 3l5 5-5 5V3z"),i.appendChild(n),e.appendChild(i),e}handleItemSelect(e,i,n){var r,o,l,d;const s=[...this.state.selectedPath.slice(0,i),e.value],a=e.children&&e.children.length>0;this.state={...this.state,selectedValue:e.value,selectedPath:s,focusedColumnIndex:a?i+1:i,focusedItemIndexes:this.state.focusedItemIndexes.map((p,u)=>u===i?n:u===i+1?0:p)},this.renderColumns(),(o=(r=this.callbacks).onSelect)==null||o.call(r,e.value,s,e),(d=(l=this.callbacks).onChange)==null||d.call(l,e.value,s),a&&setTimeout(()=>{this.focusCurrentItem()},0)}handleKeyDown(e){if(this.getColumnsData()[this.state.focusedColumnIndex])switch(e.key){case"ArrowUp":e.preventDefault(),this.moveFocus(-1,0);break;case"ArrowDown":e.preventDefault(),this.moveFocus(1,0);break;case"ArrowLeft":e.preventDefault(),this.moveFocus(0,-1);break;case"ArrowRight":case"Enter":case" ":e.preventDefault(),this.selectFocusedOrMoveRight();break}}moveFocus(e,i){const n=this.getColumnsData();let s=this.state.focusedColumnIndex+i;s=Math.max(0,Math.min(s,n.length-1));const a=n[s];if(!a)return;let r=this.state.focusedItemIndexes[s]+e;r=Math.max(0,Math.min(r,a.items.length-1)),this.state={...this.state,focusedColumnIndex:s,focusedItemIndexes:this.state.focusedItemIndexes.map((o,l)=>l===s?r:o)},this.renderColumns(),this.focusCurrentItem()}selectFocusedOrMoveRight(){const i=this.getColumnsData()[this.state.focusedColumnIndex];if(!i)return;const n=this.state.focusedItemIndexes[this.state.focusedColumnIndex],s=i.items[n];!s||s.disabled||this.handleItemSelect(s,this.state.focusedColumnIndex,n)}focusCurrentItem(){const e=`.browser-item[data-column="${this.state.focusedColumnIndex}"][data-index="${this.state.focusedItemIndexes[this.state.focusedColumnIndex]}"] .browser-item-radio`,i=this.container.querySelector(e);i==null||i.focus()}static renderField(e){return x(e,`
179
- <div class="mokkun-browser browser-placeholder">
180
- <div class="browser-toolbar">
181
- <div class="browser-controls">
182
- <span class="browser-dot browser-dot-red"></span>
183
- <span class="browser-dot browser-dot-yellow"></span>
184
- <span class="browser-dot browser-dot-green"></span>
185
- </div>
186
- <div class="browser-url-bar">
187
- <span class="browser-url">https://example.com</span>
188
- </div>
189
- </div>
190
- <div class="browser-content">
191
- <p class="browser-placeholder-text">ブラウザコンテンツ</p>
179
+ ${o==="right"?f:""}
192
180
  </div>
193
181
  </div>
194
- `)}}class Ta{constructor(e,i={},n){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"calendarElement",null);this.config=i,this.container=e,this.callbacks=n,this.state=this.createInitialState()}render(){this.container.innerHTML="",this.container.className="mokkun-calendar",this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const e=c("div",{className:"calendar-container",attributes:{role:"application","aria-label":this.config.ariaLabel??"カレンダー"}}),i=this.renderHeader();e.appendChild(i);const n=this.renderGrid();e.appendChild(n),this.container.appendChild(e),this.calendarElement=e,this.setupKeyboardNavigation()}setValue(e){this.state={...this.state,value:e?this.normalizeDate(e):null},e&&(this.state.displayedMonth=this.getFirstDayOfMonth(e)),this.render()}getValue(){return this.state.value}setDisplayedMonth(e){var i,n;this.state={...this.state,displayedMonth:this.getFirstDayOfMonth(e)},this.render(),(n=(i=this.callbacks).onMonthChange)==null||n.call(i,this.state.displayedMonth,this.state)}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setRange(e,i){this.config={...this.config,from:e?this.normalizeDate(e):void 0,to:i?this.normalizeDate(i):void 0},this.render()}getState(){return{...this.state}}destroy(){this.container.innerHTML="",this.calendarElement=null}createInitialState(){const e=this.config.value?this.normalizeDate(this.config.value):null,i=e?this.getFirstDayOfMonth(e):this.getFirstDayOfMonth(new Date);return{value:e,displayedMonth:i,focusedDate:null,disabled:this.config.disabled??!1}}renderHeader(){const e=c("div",{className:"calendar-header"}),i=c("button",{className:"calendar-nav-button calendar-prev",attributes:{type:"button","aria-label":"前の月",...this.state.disabled&&{disabled:"disabled"}}});i.innerHTML=this.getChevronLeftIcon(),i.addEventListener("click",this.handlePrevMonth.bind(this));const n=c("div",{className:"calendar-month-label",attributes:{"aria-live":"polite"}});n.textContent=this.formatMonthYear(this.state.displayedMonth);const s=c("button",{className:"calendar-nav-button calendar-next",attributes:{type:"button","aria-label":"次の月",...this.state.disabled&&{disabled:"disabled"}}});return s.innerHTML=this.getChevronRightIcon(),s.addEventListener("click",this.handleNextMonth.bind(this)),e.appendChild(i),e.appendChild(n),e.appendChild(s),e}renderGrid(){const e=c("div",{className:"calendar-grid",attributes:{role:"grid","aria-label":this.formatMonthYear(this.state.displayedMonth)}}),i=this.renderWeekdayHeader();e.appendChild(i);const n=this.getCalendarWeeks();for(const s of n){const a=this.renderWeekRow(s);e.appendChild(a)}return e}renderWeekdayHeader(){const e=c("div",{className:"calendar-weekdays",attributes:{role:"row"}}),i=this.getWeekdayLabels();for(const n of i){const s=c("div",{className:"calendar-weekday",attributes:{role:"columnheader","aria-label":n.full},textContent:n.short});e.appendChild(s)}return e}renderWeekRow(e){const i=c("div",{className:"calendar-week",attributes:{role:"row"}});for(const n of e){const s=this.renderDateCell(n);i.appendChild(s)}return i}renderDateCell(e){if(!e)return c("div",{className:"calendar-day calendar-day-empty",attributes:{role:"gridcell"}});const i=this.isToday(e),n=this.isSelected(e),s=this.isDateDisabled(e),a=!this.isDateInRange(e),r=e.getMonth()===this.state.displayedMonth.getMonth(),o=["calendar-day"];i&&o.push("calendar-day-today"),n&&o.push("calendar-day-selected"),(s||a)&&o.push("calendar-day-disabled"),r||o.push("calendar-day-outside");const l=c("button",{className:o.join(" "),attributes:{type:"button",role:"gridcell",tabindex:n?"0":"-1","aria-label":this.formatDateFull(e),"aria-selected":n?"true":"false","aria-disabled":s||a?"true":"false","data-date":e.toISOString().split("T")[0],...i&&{"data-today":""},...(s||a||this.state.disabled)&&{disabled:"disabled"}},textContent:e.getDate().toString()});return!s&&!a&&!this.state.disabled&&l.addEventListener("click",d=>this.handleDateClick(d,e)),l}setupKeyboardNavigation(){this.calendarElement&&this.calendarElement.addEventListener("keydown",e=>{var a;if(this.state.disabled)return;const i=e.key;let n=null;const s=this.state.focusedDate||this.state.value||new Date;switch(i){case"ArrowLeft":e.preventDefault(),n=this.addDays(s,-1);break;case"ArrowRight":e.preventDefault(),n=this.addDays(s,1);break;case"ArrowUp":e.preventDefault(),n=this.addDays(s,-7);break;case"ArrowDown":e.preventDefault(),n=this.addDays(s,7);break;case"Enter":case" ":if(e.preventDefault(),this.state.focusedDate&&this.isDateInRange(this.state.focusedDate)){const r=(a=this.calendarElement)==null?void 0:a.querySelector(`[data-date="${this.state.focusedDate.toISOString().split("T")[0]}"]`);r&&r.click()}break}n&&this.focusDate(n)})}focusDate(e){e.getMonth()!==this.state.displayedMonth.getMonth()||e.getFullYear()!==this.state.displayedMonth.getFullYear()?(this.state.displayedMonth=this.getFirstDayOfMonth(e),this.state.focusedDate=e,this.render()):this.state.focusedDate=e;const i=this.container.querySelector(`[data-date="${e.toISOString().split("T")[0]}"]`);i&&(i.focus(),i.setAttribute("tabindex","0"),this.container.querySelectorAll('.calendar-day:not([data-date="'+e.toISOString().split("T")[0]+'"])').forEach(n=>{n.setAttribute("tabindex","-1")}))}handlePrevMonth(){var i,n;if(this.state.disabled)return;const e=new Date(this.state.displayedMonth);e.setMonth(e.getMonth()-1),this.state.displayedMonth=e,this.render(),(n=(i=this.callbacks).onMonthChange)==null||n.call(i,e,this.state)}handleNextMonth(){var i,n;if(this.state.disabled)return;const e=new Date(this.state.displayedMonth);e.setMonth(e.getMonth()+1),this.state.displayedMonth=e,this.render(),(n=(i=this.callbacks).onMonthChange)==null||n.call(i,e,this.state)}handleDateClick(e,i){this.state.disabled||this.isDateInRange(i)&&(this.state={...this.state,value:i,focusedDate:i},this.render(),this.callbacks.onSelectDate(e,i,this.state))}normalizeDate(e){const i=new Date(e);return i.setHours(0,0,0,0),i}getFirstDayOfMonth(e){return new Date(e.getFullYear(),e.getMonth(),1)}getCalendarWeeks(){const e=[],i=this.getFirstDayOfMonth(this.state.displayedMonth),n=new Date(i.getFullYear(),i.getMonth()+1,0),s=this.config.weekStartsOn??0;let a=new Date(i);const o=(a.getDay()-s+7)%7;a.setDate(a.getDate()-o);for(let l=0;l<6;l++){const d=[];for(let u=0;u<7;u++){const f=new Date(a);f.setDate(a.getDate()+l*7+u),d.push(f)}e.push(d);const p=new Date(a);if(p.setDate(a.getDate()+l*7+6),p>n&&l>=3){const u=new Date(a);if(u.setDate(a.getDate()+(l+1)*7),u.getMonth()!==i.getMonth())break}}return e}getWeekdayLabels(){const e=this.config.locale??"ja-JP",i=this.config.weekStartsOn??0,n=[];for(let s=0;s<7;s++){const a=(s+i)%7,r=new Date(2024,0,7+a);n.push({short:r.toLocaleDateString(e,{weekday:"short"}),full:r.toLocaleDateString(e,{weekday:"long"})})}return n}formatMonthYear(e){const i=this.config.locale??"ja-JP";return e.toLocaleDateString(i,{year:"numeric",month:"long"})}formatDateFull(e){const i=this.config.locale??"ja-JP";return e.toLocaleDateString(i,{year:"numeric",month:"long",day:"numeric",weekday:"long"})}isToday(e){const i=this.normalizeDate(new Date);return e.getTime()===i.getTime()}isSelected(e){return this.state.value?e.getTime()===this.state.value.getTime():!1}isDateDisabled(e){return this.state.disabled}isDateInRange(e){const i=this.normalizeDate(e);if(this.config.from){const n=this.normalizeDate(this.config.from);if(i<n)return!1}if(this.config.to){const n=this.normalizeDate(this.config.to);if(i>n)return!1}return!0}addDays(e,i){const n=new Date(e);return n.setDate(n.getDate()+i),this.normalizeDate(n)}getChevronLeftIcon(){return`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
182
+ `;return $(e,b)}}const el=new Set(["gray","blue","green","yellow","red"]),tl=new Set(["small","medium"]);class il{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"clickHandler",null);this.config=i,this.container=e,this.callbacks=a,this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.color??"gray",i=this.config.size??"medium",a=this.config.clickable??!1;if(this.container.className=`mokkun-badge badge-${e} badge-${i}`,a&&this.container.classList.add("badge-clickable"),this.state.dot&&this.container.classList.add("badge-dot"),this.container.setAttribute("data-color",e),this.container.setAttribute("data-size",i),this.state.hidden){this.container.setAttribute("data-hidden",""),this.container.style.display="none";return}else this.container.removeAttribute("data-hidden"),this.container.style.display="";const n=this.renderBadge();this.container.appendChild(n),this.clickHandler&&(this.container.removeEventListener("click",this.clickHandler),this.clickHandler=null),a&&this.callbacks.onClick&&(this.clickHandler=this.handleClick.bind(this),this.container.addEventListener("click",this.clickHandler))}setCount(e){var i,a;e<0&&(e=0),this.state.count!==e&&(this.state={...this.state,count:e,text:null,hidden:this.config.hideOnZero===!0&&e===0},this.render(),(a=(i=this.callbacks).onCountChange)==null||a.call(i,e))}setText(e){this.state.text!==e&&(this.state={...this.state,text:e,count:null,hidden:!1},this.render())}setDot(e){this.state.dot!==e&&(this.state={...this.state,dot:e},this.render())}setHidden(e){this.state.hidden!==e&&(this.state={...this.state,hidden:e},this.render())}getCount(){return this.state.count}getText(){return this.state.text}getState(){return{...this.state}}destroy(){this.clickHandler&&(this.container.removeEventListener("click",this.clickHandler),this.clickHandler=null),this.container.innerHTML=""}createInitialState(){const e=this.config.count??null,i=this.config.text??null,a=this.config.dot??!1,n=this.config.hideOnZero===!0;return{count:e,text:i,dot:a,hidden:n&&e===0}}renderBadge(){const e=c("span",{className:"badge-content"});e.setAttribute("role","status");const i=this.getAriaLabel();if(i&&e.setAttribute("aria-label",i),this.state.dot){const a=c("span",{className:"badge-dot-indicator",attributes:{"aria-hidden":"true"}});return e.appendChild(a),e}if(this.state.text!==null)return e.textContent=this.state.text,e;if(this.state.count!==null){const a=this.formatCount(this.state.count);return e.textContent=a,e}return e}formatCount(e){const i=this.config.maxCount??99;return e>i?`${i}+`:String(e)}getAriaLabel(){if(this.config.label)return this.config.label;if(this.state.dot)return"Status indicator";if(this.state.text!==null)return this.state.text;if(this.state.count!==null){const e=this.state.count,i=this.config.maxCount??99;return e>i?`${i}+ notifications`:`${e} notification${e===1?"":"s"}`}return""}handleClick(e){var i,a;(a=(i=this.callbacks).onClick)==null||a.call(i,e)}static renderField(e){const i=e,a={default:"gray",primary:"blue",success:"green",warning:"yellow",danger:"red",info:"blue"},n=i.color??(i.variant?a[i.variant]:void 0)??"gray",r=el.has(n)?n:"gray",s=i.size&&tl.has(i.size)?i.size:"medium",o=i.max_count??i.maxCount,l=["mokkun-badge",`badge-${r}`,`badge-${s}`];if(i.dot&&l.push("badge-dot"),(i.hide_on_zero??i.hideOnZero)&&i.count===0&&!i.dot)return $(e,"");let u="";if(i.dot)u='<span class="badge-dot-indicator" aria-hidden="true"></span>';else if(i.text!==void 0&&i.text!=="")u=`<span class="badge-content" role="status">${g(i.text)}</span>`;else if(i.value!==void 0&&i.value!==""&&typeof i.count!="number")u=`<span class="badge-content" role="status">${g(String(i.value))}</span>`;else if(typeof i.count=="number"){const x=o!==void 0&&i.count>o?`${o}+`:String(i.count);u=`<span class="badge-content" role="status">${g(x)}</span>`}const h=i.value!==void 0&&i.value!==""&&!i.dot&&!(i.text!==void 0&&i.text!=="")&&typeof i.count!="number",m=e.label&&!h?`<span class="badge-label">${g(e.label)}</span>`:"",f=i.dot?` aria-label="${g(`${e.label??""} ${typeof i.count=="number"?`${i.count}件`:""}`.trim())}"`:"",b=h&&e.label?`<span class="field-caption">${g(e.label)}</span>`:"",y=h&&e.label?` aria-label="${g(`${e.label}: ${String(i.value)}`)}"`:"",_=`
183
+ ${b}<span class="${l.join(" ")}" data-color="${g(r)}" data-size="${g(s)}"${f||y}>${m}${u}</span>
184
+ `;return $(e,_)}}class al{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"columnsWrapper",null);p(this,"itemsMap",new Map);p(this,"parentMap",new Map);this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("browser"),this.buildItemsMap(i.items,null);const n=i.defaultValue?this.getPathToValue(i.defaultValue):[];this.state={selectedValue:i.defaultValue??null,selectedPath:n,focusedColumnIndex:0,focusedItemIndexes:new Array(i.maxColumns??3).fill(0)}}render(){this.container.innerHTML="",this.container.className=["mokkun-browser",this.config.className??""].filter(Boolean).join(" "),this.container.id=this.instanceId,this.container.setAttribute("role","application"),this.container.setAttribute("aria-label","階層ブラウザ"),this.config.height&&this.config.height!=="auto"&&(this.container.style.height=this.config.height),this.columnsWrapper=c("div",{className:"browser-columns"}),this.container.addEventListener("keydown",this.handleKeyDown.bind(this)),this.container.appendChild(this.columnsWrapper),this.renderColumns()}selectValue(e){var n,r,s,o;const i=this.itemsMap.get(e);if(!i||i.disabled)return;const a=this.getPathToValue(e);this.state={...this.state,selectedValue:e,selectedPath:a},this.renderColumns(),(r=(n=this.callbacks).onSelect)==null||r.call(n,e,a,i),(o=(s=this.callbacks).onChange)==null||o.call(s,e,a)}clearSelection(){var e,i;this.state={...this.state,selectedValue:null,selectedPath:[]},this.renderColumns(),(i=(e=this.callbacks).onChange)==null||i.call(e,null,[])}getValue(){return this.state.selectedValue}getPath(){return[...this.state.selectedPath]}getState(){return{...this.state}}setItems(e){this.config={...this.config,items:e},this.itemsMap.clear(),this.parentMap.clear(),this.buildItemsMap(e,null),this.state.selectedValue&&!this.itemsMap.has(this.state.selectedValue)&&(this.state={...this.state,selectedValue:null,selectedPath:[]}),this.renderColumns()}destroy(){this.container.innerHTML="",this.columnsWrapper=null,this.itemsMap.clear(),this.parentMap.clear()}buildItemsMap(e,i){for(const a of e)this.itemsMap.set(a.value,a),this.parentMap.set(a.value,i),a.children&&a.children.length>0&&this.buildItemsMap(a.children,a.value)}getPathToValue(e){const i=[];let a=e;for(;a!==null;)i.unshift(a),a=this.parentMap.get(a)??null;return i}getColumnsData(){const e=[],i=this.config.maxColumns??3;e.push({items:this.config.items,parentValue:null});for(let a=0;a<this.state.selectedPath.length&&e.length<i;a++){const n=this.state.selectedPath[a],r=this.itemsMap.get(n);r!=null&&r.children&&r.children.length>0&&e.push({items:r.children,parentValue:n})}return e}renderColumns(){if(!this.columnsWrapper)return;this.columnsWrapper.innerHTML="",this.getColumnsData().forEach((i,a)=>{const n=this.renderColumn(i,a);this.columnsWrapper.appendChild(n)})}renderColumn(e,i){const a=c("div",{className:"browser-column",attributes:{role:"listbox","aria-label":`カラム ${i+1}`,"data-column-index":String(i)}});return e.items.forEach((n,r)=>{const s=this.renderItem(n,i,r);a.appendChild(s)}),a}renderItem(e,i,a){const n=this.state.selectedPath.includes(e.value),r=this.state.selectedValue===e.value,s=e.children&&e.children.length>0,o=this.state.focusedColumnIndex===i&&this.state.focusedItemIndexes[i]===a,l=c("label",{className:["browser-item",n?"is-selected":"",r?"is-leaf-selected":"",e.disabled?"is-disabled":"",o?"is-focused":""].filter(Boolean).join(" "),attributes:{"data-value":e.value,"data-column":String(i),"data-index":String(a)}}),d=document.createElement("input");d.type="radio",d.name=`${this.instanceId}-column-${i}`,d.value=e.value,d.checked=n,d.disabled=e.disabled??!1,d.tabIndex=o?0:-1,d.className="browser-item-radio",d.setAttribute("aria-label",e.label),d.addEventListener("change",()=>{e.disabled||this.handleItemSelect(e,i,a)}),d.addEventListener("focus",()=>{this.state={...this.state,focusedColumnIndex:i,focusedItemIndexes:this.state.focusedItemIndexes.map((m,f)=>f===i?a:m)}}),l.appendChild(d);const u=c("span",{className:"browser-item-content"}),h=c("span",{className:"browser-item-label",textContent:e.label});if(u.appendChild(h),s){const m=this.renderArrowIcon();u.appendChild(m)}return l.appendChild(u),l.addEventListener("click",m=>{if(e.disabled){m.preventDefault();return}this.handleItemSelect(e,i,a)}),l}renderArrowIcon(){const e=c("span",{className:"browser-item-arrow",attributes:{"aria-hidden":"true"}}),i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("width","16"),i.setAttribute("height","16"),i.setAttribute("viewBox","0 0 16 16"),i.setAttribute("fill","currentColor");const a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d","M6 3l5 5-5 5V3z"),i.appendChild(a),e.appendChild(i),e}handleItemSelect(e,i,a){var s,o,l,d;const n=[...this.state.selectedPath.slice(0,i),e.value],r=e.children&&e.children.length>0;this.state={...this.state,selectedValue:e.value,selectedPath:n,focusedColumnIndex:r?i+1:i,focusedItemIndexes:this.state.focusedItemIndexes.map((u,h)=>h===i?a:h===i+1?0:u)},this.renderColumns(),(o=(s=this.callbacks).onSelect)==null||o.call(s,e.value,n,e),(d=(l=this.callbacks).onChange)==null||d.call(l,e.value,n),r&&setTimeout(()=>{this.focusCurrentItem()},0)}handleKeyDown(e){if(this.getColumnsData()[this.state.focusedColumnIndex])switch(e.key){case"ArrowUp":e.preventDefault(),this.moveFocus(-1,0);break;case"ArrowDown":e.preventDefault(),this.moveFocus(1,0);break;case"ArrowLeft":e.preventDefault(),this.moveFocus(0,-1);break;case"ArrowRight":case"Enter":case" ":e.preventDefault(),this.selectFocusedOrMoveRight();break}}moveFocus(e,i){const a=this.getColumnsData();let n=this.state.focusedColumnIndex+i;n=Math.max(0,Math.min(n,a.length-1));const r=a[n];if(!r)return;let s=this.state.focusedItemIndexes[n]+e;s=Math.max(0,Math.min(s,r.items.length-1)),this.state={...this.state,focusedColumnIndex:n,focusedItemIndexes:this.state.focusedItemIndexes.map((o,l)=>l===n?s:o)},this.renderColumns(),this.focusCurrentItem()}selectFocusedOrMoveRight(){const i=this.getColumnsData()[this.state.focusedColumnIndex];if(!i)return;const a=this.state.focusedItemIndexes[this.state.focusedColumnIndex],n=i.items[a];!n||n.disabled||this.handleItemSelect(n,this.state.focusedColumnIndex,a)}focusCurrentItem(){const e=`.browser-item[data-column="${this.state.focusedColumnIndex}"][data-index="${this.state.focusedItemIndexes[this.state.focusedColumnIndex]}"] .browser-item-radio`,i=this.container.querySelector(e);i==null||i.focus()}static renderField(e){const i=e,a=Array.isArray(i.items)?i.items:[],n=i.maxColumns??i.max_columns??3,r=`browser-${e.id}`,s=(y,_,x)=>{for(const w of y){const F=[...x,w.value];if(w.value===_)return F;if(w.children){const D=s(w.children,_,F);if(D)return D}}return null};let o=i.default?s(a,i.default,[])??[]:[];if(o.length===0&&a.length>0){o=[];let y=a;for(;y&&y.length>0&&o.length<n;){const _=y[0];o.push(_.value),y=_.children}}const l=o[o.length-1],d=[];let u=a;for(let y=0;y<n&&u&&u.length>0;y++){d.push(u);const _=u.find(x=>x.value===o[y]);u=_==null?void 0:_.children}const h='<span class="browser-item-arrow" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M6 3l5 5-5 5V3z"/></svg></span>',m=d.map((y,_)=>`
185
+ <div class="browser-column" role="listbox" aria-label="カラム ${_+1}" data-column-index="${_}">
186
+ ${y.map((x,w)=>{const F=o.includes(x.value),D=["browser-item"];F&&D.push("is-selected"),x.value===l&&D.push("is-leaf-selected"),x.disabled&&D.push("is-disabled");const L=!!(x.children&&x.children.length>0);return`<label class="${D.join(" ")}" data-value="${g(x.value)}" data-column="${_}" data-index="${w}">
187
+ <input type="radio" class="browser-item-radio" name="${g(r)}-column-${_}" value="${g(x.value)}" ${F?"checked":""} ${x.disabled?"disabled":""} aria-label="${g(x.label)}">
188
+ <span class="browser-item-content"><span class="browser-item-label">${g(x.label)}</span>${L?h:""}</span>
189
+ </label>`}).join("")}
190
+ </div>`).join(""),b=`
191
+ <div class="mokkun-browser" role="application" aria-label="階層ブラウザ"${i.height&&i.height!=="auto"?` style="height: ${g(i.height)}"`:""}>
192
+ <div class="browser-columns">${m}</div>
193
+ </div>
194
+ `;return $(e,b)}}class nl{constructor(e,i={},a){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"calendarElement",null);this.config=i,this.container=e,this.callbacks=a,this.state=this.createInitialState()}render(){this.container.innerHTML="",this.container.className="mokkun-calendar",this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled");const e=c("div",{className:"calendar-container",attributes:{role:"application","aria-label":this.config.ariaLabel??"カレンダー"}}),i=this.renderHeader();e.appendChild(i);const a=this.renderGrid();e.appendChild(a),this.container.appendChild(e),this.calendarElement=e,this.setupKeyboardNavigation()}setValue(e){this.state={...this.state,value:e?this.normalizeDate(e):null},e&&(this.state.displayedMonth=this.getFirstDayOfMonth(e)),this.render()}getValue(){return this.state.value}setDisplayedMonth(e){var i,a;this.state={...this.state,displayedMonth:this.getFirstDayOfMonth(e)},this.render(),(a=(i=this.callbacks).onMonthChange)==null||a.call(i,this.state.displayedMonth,this.state)}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}setRange(e,i){this.config={...this.config,from:e?this.normalizeDate(e):void 0,to:i?this.normalizeDate(i):void 0},this.render()}getState(){return{...this.state}}destroy(){this.container.innerHTML="",this.calendarElement=null}createInitialState(){const e=this.config.value?this.normalizeDate(this.config.value):null,i=e?this.getFirstDayOfMonth(e):this.getFirstDayOfMonth(new Date);return{value:e,displayedMonth:i,focusedDate:null,disabled:this.config.disabled??!1}}renderHeader(){const e=c("div",{className:"calendar-header"}),i=c("button",{className:"calendar-nav-button calendar-prev",attributes:{type:"button","aria-label":"前の月",...this.state.disabled&&{disabled:"disabled"}}});i.innerHTML=this.getChevronLeftIcon(),i.addEventListener("click",this.handlePrevMonth.bind(this));const a=c("div",{className:"calendar-month-label",attributes:{"aria-live":"polite"}});a.textContent=this.formatMonthYear(this.state.displayedMonth);const n=c("button",{className:"calendar-nav-button calendar-next",attributes:{type:"button","aria-label":"次の月",...this.state.disabled&&{disabled:"disabled"}}});return n.innerHTML=this.getChevronRightIcon(),n.addEventListener("click",this.handleNextMonth.bind(this)),e.appendChild(i),e.appendChild(a),e.appendChild(n),e}renderGrid(){const e=c("div",{className:"calendar-grid",attributes:{role:"grid","aria-label":this.formatMonthYear(this.state.displayedMonth)}}),i=this.renderWeekdayHeader();e.appendChild(i);const a=this.getCalendarWeeks();for(const n of a){const r=this.renderWeekRow(n);e.appendChild(r)}return e}renderWeekdayHeader(){const e=c("div",{className:"calendar-weekdays",attributes:{role:"row"}}),i=this.getWeekdayLabels();for(const a of i){const n=c("div",{className:"calendar-weekday",attributes:{role:"columnheader","aria-label":a.full},textContent:a.short});e.appendChild(n)}return e}renderWeekRow(e){const i=c("div",{className:"calendar-week",attributes:{role:"row"}});for(const a of e){const n=this.renderDateCell(a);i.appendChild(n)}return i}renderDateCell(e){if(!e)return c("div",{className:"calendar-day calendar-day-empty",attributes:{role:"gridcell"}});const i=this.isToday(e),a=this.isSelected(e),n=this.isDateDisabled(e),r=!this.isDateInRange(e),s=e.getMonth()===this.state.displayedMonth.getMonth(),o=["calendar-day"];i&&o.push("calendar-day-today"),a&&o.push("calendar-day-selected"),(n||r)&&o.push("calendar-day-disabled"),s||o.push("calendar-day-outside");const l=c("button",{className:o.join(" "),attributes:{type:"button",role:"gridcell",tabindex:a?"0":"-1","aria-label":this.formatDateFull(e),"aria-selected":a?"true":"false","aria-disabled":n||r?"true":"false","data-date":e.toISOString().split("T")[0],...i&&{"data-today":""},...(n||r||this.state.disabled)&&{disabled:"disabled"}},textContent:e.getDate().toString()});return!n&&!r&&!this.state.disabled&&l.addEventListener("click",d=>this.handleDateClick(d,e)),l}setupKeyboardNavigation(){this.calendarElement&&this.calendarElement.addEventListener("keydown",e=>{var r;if(this.state.disabled)return;const i=e.key;let a=null;const n=this.state.focusedDate||this.state.value||new Date;switch(i){case"ArrowLeft":e.preventDefault(),a=this.addDays(n,-1);break;case"ArrowRight":e.preventDefault(),a=this.addDays(n,1);break;case"ArrowUp":e.preventDefault(),a=this.addDays(n,-7);break;case"ArrowDown":e.preventDefault(),a=this.addDays(n,7);break;case"Enter":case" ":if(e.preventDefault(),this.state.focusedDate&&this.isDateInRange(this.state.focusedDate)){const s=(r=this.calendarElement)==null?void 0:r.querySelector(`[data-date="${this.state.focusedDate.toISOString().split("T")[0]}"]`);s&&s.click()}break}a&&this.focusDate(a)})}focusDate(e){e.getMonth()!==this.state.displayedMonth.getMonth()||e.getFullYear()!==this.state.displayedMonth.getFullYear()?(this.state.displayedMonth=this.getFirstDayOfMonth(e),this.state.focusedDate=e,this.render()):this.state.focusedDate=e;const i=this.container.querySelector(`[data-date="${e.toISOString().split("T")[0]}"]`);i&&(i.focus(),i.setAttribute("tabindex","0"),this.container.querySelectorAll('.calendar-day:not([data-date="'+e.toISOString().split("T")[0]+'"])').forEach(a=>{a.setAttribute("tabindex","-1")}))}handlePrevMonth(){var i,a;if(this.state.disabled)return;const e=new Date(this.state.displayedMonth);e.setMonth(e.getMonth()-1),this.state.displayedMonth=e,this.render(),(a=(i=this.callbacks).onMonthChange)==null||a.call(i,e,this.state)}handleNextMonth(){var i,a;if(this.state.disabled)return;const e=new Date(this.state.displayedMonth);e.setMonth(e.getMonth()+1),this.state.displayedMonth=e,this.render(),(a=(i=this.callbacks).onMonthChange)==null||a.call(i,e,this.state)}handleDateClick(e,i){this.state.disabled||this.isDateInRange(i)&&(this.state={...this.state,value:i,focusedDate:i},this.render(),this.callbacks.onSelectDate(e,i,this.state))}normalizeDate(e){const i=new Date(e);return i.setHours(0,0,0,0),i}getFirstDayOfMonth(e){return new Date(e.getFullYear(),e.getMonth(),1)}getCalendarWeeks(){const e=[],i=this.getFirstDayOfMonth(this.state.displayedMonth),a=new Date(i.getFullYear(),i.getMonth()+1,0),n=this.config.weekStartsOn??0;let r=new Date(i);const o=(r.getDay()-n+7)%7;r.setDate(r.getDate()-o);for(let l=0;l<6;l++){const d=[];for(let h=0;h<7;h++){const m=new Date(r);m.setDate(r.getDate()+l*7+h),d.push(m)}e.push(d);const u=new Date(r);if(u.setDate(r.getDate()+l*7+6),u>a&&l>=3){const h=new Date(r);if(h.setDate(r.getDate()+(l+1)*7),h.getMonth()!==i.getMonth())break}}return e}getWeekdayLabels(){const e=this.config.locale??"ja-JP",i=this.config.weekStartsOn??0,a=[];for(let n=0;n<7;n++){const r=(n+i)%7,s=new Date(2024,0,7+r);a.push({short:s.toLocaleDateString(e,{weekday:"short"}),full:s.toLocaleDateString(e,{weekday:"long"})})}return a}formatMonthYear(e){const i=this.config.locale??"ja-JP";return e.toLocaleDateString(i,{year:"numeric",month:"long"})}formatDateFull(e){const i=this.config.locale??"ja-JP";return e.toLocaleDateString(i,{year:"numeric",month:"long",day:"numeric",weekday:"long"})}isToday(e){const i=this.normalizeDate(new Date);return e.getTime()===i.getTime()}isSelected(e){return this.state.value?e.getTime()===this.state.value.getTime():!1}isDateDisabled(e){return this.state.disabled}isDateInRange(e){const i=this.normalizeDate(e);if(this.config.from){const a=this.normalizeDate(this.config.from);if(i<a)return!1}if(this.config.to){const a=this.normalizeDate(this.config.to);if(i>a)return!1}return!0}addDays(e,i){const a=new Date(e);return a.setDate(a.getDate()+i),this.normalizeDate(a)}getChevronLeftIcon(){return`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
195
195
  <path d="M10 12L6 8L10 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
196
196
  </svg>`}getChevronRightIcon(){return`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
197
197
  <path d="M6 12L10 8L6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
@@ -207,119 +207,139 @@
207
207
  <span>日</span><span>月</span><span>火</span><span>水</span><span>木</span><span>金</span><span>土</span>
208
208
  </div>
209
209
  <div class="calendar-days">
210
- ${Array.from({length:35},(n,s)=>{const a=s-5;return a<1||a>31?'<span class="calendar-day calendar-day-empty"></span>':`<span class="calendar-day ${a===15?"calendar-day-selected":""}">${a}</span>`}).join("")}
210
+ ${Array.from({length:35},(a,n)=>{const r=n-5;return r<1||r>31?'<span class="calendar-day calendar-day-empty"></span>':`<span class="calendar-day ${r===15?"calendar-day-selected":""}">${r}</span>`}).join("")}
211
211
  </div>
212
212
  </div>
213
213
  </div>
214
- `;return x(e,i)}}class mi{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"triggerElement");h(this,"tooltipElement",null);h(this,"instanceId");h(this,"showTimeout",null);h(this,"hideTimeout",null);h(this,"handleMouseEnter",()=>{this.state={...this.state,hovering:!0},this.show()});h(this,"handleMouseLeave",()=>{this.state={...this.state,hovering:!1},this.hide()});h(this,"handleFocus",()=>{this.show()});h(this,"handleBlur",()=>{this.hide()});this.config={position:"top",delay:300,showArrow:!0,isHtml:!1,maxWidth:"200px",disabled:!1,markTrigger:!0,...i},this.triggerElement=e,this.callbacks=n,this.instanceId=E("tooltip"),this.state={visible:!1,hovering:!1},this.initialize()}show(){this.config.disabled||this.state.visible||(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.showTimeout=window.setTimeout(()=>{var e,i;this.state={...this.state,visible:!0},this.render(),(i=(e=this.callbacks).onShow)==null||i.call(e)},this.config.delay))}hide(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.state.hovering||(this.hideTimeout=window.setTimeout(()=>{var e,i;this.state={...this.state,visible:!1},this.removeTooltip(),(i=(e=this.callbacks).onHide)==null||i.call(e)},100))}showImmediate(){var e,i;this.config.disabled||(this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.state={...this.state,visible:!0},this.render(),(i=(e=this.callbacks).onShow)==null||i.call(e))}hideImmediate(){var e,i;this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.state={...this.state,visible:!1},this.removeTooltip(),(i=(e=this.callbacks).onHide)==null||i.call(e)}setContent(e){this.config={...this.config,content:e},this.state.visible&&this.render()}setPosition(e){this.config={...this.config,position:e},this.state.visible&&this.render()}setDisabled(e){this.config={...this.config,disabled:e},e&&this.state.visible&&this.hideImmediate()}destroy(){this.hideImmediate(),this.removeEventListeners(),this.config.markTrigger&&(this.triggerElement.removeAttribute("data-tooltip-trigger"),this.triggerElement.removeAttribute("aria-describedby"))}getState(){return{...this.state}}isVisible(){return this.state.visible}initialize(){this.config.markTrigger&&(this.triggerElement.setAttribute("data-tooltip-trigger",""),this.triggerElement.setAttribute("aria-describedby",this.instanceId)),this.attachEventListeners()}attachEventListeners(){this.triggerElement.addEventListener("mouseenter",this.handleMouseEnter),this.triggerElement.addEventListener("mouseleave",this.handleMouseLeave),this.triggerElement.addEventListener("focus",this.handleFocus),this.triggerElement.addEventListener("blur",this.handleBlur)}removeEventListeners(){this.triggerElement.removeEventListener("mouseenter",this.handleMouseEnter),this.triggerElement.removeEventListener("mouseleave",this.handleMouseLeave),this.triggerElement.removeEventListener("focus",this.handleFocus),this.triggerElement.removeEventListener("blur",this.handleBlur)}render(){if(this.removeTooltipImmediate(),this.tooltipElement=c("div",{className:`mokkun-tooltip tooltip-${this.config.position}`,attributes:{id:this.instanceId,role:"tooltip","data-position":this.config.position??"top"}}),this.tooltipElement.style.maxWidth=this.config.maxWidth??"200px",this.config.showArrow){const i=c("div",{className:"tooltip-arrow",attributes:{"data-position":this.config.position??"top"}});this.tooltipElement.appendChild(i)}const e=c("div",{className:"tooltip-content"});this.config.isHtml?e.innerHTML=this.config.content:e.textContent=this.config.content,this.tooltipElement.appendChild(e),document.body.appendChild(this.tooltipElement),this.positionTooltip(),this.tooltipElement.addEventListener("mouseenter",()=>{this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}),this.tooltipElement.addEventListener("mouseleave",()=>{this.hide()}),requestAnimationFrame(()=>{var i;(i=this.tooltipElement)==null||i.classList.add("tooltip-visible")})}positionTooltip(){if(!this.tooltipElement)return;const e=this.triggerElement.getBoundingClientRect(),i=this.tooltipElement.getBoundingClientRect(),n=this.config.position??"top",s=8;let a=0,r=0;switch(n){case"top":a=e.top+window.scrollY-i.height-s,r=e.left+window.scrollX+(e.width-i.width)/2;break;case"bottom":a=e.bottom+window.scrollY+s,r=e.left+window.scrollX+(e.width-i.width)/2;break;case"left":a=e.top+window.scrollY+(e.height-i.height)/2,r=e.left+window.scrollX-i.width-s;break;case"right":a=e.top+window.scrollY+(e.height-i.height)/2,r=e.right+window.scrollX+s;break}const o=window.innerWidth,l=window.innerHeight;r<0?r=8:r+i.width>o&&(r=o-i.width-8),a<window.scrollY?a=window.scrollY+8:a+i.height>window.scrollY+l&&(a=window.scrollY+l-i.height-8),this.tooltipElement.style.top=`${a}px`,this.tooltipElement.style.left=`${r}px`}removeTooltip(){this.tooltipElement&&(this.tooltipElement.classList.remove("tooltip-visible"),setTimeout(()=>{this.tooltipElement&&this.tooltipElement.parentNode&&this.tooltipElement.parentNode.removeChild(this.tooltipElement),this.tooltipElement=null},200))}removeTooltipImmediate(){this.tooltipElement&&this.tooltipElement.parentNode&&(this.tooltipElement.parentNode.removeChild(this.tooltipElement),this.tooltipElement=null)}static renderField(e){const i=e,n=i.text??"ヘルプ",s=i.content??"ツールチップの内容",a=`
214
+ `;return $(e,i)}}class Ea{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"triggerElement");p(this,"tooltipElement",null);p(this,"instanceId");p(this,"showTimeout",null);p(this,"hideTimeout",null);p(this,"handleMouseEnter",()=>{this.state={...this.state,hovering:!0},this.show()});p(this,"handleMouseLeave",()=>{this.state={...this.state,hovering:!1},this.hide()});p(this,"handleFocus",()=>{this.show()});p(this,"handleBlur",()=>{this.hide()});this.config={position:"top",delay:300,showArrow:!0,isHtml:!1,maxWidth:"200px",disabled:!1,markTrigger:!0,...i},this.triggerElement=e,this.callbacks=a,this.instanceId=N("tooltip"),this.state={visible:!1,hovering:!1},this.initialize()}show(){this.config.disabled||this.state.visible||(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.showTimeout=window.setTimeout(()=>{var e,i;this.state={...this.state,visible:!0},this.render(),(i=(e=this.callbacks).onShow)==null||i.call(e)},this.config.delay))}hide(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.state.hovering||(this.hideTimeout=window.setTimeout(()=>{var e,i;this.state={...this.state,visible:!1},this.removeTooltip(),(i=(e=this.callbacks).onHide)==null||i.call(e)},100))}showImmediate(){var e,i;this.config.disabled||(this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.state={...this.state,visible:!0},this.render(),(i=(e=this.callbacks).onShow)==null||i.call(e))}hideImmediate(){var e,i;this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.state={...this.state,visible:!1},this.removeTooltip(),(i=(e=this.callbacks).onHide)==null||i.call(e)}setContent(e){this.config={...this.config,content:e},this.state.visible&&this.render()}setPosition(e){this.config={...this.config,position:e},this.state.visible&&this.render()}setDisabled(e){this.config={...this.config,disabled:e},e&&this.state.visible&&this.hideImmediate()}destroy(){this.hideImmediate(),this.removeEventListeners(),this.config.markTrigger&&(this.triggerElement.removeAttribute("data-tooltip-trigger"),this.triggerElement.removeAttribute("aria-describedby"))}getState(){return{...this.state}}isVisible(){return this.state.visible}initialize(){this.config.markTrigger&&(this.triggerElement.setAttribute("data-tooltip-trigger",""),this.triggerElement.setAttribute("aria-describedby",this.instanceId)),this.attachEventListeners()}attachEventListeners(){this.triggerElement.addEventListener("mouseenter",this.handleMouseEnter),this.triggerElement.addEventListener("mouseleave",this.handleMouseLeave),this.triggerElement.addEventListener("focus",this.handleFocus),this.triggerElement.addEventListener("blur",this.handleBlur)}removeEventListeners(){this.triggerElement.removeEventListener("mouseenter",this.handleMouseEnter),this.triggerElement.removeEventListener("mouseleave",this.handleMouseLeave),this.triggerElement.removeEventListener("focus",this.handleFocus),this.triggerElement.removeEventListener("blur",this.handleBlur)}render(){if(this.removeTooltipImmediate(),this.tooltipElement=c("div",{className:`mokkun-tooltip tooltip-${this.config.position}`,attributes:{id:this.instanceId,role:"tooltip","data-position":this.config.position??"top"}}),this.tooltipElement.style.maxWidth=this.config.maxWidth??"200px",this.config.showArrow){const i=c("div",{className:"tooltip-arrow",attributes:{"data-position":this.config.position??"top"}});this.tooltipElement.appendChild(i)}const e=c("div",{className:"tooltip-content"});this.config.isHtml?e.innerHTML=this.config.content:e.textContent=this.config.content,this.tooltipElement.appendChild(e),document.body.appendChild(this.tooltipElement),this.positionTooltip(),this.tooltipElement.addEventListener("mouseenter",()=>{this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}),this.tooltipElement.addEventListener("mouseleave",()=>{this.hide()}),requestAnimationFrame(()=>{var i;(i=this.tooltipElement)==null||i.classList.add("tooltip-visible")})}positionTooltip(){if(!this.tooltipElement)return;const e=this.triggerElement.getBoundingClientRect(),i=this.tooltipElement.getBoundingClientRect(),a=this.config.position??"top",n=8;let r=0,s=0;switch(a){case"top":r=e.top+window.scrollY-i.height-n,s=e.left+window.scrollX+(e.width-i.width)/2;break;case"bottom":r=e.bottom+window.scrollY+n,s=e.left+window.scrollX+(e.width-i.width)/2;break;case"left":r=e.top+window.scrollY+(e.height-i.height)/2,s=e.left+window.scrollX-i.width-n;break;case"right":r=e.top+window.scrollY+(e.height-i.height)/2,s=e.right+window.scrollX+n;break}const o=window.innerWidth,l=window.innerHeight;s<0?s=8:s+i.width>o&&(s=o-i.width-8),r<window.scrollY?r=window.scrollY+8:r+i.height>window.scrollY+l&&(r=window.scrollY+l-i.height-8),this.tooltipElement.style.top=`${r}px`,this.tooltipElement.style.left=`${s}px`}removeTooltip(){this.tooltipElement&&(this.tooltipElement.classList.remove("tooltip-visible"),setTimeout(()=>{this.tooltipElement&&this.tooltipElement.parentNode&&this.tooltipElement.parentNode.removeChild(this.tooltipElement),this.tooltipElement=null},200))}removeTooltipImmediate(){this.tooltipElement&&this.tooltipElement.parentNode&&(this.tooltipElement.parentNode.removeChild(this.tooltipElement),this.tooltipElement=null)}static renderField(e){const i=e,a=i.text??"ヘルプ",n=i.content??"ツールチップの内容",r=`
215
215
  <div class="mokkun-tooltip-container">
216
- <span class="tooltip-trigger" tabindex="0" aria-describedby="${m(e.id)}-tooltip">${m(n)}</span>
217
- <div class="tooltip-content" id="${m(e.id)}-tooltip" role="tooltip">${m(s)}</div>
216
+ <span class="tooltip-trigger" tabindex="0" aria-describedby="${g(e.id)}-tooltip">${g(a)}</span>
217
+ <div class="tooltip-content" id="${g(e.id)}-tooltip" role="tooltip">${g(n)}</div>
218
218
  </div>
219
- `;return x(e,a)}}class Ma{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"containerElement");h(this,"floatAreaElement",null);h(this,"instanceId");this.config={zIndex:500,bottom:"24px",maxWidth:"800px",...i},this.containerElement=e,this.callbacks=n,this.instanceId=E("float-area"),this.state={visible:!0,zIndex:this.config.zIndex??500,responseMessage:this.config.responseMessage??null}}render(){this.removeElement(),this.createFloatAreaElement()}show(){var e,i;this.state.visible||(this.state={...this.state,visible:!0},this.updateVisibility(),(i=(e=this.callbacks).onShow)==null||i.call(e))}hide(){var e,i;this.state.visible&&(this.state={...this.state,visible:!1},this.updateVisibility(),(i=(e=this.callbacks).onHide)==null||i.call(e))}toggle(){this.state.visible?this.hide():this.show()}setResponseMessage(e){this.state={...this.state,responseMessage:e},this.render()}showSuccess(e){this.setResponseMessage({text:e,type:"success"})}showError(e){this.setResponseMessage({text:e,type:"error"})}clearMessage(){this.setResponseMessage(null)}updatePrimaryButton(e){this.config={...this.config,primaryButton:{...this.config.primaryButton,...e}},this.render()}setPrimaryDisabled(e){this.updatePrimaryButton({disabled:e})}setZIndex(e){this.state={...this.state,zIndex:e},this.floatAreaElement&&(this.floatAreaElement.style.zIndex=String(e))}destroy(){this.removeElement()}getState(){return{...this.state}}isVisible(){return this.state.visible}createFloatAreaElement(){this.floatAreaElement=c("div",{className:this.buildClassName(),attributes:{id:this.instanceId,role:"region","aria-label":this.config.ariaLabel??"アクション","aria-hidden":String(!this.state.visible)}}),this.floatAreaElement.style.zIndex=String(this.state.zIndex),this.config.bottom&&this.floatAreaElement.style.setProperty("--float-area-bottom",this.config.bottom),this.config.maxWidth&&this.floatAreaElement.style.setProperty("--float-area-max-width",this.config.maxWidth);const e=c("div",{className:"float-area-inner"});if(this.config.tertiaryButton){const s=c("div",{className:"float-area-tertiary"});s.appendChild(this.createButton(this.config.tertiaryButton,"tertiary")),e.appendChild(s)}const i=c("div",{className:"float-area-main"});if(this.state.responseMessage){const s=this.createResponseMessage(this.state.responseMessage);i.appendChild(s)}const n=c("div",{className:"float-area-buttons"});this.config.secondaryButton&&n.appendChild(this.createButton(this.config.secondaryButton,"secondary")),n.appendChild(this.createButton(this.config.primaryButton,"primary")),i.appendChild(n),e.appendChild(i),this.floatAreaElement.appendChild(e),this.containerElement.appendChild(this.floatAreaElement)}createButton(e,i){const n=e.variant??(i==="primary"?"primary":i==="tertiary"?"text":"secondary"),s=document.createElement("button");return s.type="button",s.className=`float-area-btn float-area-btn-${n}`,s.textContent=e.label,s.disabled=e.disabled??!1,e.disabled&&s.setAttribute("aria-disabled","true"),s.addEventListener("click",()=>{var a,r,o,l,d,p,u;e.disabled||((a=e.onClick)==null||a.call(e),i==="primary"?(o=(r=this.callbacks).onPrimaryClick)==null||o.call(r):i==="secondary"?(d=(l=this.callbacks).onSecondaryClick)==null||d.call(l):(u=(p=this.callbacks).onTertiaryClick)==null||u.call(p))}),s}createResponseMessage(e){const i=c("div",{className:`float-area-message float-area-message-${e.type}`,attributes:{role:e.type==="error"?"alert":"status","aria-live":"polite"}}),n=this.getMessageIcon(e.type),s=c("span",{className:"float-area-message-icon"});s.innerHTML=n,i.appendChild(s);const a=c("span",{className:"float-area-message-text"});return a.textContent=e.text,i.appendChild(a),i}getMessageIcon(e){switch(e){case"success":return'<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm3.78 5.22a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0l-2-2a.75.75 0 0 1 1.06-1.06L6.75 9.19l3.97-3.97a.75.75 0 0 1 1.06 0z"/></svg>';case"error":return'<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm0 3a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0v-4.5A.75.75 0 0 1 8 3zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/></svg>';case"warning":return'<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8.22 1.754a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575L6.457 1.047zM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-.25-5.25a.75.75 0 0 0-1.5 0v2.5a.75.75 0 0 0 1.5 0v-2.5z"/></svg>';case"info":return'<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm.75 4.75a.75.75 0 0 1-1.5 0 .75.75 0 0 1 1.5 0zM7 7a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 .75.75v3.25h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5H7V7.75A.75.75 0 0 1 7 7z"/></svg>'}}buildClassName(){const e=["mokkun-float-area"];return this.state.visible||e.push("float-area-hidden"),e.join(" ")}updateVisibility(){this.floatAreaElement&&(this.state.visible?(this.floatAreaElement.classList.remove("float-area-hidden"),this.floatAreaElement.setAttribute("aria-hidden","false")):(this.floatAreaElement.classList.add("float-area-hidden"),this.floatAreaElement.setAttribute("aria-hidden","true")))}removeElement(){this.floatAreaElement&&this.floatAreaElement.parentNode&&this.floatAreaElement.parentNode.removeChild(this.floatAreaElement),this.floatAreaElement=null}static renderField(e){return x(e,`
219
+ `;return $(e,r)}}class rl{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"containerElement");p(this,"floatAreaElement",null);p(this,"instanceId");this.config={zIndex:500,bottom:"24px",maxWidth:"800px",...i},this.containerElement=e,this.callbacks=a,this.instanceId=N("float-area"),this.state={visible:!0,zIndex:this.config.zIndex??500,responseMessage:this.config.responseMessage??null}}render(){this.removeElement(),this.createFloatAreaElement()}show(){var e,i;this.state.visible||(this.state={...this.state,visible:!0},this.updateVisibility(),(i=(e=this.callbacks).onShow)==null||i.call(e))}hide(){var e,i;this.state.visible&&(this.state={...this.state,visible:!1},this.updateVisibility(),(i=(e=this.callbacks).onHide)==null||i.call(e))}toggle(){this.state.visible?this.hide():this.show()}setResponseMessage(e){this.state={...this.state,responseMessage:e},this.render()}showSuccess(e){this.setResponseMessage({text:e,type:"success"})}showError(e){this.setResponseMessage({text:e,type:"error"})}clearMessage(){this.setResponseMessage(null)}updatePrimaryButton(e){this.config={...this.config,primaryButton:{...this.config.primaryButton,...e}},this.render()}setPrimaryDisabled(e){this.updatePrimaryButton({disabled:e})}setZIndex(e){this.state={...this.state,zIndex:e},this.floatAreaElement&&(this.floatAreaElement.style.zIndex=String(e))}destroy(){this.removeElement()}getState(){return{...this.state}}isVisible(){return this.state.visible}createFloatAreaElement(){this.floatAreaElement=c("div",{className:this.buildClassName(),attributes:{id:this.instanceId,role:"region","aria-label":this.config.ariaLabel??"アクション","aria-hidden":String(!this.state.visible)}}),this.floatAreaElement.style.zIndex=String(this.state.zIndex),this.config.bottom&&this.floatAreaElement.style.setProperty("--float-area-bottom",this.config.bottom),this.config.maxWidth&&this.floatAreaElement.style.setProperty("--float-area-max-width",this.config.maxWidth);const e=c("div",{className:"float-area-inner"});if(this.config.tertiaryButton){const n=c("div",{className:"float-area-tertiary"});n.appendChild(this.createButton(this.config.tertiaryButton,"tertiary")),e.appendChild(n)}const i=c("div",{className:"float-area-main"});if(this.state.responseMessage){const n=this.createResponseMessage(this.state.responseMessage);i.appendChild(n)}const a=c("div",{className:"float-area-buttons"});this.config.secondaryButton&&a.appendChild(this.createButton(this.config.secondaryButton,"secondary")),a.appendChild(this.createButton(this.config.primaryButton,"primary")),i.appendChild(a),e.appendChild(i),this.floatAreaElement.appendChild(e),this.containerElement.appendChild(this.floatAreaElement)}createButton(e,i){const a=e.variant??(i==="primary"?"primary":i==="tertiary"?"text":"secondary"),n=document.createElement("button");return n.type="button",n.className=`float-area-btn float-area-btn-${a}`,n.textContent=e.label,n.disabled=e.disabled??!1,e.disabled&&n.setAttribute("aria-disabled","true"),n.addEventListener("click",()=>{var r,s,o,l,d,u,h;e.disabled||((r=e.onClick)==null||r.call(e),i==="primary"?(o=(s=this.callbacks).onPrimaryClick)==null||o.call(s):i==="secondary"?(d=(l=this.callbacks).onSecondaryClick)==null||d.call(l):(h=(u=this.callbacks).onTertiaryClick)==null||h.call(u))}),n}createResponseMessage(e){const i=c("div",{className:`float-area-message float-area-message-${e.type}`,attributes:{role:e.type==="error"?"alert":"status","aria-live":"polite"}}),a=this.getMessageIcon(e.type),n=c("span",{className:"float-area-message-icon"});n.innerHTML=a,i.appendChild(n);const r=c("span",{className:"float-area-message-text"});return r.textContent=e.text,i.appendChild(r),i}getMessageIcon(e){switch(e){case"success":return'<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm3.78 5.22a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0l-2-2a.75.75 0 0 1 1.06-1.06L6.75 9.19l3.97-3.97a.75.75 0 0 1 1.06 0z"/></svg>';case"error":return'<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm0 3a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0v-4.5A.75.75 0 0 1 8 3zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/></svg>';case"warning":return'<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8.22 1.754a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575L6.457 1.047zM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-.25-5.25a.75.75 0 0 0-1.5 0v2.5a.75.75 0 0 0 1.5 0v-2.5z"/></svg>';case"info":return'<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm.75 4.75a.75.75 0 0 1-1.5 0 .75.75 0 0 1 1.5 0zM7 7a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 .75.75v3.25h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5H7V7.75A.75.75 0 0 1 7 7z"/></svg>'}}buildClassName(){const e=["mokkun-float-area"];return this.state.visible||e.push("float-area-hidden"),e.join(" ")}updateVisibility(){this.floatAreaElement&&(this.state.visible?(this.floatAreaElement.classList.remove("float-area-hidden"),this.floatAreaElement.setAttribute("aria-hidden","false")):(this.floatAreaElement.classList.add("float-area-hidden"),this.floatAreaElement.setAttribute("aria-hidden","true")))}removeElement(){this.floatAreaElement&&this.floatAreaElement.parentNode&&this.floatAreaElement.parentNode.removeChild(this.floatAreaElement),this.floatAreaElement=null}static renderField(e){return $(e,`
220
220
  <div class="mokkun-float-area">
221
221
  <div class="float-area-content">
222
222
  <span class="float-area-placeholder">[フロートエリア]</span>
223
223
  </div>
224
224
  </div>
225
- `)}}class Da{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"loaderElement",null);h(this,"overlayElement",null);h(this,"spinnerElement",null);h(this,"textElement",null);h(this,"progressBarContainer",null);h(this,"progressBarFill",null);this.container=e,this.config={size:"medium",type:"primary",overlay:!1,ariaLabel:"Loading",...i},this.callbacks=n,this.instanceId=E("loader"),this.state=this.createInitialState(),this.config.autoShow&&setTimeout(()=>this.show(),0)}show(){var e,i;this.state.isVisible||(this.state={...this.state,isVisible:!0},this.render(),(i=(e=this.callbacks).onShow)==null||i.call(e))}hide(){var e,i;this.state.isVisible&&(this.state={...this.state,isVisible:!1},this.cleanup(),(i=(e=this.callbacks).onHide)==null||i.call(e))}setProgress(e){var n,s;const i=Math.max(0,Math.min(100,e));this.state={...this.state,progress:i},this.state.isVisible&&this.progressBarFill&&this.updateProgressBar(i),(s=(n=this.callbacks).onProgressUpdate)==null||s.call(n,i)}setText(e){this.state={...this.state,text:e},this.state.isVisible&&this.textElement&&(this.textElement.textContent=e)}getState(){return{...this.state}}destroy(){this.cleanup(),this.state={...this.state,isVisible:!1}}render(){this.config.overlay?this.renderOverlay():this.renderInline()}renderInline(){if(!this.container){console.warn("Loader: No container provided for inline mode");return}this.loaderElement=this.createLoaderElement(),this.container.innerHTML="",this.container.appendChild(this.loaderElement)}renderOverlay(){this.overlayElement=c("div",{className:"loader-overlay",attributes:{role:"status","aria-modal":"true","aria-busy":"true","aria-label":this.config.ariaLabel||"Loading"}});const e=c("div",{className:"loader-overlay-content"});this.loaderElement=this.createLoaderElement(),e.appendChild(this.loaderElement),this.overlayElement.appendChild(e),document.body.appendChild(this.overlayElement),document.body.classList.add("loader-open")}createLoaderElement(){const e=c("div",{className:"mokkun-loader",attributes:{id:this.instanceId}});if(this.spinnerElement=this.createSpinner(),e.appendChild(this.spinnerElement),(this.config.text||this.state.text)&&(this.textElement=this.createText(),e.appendChild(this.textElement)),this.config.progress!==void 0||this.state.progress!==void 0){const i=this.createProgressBar();e.appendChild(i)}return this.config.overlay||(e.setAttribute("role","status"),e.setAttribute("aria-label",this.config.ariaLabel||"Loading")),e}createSpinner(){const e=this.config.size||"medium",i=this.config.type||"primary";return c("div",{className:"loader-spinner",attributes:{"data-size":e,"data-type":i,"aria-hidden":"true"}})}createText(){const e=this.state.text||this.config.text||"";return c("div",{className:"loader-text",textContent:e,attributes:{"aria-live":"polite"}})}createProgressBar(){const e=this.state.progress??this.config.progress??0;return this.progressBarContainer=c("div",{className:"loader-progress",attributes:{role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":String(e)}}),this.progressBarFill=c("div",{className:"loader-progress-fill"}),this.progressBarFill.style.width=`${e}%`,this.progressBarContainer.appendChild(this.progressBarFill),this.progressBarContainer}updateProgressBar(e){this.progressBarFill&&(this.progressBarFill.style.width=`${e}%`),this.progressBarContainer&&this.progressBarContainer.setAttribute("aria-valuenow",String(e))}createInitialState(){return{isVisible:!1,progress:this.config.progress,text:this.config.text}}cleanup(){this.overlayElement&&(this.overlayElement.remove(),this.overlayElement=null,document.body.classList.remove("loader-open")),this.loaderElement&&!this.config.overlay&&(this.loaderElement.remove(),this.loaderElement=null),this.spinnerElement=null,this.textElement=null,this.progressBarContainer=null,this.progressBarFill=null}static renderField(e){const i=e,n=i.size??"medium",s=i.text,a=`
226
- <div class="mokkun-loader loader-${n}">
227
- <div class="loader-spinner"></div>
228
- ${s?`<span class="loader-text">${m(s)}</span>`:""}
225
+ `)}}class sl{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"loaderElement",null);p(this,"overlayElement",null);p(this,"spinnerElement",null);p(this,"textElement",null);p(this,"progressBarContainer",null);p(this,"progressBarFill",null);this.container=e,this.config={size:"medium",type:"primary",overlay:!1,ariaLabel:"Loading",...i},this.callbacks=a,this.instanceId=N("loader"),this.state=this.createInitialState(),this.config.autoShow&&setTimeout(()=>this.show(),0)}show(){var e,i;this.state.isVisible||(this.state={...this.state,isVisible:!0},this.render(),(i=(e=this.callbacks).onShow)==null||i.call(e))}hide(){var e,i;this.state.isVisible&&(this.state={...this.state,isVisible:!1},this.cleanup(),(i=(e=this.callbacks).onHide)==null||i.call(e))}setProgress(e){var a,n;const i=Math.max(0,Math.min(100,e));this.state={...this.state,progress:i},this.state.isVisible&&this.progressBarFill&&this.updateProgressBar(i),(n=(a=this.callbacks).onProgressUpdate)==null||n.call(a,i)}setText(e){this.state={...this.state,text:e},this.state.isVisible&&this.textElement&&(this.textElement.textContent=e)}getState(){return{...this.state}}destroy(){this.cleanup(),this.state={...this.state,isVisible:!1}}render(){this.config.overlay?this.renderOverlay():this.renderInline()}renderInline(){if(!this.container){console.warn("Loader: No container provided for inline mode");return}this.loaderElement=this.createLoaderElement(),this.container.innerHTML="",this.container.appendChild(this.loaderElement)}renderOverlay(){this.overlayElement=c("div",{className:"loader-overlay",attributes:{role:"status","aria-modal":"true","aria-busy":"true","aria-label":this.config.ariaLabel||"Loading"}});const e=c("div",{className:"loader-overlay-content"});this.loaderElement=this.createLoaderElement(),e.appendChild(this.loaderElement),this.overlayElement.appendChild(e),document.body.appendChild(this.overlayElement),document.body.classList.add("loader-open")}createLoaderElement(){const e=c("div",{className:"mokkun-loader",attributes:{id:this.instanceId}});if(this.spinnerElement=this.createSpinner(),e.appendChild(this.spinnerElement),(this.config.text||this.state.text)&&(this.textElement=this.createText(),e.appendChild(this.textElement)),this.config.progress!==void 0||this.state.progress!==void 0){const i=this.createProgressBar();e.appendChild(i)}return this.config.overlay||(e.setAttribute("role","status"),e.setAttribute("aria-label",this.config.ariaLabel||"Loading")),e}createSpinner(){const e=this.config.size||"medium",i=this.config.type||"primary";return c("div",{className:"loader-spinner",attributes:{"data-size":e,"data-type":i,"aria-hidden":"true"}})}createText(){const e=this.state.text||this.config.text||"";return c("div",{className:"loader-text",textContent:e,attributes:{"aria-live":"polite"}})}createProgressBar(){const e=this.state.progress??this.config.progress??0;return this.progressBarContainer=c("div",{className:"loader-progress",attributes:{role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":String(e)}}),this.progressBarFill=c("div",{className:"loader-progress-fill"}),this.progressBarFill.style.width=`${e}%`,this.progressBarContainer.appendChild(this.progressBarFill),this.progressBarContainer}updateProgressBar(e){this.progressBarFill&&(this.progressBarFill.style.width=`${e}%`),this.progressBarContainer&&this.progressBarContainer.setAttribute("aria-valuenow",String(e))}createInitialState(){return{isVisible:!1,progress:this.config.progress,text:this.config.text}}cleanup(){this.overlayElement&&(this.overlayElement.remove(),this.overlayElement=null,document.body.classList.remove("loader-open")),this.loaderElement&&!this.config.overlay&&(this.loaderElement.remove(),this.loaderElement=null),this.spinnerElement=null,this.textElement=null,this.progressBarContainer=null,this.progressBarFill=null}static renderField(e){const i=e,a=i.loaderType==="light"?"light":"primary",n=i.size??"medium",r=["small","medium","large"].includes(n)?n:"medium",s=i.text,o=`
226
+ <div class="mokkun-loader" role="status" aria-label="${g(s||"Loading")}">
227
+ <div class="loader-spinner" data-size="${r}" data-type="${a}" aria-hidden="true"></div>
228
+ ${s?`<div class="loader-text">${g(s)}</div>`:""}
229
229
  </div>
230
- `;return x(e,a)}}const Fa={info:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>',success:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm3.844-8.791a.75.75 0 0 0-1.188-.918l-3.7 4.79-1.649-1.833a.75.75 0 1 0-1.114 1.004l2.25 2.5a.75.75 0 0 0 1.151-.043l4.25-5.5Z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',sync:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M13.836 2.477a.75.75 0 0 1 .75.75v3.182a.75.75 0 0 1-.75.75h-3.182a.75.75 0 0 1 0-1.5h1.37l-.84-.841a4.5 4.5 0 0 0-7.08.681.75.75 0 0 1-1.264-.808 6 6 0 0 1 9.44-.908l.97.969V3.227a.75.75 0 0 1 .75-.75Zm-1.09 7.595a6 6 0 0 1-9.44.908l-.97-.969v1.637a.75.75 0 0 1-1.5 0V8.466a.75.75 0 0 1 .75-.75h3.182a.75.75 0 0 1 0 1.5h-1.37l.84.841a4.5 4.5 0 0 0 7.08-.681.75.75 0 0 1 1.264.808Z" clip-rule="evenodd" /></svg>'},Oa='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M5.28 4.22a.75.75 0 0 0-1.06 1.06L6.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L8 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L9.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L8 6.94 5.28 4.22Z" /></svg>';class Ha{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"closeHandler",null);h(this,"actionHandler",null);this.config=i,this.container=e,this.callbacks=n,this.state=this.createInitialState()}render(){this.cleanup(),this.container.innerHTML="";const e=this.config.type??"info",i=this.state.bold,n=this.config.closable??!0;if(this.container.className=["mokkun-notification-bar",`notification-bar-${e}`,i?"notification-bar-bold":"",this.state.visible?"":"notification-bar-hidden"].filter(Boolean).join(" "),this.container.setAttribute("data-type",e),i?this.container.setAttribute("data-bold",""):this.container.removeAttribute("data-bold"),this.state.visible)this.container.removeAttribute("data-hidden");else{this.container.setAttribute("data-hidden","");return}const s=this.config.role??"status";this.container.setAttribute("role",s),this.container.setAttribute("aria-live",s==="alert"?"assertive":"polite");const a=this.config.ariaLabel??this.state.message;this.container.setAttribute("aria-label",a);const r=this.renderContent();if(this.container.appendChild(r),this.config.actionLabel&&this.callbacks.onAction){const o=this.renderActionButton();this.container.appendChild(o)}if(n&&this.callbacks.onClose){const o=this.renderCloseButton();this.container.appendChild(o)}}setMessage(e){this.state.message!==e&&(this.state={...this.state,message:e},this.render())}setVisible(e){this.state.visible!==e&&(this.state={...this.state,visible:e},this.render())}setBold(e){this.state.bold!==e&&(this.state={...this.state,bold:e},this.render())}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}getMessage(){return this.state.message}isVisible(){return this.state.visible}isBold(){return this.state.bold}getState(){return{...this.state}}destroy(){this.cleanup(),this.container.innerHTML="",this.container.className="",this.container.removeAttribute("role"),this.container.removeAttribute("aria-live"),this.container.removeAttribute("aria-label"),this.container.removeAttribute("data-type"),this.container.removeAttribute("data-bold"),this.container.removeAttribute("data-hidden")}createInitialState(){return{message:this.config.message,visible:!0,bold:this.config.bold??!1}}renderContent(){const e=c("div",{className:"notification-bar-content"}),i=this.config.type??"info",n=c("span",{className:"notification-bar-icon",attributes:{"aria-hidden":"true"}});n.innerHTML=Fa[i],e.appendChild(n);const s=c("span",{className:"notification-bar-message",textContent:this.state.message});return e.appendChild(s),e}renderActionButton(){const e=c("button",{className:"notification-bar-action",textContent:this.config.actionLabel,attributes:{type:"button"}});return this.actionHandler=this.handleAction.bind(this),e.addEventListener("click",this.actionHandler),e}renderCloseButton(){const e=c("button",{className:"notification-bar-close",attributes:{type:"button","aria-label":"閉じる"}});return e.innerHTML=Oa,this.closeHandler=this.handleClose.bind(this),e.addEventListener("click",this.closeHandler),e}handleAction(e){var i,n;e.stopPropagation(),(n=(i=this.callbacks).onAction)==null||n.call(i)}handleClose(e){var i,n;e.stopPropagation(),(n=(i=this.callbacks).onClose)==null||n.call(i)}cleanup(){if(this.closeHandler){const e=this.container.querySelector(".notification-bar-close");e==null||e.removeEventListener("click",this.closeHandler),this.closeHandler=null}if(this.actionHandler){const e=this.container.querySelector(".notification-bar-action");e==null||e.removeEventListener("click",this.actionHandler),this.actionHandler=null}}static renderField(e){const i=e,n=i.variant??"info",s=i.dismissible??!0,r=`
231
- <div class="mokkun-notification-bar notification-${n}" role="alert">
232
- <span class="notification-icon">${{info:"ℹ️",success:"✓",warning:"⚠️",error:"✕"}[n]}</span>
233
- <div class="notification-content">
234
- <span class="notification-message">${m(e.description??e.label)}</span>
230
+ `;return $(e,o)}}const ol={info:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>',success:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm3.844-8.791a.75.75 0 0 0-1.188-.918l-3.7 4.79-1.649-1.833a.75.75 0 1 0-1.114 1.004l2.25 2.5a.75.75 0 0 0 1.151-.043l4.25-5.5Z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',sync:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M13.836 2.477a.75.75 0 0 1 .75.75v3.182a.75.75 0 0 1-.75.75h-3.182a.75.75 0 0 1 0-1.5h1.37l-.84-.841a4.5 4.5 0 0 0-7.08.681.75.75 0 0 1-1.264-.808 6 6 0 0 1 9.44-.908l.97.969V3.227a.75.75 0 0 1 .75-.75Zm-1.09 7.595a6 6 0 0 1-9.44.908l-.97-.969v1.637a.75.75 0 0 1-1.5 0V8.466a.75.75 0 0 1 .75-.75h3.182a.75.75 0 0 1 0 1.5h-1.37l.84.841a4.5 4.5 0 0 0 7.08-.681.75.75 0 0 1 1.264.808Z" clip-rule="evenodd" /></svg>'},ll='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M5.28 4.22a.75.75 0 0 0-1.06 1.06L6.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L8 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L9.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L8 6.94 5.28 4.22Z" /></svg>';class dl{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"closeHandler",null);p(this,"actionHandler",null);this.config=i,this.container=e,this.callbacks=a,this.state=this.createInitialState()}render(){this.cleanup(),this.container.innerHTML="";const e=this.config.type??"info",i=this.state.bold,a=this.config.closable??!0;if(this.container.className=["mokkun-notification-bar",`notification-bar-${e}`,i?"notification-bar-bold":"",this.state.visible?"":"notification-bar-hidden"].filter(Boolean).join(" "),this.container.setAttribute("data-type",e),i?this.container.setAttribute("data-bold",""):this.container.removeAttribute("data-bold"),this.state.visible)this.container.removeAttribute("data-hidden");else{this.container.setAttribute("data-hidden","");return}const n=this.config.role??"status";this.container.setAttribute("role",n),this.container.setAttribute("aria-live",n==="alert"?"assertive":"polite");const r=this.config.ariaLabel??this.state.message;this.container.setAttribute("aria-label",r);const s=this.renderContent();if(this.container.appendChild(s),this.config.actionLabel&&this.callbacks.onAction){const o=this.renderActionButton();this.container.appendChild(o)}if(a&&this.callbacks.onClose){const o=this.renderCloseButton();this.container.appendChild(o)}}setMessage(e){this.state.message!==e&&(this.state={...this.state,message:e},this.render())}setVisible(e){this.state.visible!==e&&(this.state={...this.state,visible:e},this.render())}setBold(e){this.state.bold!==e&&(this.state={...this.state,bold:e},this.render())}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}getMessage(){return this.state.message}isVisible(){return this.state.visible}isBold(){return this.state.bold}getState(){return{...this.state}}destroy(){this.cleanup(),this.container.innerHTML="",this.container.className="",this.container.removeAttribute("role"),this.container.removeAttribute("aria-live"),this.container.removeAttribute("aria-label"),this.container.removeAttribute("data-type"),this.container.removeAttribute("data-bold"),this.container.removeAttribute("data-hidden")}createInitialState(){return{message:this.config.message,visible:!0,bold:this.config.bold??!1}}renderContent(){const e=c("div",{className:"notification-bar-content"}),i=this.config.type??"info",a=c("span",{className:"notification-bar-icon",attributes:{"aria-hidden":"true"}});a.innerHTML=ol[i],e.appendChild(a);const n=c("span",{className:"notification-bar-message",textContent:this.state.message});return e.appendChild(n),e}renderActionButton(){const e=c("button",{className:"notification-bar-action",textContent:this.config.actionLabel,attributes:{type:"button"}});return this.actionHandler=this.handleAction.bind(this),e.addEventListener("click",this.actionHandler),e}renderCloseButton(){const e=c("button",{className:"notification-bar-close",attributes:{type:"button","aria-label":"閉じる"}});return e.innerHTML=ll,this.closeHandler=this.handleClose.bind(this),e.addEventListener("click",this.closeHandler),e}handleAction(e){var i,a;e.stopPropagation(),(a=(i=this.callbacks).onAction)==null||a.call(i)}handleClose(e){var i,a;e.stopPropagation(),(a=(i=this.callbacks).onClose)==null||a.call(i)}cleanup(){if(this.closeHandler){const e=this.container.querySelector(".notification-bar-close");e==null||e.removeEventListener("click",this.closeHandler),this.closeHandler=null}if(this.actionHandler){const e=this.container.querySelector(".notification-bar-action");e==null||e.removeEventListener("click",this.actionHandler),this.actionHandler=null}}static renderField(e){const i=e,a=i.variant??"info",n=["info","success","warning","error"].includes(a)?a:"info",r=i.dismissible??!0,o=`
231
+ <div class="mokkun-notification-bar notification-bar-${n}" data-type="${n}" role="alert">
232
+ <div class="notification-bar-content">
233
+ <span class="notification-bar-icon" aria-hidden="true">${{info:"ℹ️",success:"✓",warning:"⚠️",error:"✕"}[n]}</span>
234
+ <span class="notification-bar-message">${g(e.description??e.label)}</span>
235
235
  </div>
236
- ${s?'<button type="button" class="notification-dismiss" aria-label="閉じる">×</button>':""}
237
- </div>
238
- `;return x(e,r)}}const gi={success:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" /></svg>',info:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z" clip-rule="evenodd" /></svg>'},za='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 011.06 0L8 8.94l2.72-2.72a.75.75 0 111.06 1.06l-3.25 3.25a.75.75 0 01-1.06 0L4.22 7.28a.75.75 0 010-1.06z" clip-rule="evenodd" /></svg>',Ba='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z" /></svg>',bi='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 3a5 5 0 104.546 2.914.75.75 0 011.364-.628A6.5 6.5 0 118 1.5v-.75a.75.75 0 011.28-.53l2 2a.75.75 0 010 1.06l-2 2a.75.75 0 01-1.28-.53V3z" clip-rule="evenodd" /></svg>',vi='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" class="response-message-spinner"><circle cx="8" cy="8" r="6" fill="none" stroke="currentColor" stroke-width="2" opacity="0.25" /><path d="M14 8a6 6 0 00-6-6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" /></svg>',Ra=200;class Pa{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"detailsId");h(this,"detailsToggleHandler",null);h(this,"retryHandler",null);h(this,"closeHandler",null);this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("response-message"),this.detailsId=`${this.instanceId}-details`,this.state=this.createInitialState()}render(){if(this.cleanupEventListeners(),this.container.innerHTML="",!this.state.visible){this.container.style.display="none";return}this.container.style.display="";const e=this.config.type??"info";if(this.container.className=this.buildClassName(e),this.container.id=this.instanceId,this.container.setAttribute("role",e==="error"?"alert":"status"),this.container.setAttribute("aria-live",e==="error"?"assertive":"polite"),this.config.ariaLabel&&this.container.setAttribute("aria-label",this.config.ariaLabel),!this.config.hideIcon){const n=this.renderIcon(e);this.container.appendChild(n)}const i=this.renderContent();if(this.container.appendChild(i),this.config.showClose){const n=this.renderCloseButton();this.container.appendChild(n)}}show(){this.state.visible||(this.state={...this.state,visible:!0},this.render())}hide(){var e,i;this.state.visible&&(this.state={...this.state,visible:!1},this.render(),(i=(e=this.callbacks).onClose)==null||i.call(e))}expandDetails(){var e,i;this.state.detailsExpanded||!this.hasDetails()||(this.state={...this.state,detailsExpanded:!0},this.updateDetailsState(),(i=(e=this.callbacks).onExpandDetails)==null||i.call(e))}collapseDetails(){var e,i;this.state.detailsExpanded&&(this.state={...this.state,detailsExpanded:!1},this.updateDetailsState(),(i=(e=this.callbacks).onCollapseDetails)==null||i.call(e))}toggleDetails(){this.state.detailsExpanded?this.collapseDetails():this.expandDetails()}setLoading(e){this.state.loading!==e&&(this.state={...this.state,loading:e},this.updateRetryButtonState())}setMessage(e){this.config={...this.config,message:e},this.render()}setDetails(e){this.config={...this.config,details:e},this.render()}setType(e){this.config={...this.config,type:e},this.render()}update(e){this.config={...this.config,...e},this.render()}getState(){return{...this.state}}isVisible(){return this.state.visible}isDetailsExpanded(){return this.state.detailsExpanded}destroy(){this.cleanupEventListeners(),this.container.innerHTML="",this.container.removeAttribute("role"),this.container.removeAttribute("aria-live"),this.container.removeAttribute("aria-label")}createInitialState(){return{visible:!0,detailsExpanded:!1,loading:!1}}cleanupEventListeners(){const e=this.container.querySelector(".response-message-details-toggle"),i=this.container.querySelector(".response-message-retry"),n=this.container.querySelector(".response-message-close");e&&this.detailsToggleHandler&&e.removeEventListener("click",this.detailsToggleHandler),i&&this.retryHandler&&i.removeEventListener("click",this.retryHandler),n&&this.closeHandler&&n.removeEventListener("click",this.closeHandler),this.detailsToggleHandler=null,this.retryHandler=null,this.closeHandler=null}buildClassName(e){const i=["mokkun-response-message",`response-message-${e}`];return this.config.className&&i.push(this.config.className),i.join(" ")}renderIcon(e){const i=c("div",{className:"response-message-icon",attributes:{"aria-hidden":"true"}});return this.config.icon?i.innerHTML=this.sanitizeSvgIcon(this.config.icon)??gi[e]:i.innerHTML=gi[e],i}renderContent(){const e=c("div",{className:"response-message-content"}),i=c("div",{className:"response-message-text",textContent:this.config.message});if(e.appendChild(i),this.hasDetails()||this.config.showRetry){const s=this.renderActions();e.appendChild(s)}if(this.hasDetails()){const s=this.renderDetails();e.appendChild(s)}return e}renderActions(){const e=c("div",{className:"response-message-actions"});if(this.hasDetails()){const i=this.renderDetailsToggle();e.appendChild(i)}if(this.config.showRetry){const i=this.renderRetryButton();e.appendChild(i)}return e}renderDetailsToggle(){const e=this.config.detailsLabel??"詳細",i=c("button",{className:`response-message-details-toggle${this.state.detailsExpanded?" is-expanded":""}`,attributes:{type:"button","aria-expanded":String(this.state.detailsExpanded),"aria-controls":this.detailsId}}),n=c("span",{className:"response-message-details-label",textContent:e});i.appendChild(n);const s=c("span",{className:"response-message-details-chevron"});return s.innerHTML=za,i.appendChild(s),this.detailsToggleHandler=()=>{this.toggleDetails()},i.addEventListener("click",this.detailsToggleHandler),i}renderRetryButton(){const e=this.config.retryLabel??"再試行",i=c("button",{className:`response-message-retry${this.state.loading?" is-loading":""}`,attributes:{type:"button","aria-disabled":String(this.state.loading)}});this.state.loading&&(i.disabled=!0);const n=c("span",{className:"response-message-retry-icon"});n.innerHTML=this.state.loading?vi:bi,i.appendChild(n);const s=c("span",{className:"response-message-retry-label",textContent:e});return i.appendChild(s),this.retryHandler=async()=>{if(this.state.loading)return;const a=this.callbacks.onRetry;if(a){this.setLoading(!0);try{await a()}finally{this.setLoading(!1)}}},i.addEventListener("click",this.retryHandler),i}renderDetails(){const e=c("div",{className:`response-message-details-wrapper${this.state.detailsExpanded?" is-expanded":""}`}),i=c("div",{className:"response-message-details",attributes:{id:this.detailsId}});this.state.detailsExpanded||i.setAttribute("hidden","");const n=this.config.details;if(Array.isArray(n)){const s=c("ul",{className:"response-message-details-list"});n.forEach(a=>{const r=c("li",{textContent:a});s.appendChild(r)}),i.appendChild(s)}else if(n){const s=c("div",{className:"response-message-details-text",textContent:n});i.appendChild(s)}return e.appendChild(i),e}renderCloseButton(){const e=c("button",{className:"response-message-close",attributes:{type:"button","aria-label":"閉じる"}});return e.innerHTML=Ba,this.closeHandler=()=>{this.hide()},e.addEventListener("click",this.closeHandler),e}updateDetailsState(){const e=this.container.querySelector(".response-message-details-toggle"),i=this.container.querySelector(".response-message-details-wrapper"),n=this.container.querySelector(".response-message-details");e&&(e.setAttribute("aria-expanded",String(this.state.detailsExpanded)),this.state.detailsExpanded?e.classList.add("is-expanded"):e.classList.remove("is-expanded")),i&&(this.state.detailsExpanded?i.classList.add("is-expanded"):i.classList.remove("is-expanded")),n&&(this.state.detailsExpanded?n.removeAttribute("hidden"):setTimeout(()=>{this.state.detailsExpanded||n.setAttribute("hidden","")},Ra))}updateRetryButtonState(){const e=this.container.querySelector(".response-message-retry"),i=this.container.querySelector(".response-message-retry-icon");e&&(e.disabled=this.state.loading,e.setAttribute("aria-disabled",String(this.state.loading)),this.state.loading?e.classList.add("is-loading"):e.classList.remove("is-loading")),i&&(i.innerHTML=this.state.loading?vi:bi)}hasDetails(){const e=this.config.details;return Array.isArray(e)?e.length>0:!!e}sanitizeSvgIcon(e){const i=e.trim();if(!i.toLowerCase().startsWith("<svg")||!i.toLowerCase().endsWith("</svg>"))return null;const s=new DOMParser().parseFromString(i,"image/svg+xml");if(s.querySelector("parsererror"))return null;const r=s.querySelector("svg");if(!r)return null;["script","foreignObject","iframe","object","embed","use"].forEach(p=>{r.querySelectorAll(p).forEach(u=>u.remove())});const l=["onload","onerror","onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus","onblur","onkeydown","onkeyup","onkeypress","onsubmit","onreset","onchange","oninput","onscroll","onresize","onanimationstart","onanimationend","ontransitionend"];l.forEach(p=>r.removeAttribute(p));const d=r.getAttribute("href")??r.getAttribute("xlink:href");return d&&d.toLowerCase().startsWith("javascript:")&&(r.removeAttribute("href"),r.removeAttribute("xlink:href")),r.querySelectorAll("*").forEach(p=>{l.forEach(f=>p.removeAttribute(f));const u=p.getAttribute("href")??p.getAttribute("xlink:href");u&&u.toLowerCase().startsWith("javascript:")&&(p.removeAttribute("href"),p.removeAttribute("xlink:href"))}),r.outerHTML}static renderField(e){const n=e.variant??"success",a=`
239
- <div class="mokkun-response-message response-${n}" role="status">
240
- <span class="response-icon">${{success:"✓",error:"✕",warning:"⚠",info:"ℹ"}[n]}</span>
241
- <span class="response-text">${m(e.description??e.label)}</span>
236
+ ${r?'<button type="button" class="notification-bar-close" aria-label="閉じる">×</button>':""}
242
237
  </div>
243
- `;return x(e,a)}}const Ye={circle:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="6" /></svg>',dot:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="4" /></svg>',check:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M12.416 3.376a.75.75 0 0 1 .208 1.04l-5 7.5a.75.75 0 0 1-1.154.114l-3-3a.75.75 0 0 1 1.06-1.06l2.353 2.353 4.493-6.739a.75.75 0 0 1 1.04-.208Z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',info:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>',clock:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M1 8a7 7 0 1 1 14 0A7 7 0 0 1 1 8Zm7.75-4.25a.75.75 0 0 0-1.5 0V8c0 .414.336.75.75.75h3.25a.75.75 0 0 0 0-1.5h-2.5v-3.5Z" clip-rule="evenodd" /></svg>',star:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.75a.75.75 0 0 1 .692.462l1.41 3.393 3.664.293a.75.75 0 0 1 .428 1.317l-2.791 2.39.853 3.58a.75.75 0 0 1-1.12.814L8 11.95l-3.136 2.05a.75.75 0 0 1-1.12-.815l.853-3.58-2.79-2.39a.75.75 0 0 1 .427-1.316l3.663-.293 1.41-3.393A.75.75 0 0 1 8 1.75Z" clip-rule="evenodd" /></svg>',user:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM12.735 14c.618 0 1.093-.561.872-1.139a6.002 6.002 0 0 0-11.215 0c-.22.578.254 1.139.872 1.139h9.47Z" /></svg>',message:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M1 8.74c0 .983.713 1.825 1.69 1.943.764.092 1.534.164 2.31.216v2.351a.75.75 0 0 0 1.28.53l2.51-2.51c.182-.181.427-.283.684-.287A23.109 23.109 0 0 0 14 10.67c.7-.123 1-.87 1-1.63v-4.6c0-.76-.3-1.51-1-1.63A23.056 23.056 0 0 0 8 2.25c-2.154 0-4.254.147-6 .56-.7.12-1 .87-1 1.63v4.3Z" clip-rule="evenodd" /></svg>'};function Va(t){return t instanceof Date?t:new Date(t)}function ja(t){const e=t.getFullYear(),i=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0");return`${e}/${i}/${n}`}function Ua(t,e){if(e==="none")return"";const i=String(t.getHours()).padStart(2,"0"),n=String(t.getMinutes()).padStart(2,"0");if(e==="HH:mm")return`${i}:${n}`;const s=String(t.getSeconds()).padStart(2,"0");return`${i}:${n}:${s}`}function Ge(t){const i=new DOMParser().parseFromString(t,"text/html");["script","iframe","object","embed","form","input","button","textarea","select","style","link","meta","base","noscript"].forEach(a=>{i.querySelectorAll(a).forEach(r=>r.remove())});const s=["onload","onerror","onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus","onblur","onkeydown","onkeyup","onkeypress","onsubmit","onreset","onchange","oninput","onscroll","onresize","onanimationstart","onanimationend","ontransitionend","oncontextmenu","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","onmouseenter","onmouseleave","onmousemove","onwheel","oncopy","oncut","onpaste","onabort","oncanplay","oncanplaythrough","oncuechange","ondurationchange","onemptied","onended","onloadeddata","onloadedmetadata","onloadstart","onpause","onplay","onplaying","onprogress","onratechange","onseeked","onseeking","onstalled","onsuspend","ontimeupdate","onvolumechange","onwaiting","ontoggle","onpointerdown","onpointerup","onpointermove","onpointerenter","onpointerleave","onpointercancel","ongotpointercapture","onlostpointercapture","ontouchstart","ontouchmove","ontouchend","ontouchcancel"];return i.querySelectorAll("*").forEach(a=>{s.forEach(d=>a.removeAttribute(d));const r=a.getAttribute("href");r&&r.toLowerCase().trim().startsWith("javascript:")&&a.removeAttribute("href");const o=a.getAttribute("src");o&&o.toLowerCase().trim().startsWith("javascript:")&&a.removeAttribute("src"),o&&o.toLowerCase().trim().startsWith("data:")&&a.tagName.toLowerCase()!=="img"&&a.removeAttribute("src");const l=a.getAttribute("style");if(l){const d=l.replace(/javascript:/gi,"").replace(/expression\s*\(/gi,"").replace(/url\s*\(\s*["']?\s*javascript:/gi,"url(");a.setAttribute("style",d)}}),i.body.innerHTML}function qa(t){const e=t.trim();if(!e.toLowerCase().startsWith("<svg")||!e.toLowerCase().endsWith("</svg>"))return null;const n=new DOMParser().parseFromString(e,"image/svg+xml");if(n.querySelector("parsererror"))return null;const a=n.querySelector("svg");if(!a)return null;["script","foreignObject","iframe","object","embed","use"].forEach(d=>{a.querySelectorAll(d).forEach(p=>p.remove())});const o=["onload","onerror","onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus","onblur","onkeydown","onkeyup","onkeypress","onsubmit","onreset","onchange","oninput","onscroll","onresize","onanimationstart","onanimationend","ontransitionend"];o.forEach(d=>a.removeAttribute(d));const l=a.getAttribute("href")??a.getAttribute("xlink:href");return l&&l.toLowerCase().startsWith("javascript:")&&(a.removeAttribute("href"),a.removeAttribute("xlink:href")),a.querySelectorAll("*").forEach(d=>{o.forEach(u=>d.removeAttribute(u));const p=d.getAttribute("href")??d.getAttribute("xlink:href");p&&p.toLowerCase().startsWith("javascript:")&&(d.removeAttribute("href"),d.removeAttribute("xlink:href"))}),a.outerHTML}class Wa{constructor(e,i,n={}){h(this,"config");h(this,"container");h(this,"callbacks");h(this,"state");h(this,"itemClickElements",[]);this.container=e,this.config=i,this.callbacks=n,this.state=this.createInitialState()}render(){this.cleanup(),B(this.container),this.container.className="mokkun-timeline",this.container.setAttribute("role","list"),this.container.setAttribute("aria-label","タイムライン");const e=c("ol",{className:"timeline-list"});this.config.items.forEach((i,n)=>{const s=this.renderItem(i,n);e.appendChild(s)}),this.container.appendChild(e)}addItem(e){this.config={...this.config,items:[...this.config.items,e]},this.state=this.createInitialState(),this.render()}removeItem(e){e<0||e>=this.config.items.length||(this.config={...this.config,items:this.config.items.filter((i,n)=>n!==e)},this.state=this.createInitialState(),this.render())}updateItem(e,i){e<0||e>=this.config.items.length||(this.config={...this.config,items:this.config.items.map((n,s)=>s===e?{...n,...i}:n)},this.state=this.createInitialState(),this.render())}getState(){return{...this.state}}getItemCount(){return this.config.items.length}destroy(){this.cleanup(),B(this.container)}createInitialState(){const e=this.config.items.findIndex(i=>i.current);return{itemCount:this.config.items.length,currentIndex:e}}cleanup(){this.itemClickElements.forEach(({element:e,handler:i})=>{e.removeEventListener("click",i)}),this.itemClickElements=[]}renderItem(e,i){const n=i===0,s=i===this.config.items.length-1,a=e.current??!1,r=c("li",{className:["timeline-item",a?"is-current":"",n?"is-first":"",s?"is-last":""].filter(Boolean).join(" ")});r.setAttribute("role","listitem");const o=this.renderMarkerArea(e,s);r.appendChild(o);const l=this.renderContentArea(e,i);return r.appendChild(l),r}renderMarkerArea(e,i){const n=c("div",{className:"timeline-marker-area"}),s=c("span",{className:["timeline-icon",e.current?"is-current":""].filter(Boolean).join(" ")});s.setAttribute("aria-hidden","true"),e.iconColor&&(s.style.color=e.iconColor);const a=this.getIconHtml(e.icon);if(a&&(s.innerHTML=a),n.appendChild(s),!i){const r=c("span",{className:"timeline-line"});n.appendChild(r)}return n}renderContentArea(e,i){const n=c("div",{className:"timeline-content-area"}),s=this.renderHeader(e);if(n.appendChild(s),e.title){const r=c("div",{className:["timeline-title",e.current?"is-current":""].filter(Boolean).join(" "),textContent:e.title});n.appendChild(r)}const a=c("div",{className:"timeline-content"});if(a.innerHTML=Ge(e.content),n.appendChild(a),this.callbacks.onItemClick){n.classList.add("is-clickable");const r=o=>{var l,d;(d=(l=this.callbacks).onItemClick)==null||d.call(l,i,o)};this.itemClickElements.push({element:n,handler:r}),n.addEventListener("click",r)}return n}renderHeader(e){const i=c("div",{className:"timeline-header"}),n=c("div",{className:"timeline-date-area"}),s=Va(e.datetime),a=e.dateLabel??ja(s),r=c("time",{className:["timeline-date",e.current?"is-current":""].filter(Boolean).join(" "),textContent:a});r.setAttribute("datetime",s.toISOString()),n.appendChild(r);const o=e.timeFormat??"HH:mm";if(o!=="none"){const l=Ua(s,o);if(l){const d=c("span",{className:"timeline-time",textContent:l});n.appendChild(d)}}if(e.dateSuffixArea){const l=c("span",{className:"timeline-date-suffix"});l.innerHTML=Ge(e.dateSuffixArea),n.appendChild(l)}if(i.appendChild(n),e.sideActionArea){const l=c("div",{className:"timeline-side-action"});l.innerHTML=Ge(e.sideActionArea),i.appendChild(l)}return i}getIconHtml(e){if(!e)return Ye.dot;const i=Ye[e];return i||(qa(e)??Ye.dot)}static renderField(e){return x(e,`
244
- <div class="mokkun-timeline">
245
- <div class="timeline-item">
246
- <div class="timeline-marker"></div>
247
- <div class="timeline-content">
248
- <div class="timeline-time">10:30</div>
249
- <div class="timeline-title">アクティビティ1</div>
250
- </div>
238
+ `;return $(e,o)}}const Ia={success:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" /></svg>',info:'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z" clip-rule="evenodd" /></svg>'},cl='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 011.06 0L8 8.94l2.72-2.72a.75.75 0 111.06 1.06l-3.25 3.25a.75.75 0 01-1.06 0L4.22 7.28a.75.75 0 010-1.06z" clip-rule="evenodd" /></svg>',ul='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z" /></svg>',Sa='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 3a5 5 0 104.546 2.914.75.75 0 011.364-.628A6.5 6.5 0 118 1.5v-.75a.75.75 0 011.28-.53l2 2a.75.75 0 010 1.06l-2 2a.75.75 0 01-1.28-.53V3z" clip-rule="evenodd" /></svg>',La='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" class="response-message-spinner"><circle cx="8" cy="8" r="6" fill="none" stroke="currentColor" stroke-width="2" opacity="0.25" /><path d="M14 8a6 6 0 00-6-6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" /></svg>',hl=200;class pl{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"detailsId");p(this,"detailsToggleHandler",null);p(this,"retryHandler",null);p(this,"closeHandler",null);this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("response-message"),this.detailsId=`${this.instanceId}-details`,this.state=this.createInitialState()}render(){if(this.cleanupEventListeners(),this.container.innerHTML="",!this.state.visible){this.container.style.display="none";return}this.container.style.display="";const e=this.config.type??"info";if(this.container.className=this.buildClassName(e),this.container.id=this.instanceId,this.container.setAttribute("role",e==="error"?"alert":"status"),this.container.setAttribute("aria-live",e==="error"?"assertive":"polite"),this.config.ariaLabel&&this.container.setAttribute("aria-label",this.config.ariaLabel),!this.config.hideIcon){const a=this.renderIcon(e);this.container.appendChild(a)}const i=this.renderContent();if(this.container.appendChild(i),this.config.showClose){const a=this.renderCloseButton();this.container.appendChild(a)}}show(){this.state.visible||(this.state={...this.state,visible:!0},this.render())}hide(){var e,i;this.state.visible&&(this.state={...this.state,visible:!1},this.render(),(i=(e=this.callbacks).onClose)==null||i.call(e))}expandDetails(){var e,i;this.state.detailsExpanded||!this.hasDetails()||(this.state={...this.state,detailsExpanded:!0},this.updateDetailsState(),(i=(e=this.callbacks).onExpandDetails)==null||i.call(e))}collapseDetails(){var e,i;this.state.detailsExpanded&&(this.state={...this.state,detailsExpanded:!1},this.updateDetailsState(),(i=(e=this.callbacks).onCollapseDetails)==null||i.call(e))}toggleDetails(){this.state.detailsExpanded?this.collapseDetails():this.expandDetails()}setLoading(e){this.state.loading!==e&&(this.state={...this.state,loading:e},this.updateRetryButtonState())}setMessage(e){this.config={...this.config,message:e},this.render()}setDetails(e){this.config={...this.config,details:e},this.render()}setType(e){this.config={...this.config,type:e},this.render()}update(e){this.config={...this.config,...e},this.render()}getState(){return{...this.state}}isVisible(){return this.state.visible}isDetailsExpanded(){return this.state.detailsExpanded}destroy(){this.cleanupEventListeners(),this.container.innerHTML="",this.container.removeAttribute("role"),this.container.removeAttribute("aria-live"),this.container.removeAttribute("aria-label")}createInitialState(){return{visible:!0,detailsExpanded:!1,loading:!1}}cleanupEventListeners(){const e=this.container.querySelector(".response-message-details-toggle"),i=this.container.querySelector(".response-message-retry"),a=this.container.querySelector(".response-message-close");e&&this.detailsToggleHandler&&e.removeEventListener("click",this.detailsToggleHandler),i&&this.retryHandler&&i.removeEventListener("click",this.retryHandler),a&&this.closeHandler&&a.removeEventListener("click",this.closeHandler),this.detailsToggleHandler=null,this.retryHandler=null,this.closeHandler=null}buildClassName(e){const i=["mokkun-response-message",`response-message-${e}`];return this.config.className&&i.push(this.config.className),i.join(" ")}renderIcon(e){const i=c("div",{className:"response-message-icon",attributes:{"aria-hidden":"true"}});return this.config.icon?i.innerHTML=this.sanitizeSvgIcon(this.config.icon)??Ia[e]:i.innerHTML=Ia[e],i}renderContent(){const e=c("div",{className:"response-message-content"}),i=c("div",{className:"response-message-text",textContent:this.config.message});if(e.appendChild(i),this.hasDetails()||this.config.showRetry){const n=this.renderActions();e.appendChild(n)}if(this.hasDetails()){const n=this.renderDetails();e.appendChild(n)}return e}renderActions(){const e=c("div",{className:"response-message-actions"});if(this.hasDetails()){const i=this.renderDetailsToggle();e.appendChild(i)}if(this.config.showRetry){const i=this.renderRetryButton();e.appendChild(i)}return e}renderDetailsToggle(){const e=this.config.detailsLabel??"詳細",i=c("button",{className:`response-message-details-toggle${this.state.detailsExpanded?" is-expanded":""}`,attributes:{type:"button","aria-expanded":String(this.state.detailsExpanded),"aria-controls":this.detailsId}}),a=c("span",{className:"response-message-details-label",textContent:e});i.appendChild(a);const n=c("span",{className:"response-message-details-chevron"});return n.innerHTML=cl,i.appendChild(n),this.detailsToggleHandler=()=>{this.toggleDetails()},i.addEventListener("click",this.detailsToggleHandler),i}renderRetryButton(){const e=this.config.retryLabel??"再試行",i=c("button",{className:`response-message-retry${this.state.loading?" is-loading":""}`,attributes:{type:"button","aria-disabled":String(this.state.loading)}});this.state.loading&&(i.disabled=!0);const a=c("span",{className:"response-message-retry-icon"});a.innerHTML=this.state.loading?La:Sa,i.appendChild(a);const n=c("span",{className:"response-message-retry-label",textContent:e});return i.appendChild(n),this.retryHandler=async()=>{if(this.state.loading)return;const r=this.callbacks.onRetry;if(r){this.setLoading(!0);try{await r()}finally{this.setLoading(!1)}}},i.addEventListener("click",this.retryHandler),i}renderDetails(){const e=c("div",{className:`response-message-details-wrapper${this.state.detailsExpanded?" is-expanded":""}`}),i=c("div",{className:"response-message-details",attributes:{id:this.detailsId}});this.state.detailsExpanded||i.setAttribute("hidden","");const a=this.config.details;if(Array.isArray(a)){const n=c("ul",{className:"response-message-details-list"});a.forEach(r=>{const s=c("li",{textContent:r});n.appendChild(s)}),i.appendChild(n)}else if(a){const n=c("div",{className:"response-message-details-text",textContent:a});i.appendChild(n)}return e.appendChild(i),e}renderCloseButton(){const e=c("button",{className:"response-message-close",attributes:{type:"button","aria-label":"閉じる"}});return e.innerHTML=ul,this.closeHandler=()=>{this.hide()},e.addEventListener("click",this.closeHandler),e}updateDetailsState(){const e=this.container.querySelector(".response-message-details-toggle"),i=this.container.querySelector(".response-message-details-wrapper"),a=this.container.querySelector(".response-message-details");e&&(e.setAttribute("aria-expanded",String(this.state.detailsExpanded)),this.state.detailsExpanded?e.classList.add("is-expanded"):e.classList.remove("is-expanded")),i&&(this.state.detailsExpanded?i.classList.add("is-expanded"):i.classList.remove("is-expanded")),a&&(this.state.detailsExpanded?a.removeAttribute("hidden"):setTimeout(()=>{this.state.detailsExpanded||a.setAttribute("hidden","")},hl))}updateRetryButtonState(){const e=this.container.querySelector(".response-message-retry"),i=this.container.querySelector(".response-message-retry-icon");e&&(e.disabled=this.state.loading,e.setAttribute("aria-disabled",String(this.state.loading)),this.state.loading?e.classList.add("is-loading"):e.classList.remove("is-loading")),i&&(i.innerHTML=this.state.loading?La:Sa)}hasDetails(){const e=this.config.details;return Array.isArray(e)?e.length>0:!!e}sanitizeSvgIcon(e){const i=e.trim();if(!i.toLowerCase().startsWith("<svg")||!i.toLowerCase().endsWith("</svg>"))return null;const n=new DOMParser().parseFromString(i,"image/svg+xml");if(n.querySelector("parsererror"))return null;const s=n.querySelector("svg");if(!s)return null;["script","foreignObject","iframe","object","embed","use"].forEach(u=>{s.querySelectorAll(u).forEach(h=>h.remove())});const l=["onload","onerror","onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus","onblur","onkeydown","onkeyup","onkeypress","onsubmit","onreset","onchange","oninput","onscroll","onresize","onanimationstart","onanimationend","ontransitionend"];l.forEach(u=>s.removeAttribute(u));const d=s.getAttribute("href")??s.getAttribute("xlink:href");return d&&d.toLowerCase().startsWith("javascript:")&&(s.removeAttribute("href"),s.removeAttribute("xlink:href")),s.querySelectorAll("*").forEach(u=>{l.forEach(m=>u.removeAttribute(m));const h=u.getAttribute("href")??u.getAttribute("xlink:href");h&&h.toLowerCase().startsWith("javascript:")&&(u.removeAttribute("href"),u.removeAttribute("xlink:href"))}),s.outerHTML}static renderField(e){const a=e.variant??"success",n=["success","error","warning","info"].includes(a)?a:"success",s=`
239
+ <div class="mokkun-response-message response-message-${n}" role="status">
240
+ <span class="response-message-icon" aria-hidden="true">${{success:"✓",error:"✕",warning:"⚠",info:"ℹ"}[n]}</span>
241
+ <div class="response-message-content">
242
+ <span class="response-message-text">${g(e.description??e.label)}</span>
251
243
  </div>
252
- <div class="timeline-item">
253
- <div class="timeline-marker"></div>
254
- <div class="timeline-content">
255
- <div class="timeline-time">09:15</div>
256
- <div class="timeline-title">アクティビティ2</div>
244
+ </div>
245
+ `;return $(e,s)}}const Ge={circle:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="6" /></svg>',dot:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="4" /></svg>',check:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M12.416 3.376a.75.75 0 0 1 .208 1.04l-5 7.5a.75.75 0 0 1-1.154.114l-3-3a.75.75 0 0 1 1.06-1.06l2.353 2.353 4.493-6.739a.75.75 0 0 1 1.04-.208Z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',info:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>',clock:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M1 8a7 7 0 1 1 14 0A7 7 0 0 1 1 8Zm7.75-4.25a.75.75 0 0 0-1.5 0V8c0 .414.336.75.75.75h3.25a.75.75 0 0 0 0-1.5h-2.5v-3.5Z" clip-rule="evenodd" /></svg>',star:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.75a.75.75 0 0 1 .692.462l1.41 3.393 3.664.293a.75.75 0 0 1 .428 1.317l-2.791 2.39.853 3.58a.75.75 0 0 1-1.12.814L8 11.95l-3.136 2.05a.75.75 0 0 1-1.12-.815l.853-3.58-2.79-2.39a.75.75 0 0 1 .427-1.316l3.663-.293 1.41-3.393A.75.75 0 0 1 8 1.75Z" clip-rule="evenodd" /></svg>',user:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM12.735 14c.618 0 1.093-.561.872-1.139a6.002 6.002 0 0 0-11.215 0c-.22.578.254 1.139.872 1.139h9.47Z" /></svg>',message:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M1 8.74c0 .983.713 1.825 1.69 1.943.764.092 1.534.164 2.31.216v2.351a.75.75 0 0 0 1.28.53l2.51-2.51c.182-.181.427-.283.684-.287A23.109 23.109 0 0 0 14 10.67c.7-.123 1-.87 1-1.63v-4.6c0-.76-.3-1.51-1-1.63A23.056 23.056 0 0 0 8 2.25c-2.154 0-4.254.147-6 .56-.7.12-1 .87-1 1.63v4.3Z" clip-rule="evenodd" /></svg>'};function ml(t){return t instanceof Date?t:new Date(t)}function fl(t){const e=t.getFullYear(),i=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0");return`${e}/${i}/${a}`}function gl(t,e){if(e==="none")return"";const i=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");if(e==="HH:mm")return`${i}:${a}`;const n=String(t.getSeconds()).padStart(2,"0");return`${i}:${a}:${n}`}function At(t){const i=new DOMParser().parseFromString(t,"text/html");["script","iframe","object","embed","form","input","button","textarea","select","style","link","meta","base","noscript"].forEach(r=>{i.querySelectorAll(r).forEach(s=>s.remove())});const n=["onload","onerror","onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus","onblur","onkeydown","onkeyup","onkeypress","onsubmit","onreset","onchange","oninput","onscroll","onresize","onanimationstart","onanimationend","ontransitionend","oncontextmenu","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","onmouseenter","onmouseleave","onmousemove","onwheel","oncopy","oncut","onpaste","onabort","oncanplay","oncanplaythrough","oncuechange","ondurationchange","onemptied","onended","onloadeddata","onloadedmetadata","onloadstart","onpause","onplay","onplaying","onprogress","onratechange","onseeked","onseeking","onstalled","onsuspend","ontimeupdate","onvolumechange","onwaiting","ontoggle","onpointerdown","onpointerup","onpointermove","onpointerenter","onpointerleave","onpointercancel","ongotpointercapture","onlostpointercapture","ontouchstart","ontouchmove","ontouchend","ontouchcancel"];return i.querySelectorAll("*").forEach(r=>{n.forEach(d=>r.removeAttribute(d));const s=r.getAttribute("href");s&&s.toLowerCase().trim().startsWith("javascript:")&&r.removeAttribute("href");const o=r.getAttribute("src");o&&o.toLowerCase().trim().startsWith("javascript:")&&r.removeAttribute("src"),o&&o.toLowerCase().trim().startsWith("data:")&&r.tagName.toLowerCase()!=="img"&&r.removeAttribute("src");const l=r.getAttribute("style");if(l){const d=l.replace(/javascript:/gi,"").replace(/expression\s*\(/gi,"").replace(/url\s*\(\s*["']?\s*javascript:/gi,"url(");r.setAttribute("style",d)}}),i.body.innerHTML}function bl(t){const e=t.trim();if(!e.toLowerCase().startsWith("<svg")||!e.toLowerCase().endsWith("</svg>"))return null;const a=new DOMParser().parseFromString(e,"image/svg+xml");if(a.querySelector("parsererror"))return null;const r=a.querySelector("svg");if(!r)return null;["script","foreignObject","iframe","object","embed","use"].forEach(d=>{r.querySelectorAll(d).forEach(u=>u.remove())});const o=["onload","onerror","onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus","onblur","onkeydown","onkeyup","onkeypress","onsubmit","onreset","onchange","oninput","onscroll","onresize","onanimationstart","onanimationend","ontransitionend"];o.forEach(d=>r.removeAttribute(d));const l=r.getAttribute("href")??r.getAttribute("xlink:href");return l&&l.toLowerCase().startsWith("javascript:")&&(r.removeAttribute("href"),r.removeAttribute("xlink:href")),r.querySelectorAll("*").forEach(d=>{o.forEach(h=>d.removeAttribute(h));const u=d.getAttribute("href")??d.getAttribute("xlink:href");u&&u.toLowerCase().startsWith("javascript:")&&(d.removeAttribute("href"),d.removeAttribute("xlink:href"))}),r.outerHTML}class vl{constructor(e,i,a={}){p(this,"config");p(this,"container");p(this,"callbacks");p(this,"state");p(this,"itemClickElements",[]);this.container=e,this.config=i,this.callbacks=a,this.state=this.createInitialState()}render(){this.cleanup(),W(this.container),this.container.className="mokkun-timeline",this.container.setAttribute("role","list"),this.container.setAttribute("aria-label","タイムライン");const e=c("ol",{className:"timeline-list"});this.config.items.forEach((i,a)=>{const n=this.renderItem(i,a);e.appendChild(n)}),this.container.appendChild(e)}addItem(e){this.config={...this.config,items:[...this.config.items,e]},this.state=this.createInitialState(),this.render()}removeItem(e){e<0||e>=this.config.items.length||(this.config={...this.config,items:this.config.items.filter((i,a)=>a!==e)},this.state=this.createInitialState(),this.render())}updateItem(e,i){e<0||e>=this.config.items.length||(this.config={...this.config,items:this.config.items.map((a,n)=>n===e?{...a,...i}:a)},this.state=this.createInitialState(),this.render())}getState(){return{...this.state}}getItemCount(){return this.config.items.length}destroy(){this.cleanup(),W(this.container)}createInitialState(){const e=this.config.items.findIndex(i=>i.current);return{itemCount:this.config.items.length,currentIndex:e}}cleanup(){this.itemClickElements.forEach(({element:e,handler:i})=>{e.removeEventListener("click",i)}),this.itemClickElements=[]}renderItem(e,i){const a=i===0,n=i===this.config.items.length-1,r=e.current??!1,s=c("li",{className:["timeline-item",r?"is-current":"",a?"is-first":"",n?"is-last":""].filter(Boolean).join(" ")});s.setAttribute("role","listitem");const o=this.renderMarkerArea(e,n);s.appendChild(o);const l=this.renderContentArea(e,i);return s.appendChild(l),s}renderMarkerArea(e,i){const a=c("div",{className:"timeline-marker-area"}),n=c("span",{className:["timeline-icon",e.current?"is-current":""].filter(Boolean).join(" ")});n.setAttribute("aria-hidden","true"),e.iconColor&&(n.style.color=e.iconColor);const r=this.getIconHtml(e.icon);if(r&&(n.innerHTML=r),a.appendChild(n),!i){const s=c("span",{className:"timeline-line"});a.appendChild(s)}return a}renderContentArea(e,i){const a=c("div",{className:"timeline-content-area"}),n=this.renderHeader(e);if(a.appendChild(n),e.title){const s=c("div",{className:["timeline-title",e.current?"is-current":""].filter(Boolean).join(" "),textContent:e.title});a.appendChild(s)}const r=c("div",{className:"timeline-content"});if(r.innerHTML=At(e.content),a.appendChild(r),this.callbacks.onItemClick){a.classList.add("is-clickable");const s=o=>{var l,d;(d=(l=this.callbacks).onItemClick)==null||d.call(l,i,o)};this.itemClickElements.push({element:a,handler:s}),a.addEventListener("click",s)}return a}renderHeader(e){const i=c("div",{className:"timeline-header"}),a=c("div",{className:"timeline-date-area"}),n=ml(e.datetime),r=e.dateLabel??fl(n),s=c("time",{className:["timeline-date",e.current?"is-current":""].filter(Boolean).join(" "),textContent:r});s.setAttribute("datetime",n.toISOString()),a.appendChild(s);const o=e.timeFormat??"HH:mm";if(o!=="none"){const l=gl(n,o);if(l){const d=c("span",{className:"timeline-time",textContent:l});a.appendChild(d)}}if(e.dateSuffixArea){const l=c("span",{className:"timeline-date-suffix"});l.innerHTML=At(e.dateSuffixArea),a.appendChild(l)}if(i.appendChild(a),e.sideActionArea){const l=c("div",{className:"timeline-side-action"});l.innerHTML=At(e.sideActionArea),i.appendChild(l)}return i}getIconHtml(e){if(!e)return Ge.dot;const i=Ge[e];return i||(bl(e)??Ge.dot)}static renderField(e){const i=e.items,a=Array.isArray(i)&&i.length>0?i:[{time:"10:30",title:"アクティビティ1"},{time:"09:15",title:"アクティビティ2"},{time:"08:00",title:"アクティビティ3"}],n=a.map((s,o)=>{const l=o===a.length-1,d=["timeline-item"];s.current&&d.push("is-current"),o===0&&d.push("is-first"),l&&d.push("is-last");const u=s.description??s.content;return`
246
+ <li class="${d.join(" ")}" role="listitem">
247
+ <div class="timeline-marker-area">
248
+ <span class="timeline-icon${s.current?" is-current":""}" aria-hidden="true">${Ge.dot}</span>
249
+ ${l?"":'<span class="timeline-line"></span>'}
257
250
  </div>
258
- </div>
259
- <div class="timeline-item">
260
- <div class="timeline-marker"></div>
261
- <div class="timeline-content">
262
- <div class="timeline-time">08:00</div>
263
- <div class="timeline-title">アクティビティ3</div>
251
+ <div class="timeline-content-area">
252
+ <div class="timeline-header">
253
+ <div class="timeline-date-area">
254
+ ${s.time?`<time class="timeline-date${s.current?" is-current":""}">${g(String(s.time))}</time>`:""}
255
+ </div>
256
+ </div>
257
+ ${s.title?`<div class="timeline-title${s.current?" is-current":""}">${g(String(s.title))}</div>`:""}
258
+ ${u?`<div class="timeline-content">${g(String(u))}</div>`:""}
264
259
  </div>
265
- </div>
260
+ </li>`}).join(""),r=`
261
+ <div class="mokkun-timeline" role="list" aria-label="${g(e.label||"タイムライン")}">
262
+ <ol class="timeline-list">${n}</ol>
266
263
  </div>
267
- `)}}class Ya{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");this.container=e,this.config={size:"medium",color:"default",deletable:!1,selected:!1,disabled:!1,...i},this.callbacks=n,this.state=this.createInitialState()}createInitialState(){return{selected:this.config.selected??!1,disabled:this.config.disabled??!1}}render(){this.container.innerHTML="";const e=this.renderChip();this.container.appendChild(e)}renderChip(){const e=c("div",{className:`mokkun-chip chip-${this.config.size} chip-${this.config.color}`,attributes:{role:"button","aria-label":this.config.ariaLabel||this.config.label,"aria-pressed":String(this.state.selected),"aria-disabled":String(this.state.disabled),tabindex:this.state.disabled?"-1":"0","data-selected":String(this.state.selected),"data-disabled":String(this.state.disabled),"data-color":this.config.color||"default"}});this.state.disabled||(e.addEventListener("click",s=>{s.target.closest(".chip-delete-button")||this.handleChipClick()}),e.addEventListener("keydown",s=>{if(s.key==="Enter"||s.key===" "){if(s.preventDefault(),s.target.closest(".chip-delete-button"))return;this.handleChipClick()}}));const i=c("div",{className:"chip-content"});if(this.config.icon){const s=c("span",{className:"chip-icon",attributes:{"aria-hidden":"true"}});this.config.icon.startsWith("<")?s.innerHTML=this.config.icon:s.textContent=this.config.icon,i.appendChild(s)}const n=c("span",{className:"chip-label",textContent:this.config.label});if(i.appendChild(n),e.appendChild(i),this.config.deletable){const s=this.renderDeleteButton();e.appendChild(s)}return e}renderDeleteButton(){const e=c("button",{className:"chip-delete-button",attributes:{type:"button","aria-label":`Delete ${this.config.label}`,tabindex:this.state.disabled?"-1":"0"}}),i=c("span",{className:"chip-delete-icon",attributes:{"aria-hidden":"true"},textContent:"×"});return e.appendChild(i),this.state.disabled||(e.addEventListener("click",n=>{n.stopPropagation(),this.handleDelete()}),e.addEventListener("keydown",n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),n.stopPropagation(),this.handleDelete())})),e}handleChipClick(){if(this.state.disabled)return;const e=!this.state.selected;this.setState({selected:e}),this.callbacks.onClick&&this.callbacks.onClick(e,{...this.state})}handleDelete(){this.state.disabled||this.callbacks.onDelete&&this.callbacks.onDelete({...this.state})}setSelected(e){this.setState({selected:e})}setDisabled(e){this.setState({disabled:e})}setState(e){const i={...this.state,...e};JSON.stringify(i)!==JSON.stringify(this.state)&&(this.state=i,this.render())}getState(){return{...this.state}}updateConfig(e){this.config={...this.config,...e},this.render()}static renderField(e){const i=e,n=i.variant??"default",s=i.removable??!1,a=`
268
- <span class="mokkun-chip chip-${n}">
269
- <span class="chip-label">${m(e.label)}</span>
270
- ${s?'<button type="button" class="chip-remove" aria-label="削除">×</button>':""}
264
+ `;return $(e,r)}}const yl=new Set(["default","primary","success","warning","error","info"]);class _l{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");this.container=e,this.config={size:"medium",color:"default",deletable:!1,selected:!1,disabled:!1,...i},this.callbacks=a,this.state=this.createInitialState()}createInitialState(){return{selected:this.config.selected??!1,disabled:this.config.disabled??!1}}render(){this.container.innerHTML="";const e=this.renderChip();this.container.appendChild(e)}renderChip(){const e=c("div",{className:`mokkun-chip chip-${this.config.size} chip-${this.config.color}`,attributes:{role:"button","aria-label":this.config.ariaLabel||this.config.label,"aria-pressed":String(this.state.selected),"aria-disabled":String(this.state.disabled),tabindex:this.state.disabled?"-1":"0","data-selected":String(this.state.selected),"data-disabled":String(this.state.disabled),"data-color":this.config.color||"default"}});this.state.disabled||(e.addEventListener("click",n=>{n.target.closest(".chip-delete-button")||this.handleChipClick()}),e.addEventListener("keydown",n=>{if(n.key==="Enter"||n.key===" "){if(n.preventDefault(),n.target.closest(".chip-delete-button"))return;this.handleChipClick()}}));const i=c("div",{className:"chip-content"});if(this.config.icon){const n=c("span",{className:"chip-icon",attributes:{"aria-hidden":"true"}});this.config.icon.startsWith("<")?n.innerHTML=this.config.icon:n.textContent=this.config.icon,i.appendChild(n)}const a=c("span",{className:"chip-label",textContent:this.config.label});if(i.appendChild(a),e.appendChild(i),this.config.deletable){const n=this.renderDeleteButton();e.appendChild(n)}return e}renderDeleteButton(){const e=c("button",{className:"chip-delete-button",attributes:{type:"button","aria-label":`Delete ${this.config.label}`,tabindex:this.state.disabled?"-1":"0"}}),i=c("span",{className:"chip-delete-icon",attributes:{"aria-hidden":"true"},textContent:"×"});return e.appendChild(i),this.state.disabled||(e.addEventListener("click",a=>{a.stopPropagation(),this.handleDelete()}),e.addEventListener("keydown",a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),a.stopPropagation(),this.handleDelete())})),e}handleChipClick(){if(this.state.disabled)return;const e=!this.state.selected;this.setState({selected:e}),this.callbacks.onClick&&this.callbacks.onClick(e,{...this.state})}handleDelete(){this.state.disabled||this.callbacks.onDelete&&this.callbacks.onDelete({...this.state})}setSelected(e){this.setState({selected:e})}setDisabled(e){this.setState({disabled:e})}setState(e){const i={...this.state,...e};JSON.stringify(i)!==JSON.stringify(this.state)&&(this.state=i,this.render())}getState(){return{...this.state}}updateConfig(e){this.config={...this.config,...e},this.render()}static renderField(e){const i=e,a=i.variant??"default",n=a==="danger"?"error":yl.has(a)?a:"default",r=i.removable??!1,s=e.value??e.label,o=e.value!==void 0&&e.value!=="",l=o&&e.label?`<span class="field-caption">${g(e.label)}</span>`:"",d=o&&e.label?` aria-label="${g(`${e.label}: ${String(s)}`)}"`:"",u=`
265
+ ${l}
266
+ <span class="mokkun-chip chip chip-medium chip-${n}" data-color="${n}"${d}>
267
+ <span class="chip-content">${s!==void 0&&s!==""?`<span class="chip-label">${g(String(s))}</span>`:""}</span>
268
+ ${r?'<button type="button" class="chip-delete-button" aria-label="削除"><span class="chip-delete-icon" aria-hidden="true">×</span></button>':""}
271
269
  </span>
272
- `;return x(e,a)}}const Ga={check:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M12.416 3.376a.75.75 0 0 1 .208 1.04l-5 7.5a.75.75 0 0 1-1.154.114l-3-3a.75.75 0 0 1 1.06-1.06l2.353 2.353 4.493-6.739a.75.75 0 0 1 1.04-.208Z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',info:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>',clock:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M1 8a7 7 0 1 1 14 0A7 7 0 0 1 1 8Zm7.75-4.25a.75.75 0 0 0-1.5 0V8c0 .414.336.75.75.75h3.25a.75.75 0 0 0 0-1.5h-2.5v-3.5Z" clip-rule="evenodd" /></svg>',circle:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="6" /></svg>',dot:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="4" /></svg>'};class Za{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"clickHandler",null);this.config=i,this.container=e,this.callbacks=n,this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.type??"grey",i=this.config.size??"medium",n=this.state.bold,s=this.config.clickable??!1;if(this.container.className=`mokkun-status-label status-label-${e} status-label-${i}`,n&&this.container.classList.add("status-label-bold"),s&&this.container.classList.add("status-label-clickable"),this.container.setAttribute("data-type",e),this.container.setAttribute("data-size",i),n?this.container.setAttribute("data-bold",""):this.container.removeAttribute("data-bold"),this.state.hidden){this.container.setAttribute("data-hidden",""),this.container.style.display="none";return}else this.container.removeAttribute("data-hidden"),this.container.style.display="";const a=this.renderLabel();this.container.appendChild(a),this.clickHandler&&(this.container.removeEventListener("click",this.clickHandler),this.clickHandler=null),s&&this.callbacks.onClick&&(this.clickHandler=this.handleClick.bind(this),this.container.addEventListener("click",this.clickHandler))}setText(e){this.state.text!==e&&(this.state={...this.state,text:e},this.render())}setBold(e){this.state.bold!==e&&(this.state={...this.state,bold:e},this.render())}setHidden(e){this.state.hidden!==e&&(this.state={...this.state,hidden:e},this.render())}getText(){return this.state.text}isBold(){return this.state.bold}getState(){return{...this.state}}destroy(){this.clickHandler&&(this.container.removeEventListener("click",this.clickHandler),this.clickHandler=null),this.container.innerHTML=""}createInitialState(){return{text:this.config.text,bold:this.config.bold??!1,hidden:!1}}renderLabel(){const e=c("span",{className:"status-label-content"});e.setAttribute("role","status");const i=this.getAriaLabel();i&&e.setAttribute("aria-label",i);const n=this.config.iconPosition??"left";if(this.config.icon&&n==="left"){const a=this.renderIcon();a&&e.appendChild(a)}const s=c("span",{className:"status-label-text",textContent:this.state.text});if(e.appendChild(s),this.config.icon&&n==="right"){const a=this.renderIcon();a&&e.appendChild(a)}return e}renderIcon(){if(!this.config.icon)return null;const e=c("span",{className:"status-label-icon",attributes:{"aria-hidden":"true"}}),i=Ga[this.config.icon];if(i)e.innerHTML=i;else{const n=this.sanitizeSvgIcon(this.config.icon);n&&(e.innerHTML=n)}return e}sanitizeSvgIcon(e){const i=e.trim();if(!i.toLowerCase().startsWith("<svg")||!i.toLowerCase().endsWith("</svg>"))return null;const s=new DOMParser().parseFromString(i,"image/svg+xml");if(s.querySelector("parsererror"))return null;const r=s.querySelector("svg");if(!r)return null;["script","foreignObject","iframe","object","embed","use"].forEach(p=>{r.querySelectorAll(p).forEach(u=>u.remove())});const l=["onload","onerror","onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus","onblur","onkeydown","onkeyup","onkeypress","onsubmit","onreset","onchange","oninput","onscroll","onresize","onanimationstart","onanimationend","ontransitionend"];l.forEach(p=>r.removeAttribute(p));const d=r.getAttribute("href")??r.getAttribute("xlink:href");return d&&d.toLowerCase().startsWith("javascript:")&&(r.removeAttribute("href"),r.removeAttribute("xlink:href")),r.querySelectorAll("*").forEach(p=>{l.forEach(f=>p.removeAttribute(f));const u=p.getAttribute("href")??p.getAttribute("xlink:href");u&&u.toLowerCase().startsWith("javascript:")&&(p.removeAttribute("href"),p.removeAttribute("xlink:href"))}),r.outerHTML}getAriaLabel(){return this.config.label?this.config.label:this.state.text}handleClick(e){var i,n;(n=(i=this.callbacks).onClick)==null||n.call(i,e)}static renderField(e){const s=`
273
- <span class="mokkun-status-label status-${e.variant??"default"}">
274
- <span class="status-dot"></span>
275
- <span class="status-text">${m(e.label)}</span>
270
+ `;return $(e,u)}}const xl={check:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M12.416 3.376a.75.75 0 0 1 .208 1.04l-5 7.5a.75.75 0 0 1-1.154.114l-3-3a.75.75 0 0 1 1.06-1.06l2.353 2.353 4.493-6.739a.75.75 0 0 1 1.04-.208Z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',info:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>',clock:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M1 8a7 7 0 1 1 14 0A7 7 0 0 1 1 8Zm7.75-4.25a.75.75 0 0 0-1.5 0V8c0 .414.336.75.75.75h3.25a.75.75 0 0 0 0-1.5h-2.5v-3.5Z" clip-rule="evenodd" /></svg>',circle:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="6" /></svg>',dot:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="4" /></svg>'};class wl{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"clickHandler",null);this.config=i,this.container=e,this.callbacks=a,this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.type??"grey",i=this.config.size??"medium",a=this.state.bold,n=this.config.clickable??!1;if(this.container.className=`mokkun-status-label status-label-${e} status-label-${i}`,a&&this.container.classList.add("status-label-bold"),n&&this.container.classList.add("status-label-clickable"),this.container.setAttribute("data-type",e),this.container.setAttribute("data-size",i),a?this.container.setAttribute("data-bold",""):this.container.removeAttribute("data-bold"),this.state.hidden){this.container.setAttribute("data-hidden",""),this.container.style.display="none";return}else this.container.removeAttribute("data-hidden"),this.container.style.display="";const r=this.renderLabel();this.container.appendChild(r),this.clickHandler&&(this.container.removeEventListener("click",this.clickHandler),this.clickHandler=null),n&&this.callbacks.onClick&&(this.clickHandler=this.handleClick.bind(this),this.container.addEventListener("click",this.clickHandler))}setText(e){this.state.text!==e&&(this.state={...this.state,text:e},this.render())}setBold(e){this.state.bold!==e&&(this.state={...this.state,bold:e},this.render())}setHidden(e){this.state.hidden!==e&&(this.state={...this.state,hidden:e},this.render())}getText(){return this.state.text}isBold(){return this.state.bold}getState(){return{...this.state}}destroy(){this.clickHandler&&(this.container.removeEventListener("click",this.clickHandler),this.clickHandler=null),this.container.innerHTML=""}createInitialState(){return{text:this.config.text,bold:this.config.bold??!1,hidden:!1}}renderLabel(){const e=c("span",{className:"status-label-content"});e.setAttribute("role","status");const i=this.getAriaLabel();i&&e.setAttribute("aria-label",i);const a=this.config.iconPosition??"left";if(this.config.icon&&a==="left"){const r=this.renderIcon();r&&e.appendChild(r)}const n=c("span",{className:"status-label-text",textContent:this.state.text});if(e.appendChild(n),this.config.icon&&a==="right"){const r=this.renderIcon();r&&e.appendChild(r)}return e}renderIcon(){if(!this.config.icon)return null;const e=c("span",{className:"status-label-icon",attributes:{"aria-hidden":"true"}}),i=xl[this.config.icon];if(i)e.innerHTML=i;else{const a=this.sanitizeSvgIcon(this.config.icon);a&&(e.innerHTML=a)}return e}sanitizeSvgIcon(e){const i=e.trim();if(!i.toLowerCase().startsWith("<svg")||!i.toLowerCase().endsWith("</svg>"))return null;const n=new DOMParser().parseFromString(i,"image/svg+xml");if(n.querySelector("parsererror"))return null;const s=n.querySelector("svg");if(!s)return null;["script","foreignObject","iframe","object","embed","use"].forEach(u=>{s.querySelectorAll(u).forEach(h=>h.remove())});const l=["onload","onerror","onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus","onblur","onkeydown","onkeyup","onkeypress","onsubmit","onreset","onchange","oninput","onscroll","onresize","onanimationstart","onanimationend","ontransitionend"];l.forEach(u=>s.removeAttribute(u));const d=s.getAttribute("href")??s.getAttribute("xlink:href");return d&&d.toLowerCase().startsWith("javascript:")&&(s.removeAttribute("href"),s.removeAttribute("xlink:href")),s.querySelectorAll("*").forEach(u=>{l.forEach(m=>u.removeAttribute(m));const h=u.getAttribute("href")??u.getAttribute("xlink:href");h&&h.toLowerCase().startsWith("javascript:")&&(u.removeAttribute("href"),u.removeAttribute("xlink:href"))}),s.outerHTML}getAriaLabel(){return this.config.label?this.config.label:this.state.text}handleClick(e){var i,a;(a=(i=this.callbacks).onClick)==null||a.call(i,e)}static renderField(e){const a=e.variant??"default",n={default:"grey",primary:"blue",success:"green",warning:"yellow",danger:"red",info:"blue"},r=Object.hasOwn(n,a)?n[a]:"grey",s=e.value??e.label,o=e.value!==void 0&&e.value!=="",l=o&&e.label?`<span class="field-caption">${g(e.label)}</span>`:"",d=o&&e.label?` aria-label="${g(`${e.label}: ${String(s)}`)}"`:"",u=`
271
+ ${l}
272
+ <span class="mokkun-status-label status-label status-label-${r} status-label-medium" data-type="${r}"${d}>
273
+ <span class="status-label-content" role="status">${s!==void 0&&s!==""?`<span class="status-label-text">${g(String(s))}</span>`:""}</span>
276
274
  </span>
277
- `;return x(e,s)}}class Ka{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"optionElements",[]);this.config=i,this.container=e,this.callbacks=n,this.state=this.createInitialState()}render(){this.container.innerHTML="",this.optionElements=[];const e=this.config.size??"default";if(this.container.className=`mokkun-segmented-control segmented-${e==="s"?"small":"medium"}`,this.config.fullWidth&&this.container.classList.add("segmented-full-width"),this.container.setAttribute("role","group"),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled"),this.config.width){const n=typeof this.config.width=="number"?`${this.config.width}px`:this.config.width;this.container.style.width=n}else this.config.fullWidth?this.container.style.width="100%":this.container.style.width="";const i=c("div",{className:"segmented-options"});this.config.options.forEach((n,s)=>{const a=this.renderOption(n,s);this.optionElements.push(a),i.appendChild(a)}),this.container.appendChild(i)}setValue(e){if(this.state.disabled)return;const i=this.config.options.find(n=>n.value===e);!i||i.disabled||this.state.selectedValue!==e&&(this.state={...this.state,selectedValue:e},this.render())}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}getValue(){return this.state.selectedValue}isDisabled(){return this.state.disabled}createInitialState(){var i,n;const e=this.config.value??((i=this.config.options.find(s=>!s.disabled))==null?void 0:i.value)??((n=this.config.options[0])==null?void 0:n.value)??"";return{selectedValue:e,disabled:this.config.disabled??!1,focusedIndex:this.config.options.findIndex(s=>s.value===e)}}renderOption(e,i){const n=this.state.selectedValue===e.value,s=this.state.disabled||e.disabled||!1,a=n||this.state.focusedIndex===-1&&i===0||this.state.focusedIndex===i,r=c("button",{className:"segmented-button",attributes:{type:"button","aria-pressed":String(n),"aria-disabled":String(s),tabindex:a&&!s?"0":"-1","data-value":e.value}});if(n&&r.classList.add("selected"),s&&(r.classList.add("disabled"),r.setAttribute("disabled","disabled")),e.icon){const l=c("span",{className:"segmented-icon"});l.innerHTML=e.icon,r.appendChild(l)}const o=c("span",{className:"segmented-label",textContent:e.label});return r.appendChild(o),s||(r.addEventListener("click",l=>{l.preventDefault(),this.handleOptionClick(e.value)}),r.addEventListener("keydown",l=>{this.handleKeyboardNavigation(l)})),r}handleOptionClick(e){var s,a,r,o;if(this.state.disabled)return;const i=this.config.options.find(l=>l.value===e);if(!i||i.disabled||this.state.selectedValue===e)return;const n=this.config.options.findIndex(l=>l.value===e);this.state={...this.state,selectedValue:e,focusedIndex:n},this.render(),this.optionElements[n]&&this.optionElements[n].focus(),(a=(s=this.callbacks).onChange)==null||a.call(s,e,this.state),(o=(r=this.callbacks).onClickOption)==null||o.call(r,e)}handleKeyboardNavigation(e){switch(e.key){case"ArrowRight":case"ArrowDown":e.preventDefault(),this.focusNextOption();break;case"ArrowLeft":case"ArrowUp":e.preventDefault(),this.focusPreviousOption();break;case"Home":e.preventDefault(),this.focusFirstOption();break;case"End":e.preventDefault(),this.focusLastOption();break;case" ":case"Enter":e.preventDefault();const n=e.currentTarget.getAttribute("data-value");n&&this.handleOptionClick(n);break}}focusNextOption(){let e=this.state.focusedIndex+1;for(;e<this.config.options.length;){if(!this.config.options[e].disabled){this.focusOption(e);return}e++}this.focusFirstOption()}focusPreviousOption(){let e=this.state.focusedIndex-1;for(;e>=0;){if(!this.config.options[e].disabled){this.focusOption(e);return}e--}this.focusLastOption()}focusFirstOption(){for(let e=0;e<this.config.options.length;e++)if(!this.config.options[e].disabled){this.focusOption(e);return}}focusLastOption(){for(let e=this.config.options.length-1;e>=0;e--)if(!this.config.options[e].disabled){this.focusOption(e);return}}focusOption(e){e<0||e>=this.config.options.length||this.config.options[e].disabled||(this.state={...this.state,focusedIndex:e},this.optionElements[e]&&(this.optionElements.forEach((n,s)=>{n.setAttribute("tabindex",s===e?"0":"-1")}),this.optionElements[e].focus()))}static renderField(e){var r;const i=e,n=i.options??[],s=i.default??((r=n[0])==null?void 0:r.value),a=`
278
- <div class="mokkun-segmented-control" role="radiogroup" aria-label="${m(e.label)}">
279
- ${n.map(o=>`
280
- <button type="button" class="segment-button ${o.value===s?"active":""}"
281
- role="radio" aria-checked="${o.value===s}"
282
- data-value="${m(o.value)}">
283
- ${m(o.label)}
284
- </button>
285
- `).join("")}
275
+ `;return $(e,u)}}class kl{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"optionElements",[]);this.config=i,this.container=e,this.callbacks=a,this.state=this.createInitialState()}render(){this.container.innerHTML="",this.optionElements=[];const e=this.config.size??"default";if(this.container.className=`mokkun-segmented-control segmented-${e==="s"?"small":"medium"}`,this.config.fullWidth&&this.container.classList.add("segmented-full-width"),this.container.setAttribute("role","group"),this.state.disabled?this.container.setAttribute("data-disabled",""):this.container.removeAttribute("data-disabled"),this.config.width){const a=typeof this.config.width=="number"?`${this.config.width}px`:this.config.width;this.container.style.width=a}else this.config.fullWidth?this.container.style.width="100%":this.container.style.width="";const i=c("div",{className:"segmented-options"});this.config.options.forEach((a,n)=>{const r=this.renderOption(a,n);this.optionElements.push(r),i.appendChild(r)}),this.container.appendChild(i)}setValue(e){if(this.state.disabled)return;const i=this.config.options.find(a=>a.value===e);!i||i.disabled||this.state.selectedValue!==e&&(this.state={...this.state,selectedValue:e},this.render())}setDisabled(e){this.state.disabled!==e&&(this.state={...this.state,disabled:e},this.render())}getState(){return{...this.state}}getValue(){return this.state.selectedValue}isDisabled(){return this.state.disabled}createInitialState(){var i,a;const e=this.config.value??((i=this.config.options.find(n=>!n.disabled))==null?void 0:i.value)??((a=this.config.options[0])==null?void 0:a.value)??"";return{selectedValue:e,disabled:this.config.disabled??!1,focusedIndex:this.config.options.findIndex(n=>n.value===e)}}renderOption(e,i){const a=this.state.selectedValue===e.value,n=this.state.disabled||e.disabled||!1,r=a||this.state.focusedIndex===-1&&i===0||this.state.focusedIndex===i,s=c("button",{className:"segmented-button",attributes:{type:"button","aria-pressed":String(a),"aria-disabled":String(n),tabindex:r&&!n?"0":"-1","data-value":e.value}});if(a&&s.classList.add("selected"),n&&(s.classList.add("disabled"),s.setAttribute("disabled","disabled")),e.icon){const l=c("span",{className:"segmented-icon"});l.innerHTML=e.icon,s.appendChild(l)}const o=c("span",{className:"segmented-label",textContent:e.label});return s.appendChild(o),n||(s.addEventListener("click",l=>{l.preventDefault(),this.handleOptionClick(e.value)}),s.addEventListener("keydown",l=>{this.handleKeyboardNavigation(l)})),s}handleOptionClick(e){var n,r,s,o;if(this.state.disabled)return;const i=this.config.options.find(l=>l.value===e);if(!i||i.disabled||this.state.selectedValue===e)return;const a=this.config.options.findIndex(l=>l.value===e);this.state={...this.state,selectedValue:e,focusedIndex:a},this.render(),this.optionElements[a]&&this.optionElements[a].focus(),(r=(n=this.callbacks).onChange)==null||r.call(n,e,this.state),(o=(s=this.callbacks).onClickOption)==null||o.call(s,e)}handleKeyboardNavigation(e){switch(e.key){case"ArrowRight":case"ArrowDown":e.preventDefault(),this.focusNextOption();break;case"ArrowLeft":case"ArrowUp":e.preventDefault(),this.focusPreviousOption();break;case"Home":e.preventDefault(),this.focusFirstOption();break;case"End":e.preventDefault(),this.focusLastOption();break;case" ":case"Enter":e.preventDefault();const a=e.currentTarget.getAttribute("data-value");a&&this.handleOptionClick(a);break}}focusNextOption(){let e=this.state.focusedIndex+1;for(;e<this.config.options.length;){if(!this.config.options[e].disabled){this.focusOption(e);return}e++}this.focusFirstOption()}focusPreviousOption(){let e=this.state.focusedIndex-1;for(;e>=0;){if(!this.config.options[e].disabled){this.focusOption(e);return}e--}this.focusLastOption()}focusFirstOption(){for(let e=0;e<this.config.options.length;e++)if(!this.config.options[e].disabled){this.focusOption(e);return}}focusLastOption(){for(let e=this.config.options.length-1;e>=0;e--)if(!this.config.options[e].disabled){this.focusOption(e);return}}focusOption(e){e<0||e>=this.config.options.length||this.config.options[e].disabled||(this.state={...this.state,focusedIndex:e},this.optionElements[e]&&(this.optionElements.forEach((a,n)=>{a.setAttribute("tabindex",n===e?"0":"-1")}),this.optionElements[e].focus()))}static renderField(e){var s;const i=e,a=i.options??[],n=i.default??((s=a[0])==null?void 0:s.value),r=`
276
+ <div class="mokkun-segmented-control segmented-medium" role="group"${e.label?` aria-label="${g(e.label)}"`:""}>
277
+ <div class="segmented-options">
278
+ ${a.map(o=>{const l=o.value===n;return`<button type="button" class="segmented-button${l?" selected":""}"
279
+ aria-pressed="${l}" data-value="${g(String(o.value))}"><span class="segmented-label">${g(String(o.label))}</span></button>`}).join("")}
280
+ </div>
281
+ </div>
282
+ `;return $(e,r)}}const Na={refresh:"↻",reload:"↻",sync:"↻",edit:"✎",pencil:"✎",delete:"🗑",trash:"🗑",remove:"✕",add:"+",plus:"+",create:"+",new:"+",search:"🔍",download:"⬇",upload:"⬆",settings:"⚙",setting:"⚙",gear:"⚙",close:"✕",cancel:"✕",x:"✕",check:"✓",save:"✓",ok:"✓",arrow_left:"←",arrow_right:"→",arrow_up:"↑",arrow_down:"↓",back:"←",next:"→",menu:"☰",user:"👤",users:"👥",info:"ℹ",warning:"⚠",error:"⚠",star:"★",home:"⌂",mail:"✉",email:"✉",copy:"⧉",print:"🖨",filter:"⏷",export:"⬆",import:"⬇",eye:"👁",view:"👁",lock:"🔒",calendar:"📅",link:"🔗",help:"?",display:"🖥",bell:"🔔",shield:"🛡",key:"🔑",globe:"🌐",database:"🗄",chart:"📊",clock:"🕒",tag:"🏷",folder:"📁",file:"📄"};function ie(t){if(!t)return"";const e=t.trim().toLowerCase().replace(/[-\s]+/g,"_");return Object.hasOwn(Na,e)?Na[e]:/[^\x00-\x7F]/.test(t)?t:""}function Ke(t,e){const i=ie(t);return i?`<span class="${_a(e)}" aria-hidden="true">${_a(i)}</span>`:""}class Et{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"hashChangeHandler",null);p(this,"lazyLoadCache",new Map);p(this,"loadingTabs",new Set);this.config=e,this.container=i,this.callbacks=a,this.instanceId=N("tabs"),this.state=this.createInitialState()}render(){W(this.container);const e=this.config.position??"top",i=this.config.variant??"default",a=this.config.bordered??!1,n=this.config.scrollable??!1,r=["mokkun-tabs",`tabs-${e}`,`tabs-${i}`,a?"tabs-bordered":"",n?"tabs-scrollable":""].filter(Boolean).join(" ");this.container.className=r;const s=c("div",{className:"tabs-wrapper"});(e==="left"||e==="right")&&(s.style.display="flex",s.style.flexDirection=e==="left"?"row":"row-reverse");const o=this.renderTabList();s.appendChild(o);const l=this.renderPanels();s.appendChild(l),this.container.appendChild(s),this.config.syncWithHash&&!this.hashChangeHandler&&this.setupHashSync(),this.loadLazyContent(this.state.activeTabId)}setActiveTab(e){var a,n;const i=this.state.tabs.find(r=>r.id===e);return!i||i.disabled?!1:(this.state.activeTabId===e||(this.state={...this.state,activeTabId:e},this.render(),(n=(a=this.callbacks).onTabChange)==null||n.call(a,e,this.state),this.config.syncWithHash&&this.updateHash(e)),!0)}nextTab(){const e=this.state.tabs.findIndex(i=>i.id===this.state.activeTabId);for(let i=e+1;i<this.state.tabs.length;i++){const a=this.state.tabs[i];if(!a.disabled)return this.setActiveTab(a.id)}for(let i=0;i<e;i++){const a=this.state.tabs[i];if(!a.disabled)return this.setActiveTab(a.id)}return!1}previousTab(){const e=this.state.tabs.findIndex(i=>i.id===this.state.activeTabId);for(let i=e-1;i>=0;i--){const a=this.state.tabs[i];if(!a.disabled)return this.setActiveTab(a.id)}for(let i=this.state.tabs.length-1;i>e;i--){const a=this.state.tabs[i];if(!a.disabled)return this.setActiveTab(a.id)}return!1}getState(){return{...this.state,tabs:this.state.tabs.map(e=>({...e}))}}getActiveTab(){return this.state.tabs.find(e=>e.id===this.state.activeTabId)}addTab(e,i){const a=[...this.state.tabs];i!==void 0&&i>=0&&i<=a.length?a.splice(i,0,e):a.push(e),this.state={...this.state,tabs:a},this.render()}removeTab(e){if(this.state.tabs.findIndex(r=>r.id===e)===-1)return!1;const a=this.state.tabs.filter(r=>r.id!==e);let n=this.state.activeTabId;if(this.state.activeTabId===e&&a.length>0){const r=a.find(s=>!s.disabled);n=(r==null?void 0:r.id)??a[0].id}return this.state={...this.state,tabs:a,activeTabId:n},this.render(),!0}updateTab(e,i){return this.state.tabs.findIndex(n=>n.id===e)===-1?!1:(this.state={...this.state,tabs:this.state.tabs.map(n=>n.id===e?{...n,...i}:n)},this.render(),!0)}createInitialState(){var a,n;let e;return this.config.syncWithHash&&(e=this.getTabIdFromHash()),{activeTabId:e??this.config.defaultActiveTab??((a=this.config.tabs.find(r=>!r.disabled))==null?void 0:a.id)??((n=this.config.tabs[0])==null?void 0:n.id)??"",tabs:[...this.config.tabs]}}renderTabList(){const e=c("div",{className:"tabs-list",attributes:{role:"tablist"}});for(const i of this.state.tabs){const a=this.renderTabButton(i);e.appendChild(a)}return e.addEventListener("keydown",i=>this.handleKeyDown(i)),e}renderTabButton(e){const i=e.id===this.state.activeTabId,a=["tab-button",i?"active":"",e.disabled?"disabled":""].filter(Boolean).join(" "),n=c("button",{className:a,attributes:{type:"button",role:"tab","aria-selected":String(i),"aria-controls":`${this.instanceId}-panel-${e.id}`,id:`${this.instanceId}-tab-${e.id}`,tabindex:i?"0":"-1"}});if(e.disabled&&n.setAttribute("aria-disabled","true"),e.icon){const s=c("span",{className:"tab-icon",attributes:e.iconLabel?{"aria-label":e.iconLabel,role:"img"}:{}});s.innerHTML=e.icon,n.appendChild(s)}const r=c("span",{className:"tab-label",textContent:e.label});if(n.appendChild(r),e.badge!==void 0){const s=c("span",{className:"tab-badge",textContent:String(e.badge)});n.appendChild(s)}return e.disabled||n.addEventListener("click",()=>this.setActiveTab(e.id)),n}renderPanels(){const e=c("div",{className:"tabs-panels"});for(const i of this.state.tabs){const a=this.renderPanel(i);e.appendChild(a)}return e}renderPanel(e){const i=e.id===this.state.activeTabId,a=c("div",{className:`tab-panel ${i?"active":""}`,attributes:{role:"tabpanel",id:`${this.instanceId}-panel-${e.id}`,"aria-labelledby":`${this.instanceId}-tab-${e.id}`,hidden:i?"":"true"}});if(i&&a.removeAttribute("hidden"),e.fields&&this.callbacks.renderFields)this.callbacks.renderFields(e.fields,a);else if(e.content)a.innerHTML=e.content;else if(e.fields)for(const n of e.fields){const r=c("div",{className:"field-placeholder",textContent:`[${n.type}] ${n.label}`});a.appendChild(r)}return a}handleKeyDown(e){const i=this.config.position??"top",a=i==="left"||i==="right";switch(e.key){case"ArrowLeft":a||(e.preventDefault(),this.previousTab());break;case"ArrowRight":a||(e.preventDefault(),this.nextTab());break;case"ArrowUp":a&&(e.preventDefault(),this.previousTab());break;case"ArrowDown":a&&(e.preventDefault(),this.nextTab());break;case"Home":e.preventDefault();const n=this.state.tabs.find(s=>!s.disabled);n&&this.setActiveTab(n.id);break;case"End":e.preventDefault();const r=[...this.state.tabs].reverse().find(s=>!s.disabled);r&&this.setActiveTab(r.id);break}}setupHashSync(){this.hashChangeHandler=()=>{var i,a;const e=this.getTabIdFromHash();if(e&&e!==this.state.activeTabId){const n=this.state.tabs.find(r=>r.id===e);n&&!n.disabled&&(this.state={...this.state,activeTabId:e},this.render(),(a=(i=this.callbacks).onTabChange)==null||a.call(i,e,this.state))}},window.addEventListener("hashchange",this.hashChangeHandler)}getTabIdFromHash(){const e=window.location.hash.slice(1);if(!e)return;const i=this.config.hashPrefix??"";if(i&&e.startsWith(i)){const n=e.slice(i.length),r=this.state.tabs.find(s=>s.id===n);return r&&!r.disabled?n:void 0}const a=this.config.tabs.find(n=>n.id===e);return a&&!a.disabled?e:void 0}updateHash(e){const i=this.config.hashPrefix??"";window.location.hash=`${i}${e}`}loadLazyContent(e){const i=this.state.tabs.find(n=>n.id===e);if(!(i!=null&&i.lazyLoad)||this.lazyLoadCache.has(e)||this.loadingTabs.has(e))return;this.loadingTabs.add(e);const a=this.container.querySelector(`#${this.instanceId}-panel-${e}`);if(a){const n=c("div",{className:"tab-loading",textContent:"読み込み中..."});W(a),a.appendChild(n)}i.lazyLoad(e).then(n=>{this.lazyLoadCache.set(e,n),this.loadingTabs.delete(e);const r=this.container.querySelector(`#${this.instanceId}-panel-${e}`);r&&(r.innerHTML=n)}).catch(n=>{this.loadingTabs.delete(e);const r=this.container.querySelector(`#${this.instanceId}-panel-${e}`);if(r){const s=c("div",{className:"tab-error",textContent:`読み込みに失敗しました: ${n.message}`});W(r),r.appendChild(s)}})}destroy(){this.hashChangeHandler&&(window.removeEventListener("hashchange",this.hashChangeHandler),this.hashChangeHandler=null),this.lazyLoadCache.clear(),this.loadingTabs.clear(),W(this.container)}async refreshTabContent(e){const i=this.state.tabs.find(a=>a.id===e);i!=null&&i.lazyLoad&&(this.lazyLoadCache.delete(e),this.loadLazyContent(e))}static renderField(e){const i=e,a=Array.isArray(i.items)&&i.items.length>0?i.items:Array.isArray(i.tabs)?i.tabs:[];if(a.length===0)return $(e,Et.renderDummy(e));const n=g(`${e.id||"tabs"}`),r=a.map((f,b)=>({...f,_id:String(f.id??`tab-${b+1}`)})),s=i.active??i.default,o=r.find(f=>f._id===s&&!f.disabled)??r.find(f=>!f.disabled)??r[0],l=["top","bottom","left","right"].includes(i.position??"")?i.position:"top",d=["default","pills","underline","bordered","segmented"].includes(i.variant??"")?i.variant:"default",u=r.map((f,b)=>{const y=f===o,_=["tab-button",y?"active":"",f.disabled?"disabled":""].filter(Boolean).join(" "),x=Ke(f.icon,"tab-icon"),w=f.badge!==void 0&&f.badge!==null&&f.badge!==""?`<span class="tab-badge">${g(String(f.badge))}</span>`:"";return`<button type="button" class="${_}" role="tab" id="${n}-tab-${b}" data-tab-index="${b}" aria-selected="${y}" aria-controls="${n}-panel-${b}" tabindex="${y?"0":"-1"}"${f.disabled?' aria-disabled="true" disabled':""}>${x}<span class="tab-label">${g(String(f.label??f._id))}</span>${w}</button>`}).join(""),h=r.map((f,b)=>{const y=f===o;let _="";return Array.isArray(f.fields)&&f.fields.length>0?_=ze(f.fields):f.content&&(_=`<p>${g(String(f.content))}</p>`),`<div class="tab-panel${y?" active":""}" role="tabpanel" id="${n}-panel-${b}" aria-labelledby="${n}-tab-${b}"${y?"":" hidden"}>${_}</div>`}).join(""),m=`
283
+ <div class="mokkun-tabs tabs-${l} tabs-${d}" data-tabs-static>
284
+ <div class="tabs-wrapper">
285
+ <div class="tabs-list" role="tablist"${e.label?` aria-label="${g(e.label)}"`:""}${l==="left"||l==="right"?' aria-orientation="vertical"':""}>${u}</div>
286
+ <div class="tabs-panels">${h}</div>
287
+ </div>
286
288
  </div>
287
- `;return x(e,a)}}class Qa{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"hashChangeHandler",null);h(this,"lazyLoadCache",new Map);h(this,"loadingTabs",new Set);this.config=e,this.container=i,this.callbacks=n,this.instanceId=E("tabs"),this.state=this.createInitialState()}render(){B(this.container);const e=this.config.position??"top",i=this.config.variant??"default",n=this.config.bordered??!1,s=this.config.scrollable??!1,a=["mokkun-tabs",`tabs-${e}`,`tabs-${i}`,n?"tabs-bordered":"",s?"tabs-scrollable":""].filter(Boolean).join(" ");this.container.className=a;const r=c("div",{className:"tabs-wrapper"});(e==="left"||e==="right")&&(r.style.display="flex",r.style.flexDirection=e==="left"?"row":"row-reverse");const o=this.renderTabList();r.appendChild(o);const l=this.renderPanels();r.appendChild(l),this.container.appendChild(r),this.config.syncWithHash&&!this.hashChangeHandler&&this.setupHashSync(),this.loadLazyContent(this.state.activeTabId)}setActiveTab(e){var n,s;const i=this.state.tabs.find(a=>a.id===e);return!i||i.disabled?!1:(this.state.activeTabId===e||(this.state={...this.state,activeTabId:e},this.render(),(s=(n=this.callbacks).onTabChange)==null||s.call(n,e,this.state),this.config.syncWithHash&&this.updateHash(e)),!0)}nextTab(){const e=this.state.tabs.findIndex(i=>i.id===this.state.activeTabId);for(let i=e+1;i<this.state.tabs.length;i++){const n=this.state.tabs[i];if(!n.disabled)return this.setActiveTab(n.id)}for(let i=0;i<e;i++){const n=this.state.tabs[i];if(!n.disabled)return this.setActiveTab(n.id)}return!1}previousTab(){const e=this.state.tabs.findIndex(i=>i.id===this.state.activeTabId);for(let i=e-1;i>=0;i--){const n=this.state.tabs[i];if(!n.disabled)return this.setActiveTab(n.id)}for(let i=this.state.tabs.length-1;i>e;i--){const n=this.state.tabs[i];if(!n.disabled)return this.setActiveTab(n.id)}return!1}getState(){return{...this.state,tabs:this.state.tabs.map(e=>({...e}))}}getActiveTab(){return this.state.tabs.find(e=>e.id===this.state.activeTabId)}addTab(e,i){const n=[...this.state.tabs];i!==void 0&&i>=0&&i<=n.length?n.splice(i,0,e):n.push(e),this.state={...this.state,tabs:n},this.render()}removeTab(e){if(this.state.tabs.findIndex(a=>a.id===e)===-1)return!1;const n=this.state.tabs.filter(a=>a.id!==e);let s=this.state.activeTabId;if(this.state.activeTabId===e&&n.length>0){const a=n.find(r=>!r.disabled);s=(a==null?void 0:a.id)??n[0].id}return this.state={...this.state,tabs:n,activeTabId:s},this.render(),!0}updateTab(e,i){return this.state.tabs.findIndex(s=>s.id===e)===-1?!1:(this.state={...this.state,tabs:this.state.tabs.map(s=>s.id===e?{...s,...i}:s)},this.render(),!0)}createInitialState(){var n,s;let e;return this.config.syncWithHash&&(e=this.getTabIdFromHash()),{activeTabId:e??this.config.defaultActiveTab??((n=this.config.tabs.find(a=>!a.disabled))==null?void 0:n.id)??((s=this.config.tabs[0])==null?void 0:s.id)??"",tabs:[...this.config.tabs]}}renderTabList(){const e=c("div",{className:"tabs-list",attributes:{role:"tablist"}});for(const i of this.state.tabs){const n=this.renderTabButton(i);e.appendChild(n)}return e.addEventListener("keydown",i=>this.handleKeyDown(i)),e}renderTabButton(e){const i=e.id===this.state.activeTabId,n=["tab-button",i?"active":"",e.disabled?"disabled":""].filter(Boolean).join(" "),s=c("button",{className:n,attributes:{type:"button",role:"tab","aria-selected":String(i),"aria-controls":`${this.instanceId}-panel-${e.id}`,id:`${this.instanceId}-tab-${e.id}`,tabindex:i?"0":"-1"}});if(e.disabled&&s.setAttribute("aria-disabled","true"),e.icon){const r=c("span",{className:"tab-icon",attributes:e.iconLabel?{"aria-label":e.iconLabel,role:"img"}:{}});r.innerHTML=e.icon,s.appendChild(r)}const a=c("span",{className:"tab-label",textContent:e.label});if(s.appendChild(a),e.badge!==void 0){const r=c("span",{className:"tab-badge",textContent:String(e.badge)});s.appendChild(r)}return e.disabled||s.addEventListener("click",()=>this.setActiveTab(e.id)),s}renderPanels(){const e=c("div",{className:"tabs-panels"});for(const i of this.state.tabs){const n=this.renderPanel(i);e.appendChild(n)}return e}renderPanel(e){const i=e.id===this.state.activeTabId,n=c("div",{className:`tab-panel ${i?"active":""}`,attributes:{role:"tabpanel",id:`${this.instanceId}-panel-${e.id}`,"aria-labelledby":`${this.instanceId}-tab-${e.id}`,hidden:i?"":"true"}});if(i&&n.removeAttribute("hidden"),e.fields&&this.callbacks.renderFields)this.callbacks.renderFields(e.fields,n);else if(e.content)n.innerHTML=e.content;else if(e.fields)for(const s of e.fields){const a=c("div",{className:"field-placeholder",textContent:`[${s.type}] ${s.label}`});n.appendChild(a)}return n}handleKeyDown(e){const i=this.config.position??"top",n=i==="left"||i==="right";switch(e.key){case"ArrowLeft":n||(e.preventDefault(),this.previousTab());break;case"ArrowRight":n||(e.preventDefault(),this.nextTab());break;case"ArrowUp":n&&(e.preventDefault(),this.previousTab());break;case"ArrowDown":n&&(e.preventDefault(),this.nextTab());break;case"Home":e.preventDefault();const s=this.state.tabs.find(r=>!r.disabled);s&&this.setActiveTab(s.id);break;case"End":e.preventDefault();const a=[...this.state.tabs].reverse().find(r=>!r.disabled);a&&this.setActiveTab(a.id);break}}setupHashSync(){this.hashChangeHandler=()=>{var i,n;const e=this.getTabIdFromHash();if(e&&e!==this.state.activeTabId){const s=this.state.tabs.find(a=>a.id===e);s&&!s.disabled&&(this.state={...this.state,activeTabId:e},this.render(),(n=(i=this.callbacks).onTabChange)==null||n.call(i,e,this.state))}},window.addEventListener("hashchange",this.hashChangeHandler)}getTabIdFromHash(){const e=window.location.hash.slice(1);if(!e)return;const i=this.config.hashPrefix??"";if(i&&e.startsWith(i)){const s=e.slice(i.length),a=this.state.tabs.find(r=>r.id===s);return a&&!a.disabled?s:void 0}const n=this.config.tabs.find(s=>s.id===e);return n&&!n.disabled?e:void 0}updateHash(e){const i=this.config.hashPrefix??"";window.location.hash=`${i}${e}`}loadLazyContent(e){const i=this.state.tabs.find(s=>s.id===e);if(!(i!=null&&i.lazyLoad)||this.lazyLoadCache.has(e)||this.loadingTabs.has(e))return;this.loadingTabs.add(e);const n=this.container.querySelector(`#${this.instanceId}-panel-${e}`);if(n){const s=c("div",{className:"tab-loading",textContent:"読み込み中..."});B(n),n.appendChild(s)}i.lazyLoad(e).then(s=>{this.lazyLoadCache.set(e,s),this.loadingTabs.delete(e);const a=this.container.querySelector(`#${this.instanceId}-panel-${e}`);a&&(a.innerHTML=s)}).catch(s=>{this.loadingTabs.delete(e);const a=this.container.querySelector(`#${this.instanceId}-panel-${e}`);if(a){const r=c("div",{className:"tab-error",textContent:`読み込みに失敗しました: ${s.message}`});B(a),a.appendChild(r)}})}destroy(){this.hashChangeHandler&&(window.removeEventListener("hashchange",this.hashChangeHandler),this.hashChangeHandler=null),this.lazyLoadCache.clear(),this.loadingTabs.clear(),B(this.container)}async refreshTabContent(e){const i=this.state.tabs.find(n=>n.id===e);i!=null&&i.lazyLoad&&(this.lazyLoadCache.delete(e),this.loadLazyContent(e))}static renderField(e){return x(e,`
289
+ `;return $(e,m)}static renderDummy(e){return`
288
290
  <div class="mokkun-tabs">
289
- <div class="tabs-list" role="tablist">
291
+ <div class="tabs-list" role="tablist"${e.label?` aria-label="${g(e.label)}"`:""}>
290
292
  <button type="button" class="tab-button active" role="tab" aria-selected="true">タブ1</button>
291
293
  <button type="button" class="tab-button" role="tab" aria-selected="false">タブ2</button>
292
294
  <button type="button" class="tab-button" role="tab" aria-selected="false">タブ3</button>
293
295
  </div>
294
- <div class="tab-panel" role="tabpanel">
296
+ <div class="tab-panel active" role="tabpanel">
295
297
  <p>タブコンテンツがここに表示されます</p>
296
298
  </div>
297
299
  </div>
298
- `)}}function yi(t){const e=["strong","em","b","i","u","a","br","span","p"],i={a:["href","target","rel"],span:["class"]},s=new DOMParser().parseFromString(t,"text/html");function a(l){if(l.nodeType===Node.TEXT_NODE)return l.cloneNode();if(l.nodeType!==Node.ELEMENT_NODE)return null;const d=l,p=d.tagName.toLowerCase();if(!e.includes(p)){const g=document.createDocumentFragment();for(const y of Array.from(d.childNodes)){const C=a(y);C&&g.appendChild(C)}return g}const u=document.createElement(p),f=i[p]??[];for(const g of f){const y=d.getAttribute(g);if(y!==null){if(g==="href"&&y.toLowerCase().startsWith("javascript:"))continue;u.setAttribute(g,y)}}p==="a"&&u.getAttribute("target")==="_blank"&&u.setAttribute("rel","noopener noreferrer");for(const g of Array.from(d.childNodes)){const y=a(g);y&&u.appendChild(y)}return u}const r=document.createDocumentFragment();for(const l of Array.from(s.body.childNodes)){const d=a(l);d&&r.appendChild(d)}const o=document.createElement("div");return o.appendChild(r),o.innerHTML}function Ze(t){return Number.isInteger(t)&&t>=1&&t<=6}class Ja{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"element",null);h(this,"textElement",null);h(this,"buttonContainer",null);h(this,"expandButton",null);h(this,"collapseButton",null);h(this,"instanceId");h(this,"tooltip",null);h(this,"resizeObserver",null);h(this,"resizeDebounceTimeout",null);h(this,"handleExpand",()=>this.expand());h(this,"handleCollapse",()=>this.collapse());Ze(e.maxLines)||console.warn(`[LineClamp] Invalid maxLines value: ${e.maxLines}. Using default value 2.`),this.config={text:e.text,maxLines:Ze(e.maxLines)?e.maxLines:2,isHtml:e.isHtml??!1,showExpandButton:e.showExpandButton??!1,expandButtonLabel:e.expandButtonLabel??"もっと見る",collapseButtonLabel:e.collapseButtonLabel??"折りたたむ",showTooltip:e.showTooltip??!0,tooltipPosition:e.tooltipPosition??"top",tooltipDelay:e.tooltipDelay??300},this.container=i,this.callbacks=n,this.instanceId=E("line-clamp"),this.state={text:this.config.text,maxLines:this.config.maxLines,expanded:!1,clamped:!1,showExpandButton:this.config.showExpandButton,showTooltip:this.config.showTooltip,tooltipPosition:this.config.tooltipPosition},this.render(),this.setupResizeObserver()}expand(){var e,i,n,s,a,r;this.state.expanded||(this.state={...this.state,expanded:!0},(e=this.element)==null||e.classList.add("expanded"),(i=this.element)==null||i.setAttribute("aria-expanded","true"),this.updateTextStyles(),this.updateExpandButton(),(s=(n=this.callbacks).onExpand)==null||s.call(n),(r=(a=this.callbacks).onToggle)==null||r.call(a,!0))}collapse(){var e,i,n,s,a,r;this.state.expanded&&(this.state={...this.state,expanded:!1},(e=this.element)==null||e.classList.remove("expanded"),(i=this.element)==null||i.setAttribute("aria-expanded","false"),this.updateTextStyles(),this.updateExpandButton(),(s=(n=this.callbacks).onCollapse)==null||s.call(n),(r=(a=this.callbacks).onToggle)==null||r.call(a,!1))}toggle(){this.state.expanded?this.collapse():this.expand()}isExpanded(){return this.state.expanded}setText(e){this.config={...this.config,text:e},this.state={...this.state,text:e},this.updateTextContent(),this.updateClampedState(),this.initializeTooltip()}setMaxLines(e){if(!Ze(e)){console.warn(`[LineClamp] Invalid maxLines value: ${e}. Value must be between 1 and 6.`);return}this.config={...this.config,maxLines:e},this.state={...this.state,maxLines:e},this.updateTextStyles(),this.updateClampedState(),this.initializeTooltip()}getState(){return{...this.state}}setClampedForTesting(e){var i,n;this.state={...this.state,clamped:e},e?(i=this.element)==null||i.classList.add("clamped"):(n=this.element)==null||n.classList.remove("clamped"),this.updateExpandButton(),this.initializeTooltip()}destroy(){this.resizeDebounceTimeout!==null&&(clearTimeout(this.resizeDebounceTimeout),this.resizeDebounceTimeout=null),this.tooltip&&(this.tooltip.destroy(),this.tooltip=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.cleanupButtonListeners(),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.textElement=null,this.buttonContainer=null}render(){this.element=c("div",{className:"mokkun-line-clamp",attributes:{id:this.instanceId,"aria-expanded":"false"}}),this.textElement=c("span",{className:"line-clamp-text",attributes:{id:`${this.instanceId}-text`}}),this.updateTextContent(),this.updateTextStyles(),this.element.appendChild(this.textElement),this.buttonContainer=c("div",{className:"line-clamp-button-container"}),this.element.appendChild(this.buttonContainer),this.container.appendChild(this.element),requestAnimationFrame(()=>{this.updateClampedState(),this.updateExpandButton(),this.initializeTooltip()})}updateTextContent(){this.textElement&&(this.config.isHtml?this.textElement.innerHTML=yi(this.config.text):this.textElement.textContent=this.config.text)}updateTextStyles(){this.textElement&&(this.state.expanded?(this.textElement.style.removeProperty("-webkit-line-clamp"),this.textElement.style.removeProperty("display"),this.textElement.style.removeProperty("-webkit-box-orient"),this.textElement.style.removeProperty("overflow")):(this.textElement.style.setProperty("-webkit-line-clamp",String(this.state.maxLines)),this.textElement.style.setProperty("display","-webkit-box"),this.textElement.style.setProperty("-webkit-box-orient","vertical"),this.textElement.style.setProperty("overflow","hidden")))}updateClampedState(){var i,n;const e=this.checkIfClamped();this.state={...this.state,clamped:e},e?(i=this.element)==null||i.classList.add("clamped"):(n=this.element)==null||n.classList.remove("clamped")}checkIfClamped(){return!this.textElement||this.state.expanded?!1:this.textElement.scrollHeight>this.textElement.clientHeight}cleanupButtonListeners(){this.expandButton&&(this.expandButton.removeEventListener("click",this.handleExpand),this.expandButton=null),this.collapseButton&&(this.collapseButton.removeEventListener("click",this.handleCollapse),this.collapseButton=null)}updateExpandButton(){!this.buttonContainer||!this.config.showExpandButton||(this.cleanupButtonListeners(),this.buttonContainer.innerHTML="",!(!this.state.clamped&&!this.state.expanded)&&(this.state.expanded?(this.collapseButton=c("button",{className:"line-clamp-collapse-button",textContent:this.config.collapseButtonLabel,attributes:{type:"button","aria-controls":`${this.instanceId}-text`,"aria-expanded":"true"}}),this.collapseButton.addEventListener("click",this.handleCollapse),this.buttonContainer.appendChild(this.collapseButton)):(this.expandButton=c("button",{className:"line-clamp-expand-button",textContent:this.config.expandButtonLabel,attributes:{type:"button","aria-controls":`${this.instanceId}-text`,"aria-expanded":"false"}}),this.expandButton.addEventListener("click",this.handleExpand),this.buttonContainer.appendChild(this.expandButton))))}initializeTooltip(){this.tooltip&&(this.tooltip.destroy(),this.tooltip=null),!(!this.config.showTooltip||!this.element)&&this.state.clamped&&(this.tooltip=new mi(this.element,{content:this.config.isHtml?yi(this.config.text):ya(this.config.text),isHtml:this.config.isHtml,position:this.config.tooltipPosition,delay:this.config.tooltipDelay,maxWidth:"400px",markTrigger:!1}))}setupResizeObserver(){!this.textElement||typeof ResizeObserver>"u"||(this.resizeObserver=new ResizeObserver(()=>{this.resizeDebounceTimeout!==null&&clearTimeout(this.resizeDebounceTimeout),this.resizeDebounceTimeout=window.setTimeout(()=>{this.updateClampedState(),this.updateExpandButton(),this.initializeTooltip()},100)}),this.resizeObserver.observe(this.textElement))}static renderField(e){const s=`
300
+ `}}function Cl(t){const e=(r,s)=>Array.from(r.querySelectorAll(s)).filter(o=>o.closest("[data-tabs-static]")===r),i=(r,s,o)=>{const l=Array.from(e(r,'[role="tab"][data-tab-index]')),d=Array.from(e(r,'[role="tabpanel"]'));l.forEach((u,h)=>{const m=h===s;u.classList.toggle("active",m),u.setAttribute("aria-selected",String(m)),u.setAttribute("tabindex",m?"0":"-1"),m&&o&&u.focus()}),d.forEach((u,h)=>{const m=h===s;u.classList.toggle("active",m),m?u.removeAttribute("hidden"):u.setAttribute("hidden","")})},a=r=>{const s=r.target.closest('[role="tab"][data-tab-index]'),o=s==null?void 0:s.closest("[data-tabs-static]");!s||!o||!t.contains(o)||s.hasAttribute("disabled")||i(o,Number(s.dataset.tabIndex),!1)},n=r=>{const s=r.target.closest('[role="tab"][data-tab-index]'),o=s==null?void 0:s.closest("[data-tabs-static]");if(!s||!o||!t.contains(o))return;const l=o.classList.contains("tabs-left")||o.classList.contains("tabs-right"),d=l?"ArrowUp":"ArrowLeft",u=l?"ArrowDown":"ArrowRight";if(![d,u,"ArrowLeft","ArrowRight","Home","End"].includes(r.key)||l&&(r.key==="ArrowLeft"||r.key==="ArrowRight"))return;const m=Array.from(e(o,'[role="tab"][data-tab-index]')).filter(y=>!y.hasAttribute("disabled")),f=m.indexOf(s);if(f<0||m.length===0)return;let b=f;r.key==="Home"?b=0:r.key==="End"?b=m.length-1:r.key===u||!l&&r.key==="ArrowRight"?b=(f+1)%m.length:b=(f-1+m.length)%m.length,r.preventDefault(),i(o,Number(m[b].dataset.tabIndex),!0)};return t.addEventListener("click",a),t.addEventListener("keydown",n),()=>{t.removeEventListener("click",a),t.removeEventListener("keydown",n)}}function Ta(t){const e=["strong","em","b","i","u","a","br","span","p"],i={a:["href","target","rel"],span:["class"]},n=new DOMParser().parseFromString(t,"text/html");function r(l){if(l.nodeType===Node.TEXT_NODE)return l.cloneNode();if(l.nodeType!==Node.ELEMENT_NODE)return null;const d=l,u=d.tagName.toLowerCase();if(!e.includes(u)){const f=document.createDocumentFragment();for(const b of Array.from(d.childNodes)){const y=r(b);y&&f.appendChild(y)}return f}const h=document.createElement(u),m=i[u]??[];for(const f of m){const b=d.getAttribute(f);if(b!==null){if(f==="href"&&b.toLowerCase().startsWith("javascript:"))continue;h.setAttribute(f,b)}}u==="a"&&h.getAttribute("target")==="_blank"&&h.setAttribute("rel","noopener noreferrer");for(const f of Array.from(d.childNodes)){const b=r(f);b&&h.appendChild(b)}return h}const s=document.createDocumentFragment();for(const l of Array.from(n.body.childNodes)){const d=r(l);d&&s.appendChild(d)}const o=document.createElement("div");return o.appendChild(s),o.innerHTML}function It(t){return Number.isInteger(t)&&t>=1&&t<=6}class $l{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"element",null);p(this,"textElement",null);p(this,"buttonContainer",null);p(this,"expandButton",null);p(this,"collapseButton",null);p(this,"instanceId");p(this,"tooltip",null);p(this,"resizeObserver",null);p(this,"resizeDebounceTimeout",null);p(this,"handleExpand",()=>this.expand());p(this,"handleCollapse",()=>this.collapse());It(e.maxLines)||console.warn(`[LineClamp] Invalid maxLines value: ${e.maxLines}. Using default value 2.`),this.config={text:e.text,maxLines:It(e.maxLines)?e.maxLines:2,isHtml:e.isHtml??!1,showExpandButton:e.showExpandButton??!1,expandButtonLabel:e.expandButtonLabel??"もっと見る",collapseButtonLabel:e.collapseButtonLabel??"折りたたむ",showTooltip:e.showTooltip??!0,tooltipPosition:e.tooltipPosition??"top",tooltipDelay:e.tooltipDelay??300},this.container=i,this.callbacks=a,this.instanceId=N("line-clamp"),this.state={text:this.config.text,maxLines:this.config.maxLines,expanded:!1,clamped:!1,showExpandButton:this.config.showExpandButton,showTooltip:this.config.showTooltip,tooltipPosition:this.config.tooltipPosition},this.render(),this.setupResizeObserver()}expand(){var e,i,a,n,r,s;this.state.expanded||(this.state={...this.state,expanded:!0},(e=this.element)==null||e.classList.add("expanded"),(i=this.element)==null||i.setAttribute("aria-expanded","true"),this.updateTextStyles(),this.updateExpandButton(),(n=(a=this.callbacks).onExpand)==null||n.call(a),(s=(r=this.callbacks).onToggle)==null||s.call(r,!0))}collapse(){var e,i,a,n,r,s;this.state.expanded&&(this.state={...this.state,expanded:!1},(e=this.element)==null||e.classList.remove("expanded"),(i=this.element)==null||i.setAttribute("aria-expanded","false"),this.updateTextStyles(),this.updateExpandButton(),(n=(a=this.callbacks).onCollapse)==null||n.call(a),(s=(r=this.callbacks).onToggle)==null||s.call(r,!1))}toggle(){this.state.expanded?this.collapse():this.expand()}isExpanded(){return this.state.expanded}setText(e){this.config={...this.config,text:e},this.state={...this.state,text:e},this.updateTextContent(),this.updateClampedState(),this.initializeTooltip()}setMaxLines(e){if(!It(e)){console.warn(`[LineClamp] Invalid maxLines value: ${e}. Value must be between 1 and 6.`);return}this.config={...this.config,maxLines:e},this.state={...this.state,maxLines:e},this.updateTextStyles(),this.updateClampedState(),this.initializeTooltip()}getState(){return{...this.state}}setClampedForTesting(e){var i,a;this.state={...this.state,clamped:e},e?(i=this.element)==null||i.classList.add("clamped"):(a=this.element)==null||a.classList.remove("clamped"),this.updateExpandButton(),this.initializeTooltip()}destroy(){this.resizeDebounceTimeout!==null&&(clearTimeout(this.resizeDebounceTimeout),this.resizeDebounceTimeout=null),this.tooltip&&(this.tooltip.destroy(),this.tooltip=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.cleanupButtonListeners(),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.textElement=null,this.buttonContainer=null}render(){this.element=c("div",{className:"mokkun-line-clamp",attributes:{id:this.instanceId,"aria-expanded":"false"}}),this.textElement=c("span",{className:"line-clamp-text",attributes:{id:`${this.instanceId}-text`}}),this.updateTextContent(),this.updateTextStyles(),this.element.appendChild(this.textElement),this.buttonContainer=c("div",{className:"line-clamp-button-container"}),this.element.appendChild(this.buttonContainer),this.container.appendChild(this.element),requestAnimationFrame(()=>{this.updateClampedState(),this.updateExpandButton(),this.initializeTooltip()})}updateTextContent(){this.textElement&&(this.config.isHtml?this.textElement.innerHTML=Ta(this.config.text):this.textElement.textContent=this.config.text)}updateTextStyles(){this.textElement&&(this.state.expanded?(this.textElement.style.removeProperty("-webkit-line-clamp"),this.textElement.style.removeProperty("display"),this.textElement.style.removeProperty("-webkit-box-orient"),this.textElement.style.removeProperty("overflow")):(this.textElement.style.setProperty("-webkit-line-clamp",String(this.state.maxLines)),this.textElement.style.setProperty("display","-webkit-box"),this.textElement.style.setProperty("-webkit-box-orient","vertical"),this.textElement.style.setProperty("overflow","hidden")))}updateClampedState(){var i,a;const e=this.checkIfClamped();this.state={...this.state,clamped:e},e?(i=this.element)==null||i.classList.add("clamped"):(a=this.element)==null||a.classList.remove("clamped")}checkIfClamped(){return!this.textElement||this.state.expanded?!1:this.textElement.scrollHeight>this.textElement.clientHeight}cleanupButtonListeners(){this.expandButton&&(this.expandButton.removeEventListener("click",this.handleExpand),this.expandButton=null),this.collapseButton&&(this.collapseButton.removeEventListener("click",this.handleCollapse),this.collapseButton=null)}updateExpandButton(){!this.buttonContainer||!this.config.showExpandButton||(this.cleanupButtonListeners(),this.buttonContainer.innerHTML="",!(!this.state.clamped&&!this.state.expanded)&&(this.state.expanded?(this.collapseButton=c("button",{className:"line-clamp-collapse-button",textContent:this.config.collapseButtonLabel,attributes:{type:"button","aria-controls":`${this.instanceId}-text`,"aria-expanded":"true"}}),this.collapseButton.addEventListener("click",this.handleCollapse),this.buttonContainer.appendChild(this.collapseButton)):(this.expandButton=c("button",{className:"line-clamp-expand-button",textContent:this.config.expandButtonLabel,attributes:{type:"button","aria-controls":`${this.instanceId}-text`,"aria-expanded":"false"}}),this.expandButton.addEventListener("click",this.handleExpand),this.buttonContainer.appendChild(this.expandButton))))}initializeTooltip(){this.tooltip&&(this.tooltip.destroy(),this.tooltip=null),!(!this.config.showTooltip||!this.element)&&this.state.clamped&&(this.tooltip=new Ea(this.element,{content:this.config.isHtml?Ta(this.config.text):jo(this.config.text),isHtml:this.config.isHtml,position:this.config.tooltipPosition,delay:this.config.tooltipDelay,maxWidth:"400px",markTrigger:!1}))}setupResizeObserver(){!this.textElement||typeof ResizeObserver>"u"||(this.resizeObserver=new ResizeObserver(()=>{this.resizeDebounceTimeout!==null&&clearTimeout(this.resizeDebounceTimeout),this.resizeDebounceTimeout=window.setTimeout(()=>{this.updateClampedState(),this.updateExpandButton(),this.initializeTooltip()},100)}),this.resizeObserver.observe(this.textElement))}static renderField(e){const n=`
299
301
  <div class="mokkun-line-clamp" style="-webkit-line-clamp: ${e.lines??3}; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;">
300
- ${m(e.description??"テキストコンテンツがここに表示されます。長いテキストは指定行数で切り詰められます。")}
302
+ ${g(e.description??"テキストコンテンツがここに表示されます。長いテキストは指定行数で切り詰められます。")}
301
303
  </div>
302
- `;return x(e,s)}}class Xa{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"triggerElement",null);h(this,"contentWrapper",null);h(this,"contentElement",null);this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("disclosure"),this.state={isOpen:i.defaultOpen??!1}}render(){this.container.innerHTML="",this.container.className=["mokkun-disclosure",this.state.isOpen?"is-open":"",this.config.className??""].filter(Boolean).join(" "),this.container.id=this.instanceId,this.triggerElement=this.renderTrigger(),this.container.appendChild(this.triggerElement),this.contentWrapper=this.renderContent(),this.container.appendChild(this.contentWrapper)}open(){var e,i,n,s;this.state.isOpen||(this.state={...this.state,isOpen:!0},this.updateUI(),(i=(e=this.callbacks).onOpen)==null||i.call(e),(s=(n=this.callbacks).onChange)==null||s.call(n,!0))}close(){var e,i,n,s;this.state.isOpen&&(this.state={...this.state,isOpen:!1},this.updateUI(),(i=(e=this.callbacks).onClose)==null||i.call(e),(s=(n=this.callbacks).onChange)==null||s.call(n,!1))}toggle(){this.state.isOpen?this.close():this.open()}isOpen(){return this.state.isOpen}getState(){return{...this.state}}setContent(e){this.config={...this.config,content:e},this.contentElement&&(this.contentElement.innerHTML="",typeof e=="string"?this.contentElement.innerHTML=e:this.contentElement.appendChild(e))}setTriggerLabel(e,i){if(this.config={...this.config,triggerLabel:e,triggerLabelOpen:i},this.triggerElement){const n=this.triggerElement.querySelector(".disclosure-trigger-label");n&&(n.textContent=this.getCurrentLabel())}}destroy(){this.container.innerHTML="",this.triggerElement=null,this.contentWrapper=null,this.contentElement=null}renderTrigger(){const e=`${this.instanceId}-trigger`,i=`${this.instanceId}-content`,n=document.createElement("button");n.type="button",n.className="disclosure-trigger",n.id=e,n.setAttribute("aria-expanded",String(this.state.isOpen)),n.setAttribute("aria-controls",i);const s=this.renderIcon();n.appendChild(s);const a=c("span",{className:"disclosure-trigger-label",textContent:this.getCurrentLabel()});return n.appendChild(a),n.addEventListener("click",()=>{this.toggle()}),n.addEventListener("keydown",r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),this.toggle())}),n}renderIcon(){const e=c("span",{className:`disclosure-icon${this.state.isOpen?" is-open":""}`,attributes:{"aria-hidden":"true"}}),i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("width","16"),i.setAttribute("height","16"),i.setAttribute("viewBox","0 0 16 16"),i.setAttribute("fill","currentColor");const n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d","M6 3l5 5-5 5V3z"),i.appendChild(n),e.appendChild(i),e}renderContent(){const e=`${this.instanceId}-content`,i=`${this.instanceId}-trigger`,n=c("div",{className:`disclosure-content-wrapper${this.state.isOpen?" is-open":""}`});return this.contentElement=c("div",{className:"disclosure-content",attributes:{id:e,role:"region","aria-labelledby":i}}),this.state.isOpen||(this.config.visuallyHidden?this.contentElement.setAttribute("aria-hidden","true"):this.contentElement.setAttribute("hidden","")),typeof this.config.content=="string"?this.contentElement.innerHTML=this.config.content:this.contentElement.appendChild(this.config.content),n.appendChild(this.contentElement),n}updateUI(){if(this.state.isOpen?this.container.classList.add("is-open"):this.container.classList.remove("is-open"),this.triggerElement){this.triggerElement.setAttribute("aria-expanded",String(this.state.isOpen));const e=this.triggerElement.querySelector(".disclosure-trigger-label");e&&(e.textContent=this.getCurrentLabel());const i=this.triggerElement.querySelector(".disclosure-icon");i&&(this.state.isOpen?i.classList.add("is-open"):i.classList.remove("is-open"))}this.contentWrapper&&(this.state.isOpen?this.contentWrapper.classList.add("is-open"):this.contentWrapper.classList.remove("is-open")),this.contentElement&&(this.state.isOpen?(this.contentElement.removeAttribute("hidden"),this.contentElement.removeAttribute("aria-hidden")):this.config.visuallyHidden?this.contentElement.setAttribute("aria-hidden","true"):setTimeout(()=>{!this.state.isOpen&&this.contentElement&&this.contentElement.setAttribute("hidden","")},200))}getCurrentLabel(){return this.state.isOpen&&this.config.triggerLabelOpen?this.config.triggerLabelOpen:this.config.triggerLabel}static renderField(e){const i=`
304
+ `;return $(e,n)}}class Al{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"triggerElement",null);p(this,"contentWrapper",null);p(this,"contentElement",null);this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("disclosure"),this.state={isOpen:i.defaultOpen??!1}}render(){this.container.innerHTML="",this.container.className=["mokkun-disclosure",this.state.isOpen?"is-open":"",this.config.className??""].filter(Boolean).join(" "),this.container.id=this.instanceId,this.triggerElement=this.renderTrigger(),this.container.appendChild(this.triggerElement),this.contentWrapper=this.renderContent(),this.container.appendChild(this.contentWrapper)}open(){var e,i,a,n;this.state.isOpen||(this.state={...this.state,isOpen:!0},this.updateUI(),(i=(e=this.callbacks).onOpen)==null||i.call(e),(n=(a=this.callbacks).onChange)==null||n.call(a,!0))}close(){var e,i,a,n;this.state.isOpen&&(this.state={...this.state,isOpen:!1},this.updateUI(),(i=(e=this.callbacks).onClose)==null||i.call(e),(n=(a=this.callbacks).onChange)==null||n.call(a,!1))}toggle(){this.state.isOpen?this.close():this.open()}isOpen(){return this.state.isOpen}getState(){return{...this.state}}setContent(e){this.config={...this.config,content:e},this.contentElement&&(this.contentElement.innerHTML="",typeof e=="string"?this.contentElement.innerHTML=e:this.contentElement.appendChild(e))}setTriggerLabel(e,i){if(this.config={...this.config,triggerLabel:e,triggerLabelOpen:i},this.triggerElement){const a=this.triggerElement.querySelector(".disclosure-trigger-label");a&&(a.textContent=this.getCurrentLabel())}}destroy(){this.container.innerHTML="",this.triggerElement=null,this.contentWrapper=null,this.contentElement=null}renderTrigger(){const e=`${this.instanceId}-trigger`,i=`${this.instanceId}-content`,a=document.createElement("button");a.type="button",a.className="disclosure-trigger",a.id=e,a.setAttribute("aria-expanded",String(this.state.isOpen)),a.setAttribute("aria-controls",i);const n=this.renderIcon();a.appendChild(n);const r=c("span",{className:"disclosure-trigger-label",textContent:this.getCurrentLabel()});return a.appendChild(r),a.addEventListener("click",()=>{this.toggle()}),a.addEventListener("keydown",s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),this.toggle())}),a}renderIcon(){const e=c("span",{className:`disclosure-icon${this.state.isOpen?" is-open":""}`,attributes:{"aria-hidden":"true"}}),i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("width","16"),i.setAttribute("height","16"),i.setAttribute("viewBox","0 0 16 16"),i.setAttribute("fill","currentColor");const a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d","M6 3l5 5-5 5V3z"),i.appendChild(a),e.appendChild(i),e}renderContent(){const e=`${this.instanceId}-content`,i=`${this.instanceId}-trigger`,a=c("div",{className:`disclosure-content-wrapper${this.state.isOpen?" is-open":""}`});return this.contentElement=c("div",{className:"disclosure-content",attributes:{id:e,role:"region","aria-labelledby":i}}),this.state.isOpen||(this.config.visuallyHidden?this.contentElement.setAttribute("aria-hidden","true"):this.contentElement.setAttribute("hidden","")),typeof this.config.content=="string"?this.contentElement.innerHTML=this.config.content:this.contentElement.appendChild(this.config.content),a.appendChild(this.contentElement),a}updateUI(){if(this.state.isOpen?this.container.classList.add("is-open"):this.container.classList.remove("is-open"),this.triggerElement){this.triggerElement.setAttribute("aria-expanded",String(this.state.isOpen));const e=this.triggerElement.querySelector(".disclosure-trigger-label");e&&(e.textContent=this.getCurrentLabel());const i=this.triggerElement.querySelector(".disclosure-icon");i&&(this.state.isOpen?i.classList.add("is-open"):i.classList.remove("is-open"))}this.contentWrapper&&(this.state.isOpen?this.contentWrapper.classList.add("is-open"):this.contentWrapper.classList.remove("is-open")),this.contentElement&&(this.state.isOpen?(this.contentElement.removeAttribute("hidden"),this.contentElement.removeAttribute("aria-hidden")):this.config.visuallyHidden?this.contentElement.setAttribute("aria-hidden","true"):setTimeout(()=>{!this.state.isOpen&&this.contentElement&&this.contentElement.setAttribute("hidden","")},200))}getCurrentLabel(){return this.state.isOpen&&this.config.triggerLabelOpen?this.config.triggerLabelOpen:this.config.triggerLabel}static renderField(e){const i=`
303
305
  <details class="mokkun-disclosure">
304
- <summary class="disclosure-trigger">${m(e.label)}</summary>
306
+ <summary class="disclosure-trigger">${g(e.label)}</summary>
305
307
  <div class="disclosure-content">
306
- <p>${m(e.description??"詳細コンテンツがここに表示されます")}</p>
308
+ <p>${g(e.description??"詳細コンテンツがここに表示されます")}</p>
307
309
  </div>
308
310
  </details>
309
- `;return x(e,i)}}class er{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"itemElements",new Map);this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("accordion"),this.state=this.createInitialState()}render(){this.container.innerHTML="",this.itemElements.clear();const e=this.config.iconPosition??"left",i=this.config.headingType??"blockTitle";this.container.className=["mokkun-accordion-panel",`accordion-icon-${e}`,`accordion-heading-${i}`,this.config.className??""].filter(Boolean).join(" "),this.container.setAttribute("role","region"),this.container.id=this.instanceId,this.config.items.forEach((n,s)=>{const a=this.renderItem(n,s);this.container.appendChild(a)}),this.attachKeyboardEvents()}expand(e){var a,r,o,l;const i=this.config.items.find(d=>d.name===e);if(!i||i.disabled||this.state.expandedItems.includes(e))return;const n=this.config.expandableMultiply??!0,s=[...this.state.expandedItems];n?this.state={...this.state,expandedItems:[...this.state.expandedItems,e]}:(this.state={...this.state,expandedItems:[e]},s.forEach(d=>{var p,u;d!==e&&(this.updateItemState(d,!1),(u=(p=this.callbacks).onCollapse)==null||u.call(p,d))})),this.updateItemState(e,!0),(r=(a=this.callbacks).onExpand)==null||r.call(a,e),(l=(o=this.callbacks).onChange)==null||l.call(o,this.state.expandedItems)}collapse(e){var i,n,s,a;this.state.expandedItems.includes(e)&&(this.state={...this.state,expandedItems:this.state.expandedItems.filter(r=>r!==e)},this.updateItemState(e,!1),(n=(i=this.callbacks).onCollapse)==null||n.call(i,e),(a=(s=this.callbacks).onChange)==null||a.call(s,this.state.expandedItems))}toggle(e){this.state.expandedItems.includes(e)?this.collapse(e):this.expand(e)}expandAll(){var i,n;if(!(this.config.expandableMultiply??!0))return;const e=this.config.items.filter(s=>!s.disabled).map(s=>s.name);this.state={...this.state,expandedItems:e},e.forEach(s=>{this.updateItemState(s,!0)}),(n=(i=this.callbacks).onChange)==null||n.call(i,this.state.expandedItems)}collapseAll(){var i,n;const e=[...this.state.expandedItems];this.state={...this.state,expandedItems:[]},e.forEach(s=>{this.updateItemState(s,!1)}),(n=(i=this.callbacks).onChange)==null||n.call(i,this.state.expandedItems)}isExpanded(e){return this.state.expandedItems.includes(e)}getState(){return{...this.state}}setItems(e){this.config={...this.config,items:e};const i=e.map(n=>n.name);this.state={...this.state,expandedItems:this.state.expandedItems.filter(n=>i.includes(n)),focusedIndex:Math.min(this.state.focusedIndex,e.length-1)},this.render()}destroy(){this.container.innerHTML="",this.itemElements.clear()}createInitialState(){const e=this.config.defaultExpanded??[];return{expandedItems:this.config.expandableMultiply??!0?e.filter(s=>{const a=this.config.items.find(r=>r.name===s);return a&&!a.disabled}):e.slice(0,1).filter(s=>{const a=this.config.items.find(r=>r.name===s);return a&&!a.disabled}),focusedIndex:-1}}renderItem(e,i){const n=this.state.expandedItems.includes(e.name),s=`${this.instanceId}-trigger-${e.name}`,a=`${this.instanceId}-content-${e.name}`,r=c("div",{className:`accordion-item${e.disabled?" is-disabled":""}${n?" is-expanded":""}`,attributes:{"data-name":e.name,"data-index":String(i)}}),o=this.renderTrigger(e,n,s,a);r.appendChild(o);const l=this.renderContent(e,n,a,s);return r.appendChild(l),this.itemElements.set(e.name,{trigger:o,content:l}),r}renderTrigger(e,i,n,s){const a=this.config.iconPosition??"left",r=c("button",{className:"accordion-trigger",attributes:{type:"button",id:n,"aria-expanded":String(i),"aria-controls":s,"aria-disabled":e.disabled?"true":"false",tabindex:e.disabled?"-1":"0"}});if(a==="left"){const l=this.renderIcon(i,a);r.appendChild(l)}if(e.icon){const l=c("span",{className:"accordion-trigger-title-icon"});l.innerHTML=e.icon,r.appendChild(l)}const o=c("span",{className:"accordion-trigger-title",textContent:e.title});if(r.appendChild(o),a==="right"){const l=this.renderIcon(i,a);r.appendChild(l)}return e.disabled||r.addEventListener("click",()=>{this.toggle(e.name)}),r}renderIcon(e,i){const n=c("span",{className:`accordion-icon accordion-icon-${i}${e?" is-expanded":""}`,attributes:{"aria-hidden":"true"}}),s=document.createElementNS("http://www.w3.org/2000/svg","svg");s.setAttribute("width","16"),s.setAttribute("height","16"),s.setAttribute("viewBox","0 0 16 16"),s.setAttribute("fill","currentColor");const a=document.createElementNS("http://www.w3.org/2000/svg","path");return i==="left"?a.setAttribute("d","M6 3l5 5-5 5V3z"):a.setAttribute("d","M3 6l5 5 5-5H3z"),s.appendChild(a),n.appendChild(s),n}renderContent(e,i,n,s){const a=c("div",{className:`accordion-content-wrapper${i?" is-expanded":""}`}),r=c("div",{className:"accordion-content",attributes:{id:n,role:"region","aria-labelledby":s}});return i||r.setAttribute("hidden",""),typeof e.content=="string"?r.innerHTML=e.content:r.appendChild(e.content),a.appendChild(r),a}updateItemState(e,i){const n=this.itemElements.get(e);if(!n)return;const{trigger:s,content:a}=n,r=s.parentElement;s.setAttribute("aria-expanded",String(i));const o=s.querySelector(".accordion-icon");o&&(i?o.classList.add("is-expanded"):o.classList.remove("is-expanded")),i?(r==null||r.classList.add("is-expanded"),a.classList.add("is-expanded")):(r==null||r.classList.remove("is-expanded"),a.classList.remove("is-expanded"));const l=a.querySelector(".accordion-content");l&&(i?l.removeAttribute("hidden"):setTimeout(()=>{this.state.expandedItems.includes(e)||l.setAttribute("hidden","")},200))}attachKeyboardEvents(){this.container.addEventListener("keydown",e=>{var s;const i=e.target;if(!i.classList.contains("accordion-trigger"))return;const n=parseInt(((s=i.closest(".accordion-item"))==null?void 0:s.getAttribute("data-index"))??"-1",10);switch(e.key){case"ArrowDown":e.preventDefault(),this.focusNextItem(n);break;case"ArrowUp":e.preventDefault(),this.focusPreviousItem(n);break;case"Home":e.preventDefault(),this.focusFirstItem();break;case"End":e.preventDefault(),this.focusLastItem();break}})}focusNextItem(e){const i=this.config.items.map((r,o)=>({item:r,index:o})).filter(({item:r})=>!r.disabled),s=(i.findIndex(({index:r})=>r===e)+1)%i.length,a=i[s];a&&this.focusItem(a.item.name)}focusPreviousItem(e){const i=this.config.items.map((r,o)=>({item:r,index:o})).filter(({item:r})=>!r.disabled),n=i.findIndex(({index:r})=>r===e),s=n<=0?i.length-1:n-1,a=i[s];a&&this.focusItem(a.item.name)}focusFirstItem(){const e=this.config.items.find(i=>!i.disabled);e&&this.focusItem(e.name)}focusLastItem(){const e=this.config.items.filter(n=>!n.disabled),i=e[e.length-1];i&&this.focusItem(i.name)}focusItem(e){const i=this.itemElements.get(e);i&&i.trigger.focus()}static renderField(e){const i=`
311
+ `;return $(e,i)}}class El{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"itemElements",new Map);this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("accordion"),this.state=this.createInitialState()}render(){this.container.innerHTML="",this.itemElements.clear();const e=this.config.iconPosition??"left",i=this.config.headingType??"blockTitle";this.container.className=["mokkun-accordion-panel",`accordion-icon-${e}`,`accordion-heading-${i}`,this.config.className??""].filter(Boolean).join(" "),this.container.setAttribute("role","region"),this.container.id=this.instanceId,this.config.items.forEach((a,n)=>{const r=this.renderItem(a,n);this.container.appendChild(r)}),this.attachKeyboardEvents()}expand(e){var r,s,o,l;const i=this.config.items.find(d=>d.name===e);if(!i||i.disabled||this.state.expandedItems.includes(e))return;const a=this.config.expandableMultiply??!0,n=[...this.state.expandedItems];a?this.state={...this.state,expandedItems:[...this.state.expandedItems,e]}:(this.state={...this.state,expandedItems:[e]},n.forEach(d=>{var u,h;d!==e&&(this.updateItemState(d,!1),(h=(u=this.callbacks).onCollapse)==null||h.call(u,d))})),this.updateItemState(e,!0),(s=(r=this.callbacks).onExpand)==null||s.call(r,e),(l=(o=this.callbacks).onChange)==null||l.call(o,this.state.expandedItems)}collapse(e){var i,a,n,r;this.state.expandedItems.includes(e)&&(this.state={...this.state,expandedItems:this.state.expandedItems.filter(s=>s!==e)},this.updateItemState(e,!1),(a=(i=this.callbacks).onCollapse)==null||a.call(i,e),(r=(n=this.callbacks).onChange)==null||r.call(n,this.state.expandedItems))}toggle(e){this.state.expandedItems.includes(e)?this.collapse(e):this.expand(e)}expandAll(){var i,a;if(!(this.config.expandableMultiply??!0))return;const e=this.config.items.filter(n=>!n.disabled).map(n=>n.name);this.state={...this.state,expandedItems:e},e.forEach(n=>{this.updateItemState(n,!0)}),(a=(i=this.callbacks).onChange)==null||a.call(i,this.state.expandedItems)}collapseAll(){var i,a;const e=[...this.state.expandedItems];this.state={...this.state,expandedItems:[]},e.forEach(n=>{this.updateItemState(n,!1)}),(a=(i=this.callbacks).onChange)==null||a.call(i,this.state.expandedItems)}isExpanded(e){return this.state.expandedItems.includes(e)}getState(){return{...this.state}}setItems(e){this.config={...this.config,items:e};const i=e.map(a=>a.name);this.state={...this.state,expandedItems:this.state.expandedItems.filter(a=>i.includes(a)),focusedIndex:Math.min(this.state.focusedIndex,e.length-1)},this.render()}destroy(){this.container.innerHTML="",this.itemElements.clear()}createInitialState(){const e=this.config.defaultExpanded??[];return{expandedItems:this.config.expandableMultiply??!0?e.filter(n=>{const r=this.config.items.find(s=>s.name===n);return r&&!r.disabled}):e.slice(0,1).filter(n=>{const r=this.config.items.find(s=>s.name===n);return r&&!r.disabled}),focusedIndex:-1}}renderItem(e,i){const a=this.state.expandedItems.includes(e.name),n=`${this.instanceId}-trigger-${e.name}`,r=`${this.instanceId}-content-${e.name}`,s=c("div",{className:`accordion-item${e.disabled?" is-disabled":""}${a?" is-expanded":""}`,attributes:{"data-name":e.name,"data-index":String(i)}}),o=this.renderTrigger(e,a,n,r);s.appendChild(o);const l=this.renderContent(e,a,r,n);return s.appendChild(l),this.itemElements.set(e.name,{trigger:o,content:l}),s}renderTrigger(e,i,a,n){const r=this.config.iconPosition??"left",s=c("button",{className:"accordion-trigger",attributes:{type:"button",id:a,"aria-expanded":String(i),"aria-controls":n,"aria-disabled":e.disabled?"true":"false",tabindex:e.disabled?"-1":"0"}});if(r==="left"){const l=this.renderIcon(i,r);s.appendChild(l)}if(e.icon){const l=c("span",{className:"accordion-trigger-title-icon"});l.innerHTML=e.icon,s.appendChild(l)}const o=c("span",{className:"accordion-trigger-title",textContent:e.title});if(s.appendChild(o),r==="right"){const l=this.renderIcon(i,r);s.appendChild(l)}return e.disabled||s.addEventListener("click",()=>{this.toggle(e.name)}),s}renderIcon(e,i){const a=c("span",{className:`accordion-icon accordion-icon-${i}${e?" is-expanded":""}`,attributes:{"aria-hidden":"true"}}),n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width","16"),n.setAttribute("height","16"),n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("fill","currentColor");const r=document.createElementNS("http://www.w3.org/2000/svg","path");return i==="left"?r.setAttribute("d","M6 3l5 5-5 5V3z"):r.setAttribute("d","M3 6l5 5 5-5H3z"),n.appendChild(r),a.appendChild(n),a}renderContent(e,i,a,n){const r=c("div",{className:`accordion-content-wrapper${i?" is-expanded":""}`}),s=c("div",{className:"accordion-content",attributes:{id:a,role:"region","aria-labelledby":n}});return i||s.setAttribute("hidden",""),typeof e.content=="string"?s.innerHTML=e.content:s.appendChild(e.content),r.appendChild(s),r}updateItemState(e,i){const a=this.itemElements.get(e);if(!a)return;const{trigger:n,content:r}=a,s=n.parentElement;n.setAttribute("aria-expanded",String(i));const o=n.querySelector(".accordion-icon");o&&(i?o.classList.add("is-expanded"):o.classList.remove("is-expanded")),i?(s==null||s.classList.add("is-expanded"),r.classList.add("is-expanded")):(s==null||s.classList.remove("is-expanded"),r.classList.remove("is-expanded"));const l=r.querySelector(".accordion-content");l&&(i?l.removeAttribute("hidden"):setTimeout(()=>{this.state.expandedItems.includes(e)||l.setAttribute("hidden","")},200))}attachKeyboardEvents(){this.container.addEventListener("keydown",e=>{var n;const i=e.target;if(!i.classList.contains("accordion-trigger"))return;const a=parseInt(((n=i.closest(".accordion-item"))==null?void 0:n.getAttribute("data-index"))??"-1",10);switch(e.key){case"ArrowDown":e.preventDefault(),this.focusNextItem(a);break;case"ArrowUp":e.preventDefault(),this.focusPreviousItem(a);break;case"Home":e.preventDefault(),this.focusFirstItem();break;case"End":e.preventDefault(),this.focusLastItem();break}})}focusNextItem(e){const i=this.config.items.map((s,o)=>({item:s,index:o})).filter(({item:s})=>!s.disabled),n=(i.findIndex(({index:s})=>s===e)+1)%i.length,r=i[n];r&&this.focusItem(r.item.name)}focusPreviousItem(e){const i=this.config.items.map((s,o)=>({item:s,index:o})).filter(({item:s})=>!s.disabled),a=i.findIndex(({index:s})=>s===e),n=a<=0?i.length-1:a-1,r=i[n];r&&this.focusItem(r.item.name)}focusFirstItem(){const e=this.config.items.find(i=>!i.disabled);e&&this.focusItem(e.name)}focusLastItem(){const e=this.config.items.filter(a=>!a.disabled),i=e[e.length-1];i&&this.focusItem(i.name)}focusItem(e){const i=this.itemElements.get(e);i&&i.trigger.focus()}static renderField(e){const i=e.fields;if(Array.isArray(i)&&i.length>0){const r=`
312
+ <div class="mokkun-accordion">
313
+ <details class="accordion-item"${e.defaultOpen?" open":""}>
314
+ <summary class="accordion-trigger">
315
+ ${e.label?`<span>${g(e.label)}</span>`:""}
316
+ <span class="accordion-icon">▼</span>
317
+ </summary>
318
+ <div class="accordion-content">${ze(i)}</div>
319
+ </details>
320
+ </div>
321
+ `;return $(e,r)}const a=`
310
322
  <div class="mokkun-accordion">
311
323
  <div class="accordion-item">
312
324
  <button type="button" class="accordion-trigger" aria-expanded="false">
313
- <span>${m(e.label)}</span>
325
+ ${e.label?`<span>${g(e.label)}</span>`:""}
314
326
  <span class="accordion-icon">▼</span>
315
327
  </button>
316
328
  <div class="accordion-content" hidden>
317
- <p>${m(e.description??"アコーディオンコンテンツ")}</p>
329
+ <p>${g(e.description??"アコーディオンコンテンツ")}</p>
318
330
  </div>
319
331
  </div>
320
332
  </div>
321
- `;return x(e,i)}}const tr=80,ir=1e3,nr="-20% 0px -60% 0px";class xi{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"observer",null);h(this,"isScrolling",!1);h(this,"scrollTimeout",null);h(this,"documentClickHandler",null);this.validateConfig(e,i),this.config=e,this.container=i,this.callbacks=n,this.state=this.createInitialState()}render(){B(this.container);const e=this.config.mobileMode??"scroll",i=this.config.stickyTop??"0";this.container.className=`mokkun-section-nav section-nav-${e}`,this.container.style.display="block",this.container.style.position="sticky",this.container.style.top=i,this.container.style.zIndex="100";const n=c("div",{className:"section-nav-wrapper"}),s=this.renderNavList();if(n.appendChild(s),e==="dropdown"){const a=this.renderMobileDropdown();n.appendChild(a)}this.container.appendChild(n),this.setupIntersectionObserver()}scrollToSection(e){var o,l;const i=this.state.sections.find(d=>d.id===e);if(!i||i.disabled)return;const n=document.getElementById(e);if(!n)return;this.isScrolling=!0;const s=this.config.scrollOffset??tr,a=this.config.scrollBehavior??"smooth",r=n.getBoundingClientRect().top+window.scrollY-s;window.scrollTo({top:r,behavior:a}),this.state={...this.state,activeSectionId:e},this.updateActiveStyles(),(l=(o=this.callbacks).onSectionChange)==null||l.call(o,e,this.getState()),this.scrollTimeout!==null&&window.clearTimeout(this.scrollTimeout),this.scrollTimeout=window.setTimeout(()=>{this.isScrolling=!1},ir)}setActiveSection(e){const i=this.state.sections.find(n=>n.id===e);!i||i.disabled||(this.state={...this.state,activeSectionId:e},this.updateActiveStyles())}getState(){return{...this.state,sections:this.state.sections.map(e=>({...e}))}}getActiveSection(){return this.state.sections.find(e=>e.id===this.state.activeSectionId)}addSection(e,i){const n=[...this.state.sections];i!==void 0&&i>=0&&i<=n.length?n.splice(i,0,e):n.push(e),this.state={...this.state,sections:n},this.render()}removeSection(e){if(this.state.sections.findIndex(a=>a.id===e)===-1)return!1;const n=this.state.sections.filter(a=>a.id!==e);let s=this.state.activeSectionId;if(this.state.activeSectionId===e&&n.length>0){const a=n.find(r=>!r.disabled);s=(a==null?void 0:a.id)??n[0].id}return this.state={...this.state,sections:n,activeSectionId:s},this.render(),!0}updateSection(e,i){return this.state.sections.findIndex(s=>s.id===e)===-1?!1:(this.state={...this.state,sections:this.state.sections.map(s=>s.id===e?{...s,...i}:s)},this.render(),!0)}destroy(){this.observer&&(this.observer.disconnect(),this.observer=null),this.scrollTimeout!==null&&(window.clearTimeout(this.scrollTimeout),this.scrollTimeout=null),this.documentClickHandler&&(document.removeEventListener("click",this.documentClickHandler),this.documentClickHandler=null)}validateConfig(e,i){if(!(e!=null&&e.sections)||!Array.isArray(e.sections))throw new Error("SectionNav: config.sections must be an array");if(!(i instanceof HTMLElement))throw new Error("SectionNav: container must be an HTMLElement");if(e.sections.length===0)throw new Error("SectionNav: config.sections must not be empty");for(const n of e.sections){if(!n.id||typeof n.id!="string")throw new Error("SectionNav: Each section must have a valid id");if(!n.label||typeof n.label!="string")throw new Error(`SectionNav: Section "${n.id}" must have a valid label`)}}createInitialState(){var i,n;return{activeSectionId:this.config.defaultActiveSection??((i=this.config.sections.find(s=>!s.disabled))==null?void 0:i.id)??((n=this.config.sections[0])==null?void 0:n.id)??"",sections:[...this.config.sections]}}renderNavList(){const e=c("nav",{className:"section-nav-list",attributes:{"aria-label":"セクションナビゲーション",role:"navigation"}}),i=c("ul",{className:"section-nav-items",attributes:{role:"list"}});for(const n of this.state.sections){const s=this.renderNavItem(n);i.appendChild(s)}return e.appendChild(i),e}renderNavItem(e){const i=e.id===this.state.activeSectionId,n=["section-nav-item",i?"active":"",e.disabled?"disabled":""].filter(Boolean).join(" "),s=c("li",{className:n}),a=c("button",{className:"section-nav-button",attributes:{type:"button","aria-current":i?"location":"","data-section-id":e.id}});if(i||a.removeAttribute("aria-current"),e.disabled&&(a.setAttribute("aria-disabled","true"),a.setAttribute("disabled","true")),e.icon){const o=c("span",{className:"section-nav-icon",textContent:e.icon});a.appendChild(o)}const r=c("span",{className:"section-nav-label",textContent:e.label});return a.appendChild(r),e.disabled||a.addEventListener("click",()=>this.scrollToSection(e.id)),s.appendChild(a),s}renderMobileDropdown(){const e=c("div",{className:"section-nav-dropdown"}),i=this.getActiveSection(),n=c("button",{className:"section-nav-dropdown-trigger",attributes:{type:"button","aria-haspopup":"listbox","aria-expanded":"false"}});if(i!=null&&i.icon){const o=c("span",{className:"section-nav-icon",textContent:i.icon});n.appendChild(o)}const s=c("span",{className:"section-nav-label",textContent:(i==null?void 0:i.label)??"セクション選択"});n.appendChild(s);const a=c("span",{className:"section-nav-chevron",textContent:"▼"});n.appendChild(a);const r=c("ul",{className:"section-nav-dropdown-menu",attributes:{role:"listbox",hidden:"true"}});for(const o of this.state.sections){const l=o.id===this.state.activeSectionId,d=c("li",{className:`section-nav-dropdown-item ${l?"active":""} ${o.disabled?"disabled":""}`,attributes:{role:"option","aria-selected":String(l)}});if(o.icon){const u=c("span",{className:"section-nav-icon",textContent:o.icon});d.appendChild(u)}const p=c("span",{className:"section-nav-label",textContent:o.label});d.appendChild(p),o.disabled||d.addEventListener("click",()=>{this.scrollToSection(o.id),r.setAttribute("hidden","true"),n.setAttribute("aria-expanded","false")}),r.appendChild(d)}return n.addEventListener("click",()=>{const o=n.getAttribute("aria-expanded")==="true";n.setAttribute("aria-expanded",String(!o)),o?r.setAttribute("hidden","true"):r.removeAttribute("hidden")}),this.documentClickHandler=o=>{e.contains(o.target)||(r.setAttribute("hidden","true"),n.setAttribute("aria-expanded","false"))},document.addEventListener("click",this.documentClickHandler),e.appendChild(n),e.appendChild(r),e}setupIntersectionObserver(){this.observer&&this.observer.disconnect();const e=this.config.rootMargin??nr,i=this.config.threshold??0;this.observer=new IntersectionObserver(n=>this.handleIntersection(n),{rootMargin:e,threshold:i});for(const n of this.state.sections){const s=document.getElementById(n.id);s&&this.observer.observe(s)}}handleIntersection(e){var i,n;if(!this.isScrolling){for(const s of e)if(s.isIntersecting){const a=s.target.id,r=this.state.sections.find(o=>o.id===a);r&&!r.disabled&&a!==this.state.activeSectionId&&(this.state={...this.state,activeSectionId:a},this.updateActiveStyles(),(n=(i=this.callbacks).onActiveChange)==null||n.call(i,a,this.getState()))}}}updateActiveStyles(){this.container.querySelectorAll(".section-nav-item").forEach(s=>{const a=s.querySelector(".section-nav-button");(a==null?void 0:a.getAttribute("data-section-id"))===this.state.activeSectionId?(s.classList.add("active"),a==null||a.setAttribute("aria-current","location")):(s.classList.remove("active"),a==null||a.removeAttribute("aria-current"))});const i=this.container.querySelector(".section-nav-dropdown-trigger");if(i){const s=this.getActiveSection(),a=i.querySelector(".section-nav-label"),r=i.querySelector(".section-nav-icon");a&&(a.textContent=(s==null?void 0:s.label)??"セクション選択"),r&&(s!=null&&s.icon)&&(r.textContent=s.icon)}this.container.querySelectorAll(".section-nav-dropdown-item").forEach((s,a)=>{const r=this.state.sections[a];(r==null?void 0:r.id)===this.state.activeSectionId?(s.classList.add("active"),s.setAttribute("aria-selected","true")):(s.classList.remove("active"),s.setAttribute("aria-selected","false"))})}static renderField(e){const i=`
322
- <nav class="mokkun-section-nav" aria-label="${m(e.label)}">
333
+ `;return $(e,a)}}const Il=80,Sl=1e3,Ll="-20% 0px -60% 0px";class Nl{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"observer",null);p(this,"isScrolling",!1);p(this,"scrollTimeout",null);p(this,"documentClickHandler",null);this.validateConfig(e,i),this.config=e,this.container=i,this.callbacks=a,this.state=this.createInitialState()}render(){W(this.container);const e=this.config.mobileMode??"scroll",i=this.config.stickyTop??"0";this.container.className=`mokkun-section-nav section-nav-${e}`,this.container.style.display="block",this.container.style.position="sticky",this.container.style.top=i,this.container.style.zIndex="100";const a=c("div",{className:"section-nav-wrapper"}),n=this.renderNavList();if(a.appendChild(n),e==="dropdown"){const r=this.renderMobileDropdown();a.appendChild(r)}this.container.appendChild(a),this.setupIntersectionObserver()}scrollToSection(e){var o,l;const i=this.state.sections.find(d=>d.id===e);if(!i||i.disabled)return;const a=document.getElementById(e);if(!a)return;this.isScrolling=!0;const n=this.config.scrollOffset??Il,r=this.config.scrollBehavior??"smooth",s=a.getBoundingClientRect().top+window.scrollY-n;window.scrollTo({top:s,behavior:r}),this.state={...this.state,activeSectionId:e},this.updateActiveStyles(),(l=(o=this.callbacks).onSectionChange)==null||l.call(o,e,this.getState()),this.scrollTimeout!==null&&window.clearTimeout(this.scrollTimeout),this.scrollTimeout=window.setTimeout(()=>{this.isScrolling=!1},Sl)}setActiveSection(e){const i=this.state.sections.find(a=>a.id===e);!i||i.disabled||(this.state={...this.state,activeSectionId:e},this.updateActiveStyles())}getState(){return{...this.state,sections:this.state.sections.map(e=>({...e}))}}getActiveSection(){return this.state.sections.find(e=>e.id===this.state.activeSectionId)}addSection(e,i){const a=[...this.state.sections];i!==void 0&&i>=0&&i<=a.length?a.splice(i,0,e):a.push(e),this.state={...this.state,sections:a},this.render()}removeSection(e){if(this.state.sections.findIndex(r=>r.id===e)===-1)return!1;const a=this.state.sections.filter(r=>r.id!==e);let n=this.state.activeSectionId;if(this.state.activeSectionId===e&&a.length>0){const r=a.find(s=>!s.disabled);n=(r==null?void 0:r.id)??a[0].id}return this.state={...this.state,sections:a,activeSectionId:n},this.render(),!0}updateSection(e,i){return this.state.sections.findIndex(n=>n.id===e)===-1?!1:(this.state={...this.state,sections:this.state.sections.map(n=>n.id===e?{...n,...i}:n)},this.render(),!0)}destroy(){this.observer&&(this.observer.disconnect(),this.observer=null),this.scrollTimeout!==null&&(window.clearTimeout(this.scrollTimeout),this.scrollTimeout=null),this.documentClickHandler&&(document.removeEventListener("click",this.documentClickHandler),this.documentClickHandler=null)}validateConfig(e,i){if(!(e!=null&&e.sections)||!Array.isArray(e.sections))throw new Error("SectionNav: config.sections must be an array");if(!(i instanceof HTMLElement))throw new Error("SectionNav: container must be an HTMLElement");if(e.sections.length===0)throw new Error("SectionNav: config.sections must not be empty");for(const a of e.sections){if(!a.id||typeof a.id!="string")throw new Error("SectionNav: Each section must have a valid id");if(!a.label||typeof a.label!="string")throw new Error(`SectionNav: Section "${a.id}" must have a valid label`)}}createInitialState(){var i,a;return{activeSectionId:this.config.defaultActiveSection??((i=this.config.sections.find(n=>!n.disabled))==null?void 0:i.id)??((a=this.config.sections[0])==null?void 0:a.id)??"",sections:[...this.config.sections]}}renderNavList(){const e=c("nav",{className:"section-nav-list",attributes:{"aria-label":"セクションナビゲーション",role:"navigation"}}),i=c("ul",{className:"section-nav-items",attributes:{role:"list"}});for(const a of this.state.sections){const n=this.renderNavItem(a);i.appendChild(n)}return e.appendChild(i),e}renderNavItem(e){const i=e.id===this.state.activeSectionId,a=["section-nav-item",i?"active":"",e.disabled?"disabled":""].filter(Boolean).join(" "),n=c("li",{className:a}),r=c("button",{className:"section-nav-button",attributes:{type:"button","aria-current":i?"location":"","data-section-id":e.id}});if(i||r.removeAttribute("aria-current"),e.disabled&&(r.setAttribute("aria-disabled","true"),r.setAttribute("disabled","true")),e.icon){const o=c("span",{className:"section-nav-icon",textContent:ie(e.icon)});r.appendChild(o)}const s=c("span",{className:"section-nav-label",textContent:e.label});return r.appendChild(s),e.disabled||r.addEventListener("click",()=>this.scrollToSection(e.id)),n.appendChild(r),n}renderMobileDropdown(){const e=c("div",{className:"section-nav-dropdown"}),i=this.getActiveSection(),a=c("button",{className:"section-nav-dropdown-trigger",attributes:{type:"button","aria-haspopup":"listbox","aria-expanded":"false"}});if(i!=null&&i.icon){const o=c("span",{className:"section-nav-icon",textContent:ie(i.icon)});a.appendChild(o)}const n=c("span",{className:"section-nav-label",textContent:(i==null?void 0:i.label)??"セクション選択"});a.appendChild(n);const r=c("span",{className:"section-nav-chevron",textContent:"▼"});a.appendChild(r);const s=c("ul",{className:"section-nav-dropdown-menu",attributes:{role:"listbox",hidden:"true"}});for(const o of this.state.sections){const l=o.id===this.state.activeSectionId,d=c("li",{className:`section-nav-dropdown-item ${l?"active":""} ${o.disabled?"disabled":""}`,attributes:{role:"option","aria-selected":String(l)}});if(o.icon){const h=c("span",{className:"section-nav-icon",textContent:ie(o.icon)});d.appendChild(h)}const u=c("span",{className:"section-nav-label",textContent:o.label});d.appendChild(u),o.disabled||d.addEventListener("click",()=>{this.scrollToSection(o.id),s.setAttribute("hidden","true"),a.setAttribute("aria-expanded","false")}),s.appendChild(d)}return a.addEventListener("click",()=>{const o=a.getAttribute("aria-expanded")==="true";a.setAttribute("aria-expanded",String(!o)),o?s.setAttribute("hidden","true"):s.removeAttribute("hidden")}),this.documentClickHandler=o=>{e.contains(o.target)||(s.setAttribute("hidden","true"),a.setAttribute("aria-expanded","false"))},document.addEventListener("click",this.documentClickHandler),e.appendChild(a),e.appendChild(s),e}setupIntersectionObserver(){this.observer&&this.observer.disconnect();const e=this.config.rootMargin??Ll,i=this.config.threshold??0;this.observer=new IntersectionObserver(a=>this.handleIntersection(a),{rootMargin:e,threshold:i});for(const a of this.state.sections){const n=document.getElementById(a.id);n&&this.observer.observe(n)}}handleIntersection(e){var i,a;if(!this.isScrolling){for(const n of e)if(n.isIntersecting){const r=n.target.id,s=this.state.sections.find(o=>o.id===r);s&&!s.disabled&&r!==this.state.activeSectionId&&(this.state={...this.state,activeSectionId:r},this.updateActiveStyles(),(a=(i=this.callbacks).onActiveChange)==null||a.call(i,r,this.getState()))}}}updateActiveStyles(){this.container.querySelectorAll(".section-nav-item").forEach(n=>{const r=n.querySelector(".section-nav-button");(r==null?void 0:r.getAttribute("data-section-id"))===this.state.activeSectionId?(n.classList.add("active"),r==null||r.setAttribute("aria-current","location")):(n.classList.remove("active"),r==null||r.removeAttribute("aria-current"))});const i=this.container.querySelector(".section-nav-dropdown-trigger");if(i){const n=this.getActiveSection(),r=i.querySelector(".section-nav-label"),s=i.querySelector(".section-nav-icon");r&&(r.textContent=(n==null?void 0:n.label)??"セクション選択"),s&&(n!=null&&n.icon)&&(s.textContent=ie(n.icon))}this.container.querySelectorAll(".section-nav-dropdown-item").forEach((n,r)=>{const s=this.state.sections[r];(s==null?void 0:s.id)===this.state.activeSectionId?(n.classList.add("active"),n.setAttribute("aria-selected","true")):(n.classList.remove("active"),n.setAttribute("aria-selected","false"))})}static renderField(e){const i=e.items;if(Array.isArray(i)&&i.length>0){const n=i.map((r,s)=>{const o=typeof r=="string"?{label:r,href:`#${r}`}:r;return`
334
+ <li class="section-nav-item${s===0?" active":""}">
335
+ <a href="${g(o.href??`#${o.id??""}`)}" class="section-nav-link">${g(String(o.label??""))}</a>
336
+ </li>`}).join("");return $(e,`
337
+ <nav class="mokkun-section-nav"${e.label?` aria-label="${g(e.label)}"`:""}>
338
+ <ul class="section-nav-list">${n}
339
+ </ul>
340
+ </nav>
341
+ `)}const a=`
342
+ <nav class="mokkun-section-nav"${e.label?` aria-label="${g(e.label)}"`:""}>
323
343
  <ul class="section-nav-list">
324
344
  <li class="section-nav-item active">
325
345
  <a href="#section1" class="section-nav-link">セクション1</a>
@@ -332,8 +352,12 @@
332
352
  </li>
333
353
  </ul>
334
354
  </nav>
335
- `;return x(e,i)}}class sr{constructor(e,i={},n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");this.config=i,this.container=e,this.callbacks=n,this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.layout??"horizontal",i=this.config.maxColumns,n=this.config.bordered??!1,s=this.config.striped??!1,a=this.config.compact??!1;this.container.className="mokkun-definition-list",this.container.setAttribute("data-layout",e),i&&this.container.setAttribute("data-columns",String(i)),n&&this.container.classList.add("definition-list-bordered"),s&&this.container.classList.add("definition-list-striped"),a&&this.container.classList.add("definition-list-compact"),this.applyCustomStyles(),this.state.isGrouped&&this.state.groups.length>0?this.renderGroups():this.renderItems(this.state.items)}setItems(e){this.state={...this.state,items:e,groups:[],isGrouped:!1},this.render()}setGroups(e){this.state={...this.state,items:[],groups:e,isGrouped:!0},this.render()}addItem(e){this.state={...this.state,items:[...this.state.items,e]},this.render()}removeItem(e){e<0||e>=this.state.items.length||(this.state={...this.state,items:this.state.items.filter((i,n)=>n!==e)},this.render())}updateItem(e,i){e<0||e>=this.state.items.length||(this.state={...this.state,items:this.state.items.map((n,s)=>s===e?{...n,...i}:n)},this.render())}getState(){return{...this.state}}destroy(){this.container.innerHTML=""}createInitialState(){const e=this.config.items??[],i=this.config.groups??[],n=i.length>0;return{items:n?[]:e,groups:i,isGrouped:n}}applyCustomStyles(){if(this.config.termWidth){const e=typeof this.config.termWidth=="number"?`${this.config.termWidth}px`:this.config.termWidth;this.container.style.setProperty("--definition-term-width",e)}if(this.config.gap){const e=typeof this.config.gap=="number"?`${this.config.gap}px`:this.config.gap;this.container.style.setProperty("--definition-gap",e)}}renderGroups(){this.state.groups.forEach((e,i)=>{const n=this.renderGroup(e,i);this.container.appendChild(n)})}renderGroup(e,i){const n=c("div",{className:"definition-group",attributes:{"data-group-index":String(i)}}),s=c("div",{className:"definition-group-title",textContent:e.title});n.appendChild(s);const a=c("dl",{className:"definition-list-content",attributes:{"aria-label":e.title}});return e.layout&&a.setAttribute("data-layout",e.layout),e.maxColumns&&a.setAttribute("data-columns",String(e.maxColumns)),this.callbacks.onGroupClick&&(n.style.cursor="pointer",n.addEventListener("click",r=>{var o,l;r.target.closest(".definition-item")||(l=(o=this.callbacks).onGroupClick)==null||l.call(o,e,i)})),e.items.forEach((r,o)=>{this.renderItem(r,o).forEach(d=>a.appendChild(d))}),n.appendChild(a),n}renderItems(e){const i=c("dl",{className:"definition-list-content",attributes:{"aria-label":"Definition list"}});e.forEach((n,s)=>{this.renderItem(n,s).forEach(r=>i.appendChild(r))}),this.container.appendChild(i)}renderItem(e,i){const n=[],s=this.config.clickable??!1,a=this.config.emptyText??"-",r=this.config.termStyleType,o=e.className?e.className.replace(/[^a-zA-Z0-9_\-\s]/g,""):"",l=c("div",{className:`definition-item${o?` ${o}`:""}`,attributes:{"data-index":String(i)}});e.fullWidth&&l.setAttribute("data-full-width",""),e.maxColumns&&l.setAttribute("data-columns",String(e.maxColumns));const d=c("dt",{className:`definition-term${r?` term-${r}`:""}`,textContent:e.term}),p=c("dd",{className:"definition-description"});if(e.description===null||e.description===void 0)p.textContent=a,p.classList.add("definition-description-empty");else if(Array.isArray(e.description))if(e.description.length===0)p.textContent=a,p.classList.add("definition-description-empty");else{const u=c("ul",{className:"definition-description-list"});e.description.forEach(f=>{const g=c("li",{textContent:f});u.appendChild(g)}),p.appendChild(u)}else p.textContent=e.description;return s&&this.callbacks.onItemClick&&(l.style.cursor="pointer",l.setAttribute("role","button"),l.setAttribute("tabindex","0"),l.addEventListener("click",()=>{var u,f;(f=(u=this.callbacks).onItemClick)==null||f.call(u,e,i)}),l.addEventListener("keydown",u=>{var f,g;(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),(g=(f=this.callbacks).onItemClick)==null||g.call(f,e,i))})),l.appendChild(d),l.appendChild(p),n.push(l),n}static renderField(e){const n=`
336
- <dl class="mokkun-definition-list" aria-label="${m(e.label)}">
355
+ `;return $(e,a)}}class Tl{constructor(e,i={},a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");this.config=i,this.container=e,this.callbacks=a,this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.layout??"horizontal",i=this.config.maxColumns,a=this.config.bordered??!1,n=this.config.striped??!1,r=this.config.compact??!1;this.container.className="mokkun-definition-list",this.container.setAttribute("data-layout",e),i&&this.container.setAttribute("data-columns",String(i)),a&&this.container.classList.add("definition-list-bordered"),n&&this.container.classList.add("definition-list-striped"),r&&this.container.classList.add("definition-list-compact"),this.applyCustomStyles(),this.state.isGrouped&&this.state.groups.length>0?this.renderGroups():this.renderItems(this.state.items)}setItems(e){this.state={...this.state,items:e,groups:[],isGrouped:!1},this.render()}setGroups(e){this.state={...this.state,items:[],groups:e,isGrouped:!0},this.render()}addItem(e){this.state={...this.state,items:[...this.state.items,e]},this.render()}removeItem(e){e<0||e>=this.state.items.length||(this.state={...this.state,items:this.state.items.filter((i,a)=>a!==e)},this.render())}updateItem(e,i){e<0||e>=this.state.items.length||(this.state={...this.state,items:this.state.items.map((a,n)=>n===e?{...a,...i}:a)},this.render())}getState(){return{...this.state}}destroy(){this.container.innerHTML=""}createInitialState(){const e=this.config.items??[],i=this.config.groups??[],a=i.length>0;return{items:a?[]:e,groups:i,isGrouped:a}}applyCustomStyles(){if(this.config.termWidth){const e=typeof this.config.termWidth=="number"?`${this.config.termWidth}px`:this.config.termWidth;this.container.style.setProperty("--definition-term-width",e)}if(this.config.gap){const e=typeof this.config.gap=="number"?`${this.config.gap}px`:this.config.gap;this.container.style.setProperty("--definition-gap",e)}}renderGroups(){this.state.groups.forEach((e,i)=>{const a=this.renderGroup(e,i);this.container.appendChild(a)})}renderGroup(e,i){const a=c("div",{className:"definition-group",attributes:{"data-group-index":String(i)}}),n=c("div",{className:"definition-group-title",textContent:e.title});a.appendChild(n);const r=c("dl",{className:"definition-list-content",attributes:{"aria-label":e.title}});return e.layout&&r.setAttribute("data-layout",e.layout),e.maxColumns&&r.setAttribute("data-columns",String(e.maxColumns)),this.callbacks.onGroupClick&&(a.style.cursor="pointer",a.addEventListener("click",s=>{var o,l;s.target.closest(".definition-item")||(l=(o=this.callbacks).onGroupClick)==null||l.call(o,e,i)})),e.items.forEach((s,o)=>{this.renderItem(s,o).forEach(d=>r.appendChild(d))}),a.appendChild(r),a}renderItems(e){const i=c("dl",{className:"definition-list-content",attributes:{"aria-label":"Definition list"}});e.forEach((a,n)=>{this.renderItem(a,n).forEach(s=>i.appendChild(s))}),this.container.appendChild(i)}renderItem(e,i){const a=[],n=this.config.clickable??!1,r=this.config.emptyText??"-",s=this.config.termStyleType,o=e.className?e.className.replace(/[^a-zA-Z0-9_\-\s]/g,""):"",l=c("div",{className:`definition-item${o?` ${o}`:""}`,attributes:{"data-index":String(i)}});e.fullWidth&&l.setAttribute("data-full-width",""),e.maxColumns&&l.setAttribute("data-columns",String(e.maxColumns));const d=c("dt",{className:`definition-term${s?` term-${s}`:""}`,textContent:e.term}),u=c("dd",{className:"definition-description"});if(e.description===null||e.description===void 0)u.textContent=r,u.classList.add("definition-description-empty");else if(Array.isArray(e.description))if(e.description.length===0)u.textContent=r,u.classList.add("definition-description-empty");else{const h=c("ul",{className:"definition-description-list"});e.description.forEach(m=>{const f=c("li",{textContent:m});h.appendChild(f)}),u.appendChild(h)}else u.textContent=e.description;return n&&this.callbacks.onItemClick&&(l.style.cursor="pointer",l.setAttribute("role","button"),l.setAttribute("tabindex","0"),l.addEventListener("click",()=>{var h,m;(m=(h=this.callbacks).onItemClick)==null||m.call(h,e,i)}),l.addEventListener("keydown",h=>{var m,f;(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),(f=(m=this.callbacks).onItemClick)==null||f.call(m,e,i))})),l.appendChild(d),l.appendChild(u),a.push(l),a}static renderField(e){const i=g(e.label),a=e.items;if(Array.isArray(a)&&a.length>0){const r=o=>o==null?"":Array.isArray(o)?o.map(r).join("、"):String(o),s=a.map(o=>`
356
+ <div class="definition-item">
357
+ <dt class="definition-term">${g(r(o.term))}</dt>
358
+ <dd class="definition-description">${g(r(o.description))}</dd>
359
+ </div>`).join("");return $(e,`<dl class="mokkun-definition-list" aria-label="${i}">${s}</dl>`)}const n=`
360
+ <dl class="mokkun-definition-list" aria-label="${i}">
337
361
  <div class="definition-item">
338
362
  <dt class="definition-term">項目1</dt>
339
363
  <dd class="definition-description">値1</dd>
@@ -347,150 +371,154 @@
347
371
  <dd class="definition-description">値3</dd>
348
372
  </div>
349
373
  </dl>
350
- `;return x(e,n)}}function Ae(t){if(t)return typeof t=="string"?t:t.type}function ar(t){return t?typeof t=="string"?t==="completed"?"完了":"中断":t.text||(t.type==="completed"?"完了":"中断"):""}function rr(){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 512 512"),t.setAttribute("width","1em"),t.setAttribute("height","1em"),t.setAttribute("fill","currentColor"),t.setAttribute("aria-hidden","true"),t.classList.add("stepper-icon","stepper-icon-check");const e=document.createElementNS("http://www.w3.org/2000/svg","path");return e.setAttribute("d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"),t.appendChild(e),t}function or(){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 512 512"),t.setAttribute("width","1em"),t.setAttribute("height","1em"),t.setAttribute("fill","currentColor"),t.setAttribute("aria-hidden","true"),t.classList.add("stepper-icon","stepper-icon-close");const e=document.createElementNS("http://www.w3.org/2000/svg","path");return e.setAttribute("d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"),t.appendChild(e),t}class lr{constructor(e,i,n={}){h(this,"config");h(this,"container");h(this,"state");this.config=e,this.container=i,this.state=this.createInitialState()}createInitialState(){return{activeIndex:this.config.activeIndex??0,type:this.config.type}}getState(){return{...this.state}}setActiveIndex(e){e>=0&&e<this.config.steps.length&&(this.state={...this.state,activeIndex:e},this.render())}render(){B(this.container),this.container.className=`mokkun-stepper stepper-${this.state.type}`,this.state.type==="horizontal"?this.renderHorizontal():this.renderVertical()}renderHorizontal(){const e=c("ol",{className:"stepper-list stepper-list-horizontal"});e.setAttribute("role","list"),this.config.steps.forEach((n,s)=>{const a=this.renderHorizontalStep(n,s);e.appendChild(a)}),this.container.appendChild(e)}renderHorizontalStep(e,i){const n=i===this.state.activeIndex,s=i<this.state.activeIndex,a=Ae(e.status),r=a==="completed"||s&&!a,o=a==="closed",l=i>0&&(Ae(this.config.steps[i-1].status)==="completed"||i-1<this.state.activeIndex),d=c("li",{className:["stepper-item","stepper-item-horizontal",n?"is-current":"",r?"is-completed":"",o?"is-closed":""].filter(Boolean).join(" ")});n&&d.setAttribute("aria-current","step");const p=c("div",{className:"stepper-label-wrapper"}),u=c("div",{className:"stepper-counter-wrapper"}),f=c("span",{className:["stepper-line","stepper-line-before",l?"is-completed":"",i===0?"is-hidden":""].filter(Boolean).join(" ")});u.appendChild(f);const g=this.renderStepCounter(i,n,e.status);u.appendChild(g);const y=c("span",{className:["stepper-line","stepper-line-after",r?"is-completed":"",i===this.config.steps.length-1?"is-hidden":""].filter(Boolean).join(" ")});u.appendChild(y),p.appendChild(u);const C=c("span",{className:["stepper-label",n?"is-current":"",o?"is-closed":""].filter(Boolean).join(" "),textContent:e.label});return p.appendChild(C),d.appendChild(p),d}renderVertical(){const e=c("ol",{className:"stepper-list stepper-list-vertical"});e.setAttribute("role","list"),this.config.steps.forEach((n,s)=>{const a=this.renderVerticalStep(n,s);e.appendChild(a)}),this.container.appendChild(e)}renderVerticalStep(e,i){const n=i===this.state.activeIndex,s=i<this.state.activeIndex,a=Ae(e.status),r=a==="completed"||s&&!a,o=a==="closed",l=i===this.config.steps.length-1,d=c("li",{className:["stepper-item","stepper-item-vertical",n?"is-current":"",r?"is-completed":"",o?"is-closed":"",l?"is-last":""].filter(Boolean).join(" ")});n&&d.setAttribute("aria-current","step");const p=c("div",{className:"stepper-section"}),u=c("div",{className:"stepper-counter-area"}),f=this.renderStepCounter(i,n,e.status);u.appendChild(f),p.appendChild(u);const g=c("div",{className:"stepper-body"}),y=c("div",{className:["stepper-heading",n?"is-current":"",(r||o)&&!n?"is-inactive":""].filter(Boolean).join(" "),textContent:e.label});if(g.appendChild(y),e.children){const C=c("div",{className:"stepper-inner"});C.innerHTML=e.children,g.appendChild(C)}return p.appendChild(g),d.appendChild(p),d}renderStepCounter(e,i,n){const s=Ae(n),a=s==="completed"||s==="closed",r=c("span",{className:["stepper-counter",i?"is-current":"",s==="completed"?"is-completed":"",s==="closed"?"is-closed":""].filter(Boolean).join(" ")}),o=c("span",{className:"stepper-number",textContent:String(e+1)});if(o.setAttribute("aria-hidden","true"),r.appendChild(o),a){const l=c("span",{className:"stepper-status-icon"});l.setAttribute("role","img"),l.setAttribute("aria-label",ar(n)),s==="completed"?l.appendChild(rr()):s==="closed"&&l.appendChild(or()),r.appendChild(l)}return r}destroy(){B(this.container)}static renderField(e){return x(e,`
351
- <div class="mokkun-stepper">
374
+ `;return $(e,n)}}function Ze(t){if(t)return typeof t=="string"?t:t.type}function zl(t){return t?typeof t=="string"?t==="completed"?"完了":"中断":t.text||(t.type==="completed"?"完了":"中断"):""}function Dl(){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 512 512"),t.setAttribute("width","1em"),t.setAttribute("height","1em"),t.setAttribute("fill","currentColor"),t.setAttribute("aria-hidden","true"),t.classList.add("stepper-icon","stepper-icon-check");const e=document.createElementNS("http://www.w3.org/2000/svg","path");return e.setAttribute("d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"),t.appendChild(e),t}function Ol(){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 512 512"),t.setAttribute("width","1em"),t.setAttribute("height","1em"),t.setAttribute("fill","currentColor"),t.setAttribute("aria-hidden","true"),t.classList.add("stepper-icon","stepper-icon-close");const e=document.createElementNS("http://www.w3.org/2000/svg","path");return e.setAttribute("d","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"),t.appendChild(e),t}class Ml{constructor(e,i,a={}){p(this,"config");p(this,"container");p(this,"state");this.config=e,this.container=i,this.state=this.createInitialState()}createInitialState(){return{activeIndex:this.config.activeIndex??0,type:this.config.type}}getState(){return{...this.state}}setActiveIndex(e){e>=0&&e<this.config.steps.length&&(this.state={...this.state,activeIndex:e},this.render())}render(){W(this.container),this.container.className=`mokkun-stepper stepper-${this.state.type}`,this.state.type==="horizontal"?this.renderHorizontal():this.renderVertical()}renderHorizontal(){const e=c("ol",{className:"stepper-list stepper-list-horizontal"});e.setAttribute("role","list"),this.config.steps.forEach((a,n)=>{const r=this.renderHorizontalStep(a,n);e.appendChild(r)}),this.container.appendChild(e)}renderHorizontalStep(e,i){const a=i===this.state.activeIndex,n=i<this.state.activeIndex,r=Ze(e.status),s=r==="completed"||n&&!r,o=r==="closed",l=i>0&&(Ze(this.config.steps[i-1].status)==="completed"||i-1<this.state.activeIndex),d=c("li",{className:["stepper-item","stepper-item-horizontal",a?"is-current":"",s?"is-completed":"",o?"is-closed":""].filter(Boolean).join(" ")});a&&d.setAttribute("aria-current","step");const u=c("div",{className:"stepper-label-wrapper"}),h=c("div",{className:"stepper-counter-wrapper"}),m=c("span",{className:["stepper-line","stepper-line-before",l?"is-completed":"",i===0?"is-hidden":""].filter(Boolean).join(" ")});h.appendChild(m);const f=this.renderStepCounter(i,a,e.status);h.appendChild(f);const b=c("span",{className:["stepper-line","stepper-line-after",s?"is-completed":"",i===this.config.steps.length-1?"is-hidden":""].filter(Boolean).join(" ")});h.appendChild(b),u.appendChild(h);const y=c("span",{className:["stepper-label",a?"is-current":"",o?"is-closed":""].filter(Boolean).join(" "),textContent:e.label});return u.appendChild(y),d.appendChild(u),d}renderVertical(){const e=c("ol",{className:"stepper-list stepper-list-vertical"});e.setAttribute("role","list"),this.config.steps.forEach((a,n)=>{const r=this.renderVerticalStep(a,n);e.appendChild(r)}),this.container.appendChild(e)}renderVerticalStep(e,i){const a=i===this.state.activeIndex,n=i<this.state.activeIndex,r=Ze(e.status),s=r==="completed"||n&&!r,o=r==="closed",l=i===this.config.steps.length-1,d=c("li",{className:["stepper-item","stepper-item-vertical",a?"is-current":"",s?"is-completed":"",o?"is-closed":"",l?"is-last":""].filter(Boolean).join(" ")});a&&d.setAttribute("aria-current","step");const u=c("div",{className:"stepper-section"}),h=c("div",{className:"stepper-counter-area"}),m=this.renderStepCounter(i,a,e.status);h.appendChild(m),u.appendChild(h);const f=c("div",{className:"stepper-body"}),b=c("div",{className:["stepper-heading",a?"is-current":"",(s||o)&&!a?"is-inactive":""].filter(Boolean).join(" "),textContent:e.label});if(f.appendChild(b),e.children){const y=c("div",{className:"stepper-inner"});y.innerHTML=e.children,f.appendChild(y)}return u.appendChild(f),d.appendChild(u),d}renderStepCounter(e,i,a){const n=Ze(a),r=n==="completed"||n==="closed",s=c("span",{className:["stepper-counter",i?"is-current":"",n==="completed"?"is-completed":"",n==="closed"?"is-closed":""].filter(Boolean).join(" ")}),o=c("span",{className:"stepper-number",textContent:String(e+1)});if(o.setAttribute("aria-hidden","true"),s.appendChild(o),r){const l=c("span",{className:"stepper-status-icon"});l.setAttribute("role","img"),l.setAttribute("aria-label",zl(a)),n==="completed"?l.appendChild(Dl()):n==="closed"&&l.appendChild(Ol()),s.appendChild(l)}return s}destroy(){W(this.container)}static renderField(e){const i=e;if(Array.isArray(i.steps)&&i.steps.length>0){const n=i.currentStep??0,r=i.steps.map((s,o)=>{var m;const l=typeof s=="string"?{label:s}:s,d=typeof l.status=="string"?l.status:(m=l.status)==null?void 0:m.type,u=["stepper-step"];(l.completed||d==="completed")&&u.push("completed"),d==="closed"&&u.push("closed"),o===n&&u.push("active","current");const h=o<i.steps.length-1?'<div class="stepper-line"></div>':"";return`
375
+ <div class="${u.join(" ")}"${o===n?' aria-current="step"':""}>
376
+ <span class="stepper-step-circle">${o+1}</span>
377
+ <span class="stepper-label">${g(String(l.label??""))}</span>
378
+ </div>${h}`}).join("");return $(e,`<div class="mokkun-stepper stepper-list stepper-list-horizontal">${r}</div>`)}return $(e,`
379
+ <div class="mokkun-stepper stepper-list stepper-list-horizontal">
352
380
  <div class="stepper-step completed">
353
- <div class="step-indicator">1</div>
354
- <div class="step-label">ステップ1</div>
381
+ <span class="stepper-step-circle">1</span>
382
+ <span class="stepper-label">ステップ1</span>
355
383
  </div>
356
- <div class="stepper-connector"></div>
357
- <div class="stepper-step active">
358
- <div class="step-indicator">2</div>
359
- <div class="step-label">ステップ2</div>
384
+ <div class="stepper-line"></div>
385
+ <div class="stepper-step active current">
386
+ <span class="stepper-step-circle">2</span>
387
+ <span class="stepper-label">ステップ2</span>
360
388
  </div>
361
- <div class="stepper-connector"></div>
389
+ <div class="stepper-line"></div>
362
390
  <div class="stepper-step">
363
- <div class="step-indicator">3</div>
364
- <div class="step-label">ステップ3</div>
391
+ <span class="stepper-step-circle">3</span>
392
+ <span class="stepper-label">ステップ3</span>
365
393
  </div>
366
394
  </div>
367
- `)}}const cr={info:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>',success:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm3.844-8.791a.75.75 0 0 0-1.188-.918l-3.7 4.79-1.649-1.833a.75.75 0 1 0-1.114 1.004l2.25 2.5a.75.75 0 0 0 1.151-.043l4.25-5.5Z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',sync:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M13.836 2.477a.75.75 0 0 1 .75.75v3.182a.75.75 0 0 1-.75.75h-3.182a.75.75 0 0 1 0-1.5h1.37l-.84-.841a4.5 4.5 0 0 0-7.08.681.75.75 0 0 1-1.264-.808 6 6 0 0 1 9.44-.908l.84.84v-1.646a.75.75 0 0 1 .75-.75Zm-1.672 9.046a.75.75 0 0 1 1.264.808 6 6 0 0 1-9.44.908l-.84-.84v1.646a.75.75 0 0 1-1.5 0V10.82a.75.75 0 0 1 .75-.75h3.182a.75.75 0 0 1 0 1.5h-1.37l.84.841a4.5 4.5 0 0 0 7.08-.681Z" clip-rule="evenodd" /></svg>'};class dr{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"contentElement",null);this.config=i,this.container=e,this.callbacks=n,this.instanceId=i.id??E("information-panel"),this.state=this.createInitialState()}render(){this.container.innerHTML="",this.contentElement=null;const e=this.config.type??"info",i=this.config.toggleable??!1,n=this.config.bold??!1;if(this.container.className=["mokkun-information-panel",`information-panel-${e}`,i?"information-panel-toggleable":"",n?"information-panel-bold":"",this.state.active?"is-active":"",this.config.className??""].filter(Boolean).join(" "),this.container.id=this.instanceId,this.container.setAttribute("data-type",e),this.state.hidden){this.container.setAttribute("data-hidden",""),this.container.style.display="none";return}else this.container.removeAttribute("data-hidden"),this.container.style.display="";const s=this.renderHeader();this.container.appendChild(s);const a=this.renderContent();this.container.appendChild(a),this.contentElement=a}open(){var e,i;(this.config.toggleable??!1)&&(this.state.active||(this.state={...this.state,active:!0},this.updateActiveState(),(i=(e=this.callbacks).onClickTrigger)==null||i.call(e,!0)))}close(){var e,i;(this.config.toggleable??!1)&&this.state.active&&(this.state={...this.state,active:!1},this.updateActiveState(),(i=(e=this.callbacks).onClickTrigger)==null||i.call(e,!1))}toggle(){this.state.active?this.close():this.open()}isActive(){return this.state.active}hide(){this.state.hidden||(this.state={...this.state,hidden:!0},this.render())}show(){this.state.hidden&&(this.state={...this.state,hidden:!1},this.render())}getState(){return{...this.state}}setTitle(e){this.config={...this.config,title:e},this.render()}setContent(e){this.config={...this.config,content:e},this.render()}setType(e){this.config={...this.config,type:e},this.render()}destroy(){this.container.innerHTML="",this.contentElement=null}createInitialState(){const e=this.config.toggleable??!1,i=this.config.defaultActive??!0;return{active:e?i:!0,hidden:!1}}renderHeader(){const e=c("div",{className:"information-panel-header"}),i=this.renderIcon();e.appendChild(i);const n=this.renderTitle();e.appendChild(n);const s=this.renderActions();return s&&e.appendChild(s),e}renderIcon(){const e=this.config.type??"info",i=c("span",{className:"information-panel-icon",attributes:{"aria-hidden":"true"}});return i.innerHTML=cr[e],i}renderTitle(){const e=this.config.bold??!1,i=this.config.toggleable??!1,n=c("span",{className:`information-panel-title${e?" is-bold":""}`,textContent:this.config.title});return i&&n.setAttribute("id",`${this.instanceId}-title`),n}renderActions(){const e=this.config.toggleable??!1,i=this.config.closable??!1;if(!e&&!i)return null;const n=c("div",{className:"information-panel-actions"});if(e){const s=this.renderToggleButton();n.appendChild(s)}else if(i){const s=this.renderCloseButton();n.appendChild(s)}return n}renderToggleButton(){const e=c("button",{className:"information-panel-toggle",attributes:{type:"button","aria-expanded":String(this.state.active),"aria-controls":`${this.instanceId}-content`}}),i=c("span",{className:"information-panel-toggle-icon",attributes:{"aria-hidden":"true"}}),n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width","16"),n.setAttribute("height","16"),n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("fill","currentColor");const s=document.createElementNS("http://www.w3.org/2000/svg","path");s.setAttribute("d","M3 6l5 5 5-5H3z"),n.appendChild(s),i.appendChild(n),e.appendChild(i);const a=c("span",{className:"information-panel-toggle-text",textContent:this.state.active?"閉じる":"開く"});return e.appendChild(a),e.addEventListener("click",()=>{this.toggle()}),e}renderCloseButton(){const e=c("button",{className:"information-panel-close",attributes:{type:"button","aria-label":"閉じる"}}),i=c("span",{className:"information-panel-close-icon",attributes:{"aria-hidden":"true"}}),n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width","16"),n.setAttribute("height","16"),n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("fill","currentColor");const s=document.createElementNS("http://www.w3.org/2000/svg","path");return s.setAttribute("d","M5.28 4.22a.75.75 0 0 0-1.06 1.06L6.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L8 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L9.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L8 6.94 5.28 4.22Z"),n.appendChild(s),i.appendChild(n),e.appendChild(i),e.addEventListener("click",()=>{var a,r;this.hide(),(r=(a=this.callbacks).onClose)==null||r.call(a)}),e}renderContent(){const e=this.config.toggleable??!1,i=c("div",{className:`information-panel-content-wrapper${this.state.active?" is-active":""}`}),n=c("div",{className:"information-panel-content",attributes:{role:"region"}});return e&&(n.setAttribute("id",`${this.instanceId}-content`),n.setAttribute("aria-labelledby",`${this.instanceId}-title`),this.state.active||n.setAttribute("hidden","")),typeof this.config.content=="string"?n.innerHTML=this.config.content:n.appendChild(this.config.content),i.appendChild(n),i}updateActiveState(){if(!(this.config.toggleable??!1))return;this.state.active?this.container.classList.add("is-active"):this.container.classList.remove("is-active");const i=this.container.querySelector(".information-panel-toggle");if(i){i.setAttribute("aria-expanded",String(this.state.active));const n=i.querySelector(".information-panel-toggle-icon");n&&(this.state.active?n.classList.add("is-active"):n.classList.remove("is-active"));const s=i.querySelector(".information-panel-toggle-text");s&&(s.textContent=this.state.active?"閉じる":"開く")}if(this.contentElement){const n=this.contentElement.querySelector(".information-panel-content");this.state.active?(this.contentElement.classList.add("is-active"),n==null||n.removeAttribute("hidden")):(this.contentElement.classList.remove("is-active"),setTimeout(()=>{this.state.active||n==null||n.setAttribute("hidden","")},200))}}static renderField(e){const s=`
368
- <div class="mokkun-information-panel panel-${e.variant??"info"}">
369
- <div class="panel-icon">ℹ️</div>
370
- <div class="panel-content">
371
- <div class="panel-title">${m(e.label)}</div>
372
- ${e.description?`<div class="panel-description">${m(e.description)}</div>`:""}
395
+ `)}}const Hl={info:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" /></svg>',success:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm3.844-8.791a.75.75 0 0 0-1.188-.918l-3.7 4.79-1.649-1.833a.75.75 0 1 0-1.114 1.004l2.25 2.5a.75.75 0 0 0 1.151-.043l4.25-5.5Z" clip-rule="evenodd" /></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',error:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" /></svg>',sync:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M13.836 2.477a.75.75 0 0 1 .75.75v3.182a.75.75 0 0 1-.75.75h-3.182a.75.75 0 0 1 0-1.5h1.37l-.84-.841a4.5 4.5 0 0 0-7.08.681.75.75 0 0 1-1.264-.808 6 6 0 0 1 9.44-.908l.84.84v-1.646a.75.75 0 0 1 .75-.75Zm-1.672 9.046a.75.75 0 0 1 1.264.808 6 6 0 0 1-9.44.908l-.84-.84v1.646a.75.75 0 0 1-1.5 0V10.82a.75.75 0 0 1 .75-.75h3.182a.75.75 0 0 1 0 1.5h-1.37l.84.841a4.5 4.5 0 0 0 7.08-.681Z" clip-rule="evenodd" /></svg>'};class Fl{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"contentElement",null);this.config=i,this.container=e,this.callbacks=a,this.instanceId=i.id??N("information-panel"),this.state=this.createInitialState()}render(){this.container.innerHTML="",this.contentElement=null;const e=this.config.type??"info",i=this.config.toggleable??!1,a=this.config.bold??!1;if(this.container.className=["mokkun-information-panel",`information-panel-${e}`,i?"information-panel-toggleable":"",a?"information-panel-bold":"",this.state.active?"is-active":"",this.config.className??""].filter(Boolean).join(" "),this.container.id=this.instanceId,this.container.setAttribute("data-type",e),this.state.hidden){this.container.setAttribute("data-hidden",""),this.container.style.display="none";return}else this.container.removeAttribute("data-hidden"),this.container.style.display="";const n=this.renderHeader();this.container.appendChild(n);const r=this.renderContent();this.container.appendChild(r),this.contentElement=r}open(){var e,i;(this.config.toggleable??!1)&&(this.state.active||(this.state={...this.state,active:!0},this.updateActiveState(),(i=(e=this.callbacks).onClickTrigger)==null||i.call(e,!0)))}close(){var e,i;(this.config.toggleable??!1)&&this.state.active&&(this.state={...this.state,active:!1},this.updateActiveState(),(i=(e=this.callbacks).onClickTrigger)==null||i.call(e,!1))}toggle(){this.state.active?this.close():this.open()}isActive(){return this.state.active}hide(){this.state.hidden||(this.state={...this.state,hidden:!0},this.render())}show(){this.state.hidden&&(this.state={...this.state,hidden:!1},this.render())}getState(){return{...this.state}}setTitle(e){this.config={...this.config,title:e},this.render()}setContent(e){this.config={...this.config,content:e},this.render()}setType(e){this.config={...this.config,type:e},this.render()}destroy(){this.container.innerHTML="",this.contentElement=null}createInitialState(){const e=this.config.toggleable??!1,i=this.config.defaultActive??!0;return{active:e?i:!0,hidden:!1}}renderHeader(){const e=c("div",{className:"information-panel-header"}),i=this.renderIcon();e.appendChild(i);const a=this.renderTitle();e.appendChild(a);const n=this.renderActions();return n&&e.appendChild(n),e}renderIcon(){const e=this.config.type??"info",i=c("span",{className:"information-panel-icon",attributes:{"aria-hidden":"true"}});return i.innerHTML=Hl[e],i}renderTitle(){const e=this.config.bold??!1,i=this.config.toggleable??!1,a=c("span",{className:`information-panel-title${e?" is-bold":""}`,textContent:this.config.title});return i&&a.setAttribute("id",`${this.instanceId}-title`),a}renderActions(){const e=this.config.toggleable??!1,i=this.config.closable??!1;if(!e&&!i)return null;const a=c("div",{className:"information-panel-actions"});if(e){const n=this.renderToggleButton();a.appendChild(n)}else if(i){const n=this.renderCloseButton();a.appendChild(n)}return a}renderToggleButton(){const e=c("button",{className:"information-panel-toggle",attributes:{type:"button","aria-expanded":String(this.state.active),"aria-controls":`${this.instanceId}-content`}}),i=c("span",{className:"information-panel-toggle-icon",attributes:{"aria-hidden":"true"}}),a=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("width","16"),a.setAttribute("height","16"),a.setAttribute("viewBox","0 0 16 16"),a.setAttribute("fill","currentColor");const n=document.createElementNS("http://www.w3.org/2000/svg","path");n.setAttribute("d","M3 6l5 5 5-5H3z"),a.appendChild(n),i.appendChild(a),e.appendChild(i);const r=c("span",{className:"information-panel-toggle-text",textContent:this.state.active?"閉じる":"開く"});return e.appendChild(r),e.addEventListener("click",()=>{this.toggle()}),e}renderCloseButton(){const e=c("button",{className:"information-panel-close",attributes:{type:"button","aria-label":"閉じる"}}),i=c("span",{className:"information-panel-close-icon",attributes:{"aria-hidden":"true"}}),a=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("width","16"),a.setAttribute("height","16"),a.setAttribute("viewBox","0 0 16 16"),a.setAttribute("fill","currentColor");const n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d","M5.28 4.22a.75.75 0 0 0-1.06 1.06L6.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L8 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L9.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L8 6.94 5.28 4.22Z"),a.appendChild(n),i.appendChild(a),e.appendChild(i),e.addEventListener("click",()=>{var r,s;this.hide(),(s=(r=this.callbacks).onClose)==null||s.call(r)}),e}renderContent(){const e=this.config.toggleable??!1,i=c("div",{className:`information-panel-content-wrapper${this.state.active?" is-active":""}`}),a=c("div",{className:"information-panel-content",attributes:{role:"region"}});return e&&(a.setAttribute("id",`${this.instanceId}-content`),a.setAttribute("aria-labelledby",`${this.instanceId}-title`),this.state.active||a.setAttribute("hidden","")),typeof this.config.content=="string"?a.innerHTML=this.config.content:a.appendChild(this.config.content),i.appendChild(a),i}updateActiveState(){if(!(this.config.toggleable??!1))return;this.state.active?this.container.classList.add("is-active"):this.container.classList.remove("is-active");const i=this.container.querySelector(".information-panel-toggle");if(i){i.setAttribute("aria-expanded",String(this.state.active));const a=i.querySelector(".information-panel-toggle-icon");a&&(this.state.active?a.classList.add("is-active"):a.classList.remove("is-active"));const n=i.querySelector(".information-panel-toggle-text");n&&(n.textContent=this.state.active?"閉じる":"開く")}if(this.contentElement){const a=this.contentElement.querySelector(".information-panel-content");this.state.active?(this.contentElement.classList.add("is-active"),a==null||a.removeAttribute("hidden")):(this.contentElement.classList.remove("is-active"),setTimeout(()=>{this.state.active||a==null||a.setAttribute("hidden","")},200))}}static renderField(e){const a=e.variant??"info",n=["info","success","warning","error"].includes(a)?a:"info",r=`
396
+ <div class="mokkun-information-panel information-panel-${n} is-active" data-type="${n}">
397
+ <div class="information-panel-header">
398
+ <span class="information-panel-icon" aria-hidden="true">ℹ️</span>
399
+ ${e.label?`<span class="information-panel-title">${g(e.label)}</span>`:""}
373
400
  </div>
401
+ ${e.description?`<div class="information-panel-content-wrapper is-active"><div class="information-panel-content" role="region">${g(e.description)}</div></div>`:""}
374
402
  </div>
375
- `;return x(e,s)}}class hr{constructor(e,i,n={}){h(this,"config");h(this,"state");h(this,"callbacks");h(this,"container");h(this,"instanceId");h(this,"triggerElement",null);h(this,"contentElement",null);h(this,"clickOutsideHandler",null);h(this,"keyboardHandler",null);this.config=i,this.container=e,this.callbacks=n,this.instanceId=E("dropdown"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.variant??"menu",i=this.config.placement??"bottom-start",n=this.config.triggerSize??"default";this.container.className=`mokkun-dropdown dropdown-${e} dropdown-${i} dropdown-trigger-${n}`,this.container.style.overflow="visible",this.state.isOpen?this.container.setAttribute("data-state","open"):this.container.setAttribute("data-state","closed");const s=c("div",{className:"dropdown-wrapper"});this.triggerElement=this.renderTrigger(),s.appendChild(this.triggerElement),this.state.isOpen?(this.contentElement=this.renderContent(),s.appendChild(this.contentElement),this.attachEventListeners(),this.state.focusedIndex===-1&&this.initializeFocus()):(this.contentElement=null,this.detachEventListeners()),this.container.appendChild(s)}toggle(){this.setOpen(!this.state.isOpen)}open(){this.setOpen(!0)}close(){this.setOpen(!1)}setOpen(e){var i,n;this.state.isOpen!==e&&(this.state={...this.state,isOpen:e,focusedIndex:-1},this.render(),(n=(i=this.callbacks).onOpenChange)==null||n.call(i,e))}getState(){return{...this.state}}setItems(e){this.state={...this.state,items:e},this.state.isOpen&&this.render()}destroy(){this.detachEventListeners(),this.container.innerHTML=""}createInitialState(){return{isOpen:this.config.defaultOpen??!1,items:this.config.items,selectedFilters:this.config.variant==="filter"?this.config.items.filter(i=>i.type==="filter"&&i.selected===!0).map(i=>i.value):void 0,currentSort:void 0,focusedIndex:-1}}renderTrigger(){const e=this.config.onlyIconTrigger??!1,i=this.config.triggerSize??"default",n=this.config.isFiltered??!1,s=c("button",{className:`dropdown-trigger dropdown-trigger-${i}${n?" is-filtered":""}`,attributes:{type:"button","aria-haspopup":"true","aria-expanded":String(this.state.isOpen),"aria-controls":`${this.instanceId}-content`,id:`${this.instanceId}-trigger`}});if(this.config.triggerIcon){const r=c("span",{className:"dropdown-trigger-icon"});r.innerHTML=this.config.triggerIcon,s.appendChild(r)}if(!e){const r=c("span",{className:"dropdown-trigger-label",textContent:this.config.triggerLabel});s.appendChild(r)}const a=c("span",{className:"dropdown-trigger-caret",textContent:"▼"});return a.setAttribute("aria-hidden","true"),s.appendChild(a),s.addEventListener("click",()=>{this.toggle()}),s}renderContent(){const e=this.config.variant??"menu",i=this.config.placement??"bottom-start",n=c("div",{className:`dropdown-content dropdown-content-${i}`,attributes:{role:"menu","aria-labelledby":`${this.instanceId}-trigger`,id:`${this.instanceId}-content`}});return e==="filter"?this.renderFilterContent(n):this.renderMenuContent(n),n}renderMenuContent(e){const i=c("div",{className:"dropdown-menu",attributes:{role:"menu"}});this.state.items.forEach((n,s)=>{n.type==="divider"?i.appendChild(this.renderDivider()):i.appendChild(this.renderMenuItem(n,s))}),e.appendChild(i)}renderFilterContent(e){const i=c("div",{className:"dropdown-filter-content"}),n=c("div",{className:"dropdown-menu",attributes:{role:"menu"}});this.state.items.filter(l=>l.type==="filter").forEach((l,d)=>{n.appendChild(this.renderFilterItem(l,d))}),i.appendChild(n);const a=c("div",{className:"dropdown-filter-actions"}),r=c("button",{className:"dropdown-filter-button dropdown-filter-reset",textContent:"クリア",attributes:{type:"button"}});r.addEventListener("click",()=>{this.handleFilterReset()});const o=c("button",{className:"dropdown-filter-button dropdown-filter-apply",textContent:"適用",attributes:{type:"button"}});o.addEventListener("click",()=>{this.handleFilterApply()}),a.appendChild(r),a.appendChild(o),i.appendChild(a),e.appendChild(i)}renderMenuItem(e,i){var a;const n=c("div",{className:`dropdown-menu-item${e.disabled?" is-disabled":""}${this.state.focusedIndex===i?" is-focused":""}`,attributes:{role:"menuitem",tabindex:String(e.disabled?-1:0),"aria-disabled":e.disabled?"true":"false","data-index":String(i)}});if(e.icon){const r=c("span",{className:"dropdown-menu-item-icon"});r.innerHTML=e.icon,n.appendChild(r)}const s=c("span",{className:"dropdown-menu-item-label",textContent:e.label});if(n.appendChild(s),e.type==="sort"&&((a=this.state.currentSort)==null?void 0:a.field)===e.field){const r=c("span",{className:"dropdown-menu-item-sort-indicator",textContent:this.state.currentSort.direction==="asc"?"↑":"↓"});n.appendChild(r)}return e.disabled||n.addEventListener("click",()=>{this.handleItemClick(e)}),n}renderFilterItem(e,i){var o;const n=((o=this.state.selectedFilters)==null?void 0:o.includes(e.value))??!1,s=c("label",{className:`dropdown-menu-item dropdown-filter-item${e.disabled?" is-disabled":""}${n?" is-selected":""}${this.state.focusedIndex===i?" is-focused":""}`,attributes:{tabindex:String(e.disabled?-1:0),"data-index":String(i)}}),a=c("input",{className:"dropdown-filter-checkbox",attributes:{type:"checkbox",value:e.value}});if(n&&(a.checked=!0),e.disabled&&(a.disabled=!0),a.addEventListener("change",()=>{this.handleFilterChange(e.value,a.checked)}),s.appendChild(a),e.icon){const l=c("span",{className:"dropdown-menu-item-icon"});l.innerHTML=e.icon,s.appendChild(l)}const r=c("span",{className:"dropdown-menu-item-label",textContent:e.label});return s.appendChild(r),s}renderDivider(){return c("div",{className:"dropdown-divider",attributes:{role:"separator"}})}handleItemClick(e){var i,n,s,a,r,o;if(e.type!=="divider"){if((n=(i=this.callbacks).onSelect)==null||n.call(i,e),e.type==="action")(s=e.onAction)==null||s.call(e,e.id),this.close();else if(e.type==="sort"){const l=((a=this.state.currentSort)==null?void 0:a.field)===e.field&&this.state.currentSort.direction==="asc"?"desc":"asc";this.state={...this.state,currentSort:{field:e.field,direction:l}},(o=(r=this.callbacks).onSortChange)==null||o.call(r,e.field,l),this.close()}}}handleFilterChange(e,i){const n=this.state.selectedFilters??[];i?this.state={...this.state,selectedFilters:[...n,e]}:this.state={...this.state,selectedFilters:n.filter(s=>s!==e)}}handleFilterApply(){var e,i;(i=(e=this.callbacks).onApply)==null||i.call(e,this.state.selectedFilters??[]),this.close()}handleFilterReset(){var e,i;this.state={...this.state,selectedFilters:[]},this.render(),(i=(e=this.callbacks).onReset)==null||i.call(e)}handleClickOutside(e){const i=e.target;this.container.contains(i)||this.close()}handleKeyboard(e){var n;if(!this.state.isOpen)return;const i=this.state.items.filter(s=>s.type!=="divider"&&!s.disabled);switch(e.key){case"Escape":e.preventDefault(),this.close(),(n=this.triggerElement)==null||n.focus();break;case"ArrowDown":e.preventDefault(),this.focusNextItem(i.length);break;case"ArrowUp":e.preventDefault(),this.focusPreviousItem(i.length);break;case"Home":e.preventDefault(),this.focusFirstItem();break;case"End":e.preventDefault(),this.focusLastItem(i.length);break;case"Enter":case" ":e.preventDefault(),this.selectFocusedItem();break}}initializeFocus(){var s;const e=this.state.items.filter(a=>a.type!=="divider"&&!a.disabled);if(e.length===0)return;const i=this.state.items.indexOf(e[0]);this.state={...this.state,focusedIndex:i};const n=(s=this.contentElement)==null?void 0:s.querySelector(`[data-index="${i}"]`);n==null||n.focus()}focusFirstItem(){const e=this.state.items.filter(n=>n.type!=="divider"&&!n.disabled);if(e.length===0)return;const i=this.state.items.indexOf(e[0]);this.setFocusedIndex(i)}focusLastItem(e){if(e===0)return;const i=this.state.items.filter(s=>s.type!=="divider"&&!s.disabled),n=this.state.items.indexOf(i[i.length-1]);this.setFocusedIndex(n)}focusNextItem(e){if(e===0)return;const i=this.state.items.filter(r=>r.type!=="divider"&&!r.disabled),s=(i.findIndex(r=>this.state.items.indexOf(r)===this.state.focusedIndex)+1)%e,a=this.state.items.indexOf(i[s]);this.setFocusedIndex(a)}focusPreviousItem(e){if(e===0)return;const i=this.state.items.filter(r=>r.type!=="divider"&&!r.disabled),n=i.findIndex(r=>this.state.items.indexOf(r)===this.state.focusedIndex),s=n<=0?e-1:n-1,a=this.state.items.indexOf(i[s]);this.setFocusedIndex(a)}setFocusedIndex(e){var n;this.state={...this.state,focusedIndex:e},this.render();const i=(n=this.contentElement)==null?void 0:n.querySelector(`[data-index="${e}"]`);i==null||i.focus()}selectFocusedItem(){if(this.state.focusedIndex===-1)return;const e=this.state.items[this.state.focusedIndex];e&&e.type!=="divider"&&this.handleItemClick(e)}attachEventListeners(){this.clickOutsideHandler=this.handleClickOutside.bind(this),this.keyboardHandler=this.handleKeyboard.bind(this),setTimeout(()=>{document.addEventListener("click",this.clickOutsideHandler),document.addEventListener("keydown",this.keyboardHandler)},0)}detachEventListeners(){this.clickOutsideHandler&&(document.removeEventListener("click",this.clickOutsideHandler),this.clickOutsideHandler=null),this.keyboardHandler&&(document.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null)}static renderField(e){const n=e.options??[],s=`
403
+ `;return $(e,r)}}class Vl{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"triggerElement",null);p(this,"contentElement",null);p(this,"clickOutsideHandler",null);p(this,"keyboardHandler",null);this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("dropdown"),this.state=this.createInitialState()}render(){this.container.innerHTML="";const e=this.config.variant??"menu",i=this.config.placement??"bottom-start",a=this.config.triggerSize??"default";this.container.className=`mokkun-dropdown dropdown-${e} dropdown-${i} dropdown-trigger-${a}`,this.container.style.overflow="visible",this.state.isOpen?this.container.setAttribute("data-state","open"):this.container.setAttribute("data-state","closed");const n=c("div",{className:"dropdown-wrapper"});this.triggerElement=this.renderTrigger(),n.appendChild(this.triggerElement),this.state.isOpen?(this.contentElement=this.renderContent(),n.appendChild(this.contentElement),this.attachEventListeners(),this.state.focusedIndex===-1&&this.initializeFocus()):(this.contentElement=null,this.detachEventListeners()),this.container.appendChild(n)}toggle(){this.setOpen(!this.state.isOpen)}open(){this.setOpen(!0)}close(){this.setOpen(!1)}setOpen(e){var i,a;this.state.isOpen!==e&&(this.state={...this.state,isOpen:e,focusedIndex:-1},this.render(),(a=(i=this.callbacks).onOpenChange)==null||a.call(i,e))}getState(){return{...this.state}}setItems(e){this.state={...this.state,items:e},this.state.isOpen&&this.render()}destroy(){this.detachEventListeners(),this.container.innerHTML=""}createInitialState(){return{isOpen:this.config.defaultOpen??!1,items:this.config.items,selectedFilters:this.config.variant==="filter"?this.config.items.filter(i=>i.type==="filter"&&i.selected===!0).map(i=>i.value):void 0,currentSort:void 0,focusedIndex:-1}}renderTrigger(){const e=this.config.onlyIconTrigger??!1,i=this.config.triggerSize??"default",a=this.config.isFiltered??!1,n=c("button",{className:`dropdown-trigger dropdown-trigger-${i}${a?" is-filtered":""}`,attributes:{type:"button","aria-haspopup":"true","aria-expanded":String(this.state.isOpen),"aria-controls":`${this.instanceId}-content`,id:`${this.instanceId}-trigger`}});if(this.config.triggerIcon){const s=c("span",{className:"dropdown-trigger-icon"});s.innerHTML=this.config.triggerIcon,n.appendChild(s)}if(!e){const s=c("span",{className:"dropdown-trigger-label",textContent:this.config.triggerLabel});n.appendChild(s)}const r=c("span",{className:"dropdown-trigger-caret",textContent:"▼"});return r.setAttribute("aria-hidden","true"),n.appendChild(r),n.addEventListener("click",()=>{this.toggle()}),n}renderContent(){const e=this.config.variant??"menu",i=this.config.placement??"bottom-start",a=c("div",{className:`dropdown-content dropdown-content-${i}`,attributes:{role:"menu","aria-labelledby":`${this.instanceId}-trigger`,id:`${this.instanceId}-content`}});return e==="filter"?this.renderFilterContent(a):this.renderMenuContent(a),a}renderMenuContent(e){const i=c("div",{className:"dropdown-menu",attributes:{role:"menu"}});this.state.items.forEach((a,n)=>{a.type==="divider"?i.appendChild(this.renderDivider()):i.appendChild(this.renderMenuItem(a,n))}),e.appendChild(i)}renderFilterContent(e){const i=c("div",{className:"dropdown-filter-content"}),a=c("div",{className:"dropdown-menu",attributes:{role:"menu"}});this.state.items.filter(l=>l.type==="filter").forEach((l,d)=>{a.appendChild(this.renderFilterItem(l,d))}),i.appendChild(a);const r=c("div",{className:"dropdown-filter-actions"}),s=c("button",{className:"dropdown-filter-button dropdown-filter-reset",textContent:"クリア",attributes:{type:"button"}});s.addEventListener("click",()=>{this.handleFilterReset()});const o=c("button",{className:"dropdown-filter-button dropdown-filter-apply",textContent:"適用",attributes:{type:"button"}});o.addEventListener("click",()=>{this.handleFilterApply()}),r.appendChild(s),r.appendChild(o),i.appendChild(r),e.appendChild(i)}renderMenuItem(e,i){var r;const a=c("div",{className:`dropdown-menu-item${e.disabled?" is-disabled":""}${this.state.focusedIndex===i?" is-focused":""}`,attributes:{role:"menuitem",tabindex:String(e.disabled?-1:0),"aria-disabled":e.disabled?"true":"false","data-index":String(i)}});if(e.icon){const s=c("span",{className:"dropdown-menu-item-icon"});s.innerHTML=e.icon,a.appendChild(s)}const n=c("span",{className:"dropdown-menu-item-label",textContent:e.label});if(a.appendChild(n),e.type==="sort"&&((r=this.state.currentSort)==null?void 0:r.field)===e.field){const s=c("span",{className:"dropdown-menu-item-sort-indicator",textContent:this.state.currentSort.direction==="asc"?"↑":"↓"});a.appendChild(s)}return e.disabled||a.addEventListener("click",()=>{this.handleItemClick(e)}),a}renderFilterItem(e,i){var o;const a=((o=this.state.selectedFilters)==null?void 0:o.includes(e.value))??!1,n=c("label",{className:`dropdown-menu-item dropdown-filter-item${e.disabled?" is-disabled":""}${a?" is-selected":""}${this.state.focusedIndex===i?" is-focused":""}`,attributes:{tabindex:String(e.disabled?-1:0),"data-index":String(i)}}),r=c("input",{className:"dropdown-filter-checkbox",attributes:{type:"checkbox",value:e.value}});if(a&&(r.checked=!0),e.disabled&&(r.disabled=!0),r.addEventListener("change",()=>{this.handleFilterChange(e.value,r.checked)}),n.appendChild(r),e.icon){const l=c("span",{className:"dropdown-menu-item-icon"});l.innerHTML=e.icon,n.appendChild(l)}const s=c("span",{className:"dropdown-menu-item-label",textContent:e.label});return n.appendChild(s),n}renderDivider(){return c("div",{className:"dropdown-divider",attributes:{role:"separator"}})}handleItemClick(e){var i,a,n,r,s,o;if(e.type!=="divider"){if((a=(i=this.callbacks).onSelect)==null||a.call(i,e),e.type==="action")(n=e.onAction)==null||n.call(e,e.id),this.close();else if(e.type==="sort"){const l=((r=this.state.currentSort)==null?void 0:r.field)===e.field&&this.state.currentSort.direction==="asc"?"desc":"asc";this.state={...this.state,currentSort:{field:e.field,direction:l}},(o=(s=this.callbacks).onSortChange)==null||o.call(s,e.field,l),this.close()}}}handleFilterChange(e,i){const a=this.state.selectedFilters??[];i?this.state={...this.state,selectedFilters:[...a,e]}:this.state={...this.state,selectedFilters:a.filter(n=>n!==e)}}handleFilterApply(){var e,i;(i=(e=this.callbacks).onApply)==null||i.call(e,this.state.selectedFilters??[]),this.close()}handleFilterReset(){var e,i;this.state={...this.state,selectedFilters:[]},this.render(),(i=(e=this.callbacks).onReset)==null||i.call(e)}handleClickOutside(e){const i=e.target;this.container.contains(i)||this.close()}handleKeyboard(e){var a;if(!this.state.isOpen)return;const i=this.state.items.filter(n=>n.type!=="divider"&&!n.disabled);switch(e.key){case"Escape":e.preventDefault(),this.close(),(a=this.triggerElement)==null||a.focus();break;case"ArrowDown":e.preventDefault(),this.focusNextItem(i.length);break;case"ArrowUp":e.preventDefault(),this.focusPreviousItem(i.length);break;case"Home":e.preventDefault(),this.focusFirstItem();break;case"End":e.preventDefault(),this.focusLastItem(i.length);break;case"Enter":case" ":e.preventDefault(),this.selectFocusedItem();break}}initializeFocus(){var n;const e=this.state.items.filter(r=>r.type!=="divider"&&!r.disabled);if(e.length===0)return;const i=this.state.items.indexOf(e[0]);this.state={...this.state,focusedIndex:i};const a=(n=this.contentElement)==null?void 0:n.querySelector(`[data-index="${i}"]`);a==null||a.focus()}focusFirstItem(){const e=this.state.items.filter(a=>a.type!=="divider"&&!a.disabled);if(e.length===0)return;const i=this.state.items.indexOf(e[0]);this.setFocusedIndex(i)}focusLastItem(e){if(e===0)return;const i=this.state.items.filter(n=>n.type!=="divider"&&!n.disabled),a=this.state.items.indexOf(i[i.length-1]);this.setFocusedIndex(a)}focusNextItem(e){if(e===0)return;const i=this.state.items.filter(s=>s.type!=="divider"&&!s.disabled),n=(i.findIndex(s=>this.state.items.indexOf(s)===this.state.focusedIndex)+1)%e,r=this.state.items.indexOf(i[n]);this.setFocusedIndex(r)}focusPreviousItem(e){if(e===0)return;const i=this.state.items.filter(s=>s.type!=="divider"&&!s.disabled),a=i.findIndex(s=>this.state.items.indexOf(s)===this.state.focusedIndex),n=a<=0?e-1:a-1,r=this.state.items.indexOf(i[n]);this.setFocusedIndex(r)}setFocusedIndex(e){var a;this.state={...this.state,focusedIndex:e},this.render();const i=(a=this.contentElement)==null?void 0:a.querySelector(`[data-index="${e}"]`);i==null||i.focus()}selectFocusedItem(){if(this.state.focusedIndex===-1)return;const e=this.state.items[this.state.focusedIndex];e&&e.type!=="divider"&&this.handleItemClick(e)}attachEventListeners(){this.clickOutsideHandler=this.handleClickOutside.bind(this),this.keyboardHandler=this.handleKeyboard.bind(this),setTimeout(()=>{document.addEventListener("click",this.clickOutsideHandler),document.addEventListener("keydown",this.keyboardHandler)},0)}detachEventListeners(){this.clickOutsideHandler&&(document.removeEventListener("click",this.clickOutsideHandler),this.clickOutsideHandler=null),this.keyboardHandler&&(document.removeEventListener("keydown",this.keyboardHandler),this.keyboardHandler=null)}static renderField(e){const a=e.options??[],n=`
376
404
  <div class="mokkun-dropdown">
377
405
  <button type="button" class="dropdown-trigger" aria-haspopup="listbox" aria-expanded="false">
378
- <span>${m(e.label)}</span>
406
+ ${e.label?`<span>${g(e.label)}</span>`:""}
379
407
  <span class="dropdown-arrow">▼</span>
380
408
  </button>
381
409
  <ul class="dropdown-menu" role="listbox" hidden>
382
- ${n.map(a=>`
383
- <li class="dropdown-item" role="option" data-value="${m(a.value)}">
384
- ${m(a.label)}
410
+ ${a.map(r=>`
411
+ <li class="dropdown-item" role="option" data-value="${g(r.value)}">
412
+ ${g(r.label)}
385
413
  </li>
386
414
  `).join("")}
387
415
  </ul>
388
416
  </div>
389
- `;return x(e,s)}}class Ci{constructor(e,i={}){h(this,"config");h(this,"callbacks");h(this,"state");h(this,"dialogElement",null);h(this,"overlayElement",null);h(this,"dialogId");h(this,"boundKeydownHandler");this.config=e,this.callbacks=i,this.dialogId=E("delete-dialog"),this.state={isOpen:!1,previouslyFocusedElement:null},this.boundKeydownHandler=this.handleKeydown.bind(this)}open(){this.state.isOpen||(this.state={...this.state,isOpen:!0,previouslyFocusedElement:document.activeElement},this.render(),this.setupEventListeners(),this.trapFocus())}close(){var e,i;this.state.isOpen&&(this.removeEventListeners(),this.destroy(),this.state.previouslyFocusedElement instanceof HTMLElement&&this.state.previouslyFocusedElement.focus(),this.state={...this.state,isOpen:!1,previouslyFocusedElement:null},(i=(e=this.callbacks).onClose)==null||i.call(e))}updateConfig(e){this.config={...this.config,...e},this.state.isOpen&&this.render()}getState(){return{...this.state}}getDialogElement(){return this.dialogElement}render(){this.destroy(),this.overlayElement=c("div",{className:"dialog-overlay",attributes:{"data-dialog-overlay":this.dialogId}});const e=this.config.danger!==!1?"dialog-danger":"";this.dialogElement=c("div",{className:`delete-confirm-dialog ${e}`.trim(),attributes:{role:"alertdialog","aria-modal":"true","aria-labelledby":`${this.dialogId}-title`,"aria-describedby":`${this.dialogId}-description`,"data-dialog-id":this.dialogId}}),this.dialogElement.appendChild(this.renderHeader()),this.dialogElement.appendChild(this.renderBody()),this.dialogElement.appendChild(this.renderFooter()),document.body.appendChild(this.overlayElement),document.body.appendChild(this.dialogElement),document.body.classList.add("dialog-open")}renderHeader(){const e=c("div",{className:"dialog-header"}),i=c("div",{className:"dialog-icon"});i.innerHTML=`
417
+ `;return $(e,n)}}class za{constructor(e,i={}){p(this,"config");p(this,"callbacks");p(this,"state");p(this,"dialogElement",null);p(this,"overlayElement",null);p(this,"dialogId");p(this,"boundKeydownHandler");this.config=e,this.callbacks=i,this.dialogId=N("delete-dialog"),this.state={isOpen:!1,previouslyFocusedElement:null},this.boundKeydownHandler=this.handleKeydown.bind(this)}open(){this.state.isOpen||(this.state={...this.state,isOpen:!0,previouslyFocusedElement:document.activeElement},this.render(),this.setupEventListeners(),this.trapFocus())}close(){var e,i;this.state.isOpen&&(this.removeEventListeners(),this.destroy(),this.state.previouslyFocusedElement instanceof HTMLElement&&this.state.previouslyFocusedElement.focus(),this.state={...this.state,isOpen:!1,previouslyFocusedElement:null},(i=(e=this.callbacks).onClose)==null||i.call(e))}updateConfig(e){this.config={...this.config,...e},this.state.isOpen&&this.render()}getState(){return{...this.state}}getDialogElement(){return this.dialogElement}render(){this.destroy(),this.overlayElement=c("div",{className:"dialog-overlay",attributes:{"data-dialog-overlay":this.dialogId}});const e=this.config.danger!==!1?"dialog-danger":"";this.dialogElement=c("div",{className:`delete-confirm-dialog ${e}`.trim(),attributes:{role:"alertdialog","aria-modal":"true","aria-labelledby":`${this.dialogId}-title`,"aria-describedby":`${this.dialogId}-description`,"data-dialog-id":this.dialogId}}),this.dialogElement.appendChild(this.renderHeader()),this.dialogElement.appendChild(this.renderBody()),this.dialogElement.appendChild(this.renderFooter()),document.body.appendChild(this.overlayElement),document.body.appendChild(this.dialogElement),document.body.classList.add("dialog-open")}renderHeader(){const e=c("div",{className:"dialog-header"}),i=c("div",{className:"dialog-icon"});i.innerHTML=`
390
418
  <svg viewBox="0 0 24 24" width="24" height="24" fill="currentColor" aria-hidden="true">
391
419
  <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>
392
420
  </svg>
393
- `,e.appendChild(i);const n=c("h2",{className:"dialog-title",textContent:this.config.title,attributes:{id:`${this.dialogId}-title`}});return e.appendChild(n),e}renderBody(){const e=c("div",{className:"dialog-body",attributes:{id:`${this.dialogId}-description`}}),i=c("div",{className:"dialog-target-info"}),n=this.config.targetType??"項目",s=c("p",{className:"dialog-target-text"});if(s.innerHTML=`<strong>${this.escapeHtml(n)}</strong>: ${this.escapeHtml(this.config.targetName)}`,i.appendChild(s),e.appendChild(i),this.config.dependencies&&this.config.dependencies.length>0){const a=this.renderDependencies();e.appendChild(a)}if(this.config.warningMessage){const a=c("div",{className:"dialog-warning",attributes:{role:"alert"}}),r=c("span",{className:"warning-icon"});r.innerHTML=`
421
+ `,e.appendChild(i);const a=c("h2",{className:"dialog-title",textContent:this.config.title,attributes:{id:`${this.dialogId}-title`}});return e.appendChild(a),e}renderBody(){const e=c("div",{className:"dialog-body",attributes:{id:`${this.dialogId}-description`}}),i=c("div",{className:"dialog-target-info"}),a=this.config.targetType??"項目",n=c("p",{className:"dialog-target-text"});if(n.innerHTML=`<strong>${this.escapeHtml(a)}</strong>: ${this.escapeHtml(this.config.targetName)}`,i.appendChild(n),e.appendChild(i),this.config.dependencies&&this.config.dependencies.length>0){const r=this.renderDependencies();e.appendChild(r)}if(this.config.warningMessage){const r=c("div",{className:"dialog-warning",attributes:{role:"alert"}}),s=c("span",{className:"warning-icon"});s.innerHTML=`
394
422
  <svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true">
395
423
  <path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/>
396
424
  </svg>
397
- `,a.appendChild(r);const o=c("span",{className:"warning-text",textContent:this.config.warningMessage});a.appendChild(o),e.appendChild(a)}return e}renderDependencies(){var a;const e=c("div",{className:"dialog-dependencies"}),i=c("h3",{className:"dependencies-heading",textContent:"関連データへの影響"});e.appendChild(i);const n=c("ul",{className:"dependencies-list"});for(const r of this.config.dependencies??[]){const o=c("li",{className:"dependency-item"}),l=c("span",{className:"dependency-label",textContent:r.label}),d=c("span",{className:`dependency-count ${r.count>0?"has-data":""}`,textContent:`${r.count}件`});o.appendChild(l),o.appendChild(d),n.appendChild(o)}if(e.appendChild(n),(a=this.config.dependencies)==null?void 0:a.some(r=>r.count>0)){const r=c("p",{className:"dependencies-note",textContent:"これらの関連データも削除されます。この操作は取り消せません。"});e.appendChild(r)}return e}renderFooter(){const e=c("div",{className:"dialog-footer"}),i=c("button",{className:"dialog-btn dialog-btn-cancel",textContent:this.config.cancelLabel??"キャンセル",attributes:{type:"button","data-action":"cancel"}});i.addEventListener("click",()=>this.handleCancel()),e.appendChild(i);const n=c("button",{className:"dialog-btn dialog-btn-confirm dialog-btn-danger",textContent:this.config.confirmLabel??"削除を実行",attributes:{type:"button","data-action":"confirm"}});return n.addEventListener("click",()=>this.handleConfirm()),e.appendChild(n),e}setupEventListeners(){var e;document.addEventListener("keydown",this.boundKeydownHandler),(e=this.overlayElement)==null||e.addEventListener("click",()=>this.handleCancel())}removeEventListeners(){document.removeEventListener("keydown",this.boundKeydownHandler)}handleKeydown(e){if(e.key==="Escape"){e.preventDefault(),this.handleCancel();return}e.key==="Tab"&&this.handleTabKey(e)}handleTabKey(e){if(!this.dialogElement)return;const i=this.getFocusableElements();if(i.length===0)return;const n=i[0],s=i[i.length-1],a=document.activeElement;e.shiftKey?a===n&&(e.preventDefault(),s.focus()):a===s&&(e.preventDefault(),n.focus())}getFocusableElements(){if(!this.dialogElement)return[];const e=["button:not([disabled])","a[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(this.dialogElement.querySelectorAll(e))}trapFocus(){const e=this.getFocusableElements();e.length>0&&e[0].focus()}handleConfirm(){var e,i;(i=(e=this.callbacks).onConfirm)==null||i.call(e),this.close()}handleCancel(){var e,i;(i=(e=this.callbacks).onCancel)==null||i.call(e),this.close()}destroy(){this.overlayElement&&(this.overlayElement.remove(),this.overlayElement=null),this.dialogElement&&(this.dialogElement.remove(),this.dialogElement=null),document.body.classList.remove("dialog-open")}escapeHtml(e){const i=document.createElement("div");return i.textContent=e,i.innerHTML}static renderField(e){const i=e,n=i.title??e.label??"削除確認",s=i.message??e.description??"この操作は取り消せません。本当に削除しますか?",a=i.cancelLabel??"キャンセル",r=i.confirmLabel??"削除する",o=i.targetName??"",l=`
425
+ `,r.appendChild(s);const o=c("span",{className:"warning-text",textContent:this.config.warningMessage});r.appendChild(o),e.appendChild(r)}return e}renderDependencies(){var r;const e=c("div",{className:"dialog-dependencies"}),i=c("h3",{className:"dependencies-heading",textContent:"関連データへの影響"});e.appendChild(i);const a=c("ul",{className:"dependencies-list"});for(const s of this.config.dependencies??[]){const o=c("li",{className:"dependency-item"}),l=c("span",{className:"dependency-label",textContent:s.label}),d=c("span",{className:`dependency-count ${s.count>0?"has-data":""}`,textContent:`${s.count}件`});o.appendChild(l),o.appendChild(d),a.appendChild(o)}if(e.appendChild(a),(r=this.config.dependencies)==null?void 0:r.some(s=>s.count>0)){const s=c("p",{className:"dependencies-note",textContent:"これらの関連データも削除されます。この操作は取り消せません。"});e.appendChild(s)}return e}renderFooter(){const e=c("div",{className:"dialog-footer"}),i=c("button",{className:"dialog-btn dialog-btn-cancel",textContent:this.config.cancelLabel??"キャンセル",attributes:{type:"button","data-action":"cancel"}});i.addEventListener("click",()=>this.handleCancel()),e.appendChild(i);const a=c("button",{className:"dialog-btn dialog-btn-confirm dialog-btn-danger",textContent:this.config.confirmLabel??"削除を実行",attributes:{type:"button","data-action":"confirm"}});return a.addEventListener("click",()=>this.handleConfirm()),e.appendChild(a),e}setupEventListeners(){var e;document.addEventListener("keydown",this.boundKeydownHandler),(e=this.overlayElement)==null||e.addEventListener("click",()=>this.handleCancel())}removeEventListeners(){document.removeEventListener("keydown",this.boundKeydownHandler)}handleKeydown(e){if(e.key==="Escape"){e.preventDefault(),this.handleCancel();return}e.key==="Tab"&&this.handleTabKey(e)}handleTabKey(e){if(!this.dialogElement)return;const i=this.getFocusableElements();if(i.length===0)return;const a=i[0],n=i[i.length-1],r=document.activeElement;e.shiftKey?r===a&&(e.preventDefault(),n.focus()):r===n&&(e.preventDefault(),a.focus())}getFocusableElements(){if(!this.dialogElement)return[];const e=["button:not([disabled])","a[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(this.dialogElement.querySelectorAll(e))}trapFocus(){const e=this.getFocusableElements();e.length>0&&e[0].focus()}handleConfirm(){var e,i;(i=(e=this.callbacks).onConfirm)==null||i.call(e),this.close()}handleCancel(){var e,i;(i=(e=this.callbacks).onCancel)==null||i.call(e),this.close()}destroy(){this.overlayElement&&(this.overlayElement.remove(),this.overlayElement=null),this.dialogElement&&(this.dialogElement.remove(),this.dialogElement=null),document.body.classList.remove("dialog-open")}escapeHtml(e){const i=document.createElement("div");return i.textContent=e,i.innerHTML}static renderField(e){const i=e,a=i.title??e.label??"削除確認",n=i.message??e.description??"この操作は取り消せません。本当に削除しますか?",r=i.cancelLabel??"キャンセル",s=i.confirmLabel??"削除する",o=i.targetName??"",l=`
398
426
  <div class="delete-confirm-dialog-preview">
399
427
  <div class="dialog-header">
400
- <h3>${m(n)}</h3>
428
+ <h3>${g(a)}</h3>
401
429
  </div>
402
430
  <div class="dialog-body">
403
- ${o?`<p class="dialog-target"><strong>対象:</strong> ${m(o)}</p>`:""}
404
- <p class="dialog-message">${m(s)}</p>
431
+ ${o?`<p class="dialog-target"><strong>対象:</strong> ${g(o)}</p>`:""}
432
+ <p class="dialog-message">${g(n)}</p>
405
433
  </div>
406
434
  <div class="dialog-footer">
407
- <button type="button" class="dialog-button dialog-cancel">${m(a)}</button>
408
- <button type="button" class="dialog-button dialog-confirm dialog-danger">${m(r)}</button>
435
+ <button type="button" class="dialog-button dialog-cancel">${g(r)}</button>
436
+ <button type="button" class="dialog-button dialog-confirm dialog-danger">${g(s)}</button>
409
437
  </div>
410
438
  </div>
411
- `;return x(e,l)}}function ur(){return typeof window<"u"&&window.faker?window.faker:null}function pr(t,e){const i=ur(),n=t.toLowerCase();if(i){try{i.locale="ja"}catch{}if(n.includes("名前")||n.includes("氏名")||n.includes("name"))return i.person.fullName();if(n.includes("姓")||n.includes("苗字"))return i.person.lastName();if(n.includes("名")&&!n.includes("名前"))return i.person.firstName();if(n.includes("メール")||n.includes("email"))return i.internet.email();if(n.includes("電話")||n.includes("tel")||n.includes("phone"))return i.phone.number();if(n.includes("住所")||n.includes("address"))return i.location.streetAddress();if(n.includes("都道府県")||n.includes("県"))return i.location.state();if(n.includes("市区町村")||n.includes("市"))return i.location.city();if(n.includes("郵便番号")||n.includes("zip"))return i.location.zipCode();if(n.includes("会社")||n.includes("company")||n.includes("施設"))return i.company.name();if(n.includes("部署")||n.includes("department"))return i.commerce.department();if(n.includes("人数")||n.includes("収容"))return i.number.int({min:1,max:100});if(n.includes("金額")||n.includes("価格")||n.includes("price"))return i.number.int({min:1e3,max:1e5});if(n.includes("広さ")||n.includes("面積"))return i.number.int({min:10,max:500});if(n.includes("日付")||n.includes("日時")||n.includes("date"))return i.date.recent().toLocaleDateString("ja-JP");if(n.includes("作成日")||n.includes("登録日"))return i.date.past().toLocaleDateString("ja-JP");if(n.includes("更新日"))return i.date.recent().toLocaleDateString("ja-JP");if(n.includes("ステータス")||n.includes("status")||n.includes("状態")){const s=["有効","無効","保留中","承認済み","公開","非公開","下書き"];return s[e%s.length]}return n.includes("id")||n.includes("番号")?i.string.alphanumeric(8).toUpperCase():n.includes("説明")||n.includes("description")?i.lorem.sentence():n.includes("備考")||n.includes("メモ")||n.includes("note")?i.lorem.words(5):i.lorem.words(2)}return`${t} ${e+1}`}function fr(t,e){const i={id:e+1};for(const n of t)i[n.id]=pr(n.label,e);return i}function mr(t,e=10){const i=[];for(let n=0;n<e;n++)i.push(fr(t,n));return i}function A(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function gr(t){return`${t}-${Math.random().toString(36).substring(2,11)}`}function br(t,e){var i,n;if(t==null)return"-";switch(e.format){case"number":return Number(t).toLocaleString("ja-JP");case"currency":{const s=((i=e.currency_format)==null?void 0:i.locale)??"ja-JP",a=((n=e.currency_format)==null?void 0:n.currency)??"JPY";return new Intl.NumberFormat(s,{style:"currency",currency:a}).format(Number(t))}case"date":{const s=new Date(String(t));return isNaN(s.getTime())?String(t):s.toLocaleDateString("ja-JP")}case"datetime":{const s=new Date(String(t));return isNaN(s.getTime())?String(t):s.toLocaleString("ja-JP")}case"status":{const a=(e.status_map??{})[String(t)];return a?a.label:String(t)}case"text":default:return String(t)}}function vr(t,e){if(e.format!=="status"||!e.status_map)return"";const i=e.status_map[String(t)];return i?`status-badge status-${i.color}`:"status-badge status-default"}function yr(t){return typeof t.fixed_header=="boolean"?{enabled:t.fixed_header,offset:0}:t.fixed_header?{enabled:t.fixed_header.enabled!==!1,offset:t.fixed_header.offset??0}:{enabled:!1,offset:0}}function xr(t){return typeof t.column_resize=="boolean"?{enabled:t.column_resize,minWidth:50,maxWidth:500}:t.column_resize?{enabled:t.column_resize.enabled!==!1,minWidth:t.column_resize.min_width??50,maxWidth:t.column_resize.max_width??500}:{enabled:!1,minWidth:50,maxWidth:500}}function Cr(t,e){return t.map(i=>{const n=i.style?`btn-${i.style}`:"btn-link",s=i.icon?`<span class="action-icon">${A(i.icon)}</span>`:"";return`
439
+ `;return $(e,l)}}function T(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function Bl(t){return`${t}-${Math.random().toString(36).substring(2,11)}`}function jl(t,e){var i,a;if(t==null)return"-";switch(e.format){case"number":return Number(t).toLocaleString("ja-JP");case"currency":{const n=((i=e.currency_format)==null?void 0:i.locale)??"ja-JP",r=((a=e.currency_format)==null?void 0:a.currency)??"JPY";return new Intl.NumberFormat(n,{style:"currency",currency:r}).format(Number(t))}case"date":{const n=new Date(String(t));return isNaN(n.getTime())?String(t):n.toLocaleDateString("ja-JP")}case"datetime":{const n=new Date(String(t));return isNaN(n.getTime())?String(t):n.toLocaleString("ja-JP")}case"status":{const r=(e.status_map??{})[String(t)];return r?r.label:String(t)}case"text":default:return String(t)}}function Rl(t,e){if(e.format!=="status"||!e.status_map)return"";const i=e.status_map[String(t)];return i?`status-badge status-${i.color}`:"status-badge status-default"}function Pl(t){return typeof t.fixed_header=="boolean"?{enabled:t.fixed_header,offset:0}:t.fixed_header?{enabled:t.fixed_header.enabled!==!1,offset:t.fixed_header.offset??0}:{enabled:!1,offset:0}}function Ul(t){return typeof t.column_resize=="boolean"?{enabled:t.column_resize,minWidth:50,maxWidth:500}:t.column_resize?{enabled:t.column_resize.enabled!==!1,minWidth:t.column_resize.min_width??50,maxWidth:t.column_resize.max_width??500}:{enabled:!1,minWidth:50,maxWidth:500}}function ql(t,e){return t.map(i=>{const a=i.style?`btn-${i.style}`:"btn-link",n=Ke(i.icon,"action-icon");return`
412
440
  <button
413
441
  type="button"
414
- class="btn btn-sm ${n} row-action-btn"
415
- data-action-id="${A(i.id)}"
416
- data-row-id="${A(String(e.id))}"
417
- ${i.confirm?`data-confirm-title="${A(i.confirm.title)}" data-confirm-message="${A(i.confirm.message)}"`:""}
442
+ class="btn btn-sm ${a} row-action-btn"
443
+ data-action-id="${T(i.id)}"
444
+ data-row-id="${T(String(e.id))}"
445
+ ${i.confirm?`data-confirm-title="${T(i.confirm.title)}" data-confirm-message="${T(i.confirm.message)}"`:""}
418
446
  >
419
- ${s}
420
- <span class="action-label">${A(i.label)}</span>
447
+ ${n}
448
+ <span class="action-label">${T(i.label)}</span>
421
449
  </button>
422
- `}).join("")}function kr(t){var w,z;const e=["mokkun-data-table"];t.striped&&e.push("striped"),t.hoverable!==!1&&e.push("hoverable"),t.bordered&&e.push("bordered"),t.compact&&e.push("compact"),t.responsive!==!1&&e.push("responsive");const i=yr(t);i.enabled&&e.push("fixed-header");const n=xr(t);n.enabled&&e.push("resizable-columns"),(w=t.grouping)!=null&&w.enabled&&e.push("grouped"),t.layout==="fixed"&&e.push("layout-fixed");const s=gr("data-table");let a=t.data??[];if(a.length===0&&t.columns.length>0){const b=((z=t.pagination)==null?void 0:z.page_size)??10;a=mr(t.columns,b)}const r=t.height?`max-height: ${t.height};`:"",o=t.columns.map(b=>{const he=b.sortable!==!1?"sortable":"",ne=b.align?`align-${b.align}`:"",ue=b.fixed?`fixed-${b.fixed}`:"",D=b.width?`width: ${b.width};`:"",Se=n.enabled&&b.resizable!==!1?`<span class="column-resize-handle" data-column-id="${A(b.id)}"></span>`:"",Le=b.colspan&&Number.isInteger(b.colspan)&&b.colspan>0?`colspan="${b.colspan}"`:"",$e=b.rowspan&&Number.isInteger(b.rowspan)&&b.rowspan>0?`rowspan="${b.rowspan}"`:"";return`
423
- <th class="data-table-th ${he} ${ne} ${ue}" data-column-id="${A(b.id)}" style="${D}" ${Le} ${$e}>
424
- <span class="th-content">${A(b.label)}</span>
425
- ${Se}
450
+ `}).join("")}function Wl(t){var _;const e=["mokkun-data-table"];t.striped&&e.push("striped"),t.hoverable!==!1&&e.push("hoverable"),t.bordered&&e.push("bordered"),t.compact&&e.push("compact"),t.responsive!==!1&&e.push("responsive");const i=Pl(t);i.enabled&&e.push("fixed-header");const a=Ul(t);a.enabled&&e.push("resizable-columns"),(_=t.grouping)!=null&&_.enabled&&e.push("grouped"),t.layout==="fixed"&&e.push("layout-fixed");const n=Bl("data-table"),r=t.data??[],s=t.height?`max-height: ${T(String(t.height))};`:"",o=t.columns.map(x=>{const w=x.sortable!==!1?"sortable":"",F=x.align?`align-${x.align}`:"",D=x.fixed?`fixed-${x.fixed}`:"",L=x.width?`width: ${T(String(x.width))};`:"",P=a.enabled&&x.resizable!==!1?`<span class="column-resize-handle" data-column-id="${T(x.id)}"></span>`:"",S=x.colspan&&Number.isInteger(x.colspan)&&x.colspan>0?`colspan="${x.colspan}"`:"",Y=x.rowspan&&Number.isInteger(x.rowspan)&&x.rowspan>0?`rowspan="${x.rowspan}"`:"";return`
451
+ <th class="data-table-th ${w} ${F} ${D}" data-column-id="${T(x.id)}" style="${L}" ${S} ${Y}>
452
+ <span class="th-content">${T(x.label)}</span>
453
+ ${P}
426
454
  </th>
427
- `}).join(""),l=t.selection==="multiple"?'<th class="data-table-th selection-header"><input type="checkbox" class="select-all-checkbox" /></th>':t.selection==="single"?'<th class="data-table-th selection-header"></th>':"",d=t.row_actions&&t.row_actions.length>0?'<th class="data-table-th actions-header">操作</th>':"";let p;if(a.length===0){const b=t.empty_state??{},he=b.title??"データがありません",ne=b.description??"",ue=b.icon??"📭";let D=t.columns.length;t.selection&&t.selection!=="none"&&D++,t.row_actions&&t.row_actions.length>0&&D++;const pe=b.action?`<button type="button" class="btn btn-primary empty-state-action" data-handler="${A(b.action.handler)}">${A(b.action.label)}</button>`:"";p=`
455
+ `}).join(""),l=t.selection==="multiple"?'<th class="data-table-th selection-header"><input type="checkbox" class="select-all-checkbox" /></th>':t.selection==="single"?'<th class="data-table-th selection-header"></th>':"",d=t.row_actions&&t.row_actions.length>0?'<th class="data-table-th actions-header">操作</th>':"";let u;if(r.length===0){const x=t.empty_state??{},w=x.title??"データがありません",F=x.description??"",D=x.icon??"📭";let L=t.columns.length;t.selection&&t.selection!=="none"&&L++,t.row_actions&&t.row_actions.length>0&&L++;const Q=x.action?`<button type="button" class="btn btn-primary empty-state-action" data-handler="${T(x.action.handler)}">${T(x.action.label)}</button>`:"";u=`
428
456
  <tr class="empty-state-row">
429
- <td colspan="${D}" class="empty-state-cell">
457
+ <td colspan="${L}" class="empty-state-cell">
430
458
  <div class="empty-state">
431
459
  <div class="empty-state-icon-wrapper">
432
- <span class="empty-state-icon">${A(ue)}</span>
460
+ <span class="empty-state-icon">${T(D)}</span>
433
461
  </div>
434
462
  <div class="empty-state-content">
435
- <h4 class="empty-state-title">${A(he)}</h4>
436
- ${ne?`<p class="empty-state-description">${A(ne)}</p>`:""}
463
+ <h4 class="empty-state-title">${T(w)}</h4>
464
+ ${F?`<p class="empty-state-description">${T(F)}</p>`:""}
437
465
  </div>
438
- ${pe?`<div class="empty-state-actions">${pe}</div>`:""}
466
+ ${Q?`<div class="empty-state-actions">${Q}</div>`:""}
439
467
  </div>
440
468
  </td>
441
469
  </tr>
442
- `}else p=a.map(b=>{const he=t.columns.map(D=>{var Ti;const pe=D.field??D.id,Se=b[pe],Le=br(Se,D),$e=vr(Se,D),Qr=D.align?`align-${D.align}`:"",Jr=D.fixed?`fixed-${D.fixed}`:"",F=(Ti=b._cellMerge)==null?void 0:Ti[D.id];if(F!=null&&F.hidden)return"";const Xr=F!=null&&F.colspan&&Number.isInteger(F.colspan)&&F.colspan>0?`colspan="${F.colspan}"`:"",eo=F!=null&&F.rowspan&&Number.isInteger(F.rowspan)&&F.rowspan>0?`rowspan="${F.rowspan}"`:"",to=$e?`<span class="${$e}">${A(Le)}</span>`:A(Le);return`<td class="data-table-td ${Qr} ${Jr}" ${Xr} ${eo}>${to}</td>`}).join(""),ne=t.selection==="multiple"?`<td class="data-table-td selection-cell"><input type="checkbox" class="row-checkbox" data-row-id="${A(String(b.id))}" /></td>`:t.selection==="single"?`<td class="data-table-td selection-cell"><input type="radio" name="${s}-selection" class="row-radio" data-row-id="${A(String(b.id))}" /></td>`:"",ue=t.row_actions&&t.row_actions.length>0?`<td class="data-table-td actions-cell">${Cr(t.row_actions,b)}</td>`:"";return`
443
- <tr class="data-table-tr" data-row-id="${A(String(b.id))}">
444
- ${ne}
445
- ${he}
446
- ${ue}
470
+ `}else u=r.map(x=>{const w=t.columns.map(L=>{var gr;const Q=L.field??L.id,P=x[Q],S=jl(P,L),Y=Rl(P,L),de=L.align?`align-${L.align}`:"",M=L.fixed?`fixed-${L.fixed}`:"",V=(gr=x._cellMerge)==null?void 0:gr[L.id];if(V!=null&&V.hidden)return"";const ct=V!=null&&V.colspan&&Number.isInteger(V.colspan)&&V.colspan>0?`colspan="${V.colspan}"`:"",im=V!=null&&V.rowspan&&Number.isInteger(V.rowspan)&&V.rowspan>0?`rowspan="${V.rowspan}"`:"",am=Y?`<span class="${Y}">${T(S)}</span>`:T(S);return`<td class="data-table-td ${de} ${M}" ${ct} ${im}>${am}</td>`}).join(""),F=t.selection==="multiple"?`<td class="data-table-td selection-cell"><input type="checkbox" class="row-checkbox" data-row-id="${T(String(x.id))}" /></td>`:t.selection==="single"?`<td class="data-table-td selection-cell"><input type="radio" name="${n}-selection" class="row-radio" data-row-id="${T(String(x.id))}" /></td>`:"",D=t.row_actions&&t.row_actions.length>0?`<td class="data-table-td actions-cell">${ql(t.row_actions,x)}</td>`:"";return`
471
+ <tr class="data-table-tr" data-row-id="${T(String(x.id))}">
472
+ ${F}
473
+ ${w}
474
+ ${D}
447
475
  </tr>
448
- `}).join("");const u=t.required?'<span class="required-mark">*</span>':"",f=t.description?`<p class="field-description">${A(t.description)}</p>`:"",g=i.enabled?`top: ${i.offset}px;`:"",y=i.enabled?"data-table-thead sticky-header":"data-table-thead",C=a.length===0?"data-table-tbody data-table-empty-tbody":"data-table-tbody";return`
449
- <div class="form-field field-type-data_table" data-field-id="${A(t.id)}">
450
- <label class="field-label">${A(t.label)}${u}</label>
451
- ${f}
452
- <div class="${e.join(" ")}" data-table-id="${s}">
453
- <div class="data-table-wrapper" style="${r}">
476
+ `}).join("");const h=t.required?'<span class="required-mark">*</span>':"",m=t.description?`<p class="field-description">${T(t.description)}</p>`:"",f=i.enabled?`top: ${i.offset}px;`:"",b=i.enabled?"data-table-thead sticky-header":"data-table-thead",y=r.length===0?"data-table-tbody data-table-empty-tbody":"data-table-tbody";return`
477
+ <div class="form-field field-type-data_table" data-field-id="${T(t.id)}">
478
+ ${t.label?`<div class="field-label">${T(t.label)}${h}</div>`:""}
479
+ ${m}
480
+ <div class="${e.join(" ")}" data-table-id="${n}">
481
+ <div class="data-table-wrapper" style="${s}">
454
482
  <table class="data-table">
455
- <thead class="${y}" style="${g}">
483
+ <thead class="${b}" style="${f}">
456
484
  <tr>
457
485
  ${l}
458
486
  ${o}
459
487
  ${d}
460
488
  </tr>
461
489
  </thead>
462
- <tbody class="${C}">
463
- ${p}
490
+ <tbody class="${y}">
491
+ ${u}
464
492
  </tbody>
465
493
  </table>
466
494
  </div>
467
495
  </div>
468
496
  </div>
469
- `}function wr(t){return`${t}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}function de(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function Er(t){const e=wr("photo-manager"),i=t.photos??[],n=t.max_photos??20,s=t.max_file_size??10,a=t.accepted_formats??["JPG","PNG"],r=t.columns??4,o=`
497
+ `}function Yl(t){return`${t}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}function Ce(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function Gl(t){const e=Yl("photo-manager"),i=t.photos??[],a=t.max_photos??20,n=t.max_file_size??10,r=t.accepted_formats??["JPG","PNG"],s=Number.isFinite(Number(t.columns??4))?Number(t.columns??4):4,o=`
470
498
  <div class="photo-upload-area" data-manager-id="${e}">
471
499
  <div class="upload-icon">📷</div>
472
500
  <div class="upload-text">ここにファイルをドラッグ&ドロップ<br>または</div>
473
501
  <button type="button" class="btn btn-primary photo-select-btn">ファイルを選択</button>
474
- <input type="file" class="photo-file-input" accept="${a.map(u=>`.${u.toLowerCase()}`).join(",")}" multiple hidden />
475
- <div class="upload-note">対応形式: ${a.join(", ")} / 最大${s}MB/枚 / 最大${n}枚まで</div>
502
+ <input type="file" class="photo-file-input" accept="${r.map(h=>`.${h.toLowerCase()}`).join(",")}" multiple hidden />
503
+ <div class="upload-note">対応形式: ${r.join(", ")} / 最大${n}MB/枚 / 最大${a}枚まで</div>
476
504
  </div>
477
505
  `,l=`
478
506
  <div class="photo-count">
479
- 登録済み写真: <strong>${i.length}枚</strong> / 上限${n}枚
507
+ 登録済み写真: <strong>${i.length}枚</strong> / 上限${a}枚
480
508
  </div>
481
509
  `,d=i.length>0?`
482
510
  <div class="photo-drag-hint">
483
511
  💡 写真をドラッグ&ドロップして表示順序を変更できます
484
512
  </div>
485
- `:"",p=i.length>0?`
486
- <div class="photo-grid" style="--photo-columns: ${r}" data-manager-id="${e}">
487
- ${i.map((u,f)=>{const g=u.is_main??f===0;return`
488
- <div class="photo-item" data-photo-id="${de(u.id)}" data-index="${f}" draggable="true">
489
- <img src="${de(u.src)}" alt="${de(u.alt??`写真${f+1}`)}" loading="lazy" />
490
- ${g?'<span class="photo-main-badge">メイン</span>':""}
491
- <span class="photo-order-badge">${f+1}</span>
513
+ `:"",u=i.length>0?`
514
+ <div class="photo-grid" style="--photo-columns: ${s}" data-manager-id="${e}">
515
+ ${i.map((h,m)=>{const f=h.is_main??m===0;return`
516
+ <div class="photo-item" data-photo-id="${Ce(h.id)}" data-index="${m}" draggable="true">
517
+ <img src="${Ce(h.src)}" alt="${Ce(h.alt??`写真${m+1}`)}" loading="lazy" />
518
+ ${f?'<span class="photo-main-badge">メイン</span>':""}
519
+ <span class="photo-order-badge">${m+1}</span>
492
520
  <div class="photo-overlay">
493
- <button type="button" class="btn btn-primary btn-sm photo-set-main-btn" ${g?"disabled":""}>メインに設定</button>
521
+ <button type="button" class="btn btn-primary btn-sm photo-set-main-btn" ${f?"disabled":""}>メインに設定</button>
494
522
  <button type="button" class="btn btn-danger btn-sm photo-delete-btn">削除</button>
495
523
  </div>
496
524
  </div>
@@ -502,38 +530,38 @@
502
530
  </div>
503
531
  `;return`
504
532
  <div class="field-wrapper field-type-photo_manager">
505
- ${t.label?`<label class="field-label">${de(t.label)}</label>`:""}
506
- ${t.description?`<p class="field-description">${de(t.description)}</p>`:""}
533
+ ${t.label?`<label class="field-label">${Ce(t.label)}</label>`:""}
534
+ ${t.description?`<p class="field-description">${Ce(t.description)}</p>`:""}
507
535
  <div
508
536
  class="photo-manager"
509
537
  id="${e}"
510
- data-config='${JSON.stringify({maxPhotos:n,maxFileSize:s,acceptedFormats:a,columns:r})}'
538
+ data-config='${JSON.stringify({maxPhotos:a,maxFileSize:n,acceptedFormats:r,columns:s})}'
511
539
  role="region"
512
- aria-label="${t.label??"写真管理"}"
540
+ aria-label="${Ce(t.label||"写真管理")}"
513
541
  >
514
542
  ${o}
515
543
  ${l}
516
544
  ${d}
517
- ${p}
545
+ ${u}
518
546
  </div>
519
547
  </div>
520
- `}function Ar(t){const e=[j(t)];t.accept&&t.accept.length>0&&e.push(`accept="${t.accept.join(",")}"`),t.multiple&&e.push("multiple");const i=t.drag_drop?"with-dropzone":"";let n=`<input type="file" class="form-file" ${e.join(" ")} />`;if(t.drag_drop&&(n=`
521
- <div class="file-dropzone ${i}">
522
- ${n}
548
+ `}function Kl(t){const e=[ne(t)],i=t.accept,a=Array.isArray(i)?i.map(String):typeof i=="string"?i.split(",").map(s=>s.trim()).filter(Boolean):[];a.length>0&&e.push(`accept="${g(a.join(","))}"`),t.multiple&&e.push("multiple");const n=t.drag_drop?"with-dropzone":"";let r=`<input type="file" class="form-file" ${e.join(" ")} />`;if(t.drag_drop&&(r=`
549
+ <div class="file-dropzone ${n}">
550
+ ${r}
523
551
  <div class="dropzone-label">
524
552
  ファイルをドラッグ&ドロップ または クリックして選択
525
553
  </div>
526
554
  </div>
527
- `),t.max_size){const s=(t.max_size/1048576).toFixed(1);n+=`<p class="file-size-hint">最大ファイルサイズ: ${s} MB</p>`}return x(t,n)}function Ir(t){const e=t.height??"300",i=t.width??"100%",n=t.show_open_link!==!1,s=`
528
- <div class="google-map-embed-container" data-field-id="${m(t.id)}">
555
+ `),t.max_size){const s=(t.max_size/1048576).toFixed(1);r+=`<p class="file-size-hint">最大ファイルサイズ: ${s} MB</p>`}return $(t,r)}function Zl(t){const e=t.height??"300",i=t.width??"100%",a=t.show_open_link!==!1,n=`
556
+ <div class="google-map-embed-container" data-field-id="${g(t.id)}">
529
557
  <div class="google-map-embed-input-wrapper">
530
558
  <input
531
559
  type="text"
532
560
  inputmode="url"
533
- id="${m(t.id)}"
534
- name="${m(t.id)}"
561
+ id="${g(t.id)}"
562
+ name="${g(t.id)}"
535
563
  class="form-input google-map-embed-input"
536
- placeholder="${m(t.placeholder??"Google Maps URL を入力してください")}"
564
+ placeholder="${g(t.placeholder??"Google Maps URL を入力してください")}"
537
565
  maxlength="2048"
538
566
  ${t.required?"required":""}
539
567
  ${t.disabled?"disabled":""}
@@ -541,12 +569,12 @@
541
569
  />
542
570
  </div>
543
571
  <div class="google-map-embed-error"></div>
544
- <div class="google-map-embed-preview" data-height="${m(e)}" data-width="${m(i)}">
572
+ <div class="google-map-embed-preview" data-height="${g(e)}" data-width="${g(i)}">
545
573
  <div class="google-map-embed-placeholder">
546
574
  Google Maps URL を入力すると、ここにプレビューが表示されます
547
575
  </div>
548
576
  </div>
549
- ${n?`
577
+ ${a?`
550
578
  <div class="google-map-embed-link-container">
551
579
  <a href="#" class="google-map-embed-open-link disabled" target="_blank" rel="noopener noreferrer" aria-disabled="true">
552
580
  Googleマップで開く
@@ -554,22 +582,22 @@
554
582
  </div>
555
583
  `:""}
556
584
  </div>
557
- `;return x(t,s)}function Sr(t){const e=t.accepted_formats??["image/jpeg","image/png","image/webp"],i=t.max_file_size??5*1024*1024,n=t.max_files??10,s=e.map(Ca).join(", "),a=xa(i),r=`
585
+ `;return $(t,n)}function Ql(t){const e=t.accepted_formats??["image/jpeg","image/png","image/webp"],i=t.max_file_size??5*1024*1024,a=t.max_files??10,n=e.map(qo).join(", "),r=Uo(i),s=`
558
586
  <div class="image-uploader-container"
559
- data-field-id="${m(t.id)}"
560
- data-accepted-formats="${m(e.join(","))}"
561
- data-max-file-size="${i}"
562
- data-max-files="${n}"
563
- data-min-files="${t.min_files??0}">
587
+ data-field-id="${g(t.id)}"
588
+ data-accepted-formats="${g(e.join(","))}"
589
+ data-max-file-size="${Number(i)||0}"
590
+ data-max-files="${Number(a)||0}"
591
+ data-min-files="${Number(t.min_files??0)||0}">
564
592
  <div class="uploader-wrapper">
565
593
  <div class="upload-dropzone">
566
594
  <input type="file"
567
595
  class="file-input"
568
- id="${m(t.id)}-input"
596
+ id="${g(t.id)}-input"
569
597
  accept="${e.join(",")}"
570
598
  multiple
571
599
  ${t.disabled?"disabled":""} />
572
- <label class="dropzone-label" for="${m(t.id)}-input">
600
+ <label class="dropzone-label" for="${g(t.id)}-input">
573
601
  <div class="dropzone-icon">
574
602
  <svg viewBox="0 0 24 24" width="48" height="48">
575
603
  <path fill="currentColor" d="M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"/>
@@ -579,125 +607,495 @@
579
607
  </label>
580
608
  </div>
581
609
  <div class="uploader-hints">
582
- <span class="hint-formats">対応形式: ${s}</span>
583
- <span class="hint-size">最大サイズ: ${a}/枚</span>
584
- <span class="hint-count">最大${n}枚</span>
610
+ <span class="hint-formats">対応形式: ${n}</span>
611
+ <span class="hint-size">最大サイズ: ${r}/枚</span>
612
+ <span class="hint-count">最大${a}枚</span>
585
613
  </div>
586
614
  <div class="image-grid"></div>
587
615
  </div>
588
616
  </div>
589
- `;return x(t,r)}function Lr(t){const e=t.item_fields??[],i=t.max_items,n=m(t.add_button_label??"Add Item"),s=e.map(l=>ki(l)).join(""),a=i?`1 / ${i}`:"1 items",o=`
590
- <div class="mokkun-repeater ${t.sortable?"sortable":""}">
591
- <div class="repeater-wrapper">
592
- <div class="repeater-header">
593
- <span class="repeater-counter">${m(a)}</span>
594
- </div>
595
- <div class="repeater-items">
617
+ `;return $(t,s)}const Da=20;function Oa(t,e){const i={...t,id:`${e}${t.id}`},a=n=>Array.isArray(n)?n.map(r=>Oa(r,e)):n;Array.isArray(i.item_fields)&&(i.item_fields=a(i.item_fields));for(const n of["items","tabs"])Array.isArray(i[n])&&(i[n]=i[n].map(r=>r&&typeof r=="object"&&Array.isArray(r.fields)?{...r,fields:a(r.fields)}:r));return i}function Jl(t){const e=t.item_fields??[],i=t.max_items,a=g(t.add_button_label??"追加"),n=Math.max(0,Math.min(Number(t.min_items??1)||0,t.max_items??Da,Da)),r=i?`${n} / ${i} 件`:`${n} 件`,s=t.sortable?"sortable":"",o=Array.from({length:n},(d,u)=>{const h=e.map(m=>St(Oa(m,`${t.id}_${u}_`))).join("");return`
596
618
  <div class="repeater-item expanded">
597
619
  <div class="repeater-item-header">
598
620
  ${t.sortable?'<div class="repeater-item-handle"></div>':""}
599
- <span class="repeater-item-number">#1</span>
621
+ <span class="repeater-item-number">#${u+1}</span>
600
622
  <div class="repeater-item-spacer"></div>
601
623
  </div>
602
624
  <div class="repeater-item-content">
603
- ${s}
625
+ ${h}
604
626
  </div>
605
- </div>
627
+ </div>`}).join(""),l=`
628
+ <div class="mokkun-repeater ${s}">
629
+ <div class="repeater-wrapper">
630
+ <div class="repeater-header">
631
+ <span class="repeater-counter">${g(r)}</span>
632
+ </div>
633
+ <div class="repeater-items">${o}
606
634
  </div>
607
635
  <div class="repeater-footer">
608
- <button type="button" class="repeater-add-btn">${n}</button>
636
+ <button type="button" class="repeater-add-btn">${a}</button>
609
637
  </div>
610
638
  </div>
611
639
  </div>
612
- `;return x(t,o)}function ki(t){switch(t.type){case"text":case"number":case"date_picker":case"time_picker":return ie.renderField(t);case"textarea":return We.renderField(t);case"select":case"multi_select":return we.renderField(t);case"combobox":return fi.renderField(t);case"radio_group":return Ea.renderField(t);case"checkbox":case"checkbox_group":return Ee.renderField(t);case"duration_picker":return Ia.renderField(t);case"duration_input":return Sa.renderField(t);case"file_upload":return Ar(t);case"image_uploader":return Sr(t);case"repeater":return Lr(t);case"data_table":return kr(t);case"google_map_embed":return Ir(t);case"photo_manager":return Er(t);case"heading":return Aa.renderField(t);case"pagination":return La.renderField(t);case"toggle":return $a.renderField(t);case"badge":return _a.renderField(t);case"browser":return Na.renderField(t);case"calendar":return Ta.renderField(t);case"tooltip":return mi.renderField(t);case"float_area":return Ma.renderField(t);case"loader":return Da.renderField(t);case"notification_bar":return Ha.renderField(t);case"response_message":return Pa.renderField(t);case"timeline":return Wa.renderField(t);case"chip":return Ya.renderField(t);case"status_label":return Za.renderField(t);case"segmented_control":return Ka.renderField(t);case"tabs":return Qa.renderField(t);case"line_clamp":return Ja.renderField(t);case"disclosure":return Xa.renderField(t);case"accordion_panel":return er.renderField(t);case"section_nav":return xi.renderField(t);case"definition_list":return sr.renderField(t);case"stepper":return lr.renderField(t);case"information_panel":return dr.renderField(t);case"dropdown":return hr.renderField(t);case"delete_confirm_dialog":return Ci.renderField(t);default:return x(t,`<div class="unknown-field">不明なフィールドタイプ: ${t.type}</div>`)}}function Ke(t){return t.map(ki).join("")}function P(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function $r(t){switch(t){case"primary":return"btn btn-primary";case"secondary":return"btn btn-secondary";case"danger":return"btn btn-danger";case"link":return"btn btn-link";default:return"btn btn-secondary"}}function _r(t){const e=$r(t.style),i=t.icon?`<span class="btn-icon">${P(t.icon)}</span>`:"",n=[`data-action-id="${P(t.id)}"`,`data-action-type="${P(t.type)}"`];return t.type==="navigate"&&n.push(`data-navigate-to="${P(t.to)}"`),t.type==="custom"&&n.push(`data-handler="${P(t.handler)}"`),t.type==="submit"&&t.url&&(n.push(`data-url="${P(t.url)}"`),t.method&&n.push(`data-method="${P(t.method)}"`)),t.confirm&&(n.push(`data-confirm-title="${P(t.confirm.title)}"`),n.push(`data-confirm-message="${P(t.confirm.message)}"`)),`
640
+ `;return $(t,l)}function St(t){switch(t.type){case"text":case"number":case"date_picker":case"time_picker":return ke.renderField(t);case"textarea":return $t.renderField(t);case"select":case"multi_select":return We.renderField(t);case"combobox":return Aa.renderField(t);case"radio_group":return Go.renderField(t);case"checkbox":case"checkbox_group":return Ye.renderField(t);case"duration_picker":return Zo.renderField(t);case"duration_input":return Qo.renderField(t);case"file_upload":return Kl(t);case"image_uploader":return Ql(t);case"repeater":return Jl(t);case"data_table":return Wl(t);case"google_map_embed":return Zl(t);case"photo_manager":return Gl(t);case"heading":return Ko.renderField(t);case"pagination":return Jo.renderField(t);case"toggle":return Xo.renderField(t);case"badge":return il.renderField(t);case"browser":return al.renderField(t);case"calendar":return nl.renderField(t);case"tooltip":return Ea.renderField(t);case"float_area":return rl.renderField(t);case"loader":return sl.renderField(t);case"notification_bar":return dl.renderField(t);case"response_message":return pl.renderField(t);case"timeline":return vl.renderField(t);case"chip":return _l.renderField(t);case"status_label":return wl.renderField(t);case"segmented_control":return kl.renderField(t);case"tabs":return Et.renderField(t);case"line_clamp":return $l.renderField(t);case"disclosure":return Al.renderField(t);case"accordion_panel":return El.renderField(t);case"section_nav":return Nl.renderField(t);case"definition_list":return Tl.renderField(t);case"stepper":return Ml.renderField(t);case"information_panel":return Fl.renderField(t);case"dropdown":return Vl.renderField(t);case"delete_confirm_dialog":return za.renderField(t);default:return $(t,`<div class="unknown-field">不明なフィールドタイプ: ${t.type}</div>`)}}function ze(t){const e=[];let i=0;for(;i<t.length;)if(Ma.has(t[i].type)){let a=i;for(;a<t.length&&Ma.has(t[a].type);)a++;e.push(`<div class="form-field-inline-group">${t.slice(i,a).map(St).join("")}</div>`),i=a}else e.push(St(t[i])),i++;return e.join("")}const Ma=new Set(["badge","chip","status_label"]);function J(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function Xl(t){switch(t){case"primary":return"btn btn-primary";case"secondary":return"btn btn-secondary";case"danger":return"btn btn-danger";case"link":return"btn btn-link";default:return"btn btn-secondary"}}function Ha(t){const e=Xl(t.style),i=Ke(t.icon,"btn-icon"),a=[`data-action-id="${J(t.id)}"`,`data-action-type="${J(t.type)}"`];return t.style&&a.push(`data-action-style="${J(t.style)}"`),t.type==="navigate"&&a.push(`data-navigate-to="${J(t.to)}"`),t.type==="custom"&&a.push(`data-handler="${J(t.handler)}"`),t.type==="submit"&&t.url&&(a.push(`data-url="${J(t.url)}"`),t.method&&a.push(`data-method="${J(t.method)}"`)),t.confirm&&(a.push(`data-confirm-title="${J(t.confirm.title)}"`),a.push(`data-confirm-message="${J(t.confirm.message)}"`),t.confirm.confirm_label&&a.push(`data-confirm-label="${J(t.confirm.confirm_label)}"`),t.confirm.cancel_label&&a.push(`data-cancel-label="${J(t.confirm.cancel_label)}"`)),`
613
641
  <button
614
642
  type="${t.type==="submit"?"submit":t.type==="reset"?"reset":"button"}"
615
643
  class="${e}"
616
- ${n.join(" ")}
644
+ ${a.join(" ")}
617
645
  >
618
646
  ${i}
619
- <span class="btn-label">${P(t.label)}</span>
647
+ <span class="btn-label">${J(t.label)}</span>
620
648
  </button>
621
- `}function Nr(t){return t.length===0?"":`<div class="actions">${t.map(_r).join("")}</div>`}function U(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function Tr(t){if(!t)return"";const e=[];return t.columns&&t.columns>1&&(e.push("display: grid"),e.push(`grid-template-columns: repeat(${t.columns}, 1fr)`)),t.gap&&e.push(`gap: ${t.gap}`),e.length>0?`style="${e.join("; ")}"`:""}function Qe(t){const e=t.description?`<p class="screen-description">${U(t.description)}</p>`:"";return`
649
+ `}function ed(t){return t.length===0?"":`<div class="actions">${t.map(Ha).join("")}</div>`}class td{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"documentClickHandler",null);this.config=i,this.container=e,this.callbacks=a,this.state=this.createInitialState()}render(){W(this.container),this.container.className="mokkun-app-header",this.container.setAttribute("role","banner");const e=this.renderHeader();this.container.appendChild(e);const i=this.renderAppNavi();this.container.appendChild(i),this.setupDocumentClickHandler()}setCurrentTenant(e){var i,a;this.state.currentTenantId!==e&&(this.state={...this.state,currentTenantId:e,tenantDropdownOpen:!1},this.render(),(a=(i=this.callbacks).onTenantChange)==null||a.call(i,e))}setActiveNav(e){this.state={...this.state,activeNavId:e},this.render()}getState(){return{...this.state}}destroy(){this.documentClickHandler&&(document.removeEventListener("click",this.documentClickHandler),this.documentClickHandler=null),W(this.container)}createInitialState(){var i,a,n;const e=(i=this.config.navigations)==null?void 0:i.find(r=>r.active);return{currentTenantId:this.config.currentTenantId??((n=(a=this.config.tenants)==null?void 0:a[0])==null?void 0:n.id)??"",tenantDropdownOpen:!1,userDropdownOpen:!1,appLauncherOpen:!1,activeNavId:(e==null?void 0:e.id)??null,navDropdownOpen:null,mobileMenuOpen:!1}}renderHeader(){const e=c("div",{className:"app-header-bar"}),i=c("div",{className:"app-header-left"});i.appendChild(this.renderLogo()),e.appendChild(i);const a=c("div",{className:"app-header-center"});this.config.tenants&&this.config.tenants.length>0&&a.appendChild(this.renderTenantSwitcher()),e.appendChild(a);const n=c("div",{className:"app-header-right"});return this.config.appLauncher&&this.config.appLauncher.length>0&&n.appendChild(this.renderAppLauncher()),this.config.helpPageUrl&&n.appendChild(this.renderHelpButton()),n.appendChild(this.renderUserMenu()),e.appendChild(n),e}renderLogo(){const e=c("div",{className:"app-header-logo"});if(this.config.logoHref){const i=c("a",{className:"app-header-logo-link",attributes:{href:this.config.logoHref,"aria-label":this.config.logoAlt??this.config.systemName??"ホーム"}});this.config.logo?i.innerHTML=this.config.logo:i.innerHTML=this.renderDefaultLogo(),i.addEventListener("click",a=>{this.callbacks.onLogoClick&&(a.preventDefault(),this.callbacks.onLogoClick())}),e.appendChild(i)}else{const i=c("span",{className:"app-header-logo-text"});this.config.logo?i.innerHTML=this.config.logo:i.innerHTML=this.renderDefaultLogo(),e.appendChild(i)}return e}renderDefaultLogo(){return`<span class="app-header-logo-mark" aria-hidden="true"></span><span class="app-header-logo-name">${g(this.config.systemName||"mokkun")}</span>`}renderTenantSwitcher(){var s;const e=c("div",{className:"app-header-tenant"}),i=(s=this.config.tenants)==null?void 0:s.find(o=>o.id===this.state.currentTenantId),a=c("button",{className:`app-header-tenant-button ${this.state.tenantDropdownOpen?"is-open":""}`,attributes:{type:"button","aria-haspopup":"listbox","aria-expanded":String(this.state.tenantDropdownOpen)}}),n=c("span",{className:"app-header-tenant-label",textContent:(i==null?void 0:i.name)??"企業を選択"});a.appendChild(n);const r=c("span",{className:"app-header-dropdown-icon"});if(r.innerHTML=this.renderChevronIcon(),a.appendChild(r),a.addEventListener("click",o=>{o.stopPropagation(),this.toggleTenantDropdown()}),e.appendChild(a),this.state.tenantDropdownOpen){const o=this.renderTenantDropdownMenu();e.appendChild(o)}return e}renderTenantDropdownMenu(){const e=c("div",{className:"app-header-dropdown-menu",attributes:{role:"listbox"}});for(const i of this.config.tenants??[]){const a=i.id===this.state.currentTenantId,n=c("button",{className:`app-header-dropdown-item ${a?"is-selected":""}`,attributes:{type:"button",role:"option","aria-selected":String(a)},textContent:i.name});n.addEventListener("click",()=>{this.setCurrentTenant(i.id)}),e.appendChild(n)}return e}renderAppLauncher(){const e=c("div",{className:"app-header-launcher"}),i=c("button",{className:`app-header-icon-button ${this.state.appLauncherOpen?"is-open":""}`,attributes:{type:"button","aria-label":"アプリ一覧","aria-haspopup":"menu","aria-expanded":String(this.state.appLauncherOpen)}});if(i.innerHTML=this.renderGridIcon(),i.addEventListener("click",a=>{a.stopPropagation(),this.toggleAppLauncher()}),e.appendChild(i),this.state.appLauncherOpen){const a=this.renderAppLauncherDropdown();e.appendChild(a)}return e}renderAppLauncherDropdown(){const e=c("div",{className:"app-header-dropdown-menu app-header-launcher-menu",attributes:{role:"menu"}});for(const i of this.config.appLauncher??[]){const a=c("a",{className:"app-header-launcher-item",attributes:{href:i.url,role:"menuitem"}});if(i.icon){const r=c("span",{className:"app-header-launcher-icon"});r.innerHTML=i.icon,a.appendChild(r)}const n=c("span",{className:"app-header-launcher-name",textContent:i.name});a.appendChild(n),a.addEventListener("click",r=>{var s,o;r.preventDefault(),this.state.appLauncherOpen=!1,this.render(),(o=(s=this.callbacks).onAppLauncherClick)==null||o.call(s,i.id,i.url)}),e.appendChild(a)}return e}renderHelpButton(){const e=c("a",{className:"app-header-icon-button",attributes:{href:this.config.helpPageUrl??"#","aria-label":"ヘルプ",target:"_blank",rel:"noopener noreferrer"}});return e.innerHTML=this.renderHelpIcon(),e.addEventListener("click",i=>{this.callbacks.onHelpClick&&(i.preventDefault(),this.callbacks.onHelpClick())}),e}renderUserMenu(){const e=c("div",{className:"app-header-user"}),i=c("button",{className:`app-header-user-button ${this.state.userDropdownOpen?"is-open":""}`,attributes:{type:"button","aria-haspopup":"menu","aria-expanded":String(this.state.userDropdownOpen)}}),a=c("span",{className:"app-header-avatar"});if(this.config.userInfo.avatarUrl){const s=c("img",{attributes:{src:this.config.userInfo.avatarUrl,alt:this.config.userInfo.name}});a.appendChild(s)}else a.textContent=this.config.userInfo.name.charAt(0).toUpperCase();i.appendChild(a);const n=c("span",{className:"app-header-user-name",textContent:this.config.userInfo.name});i.appendChild(n);const r=c("span",{className:"app-header-dropdown-icon"});if(r.innerHTML=this.renderChevronIcon(),i.appendChild(r),i.addEventListener("click",s=>{s.stopPropagation(),this.toggleUserDropdown()}),e.appendChild(i),this.state.userDropdownOpen){const s=this.renderUserDropdownMenu();e.appendChild(s)}return e}renderUserDropdownMenu(){const e=c("div",{className:"app-header-dropdown-menu app-header-user-menu",attributes:{role:"menu"}}),i=c("div",{className:"app-header-user-info"}),a=c("div",{className:"app-header-user-info-name",textContent:this.config.userInfo.name});if(i.appendChild(a),this.config.userInfo.email){const s=c("div",{className:"app-header-user-info-email",textContent:this.config.userInfo.email});i.appendChild(s)}e.appendChild(i);const n=c("div",{className:"app-header-dropdown-divider"});e.appendChild(n);const r=[{id:"profile",label:"プロフィール"},{id:"settings",label:"設定"},{id:"logout",label:"ログアウト"}];for(const s of r){const o=c("button",{className:`app-header-dropdown-item ${s.id==="logout"?"is-danger":""}`,attributes:{type:"button",role:"menuitem"},textContent:s.label});o.addEventListener("click",()=>{var l,d;this.state.userDropdownOpen=!1,this.render(),(d=(l=this.callbacks).onUserMenuClick)==null||d.call(l,s.id)}),e.appendChild(o)}return e}renderAppNavi(){const e=c("div",{className:"app-header-navi"}),i=c("div",{className:"app-header-navi-left"}),a=c("h1",{className:"app-header-app-name",textContent:this.config.appName});if(i.appendChild(a),e.appendChild(i),this.config.navigations&&this.config.navigations.length>0){const s=c("nav",{className:"app-header-navi-center",attributes:{"aria-label":"アプリナビゲーション"}});s.appendChild(this.renderNavigation()),e.appendChild(s)}const n=c("div",{className:"app-header-navi-right"});this.config.showDataSync&&n.appendChild(this.renderDataSyncButton()),this.config.showReleaseNote&&n.appendChild(this.renderReleaseNoteButton()),n.childNodes.length>0&&e.appendChild(n);const r=this.renderMobileMenuButton();return e.appendChild(r),e}renderNavigation(){const e=c("ul",{className:"app-header-nav-list",attributes:{role:"menubar"}});for(const i of this.config.navigations??[]){const a=this.renderNavItem(i);e.appendChild(a)}return e}renderNavItem(e){const i=e.id===this.state.activeNavId||e.active,a=e.dropdown&&e.dropdown.length>0,n=this.state.navDropdownOpen===e.id,r=c("li",{className:"app-header-nav-item",attributes:{role:"none"}});if(a){const s=c("button",{className:`app-header-nav-button ${i?"is-active":""} ${e.disabled?"is-disabled":""}`,attributes:{type:"button",role:"menuitem","aria-haspopup":"menu","aria-expanded":String(n),...e.disabled?{"aria-disabled":"true"}:{}}}),o=c("span",{textContent:e.label});s.appendChild(o);const l=c("span",{className:"app-header-nav-dropdown-icon"});if(l.innerHTML=this.renderChevronIcon(),s.appendChild(l),e.disabled||s.addEventListener("click",d=>{d.stopPropagation(),this.toggleNavDropdown(e.id)}),r.appendChild(s),n){const d=this.renderNavDropdownMenu(e);r.appendChild(d)}}else if(e.href){const s=c("a",{className:`app-header-nav-link ${i?"is-active":""} ${e.disabled?"is-disabled":""}`,attributes:{href:e.href,role:"menuitem",...e.disabled?{"aria-disabled":"true",tabindex:"-1"}:{}},textContent:e.label});s.addEventListener("click",o=>{if(e.disabled){o.preventDefault();return}this.callbacks.onNavClick&&(o.preventDefault(),this.callbacks.onNavClick(e.id,e.href))}),r.appendChild(s)}else{const s=c("button",{className:`app-header-nav-button ${i?"is-active":""} ${e.disabled?"is-disabled":""}`,attributes:{type:"button",role:"menuitem",...e.disabled?{"aria-disabled":"true"}:{}},textContent:e.label});e.disabled||s.addEventListener("click",()=>{var o,l;(l=(o=this.callbacks).onNavClick)==null||l.call(o,e.id)}),r.appendChild(s)}return r}renderNavDropdownMenu(e){const i=c("div",{className:"app-header-dropdown-menu app-header-nav-dropdown",attributes:{role:"menu"}});for(const a of e.dropdown??[])if(a.divider){const n=c("div",{className:"app-header-dropdown-divider"});i.appendChild(n)}else{const n=c("button",{className:"app-header-dropdown-item",attributes:{type:"button",role:"menuitem"},textContent:a.label});n.addEventListener("click",()=>{var r,s;this.state.navDropdownOpen=null,this.render(),(s=(r=this.callbacks).onDropdownItemClick)==null||s.call(r,e.id,a.id,a.href)}),i.appendChild(n)}return i}renderDataSyncButton(){const e=c("button",{className:`app-header-navi-button ${this.config.dataSyncing?"is-syncing":""}`,attributes:{type:"button","aria-label":"データ同期"}});e.innerHTML=this.renderSyncIcon();const i=c("span",{textContent:"データ同期"});return e.appendChild(i),e}renderReleaseNoteButton(){const e=c("button",{className:"app-header-navi-button app-header-release-note",attributes:{type:"button","aria-label":"リリースノート"}}),i=c("span",{className:"app-header-release-icon"});i.innerHTML=this.renderBellIcon(),e.appendChild(i);const a=c("span",{textContent:this.config.releaseNoteText??"リリースノート"});return e.appendChild(a),e}renderMobileMenuButton(){const e=c("button",{className:"app-header-mobile-menu-button",attributes:{type:"button","aria-label":"メニュー","aria-expanded":String(this.state.mobileMenuOpen)}});return e.innerHTML=this.renderMenuIcon(),e.addEventListener("click",()=>{this.state.mobileMenuOpen=!this.state.mobileMenuOpen,this.render()}),e}setupDocumentClickHandler(){this.documentClickHandler&&document.removeEventListener("click",this.documentClickHandler),this.documentClickHandler=()=>{let e=!1;this.state.tenantDropdownOpen&&(this.state.tenantDropdownOpen=!1,e=!0),this.state.userDropdownOpen&&(this.state.userDropdownOpen=!1,e=!0),this.state.appLauncherOpen&&(this.state.appLauncherOpen=!1,e=!0),this.state.navDropdownOpen!==null&&(this.state.navDropdownOpen=null,e=!0),e&&this.render()},document.addEventListener("click",this.documentClickHandler)}toggleTenantDropdown(){this.state={...this.state,tenantDropdownOpen:!this.state.tenantDropdownOpen,userDropdownOpen:!1,appLauncherOpen:!1,navDropdownOpen:null},this.render()}toggleUserDropdown(){this.state={...this.state,userDropdownOpen:!this.state.userDropdownOpen,tenantDropdownOpen:!1,appLauncherOpen:!1,navDropdownOpen:null},this.render()}toggleAppLauncher(){this.state={...this.state,appLauncherOpen:!this.state.appLauncherOpen,tenantDropdownOpen:!1,userDropdownOpen:!1,navDropdownOpen:null},this.render()}toggleNavDropdown(e){this.state={...this.state,navDropdownOpen:this.state.navDropdownOpen===e?null:e,tenantDropdownOpen:!1,userDropdownOpen:!1,appLauncherOpen:!1},this.render()}renderChevronIcon(){return`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
650
+ <path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
651
+ </svg>`}renderGridIcon(){return`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
652
+ <rect x="3" y="3" width="5" height="5" rx="1" fill="currentColor"/>
653
+ <rect x="12" y="3" width="5" height="5" rx="1" fill="currentColor"/>
654
+ <rect x="3" y="12" width="5" height="5" rx="1" fill="currentColor"/>
655
+ <rect x="12" y="12" width="5" height="5" rx="1" fill="currentColor"/>
656
+ </svg>`}renderHelpIcon(){return`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
657
+ <circle cx="10" cy="10" r="7" stroke="currentColor" stroke-width="1.5"/>
658
+ <path d="M10 14V14.01M10 11C10 9.5 11.5 9 11.5 7.5C11.5 6.12 10.38 5 9 5C7.62 5 6.5 6.12 6.5 7.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
659
+ </svg>`}renderSyncIcon(){return`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
660
+ <path d="M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
661
+ <path d="M12 4L14 2L16 4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
662
+ </svg>`}renderBellIcon(){return`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
663
+ <path d="M8 2C5.79086 2 4 3.79086 4 6V9L3 11H13L12 9V6C12 3.79086 10.2091 2 8 2Z" stroke="currentColor" stroke-width="1.5"/>
664
+ <path d="M6 11V12C6 13.1046 6.89543 14 8 14C9.10457 14 10 13.1046 10 12V11" stroke="currentColor" stroke-width="1.5"/>
665
+ </svg>`}renderMenuIcon(){return`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
666
+ <path d="M3 6H21M3 12H21M3 18H21" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
667
+ </svg>`}}class id{constructor(e,i,a={}){p(this,"config");p(this,"state");p(this,"callbacks");p(this,"container");p(this,"instanceId");p(this,"clickOutsideHandler",null);this.validateConfig(i,e),this.config=i,this.container=e,this.callbacks=a,this.instanceId=N("app-navi"),this.state=this.createInitialState()}render(){W(this.container),this.detachEventListeners(),this.container.className="mokkun-app-navi",this.container.setAttribute("role","navigation"),this.container.setAttribute("aria-label",this.config.label??"アプリナビゲーション");const e=c("div",{className:"app-navi-wrapper"}),i=this.renderNavList();if(e.appendChild(i),this.config.additionalArea){const a=this.renderAdditionalArea();e.appendChild(a)}this.container.appendChild(e),this.state.openDropdownId!==null&&this.attachClickOutsideHandler()}getState(){return{...this.state,items:this.state.items.map(e=>({...e}))}}setCurrent(e){return this.state.items.findIndex(a=>a.id===e)===-1?!1:(this.state={...this.state,items:this.state.items.map(a=>({...a,current:a.id===e}))},this.render(),!0)}clearCurrent(){this.state={...this.state,items:this.state.items.map(e=>({...e,current:!1}))},this.render()}openDropdown(e){var a,n;const i=this.state.items.find(r=>r.id===e);return!i||i.type!=="dropdown"?!1:(this.state={...this.state,openDropdownId:e},this.render(),(n=(a=this.callbacks).onDropdownToggle)==null||n.call(a,e,!0),!0)}closeDropdown(){var i,a;if(this.state.openDropdownId===null)return;const e=this.state.openDropdownId;this.state={...this.state,openDropdownId:null},this.render(),(a=(i=this.callbacks).onDropdownToggle)==null||a.call(i,e,!1)}addItem(e,i){const a=[...this.state.items];i!==void 0&&i>=0&&i<=a.length?a.splice(i,0,e):a.push(e),this.state={...this.state,items:a},this.render()}removeItem(e){return this.state.items.findIndex(a=>a.id===e)===-1?!1:(this.state={...this.state,items:this.state.items.filter(a=>a.id!==e),openDropdownId:this.state.openDropdownId===e?null:this.state.openDropdownId},this.render(),!0)}updateItem(e,i){return this.state.items.findIndex(n=>n.id===e)===-1?!1:(this.state={...this.state,items:this.state.items.map(n=>n.id===e?{...n,...i}:n)},this.render(),!0)}destroy(){this.detachEventListeners(),W(this.container)}validateConfig(e,i){if(!(e!=null&&e.items)||!Array.isArray(e.items))throw new Error("AppNavi: config.items must be an array");if(!(i instanceof HTMLElement))throw new Error("AppNavi: container must be an HTMLElement");for(const a of e.items){if(!a.id||typeof a.id!="string")throw new Error("AppNavi: Each item must have a valid id");if(!a.label||typeof a.label!="string")throw new Error(`AppNavi: Item "${a.id}" must have a valid label`)}}createInitialState(){return{items:[...this.config.items],openDropdownId:null}}renderNavList(){const e=c("ul",{className:"app-navi-list",attributes:{role:"list"}});for(const i of this.state.items){const a=this.renderNavItem(i);e.appendChild(a)}return e}renderNavItem(e){const i=c("li",{className:"app-navi-item"});switch(e.type){case"button":i.appendChild(this.renderButton(e));break;case"anchor":i.appendChild(this.renderAnchor(e));break;case"dropdown":i.appendChild(this.renderDropdown(e));break}return i}renderButton(e){const i=["app-navi-button",e.current?"is-current":"",e.disabled?"is-disabled":""].filter(Boolean).join(" "),a=c("button",{className:i,attributes:{type:"button","aria-current":e.current?"page":"","aria-disabled":e.disabled?"true":"false","data-item-id":e.id}});if(e.current||a.removeAttribute("aria-current"),e.disabled&&a.setAttribute("disabled","true"),e.icon){const r=c("span",{className:"app-navi-icon"});r.textContent=ie(e.icon),a.appendChild(r)}const n=c("span",{className:"app-navi-label",textContent:e.label});if(a.appendChild(n),e.current){const r=c("span",{className:"app-navi-current-indicator",attributes:{"aria-hidden":"true"}});a.appendChild(r)}return e.disabled||a.addEventListener("click",()=>{var r,s,o;(r=e.onClick)==null||r.call(e,e.id),(o=(s=this.callbacks).onItemClick)==null||o.call(s,e.id,e)}),a}renderAnchor(e){const i=["app-navi-anchor",e.current?"is-current":"",e.disabled?"is-disabled":""].filter(Boolean).join(" "),a=c("a",{className:i,attributes:{href:e.disabled?"":e.href,"aria-current":e.current?"page":"","aria-disabled":e.disabled?"true":"false","data-item-id":e.id}});if(e.current||a.removeAttribute("aria-current"),e.target&&(a.setAttribute("target",e.target),e.target==="_blank"&&a.setAttribute("rel","noopener noreferrer")),e.disabled&&(a.removeAttribute("href"),a.setAttribute("tabindex","-1")),e.icon){const r=c("span",{className:"app-navi-icon"});r.textContent=ie(e.icon),a.appendChild(r)}const n=c("span",{className:"app-navi-label",textContent:e.label});if(a.appendChild(n),e.current){const r=c("span",{className:"app-navi-current-indicator",attributes:{"aria-hidden":"true"}});a.appendChild(r)}return e.disabled||a.addEventListener("click",()=>{var r,s;(s=(r=this.callbacks).onItemClick)==null||s.call(r,e.id,e)}),a}renderDropdown(e){const i=this.state.openDropdownId===e.id,a=c("div",{className:`app-navi-dropdown-wrapper${i?" is-open":""}`}),n=["app-navi-dropdown-trigger",e.current?"is-current":"",e.disabled?"is-disabled":"",i?"is-open":""].filter(Boolean).join(" "),r=c("button",{className:n,attributes:{type:"button","aria-haspopup":"true","aria-expanded":String(i),"aria-controls":`${this.instanceId}-dropdown-${e.id}`,"aria-current":e.current?"page":"","aria-disabled":e.disabled?"true":"false","data-item-id":e.id}});if(e.current||r.removeAttribute("aria-current"),e.disabled&&r.setAttribute("disabled","true"),e.icon){const l=c("span",{className:"app-navi-icon"});l.textContent=ie(e.icon),r.appendChild(l)}const s=c("span",{className:"app-navi-label",textContent:e.label});r.appendChild(s);const o=c("span",{className:"app-navi-caret",textContent:"▼",attributes:{"aria-hidden":"true"}});if(r.appendChild(o),e.current){const l=c("span",{className:"app-navi-current-indicator",attributes:{"aria-hidden":"true"}});r.appendChild(l)}if(e.disabled||r.addEventListener("click",l=>{var d,u;l.stopPropagation(),i?this.closeDropdown():this.openDropdown(e.id),(u=(d=this.callbacks).onItemClick)==null||u.call(d,e.id,e)}),a.appendChild(r),i){const l=this.renderDropdownMenu(e);a.appendChild(l)}return a}renderDropdownMenu(e){const i=c("ul",{className:"app-navi-dropdown-menu",attributes:{role:"menu",id:`${this.instanceId}-dropdown-${e.id}`}});for(const a of e.dropdownItems){const n=c("li",{className:"app-navi-dropdown-menu-item",attributes:{role:"presentation"}}),r=this.renderDropdownMenuItem(a,e.id);n.appendChild(r),i.appendChild(n)}return i}renderDropdownMenuItem(e,i){const a=["app-navi-dropdown-menu-button",e.disabled?"is-disabled":""].filter(Boolean).join(" ");if(e.href&&!e.disabled){const s=c("a",{className:a.replace("button","anchor"),attributes:{href:e.href,role:"menuitem","data-menu-item-id":e.id}});if(e.icon){const l=c("span",{className:"app-navi-dropdown-menu-icon"});l.textContent=ie(e.icon),s.appendChild(l)}const o=c("span",{className:"app-navi-dropdown-menu-label",textContent:e.label});return s.appendChild(o),s.addEventListener("click",()=>{var l;(l=e.onClick)==null||l.call(e,e.id),this.closeDropdown()}),s}const n=c("button",{className:a,attributes:{type:"button",role:"menuitem","aria-disabled":e.disabled?"true":"false","data-menu-item-id":e.id}});if(e.disabled&&n.setAttribute("disabled","true"),e.icon){const s=c("span",{className:"app-navi-dropdown-menu-icon"});s.textContent=ie(e.icon),n.appendChild(s)}const r=c("span",{className:"app-navi-dropdown-menu-label",textContent:e.label});return n.appendChild(r),e.disabled||n.addEventListener("click",()=>{var s;(s=e.onClick)==null||s.call(e,e.id),this.closeDropdown()}),n}renderAdditionalArea(){const e=c("div",{className:"app-navi-additional-area"}),i=typeof this.config.additionalArea=="function"?this.config.additionalArea():this.config.additionalArea;return i&&e.appendChild(i),e}attachClickOutsideHandler(){this.clickOutsideHandler=e=>{const i=e.target,a=this.container.querySelector(".app-navi-dropdown-wrapper.is-open");a&&!a.contains(i)&&this.closeDropdown()},setTimeout(()=>{document.addEventListener("click",this.clickOutsideHandler)},0)}detachEventListeners(){this.clickOutsideHandler&&(document.removeEventListener("click",this.clickOutsideHandler),this.clickOutsideHandler=null)}}const ad=/検索|フィルタ|絞り込み|filter|search/i;function Fa(t,e){return(t.match(new RegExp(`field-type-${e}`,"g"))??[]).length}function Va(t){const e=i=>i==="danger"?0:i==="primary"?2:1;return t.map((i,a)=>({a:i,i:a})).sort((i,a)=>e(i.a.style)-e(a.a.style)||i.i-a.i).map(i=>i.a)}function nd(t,e){const i=Va(t.actions??[]),a=t.description?`<p class="screen-description">${e.escapeHtml(t.description)}</p>`:"";return`
668
+ <header class="screen-header shell-page-header">
669
+ <div class="shell-page-heading">
670
+ <h1 class="screen-title">${e.escapeHtml(t.title)}</h1>
671
+ ${a}
672
+ </div>
673
+ ${i.length?`<div class="shell-page-actions">${e.renderActions(i)}</div>`:""}
674
+ </header>`}const rd={id:"shell",render(t,e){var s,o;const i=e.renderSections(t),a=i.length>0,n=!!((s=t.fields)!=null&&s.length),r=i.map((l,d)=>{var b,y;const u=["form-section","shell-card"],h=(y=(b=t.sections)==null?void 0:b[d])==null?void 0:y.role,m=h?h==="filter":ad.test(l.title),f=h?h==="kpi":Fa(l.fieldsHtml,"badge")>=3;return m&&u.push("shell-filter"),f&&u.push("shell-kpi"),Fa(l.fieldsHtml,"data_table")>0&&u.push("shell-has-table"),`
675
+ <section id="${e.escapeHtml(l.id)}" class="${u.join(" ")}">
676
+ <div class="shell-card-header">
677
+ <h2 class="section-title">${Ke(l.icon,"section-icon")}${e.escapeHtml(l.title)}</h2>
678
+ ${l.publishToggleHtml}
679
+ </div>
680
+ <div class="section-fields shell-grid">${l.fieldsHtml}</div>
681
+ </section>`}).join("");if(!a){const l=(o=t.actions)!=null&&o.length?`<div class="shell-card-footer">${e.renderActions(Va(t.actions))}</div>`:"";return`
682
+ <div class="screen screen--bare layout-shell">
683
+ ${e.renderAppLayoutContainers(t)}
684
+ <div class="shell-body shell-body-narrow">
685
+ <form class="screen-form">
686
+ <section class="form-section shell-card shell-single">
687
+ <div class="shell-card-header">
688
+ <h1 class="screen-title">${e.escapeHtml(t.title)}</h1>
689
+ ${t.description?`<p class="screen-description">${e.escapeHtml(t.description)}</p>`:""}
690
+ </div>
691
+ ${n?`<div class="fields-section shell-single-fields">${e.renderFields(t.fields)}</div>`:""}
692
+ ${l}
693
+ </section>
694
+ </form>
695
+ </div>
696
+ </div>`}return`
697
+ <div class="screen screen--bare layout-shell">
698
+ ${e.renderAppLayoutContainers(t)}
699
+ <div class="shell-body">
700
+ ${nd(t,e)}
701
+ <form class="screen-form">
702
+ ${r}
703
+ </form>
704
+ </div>
705
+ </div>`}};function ue(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}function Ba(t){const e=t.description?`<p class="screen-description">${ue(t.description)}</p>`:"";return`
622
706
  <header class="screen-header">
623
- <h1 class="screen-title">${U(t.title)}</h1>
707
+ <h1 class="screen-title">${ue(t.title)}</h1>
624
708
  ${e}
625
709
  </header>
626
- `}function Mr(t){if(!t.fields||t.fields.length===0)return"";const e=Tr(t.layout),i=Ke(t.fields);return`
627
- <div class="fields-section" ${e}>
628
- ${i}
629
- </div>
630
- `}function wi(t){return!t.actions||t.actions.length===0?"":`
631
- <div class="actions-section">
632
- ${Nr(t.actions)}
633
- </div>
634
- `}function Dr(t,e){return!t.wizard||!t.wizard.show_progress?"":`
710
+ `}function sd(t,e){return!t.wizard||!t.wizard.show_progress?"":`
635
711
  <div class="wizard-progress">
636
- ${t.wizard.steps.map((s,a)=>{const r=["wizard-progress-step"];return a<e?r.push("completed"):a===e&&r.push("current"),`
637
- <div class="${r.join(" ")}" data-step-index="${a}">
638
- <span class="step-number">${a+1}</span>
639
- <span class="step-title">${U(s.title)}</span>
712
+ ${t.wizard.steps.map((n,r)=>{const s=["wizard-progress-step"];return r<e?s.push("completed"):r===e&&s.push("current"),`
713
+ <div class="${s.join(" ")}" data-step-index="${r}">
714
+ <span class="step-number">${r+1}</span>
715
+ <span class="step-title">${ue(n.title)}</span>
640
716
  </div>
641
717
  `}).join("")}
642
718
  </div>
643
- `}function Fr(t,e){if(!t.wizard)return"";const i=t.wizard.steps[e];if(!i)return'<div class="error">無効なステップです</div>';const n=e===0,s=e===t.wizard.steps.length-1,a=t.wizard.allow_back??!0,r=i.description?`<p class="wizard-step-description">${U(i.description)}</p>`:"",o=Ke(i.fields),l=!n&&a?`<button type="button" class="btn btn-secondary wizard-back" data-step="${e-1}">戻る</button>`:"",d=s?"":`<button type="button" class="btn btn-primary wizard-next" data-step="${e+1}">次へ</button>`,p=s?'<button type="submit" class="btn btn-primary wizard-submit">送信</button>':"";return`
644
- <div class="wizard-step" data-step-id="${U(i.id)}" data-step-index="${e}">
645
- <h2 class="wizard-step-title">${U(i.title)}</h2>
646
- ${r}
719
+ `}function od(t,e){if(!t.wizard)return"";const i=t.wizard.steps[e];if(!i)return'<div class="error">無効なステップです</div>';const a=e===0,n=e===t.wizard.steps.length-1,r=t.wizard.allow_back??!0,s=i.description?`<p class="wizard-step-description">${ue(i.description)}</p>`:"",o=ze(i.fields),l=!a&&r?`<button type="button" class="btn btn-secondary wizard-back" data-step="${e-1}">戻る</button>`:"",d=n?"":`<button type="button" class="btn btn-primary wizard-next" data-step="${e+1}">次へ</button>`,u=(t.actions??[]).filter(b=>b.type!=="submit"||n),h=n&&u.some(b=>b.type==="submit"),m=u.length>0?`<div class="actions wizard-screen-actions">${u.map(Ha).join("")}</div>`:"",f=n&&!h?'<button type="submit" class="btn btn-primary wizard-submit">送信</button>':"";return`
720
+ <div class="wizard-step" data-step-id="${ue(i.id)}" data-step-index="${e}">
721
+ <h2 class="wizard-step-title">${ue(i.title)}</h2>
722
+ ${s}
647
723
  <div class="wizard-step-fields">
648
724
  ${o}
649
725
  </div>
650
726
  <div class="wizard-navigation">
651
727
  ${l}
652
728
  ${d}
653
- ${p}
729
+ ${f}
730
+ ${m}
654
731
  </div>
655
732
  </div>
656
- `}function Ei(t,e=0){if(!t.wizard)return Je(t);const i=Dr(t,e),n=Fr(t,e);return`
733
+ `}function ja(t,e=0){if(!t.wizard)return Pa(t);const i=sd(t,e),a=od(t,e);return`
657
734
  <div class="screen wizard-screen">
658
- ${Qe(t)}
735
+ ${Ra(t)}
736
+ ${Ba(t)}
659
737
  ${i}
660
738
  <form class="wizard-form" data-current-step="${e}">
661
- ${n}
739
+ ${a}
662
740
  </form>
663
741
  </div>
664
- `}function Ai(t,e){return`section-${t.toLowerCase().replace(/[^a-z0-9\u3040-\u309f\u30a0-\u30ff\u4e00-\u9faf]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")||e}`}function Or(t){if(!t.sections||t.sections.length===0)return Je(t);const e=Ii(t),i=Qe(t),n=wi(t),s=t.sections.map((a,r)=>{const o=Ai(a.section_name,r),l=a.input_fields,d=l&&l.length>0?Ke(l):"",p=a.publish_toggle?`<div class="section-publish-toggle">
742
+ `}function Lt(t,e){const i=t.toLowerCase().replace(/[^a-z0-9\u3040-\u309f\u30a0-\u30ff\u4e00-\u9faf]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"");return`section-${e}-${i||"section"}`}function ld(t,e){if(!t||t.length===0)return t;const i=e.trim();let a=t;return a[0].type==="heading"&&(a[0].label??"").trim()===i&&(a=a.slice(1)),a.map(n=>wa.has(n.type)&&(n.label??"").trim()===i?{...n,label:""}:n)}function dd(t){return!t.sections||t.sections.length===0?[]:t.sections.map((e,i)=>{const a=Lt(e.section_name,i),n=ld(e.input_fields,e.section_name),r=n&&n.length>0?ze(n):"",s=e.publish_toggle?`<div class="section-publish-toggle">
665
743
  <label class="checkbox-option">
666
- <input type="checkbox" name="${o}_publish" />
744
+ <input type="checkbox" name="${a}_publish" />
667
745
  <span>このセクションを公開する</span>
668
746
  </label>
669
- </div>`:"";return`
670
- <section id="${U(o)}" class="form-section">
671
- <h2 class="section-title">
672
- ${a.icon?`<span class="section-icon">${U(a.icon)}</span>`:""}
673
- ${U(a.section_name)}
674
- </h2>
675
- ${p}
676
- <div class="section-fields">
677
- ${d}
678
- </div>
679
- </section>
680
- `}).join("");return`
681
- <div class="screen screen-with-sections">
682
- ${e}
683
- ${i}
684
- <div id="section-nav-container" class="section-nav-container"></div>
685
- <form class="screen-form">
686
- ${s}
687
- ${n}
688
- </form>
747
+ </div>`:"";return{id:a,title:e.section_name,icon:e.icon,fieldsHtml:r,publishToggleHtml:s}})}const cd={renderScreenHeader:Ba,renderAppLayoutContainers:Ra,renderFields:t=>ze(t),renderActions:t=>ed(t),renderSections:dd,generateSectionId:Lt,escapeHtml:ue};function Ra(t){const e=t.app_header?'<div id="app-header-container" class="app-header-container"></div>':"",i=t.app_navi?'<div id="app-navi-container" class="app-navi-container"></div>':"";return e+i}function Pa(t){return t.wizard?ja(t,0):rd.render(t,cd)}function Ua(t,e){const i={destroy:()=>{var a,n;(a=i.appHeader)==null||a.destroy(),(n=i.appNavi)==null||n.destroy()}};if(e.app_header){const a=t.querySelector("#app-header-container");a&&(i.appHeader=ud(a,e))}if(e.app_navi){const a=t.querySelector("#app-navi-container");a&&(i.appNavi=hd(a,e))}return i}function ud(t,e){var r;if(!e.app_header)return;const i=e.app_header,a={logo:i.logo,logoAlt:i.logoAlt,logoHref:i.logoHref,systemName:i.systemName,appName:i.appName,tenants:i.tenants,currentTenantId:i.currentTenantId,userInfo:{name:i.userInfo.name,email:i.userInfo.email,avatarUrl:i.userInfo.avatarUrl},navigations:(r=i.navigations)==null?void 0:r.map(s=>{var o;return{id:s.id,label:s.label,href:s.href,active:s.active,disabled:s.disabled,dropdown:(o=s.dropdown)==null?void 0:o.map(l=>({id:l.id,label:l.label,href:l.href,divider:l.divider}))}}),appLauncher:i.appLauncher,helpPageUrl:i.helpPageUrl,showReleaseNote:i.showReleaseNote,releaseNoteText:i.releaseNoteText,showDataSync:i.showDataSync},n=new td(t,a);return n.render(),n}function hd(t,e){if(!e.app_navi)return;const i=e.app_navi,a=i.items.map(r=>{var s;switch(r.type){case"button":return{type:"button",id:r.id,label:r.label,icon:r.icon,disabled:r.disabled,current:r.current};case"anchor":return{type:"anchor",id:r.id,label:r.label,icon:r.icon,disabled:r.disabled,current:r.current,href:r.href??"#",target:r.target};case"dropdown":return{type:"dropdown",id:r.id,label:r.label,icon:r.icon,disabled:r.disabled,current:r.current,dropdownItems:((s=r.dropdownItems)==null?void 0:s.map(o=>({id:o.id,label:o.label,icon:o.icon,disabled:o.disabled,href:o.href})))??[]};default:return{type:"button",id:r.id,label:r.label,icon:r.icon,disabled:r.disabled,current:r.current}}}),n=new id(t,{label:i.label,items:a});return n.render(),n}function pd(t,e,i=0){let a=i,n=null;function r(){n==null||n.destroy(),t.innerHTML=ja(e,a),n=Ua(t,e),s()}function s(){t.querySelectorAll(".wizard-next").forEach(o=>{o.addEventListener("click",()=>{e.wizard&&a<e.wizard.steps.length-1&&(a++,r())})}),t.querySelectorAll(".wizard-back").forEach(o=>{o.addEventListener("click",()=>{a>0&&(a--,r())})})}return r(),{getCurrentStep:()=>a,destroy:()=>{n==null||n.destroy(),n=null},goToStep:o=>{e.wizard&&o>=0&&o<e.wizard.steps.length&&(a=o,r())},nextStep:()=>{e.wizard&&a<e.wizard.steps.length-1&&(a++,r())},prevStep:()=>{a>0&&(a--,r())}}}const X="_v2_";function De(t,e){const i=[],a=t.use&&e&&Object.hasOwn(e,t.use)?e[t.use]:void 0;if(a!=null&&a.fields){const n=new Set(a.fields.map(s=>s.item)),r=s=>n.has(s.item)?{...s,item:`${t.id}_${s.item}`}:s;for(const s of a.fields){const o=s.visibleWhen||s.requiredWhen?{...s,...s.visibleWhen?{visibleWhen:r(s.visibleWhen)}:{},...s.requiredWhen?{requiredWhen:r(s.requiredWhen)}:{}}:s;i.push({field:o,id:`${t.id}_${s.item}`,fromPattern:!0})}}for(const n of t.fields??[])i.push({field:n,id:n.item,fromPattern:!1});return i}const md=["image","pdf","document"],fd=/^\.[A-Za-z0-9]+$/,gd=/^[A-Za-z0-9.+-]+\/[A-Za-z0-9.+*-]+$/,bd=/^\s*(\.[A-Za-z0-9]|[A-Za-z0-9*+.-]+\/)/,vd=/^[1-9]\d*(KB|MB|GB)$/,yd='image / pdf / document、または [".pdf", "image/png"] のような拡張子・MIME タイプの配列',_d='正の整数 + KB / MB / GB(例: "10MB")';function xd(t){return typeof t=="string"&&(fd.test(t)||gd.test(t))}const qa={image:"image/*",pdf:".pdf,application/pdf",document:".pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt"},Wa={image:"画像",pdf:"PDF",document:"PDF・Word・Excel・PowerPoint・テキスト"},Ya={image:["image/*"],pdf:["application/pdf"],document:[".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt"]},wd={KB:1024,MB:1024**2,GB:1024**3};function kd(t){const e=/^(\d+)(KB|MB|GB)$/.exec(t??"");return e?Number(e[1])*wd[e[2]]:void 0}function Qe(t){return t.replace(/[。.]+\s*$/,"")}function Ga(t){return t.in!==void 0?{field:t.item,operator:"in",value:t.in}:t.notEquals!==void 0?{field:t.item,operator:"ne",value:t.notEquals}:{field:t.item,operator:"eq",value:t.equals}}function Cd(t,e){const i={};for(const a of t)if(typeof a=="string"){const n=e&&Object.hasOwn(e,a)?e[a]:void 0;n&&Object.assign(i,n)}else Object.assign(i,a);return Object.keys(i).length>0?i:void 0}const $d=new Set(["select","multi_select","radio_group","checkbox_group","segmented_control"]),Ad=new Set(["badge","chip","status_label"]);function Ed(t){if(t!==void 0)return Array.isArray(t)?t:Object.hasOwn(Ya,t)?Ya[t]:[t]}function Id(t){switch(t.component){case"date":return t.inline?"calendar":"date_picker";case"time":return"time_picker";case"duration":return"duration_input";case"file":return t.accept==="image"?"image_uploader":"file_upload";case"photo_grid":return"photo_manager";case"select":return t.multiple?"multi_select":t.variant==="segmented"?"segmented_control":"select";case"radio":return"radio_group";case"checkbox":return t.multiple?"checkbox_group":"checkbox";case"status":return"status_label";case"map":return"google_map_embed";default:return t.component}}function Sd(t){const e=[];return t.help&&e.push(Qe(t.help)),t.whyRequired&&e.push(Qe(t.whyRequired)),t.format&&e.push(`入力形式: ${Qe(t.format)}`),t.example&&e.push(`例: ${Qe(t.example)}`),e.length>0?e.join("。"):void 0}function Ld(t){if(Array.isArray(t))return t.filter(e=>typeof e=="object"&&e!==null&&typeof e.label=="string").map(e=>({time:String(e.at??""),title:e.label,...typeof e.text=="string"&&e.text?{description:e.text}:{}}))}function Nd(t,e){const i=t.field,a=Id(i),n={id:t.id,type:a,label:i.label},r=Sd(i);if(r!==void 0&&(n.description=r),i.required!==void 0&&(n.required=i.required),i.readonly!==void 0&&(n.readonly=i.readonly),i.default!==void 0&&(n.default=i.default),i.value!==void 0)if(a==="timeline"){const s=Ld(i.value);s&&(n.items=s)}else Ad.has(a)?n.value=i.value:n.default===void 0&&(n.default=i.value);if(i.rules&&i.rules.length>0){const s=Cd(i.rules,e);s!==void 0&&(n.validation=s)}if(i.visibleWhen&&(n.visible_when=Ga(i.visibleWhen)),i.options?n.options=i.options.map(s=>({...s})):$d.has(a)&&(n.options=[]),i.variant!==void 0&&i.variant!=="segmented"&&(n.variant=i.variant),i.unit!==void 0&&a==="number"&&(n.unit=i.unit),a==="file_upload"){const s=Ed(i.accept);s&&(n.accept=s),i.multiple!==void 0&&(n.multiple=i.multiple);const o=kd(i.maxSize);o!==void 0&&(n.max_size=o)}if(i.props){const s={...Ue(i.props)};delete s.id,delete s.type,Object.assign(n,s)}return n}function Td(t,e){if(!e)return t;const i=Ga(e);return t.map(a=>a.visible_when?a:{...a,visible_when:i})}const Ka={text:"text",status:"status",date:"date",number:"number"};function zd(t){const e={id:t.id,label:t.label,sortable:t.sortable??!1};return t.type&&Ka[t.type]&&(e.format=Ka[t.type]),t.type==="number"&&(e.align="right"),e}function Dd(t,e,i){const a={id:`${X}s_${t.id}`,type:"data_table",label:t.title,columns:e.columns.map(zd)};e.rows&&e.rows.length>0&&(a.data=e.rows.map((r,s)=>({id:s+1,...r}))),e.selection&&(a.selection=e.selection),e.rowActions&&e.rowActions.length>0&&(a.row_actions=e.rowActions.map(r=>({id:r.id,label:r.label,style:"link"}))),e.paging&&(a.pagination={enabled:!0,...e.paging.pageSize?{page_size:e.paging.pageSize}:{}}),e.search&&(a.filters={enabled:!0,show_search:!0});const n=e.empty??i;return n&&(a.empty_state={title:n}),a}function Od(t){var a;const e=t.value!==void 0?t.value:t.default;if(e==null||e==="")return"-";if(Array.isArray(e))return e.map(n=>typeof n=="object"&&n!==null?[n.at,n.label,n.text].filter(Boolean).join(" "):String(n)).join(" / ");const i=(a=t.options)==null?void 0:a.find(n=>String(n.value)===String(e));return String(i?i.label:e)}function Md(t,e,i){var l,d;const a=t.kind??"form",n=De(t,e.patterns),r=t.use&&e.patterns&&Object.hasOwn(e.patterns,t.use)?e.patterns[t.use]:void 0,s=t.note??(r==null?void 0:r.note),o=[];if(s&&o.push({id:`${X}n_${t.id}`,type:"information_panel",label:"",description:s,variant:"info"}),a==="list"&&t.list)o.push(Dd(t,t.list,(d=(l=i.states)==null?void 0:l.empty)==null?void 0:d.message));else if(a==="readonly"||a==="summary")o.push({id:`${X}s_${t.id}`,type:"definition_list",label:t.title,items:n.map(u=>({term:u.field.label,description:Od(u.field)}))});else{let u=n.map(h=>Nd(h,e.rules));if(t.repeatable){const h=t.repeatable,m={id:`${X}s_${t.id}`,type:"repeater",label:"",item_fields:u};h.min!==void 0&&(m.min_items=h.min),h.max!==void 0&&(m.max_items=h.max),h.addLabel&&(m.add_button_label=h.addLabel),u=[m]}t.reveal==="collapsed"&&(u=[{id:`${X}p_${t.id}`,type:"accordion_panel",label:"入力欄を開く",fields:u}]),o.push(...u)}return{section_name:t.title,input_fields:Td(o,t.visibleWhen)}}function Za(t,e,i){t.placement!==void 0&&i(e,"placement","placement は旧レンダラーでは無視されます(全アクションを画面ヘッダーに置きます)"),t.role!==void 0&&i(e,"role")}const Qa=["text","number","time","combobox","duration"],Ja=["text","number","time","combobox","textarea","select","browser","date"],Hd=["file","photo_grid"];function Xa(t,e,i,a="form"){const n=(r,s)=>i(e,r,`${r} は component "${t.component}" では使われません(${s})`);if(t.width!==void 0&&i(e,"width","width は旧レンダラーでは無視されます"),t.unit!==void 0){const r=a==="readonly"||a==="summary";Qa.includes(t.component)?r&&t.component!=="number"?n("unit","readonly / summary では number の値にだけ付きます"):t.component!=="number"&&i(e,"unit","unit は旧スキーマでは number だけが持ちます"):n("unit",`使えるのは ${Qa.join(" / ")}`)}t.autocomplete!==void 0&&(Ja.includes(t.component)?t.component==="date"&&t.autocomplete!=="bday"?n("autocomplete","date で使えるのは bday だけ"):i(e,"autocomplete"):n("autocomplete",`使えるのは ${Ja.join(" / ")}`)),t.precision==="month"&&(t.inline?n("precision","inline(カレンダー表示)では年月だけの入力にならない"):i(e,"precision"));for(const r of["accept","maxSize"])t[r]!==void 0&&!Hd.includes(t.component)&&n(r,"使えるのは file / photo_grid");if(t.component==="file"&&t.accept==="image")for(const r of["multiple","maxSize"])t[r]!==void 0&&i(e,r,`accept: image は旧フォーマットで image_uploader になり、${r} を持てないため落ちます`);if(t.component==="photo_grid")for(const r of["accept","maxSize"])t[r]!==void 0&&i(e,r,`${r} は旧フォーマットの photo_manager に受け皿がないため落ちます`);t.links!==void 0&&i(e,"links"),t.requiredWhen!==void 0&&i(e,"requiredWhen"),t.to!==void 0&&i(e,"to")}function Fd(t,e,i){var a;t.columns.forEach((n,r)=>{n.to!==void 0&&i(`${e}.columns[${r}]`,"to"),n.field!==void 0&&i(`${e}.columns[${r}]`,"field")}),(a=t.rowActions)==null||a.forEach((n,r)=>{n.to!==void 0&&i(`${e}.rowActions[${r}]`,"to","rowActions[].to は旧 data_table の行アクションに遷移先がないため落ちます")}),t.bulkActions!==void 0&&i(e,"bulkActions")}function Vd(t,e,i){var a;t.purpose!==void 0&&i(e,"purpose","purpose は旧スキーマに出力先がないため落ちます"),t.columns!==void 0&&i(e,"columns","columns は旧スキーマの FormSection にレイアウト指定がないため落ちます"),t.actions!==void 0&&i(e,"actions"),t.list&&Fd(t.list,`${e}.list`,i),(a=t.fields)==null||a.forEach((n,r)=>Xa(n,`${e}.fields[${r}]`,i,t.kind??"form"))}function Bd(t){return`${t} は旧フォーマットに受け皿がないため、変換時に無視されます`}function en(t){var a,n,r,s,o;const e=[],i=(l,d,u)=>e.push({path:l,key:d,message:u??Bd(d)});(a=t.app.navigation)==null||a.forEach((l,d)=>{l.role!==void 0&&i(`app.navigation[${d}]`,"role")}),(n=t.app.notifications)==null||n.forEach((l,d)=>{l.role!==void 0&&i(`app.notifications[${d}]`,"role"),l.until!==void 0&&i(`app.notifications[${d}]`,"until")});for(const[l,d]of Object.entries(t.views)){const u=`views.${l}`;d.primaryAction&&Za(d.primaryAction,`${u}.primaryAction`,i),(r=d.secondaryActions)==null||r.forEach((h,m)=>Za(h,`${u}.secondaryActions[${m}]`,i)),(s=d.states)!=null&&s.loading&&i(`${u}.states`,"loading","states.loading は旧レンダラーでは描画されません"),d.sections.forEach((h,m)=>Vd(h,`${u}.sections[${m}]`,i))}for(const[l,d]of Object.entries(t.patterns??{}))(o=d.fields)==null||o.forEach((u,h)=>Xa(u,`patterns.${l}.fields[${h}]`,i));return e}function tn(t,e){var n;const i=t.kind??"submit",a={id:t.id,label:t.label,style:(n=t.confirm)!=null&&n.danger?"danger":t.style==="tertiary"?"secondary":t.style??e,...t.confirm?{confirm:{title:t.label,message:t.confirm.message,confirm_label:t.label,cancel_label:"キャンセル"}}:{}};switch(i){case"navigate":return{...a,type:"navigate",to:t.to??""};case"custom":return{...a,type:"custom",handler:t.id};case"reset":return{...a,type:"reset"};default:return{...a,type:"submit"}}}function jd(t,e){const{app:i}=t,a=i.header??{},n=(i.navigation??[]).flatMap(r=>r.items).map((r,s)=>{var o;return{id:`nav-${s}-${r.view}`,label:r.label??((o=t.views[r.view])==null?void 0:o.title)??r.view,href:`#${r.view}`,...e.nav!==void 0&&r.view===e.nav?{active:!0}:{}}});return{appName:i.name,...a.systemName?{systemName:a.systemName}:{},...a.tenantName?{tenants:[{id:"tenant-1",name:a.tenantName}],currentTenantId:"tenant-1"}:{},userInfo:{name:a.userName??"",...a.userEmail?{email:a.userEmail}:{}},...n.length>0?{navigations:n}:{},...a.helpUrl?{helpPageUrl:a.helpUrl}:{}}}function Rd(t,e){const i=t.app.navigation;if(!i||i.length===0)return;const a=i.map((n,r)=>({id:`navi-${r+1}`,label:n.group,type:"anchor",href:n.items[0]?`#${n.items[0].view}`:"#",...e.nav!==void 0&&n.items.some(s=>s.view===e.nav)?{current:!0}:{}}));return{label:t.app.name,items:a}}function Pd(t,e){for(const i of Object.values(t.flows??{})){if(i.progress==="none")continue;const a=i.steps.findIndex(n=>n.view===e);if(a>=0)return{flow:i,index:a}}}function Ud(t,e,i){var h,m;const a=i.app.layout==="plain";let n=e.sections.map(f=>Md(f,i,e));if(e.layout==="tabs"&&n.length>0){const f={id:`${X}view_tabs`,type:"tabs",label:"",items:n.map((b,y)=>({id:e.sections[y].id,label:b.section_name,fields:b.input_fields}))};n=[{section_name:e.title,input_fields:[f]}]}const r=[],s=Pd(i,t);s&&r.push({section_name:"進行状況",input_fields:[{id:`${X}flow_progress`,type:"stepper",label:"",steps:s.flow.steps.map((f,b)=>{var y;return{id:f.view,label:f.label??((y=i.views[f.view])==null?void 0:y.title)??f.view,completed:b<s.index}}),currentStep:s.index}]});const o=[];(i.app.notifications??[]).forEach((f,b)=>{o.push({id:`${X}notice_${b+1}`,type:"notification_bar",label:"",description:f.message,variant:f.variant??"info",...f.dismissible!==void 0?{dismissible:f.dismissible}:{}})});for(const f of["success","error"]){const b=(m=(h=e.states)==null?void 0:h[f])==null?void 0:m.message;b&&o.push({id:`${X}state_${f}`,type:"response_message",label:"",description:b,variant:f})}if(o.length>0&&r.push({section_name:"お知らせ",input_fields:o}),e.layout==="sectioned"&&n.length>0){const f=r.length+1;r.push({section_name:"画面の構成",input_fields:[{id:`${X}section_nav`,type:"section_nav",label:"",items:n.map((b,y)=>{var _;return{id:((_=e.sections[y])==null?void 0:_.id)??`section_${y+1}`,label:b.section_name,href:`#${Lt(b.section_name,f+y)}`}})}]})}const l=[...r,...n],d=l.flatMap(f=>f.input_fields??[]),u=[...e.primaryAction?[tn(e.primaryAction,"primary")]:[],...(e.secondaryActions??[]).map(f=>tn(f,"secondary"))];return{title:e.title,description:e.description??e.goal,purpose:e.goal,...a?{}:{app_header:jd(i,e),app_navi:Rd(i,e)},sections:l,fields:d,...u.length>0?{actions:u}:{}}}function an(t){const e={};for(const[a,n]of Object.entries(t.views))e[a]=Ud(a,n,t);const i={view:e};if(t.rules&&Object.keys(t.rules).length>0){const a={};for(const[n,r]of Object.entries(t.rules)){const{message:s,...o}=r;a[n]={name:n,rules:o,...s?{message:s}:{}}}i.validations=a}return i}function nn(t){if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;const e=new Date(`${t}T00:00:00Z`);return!Number.isNaN(e.getTime())&&e.toISOString().slice(0,10)===t}function Nt(t){if(t instanceof Date)return Number.isNaN(t.getTime())?t:t.toISOString().slice(0,10);if(Array.isArray(t))return t.map(Nt);if(typeof t=="object"&&t!==null){const e={};for(const[i,a]of Object.entries(t))e[i]=Nt(a);return e}return t}function C(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Z(t){return typeof t=="string"&&t.length>0}const qd=["shell","plain"],Wd=["stepper","none"],Yd=["stack","tabs","sectioned"],Gd=["form","list","readonly","summary"],Kd=["open","collapsed"],Zd=["submit","navigate","custom","reset"],Qd=["header","footer","sticky"],Jd=["primary","secondary","tertiary","danger"],Xd=["xs","sm","md","lg","full"],ec=["none","single","multiple"],tc=["info","success","warning","error"],ic=["fields","note"],ac=["text","status","date","number"],nc=["day","month"],rn=["text","number","select","checkbox"],rc=["equals","notEquals","in"];function sc(t,e){const i=(o,l,d)=>{t.push({type:o,message:l,path:d})},a=C(e.app)?e.app:void 0,n=Array.isArray(a==null?void 0:a.roles)&&a.roles.length>0&&a.roles.every(Z)?a.roles:void 0,r=new Set(C(e.views)?Object.keys(e.views):[]);return{add:i,checkEnum(o,l,d,u){o!==void 0&&!l.includes(o)&&i("INVALID_VALUE",`Invalid ${u} "${String(o)}" (expected one of: ${l.join(", ")})`,d)},checkString(o,l,d,u=!1){o===void 0?u&&i("MISSING_REQUIRED_FIELD",`${d} is required`,l):!Z(o)&&!(typeof o=="string"&&!u)&&i("INVALID_VALUE",`${d} must be a${u?" non-empty":""} string`,l)},checkViewRef:(o,l)=>{Z(o)?r.has(o)||i("INVALID_VALUE",`Unknown view "${o}"`,l):i("MISSING_REQUIRED_FIELD","view reference is required",l)},checkKeys(o,l,d){for(const u of Object.keys(o))l.includes(u)||i("INVALID_VALUE",`Unknown key "${u}" (allowed: ${l.join(", ")})`,d?`${d}.${u}`:u)},checkRole(o,l){if(o===void 0)return;const d=typeof o=="string"?[o]:Array.isArray(o)?o:void 0;if(!d||d.length===0||!d.every(Z)){i("INVALID_VALUE","role must be a non-empty string or a non-empty array of strings",l);return}if(n)for(const u of d)n.includes(u)||i("INVALID_VALUE",`Unknown role "${u}" (not in app.roles: ${n.join(", ")})`,l)},rules:C(e.rules)?e.rules:{},viewNames:r}}const oc=["mokkun","app","flows","views","patterns","rules"],lc=["name","layout","header","roles","navigation","notifications"],dc=["systemName","userName","userEmail","tenantName","helpUrl"],cc=["variant","message","dismissible","role","until"],uc=["group","items","role"],hc=["view","label","icon"],pc=["name","outcome","role","steps","progress","resumable"],mc=["view","label"],fc=["title","goal","nav","role","layout","description","primaryAction","secondaryActions","states","sections"],gc=["empty","loading","success","error"],bc=["message"],vc=["id","title","purpose","kind","reveal","repeatable","note","columns","visibleWhen","use","fields","list","actions"],yc=["min","max","addLabel"],_c=["id","label","kind","to","placement","style","confirm","role"],xc=["id","label","kind","to"],wc=["message","danger"],kc=["columns","rowActions","search","paging","selection","empty","bulkActions","rows"],Cc=["id","label","sortable","type","to","field"],$c=["pageSize"],Ac=["item","equals","notEquals","in"],Ec=["value","label"],Ic=["item","label","component","required","whyRequired","example","help","format","default","options","multiple","variant","inline","accept","maxSize","unit","precision","autocomplete","links","requiredWhen","to","value","readonly","rules","visibleWhen","width","props"],Sc=["component","required","help","default","options","multiple","variant","inline","unit","autocomplete","value","readonly","width","props"],Lc=["label","href"];function Nc(t,e){if(e!==void 0){if(!Array.isArray(e)){t.add("INVALID_VALUE","app.notifications must be an array","app.notifications");return}e.forEach((i,a)=>{const n=`app.notifications[${a}]`;if(!C(i)){t.add("INVALID_VALUE","Notice must be an object",n);return}t.checkKeys(i,cc,n),t.checkString(i.message,`${n}.message`,"message",!0),t.checkEnum(i.variant,tc,`${n}.variant`,"variant"),t.checkRole(i.role,`${n}.role`),i.until!==void 0&&!(typeof i.until=="string"&&nn(i.until))&&t.add("INVALID_VALUE",`Invalid until ${JSON.stringify(i.until)} (expected an ISO date YYYY-MM-DD)`,`${n}.until`)})}}function Tc(t,e){if(!e){t.add("MISSING_REQUIRED_FIELD",'v2 schema must have an "app" object',"app");return}t.checkKeys(e,lc,"app"),t.checkString(e.name,"app.name","app.name",!0),t.checkEnum(e.layout,qd,"app.layout","app.layout"),e.header!==void 0&&(C(e.header)?t.checkKeys(e.header,dc,"app.header"):t.add("INVALID_VALUE","app.header must be an object","app.header")),e.roles!==void 0&&!Array.isArray(e.roles)&&t.add("INVALID_VALUE","app.roles must be an array","app.roles"),Nc(t,e.notifications)}function zc(t,e){if(e===void 0)return;const i=new Set;return Array.isArray(e)?(e.forEach((a,n)=>{const r=`app.navigation[${n}]`;if(!C(a)){t.add("INVALID_VALUE","Navigation group must be an object",r);return}if(t.checkKeys(a,uc,r),t.checkString(a.group,`${r}.group`,"group",!0),t.checkRole(a.role,`${r}.role`),!Array.isArray(a.items)){t.add("MISSING_REQUIRED_FIELD",'navigation group must have "items"',`${r}.items`);return}a.items.forEach((s,o)=>{C(s)&&t.checkKeys(s,hc,`${r}.items[${o}]`),t.checkViewRef(C(s)?s.view:void 0,`${r}.items[${o}].view`),C(s)&&Z(s.view)&&i.add(s.view)})}),i):(t.add("INVALID_VALUE","app.navigation must be an array","app.navigation"),i)}function Dc(t,e){if(e!==void 0){if(!C(e)){t.add("INVALID_VALUE",'"flows" must be an object',"flows");return}for(const[i,a]of Object.entries(e)){const n=`flows.${i}`;if(!C(a)){t.add("INVALID_VALUE","Flow must be an object",n);continue}t.checkKeys(a,pc,n),t.checkString(a.name,`${n}.name`,"name",!0),t.checkString(a.outcome,`${n}.outcome`,"outcome",!0),t.checkEnum(a.progress,Wd,`${n}.progress`,"progress"),!Array.isArray(a.steps)||a.steps.length===0?t.add("MISSING_REQUIRED_FIELD",'Flow must have "steps"',`${n}.steps`):a.steps.forEach((r,s)=>{C(r)&&t.checkKeys(r,mc,`${n}.steps[${s}]`),t.checkViewRef(C(r)?r.view:void 0,`${n}.steps[${s}].view`)})}}}const Oc=["text","number","textarea","date","time","duration","file","photo_grid","select","combobox","radio","checkbox","toggle","browser","badge","chip","status","timeline","map"],sn=t=>["string","number","boolean"].includes(typeof t);function Tt(t,e,i,a="visibleWhen"){if(!C(e))return t.add("INVALID_VALUE",`${a} must be an object with "item" and one of "equals", "notEquals", "in"`,i),!1;t.checkKeys(e,Ac,i);let n=!0;Z(e.item)||(t.add("INVALID_VALUE",`${a}.item must be a non-empty string`,`${i}.item`),n=!1);const r=rc.filter(s=>Object.hasOwn(e,s));if(r.length===0)return t.add("MISSING_REQUIRED_FIELD",`${a}.equals is required (or notEquals / in)`,`${i}.equals`),!1;r.length>1&&(t.add("INVALID_VALUE",`${a} must have exactly one of equals, notEquals, in (got ${r.join(", ")})`,i),n=!1);for(const s of["equals","notEquals"])Object.hasOwn(e,s)&&!sn(e[s])&&(t.add("INVALID_VALUE",`${a}.${s} must be a string, number or boolean`,`${i}.${s}`),n=!1);return Object.hasOwn(e,"in")&&!(Array.isArray(e.in)&&e.in.length>0&&e.in.every(sn))&&(t.add("INVALID_VALUE",`${a}.in must be a non-empty array of strings, numbers or booleans`,`${i}.in`),n=!1),n}function Mc(t,e,i){if(e===void 0)return;const a=`Invalid accept ${JSON.stringify(e)} (expected ${yd})`;typeof e=="string"?!md.includes(e)&&!bd.test(e)&&t.add("INVALID_VALUE",a,i):Array.isArray(e)&&e.length>0&&e.every(xd)||t.add("INVALID_VALUE",a,i)}function Hc(t,e,i){if(e!==void 0){if(!Array.isArray(e)){t.add("INVALID_VALUE","links must be an array of { label, href }",i);return}e.forEach((a,n)=>{const r=`${i}[${n}]`;if(!C(a)){t.add("INVALID_VALUE",'link must be an object with "label" and "href"',r);return}t.checkKeys(a,Lc,r),t.checkString(a.label,`${r}.label`,"link label",!0),t.checkString(a.href,`${r}.href`,"link href",!0)})}}function zt(t,e,i,a={}){if(!C(e)){t.add("INVALID_VALUE","Field must be an object",i);return}const n=a.column===!0;if(t.checkKeys(e,n?Sc:Ic,i),n||(t.checkString(e.item,`${i}.item`,"item",!0),typeof e.item=="string"&&e.item.startsWith(X)&&t.add("INVALID_VALUE",`item must not start with "${X}" (reserved)`,`${i}.item`),t.checkString(e.label,`${i}.label`,"label",!0)),typeof e.component=="string"&&Oc.includes(e.component)?n&&!rn.includes(e.component)&&t.add("INVALID_FIELD_TYPE",`Column field supports only ${rn.join(" / ")} (got "${String(e.component)}")`,`${i}.component`):t.add("INVALID_FIELD_TYPE",`Invalid component "${String(e.component)}"`,`${i}.component`),t.checkEnum(e.width,Xd,`${i}.width`,"width"),e.options!==void 0&&(Array.isArray(e.options)?e.options.forEach((s,o)=>{const l=`${i}.options[${o}]`;C(s)?(t.checkKeys(s,Ec,l),Object.hasOwn(s,"value")||t.add("MISSING_REQUIRED_FIELD",'option must have "value"',`${l}.value`),typeof s.label!="string"&&t.add("MISSING_REQUIRED_FIELD",'option must have a string "label"',`${l}.label`)):t.add("INVALID_VALUE",'option must be an object with "value" and "label"',l)}):t.add("INVALID_VALUE","options must be an array",`${i}.options`)),e.rules!==void 0&&(Array.isArray(e.rules)?e.rules.forEach((s,o)=>{const l=`${i}.rules[${o}]`;typeof s=="string"?Object.hasOwn(t.rules,s)||t.add("INVALID_VALUE",`Unknown rule "${s}" (not defined in top-level rules)`,l):C(s)||t.add("INVALID_VALUE","rule must be a rule name or an object",l)}):t.add("INVALID_VALUE","rules must be an array",`${i}.rules`)),e.visibleWhen!==void 0&&!n&&Tt(t,e.visibleWhen,`${i}.visibleWhen`),e.requiredWhen!==void 0&&!n&&(Tt(t,e.requiredWhen,`${i}.requiredWhen`,"requiredWhen"),e.required===!0&&t.add("INVALID_VALUE","requiredWhen cannot be combined with required: true (use required: false)",`${i}.requiredWhen`)),t.checkString(e.unit,`${i}.unit`,"unit"),t.checkString(e.autocomplete,`${i}.autocomplete`,"autocomplete"),e.autocomplete===""&&t.add("INVALID_VALUE","autocomplete must be a non-empty string",`${i}.autocomplete`),t.checkEnum(e.precision,nc,`${i}.precision`,"precision"),e.precision!==void 0&&e.component!=="date"&&t.add("INVALID_VALUE",`precision is only valid for component "date" (got "${String(e.component)}")`,`${i}.precision`),Mc(t,e.accept,`${i}.accept`),e.maxSize!==void 0&&!(typeof e.maxSize=="string"&&vd.test(e.maxSize))&&t.add("INVALID_VALUE",`Invalid maxSize ${JSON.stringify(e.maxSize)} (expected ${_d})`,`${i}.maxSize`),Hc(t,e.links,`${i}.links`),e.to!==void 0&&t.checkViewRef(e.to,`${i}.to`),e.props!==void 0)if(!C(e.props))t.add("INVALID_VALUE","props must be an object",`${i}.props`);else for(const s of["id","type"])Object.hasOwn(e.props,s)&&t.add("INVALID_VALUE",`props.${s} is not allowed (it is derived from item / component)`,`${i}.props.${s}`)}function on(t){return C(t)&&Z(t.item)?t.item:void 0}function Oe(t,e,i,a={}){if(!C(e)){t.add("INVALID_VALUE","Action must be an object",i);return}t.checkKeys(e,a.row?xc:_c,i),t.checkString(e.id,`${i}.id`,"id",!0),t.checkString(e.label,`${i}.label`,"label",!0),t.checkEnum(e.kind,Zd,`${i}.kind`,"kind"),t.checkEnum(e.placement,Qd,`${i}.placement`,"placement"),t.checkEnum(e.style,Jd,`${i}.style`,"style"),e.kind==="navigate"?t.checkViewRef(e.to,`${i}.to`):e.to!==void 0&&t.checkViewRef(e.to,`${i}.to`),e.confirm!==void 0&&(C(e.confirm)?(t.checkKeys(e.confirm,wc,`${i}.confirm`),t.checkString(e.confirm.message,`${i}.confirm.message`,"confirm.message",!0)):t.add("INVALID_VALUE","confirm must be an object",`${i}.confirm`)),t.checkRole(e.role,`${i}.role`),a.section&&e.style==="primary"&&t.add("INVALID_VALUE",'Section actions must not use style "primary" (only a View has a primary action)',`${i}.style`)}function Fc(t,e,i){const a=`${i}.list`;if(!C(e)){t.add("MISSING_REQUIRED_FIELD",'Section of kind "list" must have "list"',a);return}t.checkKeys(e,kc,a);const n=e.rows!==void 0;if(n&&(Array.isArray(e.rows)?e.rows.forEach((r,s)=>{const o=`${a}.rows[${s}]`;if(!C(r))return t.add("INVALID_VALUE","row must be an object (keys are column ids)",o);for(const[l,d]of Object.entries(r))d===null||["string","number","boolean"].includes(typeof d)||t.add("INVALID_VALUE",`row value must be a string, number, boolean or null (got ${Array.isArray(d)?"an array":typeof d})`,`${o}.${l}`)}):t.add("INVALID_VALUE","list.rows must be an array of objects",`${a}.rows`)),!Array.isArray(e.columns)||e.columns.length===0?t.add("MISSING_REQUIRED_FIELD","list.columns must be a non-empty array",`${a}.columns`):e.columns.forEach((r,s)=>{const o=`${a}.columns[${s}]`;if(!C(r)){t.add("INVALID_VALUE","column must be an object",o);return}t.checkKeys(r,Cc,o),t.checkString(r.id,`${o}.id`,"column id",!0),t.checkString(r.label,`${o}.label`,"column label",!0),t.checkEnum(r.type,ac,`${o}.type`,"column type"),r.to!==void 0&&t.checkViewRef(r.to,`${o}.to`),r.field!==void 0&&(zt(t,r.field,`${o}.field`,{column:!0}),n||t.add("INVALID_VALUE",'column "field" requires list.rows',`${o}.field`))}),e.rowActions!==void 0&&(Array.isArray(e.rowActions)?e.rowActions.forEach((r,s)=>Oe(t,r,`${a}.rowActions[${s}]`,{row:!0})):t.add("INVALID_VALUE","list.rowActions must be an array",`${a}.rowActions`)),t.checkEnum(e.selection,ec,`${a}.selection`,"selection"),e.paging!==void 0)if(!C(e.paging))t.add("INVALID_VALUE","list.paging must be an object",`${a}.paging`);else{t.checkKeys(e.paging,$c,`${a}.paging`);const r=e.paging.pageSize;r!==void 0&&!(Number.isInteger(r)&&r>=1)&&t.add("INVALID_VALUE","paging.pageSize must be an integer of 1 or more",`${a}.paging.pageSize`)}e.bulkActions!==void 0&&(Array.isArray(e.bulkActions)?(e.selection!=="multiple"&&t.add("INVALID_VALUE",'bulkActions is only valid when list.selection is "multiple"',`${a}.bulkActions`),e.bulkActions.forEach((r,s)=>Oe(t,r,`${a}.bulkActions[${s}]`))):t.add("INVALID_VALUE","list.bulkActions must be an array",`${a}.bulkActions`))}function Vc(t){const e={};for(const[i,a]of Object.entries(t))e[i]={fields:Array.isArray(a.fields)?a.fields.filter(n=>C(n)&&Z(n.item)):[]};return e}function Bc(t,e,i,a,n){if(!C(e)){t.add("INVALID_VALUE","Section must be an object",i);return}Z(e.id)?a.sectionIds.has(e.id)?t.add("INVALID_VALUE",`Duplicate section id "${e.id}"`,`${i}.id`):a.sectionIds.add(e.id):t.add("MISSING_REQUIRED_FIELD",'Section must have an "id"',`${i}.id`),t.checkKeys(e,vc,i),t.checkString(e.title,`${i}.title`,"title",!0),t.checkEnum(e.kind,Gd,`${i}.kind`,"kind"),t.checkEnum(e.reveal,Kd,`${i}.reveal`,"reveal"),t.checkEnum(e.columns,[1,2,3],`${i}.columns`,"columns"),e.note!==void 0&&t.checkString(e.note,`${i}.note`,"note");const r=e.kind??"form";if(r!=="form"&&(e.reveal!==void 0&&t.add("INVALID_VALUE",`reveal is only valid for kind "form" (got "${String(r)}")`,`${i}.reveal`),e.repeatable!==void 0&&t.add("INVALID_VALUE",`repeatable is only valid for kind "form" (got "${String(r)}")`,`${i}.repeatable`)),e.repeatable!==void 0&&!C(e.repeatable))t.add("INVALID_VALUE","repeatable must be an object",`${i}.repeatable`);else if(C(e.repeatable)){const{min:u,max:h}=e.repeatable;t.checkKeys(e.repeatable,yc,`${i}.repeatable`),u!==void 0&&!(Number.isInteger(u)&&u>=0)&&t.add("INVALID_VALUE","repeatable.min must be an integer of 0 or more",`${i}.repeatable.min`),h!==void 0&&!(Number.isInteger(h)&&h>=1)&&t.add("INVALID_VALUE","repeatable.max must be an integer of 1 or more",`${i}.repeatable.max`),typeof u=="number"&&typeof h=="number"&&u>h&&t.add("INVALID_VALUE",`repeatable.min (${u}) must not be greater than max (${h})`,`${i}.repeatable.min`)}if(e.use!==void 0&&!(Z(e.use)&&Object.hasOwn(n,e.use))&&t.add("INVALID_VALUE",`Unknown pattern "${String(e.use)}"`,`${i}.use`),e.visibleWhen!==void 0&&Tt(t,e.visibleWhen,`${i}.visibleWhen`)&&a.conditions.push({item:on(e.visibleWhen),path:`${i}.visibleWhen.item`,name:"visibleWhen"}),e.actions!==void 0&&(Array.isArray(e.actions)?e.actions.forEach((u,h)=>Oe(t,u,`${i}.actions[${h}]`,{section:!0})):t.add("INVALID_VALUE",'Section "actions" must be an array',`${i}.actions`)),r==="list"&&(e.fields!==void 0&&t.add("INVALID_VALUE",'fields is not valid for kind "list" (use "list.columns")',`${i}.fields`),Fc(t,e.list,i)),e.fields!==void 0&&!Array.isArray(e.fields)){t.add("INVALID_VALUE",'Section "fields" must be an array',`${i}.fields`);return}const s=e.fields??[];if(s.forEach((u,h)=>{const m=`${i}.fields[${h}]`;zt(t,u,m),C(u)&&u.to!==void 0&&r!=="readonly"&&r!=="summary"&&t.add("INVALID_VALUE",`field "to" is only valid in sections of kind "readonly" or "summary" (got "${r}")`,`${m}.to`)}),!(s.every(u=>C(u)&&Z(u.item))&&(e.use===void 0||Z(e.use)&&Object.hasOwn(n,e.use))&&Z(e.id)))return;const l=De(e,Vc(n)),d=l.filter(u=>u.fromPattern).length;l.forEach((u,h)=>{const m=u.fromPattern?`${i}.use`:`${i}.fields[${h-d}]`,f=u.fromPattern?m:`${m}.item`;a.fieldIds.has(u.id)&&t.add("INVALID_VALUE",`Duplicate field id "${u.id}" in view "${a.viewName}"`,f),a.fieldIds.add(u.id),u.fromPattern&&(a.patternIds.push({item:u.field.item,id:u.id}),u.field.to!==void 0&&r!=="readonly"&&r!=="summary"&&t.add("INVALID_VALUE",`field "to" is only valid in sections of kind "readonly" or "summary" (got "${r}")`,m));const b=u.field;for(const y of["visibleWhen","requiredWhen"]){const _=on(b[y]);_&&a.conditions.push({item:_,path:u.fromPattern?m:`${m}.${y}.item`,name:y})}})}function jc(t,e,i,a,n){const r=new Map,s=(o,l)=>{!C(o)||!Z(o.id)||(r.has(o.id)?t.add("INVALID_VALUE",`Duplicate action id "${o.id}" in view "${e}" (also at ${r.get(o.id)})`,`${l}.id`):r.set(o.id,l))};C(i.primaryAction)&&s(i.primaryAction,`${a}.primaryAction`),Array.isArray(i.secondaryActions)&&i.secondaryActions.forEach((o,l)=>s(o,`${a}.secondaryActions[${l}]`)),n.forEach((o,l)=>{if(!C(o))return;const d=`${a}.sections[${l}]`;if(Array.isArray(o.actions)&&o.actions.forEach((u,h)=>s(u,`${d}.actions[${h}]`)),C(o.list)){const{rowActions:u,bulkActions:h}=o.list;Array.isArray(u)&&u.forEach((m,f)=>s(m,`${d}.list.rowActions[${f}]`)),Array.isArray(h)&&h.forEach((m,f)=>s(m,`${d}.list.bulkActions[${f}]`))}})}function Rc(t,e,i,a){for(const[n,r]of Object.entries(e)){const s=`views.${n}`;if(!C(r)){t.add("INVALID_VALUE","View must be an object",s);continue}if(t.checkKeys(r,fc,s),t.checkString(r.title,`${s}.title`,"title",!0),t.checkString(r.goal,`${s}.goal`,"goal",!0),t.checkEnum(r.layout,Yd,`${s}.layout`,"layout"),r.nav!==void 0&&(a===void 0?t.add("INVALID_VALUE","nav is set but app.navigation is not defined",`${s}.nav`):a.has(String(r.nav))||t.add("INVALID_VALUE",`nav "${String(r.nav)}" is not in app.navigation`,`${s}.nav`)),r.states!==void 0)if(!C(r.states))t.add("INVALID_VALUE","states must be an object",`${s}.states`);else{t.checkKeys(r.states,gc,`${s}.states`);for(const[l,d]of Object.entries(r.states))!C(d)||typeof d.message!="string"?t.add("INVALID_VALUE",`states.${l} must be an object with a string "message"`,`${s}.states.${l}`):t.checkKeys(d,bc,`${s}.states.${l}`)}if(r.primaryAction!==void 0&&(Array.isArray(r.primaryAction)?t.add("INVALID_VALUE","primaryAction must be a single action (at most one per view)",`${s}.primaryAction`):Oe(t,r.primaryAction,`${s}.primaryAction`)),r.secondaryActions!==void 0&&(Array.isArray(r.secondaryActions)?r.secondaryActions.forEach((l,d)=>Oe(t,l,`${s}.secondaryActions[${d}]`)):t.add("INVALID_VALUE","secondaryActions must be an array",`${s}.secondaryActions`)),!Array.isArray(r.sections)){t.add("MISSING_REQUIRED_FIELD",'View must have "sections"',`${s}.sections`);continue}const o={viewName:n,fieldIds:new Set,conditions:[],patternIds:[],sectionIds:new Set};r.sections.forEach((l,d)=>Bc(t,l,`${s}.sections[${d}]`,o,i)),jc(t,n,r,s,r.sections);for(const l of o.conditions)if(!o.fieldIds.has(l.item)){const d=o.patternIds.find(h=>h.item===l.item),u=d?`(パターン由来の項目は ${d.id} で参照します)`:"";t.add("INVALID_VALUE",`${l.name} references unknown field "${l.item}"${u}`,l.path)}}}function Pc(t,e){if(e!==void 0){if(!C(e)){t.add("INVALID_VALUE",'"rules" must be an object',"rules");return}for(const[i,a]of Object.entries(e))C(a)||t.add("INVALID_VALUE","Rule must be an object",`rules.${i}`)}}function Uc(t,e){const i={};if(e===void 0)return i;if(!C(e))return t.add("INVALID_VALUE",'"patterns" must be an object',"patterns"),i;for(const[a,n]of Object.entries(e)){const r=`patterns.${a}`;if(!C(n)){t.add("INVALID_VALUE","Pattern must be an object",r);continue}for(const s of Object.keys(n))ic.includes(s)||t.add("INVALID_VALUE",`Unsupported pattern key "${s}" (only fields and note; nested "use" is not supported)`,`${r}.${s}`);n.note!==void 0&&t.checkString(n.note,`${r}.note`,"note"),n.fields!==void 0&&(Array.isArray(n.fields)?n.fields.forEach((s,o)=>zt(t,s,`${r}.fields[${o}]`)):t.add("INVALID_VALUE",'pattern "fields" must be an array',`${r}.fields`)),i[a]=n}return i}function qc(t){const e=[],i=sc(e,t);if(i.checkKeys(t,oc,""),Tc(i,C(t.app)?t.app:void 0),Pc(i,t.rules),!C(t.views))return i.add("MISSING_REQUIRED_FIELD",'v2 schema must have a "views" object',"views"),e;Object.keys(t.views).length===0&&i.add("MISSING_REQUIRED_FIELD",'"views" must have at least one view',"views");const a=C(t.app)?t.app:void 0,n=zc(i,a==null?void 0:a.navigation);Dc(i,t.flows);const r=Uc(i,t.patterns);return Rc(i,t.views,r,n),e}function Dt(t){return C(t)&&t.mokkun===2}function Wc(t){return C(t)&&Object.hasOwn(t,"mokkun")}function Je(t){let e;try{e=Nt(t)}catch(i){return{success:!1,errors:[{type:"SCHEMA_VALIDATION_ERROR",message:i instanceof Error?i.message:"Unknown error while reading v2 schema",path:""}]}}if(!C(e))return{success:!1,errors:[{type:"SCHEMA_VALIDATION_ERROR",message:"Root must be an object",path:""}]};if(e.mokkun!==2)return{success:!1,errors:[{type:"SCHEMA_VALIDATION_ERROR",message:`unsupported mokkun format version: ${JSON.stringify(e.mokkun)} (expected the number 2)`,path:"mokkun"}]};try{const i=qc(e);return i.length>0?{success:!1,errors:i}:{success:!0,data:e}}catch(i){return{success:!1,errors:[{type:"SCHEMA_VALIDATION_ERROR",message:i instanceof Error?i.message:"Unknown error while validating v2 schema",path:""}]}}}function Yc(t){const e=Je(t);if(!e.success)return e;try{return{success:!0,data:an(e.data)}}catch(i){return{success:!1,errors:[{type:"SCHEMA_VALIDATION_ERROR",message:i instanceof Error?i.message:"Unknown error while compiling v2 schema",path:""}]}}}const ln=["submit","navigate","custom","reset"],dn=["field_group","action_group","layout","template"];function I(t){return t!=null}function R(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function z(t){return Array.isArray(t)}function he(t){return typeof t=="string"}const cn=new Set(["__proto__","constructor","prototype"]);function Xe(t){const e=t.toLowerCase().replace(/[()()]/g,"").replace(/[・]/g,"_").replace(/\s+/g,"_").replace(/[^a-z0-9_\u3040-\u309f\u30a0-\u30ff\u4e00-\u9faf]/g,"");return e?cn.has(e)?`_${e}`:e:"_unnamed"}function Ot(t){const e={};for(const i of Object.keys(t))cn.has(i)||(e[i]=t[i]);return e}function Gc(){let t=0;return()=>(t++,`__auto_field_${t}`)}function Kc(t){if(he(t))return t.split(",").map(e=>e.trim()).filter(Boolean);if(z(t))return t.map(String)}function pe(t,e){var l,d;const i=t.id??t.field_name??e(),a=t.label??t.field_name??"",n=Ot(t);delete n.field_name,delete n.accepted_types,delete n.display_fields,delete n.filters,t.default===void 0&&t.default_value!==void 0&&(n.default=t.default_value);let r;t.options&&(z(t.options)&&t.options.length>0?r=t.options.map(u=>{if(he(u))return{value:u,label:u};if(R(u)&&I(u.value))return{...u,label:u.label??u.value};const h=String(u);return{value:h,label:h}}):he(t.options)&&(r=t.options));const s={id:i,label:a,description:t.description,required:t.required,placeholder:t.placeholder,...t.visible_when?{visible_when:t.visible_when}:{}},o=t.type;switch(o){case"text":return{...n,...s,type:"text",input_type:t.input_type};case"number":return{...n,...s,type:"number",min:t.min,max:t.max,unit:t.unit};case"textarea":return{...n,...s,type:"textarea",rows:t.rows};case"select":return{...n,...s,type:"select",options:r??[]};case"multi_select":return{...n,...s,type:"multi_select",options:r??[]};case"radio_group":return{...n,...s,type:"radio_group",options:r??[]};case"checkbox_group":return{...n,...s,type:"checkbox_group",options:r??[]};case"date_picker":return{...n,...s,type:"date_picker"};case"time_picker":return{...n,...s,type:"time_picker"};case"duration_picker":return{...n,...s,type:"duration_picker",units:t.units};case"duration_input":return{...n,...s,type:"duration_input",display_unit:t.display_unit??t.unit};case"file_upload":return{...n,...s,type:"file_upload",accept:Kc(t.accepted_types??t.accept),multiple:t.multiple};case"repeater":return{...n,...s,type:"repeater",item_fields:((l=t.item_fields)==null?void 0:l.map(u=>pe(u,e)))??[]};case"data_table":{const u=t.data,h=u==null?void 0:u.map((m,f)=>I(m.id)?m:{...m,id:`row-${f}`});return{...n,...s,type:"data_table",columns:t.columns??[],data:h,selection:t.selection,row_actions:t.row_actions,default_sort:t.default_sort,pagination:t.pagination,filters:t.filters,empty_state:t.empty_state,height:t.height,striped:t.striped,hoverable:t.hoverable,bordered:t.bordered,compact:t.compact,responsive:t.responsive}}case"google_map_embed":return{...n,...s,type:"google_map_embed",height:t.height,width:t.width,show_open_link:t.show_open_link,zoom:t.zoom};case"photo_manager":return{...n,...s,type:"photo_manager",photos:t.photos,max_photos:t.max_photos,max_file_size:t.max_file_size,accepted_formats:t.accepted_formats,columns:t.columns};case"image_uploader":return{...n,...s,type:"image_uploader",accepted_formats:t.accepted_formats,max_file_size:t.max_file_size,max_files:t.max_files,min_files:t.min_files};case"browser":return{...n,...s,type:"browser",items:t.browser_items??t.items??[],default:t.default??t.default_value,maxColumns:t.max_columns,height:t.height};case"calendar":return{...n,...s,type:"calendar",default:t.default??t.default_value,from:t.calendar_from??t.from,to:t.calendar_to??t.to,weekStartsOn:t.week_starts_on,locale:t.locale};case"combobox":return{...n,...s,type:"combobox",mode:t.mode,options:r,searchable:t.searchable,async_loader:t.async_loader,min_search_length:t.min_search_length,debounce_ms:t.debounce_ms,clearable:t.clearable,max_selections:t.max_selections};case"checkbox":return{...n,...s,type:"checkbox",checked_label:t.checked_label,unchecked_label:t.unchecked_label,size:t.size,name:t.name,label_position:t.label_position};case"toggle":return{...n,...s,type:"toggle",checked_label:t.checked_label,unchecked_label:t.unchecked_label,size:t.size,name:t.name,label_position:t.label_position};case"badge":return{...n,...s,type:"badge",color:t.color,size:t.size,dot:t.dot,count:t.count,max_count:t.max_count,text:t.text,...t.hide_on_zero!==void 0?{hide_on_zero:t.hide_on_zero}:{}};case"segmented_control":return{...n,...s,type:"segmented_control",options:Array.isArray(r)?r:void 0,default:t.default??t.default_value};case"timeline":return{...n,...s,type:"timeline",items:(d=t.items)==null?void 0:d.map(u=>({...Ot(u),time:String(u.time??u.datetime??u.date??""),title:String(u.title??""),description:u.description??u.content}))};case"heading":return{...n,...s,type:"heading",level:t.level??2,text:t.label??t.text??"",size:t.size,align:t.align,color:t.color,icon:t.icon};case"tooltip":return{...n,...s,type:"tooltip",content:t.content??"",position:t.position,delay:t.delay,show_arrow:t.show_arrow,is_html:t.is_html,max_width:t.max_width};case"pagination":return{...n,...s,type:"pagination",total_items:t.total_items??0,current_page:t.current_page,page_size:t.page_size,page_size_options:t.page_size_options,show_page_size_selector:t.show_page_size_selector,show_item_count:t.show_item_count,show_jump_buttons:t.show_jump_buttons,max_page_buttons:t.max_page_buttons,compact:t.compact,align:t.align};case"float_area":return{...n,...s,type:"float_area",position:t.position,show_shadow:t.show_shadow,show_border:t.show_border,z_index:t.z_index,responsive:t.responsive,sticky:t.sticky,align:t.float_align??t.align,padding:t.padding,gap:t.gap,aria_label:t.aria_label};case"loader":return{...n,...s,type:"loader",size:t.loader_size??t.size,loaderType:t.loader_type??t.loaderType,overlay:t.overlay,showProgress:t.show_progress??t.showProgress,initialProgress:t.initial_progress??t.initialProgress};case"tabs":{const u=f=>z(f)?f.filter(R).map(b=>({...Ot(b),...z(b.fields)?{fields:b.fields.map(y=>pe(y,e))}:{}})):void 0,h=u(t.items),m=u(t.tabs);return{...n,...h?{items:h}:{},...m?{tabs:m}:{},...s,type:"tabs"}}default:return{...n,...r!==void 0?{options:r}:{},...s,type:o}}}function Zc(t,e,i){const a=t.map((s,o)=>({id:`col_${o}`,label:s,sortable:!0}));let n;return e&&e.length>0&&(n={enabled:!0,show_search:e.some(s=>s.includes("キーワード")||s.includes("検索")),fields:e.filter(s=>!s.includes("キーワード")&&!s.includes("検索")).map((s,o)=>({id:`filter_${o}`,label:s,column:`col_${o}`,type:"select",options:[]}))}),{id:i?Xe(i)+"_table":"data_table",type:"data_table",label:i??"一覧",columns:a,data:[],selection:"single",pagination:{enabled:!0,page_size:10,page_size_options:[10,25,50,100]},filters:n,empty_state:{title:"データがありません",description:"表示するデータが存在しません",icon:"📭"},hoverable:!0,striped:!0}}function Qc(t,e){var i;return{...t,input_fields:(i=t.input_fields)==null?void 0:i.map(a=>pe(a,e))}}function Jc(t){var e;if(t)return{logo:t.logo,logoAlt:t.logo_alt,logoHref:t.logo_href,systemName:t.system_name??t.systemName,appName:t.app_name??t.appName??"",tenants:t.tenants,currentTenantId:t.current_tenant_id??t.currentTenantId,userInfo:t.user_info?{name:t.user_info.name,email:t.user_info.email,avatarUrl:t.user_info.avatar_url??t.user_info.avatarUrl}:{name:""},navigations:(e=t.navigations)==null?void 0:e.map(i=>{var a;return{id:i.id,label:i.label,href:i.href,active:i.active,disabled:i.disabled,dropdown:(a=i.dropdown)==null?void 0:a.map(n=>({id:n.id,label:n.label,href:n.href,divider:n.divider}))}}),appLauncher:t.app_launcher??t.appLauncher,helpPageUrl:t.help_page_url??t.helpPageUrl,showReleaseNote:t.show_release_note??t.showReleaseNote,releaseNoteText:t.release_note_text??t.releaseNoteText,showDataSync:t.show_data_sync??t.showDataSync}}function Xc(t){var i;if(!t)return;const e=((i=t.items)==null?void 0:i.map(a=>{var n;return{id:a.id,label:a.label,type:a.type,icon:a.icon,disabled:a.disabled,current:a.current,href:a.href,target:a.target,dropdownItems:(n=a.dropdown_items??a.dropdownItems)==null?void 0:n.map(r=>({id:r.id,label:r.label,icon:r.icon,disabled:r.disabled,href:r.href}))}}))??[];return{label:t.label,items:e}}function eu(t,e){return{...t,steps:t.steps.map(i=>({...i,fields:(i.fields??[]).map(a=>pe(a,e))}))}}function un(t,e){const i=t.title??t.name??"Untitled";let a,n;if(t.sections&&t.sections.length>0){a=t.sections.map(s=>Qc(s,e)),n=[];for(const s of a)if(s.input_fields)for(const o of s.input_fields)n.push(o)}else t.fields?n=t.fields.map(s=>pe(s,e)):t.display_fields&&z(t.display_fields)&&(n=[Zc(t.display_fields,t.filters,t.name)]);!n&&t.input_fields&&z(t.input_fields)&&(n=t.input_fields.map(s=>pe(s,e)));let r=t.actions;return r&&z(r)&&(r=r.map((s,o)=>he(s)?{id:`action_${o}`,type:"custom",handler:`action_${o}`,label:s,style:o===0?"primary":"secondary"}:s)),{title:i,description:t.description??t.purpose,app_header:Jc(t.app_header),app_navi:Xc(t.app_navi),sections:a,fields:n,actions:r,wizard:t.wizard?eu(t.wizard,e):void 0,layout:t.layout}}function tu(t,e){if(z(t)){const a={};for(const n of t){const r=n.name?Xe(n.name):`screen_${Object.keys(a).length}`;a[r]=un(n,e)}return a}const i={};for(const[a,n]of Object.entries(t))i[a]=un(n,e);return i}function iu(t,e){if(!t)return;if(z(t)){const a={};for(const n of t){const r=n.component_name??n.name,s=Xe(r);a[s]={name:r,description:n.description,type:"field_group"}}return a}const i={};for(const[a,n]of Object.entries(t))i[a]={...n,fields:n.fields?n.fields.map(r=>pe(r,e)):void 0};return i}function au(t){if(!t)return;if(z(t)){const i={};for(const a of t){const n=Xe(a.field);i[n]={name:a.field,rules:{message:a.rule},message:a.rule}}return i}const e={};for(const[i,a]of Object.entries(t))e[i]={...a,name:a.name??i};return e}function nu(t){const e=Gc();return{view:tu(t.view,e),common_components:iu(t.common_components,e),validations:au(t.validations)}}function et(t,e){const i=[];return R(t)?(I(t.type)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Field must have a "type"',path:e}),["badge","pagination","float_area"].includes(t.type)&&!I(t.label)&&i.push({type:"MISSING_REQUIRED_FIELD",message:`Field type "${t.type}" requires a "label"`,path:e}),["select","multi_select","radio_group","checkbox_group"].includes(t.type)&&(I(t.options)?!z(t.options)&&!he(t.options)?i.push({type:"INVALID_VALUE",message:"Options must be an array or a reference string",path:`${e}.options`}):z(t.options)&&t.options.forEach((r,s)=>{i.push(...ru(r,`${e}.options[${s}]`))}):i.push({type:"MISSING_REQUIRED_FIELD",message:`Field type "${t.type}" requires "options"`,path:e})),t.type==="repeater"&&(I(t.item_fields)?z(t.item_fields)?t.item_fields.forEach((r,s)=>{i.push(...et(r,`${e}.item_fields[${s}]`))}):i.push({type:"INVALID_VALUE",message:"item_fields must be an array",path:`${e}.item_fields`}):i.push({type:"MISSING_REQUIRED_FIELD",message:'Repeater field must have "item_fields"',path:e})),i):(i.push({type:"INVALID_VALUE",message:"Field must be an object",path:e}),i)}function ru(t,e){const i=[];return he(t)?i:R(t)?(I(t.value)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Option must have a "value"',path:e}),I(t.label)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Option must have a "label"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Option must be an object or string",path:e}),i)}function hn(t,e,i={}){const a=i.allowString??!0,n=[];return he(t)?(a||n.push({type:"INVALID_VALUE",message:"Action must be an object",path:e}),n):R(t)?(I(t.id)||n.push({type:"MISSING_REQUIRED_FIELD",message:'Action must have an "id"',path:e}),I(t.type)?ln.includes(t.type)||n.push({type:"INVALID_FIELD_TYPE",message:`Invalid action type: "${t.type}". Valid types are: ${ln.join(", ")}`,path:`${e}.type`}):n.push({type:"MISSING_REQUIRED_FIELD",message:'Action must have a "type"',path:e}),I(t.label)||n.push({type:"MISSING_REQUIRED_FIELD",message:'Action must have a "label"',path:e}),t.type==="navigate"&&!I(t.to)&&n.push({type:"MISSING_REQUIRED_FIELD",message:'Navigate action must have a "to" destination',path:e}),n):(n.push({type:"INVALID_VALUE",message:"Action must be an object or string",path:e}),n)}function su(t,e){const i=[];return R(t)?I(t.steps)?z(t.steps)?(t.steps.forEach((a,n)=>{i.push(...ou(a,`${e}.steps[${n}]`))}),i):(i.push({type:"INVALID_VALUE",message:"Wizard steps must be an array",path:`${e}.steps`}),i):(i.push({type:"MISSING_REQUIRED_FIELD",message:'Wizard must have "steps"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Wizard must be an object",path:e}),i)}function ou(t,e){const i=[];return R(t)?(I(t.id)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Wizard step must have an "id"',path:e}),I(t.title)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Wizard step must have a "title"',path:e}),I(t.fields)?z(t.fields)?t.fields.forEach((a,n)=>{i.push(...et(a,`${e}.fields[${n}]`))}):i.push({type:"INVALID_VALUE",message:"Wizard step fields must be an array",path:`${e}.fields`}):i.push({type:"MISSING_REQUIRED_FIELD",message:'Wizard step must have "fields"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Wizard step must be an object",path:e}),i)}function lu(t,e){const i=[];return R(t)?(I(t.title)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Screen must have a "title"',path:e}),I(t.wizard)&&i.push(...su(t.wizard,`${e}.wizard`)),I(t.fields)&&(z(t.fields)?t.fields.forEach((a,n)=>{i.push(...et(a,`${e}.fields[${n}]`))}):i.push({type:"INVALID_VALUE",message:"Screen fields must be an array",path:`${e}.fields`})),I(t.actions)&&(z(t.actions)?t.actions.forEach((a,n)=>{i.push(...hn(a,`${e}.actions[${n}]`))}):i.push({type:"INVALID_VALUE",message:"Screen actions must be an array",path:`${e}.actions`})),i):(i.push({type:"INVALID_VALUE",message:"Screen definition must be an object",path:e}),i)}function du(t,e){const i=[];return R(t)?(I(t.name)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Common component must have a "name"',path:e}),I(t.type)?dn.includes(t.type)||i.push({type:"INVALID_FIELD_TYPE",message:`Invalid component type: "${t.type}". Valid types are: ${dn.join(", ")}`,path:`${e}.type`}):i.push({type:"MISSING_REQUIRED_FIELD",message:'Common component must have a "type"',path:e}),t.type==="field_group"&&I(t.fields)&&(z(t.fields)?t.fields.forEach((a,n)=>{i.push(...et(a,`${e}.fields[${n}]`))}):i.push({type:"INVALID_VALUE",message:"Component fields must be an array",path:`${e}.fields`})),t.type==="action_group"&&I(t.actions)&&(z(t.actions)?t.actions.forEach((a,n)=>{i.push(...hn(a,`${e}.actions[${n}]`,{allowString:!1}))}):i.push({type:"INVALID_VALUE",message:"Component actions must be an array",path:`${e}.actions`})),i):(i.push({type:"INVALID_VALUE",message:"Common component must be an object",path:e}),i)}function cu(t,e){const i=[];return R(t)?(I(t.rules)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Validation rule must have "rules"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Validation rule must be an object",path:e}),i)}function uu(t,e){const i=[];return R(t)?(!I(t.name)&&!I(t.title)&&i.push({type:"MISSING_REQUIRED_FIELD",message:'Screen must have a "name" or "title"',path:e}),I(t.sections)&&(z(t.sections)||i.push({type:"INVALID_VALUE",message:"sections must be an array",path:`${e}.sections`})),i):(i.push({type:"INVALID_VALUE",message:"Screen definition must be an object",path:e}),i)}function hu(t,e){const i=[];return R(t)?(!I(t.component_name)&&!I(t.name)&&i.push({type:"MISSING_REQUIRED_FIELD",message:'Common component must have a "component_name" or "name"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Common component must be an object",path:e}),i)}function pu(t,e){const i=[];return R(t)?(I(t.field)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Validation rule must have a "field"',path:e}),I(t.rule)||i.push({type:"MISSING_REQUIRED_FIELD",message:'Validation rule must have a "rule"',path:e}),i):(i.push({type:"INVALID_VALUE",message:"Validation rule must be an object",path:e}),i)}function mu(t){const e=[];if(!R(t))return e.push({type:"SCHEMA_VALIDATION_ERROR",message:"Root must be an object",path:""}),e;if(!I(t.view))e.push({type:"MISSING_REQUIRED_FIELD",message:'Schema must have a "view" section',path:""});else if(z(t.view))t.view.forEach((i,a)=>{e.push(...uu(i,`view[${a}]`))});else if(R(t.view))for(const[i,a]of Object.entries(t.view))e.push(...lu(a,`view.${i}`));else e.push({type:"INVALID_VALUE",message:'"view" must be an object or array',path:"view"});if(I(t.common_components))if(z(t.common_components))t.common_components.forEach((i,a)=>{e.push(...hu(i,`common_components[${a}]`))});else if(R(t.common_components))for(const[i,a]of Object.entries(t.common_components))e.push(...du(a,`common_components.${i}`));else e.push({type:"INVALID_VALUE",message:'"common_components" must be an object or array',path:"common_components"});if(I(t.validations))if(z(t.validations))t.validations.forEach((i,a)=>{e.push(...pu(i,`validations[${a}]`))});else if(R(t.validations))for(const[i,a]of Object.entries(t.validations))e.push(...cu(a,`validations.${i}`));else e.push({type:"INVALID_VALUE",message:'"validations" must be an object or array',path:"validations"});return e}function Mt(t){var e,i;try{const a=we.load(t);if(Wc(a))return Yc(a);const n=Ue(a),r=mu(n);return r.length>0?{success:!1,errors:r}:{success:!0,data:nu(n)}}catch(a){return a instanceof we.YAMLException?{success:!1,errors:[{type:"YAML_SYNTAX_ERROR",message:a.message,line:(e=a.mark)==null?void 0:e.line,column:(i=a.mark)==null?void 0:i.column}]}:{success:!1,errors:[{type:"YAML_SYNTAX_ERROR",message:a instanceof Error?a.message:"Unknown error"}]}}}function fu(t){try{return Dt(we.load(t))}catch{return!1}}function Ht(t){var e,i;try{return Je(we.load(t))}catch(a){return a instanceof we.YAMLException?{success:!1,errors:[{type:"YAML_SYNTAX_ERROR",message:a.message,line:(e=a.mark)==null?void 0:e.line,column:(i=a.mark)==null?void 0:i.column}]}:{success:!1,errors:[{type:"YAML_SYNTAX_ERROR",message:a instanceof Error?a.message:"Unknown error"}]}}}function pn(t){return t.map(e=>{let i="";return e.path&&(i=` at "${e.path}"`),e.line!==void 0&&(i+=` (line ${e.line+1}`,e.column!==void 0&&(i+=`, column ${e.column+1}`),i+=")"),`[${e.type}]${i}: ${e.message}`}).join(`
748
+ `)}function Ft(t,e){return t.view[e]}function mn(t){return Object.keys(t.view)}function fn(t,e){for(const i of t){if(i.id===e)return i;if(i.type==="repeater"){const a=fn(i.item_fields,e);if(a)return a}}}class gu{constructor(e={},i={}){p(this,"config");p(this,"callbacks");p(this,"state");p(this,"dialogElement",null);p(this,"overlayElement",null);p(this,"dialogId");p(this,"boundKeydownHandler");this.config={size:"M",closeOnOverlayClick:!0,closeOnEscape:!0,firstFocusTarget:"first",contentPadding:"normal",...e},this.callbacks=i,this.dialogId=N("dialog"),this.state={isOpen:!1,previouslyFocusedElement:null},this.boundKeydownHandler=this.handleKeydown.bind(this),e.isOpen&&setTimeout(()=>this.open(),0)}open(){var e,i;this.state.isOpen||(this.state={...this.state,isOpen:!0,previouslyFocusedElement:document.activeElement},this.render(),this.setupEventListeners(),this.trapFocus(),(i=(e=this.callbacks).onOpen)==null||i.call(e))}close(){var e,i;this.state.isOpen&&(this.removeEventListeners(),this.destroy(),this.state.previouslyFocusedElement instanceof HTMLElement&&this.state.previouslyFocusedElement.focus(),this.state={...this.state,isOpen:!1,previouslyFocusedElement:null},(i=(e=this.callbacks).onClose)==null||i.call(e),requestAnimationFrame(()=>{var a,n;(n=(a=this.callbacks).onAfterClose)==null||n.call(a)}))}updateConfig(e){this.config={...this.config,...e},this.state.isOpen&&this.render()}getState(){return{...this.state}}getDialogElement(){return this.dialogElement}getOverlayElement(){return this.overlayElement}render(){this.destroy(),this.overlayElement=this.createOverlay(),this.dialogElement=this.createDialogContainer();const e=this.renderContent();e&&this.dialogElement.appendChild(e),document.body.appendChild(this.overlayElement),document.body.appendChild(this.dialogElement),document.body.classList.add("dialog-open")}renderContent(){return null}getDialogClassName(){const e="dialog-base",i=this.config.className??"";return`${e} ${i}`.trim()}getAriaRole(){return"dialog"}getFirstFocusElement(){var i,a;const e=this.getFocusableElements();if(e.length===0)return null;switch(this.config.firstFocusTarget){case"first":return e[0];case"confirm":return((i=this.dialogElement)==null?void 0:i.querySelector('button[data-action="confirm"]'))??e[0];case"cancel":return((a=this.dialogElement)==null?void 0:a.querySelector('button[data-action="cancel"]'))??e[0];default:return e[0]}}createOverlay(){return c("div",{className:"dialog-overlay",attributes:{"data-dialog-overlay":this.dialogId}})}createDialogContainer(){const e=this.getDialogClassName(),i=this.config.ariaLabel,a=this.config.ariaLabelledby,n=this.config.ariaDescribedby,r={role:this.getAriaRole(),"aria-modal":"true","data-dialog-id":this.dialogId,"data-size":this.config.size??"M"};return i&&(r["aria-label"]=i),a&&(r["aria-labelledby"]=a),n&&(r["aria-describedby"]=n),c("div",{className:e,attributes:r})}setupEventListeners(){var e;document.addEventListener("keydown",this.boundKeydownHandler),this.config.closeOnOverlayClick!==!1&&((e=this.overlayElement)==null||e.addEventListener("click",i=>{i.target===this.overlayElement&&this.handleOverlayClick()}))}removeEventListeners(){document.removeEventListener("keydown",this.boundKeydownHandler)}handleKeydown(e){if(e.key==="Escape"&&this.config.closeOnEscape!==!1){e.preventDefault(),this.handleEscapeKey();return}e.key==="Tab"&&this.handleTabKey(e)}handleEscapeKey(){var i,a;(((a=(i=this.config).onPressEscape)==null?void 0:a.call(i))??!0)!==!1&&this.close()}handleOverlayClick(){var i,a;(((a=(i=this.config).onClickOverlay)==null?void 0:a.call(i))??!0)!==!1&&this.close()}handleTabKey(e){if(!this.dialogElement)return;const i=this.getFocusableElements();if(i.length===0)return;const a=i[0],n=i[i.length-1],r=document.activeElement;e.shiftKey?r===a&&(e.preventDefault(),n.focus()):r===n&&(e.preventDefault(),a.focus())}getFocusableElements(){if(!this.dialogElement)return[];const e=["button:not([disabled])","a[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(this.dialogElement.querySelectorAll(e))}trapFocus(){const e=this.getFirstFocusElement();e&&e.focus()}destroy(){this.overlayElement&&(this.overlayElement.remove(),this.overlayElement=null),this.dialogElement&&(this.dialogElement.remove(),this.dialogElement=null),document.body.classList.remove("dialog-open")}escapeHtml(e){const i=document.createElement("div");return i.textContent=e,i.innerHTML}}class bu extends gu{constructor(e,i={}){super(e,i),this.config={...this.config,title:e.title,message:e.message,icon:e.icon??"warning",customIcon:e.customIcon,confirmLabel:e.confirmLabel??"確認",cancelLabel:e.cancelLabel??"キャンセル",confirmDisabled:e.confirmDisabled??!1,danger:e.danger??!1,showSubActionArea:e.showSubActionArea??!1,subActionContent:e.subActionContent},this.callbacks={...this.callbacks,onConfirm:i.onConfirm,onCancel:i.onCancel}}getDialogClassName(){const e=super.getDialogClassName(),i="dialog-action",a=this.config.danger?"dialog-danger":"";return`${e} ${i} ${a}`.trim()}getAriaRole(){return"alertdialog"}renderContent(){const e=c("div",{className:"dialog-content-wrapper"});return e.appendChild(this.renderHeader()),e.appendChild(this.renderBody()),e.appendChild(this.renderFooter()),e}renderHeader(){const e=c("div",{className:"dialog-header"}),i=this.renderIcon();e.appendChild(i);const a=`${this.dialogId}-title`,n=c("h2",{className:"dialog-title",textContent:this.config.title,attributes:{id:a}});return e.appendChild(n),!this.config.ariaLabelledby&&this.dialogElement&&this.dialogElement.setAttribute("aria-labelledby",a),e}renderIcon(){const e=c("div",{className:`dialog-icon dialog-icon-${this.config.icon}`});return this.config.icon==="custom"&&this.config.customIcon?e.innerHTML=this.config.customIcon:e.innerHTML=this.getIconSVG(this.config.icon),e}getIconSVG(e){const i={warning:`
749
+ <svg viewBox="0 0 24 24" width="24" height="24" fill="currentColor" aria-hidden="true">
750
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>
751
+ </svg>
752
+ `,error:`
753
+ <svg viewBox="0 0 24 24" width="24" height="24" fill="currentColor" aria-hidden="true">
754
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>
755
+ </svg>
756
+ `,info:`
757
+ <svg viewBox="0 0 24 24" width="24" height="24" fill="currentColor" aria-hidden="true">
758
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/>
759
+ </svg>
760
+ `,success:`
761
+ <svg viewBox="0 0 24 24" width="24" height="24" fill="currentColor" aria-hidden="true">
762
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
763
+ </svg>
764
+ `};return e==="custom"?"":i[e]||i.warning}renderBody(){const e=`${this.dialogId}-body`,i=c("div",{className:"dialog-body",attributes:{id:e}});if(this.config.message){const a=c("p",{className:"dialog-message",textContent:this.config.message});i.appendChild(a)}if(this.config.showSubActionArea&&this.config.subActionContent){const a=c("div",{className:"dialog-sub-action-area"});typeof this.config.subActionContent=="string"?a.innerHTML=this.config.subActionContent:a.appendChild(this.config.subActionContent),i.appendChild(a)}return!this.config.ariaDescribedby&&this.dialogElement&&this.dialogElement.setAttribute("aria-describedby",e),i}renderFooter(){const e=c("div",{className:"dialog-footer"}),i=c("button",{className:"dialog-btn dialog-btn-cancel",textContent:this.config.cancelLabel,attributes:{type:"button","data-action":"cancel"}});i.addEventListener("click",()=>this.handleCancel()),e.appendChild(i);const a=this.config.danger?"dialog-btn dialog-btn-confirm dialog-btn-danger":"dialog-btn dialog-btn-confirm dialog-btn-primary",n=c("button",{className:a,textContent:this.config.confirmLabel,attributes:{type:"button","data-action":"confirm"}});return this.config.confirmDisabled&&n.setAttribute("disabled","true"),n.addEventListener("click",()=>this.handleConfirm()),e.appendChild(n),e}async handleConfirm(){var i,a;const e=(a=(i=this.callbacks).onConfirm)==null?void 0:a.call(i);e instanceof Promise&&await e,this.close()}handleCancel(){var e,i;(i=(e=this.callbacks).onCancel)==null||i.call(e),this.close()}}class vu{constructor(e,i={},a=new Map){p(this,"container");p(this,"callbacks");p(this,"deleteConfirmConfigs");p(this,"boundClickHandler");this.container=e,this.callbacks=i,this.deleteConfirmConfigs=a,this.boundClickHandler=this.handleClick.bind(this)}attach(){this.container.addEventListener("click",this.boundClickHandler)}detach(){this.container.removeEventListener("click",this.boundClickHandler)}registerDeleteConfirmConfig(e,i){this.deleteConfirmConfigs.set(e,i)}handleClick(e){const a=e.target.closest("[data-action-id]");if(!a)return;const n=a.dataset.actionId,r=a.dataset.actionType;if(!n||!r)return;const s=a.dataset.confirmTitle,o=a.dataset.confirmMessage;if(s&&o){e.preventDefault(),this.showConfirmDialog(a,n,r,s,o);return}if(r==="submit"){const l=a.closest("form");if(l&&!l.reportValidity()){e.preventDefault();return}e.preventDefault()}this.executeAction(a,n,r)}async showConfirmDialog(e,i,a,n,r){const s=this.deleteConfirmConfigs.get(i);if(!s){const h=e.dataset.actionStyle==="danger"||e.classList.contains("btn-danger");new bu({title:n,message:r,icon:"warning",danger:h,confirmLabel:e.dataset.confirmLabel,cancelLabel:e.dataset.cancelLabel,onPressEscape:()=>{var f,b;return(b=(f=this.callbacks).onCancel)==null||b.call(f,i),!0},onClickOverlay:()=>{var f,b;return(b=(f=this.callbacks).onCancel)==null||b.call(f,i),!0}},{onConfirm:()=>{this.executeAction(e,i,a)},onCancel:()=>{var f,b;(b=(f=this.callbacks).onCancel)==null||b.call(f,i)}}).open();return}let o;if(s!=null&&s.getDependencies){const h=s.getDependencies();o=h instanceof Promise?await h:h}let l=r;s!=null&&s.getTargetName&&(l=s.getTargetName());const d={title:n,targetName:l,targetType:s==null?void 0:s.targetType,dependencies:o,warningMessage:s==null?void 0:s.warningMessage,danger:!0};new za(d,{onConfirm:()=>{this.executeAction(e,i,a)},onCancel:()=>{var h,m;(m=(h=this.callbacks).onCancel)==null||m.call(h,i)}}).open()}executeAction(e,i,a){var n,r,s,o,l,d,u,h;switch(a){case"submit":{const m=e.dataset.url,f=e.dataset.method;(r=(n=this.callbacks).onSubmit)==null||r.call(n,i,m,f);break}case"navigate":{const m=e.dataset.navigateTo;m&&((o=(s=this.callbacks).onNavigate)==null||o.call(s,i,m));break}case"custom":{const m=e.dataset.handler;m&&((d=(l=this.callbacks).onCustom)==null||d.call(l,i,m));break}case"reset":{(h=(u=this.callbacks).onReset)==null||h.call(u,i);break}}}}function yu(t,e={},i){const a=new vu(t,e,i);return a.attach(),a}const gn=[".yaml",".yml"],bn=["https:","http:"];function _u(t){const e=t.toLowerCase();return gn.some(i=>e.endsWith(i))}function xu(t){return{type:"INVALID_FILE_TYPE",message:`無効なファイル形式: ${t}`,details:`YAMLファイル(${gn.join(", ")})のみ対応しています`}}function wu(t,e,i){let a,n=!0;try{a=we.load(t)}catch{n=!1}if(n&&Dt(a)){const s=Je(a);if(!s.success)return{success:!1,error:{type:"YAML_PARSE_ERROR",message:"YAMLのパースに失敗しました",details:pn(s.errors),parseErrors:s.errors}};let o=null;try{o=an(s.data)}catch{o=null}return{success:!0,schema:o,schemaV2:s.data,fileName:e,source:i,content:t}}const r=Mt(t);return r.success?{success:!0,schema:r.data,fileName:e,source:i,content:t}:{success:!1,error:{type:"YAML_PARSE_ERROR",message:"YAMLのパースに失敗しました",details:pn(r.errors),parseErrors:r.errors}}}async function ku(t){const e=new URL(t,window.location.href),i=e.pathname.split("/"),a=i[i.length-1]||"unknown.yaml";if(!bn.includes(e.protocol))return{success:!1,error:{type:"FETCH_ERROR",message:"無効なURLプロトコル",details:`許可されているプロトコル: ${bn.join(", ")}`}};if(!_u(a))return{success:!1,error:xu(a)};try{const n=await fetch(t);if(!n.ok)return{success:!1,error:{type:"FETCH_ERROR",message:`ファイルの取得に失敗しました: ${t}`,details:`HTTPステータス: ${n.status} ${n.statusText}`}};const r=await n.text();return wu(r,a,"url")}catch(n){const r=n instanceof Error?n.message:String(n);return{success:!1,error:{type:"NETWORK_ERROR",message:`ネットワークエラー: ${t}`,details:r}}}}const Vt="mokkun-theme",vn="data-theme",Bt="mokkun-theme-change",Cu=[{id:"light",name:"ライト",description:"デフォルトの明るいテーマ",isBuiltIn:!0},{id:"dark",name:"ダーク",description:"目に優しいダークテーマ",isBuiltIn:!0}],jt="light";class $u{constructor(){p(this,"themes");p(this,"currentThemeId");p(this,"config");p(this,"customStyleElement");this.themes=new Map,this.currentThemeId=null,this.config=null,this.customStyleElement=null,Cu.forEach(e=>{this.themes.set(e.id,e)})}initialize(){var a;const e=this.getSavedTheme(),i=e&&this.themes.has(e)?e:((a=this.config)==null?void 0:a.default_theme)??jt;this.applyTheme(i)}loadConfig(e){try{this.config=ba(e),this.config.custom_themes&&this.config.custom_themes.forEach(i=>{const a={id:i.id,name:i.name,description:i.description,isBuiltIn:!1,cssVariables:i.css_variables};this.themes.set(a.id,a)})}catch(i){console.error("Failed to load theme config:",i)}}getAvailableThemes(){return Array.from(this.themes.values())}getCurrentTheme(){return this.currentThemeId}getTheme(e){return this.themes.get(e)}hasTheme(e){return this.themes.has(e)}applyTheme(e){const i=this.themes.get(e);if(!i)return console.warn(`Theme not found: ${e}`),!1;const a=this.currentThemeId;return document.documentElement.setAttribute(vn,e),!i.isBuiltIn&&i.cssVariables?this.applyCustomVariables(i.cssVariables):this.removeCustomVariables(),this.currentThemeId=e,this.saveTheme(e),this.dispatchThemeChangeEvent(a,e),!0}applyCustomVariables(e){this.removeCustomVariables();const i=Object.entries(e).map(([n,r])=>` ${n}: ${r};`).join(`
765
+ `),a=`[${vn}] {
766
+ ${i}
767
+ }`;this.customStyleElement=document.createElement("style"),this.customStyleElement.id="mokkun-custom-theme",this.customStyleElement.textContent=a,document.head.appendChild(this.customStyleElement)}removeCustomVariables(){this.customStyleElement&&(this.customStyleElement.remove(),this.customStyleElement=null)}registerTheme(e){this.themes.set(e.id,{...e,isBuiltIn:!1})}unregisterTheme(e){const i=this.themes.get(e);return!i||i.isBuiltIn?!1:(this.themes.delete(e),this.currentThemeId===e&&this.applyTheme(jt),!0)}saveTheme(e){try{localStorage.setItem(Vt,e)}catch(i){console.warn("Failed to save theme preference:",i)}}getSavedTheme(){try{return localStorage.getItem(Vt)}catch(e){return console.warn("Failed to read theme preference:",e),null}}clearSavedTheme(){try{localStorage.removeItem(Vt)}catch(e){console.warn("Failed to clear theme preference:",e)}}dispatchThemeChangeEvent(e,i){const a={previousTheme:e,currentTheme:i},n=new CustomEvent(Bt,{bubbles:!0,detail:a});document.dispatchEvent(n)}onThemeChange(e){const i=a=>{e(a.detail)};return document.addEventListener(Bt,i),()=>{document.removeEventListener(Bt,i)}}getDefaultTheme(){var e;return((e=this.config)==null?void 0:e.default_theme)??jt}prefersColorScheme(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}applySystemPreference(){const e=this.prefersColorScheme();this.applyTheme(e)}watchSystemPreference(e=!1){if(typeof window>"u")return()=>{};const i=window.matchMedia("(prefers-color-scheme: dark)"),a=n=>{e&&this.applyTheme(n.matches?"dark":"light")};return i.addEventListener("change",a),()=>{i.removeEventListener("change",a)}}}const tt=new $u,Au=()=>tt.initialize(),Rt=t=>tt.applyTheme(t),Eu=()=>tt.getAvailableThemes(),yn=()=>tt.getCurrentTheme(),_n=t=>`<svg class="${t}" width="16" height="16" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 17L3 8L4 7L12 15L20 7L21 8L12 17Z" fill="currentcolor"/></svg>`,Iu='<svg class="dads-breadcrumb__separator-icon" width="12" height="12" viewBox="0 0 12 12" aria-hidden="true"><path d="M4.5 11L4 10.5L8 6.5L4 2.5L4.5 2L9 6.5L4.5 11Z" fill="currentcolor" /></svg>',Su='<svg class="dads-accordion__icon-svg" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true"><path d="M3.3 7.3L12 16L20.7 7.3" fill="none" stroke="currentcolor" stroke-width="2"/></svg>',Lu='<svg class="dads-notification-banner__close-icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true"><path d="m6.4 18.6-1-1 5.5-5.6-5.6-5.6 1.1-1 5.6 5.5 5.6-5.6 1 1.1L13 12l5.6 5.6-1 1L12 13l-5.6 5.6Z" fill="currentcolor"/></svg>',Nu='<svg class="dads-modal-dialog__close-icon" width="24" height="24" viewBox="0 0 120 120" aria-hidden="true"><path d="M32 95L25 88L53 60L25 32L32 25L60 53L88 25L95 32L67 60L95 88L88 95L60 67L32 95Z" fill="currentcolor"/></svg>',Tu={"info-1":'<svg class="dads-notification-banner__icon" width="24" height="24" viewBox="0 0 24 24" role="img" aria-label="インフォメーション"><circle cx="12" cy="12" r="10" fill="currentcolor"/><circle cx="12" cy="8" r="1" fill="Canvas"/><path d="M11 11h2v6h-2z" fill="Canvas"/></svg>',success:'<svg class="dads-notification-banner__icon" width="24" height="24" viewBox="0 0 24 24" role="img" aria-label="成功"><circle cx="12" cy="12" r="10" fill="currentcolor"/><path d="m17.6 9.6-7 7-4.3-4.3L7.7 11l2.9 2.9 5.7-5.6 1.3 1.4Z" fill="Canvas"/></svg>',warning:'<svg class="dads-notification-banner__icon" width="24" height="24" viewBox="0 0 24 24" role="img" aria-label="警告"><path d="M1 21 12 2l11 19H1Z" fill="currentcolor"/><path d="M13 15h-2v-5h2v5Z" fill="Canvas"/><circle cx="12" cy="17" r="1" fill="Canvas"/></svg>',error:'<svg class="dads-notification-banner__icon" width="24" height="24" viewBox="0 0 24 24" role="img" aria-label="エラー"><path d="M8.25 21 3 15.75v-7.5L8.25 3h7.5L21 8.25v7.5L15.75 21h-7.5Z" fill="currentcolor"/><path d="m12 13.4-2.85 2.85-1.4-1.4L10.6 12 7.75 9.15l1.4-1.4L12 10.6l2.85-2.85 1.4 1.4L13.4 12l2.85 2.85-1.4 1.4L12 13.4Z" fill="Canvas"/></svg>'},zu='<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="12" fill="#666"/><path d="M10 17.5 19.8 8l-1.5-1.5-8.1 8-4.1-4L4.5 12l5.6 5.5Z" fill="#fff"/></svg>',Du='<svg class="dads-button__icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true"><path d="M9 2.6 7.6 4l8 8-8 8L9 21.4l9.4-9.4z" fill="currentcolor"/></svg>',Pt={none:"M17 18.11L21.27 14L22 14.7L16.5 20L11 14.7L11.73 14L16 18.12V4H17V18.12ZM8 5.88L12.27 10L13 9.3L7.5 4L2 9.3L2.73 10L7 5.88V20H8V5.88Z",ascending:"M17 18.12L21.27 14L22 14.7L16.5 20L11 14.7L11.73 14L16 18.12V4H17V18.12ZM14 8.92L11.73 11L9 8.52V20H6V8.52L3.27 11L1 8.93L7.5 3L14 8.93Z",descending:"M7 5.88L2.73 10L2 9.3L7.5 4L13 9.3L12.27 10L8 5.88V20H7V5.88ZM10 15.08L12.27 13L15 15.48V4H18V15.48L20.73 13L23 15.07L16.5 21L10 15.07Z"},Ou=t=>`<svg class="dads-table__sort-svg" width="24" height="24" fill="currentcolor" aria-hidden="true"><path d="${t}"/></svg>`,Mu='<svg width="16" height="16" viewBox="0 0 16 16" role="img" aria-label="前の月"><path d="m5.27 8 5.33-5.33-.93-.94L3.4 8l6.27 6.27.93-.94L5.27 8Z" fill="currentcolor" /></svg>',Hu='<svg width="16" height="16" viewBox="0 0 16 16" role="img" aria-label="次の月"><path d="m6 1.73-.93.94L10.4 8l-5.33 5.33.93.94L12.27 8 6 1.73Z" fill="currentcolor" /></svg>',Fu='<svg class="dads-switch-on-off__icon" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true"><path d="m10.4 16.3-4.1-4.1 1.2-1.3 2.9 2.9 6-6.1 1.3 1.2z" fill="currentcolor"/></svg>',Vu='<svg class="dads-disclosure__icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="11" fill="currentcolor"/><circle class="dads-disclosure__icon-circle" cx="12" cy="12" r="8" fill="currentcolor"/><path class="dads-disclosure__icon-triangle" d="M17 10H7L12 15L17 10Z" fill="Canvas"/></svg>',Bu='<svg class="dads-date-picker__calendar-icon" width="24" height="24" viewBox="0 0 24 24" role="img" aria-label="カレンダー"><rect x="5" y="10" width="14" height="10" fill="Canvas"/><path d="M9 16.5C7.62 16.5 6.5 15.38 6.5 14C6.5 12.62 7.62 11.5 9 11.5C10.38 11.5 11.5 12.62 11.5 14C11.5 15.38 10.38 16.5 9 16.5ZM5 22C3.9 22 3 21.09 3 20V6C3 4.91 3.91 4 5 4H6V2H8V4H16V2H18V4H19C20.09 4 21 4.91 21 6V20C21 21.09 20.09 22 19 22H5ZM5 20H19V10H5V20Z" fill="currentcolor"/></svg><svg class="dads-date-picker__calendar-chevron" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 17.1L3 8L4 7L12 15L20 7L21 8L12 17.1Z" fill="currentcolor" /></svg>',ju='<svg class="dads-link__icon" width="16" height="16" viewBox="0 0 48 48" role="img" aria-label="新規タブで開きます"><path d="M22 6V9H9V39H39V26H42V42H6V6H22ZM42 6V20H39V11.2L21 29L19 27L36.8 9H28V6H42Z" fill="currentcolor"/></svg>';function it(t,e){return t===void 0||e===void 0||e===""?!0:(Array.isArray(t)?t:[t]).includes(e)}function xn(t){const e=i=>String(i).padStart(2,"0");return`${t.getFullYear()}-${e(t.getMonth()+1)}-${e(t.getDate())}`}function Ru(t,e){return t!==void 0&&t<e}function Pu(t){return typeof t=="string"&&nn(t)?t:t instanceof Date&&!Number.isNaN(t.getTime())?xn(t):xn(new Date)}const Uu={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function v(t){return String(t??"").replace(/[&<>"']/g,e=>Uu[e])}function E(t){let e="";for(const[i,a]of Object.entries(t))a===!1||a===null||a===void 0||(e+=a===!0?` ${i}`:` ${i}="${v(a)}"`);return e}function A(t){return t==null?"":String(t)}function wn(t,e){const i=t==null?void 0:t[e];return typeof i=="string"&&i.length>0?i:void 0}function Me(t,e){const i=t==null?void 0:t[e];return typeof i=="number"&&Number.isFinite(i)?i:void 0}function Ut(t){const e=typeof t=="string"?t.trim():"";if(!e)return"#";try{const i=new URL(e,"https://mokkun.invalid/");return["http:","https:","mailto:"].includes(i.protocol)?e:"#"}catch{return"#"}}function at(t,e){return Array.isArray(t)?t.filter(i=>typeof i=="object"&&i!==null&&typeof i[e]=="string"):[]}const qu='<svg class="dads-utility-link__lead-icon" width="16" height="16" viewBox="0 0 24 24" fill="currentcolor" aria-hidden="true"><path d="M12 12c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4Zm0 2c-2.7 0-8 1.3-8 4v2h16v-2c0-2.7-5.3-4-8-4Z"/></svg>',Wu='<svg class="dads-utility-link__lead-icon" width="16" height="16" viewBox="0 0 24 24" fill="currentcolor" aria-hidden="true"><path d="M4 21V5l8-2v6h8v12H4Zm2-2h3v-3H6v3Zm0-5h3v-3H6v3Zm0-5h3V6H6v3Zm5 10h3v-3h-3v3Zm0-5h3v-3h-3v3Zm5 5h2v-3h-2v3Zm0-5h2v-3h-2v3Z"/></svg>',Yu='<svg class="dads-utility-link__tail-icon" width="16" height="16" viewBox="0 0 48 48" fill="currentcolor" role="img" aria-label="新規タブで開きます"><path d="M22 6V9H9V39H39V26H42V42H6V6H22ZM42 6V20H39V11.2L21 29L19 27L36.8 9H28V6H42Z"/></svg>',Gu={info:"info-1",success:"success",warning:"warning",error:"error"};function qt(t,e,i,a=!1){const n=Gu[e],r=a?`
768
+ <button class="dads-notification-banner__close" type="button" aria-labelledby="${v(t)}-close" data-banner-close>
769
+ ${Lu}
770
+ <span id="${v(t)}-close" class="dads-notification-banner__close-label">閉じる</span>
771
+ </button>`:"";return`<div id="${v(t)}" class="dads-notification-banner" data-style="standard" data-type="${n}">
772
+ <h2 class="dads-notification-banner__heading">
773
+ ${Tu[n]}
774
+ <span class="dads-notification-banner__heading-text">${v(i)}</span>
775
+ </h2>${r}
776
+ </div>`}function Ku(t){return(t.schema.app.notifications??[]).map((e,i)=>({n:e,i})).filter(({n:e})=>it(e.role,t.role)&&!Ru(e.until,t.today)).map(({n:e,i})=>qt(`${t.viewName}-notice-${i+1}`,e.variant??"info",e.message,e.dismissible===!0)).join(`
777
+ `)}function kn(t){return(t.schema.app.navigation??[]).filter(e=>it(e.role,t.role))}function Zu(t,e,i){var a;return i??((a=t.schema.views[e])==null?void 0:a.title)??e}function Cn(t,e,i,a,n,r=""){return`<a${E({class:e,href:`#${i}`,"data-nav-view":i,"aria-current":n?"page":void 0})}${r}>${v(Zu(t,i,a))}</a>`}function Qu(t){const e=kn(t);if(e.length===0)return"";const i=t.view.nav;return`<nav class="mk2-globalnav" aria-label="グローバルナビゲーション">
778
+ <ul class="dads-horizontal-menu">
779
+ ${e.map((n,r)=>{if(n.items.length===1){const d=n.items[0];return`<li class="dads-horizontal-menu__item">${Cn(t,"dads-horizontal-menu__item-inner",d.view,d.label,d.view===i)}</li>`}const s=`${t.viewName}-nav-menu-${r+1}`,o=n.items.some(d=>d.view===i),l=n.items.map(d=>`<li>${Cn(t,"dads-menu-list__item",d.view,d.label,d.view===i,' data-type="standard" data-size="regular"')}</li>`).join("");return`<li class="dads-horizontal-menu__item">
780
+ <button${E({class:"dads-horizontal-menu__item-inner",type:"button","aria-expanded":"false","aria-controls":s,"aria-current":o?"true":void 0,"data-submenu-toggle":!0})}>
781
+ <span class="dads-horizontal-menu__label">${v(n.group)}</span>
782
+ ${_n("dads-horizontal-menu__chevron")}
783
+ </button>
784
+ <div id="${v(s)}" class="mk2-submenu" hidden><ul class="dads-menu-list">${l}</ul></div>
785
+ </li>`}).join(`
786
+ `)}
787
+ </ul>
788
+ </nav>`}function Ju(t){const{app:e}=t.schema,i=e.header??{},a=(r,s,o)=>`<span class="mk2-header__meta"${o?` title="${v(o)}"`:""}>${r}<span class="dads-utility-link__label">${v(s)}</span></span>`,n=[i.userName?a(qu,i.userName,i.userEmail):"",i.tenantName?a(Wu,i.tenantName):"",i.helpUrl?`<a class="dads-utility-link" href="${v(Ut(i.helpUrl))}" target="_blank" rel="noopener noreferrer"><span class="dads-utility-link__label">ヘルプ</span> ${Yu}</a>`:""].join("");return`<header class="mk2-header">
789
+ <div class="mk2-header__inner">
790
+ <div class="mk2-header__brand">
791
+ ${i.systemName?`<span class="mk2-header__system">${v(i.systemName)}</span>`:""}
792
+ <span class="mk2-header__app">${v(e.name)}</span>
689
793
  </div>
690
- `}function Ii(t){const e=t.app_header?'<div id="app-header-container" class="app-header-container"></div>':"",i=t.app_navi?'<div id="app-navi-container" class="app-navi-container"></div>':"";return e+i}function Je(t){if(t.wizard)return Ei(t,0);if(t.sections&&t.sections.length>0)return Or(t);const e=Ii(t),i=Qe(t),n=Mr(t),s=wi(t);return`
691
- <div class="screen">
692
- ${e}
693
- ${i}
694
- <form class="screen-form">
695
- ${n}
696
- ${s}
697
- </form>
794
+ <div class="mk2-header__utility">${n}</div>
795
+ </div>
796
+ ${Qu(t)}
797
+ </header>`}function Xu(t){var l,d;const{app:e}=t.schema,i=e.navigation??[],a=t.view.nav??t.viewName,n=i.find(u=>u.items.some(h=>h.view===a)),r=(d=(l=kn(t)[0])==null?void 0:l.items[0])==null?void 0:d.view,s=[{label:e.name,view:r}];n&&s.push({label:n.group,view:n.items[0].view});const o=(u,h)=>`<span class="dads-breadcrumb__item">${h?`<a class="dads-breadcrumb__link" href="#${v(h)}" data-nav-view="${v(h)}">${v(u)}</a>`:`<span class="dads-breadcrumb__link">${v(u)}</span>`}<span class="dads-breadcrumb__separator">${Iu}</span></span>`;return`<nav class="dads-breadcrumb" aria-labelledby="${v(t.viewName)}-breadcrumb-label">
798
+ <span id="${v(t.viewName)}-breadcrumb-label" class="dads-u-visually-hidden">現在位置</span>
799
+ <p class="dads-breadcrumb__list">
800
+ ${s.map(u=>o(u.label,u.view)).join(`
801
+ `)}
802
+ <span class="dads-breadcrumb__item" aria-current="page">${v(t.view.title)}</span>
803
+ </p>
804
+ </nav>`}function Wt(t){const{item:e,equals:i,notEquals:a,in:n}=t;return JSON.stringify({item:e,...i!==void 0?{equals:i}:{},...a!==void 0?{notEquals:a}:{},...n!==void 0?{in:n}:{}})}function Yt(t,e){return Array.isArray(t)?t.includes(A(e)):t===A(e)}function $n(t,e){return e.in!==void 0?e.in.some(i=>Yt(t,i)):e.notEquals!==void 0?!Yt(t,e.notEquals):Yt(t,e.equals)}function An(t,e,i){const a=r=>/^\d$/.test(r.trim())?`0${r.trim()}`:r.trim(),n=[t.trim(),a(e),a(i)];for(;n.length>0&&n[n.length-1]==="";)n.pop();return n.join("-")}function eh(t,e){const i=/^(\d{4})-(\d{1,2})(?:-(\d{1,2}))?/.exec(t);return i?An(i[1],i[2],e==="month"?"":i[3]??""):t}const En=["normal","success","error","empty","loading"];function th(t,e,i={}){const a=Object.hasOwn(t.views,e)?t.views[e]:void 0;if(!a)return;const n=new Map;for(const o of a.sections)for(const l of De(o,t.patterns))n.set(l.id,l.field);const r=i.state&&En.includes(i.state)?i.state:"normal",s=Pu(i.today);return{schema:t,viewName:e,view:a,fields:n,state:r,role:i.role||void 0,today:s}}function se(t,...e){return[t.viewName,...e].join("-")}function ih(t){const e=t.value!==void 0?t.value:t.default;return t.multiple?Array.isArray(e)?e.map(A):e==null||e===""?[]:[A(e)]:t.component==="checkbox"||t.component==="toggle"?e===!0||A(e)==="true"?"true":"false":t.component==="date"&&!t.inline?eh(A(e),t.precision):A(e)}function Gt(t,e){if(!t)return!0;const i=e.fields.get(t.item);return i?$n(ih(i),t):!1}function ah(t,e){for(const i of Object.values(t.flows??{})){if(i.progress==="none")continue;const a=i.steps.findIndex(n=>n.view===e);if(a>=0)return{flow:i,index:a}}}function In(t,e){return Array.from(t.querySelectorAll("[data-field]")).find(i=>i.dataset.field===e)}function nh(t){const e=i=>{var a;return((a=t.querySelector(`input[data-js-${i}-input]`))==null?void 0:a.value)??""};return An(e("year"),e("month"),e("day"))}function rh(t){var r;if(t.dataset.component==="date"&&!t.querySelector(".dads-calendar"))return nh(t);const e=Array.from(t.querySelectorAll('input[type="radio"]'));if(e.length>0)return((r=e.find(s=>s.checked))==null?void 0:r.value)??"";const i=Array.from(t.querySelectorAll('input[type="checkbox"]'));if(t.hasAttribute("data-multiple"))return i.filter(s=>s.checked).map(s=>s.value);if(i.length>0)return String(i[0].checked);const a=t.querySelector('[role="switch"]');if(a)return a.getAttribute("aria-checked")==="true"?"true":"false";const n=t.querySelector("select, textarea, input");return(n==null?void 0:n.value)??""}function sh(t,e){try{return JSON.parse(t.dataset[e]??"")}catch{return}}function Sn(t,e,i){const a=sh(e,i);if(!a)return;const n=e.closest("[data-repeat-group]"),r=n&&In(n,a.item)||In(t,a.item);return r?$n(rh(r),a):void 0}function oh(t){t.querySelectorAll("[data-visible-when]").forEach(e=>{const i=Sn(t,e,"visibleWhen");i!==void 0&&(e.hidden=!i)})}function lh(t){const e=Array.from(t.querySelectorAll('input:not([type="hidden"]), select, textarea')),i=e.filter(a=>a.type==="radio");return i.length>0?i.slice(0,1):e.length>1&&e.every(a=>a.type==="checkbox")?[]:e}function dh(t){t.querySelectorAll("[data-required-when]").forEach(e=>{const i=Sn(t,e,"requiredWhen");if(i===void 0)return;const a=e.querySelector(".dads-form-control-label__requirement");a&&(a.dataset.required=String(i),a.textContent=i?"※必須":"※任意"),lh(e).forEach(n=>{n.required=i})})}function $e(t){oh(t),dh(t)}const ch="-(?:support|error|label|button|selected|list|year|month|day|\\d+)",Ln=new RegExp(`__\\d+(?=$|\\s|${ch}(?:$|\\s))`),uh=new RegExp(Ln.source,"g"),hh=["id","for","name","list","aria-describedby","aria-labelledby","aria-controls"];function Nn(t,e){const i=[t,...Array.from(t.querySelectorAll("*"))];for(const a of i)for(const n of hh){const r=a.getAttribute(n);r&&Ln.test(r)&&a.setAttribute(n,r.replace(uh,`__${e}`))}t.querySelectorAll("[data-group-no]").forEach(a=>{a.textContent=String(e)})}function Ae(t){const e=t.querySelector("[data-repeat-groups]");return e?Array.from(e.children).filter(i=>i instanceof HTMLElement&&i.hasAttribute("data-repeat-group")):[]}function Kt(t){const e=Ae(t).length,i=t.dataset.max?Number(t.dataset.max):1/0,a=Number(t.dataset.min??0);t.querySelector("[data-repeat-add]").disabled=e>=i,t.querySelectorAll("[data-repeat-remove]").forEach(n=>{n.hidden=e<=a})}function ph(t){t.querySelectorAll("[data-repeatable]").forEach(Kt)}function mh(t){var r,s,o,l;const e=t.closest("[data-repeat-add]"),i=t.closest("[data-repeat-remove]"),a=(r=e??i)==null?void 0:r.closest("[data-repeatable]");if(!a)return!1;const n=a.querySelector("[data-repeat-groups]");if(!n)return!1;if(e){const d=a.dataset.max?Number(a.dataset.max):1/0;if(Ae(a).length>=d)return!0;const u=a.querySelector("template[data-repeat-template]"),h=(s=u==null?void 0:u.content.cloneNode(!0))==null?void 0:s.firstElementChild;if(!(h instanceof HTMLElement))return!0;Nn(h,Ae(a).length+1),n.appendChild(h)}else if(i){if(Ae(a).length<=Number(a.dataset.min??0))return!0;(o=i.closest("[data-repeat-group]"))==null||o.remove(),Ae(a).forEach((d,u)=>Nn(d,u+1))}return Kt(a),i&&((l=a.querySelector("[data-repeat-add]"))==null||l.focus()),!0}function Tn(t){t.querySelectorAll("[data-repeatable]").forEach(e=>{const i=Number(e.dataset.min??0);Ae(e).slice(i).forEach(a=>a.remove()),Kt(e)})}function Zt(t,e){var a;t.setAttribute("aria-checked",e?"true":"false");const i=(a=t.parentElement)==null?void 0:a.querySelector("input[data-switch-value]");i&&(i.value=e?"true":"false")}function fh(t){t.disabled||(Zt(t,t.getAttribute("aria-checked")!=="true"),t.dispatchEvent(new Event("change",{bubbles:!0})))}function gh(t){return t<1024?`${t}バイト`:t<1024*1024?`${(t/1024).toFixed(1)}KB`:`${(t/1024/1024).toFixed(1)}MB`}function Qt(t){const e=t.closest(".dads-file-upload"),i=e==null?void 0:e.querySelector("[data-js-file-list]"),a=e==null?void 0:e.querySelector("[data-js-empty-message]"),n=e==null?void 0:e.querySelector("[data-js-select-summary]");if(!i||!a)return;const r=Array.from(t.files??[]);i.replaceChildren(...r.map(s=>{const o=document.createElement("li");o.className="dads-file-upload__file-item";const l=document.createElement("span");l.className="dads-file-upload__file-name",l.textContent=s.name;const d=document.createElement("span");return d.className="dads-file-upload__file-meta",d.textContent=` ${gh(s.size)}`,o.append(l,d),o})),i.hidden=r.length===0,a.hidden=r.length>0,n&&(n.textContent=r.length>0?`${r.length}ファイルを選択中`:"")}function bh(t){var m;const e=t.closest("th"),i=e==null?void 0:e.closest("table"),a=i==null?void 0:i.querySelector("tbody");if(!e||!i||!a)return;const n=e.getAttribute("aria-sort")==="ascending"?"descending":"ascending";i.querySelectorAll("th[aria-sort]").forEach(f=>{var b;f.setAttribute("aria-sort","none"),(b=f.querySelector(".dads-table__sort-svg path"))==null||b.setAttribute("d",Pt.none)}),e.setAttribute("aria-sort",n),(m=e.querySelector(".dads-table__sort-svg path"))==null||m.setAttribute("d",Pt[n]);const r=e.cellIndex,s=n==="ascending"?1:-1,o=Array.from(a.rows),l=f=>f.cells[r],d=f=>{var b,y,_;return((b=l(f))==null?void 0:b.dataset.sortValue)??((_=(y=l(f))==null?void 0:y.textContent)==null?void 0:_.trim())??""},u=f=>/^-?\d+(\.\d+)?$/.test(f)?Number(f):Number.NaN,h=(f,b)=>Number.isNaN(u(f))||Number.isNaN(u(b))?f.localeCompare(b,"ja",{numeric:!0}):u(f)-u(b);o.sort((f,b)=>s*h(d(f),d(b))),a.append(...o),vh(i.closest(".mk2-list"))}function vh(t){if(!t||!t.hasAttribute("data-paged"))return;const e=Number(t.dataset.pageSize);!Number.isInteger(e)||e<1||Array.from(t.querySelectorAll("[data-list-body] tr")).forEach((i,a)=>{i.hidden=a>=e})}function zn(t){const e=t.closest("[data-tabs]");e&&e.querySelectorAll('[role="tab"]').forEach(i=>{const a=i===t;i.setAttribute("aria-selected",String(a)),a?i.removeAttribute("tabindex"):i.setAttribute("tabindex","-1");const n=Array.from(e.querySelectorAll('[role="tabpanel"]')).find(r=>r.id===i.getAttribute("aria-controls"));n&&(n.hidden=!a)})}function yh(t,e){var r;const i=Array.from(((r=t.closest("[data-tabs]"))==null?void 0:r.querySelectorAll('[role="tab"]'))??[]),a=i.indexOf(t),n=e==="ArrowRight"?i[(a+1)%i.length]:e==="ArrowLeft"?i[(a-1+i.length)%i.length]:e==="Home"?i[0]:e==="End"?i[i.length-1]:void 0;return n?(zn(n),n.focus(),!0):!1}function Dn(t,e){var n;t.setAttribute("aria-expanded",String(e));const i=t.getAttribute("aria-controls"),a=i?Array.from(((n=t.closest(".mk2-globalnav"))==null?void 0:n.querySelectorAll(".mk2-submenu"))??[]).find(r=>r.id===i):void 0;a&&(a.hidden=!e)}function nt(t){t.querySelectorAll("[data-submenu-toggle]").forEach(e=>Dn(e,!1))}function _h(t){var e;t.open||(typeof t.showModal=="function"?t.showModal():t.setAttribute("open",""),(e=t.querySelector(".dads-modal-dialog__heading"))==null||e.focus())}function On(t){typeof t.close=="function"?t.close():t.removeAttribute("open")}function xh(t,e){return Array.from(t.querySelectorAll("[data-section-id]")).find(i=>i.dataset.sectionId===e)}function wh(t,e){const i=Array.from(t.querySelectorAll(".mk2-list")).find(a=>a.dataset.list===e);return i?Array.from(i.querySelectorAll("input[data-row-select]:checked")).map(a=>a.value):[]}function kh(t,e){const i=xh(t,e);i&&(i.querySelectorAll("input, select, textarea").forEach(a=>{a instanceof HTMLInputElement?a.type==="checkbox"||a.type==="radio"?a.checked=a.defaultChecked:a.type==="file"?a.value="":a.type!=="hidden"&&(a.value=a.defaultValue):a instanceof HTMLSelectElement?Array.from(a.options).forEach(n=>{n.selected=n.defaultSelected}):a.value=a.defaultValue}),i.querySelectorAll("[data-initial-checked]").forEach(a=>Zt(a,a.dataset.initialChecked==="true")),i.querySelectorAll('input[type="file"]').forEach(Qt),Tn(i))}function Ch(t,e){return Array.from(t.querySelectorAll("dialog")).find(i=>i.id===e)}function $h(t){t.querySelectorAll(".mk2-list").forEach(e=>{const i=e.querySelectorAll("[data-list-body] tr").length,a=e.querySelector("[data-empty]");a&&(a.hidden=i>0);const n=e.querySelector(".dads-table");n&&(n.hidden=i===0)})}function Mn(t){t.querySelectorAll("[data-initial-checked]").forEach(e=>Zt(e,e.dataset.initialChecked==="true")),t.querySelectorAll('input[type="file"]').forEach(Qt),Tn(t),$e(t)}function Ah(t,e){const i=new AbortController,{signal:a}=i,n=o=>{var l;if(e.syncHash===!0)try{window.location.hash=o}catch{}(l=e.onNavigate)==null||l.call(e,o)},r=o=>{const l=o.dataset.section;if(l!==void 0)return o.hasAttribute("data-bulk")?{section:l,selectedRows:wh(t,l)}:{section:l}},s=o=>{var h,m,f;const l=o.dataset.actionKind??"custom",d=o.dataset.navigateTo;if(l==="navigate"&&d)return n(d);l==="reset"&&(o.dataset.section!==void 0?(kh(t,o.dataset.section),$e(t)):((h=t.querySelector("form"))==null||h.reset(),Mn(t)));const u=r(o);u?(m=e.onAction)==null||m.call(e,o.dataset.action??"",l,u):(f=e.onAction)==null||f.call(e,o.dataset.action??"",l)};return t.addEventListener("click",o=>{var L,Q,P,S,Y,de;const l=o.target instanceof Element?o.target:null;if(!l)return;const d=l.closest("[data-nav-view]");if(d){o.preventDefault(),nt(t),n(d.dataset.navView);return}const u=l.closest("[data-submenu-toggle]");if(u){const M=u.getAttribute("aria-expanded")!=="true";nt(t),Dn(u,M);return}l.closest(".mk2-globalnav")||nt(t);const h=l.closest("[data-confirm]");if(h){const M=Ch(t,h.dataset.confirm);M&&_h(M);return}const m=l.closest("[data-dialog-close]");if(m){const M=m.closest("dialog");M&&On(M);return}const f=l.closest("[data-dialog-confirm]");if(f){const M=f.closest("dialog");if(!M)return;On(M);const V=Array.from(t.querySelectorAll("[data-action]")).find(ct=>ct.dataset.action===M.dataset.dialogFor&&ct.dataset.confirm);V&&s(V);return}const b=l.closest("[data-action]");if(b)return s(b);if(mh(l)){$e(t);return}const y=l.closest("[data-js-toggle]");if(y)return fh(y);const _=l.closest("[data-js-select-button]");if(_){(Q=(L=_.closest(".dads-file-upload"))==null?void 0:L.querySelector('input[type="file"]'))==null||Q.click();return}const x=l.closest("[data-sort]");if(x)return bh(x);const w=l.closest('[role="tab"]');if(w)return o.preventDefault(),zn(w);const F=l.closest("[data-toc-link]");if(F){o.preventDefault();const M=(P=F.getAttribute("href"))==null?void 0:P.slice(1);(Y=(S=Array.from(t.querySelectorAll("[id]")).find(V=>V.id===M))==null?void 0:S.scrollIntoView)==null||Y.call(S,{behavior:"smooth"});return}const D=l.closest("[data-banner-close]");D&&((de=D.closest(".dads-notification-banner"))==null||de.remove())},{signal:a}),t.addEventListener("change",o=>{$e(t),o.target instanceof HTMLInputElement&&o.target.type==="file"&&Qt(o.target)},{signal:a}),t.addEventListener("input",()=>$e(t),{signal:a}),t.addEventListener("reset",()=>setTimeout(()=>Mn(t),0),{signal:a}),t.addEventListener("dragover",o=>{o.target instanceof Element&&o.target.closest("[data-js-drop-area]")&&o.preventDefault()},{signal:a}),t.addEventListener("drop",o=>{var h,m;const l=o.target instanceof Element?o.target.closest("[data-js-drop-area]"):null;if(!l)return;o.preventDefault();const d=(h=l.closest(".dads-file-upload"))==null?void 0:h.querySelector('input[type="file"]'),u=(m=o.dataTransfer)==null?void 0:m.files;!d||!u||u.length===0||(d.files=u,d.dispatchEvent(new Event("change",{bubbles:!0})))},{signal:a}),t.addEventListener("submit",o=>o.preventDefault(),{signal:a}),t.addEventListener("keydown",o=>{const l=o.target instanceof Element?o.target:null;o.key==="Escape"&&nt(t);const d=l==null?void 0:l.closest('[role="tab"]');d&&yh(d,o.key)&&o.preventDefault()},{signal:a}),$e(t),ph(t),$h(t),()=>i.abort()}const Eh='@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap";:root{--color-primitive-blue-50: #e8f1fe;--color-primitive-blue-100: #d9e6ff;--color-primitive-blue-200: #c5d7fb;--color-primitive-blue-300: #9db7f9;--color-primitive-blue-400: #7096f8;--color-primitive-blue-500: #4979f5;--color-primitive-blue-600: #3460fb;--color-primitive-blue-700: #264af4;--color-primitive-blue-800: #0031d8;--color-primitive-blue-900: #0017c1;--color-primitive-blue-1000: #00118f;--color-primitive-blue-1100: #000071;--color-primitive-blue-1200: #000060;--color-primitive-light-blue-50: #f0f9ff;--color-primitive-light-blue-100: #dcf0ff;--color-primitive-light-blue-200: #c0e4ff;--color-primitive-light-blue-300: #97d3ff;--color-primitive-light-blue-400: #57b8ff;--color-primitive-light-blue-500: #39abff;--color-primitive-light-blue-600: #008bf2;--color-primitive-light-blue-700: #0877d7;--color-primitive-light-blue-800: #0066be;--color-primitive-light-blue-900: #0055ad;--color-primitive-light-blue-1000: #00428c;--color-primitive-light-blue-1100: #00316a;--color-primitive-light-blue-1200: #00234b;--color-primitive-cyan-50: #e9f7f9;--color-primitive-cyan-100: #c8f8ff;--color-primitive-cyan-200: #99f2ff;--color-primitive-cyan-300: #79e2f2;--color-primitive-cyan-400: #2bc8e4;--color-primitive-cyan-500: #01b7d6;--color-primitive-cyan-600: #00a3bf;--color-primitive-cyan-700: #008da6;--color-primitive-cyan-800: #008299;--color-primitive-cyan-900: #006f83;--color-primitive-cyan-1000: #006173;--color-primitive-cyan-1100: #004c59;--color-primitive-cyan-1200: #003741;--color-primitive-green-50: #e6f5ec;--color-primitive-green-100: #c2e5d1;--color-primitive-green-200: #9bd4b5;--color-primitive-green-300: #71c598;--color-primitive-green-400: #51b883;--color-primitive-green-500: #2cac6e;--color-primitive-green-600: #259d63;--color-primitive-green-700: #1d8b56;--color-primitive-green-800: #197a4b;--color-primitive-green-900: #115a36;--color-primitive-green-1000: #0c472a;--color-primitive-green-1100: #08351f;--color-primitive-green-1200: #032213;--color-primitive-lime-50: #ebfad9;--color-primitive-lime-100: #d0f5a2;--color-primitive-lime-200: #c0f354;--color-primitive-lime-300: #ade830;--color-primitive-lime-400: #9ddd15;--color-primitive-lime-500: #8cc80c;--color-primitive-lime-600: #7eb40d;--color-primitive-lime-700: #6fa104;--color-primitive-lime-800: #618e00;--color-primitive-lime-900: #507500;--color-primitive-lime-1000: #3e5a00;--color-primitive-lime-1100: #2c4100;--color-primitive-lime-1200: #1e2d00;--color-primitive-yellow-50: #fbf5e0;--color-primitive-yellow-100: #fff0b3;--color-primitive-yellow-200: #ffe380;--color-primitive-yellow-300: #ffd43d;--color-primitive-yellow-400: #ffc700;--color-primitive-yellow-500: #ebb700;--color-primitive-yellow-600: #d2a400;--color-primitive-yellow-700: #b78f00;--color-primitive-yellow-800: #a58000;--color-primitive-yellow-900: #927200;--color-primitive-yellow-1000: #806300;--color-primitive-yellow-1100: #6e5600;--color-primitive-yellow-1200: #604b00;--color-primitive-orange-50: #ffeee2;--color-primitive-orange-100: #ffdfca;--color-primitive-orange-200: #ffc199;--color-primitive-orange-300: #ffa66d;--color-primitive-orange-400: #ff8d44;--color-primitive-orange-500: #ff7628;--color-primitive-orange-600: #fb5b01;--color-primitive-orange-700: #e25100;--color-primitive-orange-800: #c74700;--color-primitive-orange-900: #ac3e00;--color-primitive-orange-1000: #8b3200;--color-primitive-orange-1100: #6d2700;--color-primitive-orange-1200: #541e00;--color-primitive-red-50: #fdeeee;--color-primitive-red-100: #ffdada;--color-primitive-red-200: #ffbbbb;--color-primitive-red-300: #ff9696;--color-primitive-red-400: #ff7171;--color-primitive-red-500: #ff5454;--color-primitive-red-600: #fe3939;--color-primitive-red-700: #fa0000;--color-primitive-red-800: #ec0000;--color-primitive-red-900: #ce0000;--color-primitive-red-1000: #a90000;--color-primitive-red-1100: #850000;--color-primitive-red-1200: #620000;--color-primitive-magenta-50: #f3e5f4;--color-primitive-magenta-100: #ffd0ff;--color-primitive-magenta-200: #ffaeff;--color-primitive-magenta-300: #ff8eff;--color-primitive-magenta-400: #f661f6;--color-primitive-magenta-500: #f137f1;--color-primitive-magenta-600: #db00db;--color-primitive-magenta-700: #c000c0;--color-primitive-magenta-800: #aa00aa;--color-primitive-magenta-900: #8b008b;--color-primitive-magenta-1000: #6c006c;--color-primitive-magenta-1100: #500050;--color-primitive-magenta-1200: #3b003b;--color-primitive-purple-50: #f1eafa;--color-primitive-purple-100: #ecddff;--color-primitive-purple-200: #ddc2ff;--color-primitive-purple-300: #cda6ff;--color-primitive-purple-400: #bb87ff;--color-primitive-purple-500: #a565f8;--color-primitive-purple-600: #8843e1;--color-primitive-purple-700: #6f23d0;--color-primitive-purple-800: #5c10be;--color-primitive-purple-900: #5109ad;--color-primitive-purple-1000: #41048e;--color-primitive-purple-1100: #30016c;--color-primitive-purple-1200: #21004b;--color-neutral-white: #ffffff;--color-neutral-black: #000000;--color-neutral-solid-gray-50: #f2f2f2;--color-neutral-solid-gray-100: #e6e6e6;--color-neutral-solid-gray-200: #cccccc;--color-neutral-solid-gray-300: #b3b3b3;--color-neutral-solid-gray-400: #999999;--color-neutral-solid-gray-420: #949494;--color-neutral-solid-gray-500: #7f7f7f;--color-neutral-solid-gray-536: #767676;--color-neutral-solid-gray-600: #666666;--color-neutral-solid-gray-700: #4d4d4d;--color-neutral-solid-gray-800: #333333;--color-neutral-solid-gray-900: #1a1a1a;--color-neutral-opacity-gray-50: rgba(0, 0, 0, .05);--color-neutral-opacity-gray-100: rgba(0, 0, 0, .1);--color-neutral-opacity-gray-200: rgba(0, 0, 0, .2);--color-neutral-opacity-gray-300: rgba(0, 0, 0, .3);--color-neutral-opacity-gray-400: rgba(0, 0, 0, .4);--color-neutral-opacity-gray-420: rgba(0, 0, 0, .42);--color-neutral-opacity-gray-500: rgba(0, 0, 0, .5);--color-neutral-opacity-gray-536: rgba(0, 0, 0, .54);--color-neutral-opacity-gray-600: rgba(0, 0, 0, .6);--color-neutral-opacity-gray-700: rgba(0, 0, 0, .7);--color-neutral-opacity-gray-800: rgba(0, 0, 0, .8);--color-neutral-opacity-gray-900: rgba(0, 0, 0, .9);--font-family-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-mono: "Noto Sans Mono", monospace;--elevation-1: 0 2px 8px 1px rgba(0, 0, 0, .1), 0 1px 5px 0 rgba(0, 0, 0, .3);--elevation-2: 0 2px 12px 2px rgba(0, 0, 0, .1), 0 1px 6px 0 rgba(0, 0, 0, .3);--elevation-3: 0 4px 16px 3px rgba(0, 0, 0, .1), 0 1px 6px 0 rgba(0, 0, 0, .3);--elevation-4: 0 6px 20px 4px rgba(0, 0, 0, .1), 0 2px 6px 0 rgba(0, 0, 0, .3);--elevation-5: 0 8px 24px 5px rgba(0, 0, 0, .1), 0 2px 10px 0 rgba(0, 0, 0, .3);--elevation-6: 0 10px 30px 6px rgba(0, 0, 0, .1), 0 3px 12px 0 rgba(0, 0, 0, .3);--elevation-7: 0 12px 36px 7px rgba(0, 0, 0, .1), 0 3px 14px 0 rgba(0, 0, 0, .3);--elevation-8: 0 14px 40px 7px rgba(0, 0, 0, .1), 0 3px 16px 0 rgba(0, 0, 0, .3);--color-semantic-success-1: var(--color-primitive-green-600);--color-semantic-success-2: var(--color-primitive-green-800);--color-semantic-error-1: var(--color-primitive-red-800);--color-semantic-error-2: var(--color-primitive-red-900);--color-semantic-warning-yellow-1: var(--color-primitive-yellow-700);--color-semantic-warning-yellow-2: var(--color-primitive-yellow-900);--color-semantic-warning-orange-1: var(--color-primitive-orange-600);--color-semantic-warning-orange-2: var(--color-primitive-orange-800);--color-key-50: var(--color-primitive-blue-50);--color-key-100: var(--color-primitive-blue-100);--color-key-200: var(--color-primitive-blue-200);--color-key-300: var(--color-primitive-blue-300);--color-key-400: var(--color-primitive-blue-400);--color-key-500: var(--color-primitive-blue-500);--color-key-600: var(--color-primitive-blue-600);--color-key-700: var(--color-primitive-blue-700);--color-key-800: var(--color-primitive-blue-800);--color-key-900: var(--color-primitive-blue-900);--color-key-1000: var(--color-primitive-blue-1000);--color-key-1100: var(--color-primitive-blue-1100);--color-key-1200: var(--color-primitive-blue-1200)}html{scrollbar-gutter:stable;font-family:var(--font-family-sans)}html:has(:modal){overflow:clip;scrollbar-gutter:auto}body:has(:modal){overflow:auto;scrollbar-gutter:stable}:where(a):any-link{color:var(--color-primitive-blue-1000);text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem}:where(a):visited{color:var(--color-primitive-magenta-900)}@media(hover:hover){:where(a):hover{color:var(--color-primitive-blue-900);text-decoration-thickness:.1875rem}}:where(a):active{color:var(--color-primitive-orange-800);text-decoration-thickness:.0625rem}:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-u-visually-hidden{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;position:absolute!important;white-space:nowrap!important;width:1px!important}:where(.dads-u-focus-outline):focus-visible{outline:.25rem solid var(--color-neutral-black)!important;outline-offset:.125rem!important;border-radius:.25rem!important;background-color:var(--color-primitive-yellow-300)!important;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)!important}@supports selector(:has(*)){:where(.dads-u-focus-within-outline):focus-visible,:where(.dads-u-focus-within-outline):has(:focus-visible){outline:.25rem solid var(--color-neutral-black)!important;outline-offset:.125rem!important;border-radius:.25rem!important;background-color:var(--color-primitive-yellow-300)!important;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)!important}}@supports not selector(:has(*)){:where(.dads-u-focus-within-outline):focus-within{outline:.25rem solid var(--color-neutral-black)!important;outline-offset:.125rem!important;border-radius:.25rem!important;background-color:var(--color-primitive-yellow-300)!important;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)!important}}.dads-u-dsp-64B-140{font-weight:700!important;font-size:4rem!important;line-height:1.4!important;letter-spacing:0!important}.dads-u-dsp-57B-140{font-weight:700!important;font-size:3.5625rem!important;line-height:1.4!important;letter-spacing:0!important}.dads-u-dsp-48B-140{font-weight:700!important;font-size:3rem!important;line-height:1.4!important;letter-spacing:0!important}.dads-u-dsp-64N-140{font-weight:400!important;font-size:4rem!important;line-height:1.4!important;letter-spacing:0!important}.dads-u-dsp-57N-140{font-weight:400!important;font-size:3.5625rem!important;line-height:1.4!important;letter-spacing:0!important}.dads-u-dsp-48N-140{font-weight:400!important;font-size:3rem!important;line-height:1.4!important;letter-spacing:0!important}.dads-u-std-45B-140{font-weight:700!important;font-size:2.8125rem!important;line-height:1.4!important;letter-spacing:0!important}.dads-u-std-36B-140{font-weight:700!important;font-size:2.25rem!important;line-height:1.4!important;letter-spacing:.01em!important}.dads-u-std-32B-150{font-weight:700!important;font-size:2rem!important;line-height:1.5!important;letter-spacing:.01em!important}.dads-u-std-28B-150{font-weight:700!important;font-size:1.75rem!important;line-height:1.5!important;letter-spacing:.01em!important}.dads-u-std-26B-150{font-weight:700!important;font-size:1.625rem!important;line-height:1.5!important;letter-spacing:.02em!important}.dads-u-std-24B-150{font-weight:700!important;font-size:1.5rem!important;line-height:1.5!important;letter-spacing:.02em!important}.dads-u-std-22B-150{font-weight:700!important;font-size:1.375rem!important;line-height:1.5!important;letter-spacing:.02em!important}.dads-u-std-20B-150{font-weight:700!important;font-size:1.25rem!important;line-height:1.5!important;letter-spacing:.02em!important}.dads-u-std-18B-160{font-weight:700!important;font-size:1.125rem!important;line-height:1.6!important;letter-spacing:.02em!important}.dads-u-std-17B-170{font-weight:700!important;font-size:1.0625rem!important;line-height:1.7!important;letter-spacing:.02em!important}.dads-u-std-16B-170{font-weight:700!important;font-size:1rem!important;line-height:1.7!important;letter-spacing:.02em!important}.dads-u-std-16B-175{font-weight:700!important;font-size:1rem!important;line-height:1.75!important;letter-spacing:.02em!important}.dads-u-std-45N-140{font-weight:400!important;font-size:2.8125rem!important;line-height:1.4!important;letter-spacing:0!important}.dads-u-std-36N-140{font-weight:400!important;font-size:2.25rem!important;line-height:1.4!important;letter-spacing:.01em!important}.dads-u-std-32N-150{font-weight:400!important;font-size:2rem!important;line-height:1.5!important;letter-spacing:.01em!important}.dads-u-std-28N-150{font-weight:400!important;font-size:1.75rem!important;line-height:1.5!important;letter-spacing:.01em!important}.dads-u-std-26N-150{font-weight:400!important;font-size:1.625rem!important;line-height:1.5!important;letter-spacing:.02em!important}.dads-u-std-24N-150{font-weight:400!important;font-size:1.5rem!important;line-height:1.5!important;letter-spacing:.02em!important}.dads-u-std-22N-150{font-weight:400!important;font-size:1.375rem!important;line-height:1.5!important;letter-spacing:.02em!important}.dads-u-std-20N-150{font-weight:400!important;font-size:1.25rem!important;line-height:1.5!important;letter-spacing:.02em!important}.dads-u-std-18N-160{font-weight:400!important;font-size:1.125rem!important;line-height:1.6!important;letter-spacing:.02em!important}.dads-u-std-17N-170{font-weight:400!important;font-size:1.0625rem!important;line-height:1.7!important;letter-spacing:.02em!important}.dads-u-std-16N-170{font-weight:400!important;font-size:1rem!important;line-height:1.7!important;letter-spacing:.02em!important}.dads-u-std-16N-175{font-weight:400!important;font-size:1rem!important;line-height:1.75!important;letter-spacing:.02em!important}.dads-u-dns-17B-130{font-weight:700!important;font-size:1.0625rem!important;line-height:1.3!important;letter-spacing:0!important}.dads-u-dns-17B-120{font-weight:700!important;font-size:1.0625rem!important;line-height:1.2!important;letter-spacing:0!important}.dads-u-dns-16B-130{font-weight:700!important;font-size:1rem!important;line-height:1.3!important;letter-spacing:0!important}.dads-u-dns-16B-120{font-weight:700!important;font-size:1rem!important;line-height:1.2!important;letter-spacing:0!important}.dads-u-dns-14B-130{font-weight:700!important;font-size:.875rem!important;line-height:1.3!important;letter-spacing:0!important}.dads-u-dns-14B-120{font-weight:700!important;font-size:.875rem!important;line-height:1.2!important;letter-spacing:0!important}.dads-u-dns-17N-130{font-weight:400!important;font-size:1.0625rem!important;line-height:1.3!important;letter-spacing:0!important}.dads-u-dns-17N-120{font-weight:400!important;font-size:1.0625rem!important;line-height:1.2!important;letter-spacing:0!important}.dads-u-dns-16N-130{font-weight:400!important;font-size:1rem!important;line-height:1.3!important;letter-spacing:0!important}.dads-u-dns-16N-120{font-weight:400!important;font-size:1rem!important;line-height:1.2!important;letter-spacing:0!important}.dads-u-dns-14N-130{font-weight:400!important;font-size:.875rem!important;line-height:1.3!important;letter-spacing:0!important}.dads-u-dns-14N-120{font-weight:400!important;font-size:.875rem!important;line-height:1.2!important;letter-spacing:0!important}.dads-u-oln-17B-100{font-weight:700!important;font-size:1.0625rem!important;line-height:1!important;letter-spacing:.02em!important}.dads-u-oln-16B-100{font-weight:700!important;font-size:1rem!important;line-height:1!important;letter-spacing:.02em!important}.dads-u-oln-14B-100{font-weight:700!important;font-size:.875rem!important;line-height:1!important;letter-spacing:.02em!important}.dads-u-oln-17N-100{font-weight:400!important;font-size:1.0625rem!important;line-height:1!important;letter-spacing:.02em!important}.dads-u-oln-16N-100{font-weight:400!important;font-size:1rem!important;line-height:1!important;letter-spacing:.02em!important}.dads-u-oln-14N-100{font-weight:400!important;font-size:.875rem!important;line-height:1!important;letter-spacing:.02em!important}.dads-u-mono-17B-150{font-weight:700!important;font-size:1.0625rem!important;line-height:1.5!important;font-family:var(--font-family-mono)!important;letter-spacing:0!important}.dads-u-mono-16B-150{font-weight:700!important;font-size:1rem!important;line-height:1.5!important;font-family:var(--font-family-mono)!important;letter-spacing:0!important}.dads-u-mono-14B-150{font-weight:700!important;font-size:.875rem!important;line-height:1.5!important;font-family:var(--font-family-mono)!important;letter-spacing:0!important}.dads-u-mono-17N-150{font-weight:400!important;font-size:1.0625rem!important;line-height:1.5!important;font-family:var(--font-family-mono)!important;letter-spacing:0!important}.dads-u-mono-16N-150{font-weight:400!important;font-size:1rem!important;line-height:1.5!important;font-family:var(--font-family-mono)!important;letter-spacing:0!important}.dads-u-mono-14N-150{font-weight:400!important;font-size:.875rem!important;line-height:1.5!important;font-family:var(--font-family-mono)!important;letter-spacing:0!important}.dads-button{--button-color: var(--color-key-900);--button-hover-color: var(--color-key-1000);--button-active-color: var(--color-key-1200);--button-outline-hover-bg-color: var(--color-key-200);--button-outline-active-bg-color: var(--color-key-300);display:flex;align-items:center;justify-content:center;column-gap:.25rem;box-sizing:border-box;width:fit-content;max-width:100%;font-weight:700;font-size:1rem;line-height:1;font-family:var(--font-family-sans);letter-spacing:.02em;text-decoration:none;text-underline-offset:.1875rem}.dads-button:disabled,.dads-button[aria-disabled=true]{cursor:default}.dads-button[data-type=solid-fill]{border:4px double transparent;background-color:var(--button-color);color:var(--color-neutral-white)}@media(hover:hover){.dads-button[data-type=solid-fill]:hover{background-color:var(--button-hover-color);text-decoration:underline;text-decoration-thickness:.0625rem}}.dads-button[data-type=solid-fill]:active{background-color:var(--button-active-color);text-decoration:underline}.dads-button[data-type=solid-fill]:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-button[data-type=solid-fill]:disabled,.dads-button[data-type=solid-fill][aria-disabled=true]{background-color:var(--color-neutral-solid-gray-300);color:var(--color-neutral-solid-gray-50);text-decoration:none}@media(forced-colors:active){.dads-button[data-type=solid-fill]:disabled,.dads-button[data-type=solid-fill][aria-disabled=true]{border-color:GrayText;color:GrayText}}.dads-button[data-type=outline]{border:1px solid currentcolor;background-color:var(--color-neutral-white);color:var(--button-color)}@media(hover:hover){.dads-button[data-type=outline]:hover{background-color:var(--button-outline-hover-bg-color);color:var(--button-hover-color);text-decoration:underline;text-decoration-thickness:.0625rem}}.dads-button[data-type=outline]:active{background-color:var(--button-outline-active-bg-color);color:var(--button-active-color);text-decoration:underline}.dads-button[data-type=outline]:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-button[data-type=outline]:disabled,.dads-button[data-type=outline][aria-disabled=true]{background-color:var(--color-neutral-white);color:var(--color-neutral-solid-gray-300);text-decoration:none}@media(forced-colors:active){.dads-button[data-type=outline]:disabled,.dads-button[data-type=outline][aria-disabled=true]{border-color:GrayText;color:GrayText}}.dads-button[data-type=text]{border:0;background-color:transparent;color:var(--button-color);text-decoration:underline;text-decoration-thickness:.0625rem}@media(hover:hover){.dads-button[data-type=text]:hover{background-color:var(--color-key-50);color:var(--button-hover-color);text-decoration-thickness:.1875rem}}.dads-button[data-type=text]:active{background-color:var(--color-key-100);color:var(--button-active-color)}.dads-button[data-type=text]:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-button[data-type=text]:disabled,.dads-button[data-type=text][aria-disabled=true]{background-color:transparent;color:var(--color-neutral-solid-gray-300);text-decoration-thickness:revert}@media(forced-colors:active){.dads-button[data-type=text]:disabled,.dads-button[data-type=text][aria-disabled=true]{color:GrayText}}.dads-button[data-size=lg]{min-width:8.5rem;min-height:3.5rem;border-radius:.5rem;padding:.75rem 1rem}.dads-button[data-size=md]{min-width:6rem;min-height:3rem;border-radius:.5rem;padding:.5rem 1rem}.dads-button[data-size=sm]{position:relative;min-width:5rem;min-height:2.25rem;border-radius:.375rem;padding:.125rem .75rem}.dads-button[data-size=sm]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;height:2.75rem}.dads-button[data-size=xs]{position:relative;min-width:4.5rem;min-height:1.75rem;border-radius:.25rem;padding:.125rem .5rem;font-size:.875rem}.dads-button[data-size=xs]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;height:2.75rem}.dads-button__icon{flex-shrink:0}.dads-form-control-label{margin:0;display:grid;grid-template:"label" auto "support-text" auto "field" auto / auto;column-gap:1.5rem;border:0;padding:0;color:var(--color-neutral-solid-gray-800);overflow-wrap:anywhere;font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-form-control-label[data-size=sm]{row-gap:.25rem}.dads-form-control-label[data-size=md],.dads-form-control-label[data-size=lg]{row-gap:.5rem}@media(min-width:48rem){.dads-form-control-label[data-direction=horizontal]{grid-template:"label field field" auto "support-text field field" 1fr / 1fr 1fr 1fr;justify-content:start;align-items:baseline}}.dads-form-control-label__legend{display:contents}.dads-form-control-label__label{grid-area:label;justify-self:start;padding:0;font-weight:700}.dads-form-control-label[data-size=sm] .dads-form-control-label__label{font-size:1rem}.dads-form-control-label[data-size=md] .dads-form-control-label__label{font-size:1.0625rem}.dads-form-control-label[data-size=lg] .dads-form-control-label__label{font-size:1.125rem}.dads-form-control-label__requirement{margin-left:.25rem;font-weight:400;font-size:1rem}.dads-form-control-label__requirement[data-required=true]{color:var(--color-semantic-error-1)}.dads-form-control-label__requirement:before{content:" "}.dads-form-control-label__status{margin-left:.25rem;display:inline-block;outline:1px solid transparent;border-radius:.5rem;background-color:var(--color-neutral-solid-gray-536);padding:.5rem;color:var(--color-neutral-white);font-weight:400;font-size:1rem;line-height:1;letter-spacing:.02em}.dads-form-control-label__support-text{grid-area:support-text;margin-top:0;margin-bottom:0;color:var(--color-neutral-solid-gray-600)}.dads-form-control-label__field .dads-form-control-label__support-text{margin-bottom:.5rem}.dads-form-control-label__field{grid-area:field;min-width:0}.dads-form-control-label__error-text{margin-bottom:0;color:var(--color-semantic-error-1);line-height:1.3;letter-spacing:0}.dads-form-control-label[data-size=sm] .dads-form-control-label__error-text{margin-top:.25rem}.dads-form-control-label[data-size=md] .dads-form-control-label__error-text,.dads-form-control-label[data-size=lg] .dads-form-control-label__error-text{margin-top:.5rem}.dads-input-text{display:block;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-input-text__input{box-sizing:border-box;max-width:100%;border:1px solid var(--color-neutral-solid-gray-600);background-color:var(--color-neutral-white);padding:.75rem 1rem;border-radius:.5rem;color:var(--color-neutral-solid-gray-900);font:inherit;line-height:1}.dads-input-text__input[data-size=sm]{height:2.5rem}.dads-input-text__input[data-size=md]{height:3rem}.dads-input-text__input[data-size=lg]{height:3.5rem}.dads-input-text__input:read-only:not(:disabled){border-style:dashed}.dads-input-text__input:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}@media(hover:hover){.dads-input-text__input:not(:read-only):hover{border-color:var(--color-neutral-black)}}.dads-input-text__input:is(:user-invalid,[aria-invalid=true]){border-color:var(--color-semantic-error-1)}@media(hover:hover){.dads-input-text__input:is(:user-invalid,[aria-invalid=true]):hover{border-color:var(--color-primitive-red-1000)}}.dads-input-text__input:is(:disabled,[aria-disabled=true]),.dads-input-text__input:is(:disabled,[aria-disabled=true]):hover{border-color:var(--color-neutral-solid-gray-300);background-color:var(--color-neutral-solid-gray-50);color:var(--color-neutral-solid-gray-420)}@media(forced-colors:active){.dads-input-text__input[aria-disabled=true],.dads-input-text__input[aria-disabled=true]:hover{border-color:GrayText;color:GrayText}}.dads-input-text__error-text{margin:.5rem 0 0;display:block;color:var(--color-semantic-error-1)}.dads-textarea{display:block;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-textarea:before{margin-bottom:-1rem;display:block;height:0;padding-top:1rem;content:"​"}.dads-textarea__textarea{display:block;box-sizing:border-box;max-width:100%;border:1px solid var(--color-neutral-solid-gray-600);background-color:var(--color-neutral-white);padding:1rem;border-radius:.5rem;color:var(--color-neutral-solid-gray-900);font:inherit;resize:vertical}.dads-textarea__textarea:read-only:not(:disabled){border-style:dashed}.dads-textarea__textarea:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}@media(hover:hover){.dads-textarea__textarea:not(:read-only):hover{border-color:var(--color-neutral-black)}}.dads-textarea__textarea:is(:user-invalid,[aria-invalid=true]){border-color:var(--color-semantic-error-1)}@media(hover:hover){.dads-textarea__textarea:is(:user-invalid,[aria-invalid=true]):hover{border-color:var(--color-primitive-red-1000)}}.dads-textarea__textarea:is(:disabled,[aria-disabled=true]),.dads-textarea__textarea:is(:disabled,[aria-disabled=true]):hover{border-color:var(--color-neutral-solid-gray-300);background-color:var(--color-neutral-solid-gray-50);color:var(--color-neutral-solid-gray-420);resize:none}@media(forced-colors:active){.dads-textarea__textarea[aria-disabled=true],.dads-textarea__textarea[aria-disabled=true]:hover{border-color:GrayText;color:GrayText}}.dads-textarea__error-text{margin:.5rem 0 0;display:block;color:var(--color-semantic-error-1)}.dads-textarea__counter{display:block;margin-top:.5rem;color:var(--color-neutral-solid-gray-600);font-size:1rem;line-height:1;letter-spacing:.02em}.dads-textarea__counter[data-exceeded]{color:var(--color-semantic-error-1)}.dads-select{display:block;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-select__control{position:relative;display:block;width:fit-content;max-width:100%}.dads-select__select{display:inline-block;max-width:100%;vertical-align:baseline;box-sizing:border-box;border-radius:.5rem;border:1px solid var(--color-neutral-solid-gray-600);background-color:var(--color-neutral-white);padding-right:2.5rem;padding-left:1rem;color:inherit;font:inherit;line-height:1;letter-spacing:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dads-select__select[data-size=sm]{height:2.5rem}.dads-select__select[data-size=md]{height:3rem}.dads-select__select[data-size=lg]{height:3.5rem}.dads-select__select:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}@media(hover:hover){.dads-select__select:hover{border-color:var(--color-neutral-black)}}.dads-select__select:is(:user-invalid,[aria-invalid=true]){border-color:var(--color-semantic-error-1)}@media(hover:hover){.dads-select__select:is(:user-invalid,[aria-invalid=true]):hover{border-color:var(--color-primitive-red-1000)}}.dads-select__select:is(:disabled,[aria-disabled=true]),.dads-select__select:is(:disabled,[aria-disabled=true]):hover{border:1px solid var(--color-neutral-solid-gray-300);background-color:var(--color-neutral-solid-gray-50);color:var(--color-neutral-solid-gray-420)}@media(forced-colors:active){.dads-select__select{color:ButtonText;border-color:ButtonText}.dads-select__select[aria-disabled=true],.dads-select__select[aria-disabled=true]:hover{border-color:GrayText;color:GrayText}}.dads-select__chevron{pointer-events:none;position:absolute;top:0;right:1rem;bottom:0;margin-top:auto;margin-bottom:auto;width:1rem;height:1rem}.dads-select__select:disabled+.dads-select__chevron{color:var(--color-neutral-solid-gray-420)}@media(forced-colors:active){.dads-select__chevron{color:ButtonText}.dads-select__select:disabled+.dads-select__chevron{color:GrayText}}.dads-select__error-text{margin:.5rem 0 0;display:block;color:var(--color-semantic-error-1)}.dads-radio{display:flex;align-items:baseline;gap:var(--_gap);width:fit-content}.dads-radio:has(.dads-radio__label:not(:empty)){padding-top:.5rem;padding-bottom:.5rem}.dads-radio[data-size=sm]{--_gap: .25rem ;--_radio-size: 1.5rem ;--_radio-outer-size: 1.25rem ;--_radio-inner-size: .625rem ;--_radio-border-width: .125rem ;--_radio-baseline-offset: .1875rem ;--_label-font-size: 1rem }.dads-radio[data-size=md]{--_gap: .5rem ;--_radio-size: 2rem ;--_radio-outer-size: 1.625rem ;--_radio-inner-size: .75rem ;--_radio-border-width: .125rem ;--_radio-baseline-offset: .375rem ;--_label-font-size: 1rem }.dads-radio[data-size=lg]{--_gap: .75rem ;--_radio-size: 2.75rem ;--_radio-outer-size: 2.25rem ;--_radio-inner-size: 1rem ;--_radio-border-width: .1875rem ;--_radio-baseline-offset: .6875rem ;--_label-font-size: 1.0625rem }.dads-radio__radio{display:flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--_radio-size);height:var(--_radio-size);border-radius:50%}.dads-radio__radio:not(:only-child){position:relative;top:var(--_radio-baseline-offset);margin-top:calc(-1 * var(--_radio-baseline-offset));margin-bottom:var(--_radio-baseline-offset)}@media(hover:hover){.dads-radio__radio:has(:not(:focus,:disabled,[aria-disabled=true]):hover){background-color:var(--color-neutral-solid-gray-420)}}.dads-radio__input{--_base-color: var(--color-neutral-white);--_accent-color: var(--color-key-900);--_accent-hover-color: var(--color-key-1100);--_border-color: var(--color-neutral-solid-gray-600);--_border-hover-color: var(--color-neutral-black);position:relative;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--_radio-outer-size);height:var(--_radio-outer-size);border-radius:51%;background-color:var(--_base-color);border:var(--_radio-border-width) solid var(--_border-color)}.dads-radio__input:focus{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}@media(hover:hover){.dads-radio__input:not(:disabled,[aria-disabled=true]):hover{border-color:var(--_border-hover-color)}}.dads-radio__input:checked{border-color:var(--_accent-color)}@media(hover:hover){.dads-radio__input:checked:not(:disabled,[aria-disabled=true]):hover{border-color:var(--_accent-hover-color)}}.dads-radio__input:checked:before{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:var(--_radio-inner-size);height:var(--_radio-inner-size);border-radius:51%;background-color:var(--_accent-color);content:""}@media(hover:hover){.dads-radio__input:checked:not(:disabled,[aria-disabled=true]):hover:before{background-color:var(--_accent-hover-color)}}.dads-radio__input[aria-invalid=true]{--_accent-color: var(--color-semantic-error-1);--_accent-hover-color: var(--color-primitive-red-1000);--_border-color: var(--color-semantic-error-1);--_border-hover-color: var(--color-primitive-red-1000)}.dads-radio__input:is(:disabled,[aria-disabled=true]){--_base-color: var(--color-neutral-solid-gray-50);--_accent-color: var(--color-neutral-solid-gray-300);--_accent-hover-color: var(--color-neutral-solid-gray-300);--_border-color: var(--color-neutral-solid-gray-300);--_border-hover-color: var(--color-neutral-solid-gray-300)}@media(forced-colors:active){.dads-radio__input,.dads-radio__input[aria-invalid=true]{--_accent-color: Highlight;--_accent-hover-color: Highlight;--_border-color: ButtonText;--_border-hover-color: ButtonText}.dads-radio__input:is(:disabled,[aria-disabled=true]){--_accent-color: GrayText;--_accent-hover-color: GrayText;--_border-color: GrayText;--_border-hover-color: GrayText}}.dads-radio__label{color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:var(--_label-font-size);line-height:1.3;font-family:var(--font-family-sans);letter-spacing:0}.dads-checkbox{display:flex;align-items:baseline;gap:var(--_gap);width:fit-content}.dads-checkbox:has(.dads-checkbox__label:not(:empty)){padding-top:.5rem;padding-bottom:.5rem}.dads-checkbox[data-size=sm]{--_gap: .25rem ;--_checkbox-size: 1.5rem ;--_checkbox-border-width: .125rem ;--_checkbox-scale: 1;--_checkbox-baseline-offset: .1875rem ;--_label-font-size: 1rem }.dads-checkbox[data-size=md]{--_gap: .5rem ;--_checkbox-size: 2rem ;--_checkbox-border-width: .125rem ;--_checkbox-scale: calc(20 / 14);--_checkbox-baseline-offset: .375rem ;--_label-font-size: 1rem }.dads-checkbox[data-size=lg]{--_gap: .5rem ;--_checkbox-size: 2.75rem ;--_checkbox-border-width: .1875rem ;--_checkbox-scale: calc(27 / 14);--_checkbox-baseline-offset: .625rem ;--_label-font-size: 1.0625rem }.dads-checkbox__checkbox{display:flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--_checkbox-size);height:var(--_checkbox-size);border-radius:12.5%}.dads-checkbox__checkbox:not(:only-child){position:relative;top:var(--_checkbox-baseline-offset);margin-top:calc(-1 * var(--_checkbox-baseline-offset));margin-bottom:var(--_checkbox-baseline-offset)}@media(hover:hover){.dads-checkbox__checkbox:has(:not(:focus,:disabled,[aria-disabled=true]):hover){background-color:var(--color-neutral-solid-gray-420)}}.dads-checkbox__input{--_base-color: var(--color-neutral-white);--_accent-color: var(--color-key-900);--_accent-hover-color: var(--color-key-1100);--_border-color: var(--color-neutral-solid-gray-600);--_border-hover-color: var(--color-neutral-black);--_check-color: var(--color-neutral-white);margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:75%;height:75%;border-radius:calc(2 / 18 * 100%);background-color:var(--_base-color);background-clip:padding-box;border:var(--_checkbox-border-width) solid var(--_border-color)}.dads-checkbox__input:focus{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}@media(hover:hover){.dads-checkbox__input:not(:disabled,[aria-disabled=true]):hover{border-color:var(--_border-hover-color)}}.dads-checkbox__input:is(:checked,:indeterminate){border-color:var(--_accent-color);background-color:var(--_accent-color)}@media(hover:hover){.dads-checkbox__input:is(:checked,:indeterminate):not(:disabled,[aria-disabled=true]):hover{border-color:var(--_accent-hover-color);background-color:var(--_accent-hover-color)}}.dads-checkbox__input:before{display:none;width:.875rem;height:.875rem;background-color:var(--_check-color);transform-origin:left top;transform:scale(var(--_checkbox-scale, 1));content:""}.dads-checkbox__input:checked:before{display:block;clip-path:path("M5.6,11.2L12.65,4.15L11.25,2.75L5.6,8.4L2.75,5.55L1.35,6.95L5.6,11.2Z")}.dads-checkbox__input:indeterminate:before{display:block;clip-path:path("M2,6h10v2H2Z")}.dads-checkbox__input[aria-invalid=true]{--_accent-color: var(--color-semantic-error-1);--_accent-hover-color: var(--color-primitive-red-1000);--_border-color: var(--color-semantic-error-1);--_border-hover-color: var(--color-primitive-red-1000)}.dads-checkbox__input:is(:disabled,[aria-disabled=true]){--_base-color: var(--color-neutral-solid-gray-50);--_accent-color: var(--color-neutral-solid-gray-300);--_accent-hover-color: var(--color-neutral-solid-gray-300);--_border-color: var(--color-neutral-solid-gray-300);--_border-hover-color: var(--color-neutral-solid-gray-300)}@media(forced-colors:active){.dads-checkbox__input,.dads-checkbox__input[aria-invalid=true]{--_accent-color: Highlight;--_accent-hover-color: Highlight;--_border-color: ButtonText;--_border-hover-color: ButtonText;--_check-color: HighlightText}.dads-checkbox__input:is(:disabled,[aria-disabled=true]){--_accent-color: GrayText;--_accent-hover-color: GrayText;--_border-color: GrayText;--_border-hover-color: GrayText;--_check-color: Canvas}}.dads-checkbox__label{color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:var(--_label-font-size);line-height:1.3;font-family:var(--font-family-sans);letter-spacing:0}.dads-switch-on-off{display:inline-flex;align-items:center}.dads-switch-on-off__button{--switch-on-off-track-bg-color: var(--color-neutral-white);--switch-on-off-track-border-color: var(--color-neutral-solid-gray-600);--switch-on-off-track-shadow: none;--switch-on-off-thumb-color: var(--color-neutral-solid-gray-800);position:relative;box-sizing:border-box;flex-shrink:0;border:0;background:none;padding:0;color:inherit;font:inherit;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.dads-switch-on-off__button:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300);border-radius:624.9375rem}.dads-switch-on-off__button:before{position:absolute;top:-.25rem;right:0;bottom:-.25rem;left:0;content:""}.dads-switch-on-off__track{position:relative;display:block;box-sizing:border-box;width:3.5rem;border-radius:624.9375rem;border:2px solid var(--switch-on-off-track-border-color);background-color:var(--switch-on-off-track-bg-color);box-shadow:var(--switch-on-off-track-shadow);padding:.25rem}.dads-switch-on-off__thumb{display:block;width:1.5rem;height:1.5rem;border-radius:50%;background-color:var(--switch-on-off-thumb-color)}.dads-switch-on-off__icon{display:none;width:1.5rem;height:1.5rem;flex-shrink:0;color:var(--color-neutral-white)}.dads-switch-on-off__button[aria-checked=true]{--switch-on-off-track-bg-color: var(--color-key-50);--switch-on-off-track-border-color: var(--color-key-900);--switch-on-off-thumb-color: var(--color-key-900)}.dads-switch-on-off__button[aria-checked=true] .dads-switch-on-off__thumb{margin-left:auto}.dads-switch-on-off__button[aria-checked=true] .dads-switch-on-off__icon{display:block}@media(hover:hover){.dads-switch-on-off__button:hover{--switch-on-off-track-border-color: var(--color-neutral-black);--switch-on-off-track-shadow: 0 0 0 .25rem var(--color-neutral-solid-gray-420);--switch-on-off-thumb-color: var(--color-neutral-black)}.dads-switch-on-off__button:where([aria-checked=true]):hover{--switch-on-off-track-border-color: var(--color-key-1100);--switch-on-off-thumb-color: var(--color-key-1100)}.dads-switch-on-off__button:active{--switch-on-off-track-shadow: 0 0 0 .375rem var(--color-neutral-solid-gray-600)}}.dads-switch-on-off__button:is(:disabled,[aria-disabled=true]){--switch-on-off-track-bg-color: var(--color-neutral-solid-gray-50);--switch-on-off-track-border-color: var(--color-neutral-solid-gray-300);--switch-on-off-track-shadow: none;--switch-on-off-thumb-color: var(--color-neutral-solid-gray-300)}@media(forced-colors:active){.dads-switch-on-off__track{border-color:ButtonText}.dads-switch-on-off__thumb{background-color:ButtonText}.dads-switch-on-off__icon{color:Canvas}.dads-switch-on-off__button[aria-checked=true] .dads-switch-on-off__track{border-color:Highlight}.dads-switch-on-off__button[aria-checked=true] .dads-switch-on-off__thumb{background-color:Highlight}.dads-switch-on-off__button:is(:disabled,[aria-disabled=true]) .dads-switch-on-off__track{border-color:GrayText}.dads-switch-on-off__button:is(:disabled,[aria-disabled=true]) .dads-switch-on-off__thumb{background-color:GrayText}}.dads-date-picker{display:block;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-date-picker__controls{position:relative;display:flex;align-items:end;column-gap:1rem}.dads-date-picker__inputs{--_background-color: var(--color-neutral-white);display:inline-flex;box-sizing:border-box;border-radius:.5rem;border:1px solid var(--color-neutral-solid-gray-600);background-color:var(--_background-color);padding:.125rem 0 .125rem .125rem}.dads-date-picker__controls[data-size=sm] .dads-date-picker__inputs{height:2.5rem}.dads-date-picker__controls[data-size=md] .dads-date-picker__inputs{height:3rem}.dads-date-picker__controls[data-size=lg] .dads-date-picker__inputs{height:3.5rem}.dads-date-picker__inputs:focus-within{border-color:var(--color-neutral-black)}@media(hover:hover){.dads-date-picker__inputs:hover{border-color:var(--color-neutral-solid-gray-900)}}.dads-date-picker__inputs[data-error]{border-color:var(--color-semantic-error-1)}.dads-date-picker__inputs[data-error]:focus-within{border-color:var(--color-primitive-red-1000)}.dads-date-picker__inputs[data-disabled]{--_background-color: var(--color-neutral-solid-gray-50);border-color:var(--color-neutral-solid-gray-300);color:var(--color-neutral-solid-gray-420)}.dads-date-picker__inputs[data-readonly]{border-style:dashed;border-color:var(--color-neutral-solid-gray-600)}@media(forced-colors:active){.dads-date-picker__inputs:focus-within{border-color:Highlight}@media(hover:hover){.dads-date-picker__inputs:hover{border-color:Highlight}}.dads-date-picker__inputs[data-disabled]{--_background-color: ButtonFace;border-color:GrayText;color:GrayText}.dads-date-picker__inputs[data-readonly]{border-color:currentcolor}}.dads-date-picker__inputs:before{align-self:center;content:"​"}.dads-date-picker__year,.dads-date-picker__month,.dads-date-picker__day{position:relative;z-index:0;display:inline-flex;flex-direction:row-reverse}:is(.dads-date-picker__month,.dads-date-picker__day):not(:first-child){margin-left:-.25rem}:is(.dads-date-picker__month,.dads-date-picker__day):last-child{padding-right:1rem}.dads-date-picker__label{position:relative;z-index:1;align-self:center;background-color:var(--_background-color);padding:.25rem;line-height:1}.dads-date-picker__input{margin-right:-.25rem;box-sizing:border-box;width:4rem;border-radius:.5rem;border:1px solid transparent;background-color:transparent;padding-right:.75rem;color:inherit;text-align:right;font:inherit;letter-spacing:inherit}.dads-date-picker__input:focus{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border:1px solid var(--color-neutral-solid-gray-600);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}:is(.dads-date-picker__month,.dads-date-picker__day) .dads-date-picker__input{width:2.75rem}.dads-date-picker__separated-inputs{display:inline-flex;column-gap:1rem;box-sizing:content-box;padding-top:.75rem}.dads-date-picker__controls[data-size=sm] .dads-date-picker__separated-inputs{height:2.5rem}.dads-date-picker__controls[data-size=md] .dads-date-picker__separated-inputs{height:3rem}.dads-date-picker__controls[data-size=lg] .dads-date-picker__separated-inputs{height:3.5rem}.dads-date-picker__separated-year,.dads-date-picker__separated-month,.dads-date-picker__separated-day{position:relative}.dads-date-picker__separated-label{position:absolute;top:-.75rem;right:0;left:0;margin:0 auto;box-sizing:border-box;width:1.5rem;background-color:var(--color-neutral-white);padding:.25rem;line-height:1}.dads-date-picker__separated-label:has(+:disabled){color:var(--color-neutral-solid-gray-420)}@media(forced-colors:active){.dads-date-picker__separated-label:has(+:disabled){color:GrayText}}.dads-date-picker__separated-input{box-sizing:border-box;width:4.5rem;height:100%;border-radius:.5rem;border:1px solid var(--color-neutral-solid-gray-600);background-color:var(--color-neutral-white);color:inherit;text-align:center;font:inherit;letter-spacing:inherit}.dads-date-picker__separated-input:read-only:not(:disabled){border-style:dashed}.dads-date-picker__separated-input[aria-invalid=true]{border-color:var(--color-semantic-error-1)}@media(hover:hover){.dads-date-picker__separated-input:not(:read-only):hover{border-color:var(--color-neutral-solid-gray-900)}.dads-date-picker__separated-input[aria-invalid=true]:hover{border-color:var(--color-primitive-red-1000)}}.dads-date-picker__separated-input:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-date-picker__separated-input:disabled{border-color:var(--color-neutral-solid-gray-600);background-color:var(--color-neutral-solid-gray-50);color:var(--color-neutral-solid-gray-420)}:is(.dads-date-picker__separated-month,.dads-date-picker__separated-day) .dads-date-picker__separated-input{width:3.5rem}@media(forced-colors:active){.dads-date-picker__separated-input:disabled{border-color:GrayText;color:GrayText}}.dads-date-picker__calendar-button{display:flex;align-items:center;justify-content:center;column-gap:.25rem;border-radius:.375rem;border:1px solid;background-color:var(--color-neutral-white);padding-right:.75rem;padding-left:.75rem;color:var(--color-key-900)}.dads-date-picker__controls[data-size=sm] .dads-date-picker__calendar-button{height:2.5rem}.dads-date-picker__controls[data-size=md] .dads-date-picker__calendar-button{height:3rem}.dads-date-picker__controls[data-size=lg] .dads-date-picker__calendar-button{height:3.5rem}@media(hover:hover){.dads-date-picker__calendar-button:enabled:hover{border-width:.1875rem;background-color:var(--color-key-200);padding-right:.625rem;padding-left:.625rem}}.dads-date-picker__calendar-button:enabled:active{background-color:var(--color-key-300)}.dads-date-picker__calendar-button:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-date-picker__calendar-button:disabled{cursor:default;background-color:var(--color-neutral-white);color:var(--color-neutral-solid-gray-300);text-decoration:none}@media(forced-colors:active){.dads-date-picker__calendar-button:disabled{border-color:GrayText;color:GrayText}}.dads-date-picker__calendar-icon{width:1.5rem;height:1.5rem}.dads-date-picker__calendar-chevron{width:1rem;height:1rem}.dads-date-picker__calendar-button[aria-expanded=true] .dads-date-picker__calendar-chevron{rotate:180deg}.dads-date-picker__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1}.dads-date-picker__calendar-popover{position:absolute;top:100%;left:0;z-index:1;border-radius:.5rem;border:1px solid var(--color-neutral-solid-gray-420);background-color:var(--color-neutral-white);box-shadow:var(--elevation-1)}.dads-date-picker__error-text{margin:.5rem 0 0;color:var(--color-semantic-error-1);line-height:1.7}.dads-calendar{display:flex;flex-direction:column;align-items:center;width:max-content;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-calendar__controls{display:flex;column-gap:.5rem;padding:1rem}.dads-calendar__navigation{display:flex}.dads-calendar__nav-button.dads-button[data-size=sm]{width:2.75rem;min-width:0;padding:0}@media(hover:hover){.dads-calendar__nav-button.dads-button[data-size=sm]:hover{border-width:.1875rem}}.dads-calendar__current-month{margin:0;align-self:center;width:3.5rem;text-align:center}.dads-calendar__table{margin-right:.75rem;margin-bottom:.5rem;margin-left:.75rem;width:auto;border-collapse:collapse}.dads-calendar__header-cell{width:3rem;height:3rem;padding:0;color:var(--color-neutral-solid-gray-700);font-weight:700;text-align:center;vertical-align:middle}.dads-calendar__data-cell{padding:0}.dads-calendar__date{margin:.25rem;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:2.5rem;height:2.5rem;border-radius:50%;border:0;background-color:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-underline-offset:.1875rem}@media(hover:hover){.dads-calendar__date:not([data-selected]):hover{border:1px solid var(--color-neutral-black);background-color:var(--color-neutral-solid-gray-50);text-decoration:underline}}.dads-calendar__date:not([data-selected]):active{background-color:var(--color-neutral-solid-gray-100)}.dads-calendar__date:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-calendar__date[data-selected]{border:1px solid transparent;background-color:var(--color-key-900);color:var(--color-neutral-white)}.dads-calendar__date:disabled{visibility:hidden}.dads-calendar__footer{display:flex;align-items:center;justify-content:space-between;column-gap:1rem;box-sizing:border-box;width:100%;padding:1rem}.dads-file-upload{display:block;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em;overflow-wrap:anywhere}.dads-form-control-label .dads-file-upload{margin-top:.5rem}.dads-file-upload__input:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-file-upload:defined .dads-file-upload__input{display:none}.dads-file-upload:not(:defined) .dads-file-upload__drop-area,.dads-file-upload:not(:defined) .dads-file-upload__empty-message,.dads-file-upload:not(:defined) .dads-file-upload__remove-button{display:none}.dads-file-upload__drop-area{border:1px solid var(--color-neutral-solid-gray-536);border-radius:.5rem;background-color:var(--color-neutral-solid-gray-50);padding:2rem}.dads-file-upload[data-has-error=true] .dads-file-upload__drop-area{border-color:var(--color-semantic-error-1)}.dads-file-upload__drop-area[data-dragover=true]{outline:4px solid var(--color-semantic-success-1);outline-offset:-4px;background-color:var(--color-primitive-green-50)}.dads-file-upload__button-area{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.dads-file-upload__button-area .dads-button{flex-shrink:0}.dads-file-upload__drop-area[data-dragover=true] .dads-button,.dads-button[data-dragover=true]{background-color:var(--button-outline-active-bg-color);color:var(--button-active-color);text-decoration:underline}.dads-file-upload[data-has-error=true] .dads-button[data-type=outline]{border-color:var(--color-semantic-error-1)}.dads-file-upload__button-area p{margin:0;width:0;flex-grow:1;min-width:12em}.dads-file-upload__select-summary{margin:.5rem 0 0}.dads-file-upload__select-summary:empty{margin-top:0}.dads-file-upload__error-messages{margin:.5rem 0 0;padding:0;list-style-type:none}.dads-file-upload__error-messages:empty{margin-top:0}.dads-file-upload__error-messages>li{color:var(--color-semantic-error-1)}.dads-file-upload__drop-area .dads-file-upload__error-messages>li{color:var(--color-semantic-error-2)}.dads-file-upload__expand-drop-area{margin:3rem 0 -1rem -.25rem}.dads-file-upload__empty-message{margin:1rem 0 0}.dads-file-upload__file-list{margin:1rem 0 0;padding:0;list-style-type:none;counter-reset:file-item}.dads-file-upload__file-item{display:flex;align-items:baseline;counter-increment:file-item}.dads-file-upload__remove-button{order:-1}.dads-file-upload__file-item+.dads-file-upload__file-item{margin-top:.25rem}.dads-file-upload__remove-button.dads-button[data-size=xs]{flex-shrink:0;min-width:3rem;min-height:1.875rem;font-size:1rem}.dads-file-upload[data-multiple=false] .dads-file-upload__file-marker{display:flex;flex-shrink:0;align-self:start;justify-content:center;align-items:center;width:1.5rem;height:1.875rem}.dads-file-upload[data-multiple=false] .dads-file-upload__file-marker:before{width:.375rem;height:.375rem;border-radius:50%;background-color:currentcolor;content:""}@media(forced-colors:active){.dads-file-upload[data-multiple=false] .dads-file-upload__file-marker:before{background-color:CanvasText}}.dads-file-upload[data-multiple=true] .dads-file-upload__file-marker{width:2rem}.dads-file-upload[data-multiple=true] .dads-file-upload__file-marker:before{content:counter(file-item) "."}.dads-file-upload__file-info{flex:1;min-width:0}.dads-file-upload__file-item[data-error=true] .dads-file-upload__file-info{border-left:4px solid var(--color-semantic-error-1);padding-left:.5rem;color:var(--color-semantic-error-1)}.dads-file-upload__file-info>p{margin:0}.dads-file-upload__file-name{margin-right:1rem;font-weight:700}.dads-file-upload__file-meta{color:var(--color-neutral-solid-gray-600)}.dads-file-upload__file-item[data-error=true] .dads-file-upload__file-meta{color:inherit}.dads-file-upload__file-item input[type=file]{display:none}.dads-file-upload__viewport-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;border:4px solid var(--color-semantic-success-1);background-color:var(--color-primitive-green-50)}.dads-file-upload__viewport-overlay-message{display:flex;place-content:center;flex-wrap:wrap;box-sizing:border-box;width:100%;height:100%;padding:calc(2rem - 4px);font-size:clamp(1.125rem,.75rem + 1.875vw,3rem);font-weight:700;pointer-events:none}.dads-file-upload__viewport-overlay-message span{display:inline-block}.dads-chip-label{display:inline-grid;grid-template-columns:auto auto;align-items:baseline;align-content:center;box-sizing:border-box;min-height:2rem;border-radius:.5rem;padding:.1875rem .4375rem;font-weight:400;font-size:1rem;line-height:1;font-family:var(--font-family-sans);letter-spacing:.02em;overflow-wrap:anywhere}.dads-chip-label[data-style=text]{padding:.25rem .5rem;color:var(--_text, #000)}.dads-chip-label[data-style=outlined]{border:1px solid var(--_non-text, #000);background-color:var(--color-neutral-white);color:var(--_text, #000)}.dads-chip-label[data-style=filled-1]{border:1px solid var(--_non-text, #000);background-color:var(--_bg, #eee);color:var(--_text-dark, #000)}.dads-chip-label[data-style=filled-2]{border:1px solid transparent;background-color:var(--_non-text, #000);color:var(--color-neutral-white, #fff)}.dads-chip-label[data-color=gray]{--_non-text: var(--color-neutral-solid-gray-700);--_bg: var(--color-neutral-solid-gray-50);--_text: var(--color-neutral-solid-gray-800);--_text-dark: var(--color-neutral-solid-gray-800)}.dads-chip-label[data-color=blue]{--_non-text: var(--color-primitive-blue-700);--_bg: var(--color-primitive-blue-50);--_text: var(--color-primitive-blue-700);--_text-dark: var(--color-primitive-blue-800)}.dads-chip-label[data-color=light-blue]{--_non-text: var(--color-primitive-light-blue-800);--_bg: var(--color-primitive-light-blue-50);--_text: var(--color-primitive-light-blue-800);--_text-dark: var(--color-primitive-light-blue-900)}.dads-chip-label[data-color=cyan]{--_non-text: var(--color-primitive-cyan-900);--_bg: var(--color-primitive-cyan-50);--_text: var(--color-primitive-cyan-900);--_text-dark: var(--color-primitive-cyan-1000)}.dads-chip-label[data-color=green]{--_non-text: var(--color-primitive-green-800);--_bg: var(--color-primitive-green-50);--_text: var(--color-primitive-green-800);--_text-dark: var(--color-primitive-green-900)}.dads-chip-label[data-color=lime]{--_non-text: var(--color-primitive-lime-900);--_bg: var(--color-primitive-lime-50);--_text: var(--color-primitive-lime-900);--_text-dark: var(--color-primitive-lime-1000)}.dads-chip-label[data-color=yellow]{--_non-text: var(--color-primitive-yellow-1000);--_bg: var(--color-primitive-yellow-50);--_text: var(--color-primitive-yellow-1000);--_text-dark: var(--color-primitive-yellow-1100)}.dads-chip-label[data-color=orange]{--_non-text: var(--color-primitive-orange-900);--_bg: var(--color-primitive-orange-50);--_text: var(--color-primitive-orange-900);--_text-dark: var(--color-primitive-orange-1000)}.dads-chip-label[data-color=red]{--_non-text: var(--color-primitive-red-900);--_bg: var(--color-primitive-red-50);--_text: var(--color-primitive-red-900);--_text-dark: var(--color-primitive-red-1000)}.dads-chip-label[data-color=magenta]{--_non-text: var(--color-primitive-magenta-800);--_bg: var(--color-primitive-magenta-50);--_text: var(--color-primitive-magenta-800);--_text-dark: var(--color-primitive-magenta-900)}.dads-chip-label[data-color=purple]{--_non-text: var(--color-primitive-purple-800);--_bg: var(--color-primitive-purple-50);--_text: var(--color-primitive-purple-800);--_text-dark: var(--color-primitive-purple-800)}.dads-chip-label__icon{--_icon-size: 1.5rem ;--_offset: calc((var(--_icon-size) - 1cap) / 2);position:relative;top:var(--_offset);margin-top:calc(-1 * var(--_offset));margin-right:.25rem;margin-bottom:var(--_offset);flex-shrink:0}@media(forced-colors:active){.dads-chip-label__icon{fill:CanvasText}}.dads-chip-label[data-style=filled-1] .dads-chip-label__icon{color:var(--_non-text, #000)}.dads-heading{color:var(--color-neutral-solid-gray-800);font-family:var(--font-family-sans)}.dads-heading[data-size="64"]{--_shoulder-size: 1.75rem ;--_shoulder-line-height: 1.5;--_shoulder-letter-spacing: .01em;font-weight:700;font-size:4rem;line-height:1.4;letter-spacing:0}.dads-heading[data-size="57"]{--_shoulder-size: 1.5rem ;--_shoulder-line-height: 1.5;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:3.5625rem;line-height:1.4;letter-spacing:0}.dads-heading[data-size="45"]{--_shoulder-size: 1.375rem ;--_shoulder-line-height: 1.5;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:2.8125rem;line-height:1.4;letter-spacing:0}.dads-heading[data-size="36"]{--_shoulder-size: 1.25rem ;--_shoulder-line-height: 1.5;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:2.25rem;line-height:1.4;letter-spacing:.01em}.dads-heading[data-size="32"]{--_shoulder-size: 1.125rem ;--_shoulder-line-height: 1.6;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:2rem;line-height:1.5;letter-spacing:.01em}.dads-heading[data-size="28"]{--_shoulder-size: 1rem ;--_shoulder-line-height: 1.7;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:1.75rem;line-height:1.5;letter-spacing:.01em}.dads-heading[data-size="24"]{--_shoulder-size: 1rem ;--_shoulder-line-height: 1.7;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:1.5rem;line-height:1.5;letter-spacing:.02em}.dads-heading[data-size="20"]{--_shoulder-size: 1rem ;--_shoulder-line-height: 1.7;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:1.25rem;line-height:1.5;letter-spacing:.02em}.dads-heading[data-size="18"]{--_shoulder-size: 1rem ;--_shoulder-line-height: 1.7;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:1.125rem;line-height:1.6;letter-spacing:.02em}.dads-heading[data-size="16"]{--_shoulder-size: 1rem ;--_shoulder-line-height: 1.7;--_shoulder-letter-spacing: .02em;font-weight:700;font-size:1rem;line-height:1.7;letter-spacing:.02em}.dads-heading[data-chip]{position:relative;padding-left:calc(1em / 3 + .5em)}.dads-heading[data-chip]:before{position:absolute;top:.2em;bottom:.1em;left:0;width:calc(1em / 3);background-color:var(--color-key-900);content:""}@supports (top: 1lh){.dads-heading[data-chip]:before{top:calc(.5lh - .45em);bottom:calc(.5lh - .55em)}}.dads-heading[data-chip]:has(.dads-heading__shoulder):before{top:calc((var(--_shoulder-size) * (var(--_shoulder-line-height) - 1)) / 2)}@media(forced-colors:active){.dads-heading[data-chip]:before{background-color:CanvasText}}.dads-heading[data-rule]{border-bottom:solid var(--color-key-900)}.dads-heading[data-rule="8"]{border-bottom-width:.5rem;padding-bottom:2rem}.dads-heading[data-rule="6"]{border-bottom-width:.375rem;padding-bottom:1.5rem}.dads-heading[data-rule="4"]{border-bottom-width:.25rem;padding-bottom:1rem}.dads-heading[data-rule="2"]{border-bottom-width:.125rem;padding-bottom:.5rem}.dads-heading__shoulder{margin:0;font-weight:700;font-size:var(--_shoulder-size);line-height:var(--_shoulder-line-height);letter-spacing:var(--_shoulder-letter-spacing)}.dads-heading__heading{margin:0;font:inherit}.dads-heading__icon{margin-right:calc(.4em - .25em)}.dads-heading__icon:after{content:" "}.dads-heading__icon-svg{display:inline-block;width:1.25em;height:1.25em;vertical-align:-.25em}.dads-notification-banner{--_base-color: var(--color-primitive-blue-900);--_color-chip-color: var(--color-primitive-blue-900);display:grid;grid-template-columns:1.5rem 1fr auto;grid-template-rows:minmax(2.25rem,auto);border:solid var(--_base-color);background-color:var(--color-neutral-white);padding:.5rem 1rem 1.5rem;gap:1rem;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-notification-banner[data-style=standard]{border-radius:.75rem;border-width:.1875rem}.dads-notification-banner[data-style=color-chip]{border-width:.125rem;padding-left:1.5rem;box-shadow:inset .5rem 0 0 0 var(--_color-chip-color)}@media(min-width:48rem){.dads-notification-banner{grid-template-columns:2.25rem 1fr auto;padding:1.5rem 1.5rem 2rem;column-gap:1.5rem}.dads-notification-banner[data-style=color-chip]{padding-left:2.5rem;box-shadow:inset 1rem 0 0 0 var(--_color-chip-color)}}.dads-notification-banner[data-type=success]{--_base-color: var(--color-semantic-success-2);--_color-chip-color: var(--color-semantic-success-2)}.dads-notification-banner[data-type=error]{--_base-color: var(--color-semantic-error-1);--_color-chip-color: var(--color-semantic-error-1)}.dads-notification-banner[data-type=warning]{--_base-color: var(--color-semantic-warning-yellow-2);--_color-chip-color: var(--color-primitive-yellow-400)}.dads-notification-banner[data-type=info-1]{--_base-color: var(--color-primitive-blue-900);--_color-chip-color: var(--color-primitive-blue-900)}.dads-notification-banner[data-type=info-2]{--_base-color: var(--color-neutral-solid-gray-536);--_color-chip-color: var(--color-neutral-solid-gray-536)}.dads-notification-banner__icon{justify-self:center;width:1.75rem;height:1.75rem;max-width:none;max-height:none;padding-top:.1875rem;color:var(--_base-color)}@media(min-width:48rem){.dads-notification-banner__icon{margin-top:-.25rem;margin-bottom:-.25rem;width:2.75rem;height:2.75rem;padding:0}}@media(forced-colors:active){.dads-notification-banner__icon{color:currentcolor}}.dads-notification-banner__heading{grid-column:span 2;margin-top:0;margin-bottom:0;display:grid;grid-template-columns:inherit;gap:inherit}.dads-notification-banner__heading-text{padding-top:.1875rem;color:var(--color-neutral-solid-gray-900);font-weight:700;font-size:1.0625rem;line-height:1.7;letter-spacing:.02em}@media(min-width:48rem){.dads-notification-banner__heading-text{padding-top:.125rem;font-size:1.25rem;line-height:1.5}}.dads-notification-banner__close{margin-right:-.75rem;display:flex;align-self:start;align-items:center;column-gap:.25rem;background:transparent;border-radius:.5rem;border:0;padding:.25rem .75rem .375rem;color:var(--color-neutral-solid-gray-900);font:inherit;line-height:1;letter-spacing:inherit}@media(hover:hover){.dads-notification-banner__close:hover{background-color:var(--color-neutral-solid-gray-50);text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem}}.dads-notification-banner__close:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-notification-banner__close-icon{margin-top:.125rem;width:1.5rem;height:1.5rem}.dads-notification-banner__mobile-close{margin-top:.25rem;border:0;border-radius:.25rem;background:transparent;padding:0;color:var(--color-neutral-black);touch-action:manipulation}@media(hover:hover){.dads-notification-banner__mobile-close:hover{outline:1px solid;background-color:var(--color-neutral-solid-gray-50)}}.dads-notification-banner__mobile-close:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-notification-banner__mobile-close-icon{display:block;width:2.75rem;height:2.75rem}.dads-notification-banner__body{margin-top:-.25rem;display:grid;row-gap:.5rem;grid-column:1 / 4;color:var(--color-neutral-solid-gray-800)}@media(min-width:48rem){.dads-notification-banner__body{margin-top:0;grid-column:2 / 4}}.dads-notification-banner__body>*{margin-top:0;margin-bottom:0}.dads-notification-banner__timestamp time{text-autospace:normal}.dads-notification-banner__actions{margin-bottom:-.5rem;display:grid;gap:.5rem;grid-column:1 / 4}@media(min-width:48rem){.dads-notification-banner__actions{grid-auto-flow:column;gap:1rem;grid-column:2 / 4;justify-content:end}}.dads-notification-banner .dads-button{width:auto}.dads-notification-banner[data-type=success] .dads-button{--button-color: var(--color-semantic-success-2);--button-hover-color: var(--color-primitive-green-1000);--button-active-color: var(--color-primitive-green-1200);--button-outline-hover-bg-color: var(--color-primitive-green-200);--button-outline-active-bg-color: var(--color-primitive-green-300)}.dads-notification-banner[data-type=error] .dads-button{--button-color: var(--color-semantic-error-1);--button-hover-color: var(--color-primitive-red-1000);--button-active-color: var(--color-primitive-red-1200);--button-outline-hover-bg-color: var(--color-primitive-red-200);--button-outline-active-bg-color: var(--color-primitive-red-300)}.dads-notification-banner[data-type=warning] .dads-button{--button-color: var(--color-semantic-warning-yellow-2);--button-hover-color: var(--color-primitive-yellow-1000);--button-active-color: var(--color-primitive-yellow-1200);--button-outline-hover-bg-color: var(--color-primitive-yellow-200);--button-outline-active-bg-color: var(--color-primitive-yellow-300)}.dads-notification-banner[data-type=info-1] .dads-button{--button-color: var(--color-primitive-blue-900);--button-hover-color: var(--color-primitive-blue-1000);--button-active-color: var(--color-primitive-blue-1200);--button-outline-hover-bg-color: var(--color-primitive-blue-200);--button-outline-active-bg-color: var(--color-primitive-blue-300)}.dads-notification-banner[data-type=info-2] .dads-button{--button-color: var(--color-neutral-solid-gray-800);--button-hover-color: var(--color-neutral-solid-gray-900);--button-active-color: var(--color-neutral-black);--button-outline-hover-bg-color: var(--color-neutral-solid-gray-200);--button-outline-active-bg-color: var(--color-neutral-solid-gray-300)}.dads-step-navigation{color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;font-family:var(--font-family-sans);line-height:1.7;letter-spacing:.02em;overflow-wrap:anywhere}.dads-step-navigation[data-size=normal]{--_number-size: 2.75rem ;--_number-margin: .25rem ;--_outline-width: .125rem ;--_title-margin: 1.5rem ;--_description-margin: .5rem }.dads-step-navigation[data-size=small]{--_number-size: 2rem ;--_number-margin: .1875rem ;--_outline-width: .0625rem ;--_title-margin: 1rem ;--_description-margin: .25rem }.dads-step-navigation>ul{margin:0;padding:0;list-style-type:none}.dads-step-navigation__step{position:relative;box-sizing:border-box}.dads-step-navigation__step:before,.dads-step-navigation__step:after{position:absolute;z-index:-1;content:""}.dads-step-navigation__step[data-first]:before{display:none}.dads-step-navigation__step[data-last]:after{display:none}.dads-step-navigation__header{display:block;border:0;background:none;padding:0;color:inherit;font:inherit;text-wrap:pretty}.dads-step-navigation__header:any-link,.dads-step-navigation__header:enabled{color:inherit;text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem}@media(hover:hover){.dads-step-navigation__header:any-link:hover,.dads-step-navigation__header:enabled:hover{text-decoration-thickness:.1875rem;cursor:pointer}}.dads-step-navigation__header:focus-visible{border-radius:0;outline:0;box-shadow:none}.dads-step-navigation__number{position:relative;display:grid;place-content:center;margin:.25rem;box-sizing:border-box;width:fit-content;height:var(--_number-size);min-width:var(--_number-size);border:2px solid;border-radius:50%;background-color:var(--color-neutral-white);padding:0 .125rem .125rem;font-weight:700;font-size:1.25rem;line-height:1.5;letter-spacing:.02em;text-decoration:inherit;text-decoration-thickness:inherit}.dads-step-navigation[data-size=small] .dads-step-navigation__number{margin:.1875rem;border-width:1px;font-size:1rem}.dads-step-navigation__step[data-state=reached] .dads-step-navigation__number{background-color:var(--color-neutral-solid-gray-800);color:var(--color-neutral-white);border-color:var(--color-neutral-solid-gray-800)}.dads-step-navigation__step[data-state=completed] .dads-step-navigation__number{background-color:var(--color-neutral-solid-gray-50)}.dads-step-navigation__step[data-state=error] .dads-step-navigation__number{color:var(--color-semantic-error-1)}.dads-step-navigation__step[data-state=skipped] .dads-step-navigation__number{border-width:1px;border-style:dashed}.dads-step-navigation__step[aria-current] .dads-step-navigation__number{outline:var(--_outline-width) solid var(--color-neutral-solid-gray-800);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-neutral-white)}@media(forced-colors:active){.dads-step-navigation__step[data-state=reached] .dads-step-navigation__number{background-color:CanvasText;color:Canvas;forced-color-adjust:none}.dads-step-navigation__step[data-state=completed] .dads-step-navigation__state-icon circle{fill:CanvasText}.dads-step-navigation__step[data-state=completed] .dads-step-navigation__state-icon path{fill:Canvas}.dads-step-navigation__step[data-state=editing] .dads-step-navigation__state-icon path{fill:CanvasText}.dads-step-navigation__step[data-state=error] .dads-step-navigation__state-icon path{fill:CanvasText}}@media(hover:hover){.dads-step-navigation__header:any-link:hover .dads-step-navigation__number,.dads-step-navigation__header:enabled:hover .dads-step-navigation__number{outline:1px solid}.dads-step-navigation__step[data-state=reached] :is(.dads-step-navigation__header:any-link,.dads-step-navigation__header:enabled):hover .dads-step-navigation__number{outline-color:var(--color-neutral-solid-gray-800)}.dads-step-navigation__step[data-state=skipped] :is(.dads-step-navigation__header:any-link,.dads-step-navigation__header:enabled):hover .dads-step-navigation__number{outline:none;border-width:2px}}.dads-step-navigation__header:focus-visible .dads-step-navigation__number{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-step-navigation__state-icon{position:absolute;top:-.625rem;left:calc(50% + .375rem);border-radius:50%;background-color:var(--color-neutral-white)}.dads-step-navigation[data-size=small] .dads-step-navigation__state-icon{top:-.5625rem;left:calc(50% + .25rem)}.dads-step-navigation__state-icon>svg{display:block;max-width:none}.dads-step-navigation[data-size=small] .dads-step-navigation__state-icon>svg{width:1.25rem;height:1.25rem}.dads-step-navigation__state-label{position:absolute;inset:calc(100% + .5rem) -100% 0;margin:0 auto;width:4em;height:1.2em;background-color:var(--color-neutral-white);font-weight:400;font-size:.875rem;line-height:1.2;letter-spacing:0;text-align:center}.dads-step-navigation__title{display:block;font-weight:700;font-size:1.125rem;line-height:1.6;letter-spacing:.02em;text-decoration-thickness:inherit}.dads-step-navigation[data-size=small] .dads-step-navigation__title{font-weight:700;font-size:1rem;line-height:1.7;letter-spacing:.02em}.dads-step-navigation__description{margin:var(--_description-margin) 0 0}.dads-step-navigation[data-orientation=horizontal]{overflow-x:auto;padding-top:.375rem;padding-bottom:.375rem}.dads-step-navigation[data-orientation=horizontal]>ul{display:flex}.dads-step-navigation[data-orientation=vertical]>ul{display:flex;flex-direction:column}.dads-step-navigation[data-orientation=horizontal] .dads-step-navigation__step{width:calc(var(--_step-width, 320) / 16 * 1rem);min-width:calc(var(--_step-min-width, 160) / 16 * 1rem);padding:0 1rem}.dads-step-navigation[data-orientation=vertical] .dads-step-navigation__step{flex:1;padding-bottom:1.5rem}.dads-step-navigation[data-orientation=vertical] .dads-step-navigation__step:last-child{padding-bottom:0}.dads-step-navigation[data-orientation=horizontal] .dads-step-navigation__step:before{top:calc(var(--_number-size) / 2 + var(--_number-margin));right:50%;width:50%;border-bottom:1px solid}.dads-step-navigation[data-orientation=horizontal] .dads-step-navigation__step:after{top:calc(var(--_number-size) / 2 + var(--_number-margin));left:50%;width:50%;border-bottom:1px solid}.dads-step-navigation[data-orientation=vertical] .dads-step-navigation__step:before{left:calc(var(--_number-size) / 2 + var(--_number-margin));top:0;height:2rem;border-right:1px solid}.dads-step-navigation[data-orientation=vertical] .dads-step-navigation__step:after{left:calc(var(--_number-size) / 2 + var(--_number-margin));bottom:0;height:calc(100% - 2rem);border-right:1px solid}.dads-step-navigation[data-orientation=horizontal] .dads-step-navigation__header{width:100%;text-align:center}.dads-step-navigation[data-orientation=vertical] .dads-step-navigation__header{position:relative;display:flex;align-items:baseline;column-gap:1rem;text-align:left}.dads-step-navigation[data-orientation=horizontal] .dads-step-navigation__number{margin-right:auto;margin-left:auto}.dads-step-navigation[data-orientation=vertical] .dads-step-navigation__number{flex-shrink:0}.dads-step-navigation[data-orientation=horizontal] .dads-step-navigation__title{margin-top:var(--_title-margin)}.dads-step-navigation[data-orientation=vertical] .dads-step-navigation__title{padding:calc(var(--_number-size) / 2 + var(--_number-margin) - .875rem) 0}.dads-step-navigation[data-orientation=horizontal] .dads-step-navigation__description{text-align:center}.dads-step-navigation[data-orientation=vertical] .dads-step-navigation__description{margin-top:calc(var(--_description-margin) - (var(--_number-size) / 2 + var(--_number-margin) - .875rem));padding-left:calc(var(--_number-size) + var(--_number-margin) + var(--_number-margin) + 1rem)}.dads-table{--_border-color: var(--color-neutral-solid-gray-420);--_padding: 1.25rem 1rem ;margin:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;row-gap:1rem;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-table[data-size=dense]{--_padding: .75rem 1rem ;line-height:1.3}.dads-table__caption{font-weight:700;font-size:1.0625rem}.dads-table__table{border-collapse:collapse}.dads-table__table :is(td,th){padding:var(--_padding);text-align:left;vertical-align:baseline}.dads-table__table th{font-weight:700}.dads-table__col-header,.dads-table__row-header{--_border-color: var(--color-neutral-solid-gray-500);background-color:var(--color-neutral-solid-gray-100);color:var(--color-neutral-solid-gray-900)}.dads-table[data-row-stripe]{--_border-color: var(--color-neutral-solid-gray-500)}.dads-table[data-row-stripe] tr:nth-child(2n){background-color:var(--color-neutral-solid-gray-50)}.dads-table[data-row-hover-highlight]{--_border-color: var(--color-neutral-solid-gray-500)}@media(hover:hover){.dads-table[data-row-hover-highlight] tr:hover{background-color:var(--color-key-50)}}.dads-table[data-selectable]{--_border-color: var(--color-neutral-solid-gray-500)}.dads-table[data-selectable] tr:has(:checked) :where(td,th){background:linear-gradient(#fff,#fff) top / 100% 1px no-repeat,linear-gradient(90deg,#fff,#fff) left / var(--_gap-x, 0) 100% no-repeat,var(--color-key-100);background-origin:padding-box}.dads-table [data-border=""] :is(td,th):first-child,.dads-table [data-border~=left] :is(td,th):first-child,.dads-table [data-cell-border=""] :is(td,th),.dads-table [data-cell-border~=left] :is(td,th),.dads-table [data-cell-border~=right] :is(td,th)+:is(td,th),.dads-table [data-border=""]:is(td,th),.dads-table [data-border~=left]:is(td,th),.dads-table [data-border=""]+:is(td,th),.dads-table [data-border~=right]+:is(td,th){--_gap-x: 1px}@supports (selector(:has(.x))){.dads-table td:has(.dads-checkbox:only-child,.dads-radio:only-child),.dads-table th:has(.dads-checkbox:only-child,.dads-radio:only-child){position:relative;box-sizing:border-box;width:2.5rem;padding:0}.dads-table td>:is(.dads-checkbox:only-child,.dads-radio:only-child),.dads-table th>:is(.dads-checkbox:only-child,.dads-radio:only-child){position:absolute;top:0;right:0;bottom:0;left:0;display:grid;justify-content:center;width:auto;padding-top:.625rem}}.dads-table__sort-header{--_border-color: var(--color-neutral-solid-gray-500);background-color:var(--color-neutral-solid-gray-100);padding:.75rem 1rem;color:var(--color-neutral-solid-gray-900)}.dads-table[data-size=dense] .dads-table__sort-header{padding-top:0;padding-bottom:0}.dads-table__sort-inner{display:flex;align-items:start;justify-content:space-between;column-gap:.25rem}.dads-table__sort-label{display:flex;align-items:start;gap:.25rem;padding-top:.5rem;padding-bottom:.5rem}.dads-table[data-size=dense] .dads-table__sort-label{padding-top:.6875rem;padding-bottom:.6875rem}.dads-table__sort-button{display:inline-flex;align-items:start;column-gap:.25rem;border:0;background-color:transparent;padding:0;color:inherit;text-align:left;font:inherit;letter-spacing:inherit;text-decoration:underline;text-underline-offset:.1875rem}.dads-table__sort-button:hover{text-decoration-thickness:.1875rem}.dads-table__sort-button:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-table__sort-icon{flex-shrink:0;padding-top:.125rem}.dads-table[data-size=dense] .dads-table__sort-icon{margin-top:-.125rem;padding-top:0}.dads-table__sort-svg{display:block;width:1.5rem;height:1.5rem}.dads-table__action{margin-right:-1rem;display:flex;flex-shrink:0;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.25rem;border:0;background-color:transparent;padding:0;color:inherit}.dads-table__action:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-table__action-svg{display:block;width:1.5rem;height:1.5rem}.dads-table [data-width=full]{width:100%}.dads-table [data-layout=fixed]{table-layout:fixed}.dads-table [data-cell-border=""] :where(td,th){border:1px solid var(--_border-color)}.dads-table [data-cell-border~=top] :where(td,th){border-top:1px solid var(--_border-color)}.dads-table [data-cell-border~=right] :where(td,th){border-right:1px solid var(--_border-color)}.dads-table [data-cell-border~=bottom] :where(td,th){border-bottom:1px solid var(--_border-color)}.dads-table [data-cell-border~=left] :where(td,th){border-left:1px solid var(--_border-color)}:last-of-type>.dads-table__col-header,:last-of-type>.dads-table__sort-header{border-bottom:1px solid var(--color-neutral-black)}.dads-table__row-header:last-of-type{border-right:1px solid var(--color-neutral-black)}.dads-table [data-border=""]{border:1px solid var(--_border-color)}.dads-table [data-border~=top]{border-top:1px solid var(--_border-color)}.dads-table [data-border~=right]{border-right:1px solid var(--_border-color)}.dads-table [data-border~=bottom]{border-bottom:1px solid var(--_border-color)}.dads-table [data-border~=left]{border-left:1px solid var(--_border-color)}.dads-table [data-border=hidden]{border-style:hidden}.dads-table [data-border~=top-hidden]{border-top-style:hidden}.dads-table [data-border~=right-hidden]{border-right-style:hidden}.dads-table [data-border~=bottom-hidden]{border-bottom-style:hidden}.dads-table [data-border~=left-hidden]{border-left-style:hidden}.dads-table [data-bg=white]{background-color:var(--color-neutral-white)}.dads-table [data-bg=solid-gray-50]{--_border-color: var(--color-neutral-solid-gray-500);background-color:var(--color-neutral-solid-gray-50)}.dads-table [data-bg=solid-gray-100]{--_border-color: var(--color-neutral-solid-gray-500);background-color:var(--color-neutral-solid-gray-100)}.dads-table [data-bg=transparent]{background-color:transparent}.dads-page-navigation{display:flex;align-items:center;gap:1rem;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-page-navigation__counter{min-width:3.75rem;color:var(--color-neutral-solid-gray-900);font-size:1rem;line-height:1;letter-spacing:.02em;text-align:center;white-space:nowrap}.dads-page-navigation .dads-button[data-type=text][data-control=prev]{padding-left:.5rem}.dads-page-navigation .dads-button[data-type=text][data-control=next]{padding-right:.5rem}.dads-page-navigation .dads-button[data-type=outline][data-control=prev]{padding-right:1.5rem}.dads-page-navigation .dads-button[data-type=outline][data-control=next]{padding-left:1.5rem}.dads-page-navigation__arrow-button{display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;border:1px solid;border-radius:50%;background-color:var(--color-neutral-white);padding:0;color:var(--color-key-1000)}.dads-page-navigation__arrow-button[data-size=lg]{width:2.75rem;height:2.75rem}.dads-page-navigation__arrow-button[data-size=lg] svg{width:1.5rem;height:1.5rem}.dads-page-navigation__arrow-button[data-size=md]{position:relative;width:2rem;height:2rem}.dads-page-navigation__arrow-button[data-size=md]:after{content:"";position:absolute;top:-100%;right:-100%;bottom:-100%;left:-100%;margin:auto;width:2.75rem;height:2.75rem}.dads-page-navigation__arrow-button[data-size=md] svg{width:1.25rem;height:1.25rem}.dads-page-navigation__arrow-button[data-size=sm]{position:relative;width:1.5rem;height:1.5rem}.dads-page-navigation__arrow-button[data-size=sm]:after{content:"";position:absolute;top:-100%;right:-100%;bottom:-100%;left:-100%;margin:auto;width:2.75rem;height:2.75rem}.dads-page-navigation__arrow-button[data-size=sm] svg{width:1rem;height:1rem}.dads-page-navigation__arrow-button[data-size=xs]{position:relative;width:1.25rem;height:1.25rem}.dads-page-navigation__arrow-button[data-size=xs]:after{content:"";position:absolute;top:-100%;right:-100%;bottom:-100%;left:-100%;margin:auto;width:2.75rem;height:2.75rem}.dads-page-navigation__arrow-button[data-size=xs] svg{width:1rem;height:1rem}@media(hover:hover){.dads-page-navigation__arrow-button:any-link:hover,.dads-page-navigation__arrow-button:enabled:hover{border-width:3px;background-color:var(--color-key-200)}.dads-page-navigation__arrow-button[data-size=sm]:any-link:hover,.dads-page-navigation__arrow-button[data-size=sm]:enabled:hover,.dads-page-navigation__arrow-button[data-size=xs]:any-link:hover,.dads-page-navigation__arrow-button[data-size=xs]:enabled:hover{border-width:2px}}.dads-page-navigation__arrow-button:any-link:active,.dads-page-navigation__arrow-button:enabled:active{background-color:var(--color-key-300);color:var(--color-key-1200)}.dads-page-navigation__arrow-button:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-page-navigation__button-icon{flex-shrink:0}.dads-description-list{margin-top:1rem;margin-bottom:1rem;display:grid;gap:.5rem 0;overflow-wrap:anywhere}.dads-description-list dt{font-weight:700}.dads-description-list[data-marker=bullet] dt{margin-left:2rem;display:list-item;list-style-type:disc}.dads-description-list[data-marker=custom] dt>span:first-child{display:inline-block;min-width:2rem}.dads-description-list dd{margin-left:2rem}.dads-accordion{--_icon-size: 1.25rem ;border-bottom:1px solid var(--color-neutral-solid-gray-420)}@media(min-width:48rem){.dads-accordion{--_icon-size: 2rem }}.dads-accordion__summary{position:relative;display:block;padding:.5rem .5rem .5rem calc(var(--_icon-size) + .75rem);color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em;cursor:default}.dads-accordion__summary::marker{content:""}.dads-accordion__summary::-webkit-details-marker{display:none}@media(min-width:48rem){.dads-accordion__summary{padding:1rem 1rem 1rem calc(var(--_icon-size) + 1.25rem);font-size:1.125rem;line-height:1.6}}@media(hover:hover){.dads-accordion__summary:hover:not(:focus-visible){background-color:var(--color-neutral-solid-gray-50)}}.dads-accordion__summary:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-accordion__icon{position:absolute;top:.5rem;left:.125rem;margin-top:calc((1lh - var(--_icon-size)) / 2);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--_icon-size);height:var(--_icon-size);border-radius:50%;border:1px solid currentcolor;background-color:var(--color-neutral-white);color:var(--color-key-1000)}@media(min-width:48rem){.dads-accordion__icon{top:.875rem;left:.375rem}}.dads-accordion[open] .dads-accordion__icon{transform:rotate(180deg)}@media(hover:hover){.dads-accordion__summary:hover .dads-accordion__icon{outline:.125rem solid currentcolor}}.dads-accordion__icon-svg{margin-top:.125rem;width:1rem;height:1rem;pointer-events:none}@media(min-width:48rem){.dads-accordion__icon-svg{width:auto;height:auto}}.dads-accordion__summary :is(h1,h2,h3,h4,h5,h6){margin:0;font:inherit}.dads-accordion__content{padding:1rem .5rem 1rem calc(var(--_icon-size) + .75rem)}@media(min-width:48rem){.dads-accordion__content{padding:1.5rem 1rem 1.5rem calc(var(--_icon-size) + 1.25rem)}}.dads-accordion__back-link:any-link{display:flex;align-items:flex-start;gap:.375rem;width:fit-content;color:var(--color-primitive-blue-1000);text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem;text-spacing-trim:trim-start}@media(hover:hover){.dads-accordion__back-link:hover{color:var(--color-primitive-blue-900);text-decoration-thickness:.1875rem}}.dads-accordion__back-link:active{color:var(--color-primitive-orange-800);text-decoration-thickness:.0625rem}.dads-accordion__back-link:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-accordion__back-link-icon{margin-top:calc((1lh - 1.5rem)/2);flex-shrink:0}.dads-disclosure__summary{display:flex;align-items:start;justify-content:start;gap:.5rem;width:fit-content;cursor:default;list-style-type:none}@media(hover:hover){.dads-disclosure__summary:hover{text-decoration:underline;text-underline-offset:.1875rem}}.dads-disclosure__summary:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-disclosure__summary::marker{content:""}.dads-disclosure__summary::-webkit-details-marker{display:none}.dads-disclosure__icon{flex-shrink:0;margin-top:calc((1lh - 24px)/2);color:var(--color-key-1000)}@media(forced-colors:active){.dads-disclosure__icon{color:inherit}}.dads-disclosure[open] .dads-disclosure__icon{rotate:180deg}.dads-disclosure__icon-hover{display:none}@media(hover:hover){.dads-disclosure__summary:hover .dads-disclosure__icon-circle{fill:Canvas}.dads-disclosure__summary:hover .dads-disclosure__icon-triangle{fill:currentcolor}}.dads-disclosure__content{padding-left:2rem;margin:1rem 0}.dads-disclosure__back-link:any-link{display:flex;align-items:start;gap:.375rem;width:fit-content;color:var(--color-primitive-blue-1000);text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem;text-spacing-trim:trim-start}@media(hover:hover){.dads-disclosure__back-link:hover{color:var(--color-primitive-blue-900);text-decoration-thickness:.1875rem}}.dads-disclosure__back-link:active{color:var(--color-primitive-orange-800);text-decoration-thickness:.0625rem}.dads-disclosure__back-link:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-disclosure__back-link-icon{margin-top:calc((1lh - 1.5rem)/2);flex-shrink:0}.dads-modal-dialog{--modal-dialog-width: fit-content;top:0;right:0;bottom:0;left:0;box-sizing:border-box;container-type:inline-size;width:auto;height:auto;max-width:none;max-height:none;border:0;background-color:transparent;padding:0 1rem;font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em;overflow-wrap:break-word;color-scheme:dark}.dads-modal-dialog:modal{display:flex;flex-direction:column;align-items:center}.dads-modal-dialog:before,.dads-modal-dialog:after{display:block;flex-shrink:9999;width:1px;height:7.5rem;min-height:1rem;content:""}.dads-modal-dialog::backdrop{background-color:var(--color-neutral-opacity-gray-600)}.dads-modal-dialog__dialog{display:flex;flex-direction:column;row-gap:.75rem;flex-shrink:0;box-sizing:border-box;width:var(--modal-dialog-width);min-width:min(30rem,calc(100cqw - 2rem));max-width:100%;min-height:0;border-radius:.5rem;border:1px solid var(--color-neutral-black);background-color:var(--color-neutral-white);box-shadow:var(--elevation-3);color:var(--color-neutral-solid-gray-800);color-scheme:light}.dads-modal-dialog__header{display:flex;align-items:start;flex-shrink:0;column-gap:1rem;min-width:0;padding:.5rem 1rem 0}.dads-modal-dialog__heading{margin:0;flex-grow:1;min-width:0;font-weight:700;font-size:1.5rem;line-height:1.5;letter-spacing:.02em}.dads-modal-dialog__heading:focus-visible{outline:0;border-radius:0;box-shadow:none}.dads-modal-dialog__close{display:flex;align-items:center;flex-shrink:0;column-gap:.25rem;width:fit-content;border:0;border-radius:.375rem;background:transparent;padding:.25rem .75rem .375rem;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1;font-family:var(--font-family-sans);letter-spacing:.02em;touch-action:manipulation}@media(hover:hover){.dads-modal-dialog__close:hover{background-color:var(--color-neutral-solid-gray-50);text-decoration:underline;text-underline-offset:.1875rem}}.dads-modal-dialog__close:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-modal-dialog__close-icon{margin-top:.125rem;width:1.5rem;height:1.5rem;flex-shrink:0;color:var(--color-neutral-black)}.dads-modal-dialog__body{flex-shrink:0;min-width:0;padding:0 1rem 2rem}.dads-modal-dialog__actions{flex-shrink:0;min-width:0;padding:0 1rem 1rem}.dads-modal-dialog__scroll-area{display:flex;flex-direction:column;row-gap:.75rem;overflow-y:auto;scrollbar-width:thin}.dads-modal-dialog__scroll-area:not(:first-child){margin-top:-.25rem;border-top:1px solid var(--color-neutral-solid-gray-600)}.dads-modal-dialog__scroll-area:not(:last-child){margin-bottom:.25rem;border-bottom:1px solid var(--color-neutral-solid-gray-600)}.dads-modal-dialog:not([data-scroll]),.dads-modal-dialog[data-scroll=outer]{scrollbar-gutter:stable}.dads-modal-dialog[data-scroll=inner] .dads-modal-dialog__dialog{flex-shrink:1;scrollbar-width:thin}.dads-modal-dialog[data-scroll=inner]:not(:has(.dads-modal-dialog__scroll-area)) .dads-modal-dialog__dialog{overflow-y:auto}@media(min-width:48rem){.dads-modal-dialog__dialog,.dads-modal-dialog__scroll-area{row-gap:1rem}.dads-modal-dialog__scroll-area:not(:first-child){margin-top:.5rem}.dads-modal-dialog__scroll-area:not(:last-child){margin-bottom:.5rem}.dads-modal-dialog__header{padding:1.5rem 1.5rem 0}.dads-modal-dialog__heading{font-weight:700;font-size:1.75rem;line-height:1.5;letter-spacing:.01em}.dads-modal-dialog__body{padding:0 1.5rem 2rem}.dads-modal-dialog__actions{padding:0 1.5rem 1.5rem}}@media(forced-colors:active){.dads-modal-dialog::backdrop{background-color:#000b}.dads-modal-dialog__close-icon{color:currentcolor}}.dads-breadcrumb{display:flex;column-gap:.25rem;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-breadcrumb__label{flex-shrink:0}.dads-breadcrumb__label:after{content:":"}.dads-breadcrumb__list{margin:0;padding:0}.dads-breadcrumb__item{display:inline;overflow-wrap:break-word}.dads-breadcrumb__link:any-link{color:var(--color-primitive-blue-1000);text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem}@media(hover:hover){.dads-breadcrumb__link:hover{color:var(--color-primitive-blue-900);text-decoration-thickness:.1875rem}}.dads-breadcrumb__link:active{color:var(--color-primitive-orange-800);text-decoration-thickness:.0625rem}.dads-breadcrumb__link:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-breadcrumb__link-icon{display:inline-block;vertical-align:-.15em;width:1rem;height:1rem}.dads-breadcrumb__separator:before,.dads-breadcrumb__separator:after{content:" "}.dads-breadcrumb__separator-icon{display:inline-block;margin-right:.0625rem;margin-left:.0625rem;width:.75rem;height:.75rem;vertical-align:middle;color:var(--color-neutral-solid-gray-900)}.dads-horizontal-menu{margin:0;display:flex;align-items:stretch;border-bottom:1px solid var(--color-neutral-solid-gray-420);padding:0;color:var(--color-neutral-solid-gray-900);list-style-type:none;font-weight:700;font-size:1rem;line-height:1.3;font-family:var(--font-family-sans);letter-spacing:0}.dads-horizontal-menu__item{display:flex;align-items:stretch;position:relative}.dads-horizontal-menu__item-inner,.dads-horizontal-menu__item-inner:any-link{position:relative;display:flex;align-items:center;gap:.25rem;box-sizing:border-box;min-height:4rem;border:0;background-color:transparent;padding:1rem 1.25rem;color:inherit;font:inherit;text-decoration:none;cursor:pointer}.dads-horizontal-menu__front-icon{flex-shrink:0;width:1.5rem;height:1.5rem}.dads-horizontal-menu__chevron{margin-top:.25rem;box-sizing:content-box;flex-shrink:0;width:1rem;height:1rem}@media(hover:hover){.dads-horizontal-menu__item-inner:hover{background-color:var(--color-neutral-solid-gray-50)}.dads-horizontal-menu__item-inner:hover:after{position:absolute;right:0;bottom:0;left:0;border-bottom:2px solid var(--color-neutral-black);content:""}}.dads-horizontal-menu__item-inner[aria-current]{background-color:var(--color-neutral-white);color:var(--color-key-1000)}.dads-horizontal-menu__item-inner[aria-current]:after{position:absolute;right:0;bottom:0;left:0;border-bottom:4px solid var(--color-key-900);content:""}@media(hover:hover){.dads-horizontal-menu__item-inner[aria-current]:hover{color:var(--color-key-900);text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem}}.dads-horizontal-menu__item-inner:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-horizontal-menu__item-inner[aria-current]:focus-visible{background-color:var(--color-neutral-white)}.dads-horizontal-menu__item-inner[aria-expanded=true] .dads-horizontal-menu__chevron{transform:rotate(180deg)}.dads-menu-list{position:relative;z-index:0;margin:0;list-style-type:none;padding-left:0;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.3;font-family:var(--font-family-sans);letter-spacing:0}.dads-menu-list__item,.dads-menu-list__item:any-link{display:flex;align-items:center;column-gap:.5rem;box-sizing:border-box;width:-webkit-fill-available;width:-moz-available;width:stretch;border:0;background-color:transparent;padding-right:1rem;padding-left:1rem;color:inherit;text-align:left;font:inherit;letter-spacing:inherit;text-decoration:none;text-decoration-thickness:.0625rem}.dads-menu-list__item[data-size=regular]{min-height:2.75rem;padding-top:.625rem;padding-bottom:.625rem;line-height:1.3}.dads-menu-list__item[data-size=small]{min-height:2.25rem;padding-top:.375rem;padding-bottom:.375rem;line-height:1.2}.dads-menu-list__item[data-type=standard]{margin-left:calc(1rem * var(--menu-list-indentation, 0))}.dads-menu-list__item[data-type=standard][data-size=regular]{border-radius:.5rem}.dads-menu-list__item[data-type=standard][data-size=small]{border-radius:.25rem}.dads-menu-list__item[data-type=box]{border-radius:0}.dads-menu-list__item[data-type=box]{padding-left:calc(16 / 16 * 1rem + 1rem * var(--menu-list-indentation, 0))}.dads-menu-list__item[data-current]{background-color:var(--color-key-100);color:var(--color-key-1000);font-weight:700}.dads-menu-list__item:has(+* [data-current]){background-color:var(--color-key-50);color:var(--color-key-1000)}@media(hover:hover){.dads-menu-list__item:hover{background-color:var(--color-neutral-solid-gray-50);text-decoration:underline;text-underline-offset:.1875rem}.dads-menu-list__item[data-current]:hover,.dads-menu-list__item:has(+* [data-current]):hover{background-color:var(--color-key-50);color:var(--color-key-900)}}.dads-menu-list__item:focus-visible{position:relative;z-index:1;background-color:var(--color-primitive-yellow-300)}.dads-menu-list__item[data-type=standard]:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-menu-list__item[data-type=box]:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:-.25rem;box-shadow:inset 0 0 0 .375rem var(--color-primitive-yellow-300)}.dads-menu-list__item[data-current]:focus-visible{background-color:var(--color-key-100)}.dads-menu-list__item:has(+* [data-current]):focus-visible{background-color:var(--color-key-50)}.dads-menu-list__front-icon{flex-shrink:0}.dads-menu-list__tail-icon{display:inline-block;vertical-align:-.15em}.dads-menu-list__end-icon{margin-top:.125rem;margin-right:-.25rem;margin-left:auto;flex-shrink:0}.dads-menu-list__item[data-expanded] .dads-menu-list__end-icon{transform:rotate(180deg)}.dads-utility-link:any-link{display:block;width:fit-content;font-weight:400;font-size:1rem;line-height:1.3;font-family:var(--font-family-sans);letter-spacing:0;text-decoration:none;text-wrap:pretty}.dads-utility-link:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-utility-link__lead-icon{display:inline-block;width:1rem;height:1rem;vertical-align:-.15em;color:var(--color-neutral-solid-gray-900)}.dads-utility-link__label{color:var(--color-neutral-solid-gray-800);text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem}.dads-utility-link:visited .dads-utility-link__label{color:var(--color-neutral-solid-gray-800)}@media(hover:hover){.dads-utility-link:hover .dads-utility-link__label{color:var(--color-neutral-solid-gray-800);text-decoration-thickness:.1875rem}}.dads-utility-link:active .dads-utility-link__label{color:var(--color-neutral-solid-gray-800);text-decoration-thickness:.0625rem}.dads-utility-link__tail-icon{display:inline-block;width:1rem;height:1rem;vertical-align:-.15em;color:var(--color-neutral-solid-gray-900)}.dads-link:any-link{color:var(--color-primitive-blue-1000);text-decoration:underline;text-decoration-thickness:.0625rem;text-underline-offset:.1875rem}.dads-link:visited{color:var(--color-primitive-magenta-900)}@media(hover:hover){.dads-link:hover{color:var(--color-primitive-blue-900);text-decoration-thickness:.1875rem}}.dads-link:active{color:var(--color-primitive-orange-800);text-decoration-thickness:.0625rem}.dads-link:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;background-color:var(--color-primitive-yellow-300);box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-link__icon{display:inline-block;width:1rem;height:1rem;vertical-align:-.15em}.dads-tab{position:relative;z-index:0;display:flex;flex-direction:column;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em;overflow-wrap:anywhere}.dads-tab__list{position:relative;z-index:0;margin:-.375rem;overflow:hidden;display:flex;flex-wrap:wrap;padding:.4375rem .375rem .375rem .4375rem;list-style:none}.dads-tab__list>li{margin:0;display:contents}.dads-tab__list:after{position:relative;flex-grow:1;border:0 solid var(--color-neutral-solid-gray-420);content:""}.dads-tab__tab,.dads-tab__tab:any-link{isolation:isolate;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:-1px 0 0 -1px;display:flex;border:1px solid var(--color-neutral-solid-gray-420);background:var(--color-neutral-white);padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;text-decoration:none}.dads-tab__tab[role=tab]{cursor:default}.dads-tab__tab:focus-visible{overflow:hidden;outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300);z-index:1}.dads-tab__tab>span{position:relative;display:flex;flex-grow:1;align-items:center;border:0 solid var(--color-neutral-solid-gray-50);padding:1rem;font-weight:400;font-size:1rem;line-height:1.2;letter-spacing:0}.dads-tab__tab>span:before{content:"";position:absolute}.dads-tab__tab:is([aria-selected=true],[aria-current])>span{font-weight:700}.dads-tab__tab:is([aria-selected=true],[aria-current]):not(:focus-visible):before{position:absolute;border:0 solid var(--color-neutral-white);content:""}.dads-tab__tab:is([aria-selected=true],[aria-current])>span:before{background-color:var(--color-key-900)}.dads-tab__panels{flex-grow:1;display:flex;flex-direction:column}.dads-tab__panel{border:solid var(--color-neutral-solid-gray-420);background:var(--color-neutral-white);padding:1rem}.dads-tab__panel:focus-visible{z-index:1;outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;border-radius:.25rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-tab:is(:not([data-position]),[data-position=top]) .dads-tab__list:after{margin-left:-1px;width:1px;border-bottom-width:1px}.dads-tab:is(:not([data-position]),[data-position=top]) .dads-tab__tab:before{bottom:.375rem;width:100%;border-bottom-width:1px}.dads-tab:is(:not([data-position]),[data-position=top]) .dads-tab__tab>span{border-top-width:5px}.dads-tab:is(:not([data-position]),[data-position=top]) .dads-tab__tab>span:before{top:-6px;right:0;left:0;height:.375rem}.dads-tab:is(:not([data-position]),[data-position=top]) .dads-tab__panel{border-width:0 1px 1px 1px}.dads-tab[data-position=bottom] .dads-tab__list{flex-wrap:wrap-reverse}.dads-tab[data-position=bottom] .dads-tab__list:after{margin-top:-1px;margin-left:-1px;width:1px;border-top-width:1px}.dads-tab[data-position=bottom] .dads-tab__tab:before{top:.375rem;width:100%;border-bottom-width:1px}.dads-tab[data-position=bottom] .dads-tab__tab>span{border-bottom-width:5px}.dads-tab[data-position=bottom] .dads-tab__tab>span:before{right:0;bottom:-6px;left:0;height:.375rem}.dads-tab[data-position=bottom] .dads-tab__panel{border-width:1px 1px 0 1px}.dads-tab[data-position=left]{flex-direction:row}.dads-tab[data-position=left] .dads-tab__list{flex-direction:column;flex-shrink:0}.dads-tab[data-position=left] .dads-tab__list:after{margin-top:-1px;height:1px;border-right-width:1px}.dads-tab[data-position=left] .dads-tab__tab:before{right:.375rem;border-right-width:1px;height:100%}.dads-tab[data-position=left] .dads-tab__tab>span{border-left-width:5px}.dads-tab[data-position=left] .dads-tab__tab>span:before{top:0;bottom:0;left:-6px;width:.375rem}.dads-tab[data-position=left] .dads-tab__panels{min-width:0}.dads-tab[data-position=left] .dads-tab__panel{flex-grow:1;border-width:1px 1px 1px 0}.dads-tab[data-position=right]{flex-direction:row-reverse}.dads-tab[data-position=right] .dads-tab__list{flex-direction:column;flex-shrink:0}.dads-tab[data-position=right] .dads-tab__list:after{margin-top:-1px;margin-left:-1px;height:1px;border-left-width:1px}.dads-tab[data-position=right] .dads-tab__tab:before{left:.375rem;border-left-width:1px;height:100%}.dads-tab[data-position=right] .dads-tab__tab>span{border-right-width:5px}.dads-tab[data-position=right] .dads-tab__tab>span:before{top:0;right:-6px;bottom:0;width:.375rem}.dads-tab[data-position=right] .dads-tab__panels{min-width:0}.dads-tab[data-position=right] .dads-tab__panel{flex-grow:1;border-width:1px 0 1px 1px}@media(hover:hover){.dads-tab__tab:not([aria-selected=true]):not([aria-current]):hover{background-color:var(--color-neutral-solid-gray-50)}.dads-tab__tab:not([aria-selected=true]):not([aria-current]):hover>span{text-decoration:underline;text-underline-offset:.1875rem;text-decoration-thickness:.0625rem}.dads-tab__tab:not([aria-selected=true]):not([aria-current]):hover>span:before{background-color:var(--color-neutral-solid-gray-420)}}@media(forced-colors:active){.dads-tab__tab:is([aria-selected=true],[aria-current]):not(:focus-visible):before{border-color:Canvas}.dads-tab__tab>span{border-color:Canvas}.dads-tab__tab:is([aria-selected=true],[aria-current])>span:before,.dads-tab__tab:is([aria-selected=true],[aria-current]):hover>span:before{background-color:ButtonText}}.dads-toc{width:fit-content;color:var(--color-neutral-solid-gray-800);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}.dads-toc[data-border]{border:1px var(--color-neutral-solid-gray-420);padding:.75rem 1.5rem 1.5rem 1.25rem}.dads-toc[data-border=dotted]{border-style:dotted}.dads-toc[data-border=solid]{border-style:solid}.dads-toc__heading{margin-top:0;margin-bottom:.5rem;font:inherit;letter-spacing:inherit}.dads-toc .dads-link:any-link{color:inherit}.dads-toc>.dads-list:has(.dads-list){padding-left:0;list-style-type:none;font-weight:700}.dads-toc>.dads-list .dads-list{list-style-type:disc}.dads-toc>.dads-list>li>.dads-list{margin-top:0;font-weight:400}.dads-toc>.dads-list .dads-list .dads-list{list-style-type:circle}.dads-list{margin-top:0;margin-bottom:0;padding-left:2rem;list-style-type:revert}.dads-list>li{--_spacing: 0;padding-top:var(--_spacing);padding-bottom:var(--_spacing)}.dads-list[data-spacing="4"]>li{--_spacing: .25rem }.dads-list[data-spacing="8"]>li{--_spacing: .5rem }.dads-list[data-spacing="12"]>li{--_spacing: .75rem }.dads-list[data-marker=number]{padding-left:0;list-style-type:none}.dads-list[data-marker=number]>li{padding-left:2rem}.dads-list[data-marker=number]>li>a:only-child{margin-left:-2rem;padding-left:2rem}.dads-list[data-marker=number]>li>span:first-child,.dads-list[data-marker=number]>li>a:only-child>span:first-child{margin-left:-2rem;display:inline-block;min-width:2rem;white-space:nowrap}.dads-list[data-marker=number]>li>a:only-child>span:first-child{text-decoration:inherit}.dads-list .dads-list{margin-top:var(--_spacing);margin-bottom:calc(-1 * var(--_spacing))}.dads-divider{margin:0;border:0;border-top:1px solid;opacity:1}.dads-divider[data-color=solid-gray-420]{border-top-color:var(--color-neutral-solid-gray-420)}.dads-divider[data-color=solid-gray-536]{border-top-color:var(--color-neutral-solid-gray-536)}.dads-divider[data-color=black]{border-top-color:var(--color-neutral-black)}.dads-divider[data-style=solid]{border-top-style:solid}.dads-divider[data-style=dashed]{border-top-style:dashed}.dads-divider[data-width="1"]{border-top-width:1px}.dads-divider[data-width="2"]{border-top-width:2px}.dads-divider[data-width="3"]{border-top-width:3px}.dads-divider[data-width="4"]{border-top-width:4px}.dads-image{margin:0;width:fit-content}.dads-image[data-full-width],.dads-image[data-full-width] .dads-image__img{width:100%}.dads-image__image-area{display:block}.dads-image__image-area[data-bordered]{outline:1px solid var(--color-neutral-solid-gray-420);outline-offset:-1px}.dads-image__image-area:any-link{outline:1px solid var(--color-primitive-blue-900);outline-offset:-1px}@media(hover:hover){.dads-image__image-area:any-link:hover{outline-width:4px;outline-offset:-4px}}.dads-image__image-area:any-link:focus-visible{outline:.25rem solid var(--color-neutral-black);outline-offset:.125rem;box-shadow:0 0 0 .125rem var(--color-primitive-yellow-300)}.dads-image__img{display:block;max-width:100%;height:auto}.dads-image__caption{margin:.5rem 0 2.5rem;contain:inline-size;padding:.5rem 1.5rem;color:var(--color-neutral-solid-gray-700);font-family:var(--font-family-sans);font-weight:400;font-size:1rem;line-height:1.7;letter-spacing:.02em}.dads-image__caption[data-style=dashed]{border:1px dashed var(--color-neutral-solid-gray-700)}.dads-image__caption[data-style=solid]{border:1px solid var(--color-neutral-solid-gray-420)}.dads-progress-indicator{display:flex;gap:1rem .5rem;justify-content:center;align-items:center;color:var(--color-neutral-solid-gray-900);font-weight:400;font-size:1rem;line-height:1.7;font-family:var(--font-family-sans);letter-spacing:.02em}dads-progress-indicator:not([active]){display:none}dads-progress-indicator:not([active]) *{animation:none!important}.dads-progress-indicator[data-type=stacked]{flex-direction:column}.dads-progress-indicator[data-type=stacked-underlay]{flex-direction:column;margin-right:auto;margin-left:auto;box-sizing:border-box;width:fit-content;border-radius:1rem;border:1px solid var(--color-neutral-solid-gray-500);background-color:var(--color-neutral-white)}.dads-progress-indicator[data-type=stacked-underlay]:has(.dads-progress-indicator__spinner,.dads-progress-indicator__static){min-width:8rem;min-height:8rem;padding:1rem}.dads-progress-indicator[data-type=stacked-underlay]:has(.dads-progress-indicator__linear){padding:1.5rem}.dads-progress-indicator__track{stroke:currentcolor;color:var(--color-key-100)}.dads-progress-indicator__bar{color:var(--color-key-1200);stroke-dashoffset:calc(100 - clamp(0,var(--value, 35),100))}.dads-progress-indicator__border{color:var(--color-key-1200)}.dads-progress-indicator__spinner g{transform-origin:center}.dads-progress-indicator__spinner .dads-progress-indicator__bar{stroke-dasharray:100;transform:rotate(-90deg);transform-origin:center}.dads-progress-indicator__spinner[data-indeterminate] g{animation:dads-spinner-rotate 13s linear infinite}.dads-progress-indicator__spinner[data-indeterminate] g>g{animation:dads-spinner-group-rotate 2.5s linear infinite}.dads-progress-indicator__spinner[data-indeterminate] .dads-progress-indicator__bar{animation:dads-spinner-bar-rotate 2.5s cubic-bezier(.4,0,.3,1) infinite,dads-spinner-bar-dash 2.5s cubic-bezier(.4,0,.3,1) infinite}@keyframes dads-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dads-spinner-group-rotate{0%{transform:rotate(0)}30%{transform:rotate(135deg)}to{transform:rotate(180deg)}}@keyframes dads-spinner-bar-rotate{0%{transform:rotate(0)}4%{transform:rotate(0)}30%{transform:rotate(360deg);animation-timing-function:cubic-bezier(.5,.4,.3,.9)}to{transform:rotate(540deg)}}@keyframes dads-spinner-bar-dash{0%{stroke-dasharray:8 92;stroke-dashoffset:4}30%{stroke-dasharray:80 20;stroke-dashoffset:40}to{stroke-dasharray:8 92;stroke-dashoffset:4}}.dads-progress-indicator__linear .dads-progress-indicator__bar{stroke-dasharray:100}.dads-progress-indicator__linear[data-indeterminate] .dads-progress-indicator__bar{stroke-dasharray:35 65;animation:dads-linear-rotate 4s linear infinite}.dads-progress-indicator__static{color:var(--color-key-1200)}@keyframes dads-linear-rotate{0%{stroke-dashoffset:100}to{stroke-dashoffset:-100}}@media(prefers-reduced-motion:reduce){.dads-progress-indicator__spinner,.dads-progress-indicator__spinner *,.dads-progress-indicator__linear,.dads-progress-indicator__linear *{animation:none!important}}.dads-progress-indicator__percentage span{display:inline-block;min-width:2ch;text-align:right;letter-spacing:0;font-variant-numeric:tabular-nums}@media(forced-colors:active){.dads-progress-indicator__track{color:Canvas}.dads-progress-indicator__bar,.dads-progress-indicator__border,.dads-progress-indicator__static{color:CanvasText}}',Ih='.mokkun-v2{min-height:100%;background-color:var(--color-neutral-white);color:var(--color-neutral-solid-gray-800);font-family:var(--font-family-sans);font-size:1rem;line-height:1.7}.mokkun-v2 [hidden]{display:none!important}:where(.mokkun-v2) p{margin:0;color:inherit}:where(.mokkun-v2) :is(h1,h2,h3,h4,h5,h6){margin:0;font-weight:inherit;line-height:inherit}.mokkun-v2 .dads-input-text__input[type=number]{font-family:var(--font-family-sans)}.mokkun-v2 .dads-form-control-label__support-text,.mokkun-v2 .mk2-section__purpose{color:var(--color-neutral-solid-gray-600)}.mk2-header{border-bottom:1px solid var(--color-neutral-solid-gray-420);background-color:var(--color-neutral-white)}.mk2-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;box-sizing:border-box;margin-inline:auto;padding:12px 24px;max-width:1120px}.mk2-header__brand{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px}.mk2-header__system{color:var(--color-neutral-solid-gray-600);font-size:.875rem}.mk2-header__app{color:var(--color-neutral-solid-gray-900);font-weight:700;font-size:1.25rem}.mk2-header__utility{display:flex;align-items:center;flex-wrap:wrap;gap:4px 24px}.mk2-header__meta{display:inline-flex;align-items:center;gap:4px;font-size:1rem}.mk2-header__meta .dads-utility-link__label{text-decoration:none}.mk2-globalnav{border-top:1px solid var(--color-neutral-solid-gray-200)}.mk2-globalnav .dads-horizontal-menu{box-sizing:border-box;margin-inline:auto;border-bottom:0;padding-inline:4px;max-width:1120px}.mk2-submenu{position:absolute;top:100%;left:0;z-index:20;min-width:12.5rem;border:1px solid var(--color-neutral-solid-gray-420);border-radius:8px;background-color:var(--color-neutral-white);box-shadow:var(--elevation-2);padding-block:8px}.mk2-main{box-sizing:border-box;margin-inline:auto;padding:24px 24px 64px;max-width:1120px}.mk2-main>.dads-notification-banner{margin-bottom:24px}.mk2-main>.dads-breadcrumb{margin-bottom:16px}.mk2-view-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px 24px;margin-bottom:32px}.mk2-view-description{margin:0 0 24px;color:var(--color-neutral-solid-gray-800)}.mk2-main>.dads-step-navigation{margin-bottom:32px}.mk2-form{margin:0}.mk2-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:16px}.mk2-actions>.mk2-action--tertiary{margin-right:auto}.mk2-actions[data-placement=footer]{margin-top:40px}.mk2-sticky{position:sticky;bottom:0;z-index:10;margin-top:32px;background-color:var(--color-neutral-white);box-shadow:var(--elevation-1);padding:16px}.mk2-button--danger{--button-color: var(--color-semantic-error-1);--button-hover-color: var(--color-semantic-error-2);--button-active-color: var(--color-primitive-red-1000);--button-outline-hover-bg-color: var(--color-primitive-red-100);--button-outline-active-bg-color: var(--color-primitive-red-200)}.mk2-toc{margin-bottom:8px}.mk2-section{margin-top:32px;border-top:1px solid var(--color-neutral-solid-gray-200);padding-top:32px}.mk2-section:not([hidden]):first-child,[hidden]:first-child+.mk2-section:not([hidden]),[hidden]:first-child+[hidden]+.mk2-section:not([hidden]){margin-top:0;border-top:0;padding-top:0}.mk2-sections>.mk2-accordion-group:first-child{margin-top:0}.mk2-section__purpose{margin:8px 0 0;color:var(--color-neutral-solid-gray-600)}.mk2-section__note{margin:8px 0 0}.mk2-section .mk2-fields,.mk2-section .mk2-repeatable,.mk2-section .mk2-list,.mk2-section .dads-description-list{margin-top:24px}.mk2-section .dads-accordion__content>:first-child{margin-top:0}.mk2-fields{display:grid;grid-template-columns:repeat(var(--mk2-columns, 1),minmax(0,1fr));gap:24px}.mk2-fields[data-columns="2"]{--mk2-columns: 2}.mk2-fields[data-columns="3"]{--mk2-columns: 3}.mk2-fields>*{min-width:0}.mk2-fields>[data-component=textarea],.mk2-fields>[data-component=file],.mk2-fields>[data-component=photo_grid],.mk2-fields>[data-component=timeline],.mk2-fields>[data-component=map]{grid-column:1 / -1}@media(max-width:720px){.mk2-fields{grid-template-columns:minmax(0,1fr)}}.dads-form-control-label[data-inline] .dads-form-control-label__field{display:flex;flex-wrap:wrap;gap:8px 24px}.mk2-with-unit{display:inline-flex;align-items:center;gap:8px}.mk2-unit{white-space:nowrap}.mk2-repeat-groups{display:grid;gap:16px;margin-bottom:16px}.mk2-repeat-group{border:1px solid var(--color-neutral-solid-gray-420);border-radius:8px;background-color:var(--color-neutral-white);padding:16px 24px 24px}.mk2-repeat-group__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.mk2-list__search{margin-bottom:16px;max-width:22.5rem}.mk2-list .dads-table{overflow-x:auto}.mk2-list .dads-page-navigation{margin-top:16px}.mk2-empty{margin-block:16px}.mk2-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 16px;padding:0;list-style:none}.mk2-photo-grid[data-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.mk2-photo-grid[data-columns="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.mk2-photo img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}.mk2-map-placeholder{display:flex;align-items:center;justify-content:center;min-height:15rem;background-color:var(--color-neutral-solid-gray-50);color:var(--color-neutral-solid-gray-600)}.mk2-fields>.dads-form-control-label{align-content:start}.mk2-fields :is(.dads-input-text__input,.dads-textarea__textarea,.dads-select,.dads-select__control,.dads-select__select){width:100%}.mk2-fields>[data-width=xs]{--mk2-field-width: 6rem}.mk2-fields>[data-width=sm]{--mk2-field-width: 10rem}.mk2-fields>[data-width=md]{--mk2-field-width: 20rem}.mk2-fields>[data-width=lg]{--mk2-field-width: 30rem}.mk2-fields>[data-width=full]{--mk2-field-width: 100%;grid-column:1 / -1}.mk2-fields>[data-width] :is(.dads-input-text,.dads-textarea,.dads-select){display:block;max-width:100%;width:var(--mk2-field-width)}.mk2-fields>[data-width] :is(.dads-input-text__input,.dads-textarea__textarea,.dads-select__control,.dads-select__select){width:100%}.mk2-with-unit{display:flex}.mk2-with-unit>.dads-input-text{flex:1}.mk2-accordion-group{margin-top:32px}.mk2-accordion-group>.dads-accordion.mk2-section{margin-top:0;border-top:0;padding-top:0}.mk2-section .dads-disclosure__content,.mk2-accordion-group .dads-accordion__content{padding-top:8px}.mk2-section__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px}.mk2-section__actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px}.mk2-section__actions+.mk2-section__purpose,.mk2-section .dads-disclosure__content>.mk2-section__actions,.mk2-accordion-group .dads-accordion__content>.mk2-section__actions{margin-top:8px}.mk2-list__controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;margin-bottom:16px}.mk2-list__controls>.mk2-list__search{margin-bottom:0;flex:1 1 auto}.mk2-list__bulk{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-left:auto}.mk2-list .dads-table__table :is(td,th).mk2-cell--number{text-align:right;font-variant-numeric:tabular-nums}.mk2-cell-input{min-width:5.5rem}.mk2-cell-input[data-width=xs]{width:6rem}.mk2-cell-input[data-width=sm]{width:10rem}.mk2-cell-input[data-width=md]{width:14rem}.mk2-cell-input[data-width=lg],.mk2-cell-input[data-width=full],.mk2-cell-input .dads-input-text,.mk2-cell-input .dads-select{width:100%}.mk2-links{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0;padding:0;list-style:none}.mk2-timeline__time{color:var(--color-neutral-solid-gray-600)}.mk2-loading{padding-block:64px}.mk2-list .dads-table__sort-header.mk2-cell--number .dads-table__sort-inner{justify-content:flex-end}.mk2-list td:has(>:is(.dads-checkbox,.dads-radio)){vertical-align:middle}.mk2-list td>:is(.dads-checkbox,.dads-radio):is([data-size]){padding-block:0;align-content:center}.mk2-sticky[data-compact]{width:fit-content;margin-left:auto;padding:12px 16px;border-radius:.5rem}.mokkun-v2 .dads-notification-banner__heading-text{text-wrap:pretty}',Jt="mokkun-v2-styles";let rt=0;function Sh(){if(typeof document>"u"||document.getElementById(Jt))return;const t=document.createElement("style");t.id=Jt,t.textContent=`${Eh}
805
+ ${Ih}`,document.head.appendChild(t)}function Hn(){rt+=1,Sh();let t=!1;return()=>{var e;t||(t=!0,rt=Math.max(0,rt-1),rt===0&&typeof document<"u"&&((e=document.getElementById(Jt))==null||e.remove()))}}function Xt(t,e){return(e??[]).filter(i=>it(i.role,t.role))}function Fn(t,e){return Xt(e,t.actions)}function Vn(t,e){return Xt(e,t.bulkActions)}function ei(t){const{primaryAction:e,secondaryActions:i}=t.view,a=(e==null?void 0:e.placement)??"footer",n=[];e&&it(e.role,t.role)&&n.push({action:e,primary:!0,placement:e.placement??"footer"});for(const r of Xt(t,i))n.push({action:r,primary:!1,placement:r.placement??a});return n}function Lh(t){const e=ei(t).map(i=>i.action);for(const i of t.view.sections)e.push(...Fn(i,t)),i.list&&e.push(...Vn(i.list,t));return e}function Bn(t,e){return se(t,"dialog",e.id)}function Nh(t){return t.primary?"solid-fill":t.action.style==="tertiary"?"text":"outline"}function ti(t,e,i,a,n={}){const r=["dads-button",e.style==="danger"?"mk2-button--danger":"",i==="text"?"mk2-action--tertiary":""].filter(Boolean);return`<button${E({type:"button",class:r.join(" "),"data-type":i,"data-size":a,"data-action":e.id,"data-action-kind":e.kind??"submit","data-navigate-to":e.kind==="navigate"?e.to:void 0,"data-confirm":e.confirm?Bn(t,e):void 0,"aria-haspopup":e.confirm?"dialog":void 0,...n})}>${v(e.label)}</button>`}function Th(t,e,i){return ti(t,e,e.style==="tertiary"?"text":"outline","md",{"data-section":i})}function zh(t,e){return ti(t,e.action,Nh(e),e.primary?"lg":"md")}function jn(t){return t.primary?2:t.action.style==="tertiary"?0:1}function ii(t,e){const i=ei(t).filter(a=>a.placement===e).map((a,n)=>({a,i:n})).sort((a,n)=>jn(a.a)-jn(n.a)||a.i-n.i).map(a=>a.a);return i.length===0?"":`<div class="mk2-actions" data-placement="${e}">
806
+ ${i.map(a=>zh(t,a)).join(`
807
+ `)}
808
+ </div>`}function Dh(t){return Lh(t).filter(e=>e.confirm).map(e=>{const i=Bn(t,e),a=e.confirm;return`<dialog id="${v(i)}" class="dads-modal-dialog" aria-labelledby="${v(i)}-title" data-dialog-for="${v(e.id)}">
809
+ <div class="dads-modal-dialog__dialog">
810
+ <div class="dads-modal-dialog__header">
811
+ <h2 id="${v(i)}-title" class="dads-modal-dialog__heading" tabindex="-1">${v(e.label)}</h2>
812
+ <button class="dads-modal-dialog__close" type="button" data-dialog-close>${Nu}閉じる</button>
698
813
  </div>
699
- `}function Hr(t,e){if(!e.sections||e.sections.length===0)return null;const i=t.querySelector("#section-nav-container");if(!i)return null;const n=e.sections.map((a,r)=>({id:Ai(a.section_name,r),label:a.section_name,icon:a.icon})),s=new xi({sections:n,scrollOffset:120,mobileMode:"scroll",stickyTop:"60px"},i);return s.render(),{getActiveSection:()=>s.getActiveSection(),scrollToSection:a=>s.scrollToSection(a),destroy:()=>s.destroy()}}function zr(t,e,i=0){let n=i;function s(){t.innerHTML=Ei(e,n),a()}function a(){t.querySelectorAll(".wizard-next").forEach(r=>{r.addEventListener("click",()=>{e.wizard&&n<e.wizard.steps.length-1&&(n++,s())})}),t.querySelectorAll(".wizard-back").forEach(r=>{r.addEventListener("click",()=>{n>0&&(n--,s())})})}return s(),{getCurrentStep:()=>n,goToStep:r=>{e.wizard&&r>=0&&r<e.wizard.steps.length&&(n=r,s())},nextStep:()=>{e.wizard&&n<e.wizard.steps.length-1&&(n++,s())},prevStep:()=>{n>0&&(n--,s())}}}class Br{constructor(e,i={},n=new Map){h(this,"container");h(this,"callbacks");h(this,"deleteConfirmConfigs");h(this,"boundClickHandler");this.container=e,this.callbacks=i,this.deleteConfirmConfigs=n,this.boundClickHandler=this.handleClick.bind(this)}attach(){this.container.addEventListener("click",this.boundClickHandler)}detach(){this.container.removeEventListener("click",this.boundClickHandler)}registerDeleteConfirmConfig(e,i){this.deleteConfirmConfigs.set(e,i)}handleClick(e){const n=e.target.closest("[data-action-id]");if(!n)return;const s=n.dataset.actionId,a=n.dataset.actionType;if(!s||!a)return;const r=n.dataset.confirmTitle,o=n.dataset.confirmMessage;if(r&&o){e.preventDefault(),this.showConfirmDialog(n,s,a,r,o);return}this.executeAction(n,s,a)}async showConfirmDialog(e,i,n,s,a){const r=this.deleteConfirmConfigs.get(i);let o;if(r!=null&&r.getDependencies){const u=r.getDependencies();o=u instanceof Promise?await u:u}let l=a;r!=null&&r.getTargetName&&(l=r.getTargetName());const d={title:s,targetName:l,targetType:r==null?void 0:r.targetType,dependencies:o,warningMessage:r==null?void 0:r.warningMessage,danger:!0};new Ci(d,{onConfirm:()=>{this.executeAction(e,i,n)},onCancel:()=>{var u,f;(f=(u=this.callbacks).onCancel)==null||f.call(u,i)}}).open()}executeAction(e,i,n){var s,a,r,o,l,d,p,u;switch(n){case"submit":{const f=e.dataset.url,g=e.dataset.method;(a=(s=this.callbacks).onSubmit)==null||a.call(s,i,f,g);break}case"navigate":{const f=e.dataset.navigateTo;f&&((o=(r=this.callbacks).onNavigate)==null||o.call(r,i,f));break}case"custom":{const f=e.dataset.handler;f&&((d=(l=this.callbacks).onCustom)==null||d.call(l,i,f));break}case"reset":{(u=(p=this.callbacks).onReset)==null||u.call(p,i);break}}}}function Rr(t,e={},i){const n=new Br(t,e,i);return n.attach(),n}const Si=[".yaml",".yml"],Li=["https:","http:"];function Pr(t){const e=t.toLowerCase();return Si.some(i=>e.endsWith(i))}function Vr(t){return{type:"INVALID_FILE_TYPE",message:`無効なファイル形式: ${t}`,details:`YAMLファイル(${Si.join(", ")})のみ対応しています`}}function jr(t,e,i){const n=Ue(t);return n.success?{success:!0,schema:n.data,fileName:e,source:i}:{success:!1,error:{type:"YAML_PARSE_ERROR",message:"YAMLのパースに失敗しました",details:va(n.errors),parseErrors:n.errors}}}async function Ur(t){const e=new URL(t,window.location.href),i=e.pathname.split("/"),n=i[i.length-1]||"unknown.yaml";if(!Li.includes(e.protocol))return{success:!1,error:{type:"FETCH_ERROR",message:"無効なURLプロトコル",details:`許可されているプロトコル: ${Li.join(", ")}`}};if(!Pr(n))return{success:!1,error:Vr(n)};try{const s=await fetch(t);if(!s.ok)return{success:!1,error:{type:"FETCH_ERROR",message:`ファイルの取得に失敗しました: ${t}`,details:`HTTPステータス: ${s.status} ${s.statusText}`}};const a=await s.text();return jr(a,n,"url")}catch(s){const a=s instanceof Error?s.message:String(s);return{success:!1,error:{type:"NETWORK_ERROR",message:`ネットワークエラー: ${t}`,details:a}}}}const Xe="mokkun-theme",$i="data-theme",et="mokkun-theme-change",qr=[{id:"lofi",name:"ローファイ",description:"ワイヤフレーム風のスケッチスタイル",isBuiltIn:!0},{id:"light",name:"ライト",description:"デフォルトの明るいテーマ",isBuiltIn:!0},{id:"dark",name:"ダーク",description:"目に優しいダークテーマ",isBuiltIn:!0}],tt="lofi";class Wr{constructor(){h(this,"themes");h(this,"currentThemeId");h(this,"config");h(this,"customStyleElement");this.themes=new Map,this.currentThemeId=null,this.config=null,this.customStyleElement=null,qr.forEach(e=>{this.themes.set(e.id,e)})}initialize(){var n;const e=this.getSavedTheme(),i=e&&this.themes.has(e)?e:((n=this.config)==null?void 0:n.default_theme)??tt;this.applyTheme(i)}loadConfig(e){try{this.config=ai(e),this.config.custom_themes&&this.config.custom_themes.forEach(i=>{const n={id:i.id,name:i.name,description:i.description,isBuiltIn:!1,cssVariables:i.css_variables};this.themes.set(n.id,n)})}catch(i){console.error("Failed to load theme config:",i)}}getAvailableThemes(){return Array.from(this.themes.values())}getCurrentTheme(){return this.currentThemeId}getTheme(e){return this.themes.get(e)}hasTheme(e){return this.themes.has(e)}applyTheme(e){const i=this.themes.get(e);if(!i)return console.warn(`Theme not found: ${e}`),!1;const n=this.currentThemeId;return document.documentElement.setAttribute($i,e),!i.isBuiltIn&&i.cssVariables?this.applyCustomVariables(i.cssVariables):this.removeCustomVariables(),this.currentThemeId=e,this.saveTheme(e),this.dispatchThemeChangeEvent(n,e),!0}applyCustomVariables(e){this.removeCustomVariables();const i=Object.entries(e).map(([s,a])=>` ${s}: ${a};`).join(`
700
- `),n=`[${$i}] {
814
+ <div class="dads-modal-dialog__body">
815
+ <p>${v(a.message)}</p>
816
+ </div>
817
+ <div class="dads-modal-dialog__actions">
818
+ <button class="dads-button" type="button" data-size="lg" data-type="outline" data-dialog-close>キャンセル</button>
819
+ <button class="${a.danger?"dads-button mk2-button--danger":"dads-button"}" type="button" data-size="lg" data-type="solid-fill" data-dialog-confirm>${v(e.label)}</button>
820
+ </div>
821
+ </div>
822
+ </dialog>`}).join(`
823
+ `)}function Oh(t){const e=t.trim();if(e==="image/*")return"画像";const i=/^[a-z]+\/([a-z0-9.+-]+)$/i.exec(e);return i?i[1].replace(/^x-/,"").toUpperCase():e.replace(/^\./,"").toUpperCase()}function Rn(t){return Array.isArray(t)?t:t.split(",").map(e=>e.trim()).filter(Boolean)}function Mh(t){if(t!==void 0)return typeof t=="string"&&Object.hasOwn(qa,t)?qa[t]:Rn(t).join(",")}function Hh(t){if(t!==void 0)return typeof t=="string"&&Object.hasOwn(Wa,t)?Wa[t]:[...new Set(Rn(t).map(Oh))].join("・")}function Fh(t){var e;return t.multiple===!0||((e=t.props)==null?void 0:e.multiple)===!0}function Vh(t){const e=(t.help??"").replace(/\s/g,""),i=Hh(t.accept),a=[];return i&&(e.includes("形式")||i.split("・").some(r=>e.toUpperCase().includes(r.toUpperCase()))||a.push(`形式: ${i}`)),t.maxSize&&(e.toUpperCase().includes(t.maxSize.toUpperCase())||e.includes("1ファイル")||a.push(`1ファイル ${t.maxSize} まで`)),a.length>0?a.join("/"):void 0}function Pn(t,e){var o;const i=Un(t),a=e.showError!==!1&&typeof((o=t.props)==null?void 0:o.error)=="string"&&t.props.error?t.props.error:void 0,n=i.length>0?`${e.domId}-support`:void 0,r=a?`${e.domId}-error`:void 0,s=[r,n].filter(Boolean).join(" ");return{f:t,domId:e.domId,name:e.name,hidden:e.hidden===!0,required:e.required??t.required===!0,supportId:n,errorId:r,error:a,describedBy:s||void 0,value:t.value!==void 0?t.value:t.default}}function Un(t){const e=[];t.help&&e.push(t.help);const i=t.component==="file"||t.component==="photo_grid"?Vh(t):void 0;return i&&e.push(i),t.whyRequired&&e.push(t.whyRequired),t.format&&e.push(`入力形式: ${t.format}`),t.example&&e.push(`例: ${t.example}`),e}function ai(t){return E({"aria-invalid":t.error?"true":void 0,"aria-describedby":t.describedBy})}function ni(t,e){return t.readonly?'<span class="dads-form-control-label__status">編集不可</span>':e?'<span class="dads-form-control-label__requirement" data-required="true">※必須</span>':'<span class="dads-form-control-label__requirement" data-required="false">※任意</span>'}function Bh(t){return!t.links||t.links.length===0?"":`
824
+ <ul class="mk2-links">${t.links.map(i=>{const a=Ut(i.href),n=/^https?:/i.test(a);return`<li><a${E({class:"dads-link",href:a,target:n?"_blank":void 0,rel:n?"noopener noreferrer":void 0})}>${v(i.label)}${n?` ${ju}`:""}</a></li>`}).join("")}</ul>`}function st(t){return(t.supportId?`
825
+ <p id="${v(t.supportId)}" class="dads-form-control-label__support-text">${Un(t.f).map(v).join("<br>")}</p>`:"")+Bh(t.f)}function ot(t){const e=t.f.visibleWhen;return E({"data-size":"md","data-field":t.f.item,"data-component":t.f.component,"data-multiple":t.f.multiple===!0,"data-width":t.f.width,"data-visible-when":e?Wt(e):void 0,"data-required-when":t.f.requiredWhen?Wt(t.f.requiredWhen):void 0,hidden:t.hidden})}function qn(t){return t.error?`<p id="${v(t.errorId)}" class="dads-form-control-label__error-text">${v(t.error)}</p>`:""}function ee(t,e){return`<div class="dads-form-control-label"${ot(t)}>
826
+ <label class="dads-form-control-label__label" for="${v(t.domId)}">
827
+ ${v(t.f.label)}
828
+ ${ni(t.f,t.required)}
829
+ </label>${st(t)}
830
+ <div class="dads-form-control-label__field">
831
+ ${e}
832
+ </div>
833
+ </div>`}function lt(t,e,i={},a={}){return`<fieldset class="dads-form-control-label"${ot(t)}${E({"aria-describedby":t.describedBy,...i})}>
834
+ <legend class="dads-form-control-label__legend">
835
+ <span class="dads-form-control-label__label">
836
+ ${v(t.f.label)}
837
+ ${ni(t.f,t.required)}
838
+ </span>
839
+ </legend>${st(t)}
840
+ <div class="dads-form-control-label__field">
841
+ ${e}
842
+ ${a.skipError?"":qn(t)}
843
+ </div>
844
+ </fieldset>`}function ri(t,e){return`<div class="dads-form-control-label"${ot(t)}>
845
+ <p class="dads-form-control-label__label" id="${v(t.domId)}-label">${v(t.f.label)}</p>${st(t)}
846
+ <div class="dads-form-control-label__field">
847
+ ${e}
848
+ </div>
849
+ </div>`}function Wn(t,e){return`<div class="dads-form-control-label"${ot(t)}>${st(t)}
850
+ <div class="dads-form-control-label__field">
851
+ ${e}
852
+ ${qn(t)}
853
+ </div>
854
+ </div>`}function jh(t){return ni(t.f,t.required)}function Rh(t){return Array.isArray(t)?t.map(A):t==null||t===""?[]:[A(t)]}function Ph(t,e){const i=A(t.value);return e.map((a,n)=>`<label class="dads-radio" data-size="md">
855
+ <span class="dads-radio__radio">${`<input${E({id:`${t.domId}-${n+1}`,class:"dads-radio__input",type:"radio",name:t.name,value:A(a.value),checked:i!==""&&A(a.value)===i,required:t.required&&n===0,disabled:t.f.readonly===!0,"aria-invalid":t.error?"true":void 0})}>`}</span>
856
+ <span class="dads-radio__label">${v(a.label)}</span>
857
+ </label>`).join(`
858
+ `)}function Uh(t,e){const i=Rh(t.value);return e.map((a,n)=>`<label class="dads-checkbox" data-size="md">
859
+ <span class="dads-checkbox__checkbox">${`<input${E({id:`${t.domId}-${n+1}`,class:"dads-checkbox__input",type:"checkbox",name:t.name,value:A(a.value),checked:i.includes(A(a.value)),disabled:t.f.readonly===!0,"aria-invalid":t.error?"true":void 0})}>`}</span>
860
+ <span class="dads-checkbox__label">${v(a.label)}</span>
861
+ </label>`).join(`
862
+ `)}function Yn(t,e=!1){return lt(t,Ph(t,t.f.options??[]),e?{"data-inline":!0}:{})}function Gn(t){return lt(t,Uh(t,t.f.options??[]))}function qh(t){if(t.f.multiple)return Gn(t);const e=t.value===!0||A(t.value)==="true",a=`<label class="dads-checkbox" data-size="md">
863
+ <span class="dads-checkbox__checkbox">${`<input${E({id:t.domId,class:"dads-checkbox__input",type:"checkbox",name:t.name,value:"true",checked:e,required:t.required,disabled:t.f.readonly===!0,"aria-invalid":t.error?"true":void 0,"aria-describedby":t.describedBy})}>`}</span>
864
+ <span class="dads-checkbox__label">${v(t.f.label)} ${jh(t)}</span>
865
+ </label>`;return Wn(t,a)}function Kn(t){const e=/^(\d{4})-(\d{1,2})(?:-(\d{1,2}))?/.exec(typeof t=="string"?t:"");return e?{y:e[1],m:e[2].padStart(2,"0"),d:e[3]?e[3].padStart(2,"0"):""}:void 0}function Wh(t,e){return t.f.autocomplete==="bday"?`bday-${e}`:void 0}function si(t,e,i,a){return`<label class="dads-date-picker__${e}">
866
+ <span class="dads-date-picker__label">${i}</span>
867
+ <input${E({id:`${t.domId}-${e}`,class:"dads-date-picker__input",type:"text",name:`${t.name}.${e}`,value:a||void 0,inputmode:"numeric",autocomplete:Wh(t,e),pattern:"[0-9]+",readonly:t.f.readonly===!0,required:t.required,[`data-js-${e}-input`]:!0})}${E({"aria-invalid":t.error?"true":void 0,"aria-describedby":t.errorId})}>
868
+ </label>`}function Yh(t){var s;const e=Kn(t.value),i=t.f.precision==="month",a=E({"data-error":!!t.error,"data-readonly":t.f.readonly===!0}),n=t.error?`
869
+ <p id="${v(t.errorId)}" class="dads-date-picker__error-text">${v(t.error)}</p>`:"",r=((s=t.f.props)==null?void 0:s.calendar)===!0&&!i?`
870
+ <button${E({class:"dads-date-picker__calendar-button",type:"button","aria-disabled":"true","data-js-calendar-button":!0})}>${Bu}</button>`:"";return lt(t,`<dads-date-picker class="dads-date-picker" data-type="consolidated">
871
+ <div class="dads-date-picker__controls" data-size="md">
872
+ <div class="dads-date-picker__inputs"${a}>
873
+ ${si(t,"year","年",(e==null?void 0:e.y)??"")}
874
+ ${si(t,"month","月",(e==null?void 0:e.m)??"")}${i?"":`
875
+ ${si(t,"day","日",(e==null?void 0:e.d)??"")}`}
876
+ </div>${r}
877
+ </div>${n}
878
+ </dads-date-picker>`,{"aria-describedby":t.supportId},{skipError:!0})}const Gh=["日","月","火","水","木","金","土"];function Kh(t){const e=Kn(t.value),i=new Date,a=e?Number(e.y):i.getFullYear(),n=(e?Number(e.m):i.getMonth()+1)-1,r=e?Number(e.d):0,s=new Date(a,n,1).getDay(),o=new Date(a,n+1,0).getDate(),l=[];let d=1-s;for(;d<=o;){const h=[];for(let m=0;m<7;m++,d++){if(d<1||d>o){h.push('<td class="dads-calendar__data-cell" role="gridcell"></td>');continue}const f=`${a}年${n+1}月${d}日`,b=d===r;h.push(`<td class="dads-calendar__data-cell" role="gridcell"${E({"aria-selected":b?"true":void 0})}><button${E({class:"dads-calendar__date",type:"button","aria-label":b?`選択中 ${f}`:f,"data-selected":b?"true":void 0})}>${d}</button></td>`)}l.push(`<tr>${h.join("")}</tr>`)}const u=(h,m)=>`<button class="dads-button dads-calendar__nav-button" type="button" data-size="sm" data-type="outline" aria-disabled="true" data-${h}>${m}</button>`;return lt(t,`<div class="dads-calendar" role="application" aria-label="${a}年${n+1}月">
879
+ <div class="dads-calendar__controls">
880
+ <div class="dads-calendar__navigation">
881
+ ${u("prev",Mu)}
882
+ <p class="dads-calendar__current-month">${a}年${n+1}月</p>
883
+ ${u("next",Hu)}
884
+ </div>
885
+ </div>
886
+ <table class="dads-calendar__table" role="grid" aria-label="${a}年${n+1}月">
887
+ <thead><tr>${Gh.map(h=>`<th class="dads-calendar__header-cell" scope="col">${h}</th>`).join("")}</tr></thead>
888
+ <tbody>${l.join("")}</tbody>
889
+ </table>
890
+ </div>`)}function Zh(t){return t.f.inline?Kh(t):Yh(t)}const Qh={default:"gray",gray:"gray",primary:"blue",blue:"blue",info:"light-blue",success:"green",green:"green",warning:"yellow",yellow:"yellow",danger:"red",red:"red"};function Zn(t){var n;const e=t.f.variant??(typeof((n=t.f.props)==null?void 0:n.color)=="string"?t.f.props.color:"default"),i=Qh[e]??"gray",a=t.f.value!==void 0?A(t.f.value):t.f.label;return`<span class="dads-chip-label" data-style="outlined" data-color="${i}">${v(a)}</span>`}function Jh(t){return t.f.value!==void 0?ri(t,Zn(t)):Wn(t,Zn(t))}function Xh(t){var e;return Array.isArray(t.value)?at(t.value,"label").map(i=>({time:i.at===void 0||i.at===null?"":A(i.at),title:i.label,description:typeof i.text=="string"&&i.text?i.text:void 0})):at((e=t.props)==null?void 0:e.items,"title").map(i=>({time:typeof i.time=="string"?i.time:"",title:i.title,description:i.description}))}function Qn(t,e){const i=Xh(t).map(a=>`<li class="mk2-timeline__item">${a.time?`<time class="mk2-timeline__time">${v(a.time)}</time> `:""}<strong class="mk2-timeline__label">${v(a.title)}</strong>${a.description?`<br><span class="mk2-timeline__text">${v(a.description)}</span>`:""}</li>`).join(`
891
+ `);return`<ol class="dads-list" data-spacing="8"${e?` aria-labelledby="${v(e)}"`:""}>
892
+ ${i}
893
+ </ol>`}function ep(t){return ri(t,Qn(t.f,`${t.domId}-label`))}function tp(t){var i;const e=typeof((i=t.f.props)==null?void 0:i.height)=="string"&&/^\d+(px|rem|%)$/.test(t.f.props.height)?t.f.props.height:void 0;return ri(t,`<figure class="dads-image">
894
+ <div class="dads-image__image-area" data-bordered>
895
+ <div class="mk2-map-placeholder" role="img" aria-label="${v(t.f.label)}の地図"${e?` style="min-height:${e}"`:""}>地図</div>
896
+ </div>
897
+ </figure>`)}function Jn(t,e,i){const a=t.domId,n=`${t.domId}-selected`,r=`${t.domId}-label`,s=[n,t.errorId,t.supportId].filter(Boolean).join(" ");return`<dads-file-upload class="dads-file-upload">
898
+ <input${E({id:a,class:"dads-file-upload__input",type:"file",name:t.name,multiple:i,accept:Mh(e),"data-max-size":t.f.maxSize,"data-js-input":!0})}>
899
+ <div class="dads-file-upload__inner">
900
+ <div class="dads-file-upload__drop-area" data-js-drop-area>
901
+ <div class="dads-file-upload__button-area">
902
+ <button${E({id:`${t.domId}-button`,class:"dads-button",type:"button","data-type":"outline","data-size":"md","aria-labelledby":`${r} ${t.domId}-button`,"aria-describedby":s,"data-js-select-button":!0})}>ファイルを選択</button>
903
+ <p>または、このエリア内にドラッグ&ドロップ</p>
904
+ </div>
905
+ <p id="${v(n)}" class="dads-file-upload__select-summary" data-js-select-summary></p>
906
+ <ul${E({id:t.errorId,class:"dads-file-upload__error-messages","data-js-error-messages":!0})}>${t.error?`<li>${v(t.error)}</li>`:""}</ul>
907
+ </div>
908
+ <p class="dads-file-upload__empty-message" data-js-empty-message>ファイルが選択されていません</p>
909
+ <ul class="dads-file-upload__file-list" data-js-file-list hidden></ul>
910
+ </div>
911
+ </dads-file-upload>`}function ip(t){return ee(t,Jn(t,t.f.accept,Fh(t.f))).replace('<label class="dads-form-control-label__label"',`<label id="${v(t.domId)}-label" class="dads-form-control-label__label"`)}function ap(t){var s;const e=Array.isArray((s=t.f.props)==null?void 0:s.photos)?t.f.props.photos:[],i=Me(t.f.props,"columns")??3,a=e.filter(o=>typeof(o==null?void 0:o.src)=="string").map(o=>`<li class="mk2-photo"><img src="${v(Ut(o.src))}" alt="${v(o.alt??"")}"></li>`).join(""),n=`<ul class="mk2-photo-grid" data-columns="${i}" aria-label="${v(t.f.label)}の一覧">${a}</ul>`;return ee(t,`${n}${Jn(t,t.f.accept??"image",!0)}`).replace('<label class="dads-form-control-label__label"',`<label id="${v(t.domId)}-label" class="dads-form-control-label__label"`)}function dt(t,e){return`<option${E({value:A(t.value),selected:e!==""&&A(t.value)===e})}>${v(t.label)}</option>`}function oi(t,e,i){const a=`<select${E({id:t.domId,class:"dads-select__select",name:t.name,"data-size":"md",autocomplete:t.f.autocomplete,"aria-label":i,required:t.required,disabled:t.f.readonly===!0})}${ai(t)}>
912
+ <option value="">選択してください</option>
913
+ ${e}
914
+ </select>`,n=t.error?`
915
+ <span id="${v(t.errorId)}" class="dads-select__error-text">${v(t.error)}</span>`:"";return`<span class="dads-select">
916
+ <span class="dads-select__control">
917
+ ${a}
918
+ ${_n("dads-select__chevron")}
919
+ </span>${n}
920
+ </span>`}function np(t){if(t.f.multiple)return Gn(t);if(t.f.variant==="segmented")return Yn(t,!0);const e=A(t.value);return ee(t,oi(t,(t.f.options??[]).map(i=>dt(i,e)).join(`
921
+ `)))}function rp(t){var r;const e=at((r=t.f.props)==null?void 0:r.items,"label"),i=e.length>0?e:(t.f.options??[]).map(s=>({value:A(s.value),label:s.label})),a=A(t.value),n=i.map(s=>Array.isArray(s.children)&&s.children.length>0?`<optgroup label="${v(s.label)}">${at(s.children,"label").map(o=>dt(o,a)).join("")}</optgroup>`:dt(s,a)).join(`
922
+ `);return ee(t,oi(t,n))}function me(t,e){const i=`<input${E({id:t.domId,class:"dads-input-text__input",type:e.type,name:t.name,value:t.value===void 0||t.value===null?void 0:A(t.value),"data-size":"md",inputmode:e.inputmode,list:e.list,min:e.min,max:e.max,step:e.step,autocomplete:t.f.autocomplete,"aria-label":e.ariaLabel,required:t.required,readonly:t.f.readonly===!0})}${ai(t)}>`,a=t.error?`
923
+ <span id="${v(t.errorId)}" class="dads-input-text__error-text">${v(t.error)}</span>`:"",n=`<span class="dads-input-text">
924
+ ${i}${a}
925
+ </span>`;return e.unit?`<span class="mk2-with-unit">${n}<span class="mk2-unit">${v(e.unit)}</span></span>`:n}function sp(t){const e=wn(t.f.props,"inputType");return ee(t,me(t,{type:e&&["text","email","tel","url","password","search"].includes(e)?e:"text",unit:t.f.unit}))}function op(t){const e=t.f.props;return ee(t,me(t,{type:"number",inputmode:"numeric",min:Me(e,"min"),max:Me(e,"max"),step:Me(e,"step"),unit:t.f.unit}))}function lp(t){return ee(t,me(t,{type:"time",unit:t.f.unit}))}function dp(t){const e=t.f.unit??wn(t.f.props,"unit")??"分";return ee(t,me(t,{type:"number",inputmode:"numeric",min:0,unit:e}))}function cp(t){var r;const e=`${t.domId}-list`,i=(t.f.options??[]).map(s=>`<option value="${v(s.label)}"></option>`).join(""),a=(r=t.f.options)==null?void 0:r.find(s=>A(s.value)===A(t.value)),n=a?{...t,value:a.label}:t;return ee(t,`${me(n,{type:"text",list:e,unit:t.f.unit})}<datalist id="${v(e)}">${i}</datalist>`)}function up(t){const e=t.value===void 0||t.value===null?"":String(t.value),i=`<textarea${E({id:t.domId,class:"dads-textarea__textarea",name:t.name,rows:Me(t.f.props,"rows"),autocomplete:t.f.autocomplete,required:t.required,readonly:t.f.readonly===!0})}${ai(t)}>${v(e)}</textarea>`,a=t.error?`
926
+ <span id="${v(t.errorId)}" class="dads-textarea__error-text">${v(t.error)}</span>`:"";return ee(t,`<span class="dads-textarea">
927
+ ${i}${a}
928
+ </span>`)}function hp(t){const e=t.value===!0||A(t.value)==="true",i=`<button${E({id:t.domId,class:"dads-switch-on-off__button",type:"button",role:"switch","aria-checked":e?"true":"false","aria-describedby":t.describedBy,disabled:t.f.readonly===!0,"data-js-toggle":!0,"data-initial-checked":e?"true":"false"})}>
929
+ <span class="dads-switch-on-off__track" aria-hidden="true">
930
+ <span class="dads-switch-on-off__thumb">
931
+ ${Fu}
932
+ </span>
933
+ </span>
934
+ </button>`;return ee(t,`<dads-switch-on-off class="dads-switch-on-off">
935
+ ${i}
936
+ <input type="hidden" name="${v(t.name)}" value="${e?"true":"false"}" data-switch-value>
937
+ </dads-switch-on-off>${t.error?`<p id="${v(t.errorId)}" class="dads-form-control-label__error-text">${v(t.error)}</p>`:""}`)}function pp(t,e){const i=Pn(t,e);switch(t.component){case"text":return sp(i);case"number":return op(i);case"textarea":return up(i);case"date":return Zh(i);case"time":return lp(i);case"duration":return dp(i);case"file":return ip(i);case"photo_grid":return ap(i);case"select":return np(i);case"combobox":return cp(i);case"radio":return Yn(i);case"checkbox":return qh(i);case"toggle":return hp(i);case"browser":return rp(i);case"badge":case"chip":case"status":return Jh(i);case"timeline":return ep(i);case"map":return tp(i);default:return`<p class="dads-form-control-label__error-text" data-unknown-component="${v(t.component)}">未対応の component: ${v(t.component)}</p>`}}const Xn="__";function mp(t,e){return De(t,e.schema.patterns).map(i=>({...i.field,item:i.id}))}function er(t,e,i){const a=i===void 0?"":`${Xn}${i}`,n=mp(t,e).map(r=>pp(r,{domId:`${se(e,r.item)}${a}`,name:`${r.item}${a}`,hidden:!Gt(r.visibleWhen,e),showError:e.state==="error",required:r.requiredWhen?Gt(r.requiredWhen,e):r.required===!0})).join(`
938
+ `);return`<div class="mk2-fields" data-columns="${t.columns??1}">
939
+ ${n}
940
+ </div>`}function tr(t,e,i){const a=`${se(e,t.id,"group")}${Xn}${i}`;return`<div class="mk2-repeat-group" role="group" aria-labelledby="${v(a)}" data-repeat-group>
941
+ <div class="mk2-repeat-group__head">
942
+ <div class="dads-heading" data-size="20"><h3 id="${v(a)}" class="dads-heading__heading">#<span data-group-no>${i}</span></h3></div>
943
+ <button type="button" class="dads-button" data-type="outline" data-size="sm" data-repeat-remove aria-describedby="${v(a)}">削除</button>
944
+ </div>
945
+ ${er(t,e,i)}
946
+ </div>`}function fp(t,e){const i=t.repeatable??{},a=Math.max(0,i.min??1),n=Array.from({length:a},(r,s)=>tr(t,e,s+1)).join(`
947
+ `);return`<div class="mk2-repeatable"${E({"data-repeatable":t.id,"data-min":i.min??1,"data-max":i.max})}>
948
+ <div class="mk2-repeat-groups" data-repeat-groups>
949
+ ${n}
950
+ </div>
951
+ <template data-repeat-template>${tr(t,e,0)}</template>
952
+ <button type="button" class="dads-button" data-type="outline" data-size="md" data-repeat-add>${v(i.addLabel??"追加")}</button>
953
+ </div>`}function li(t,e=0){switch(t.type){case"text":return gp(t.input_type,t.id,e);case"number":return bp(t.min,t.max,e);case"textarea":return`Sample text content ${e+1}`;case"select":return ir(t.options);case"multi_select":return ar(t.options);case"radio_group":return ir(t.options);case"checkbox_group":return ar(t.options);case"date_picker":return vp(e);case"time_picker":return yp(e);case"duration_picker":return 3600;case"duration_input":return"01:00:00";case"file_upload":return null;case"repeater":return[];default:return null}}function gp(t,e,i){switch(t){case"email":return`user${i+1}@example.com`;case"url":return`https://example.com/page${i+1}`;case"tel":return`090-${String(1e3+i).padStart(4,"0")}-${String(1e3+i).padStart(4,"0")}`;case"password":return"password123";default:return`${_p(e)} ${i+1}`}}function bp(t,e,i){const a=t??1,n=e??100;return Math.min(a+i,n)}function vp(t){const e=new Date;return e.setDate(e.getDate()+t),e.toISOString().split("T")[0]}function yp(t){const e=(9+t)%24;return`${String(e).padStart(2,"0")}:00`}function ir(t){return typeof t=="string"?null:t.length>0?t[0].value:null}function ar(t){return typeof t=="string"?[]:t.length>0?[t[0].value]:[]}function _p(t){return t.charAt(0).toUpperCase()+t.slice(1).replace(/_/g," ")}const xp=3,wp=["処理中","出荷済み","完了"];function He(t){if(t.type==="status"||t.type==="date"||t.type==="number")return t.type;const e=`${t.id} ${t.label}`,i=t.type===void 0;return i&&/status|ステータス|状態/i.test(e)?"status":i&&(/date|日|時刻/i.test(e)||/(At|_at)$/.test(t.id))?"date":i&&/total|price|amount|qty|quantity|count|金額|単価|数量|合計|件数/i.test(e)?"number":/(Id|_id)$/.test(t.id)||t.id==="id"||/ID|番号/.test(t.label)?"id":"text"}function di(t,e,i={}){return{id:e,type:t,label:e,...i}}function kp(t,e){const i=t.id.toLowerCase(),a=[...e.fields.entries()].filter(([,s])=>{var o;return(((o=s.options)==null?void 0:o.length)??0)>0}),n=a.find(([s])=>s===t.id)??a.find(([s])=>s.toLowerCase().includes(i)),r=((n==null?void 0:n[1].options)??[]).filter(s=>A(s.value)!=="all"&&!s.label.startsWith("すべて")).map(s=>s.label);return r.length>0?r:void 0}function Cp(t,e,i){switch(He(t)){case"status":{const a=i&&kp(t,i)||wp;return a[e%a.length]}case"date":return String(li(di("date_picker",t.id),-e*3));case"number":return(Number(li(di("number",t.id,{min:12e3,max:9999999}),e))+e*8400).toLocaleString("ja-JP");case"id":return String(10230-e);default:return String(li(di("text",t.label),e))}}function $p(t,e){var i;for(const a of[t.id,t[((i=e[0])==null?void 0:i.id)??""]])if(typeof a=="string"&&a!==""||typeof a=="number")return String(a);return""}function Ap(t){const e=new Set,i=new Map;t.forEach(n=>i.set(n,(i.get(n)??0)+1)),t.forEach(n=>n!==""&&i.get(n)===1&&e.add(n));const a=new Set;return t.map((n,r)=>{if(n!==""&&!a.has(n))return a.add(n),n;let s=`${n}#${r}`;for(;e.has(s);)s+="#";return e.add(s),s})}function Ep(t,e){var o;const i=Array.isArray(t.rows)&&t.rows.length>0,a=i?t.rows:Array.from({length:xp},(l,d)=>Object.fromEntries(t.columns.map(u=>[u.id,u.field?void 0:Cp(u,d,e)]))),n=a.length;if(e.state==="empty")return{rows:[],total:0,given:i};const r=(o=t.paging)==null?void 0:o.pageSize,s=Ap(a.map(l=>$p(l,t.columns)));return{rows:a.map((l,d)=>({id:s[d],values:l,pageHidden:i&&r!==void 0&&d>=r})),total:n,given:i}}function nr(t){if(t instanceof Date&&!Number.isNaN(t.getTime()))return`${t.getUTCFullYear()}年${t.getUTCMonth()+1}月${t.getUTCDate()}日`;const e=/^(\d{4})-(\d{1,2})(?:-(\d{1,2}))?$/.exec(A(t).trim());return e?e[3]?`${e[1]}年${Number(e[2])}月${Number(e[3])}日`:`${e[1]}年${Number(e[2])}月`:A(t)}function Ip(t){if(typeof t=="number")return t.toLocaleString("ja-JP");const e=A(t).trim();return/^-?\d+(\.\d+)?$/.test(e)?Number(e).toLocaleString("ja-JP"):e}function Sp(t){const e=t.trim();return/^(不|非)(承認|承諾|可|合格|採用)|却下/.test(e)?"red":/^[未不非]|予定$|なし$/.test(e)?"gray":/待ち$/.test(e)||/間近|保留|注意|期限|差戻/.test(e)?"yellow":/要確認|要対応|エラー|欠品|失敗|取下|無効|廃番/.test(e)?"red":/済|完了|承認|内定|有効|適正|販売中|成功|受理/.test(e)?"green":/処理中|審査中|確認中|準備中|対応中|配送中|進行中/.test(e)?"light-blue":"gray"}function ci(t){return t==null||t===""}function Lp(t,e){return`<a${E({class:"dads-link",href:`#${t}`,"data-nav-view":t})}>${e}</a>`}function Np(t,e,i,a,n){const r=`${i.id}.${t.id}`,s={...e,item:t.id,label:t.label},o=`${t.label}(${i.id})`,l=ci(i.values[t.id])?e.default:i.values[t.id],d=Pn({...s,value:l},{domId:`${n}-r${a+1}-${t.id}`,name:r}),u=h=>`<div class="mk2-cell-input"${E({"data-width":e.width})}>${h}</div>`;switch(e.component){case"number":return u(me(d,{type:"number",inputmode:"numeric",unit:e.unit,ariaLabel:o}));case"select":{const h=A(d.value);return u(oi(d,(e.options??[]).map(m=>dt(m,h)).join(""),o))}case"checkbox":{const h=d.value===!0||A(d.value)==="true";return`<label class="dads-checkbox" data-size="md"><span class="dads-checkbox__checkbox">${`<input${E({id:d.domId,class:"dads-checkbox__input",type:"checkbox",name:r,value:"true",checked:h,"aria-label":o})}>`}</span></label>`}default:return u(me(d,{type:"text",unit:e.unit,ariaLabel:o}))}}function Tp(t,e){if(ci(e))return"";const i=He(t);let a;if(i==="status"){const n=A(e);a=`<span class="dads-chip-label" data-style="outlined" data-color="${Sp(n)}">${v(n)}</span>`}else i==="date"?a=v(nr(e)):i==="number"?a=v(Ip(e)):a=v(A(e));return t.to?Lp(t.to,a):a}function zp(t,e){if(ci(e))return;const i=He(t);if(i==="number"){const a=Number(A(e).replace(/,/g,""));return Number.isFinite(a)?String(a):void 0}if(i==="date")return e instanceof Date?e.toISOString().slice(0,10):A(e)}function Dp(t,e,i,a){if(t.field)return`<td>${Np(t,t.field,e,i,a)}</td>`;const n=He(t)==="number";return`<td${E({class:n?"mk2-cell--number":void 0,"data-sort-value":zp(t,e.values[t.id])})}>${Tp(t,e.values[t.id])}</td>`}function Op(t){const e=He(t)==="number"?" mk2-cell--number":"";return t.sortable?`<th class="dads-table__sort-header${e}" scope="col" aria-sort="none">
954
+ <div class="dads-table__sort-inner">
955
+ <div class="dads-table__sort-label">
956
+ <button class="dads-table__sort-button" type="button" data-sort="${v(t.id)}">
957
+ ${v(t.label)}
958
+ <span class="dads-table__sort-icon">${Ou(Pt.none)}</span>
959
+ </button>
960
+ </div>
961
+ </div>
962
+ </th>`:`<th class="dads-table__col-header${e}" scope="col">${v(t.label)}</th>`}function Mp(t,e,i,a){const n=t==="single"?"radio":"checkbox";return`<label class="dads-${n}" data-size="md"><span class="dads-${n}__${n}"><input${E({class:`dads-${n}__input`,type:n,name:e,value:a,"aria-label":i,"data-row-select":!0})}></span></label>`}function Hp(t,e){var D,L,Q;const i=t.list;if(!i)return"";const a=i.selection==="single"||i.selection==="multiple"?i.selection:void 0,n=i.rowActions??[],r=a==="multiple"?Vn(i,e):[],s=se(e,t.id),{rows:o,total:l,given:d}=Ep(i,e),u=[a?'<th class="dads-table__col-header" scope="col"><span class="dads-u-visually-hidden">選択</span></th>':"",...i.columns.map(Op),n.length>0?'<th class="dads-table__col-header" scope="col"><span class="dads-u-visually-hidden">操作</span></th>':""].join(`
963
+ `),h=o.map((P,S)=>{const Y=i.columns.map(de=>Dp(de,P,S,s));if(a&&Y.unshift(`<td>${Mp(a,`${s}-select`,`${S+1}行目を選択`,P.id)}</td>`),n.length>0){const de=n.map(M=>`<button${E({class:"dads-button",type:"button","data-type":"text","data-size":"sm","data-action":M.id,"data-action-kind":M.kind??"custom","data-navigate-to":M.kind==="navigate"?M.to:void 0})}>${v(M.label)}</button>`).join(" ");Y.push(`<td>${de}</td>`)}return`<tr${E({"data-row-id":P.id,hidden:P.pageHidden})}>${Y.join("")}</tr>`}).join(`
964
+ `),m=i.empty??((L=(D=e.view.states)==null?void 0:D.empty)==null?void 0:L.message)??(e.state==="empty"?"該当するデータはありません":void 0),f=e.state==="empty",b=i.search?`<div class="mk2-list__search"><span class="dads-input-text"><input class="dads-input-text__input" type="search" data-size="md" aria-label="${v(t.title)}を検索"></span></div>`:"",y=r.length>0?`<div class="mk2-list__bulk" role="group" aria-label="選択した行への操作">
965
+ ${r.map(P=>ti(e,P,P.style==="tertiary"?"text":"outline","md",{"data-section":t.id,"data-bulk":!0})).join(`
966
+ `)}
967
+ </div>`:"",_=b||y?`<div class="mk2-list__controls">
968
+ ${b}
969
+ ${y}
970
+ </div>`:"",x=(Q=i.paging)==null?void 0:Q.pageSize,w=d&&x?Math.ceil(l/x):5,F=x&&w>1&&e.state!=="empty"?`<nav class="dads-page-navigation" aria-label="ページ">
971
+ <span class="dads-page-navigation__counter">1 / ${w}</span>
972
+ <button class="dads-button" type="button" data-type="text" data-size="md" data-control="next">次のページ${Du}</button>
973
+ </nav>`:"";return`<div class="mk2-list" data-list="${v(t.id)}"${E({"data-page-size":x,"data-paged":d&&x!==void 0})}>
974
+ ${_}
975
+ <figure class="dads-table" data-row-hover-highlight${a?" data-selectable":""}${o.length===0?" hidden":""}>
976
+ <figcaption class="dads-table__caption dads-u-visually-hidden">${v(t.title)}</figcaption>
977
+ <table class="dads-table__table" data-width="full" data-border>
978
+ <thead>
979
+ <tr>
980
+ ${u}
981
+ </tr>
982
+ </thead>
983
+ <tbody data-list-body>
984
+ ${h}
985
+ </tbody>
986
+ </table>
987
+ </figure>
988
+ ${m?`<p class="dads-form-control-label__support-text mk2-empty" data-empty${f?"":" hidden"}>${v(m)}</p>`:""}
989
+ ${F}
990
+ </div>`}const Fp={default:"gray",primary:"blue",info:"light-blue",success:"green",warning:"yellow",danger:"red"};function Vp(t){var a;const e=t.value!==void 0?t.value:t.default;if(e==null||e==="")return"-";const i=(a=t.options)==null?void 0:a.find(n=>A(n.value)===A(e));return i?i.label:typeof e=="number"&&t.component==="number"?`${e.toLocaleString("ja-JP")}${t.unit??""}`:e===!0||e===!1?e?"はい":"いいえ":t.component==="date"?nr(e):A(e)}function rr(t,e){return`<a${E({class:"dads-link",href:`#${t}`,"data-nav-view":t})}>${e}</a>`}function Bp(t){if(t.component==="timeline")return Qn(t);const e=v(Vp(t));if(t.component==="badge"||t.component==="chip"||t.component==="status"){const a=`<span class="dads-chip-label" data-style="outlined" data-color="${Fp[t.variant??"default"]??"gray"}">${e}</span>`;return t.to?rr(t.to,a):a}return t.to?rr(t.to,e):e}function jp(t,e){return`<dl class="dads-description-list">
991
+ ${De(t,e.schema.patterns).map(a=>`<div class="dads-description-list__item">
992
+ <dt>${v(a.field.label)}</dt>
993
+ <dd>${Bp(a.field)}</dd>
994
+ </div>`).join(`
995
+ `)}
996
+ </dl>`}function fe(t,e){return se(t,"section",e.id)}function ui(t,e){const i=t.kind??"form";return i==="list"?Hp(t,e):i==="readonly"||i==="summary"?jp(t,e):t.repeatable?fp(t,e):er(t,e)}function hi(t,e){var n;const i=t.use?(n=e.schema.patterns)==null?void 0:n[t.use]:void 0,a=t.note??(i==null?void 0:i.note);return[t.purpose?`<p class="mk2-section__purpose">${v(t.purpose)}</p>`:"",a?`<p class="dads-form-control-label__support-text mk2-section__note">${v(a)}</p>`:""].filter(Boolean).join(`
997
+ `)}function pi(t,e){const i=Fn(t,e).map(a=>Th(e,a,t.id));return i.length>0?`<div class="mk2-section__actions">
998
+ ${i.join(`
999
+ `)}
1000
+ </div>`:""}function mi(t,e,i){const a=t.visibleWhen;return E({id:fe(e,t),"data-section-id":t.id,"data-kind":t.kind??"form","data-visible-when":a?Wt(a):void 0,hidden:!Gt(a,e),...i})}function Rp(t,e){const i=`${fe(e,t)}-title`;return`<details class="dads-accordion mk2-section"${mi(t,e,{})}>
1001
+ <summary class="dads-accordion__summary">
1002
+ <span class="dads-accordion__icon">${Su}</span>
1003
+ <h2 id="${v(i)}">${v(t.title)}</h2>
1004
+ </summary>
1005
+ <div class="dads-accordion__content">
1006
+ ${pi(t,e)}
1007
+ ${hi(t,e)}
1008
+ ${ui(t,e)}
1009
+ </div>
1010
+ </details>`}function sr(t,e){const i=`${fe(e,t)}-title`;return`<section class="mk2-section"${mi(t,e,{"aria-labelledby":i})}>
1011
+ <details class="dads-disclosure">
1012
+ <summary id="${v(i)}" class="dads-disclosure__summary">
1013
+ ${Vu}
1014
+ ${v(t.title)}
1015
+ </summary>
1016
+ <div class="dads-disclosure__content">
1017
+ ${pi(t,e)}
1018
+ ${hi(t,e)}
1019
+ ${ui(t,e)}
1020
+ </div>
1021
+ </details>
1022
+ </section>`}function or(t,e){if(t.reveal==="collapsed")return sr(t,e);const i=`${fe(e,t)}-title`;return`<section class="mk2-section"${mi(t,e,{"aria-labelledby":i})}>
1023
+ <div class="mk2-section__head">
1024
+ <div class="dads-heading" data-size="28"><h2 id="${v(i)}" class="dads-heading__heading">${v(t.title)}</h2></div>
1025
+ ${pi(t,e)}
1026
+ </div>
1027
+ ${hi(t,e)}
1028
+ ${ui(t,e)}
1029
+ </section>`}function Pp(t,e){const i=[];for(let a=0;a<t.length;a++){if(t[a].reveal!=="collapsed"){i.push(or(t[a],e));continue}let n=a;for(;n+1<t.length&&t[n+1].reveal==="collapsed";)n++;const r=t.slice(a,n+1);i.push(r.length===1?sr(r[0],e):`<div class="mk2-accordion-group">
1030
+ ${r.map(s=>Rp(s,e)).join(`
1031
+ `)}
1032
+ </div>`),a=n}return i.join(`
1033
+ `)}function Up(t){const e=t.view.states;return t.state==="success"&&(e!=null&&e.success)?qt(se(t,"state","success"),"success",e.success.message):t.state==="error"&&(e!=null&&e.error)?qt(se(t,"state","error"),"error",e.error.message):""}function qp(t){var a,n;const e=se(t,"loading-label"),i=((n=(a=t.view.states)==null?void 0:a.loading)==null?void 0:n.message)||"読み込み中";return`<div class="mk2-loading" data-state-view="loading">
1034
+ <dads-progress-indicator class="dads-progress-indicator" data-type="stacked" intent="passive" active role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-labelledby="${v(e)}">
1035
+ <svg class="dads-progress-indicator__spinner" data-js-indicator data-indeterminate width="48" height="48" viewBox="0 0 48 48" stroke="currentcolor" fill="none" aria-hidden="true">
1036
+ <circle class="dads-progress-indicator__track" cx="24" cy="24" r="22" stroke-width="4"></circle>
1037
+ <g><g><circle class="dads-progress-indicator__bar" cx="24" cy="24" r="22" stroke-width="4" pathLength="100"></circle></g></g>
1038
+ <circle class="dads-progress-indicator__border" cx="24" cy="24" r="23.5" stroke-width="1"></circle>
1039
+ </svg>
1040
+ <span id="${v(e)}" class="dads-progress-indicator__label" data-js-label>${v(i)}</span>
1041
+ </dads-progress-indicator>
1042
+ </div>`}const Wp={normal:"通常",success:"成功",error:"エラー",empty:"空",loading:"読み込み中"};function lr(t,e){const i=Object.hasOwn(t.views,e)?t.views[e]:void 0,a=["normal"];if(!i)return a;const n=i.states;return n!=null&&n.success&&a.push("success"),n!=null&&n.error&&a.push("error"),(n!=null&&n.empty||i.sections.some(r=>{var s;return r.kind==="list"&&((s=r.list)==null?void 0:s.empty)}))&&a.push("empty"),n!=null&&n.loading&&a.push("loading"),a}function dr(t){return En.includes(t)?t:"normal"}function cr(t,e,i){const a=dr(i);return lr(t,e).includes(a)?a:"normal"}function ur(t,e){var i;return typeof e=="string"&&e!==""&&((i=t.app.roles)!=null&&i.includes(e))?e:void 0}function Yp(t){const e=ah(t.schema,t.viewName);if(!e)return"";const{flow:i,index:a}=e,n=i.steps.length,r=i.steps.map((s,o)=>{var h;const l=s.label??((h=t.schema.views[s.view])==null?void 0:h.title)??s.view,d=o<a?"completed":o===a?"reached":void 0,u=d==="completed"?`${o+1}
1043
+ <span class="dads-step-navigation__state-icon">${zu}</span>
1044
+ <span class="dads-u-visually-hidden">完了</span>`:String(o+1);return`<li${E({class:"dads-step-navigation__step","data-state":d,"data-first":o===0,"data-last":o===n-1,"aria-current":o===a?"true":void 0})}>
1045
+ <span class="dads-step-navigation__header">
1046
+ <span class="dads-u-visually-hidden">ステップ</span>
1047
+ <span class="dads-step-navigation__number">${u}</span>
1048
+ <span class="dads-step-navigation__title">${v(l)}</span>
1049
+ </span>
1050
+ </li>`}).join(`
1051
+ `);return`<div class="dads-step-navigation" data-orientation="horizontal" data-size="normal">
1052
+ <p class="dads-u-visually-hidden">全${n}ステップ中、${a+1}ステップ目まで到達済み</p>
1053
+ <ul>
1054
+ ${r}
1055
+ </ul>
1056
+ </div>`}function Gp(t){const e=t.view.sections,i=e.map((n,r)=>{const s=fe(t,n);return`<a${E({class:"dads-tab__tab",href:`#${s}-panel`,role:"tab",id:`${s}-tab`,"aria-selected":r===0?"true":"false","aria-controls":`${s}-panel`,tabindex:r===0?void 0:"-1"})}><span>${v(n.title)}</span></a>`}).join(`
1057
+ `),a=e.map((n,r)=>{const s=fe(t,n);return`<div${E({id:`${s}-panel`,class:"dads-tab__panel",role:"tabpanel","aria-labelledby":`${s}-tab`,tabindex:"0",hidden:r!==0})}>
1058
+ ${or(n,t)}
1059
+ </div>`}).join(`
1060
+ `);return`<div class="dads-tab" data-tabs>
1061
+ <div class="dads-tab__list" role="tablist">
1062
+ ${i}
1063
+ </div>
1064
+ <div class="dads-tab__panels">
1065
+ ${a}
1066
+ </div>
1067
+ </div>`}function Kp(t){const e=se(t,"toc-heading"),i=t.view.sections.map(a=>`<li><a class="dads-link" href="#${v(fe(t,a))}" data-toc-link>${v(a.title)}</a></li>`).join(`
1068
+ `);return`<nav class="dads-toc mk2-toc" aria-labelledby="${v(e)}">
1069
+ <h2 id="${v(e)}" class="dads-toc__heading">この画面の内容</h2>
1070
+ <ul class="dads-list" data-spacing="8">
1071
+ ${i}
1072
+ </ul>
1073
+ </nav>`}function Zp(t){const{layout:e,sections:i}=t.view;if(e==="tabs"&&i.length>0)return Gp(t);const a=Pp(i,t);return e==="sectioned"&&i.length>0?`${Kp(t)}
1074
+ ${a}`:a}function Qp(t,e,i){const a=ei(t).filter(n=>n.placement==="sticky").length===1;return`<form class="mk2-form" novalidate data-view-form>
1075
+ <div class="mk2-sections" data-layout="${t.view.layout??"stack"}">
1076
+ ${Zp(t)}
1077
+ </div>
1078
+ ${e}
1079
+ ${i?`<div class="mk2-sticky"${a?" data-compact":""}>
701
1080
  ${i}
702
- }`;this.customStyleElement=document.createElement("style"),this.customStyleElement.id="mokkun-custom-theme",this.customStyleElement.textContent=n,document.head.appendChild(this.customStyleElement)}removeCustomVariables(){this.customStyleElement&&(this.customStyleElement.remove(),this.customStyleElement=null)}registerTheme(e){this.themes.set(e.id,{...e,isBuiltIn:!1})}unregisterTheme(e){const i=this.themes.get(e);return!i||i.isBuiltIn?!1:(this.themes.delete(e),this.currentThemeId===e&&this.applyTheme(tt),!0)}saveTheme(e){try{localStorage.setItem(Xe,e)}catch(i){console.warn("Failed to save theme preference:",i)}}getSavedTheme(){try{return localStorage.getItem(Xe)}catch(e){return console.warn("Failed to read theme preference:",e),null}}clearSavedTheme(){try{localStorage.removeItem(Xe)}catch(e){console.warn("Failed to clear theme preference:",e)}}dispatchThemeChangeEvent(e,i){const n={previousTheme:e,currentTheme:i},s=new CustomEvent(et,{bubbles:!0,detail:n});document.dispatchEvent(s)}onThemeChange(e){const i=n=>{e(n.detail)};return document.addEventListener(et,i),()=>{document.removeEventListener(et,i)}}getDefaultTheme(){var e;return((e=this.config)==null?void 0:e.default_theme)??tt}prefersColorScheme(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}applySystemPreference(){const e=this.prefersColorScheme();this.applyTheme(e)}watchSystemPreference(e=!1){if(typeof window>"u")return()=>{};const i=window.matchMedia("(prefers-color-scheme: dark)"),n=s=>{e&&this.applyTheme(s.matches?"dark":"light")};return i.addEventListener("change",n),()=>{i.removeEventListener("change",n)}}}const Ie=new Wr,Yr=()=>Ie.initialize(),it=t=>Ie.applyTheme(t),Gr=()=>Ie.getAvailableThemes(),_i=()=>Ie.getCurrentTheme();function Zr(t){const e=()=>{if(!t.schema||!t.currentScreenName)return;const n=qe(t.schema,t.currentScreenName);if(!n)return;t.sectionNavController&&(t.sectionNavController.destroy(),t.sectionNavController=null),t.actionHandler&&(t.actionHandler.detach(),t.actionHandler=null),t.wizardController=null,n.wizard?t.wizardController=zr(t.container,n,0):(t.container.innerHTML=Je(n),n.sections&&n.sections.length>0&&(t.sectionNavController=Hr(t.container,n)));const s={onNavigate:(a,r)=>{var l,d;const o=t.currentScreenName;i.showScreen(r),o&&((d=(l=t.options).onNavigate)==null||d.call(l,o,r))},onSubmit:(a,r,o)=>{var d,p;const l=i.getFormData();l&&t.currentScreenName&&((p=(d=t.options).onSubmit)==null||p.call(d,t.currentScreenName,l))},onReset:()=>{const a=t.container.querySelector("form");a==null||a.reset()},onCancel:()=>{},onCustom:()=>{}};t.actionHandler=Rr(t.container,s)},i={get schema(){return t.schema},get currentScreen(){return t.currentScreenName},showScreen(n){if(!t.schema)return;if(!qe(t.schema,n)){console.warn(`[Mokkun] Screen not found: ${n}`);return}t.currentScreenName=n,e()},getScreenNames(){return t.schema?hi(t.schema):[]},setTheme(n){it(n)},getTheme(){return _i()},getFormData(){const n=t.container.querySelector("form");if(!n)return null;const s=new FormData(n),a={};return s.forEach((r,o)=>{Object.prototype.hasOwnProperty.call(a,o)?Array.isArray(a[o])?a[o].push(r):a[o]=[a[o],r]:a[o]=r}),a},destroy(){t.sectionNavController&&t.sectionNavController.destroy(),t.actionHandler&&t.actionHandler.detach(),t.container.innerHTML="",t.schema=null,t.currentScreenName=null,t.sectionNavController=null,t.wizardController=null,t.actionHandler=null}};return i}async function Kr(t){var n,s,a;const e=typeof t.container=="string"?document.querySelector(t.container):t.container;if(!e){const r=new Error(`[Mokkun] Container not found: ${t.container}`);throw(n=t.onError)==null||n.call(t,r),r}t.theme?it(t.theme):Yr();const i={container:e,schema:null,currentScreenName:null,sectionNavController:null,wizardController:null,actionHandler:null,options:t};try{if(t.yamlContent){const d=Ue(t.yamlContent);if(!d.success)throw new Error(`[Mokkun] YAML parse error: ${d.errors.map(p=>p.message).join(", ")}`);i.schema=d.data}else if(t.yamlUrl){const d=await Ur(t.yamlUrl);if(!d.success)throw new Error(`[Mokkun] Failed to load YAML: ${d.error.message}`);i.schema=d.schema}else throw new Error("[Mokkun] Either yamlUrl or yamlContent must be provided");const r=Zr(i),o=r.getScreenNames(),l=t.initialScreen&&o.includes(t.initialScreen)?t.initialScreen:o[0];return l&&r.showScreen(l),(s=t.onReady)==null||s.call(t,r),r}catch(r){const o=r instanceof Error?r:new Error(String(r));throw(a=t.onError)==null||a.call(t,o),o}}const Ni={init:Kr,VERSION:"0.1.5",utils:{parseYaml:Ue,getScreen:qe,getScreenNames:hi,findFieldById:ui},theme:{apply:it,getCurrent:_i,getAvailable:Gr}};typeof window<"u"&&(window.Mokkun=Ni),T.Combobox=fi,T.Mokkun=Ni,T.Textarea=We,T.createTextarea=ka,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})}));
1081
+ </div>`:""}
1082
+ </form>`}function Jp(t){const{view:e}=t,i=t.state==="loading",a=i?"":ii(t,"header"),n=ii(t,"footer"),r=ii(t,"sticky");return`<div class="mk2-view-head">
1083
+ <hgroup class="dads-heading" data-size="36">
1084
+ <p class="dads-heading__shoulder">${v(e.goal)}</p>
1085
+ <h1 class="dads-heading__heading">${v(e.title)}</h1>
1086
+ </hgroup>
1087
+ ${a}
1088
+ </div>
1089
+ ${Yp(t)}
1090
+ ${Up(t)}
1091
+ ${e.description?`<p class="mk2-view-description">${v(e.description)}</p>`:""}
1092
+ ${i?qp(t):Qp(t,n,r)}
1093
+ ${i?"":Dh(t)}`}function hr(t,e,i={}){const a=th(t,e,i);if(!a)return`<div class="mokkun-v2"><main class="mk2-main"><p class="dads-form-control-label__error-text">画面が見つかりません: ${v(e)}</p></main></div>`;const n=t.app.layout==="plain";return`<div class="mokkun-v2" data-view="${v(e)}" data-state="${a.state}" data-app-layout="${n?"plain":"shell"}">
1094
+ ${n?"":Ju(a)}
1095
+ <main class="mk2-main">
1096
+ ${Ku(a)}
1097
+ ${n?"":Xu(a)}
1098
+ ${Jp(a)}
1099
+ </main>
1100
+ </div>`}function pr(t){const e={};return t.state!==void 0&&(e.state=t.state),t.role!==void 0&&(e.role=t.role),t.today!==void 0&&(e.today=t.today),e}function mr(t,e,i,a={},n={}){t.innerHTML=hr(e,i,{...pr(a),...pr(n)});const r=Hn();let s;try{s=Ah(t,a)}catch(l){throw r(),l}let o=!1;return{destroy(){o||(o=!0,s(),t.innerHTML="",r())}}}function Xp(t){const e=(n,r)=>{var l;const s=Hn();(l=t.v2Controller)==null||l.destroy();const o={syncHash:t.options.syncHash===!0,onNavigate:d=>{var h,m;const u=t.currentScreenName;a.showScreen(d),u&&((m=(h=t.options).onNavigate)==null||m.call(h,u,d))},onAction:(d,u)=>{var m,f;if(u!=="submit")return;const h=a.getFormData();h&&((f=(m=t.options).onSubmit)==null||f.call(m,r,h))}};try{t.v2Controller=mr(t.container,n,r,o,{state:t.viewState,role:t.role})}finally{s()}},i=()=>{var s;if(t.schemaV2&&t.currentScreenName){e(t.schemaV2,t.currentScreenName);return}if(!t.schema||!t.currentScreenName)return;const n=Ft(t.schema,t.currentScreenName);if(!n)return;t.appChrome&&(t.appChrome.destroy(),t.appChrome=null),t.tabsCleanup&&(t.tabsCleanup(),t.tabsCleanup=null),t.actionHandler&&(t.actionHandler.detach(),t.actionHandler=null),(s=t.wizardController)==null||s.destroy(),t.wizardController=null,n.wizard?t.wizardController=pd(t.container,n,0):(t.container.innerHTML=Pa(n),t.appChrome=Ua(t.container,n)),t.tabsCleanup=Cl(t.container);const r={onNavigate:(o,l)=>{var u,h;const d=t.currentScreenName;a.showScreen(l),d&&((h=(u=t.options).onNavigate)==null||h.call(u,d,l))},onSubmit:(o,l,d)=>{var h,m;const u=a.getFormData();u&&t.currentScreenName&&((m=(h=t.options).onSubmit)==null||m.call(h,t.currentScreenName,u))},onReset:()=>{const o=t.container.querySelector("form");o==null||o.reset()},onCancel:()=>{},onCustom:()=>{}};t.actionHandler=yu(t.container,r)},a={get schema(){return t.schema},get schemaV2(){return t.schemaV2},get currentScreen(){return t.currentScreenName},showScreen(n){if(t.schemaV2){if(!Object.hasOwn(t.schemaV2.views,n)){console.warn(`[Mokkun] Screen not found: ${n}`);return}t.currentScreenName=n,t.viewState=cr(t.schemaV2,n,t.nextState??"normal"),t.nextState=void 0,i();return}if(!t.schema)return;if(!Ft(t.schema,n)){console.warn(`[Mokkun] Screen not found: ${n}`);return}t.currentScreenName=n,i()},setRole(n){t.role=t.schemaV2?ur(t.schemaV2,n):void 0,t.schemaV2&&t.currentScreenName&&i()},setState(n){t.viewState=t.schemaV2&&t.currentScreenName?cr(t.schemaV2,t.currentScreenName,n):"normal",t.schemaV2&&t.currentScreenName&&i()},getAvailableStates(){return t.schemaV2&&t.currentScreenName?lr(t.schemaV2,t.currentScreenName):["normal"]},get role(){return t.role},get viewState(){return t.viewState},getScreenNames(){return t.schemaV2?Object.keys(t.schemaV2.views):t.schema?mn(t.schema):[]},setTheme(n){Rt(n)},getTheme(){return yn()},getFormData(){const n=t.container.querySelector("form");if(!n)return null;const r=new FormData(n),s={};return r.forEach((o,l)=>{Object.prototype.hasOwnProperty.call(s,l)?Array.isArray(s[l])?s[l].push(o):s[l]=[s[l],o]:s[l]=o}),s},destroy(){var n,r,s,o;(n=t.v2Controller)==null||n.destroy(),t.v2Controller=null,t.schemaV2=null,(r=t.appChrome)==null||r.destroy(),t.appChrome=null,(s=t.tabsCleanup)==null||s.call(t),t.tabsCleanup=null,(o=t.wizardController)==null||o.destroy(),t.actionHandler&&t.actionHandler.detach(),t.container.innerHTML="",t.schema=null,t.currentScreenName=null,t.wizardController=null,t.actionHandler=null}};return a}function em(t,e){const i=Ht(e);if(!i.success)throw new Error(`[Mokkun] YAML parse error: ${i.errors.map(a=>a.message).join(", ")}`);t.schemaV2=i.data}async function tm(t){var a,n,r;const e=typeof t.container=="string"?document.querySelector(t.container):t.container;if(!e){const s=new Error(`[Mokkun] Container not found: ${t.container}`);throw(a=t.onError)==null||a.call(t,s),s}(!t.theme||!Rt(t.theme))&&Au();const i={container:e,schema:null,schemaV2:null,v2Controller:null,currentScreenName:null,role:void 0,viewState:"normal",nextState:void 0,appChrome:null,wizardController:null,actionHandler:null,options:t};try{if(t.yamlContent)if(fu(t.yamlContent))em(i,t.yamlContent);else{const d=Mt(t.yamlContent);if(!d.success)throw new Error(`[Mokkun] YAML parse error: ${d.errors.map(u=>u.message).join(", ")}`);i.schema=d.data}else if(t.yamlUrl){const d=await ku(t.yamlUrl);if(!d.success)throw new Error(`[Mokkun] Failed to load YAML: ${d.error.message}`);d.schemaV2?i.schemaV2=d.schemaV2:i.schema=d.schema}else throw new Error("[Mokkun] Either yamlUrl or yamlContent must be provided");const s=Xp(i),o=s.getScreenNames(),l=t.initialScreen&&o.includes(t.initialScreen)?t.initialScreen:o[0];return i.role=i.schemaV2?ur(i.schemaV2,t.role):void 0,i.nextState=dr(t.initialState),l&&s.showScreen(l),i.nextState=void 0,(n=t.onReady)==null||n.call(t,s),s}catch(s){const o=s instanceof Error?s:new Error(String(s));throw(r=t.onError)==null||r.call(t,o),o}}const fr={init:tm,VERSION:"0.2.0",utils:{parseYaml:Mt,parseYamlV2:Ht,compileV2Warnings:en,V2_STATE_LABELS:Wp,getScreen:Ft,getScreenNames:mn,findFieldById:fn},theme:{apply:Rt,getCurrent:yn,getAvailable:Eu}};typeof window<"u"&&(window.Mokkun=fr),O.Combobox=Aa,O.Mokkun=fr,O.Textarea=$t,O.compileV2Warnings=en,O.createTextarea=Wo,O.isV2Document=Dt,O.mountViewV2=mr,O.parseV2Document=Je,O.parseYamlV2=Ht,O.renderViewV2=hr,Object.defineProperty(O,Symbol.toStringTag,{value:"Module"})}));
703
1101
  //# sourceMappingURL=mokkun.js.map