@3t-transform/threeteeui 0.2.92 → 0.2.94

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 (34) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tttx-dialog.cjs.entry.js +81 -0
  3. package/dist/cjs/tttx-form.cjs.entry.js +5 -0
  4. package/dist/cjs/tttx-tabs.cjs.entry.js +5 -3
  5. package/dist/cjs/tttx.cjs.js +1 -1
  6. package/dist/collection/collection-manifest.json +1 -0
  7. package/dist/collection/components/molecules/tttx-dialog/icon-types.js +6 -0
  8. package/dist/collection/components/molecules/tttx-dialog/tttx-dialog.css +147 -0
  9. package/dist/collection/components/molecules/tttx-dialog/tttx-dialog.js +218 -0
  10. package/dist/collection/components/molecules/tttx-dialog/tttx-dialog.stories.js +98 -0
  11. package/dist/collection/components/molecules/tttx-form/lib/validityCheck.js +5 -0
  12. package/dist/collection/components/molecules/tttx-tabs/tttx-tabs.js +5 -3
  13. package/dist/components/index.d.ts +1 -0
  14. package/dist/components/index.js +1 -0
  15. package/dist/components/tttx-dialog.d.ts +11 -0
  16. package/dist/components/tttx-dialog.js +109 -0
  17. package/dist/components/tttx-form.js +5 -0
  18. package/dist/components/tttx-tabs.js +5 -3
  19. package/dist/esm/loader.js +1 -1
  20. package/dist/esm/tttx-dialog.entry.js +77 -0
  21. package/dist/esm/tttx-form.entry.js +5 -0
  22. package/dist/esm/tttx-tabs.entry.js +5 -3
  23. package/dist/esm/tttx.js +1 -1
  24. package/dist/tttx/p-a19ad838.entry.js +1 -0
  25. package/dist/tttx/p-cdac34b5.entry.js +1 -0
  26. package/dist/tttx/p-feea36cb.entry.js +1 -0
  27. package/dist/tttx/tttx.esm.js +1 -1
  28. package/dist/types/components/molecules/tttx-dialog/icon-types.d.ts +18 -0
  29. package/dist/types/components/molecules/tttx-dialog/tttx-dialog.d.ts +27 -0
  30. package/dist/types/components/molecules/tttx-dialog/tttx-dialog.stories.d.ts +42 -0
  31. package/dist/types/components.d.ts +30 -0
  32. package/package.json +1 -1
  33. package/dist/tttx/p-b189ca0f.entry.js +0 -1
  34. package/dist/tttx/p-e2dda35e.entry.js +0 -1
@@ -43,6 +43,14 @@ export namespace Components {
43
43
  "filteroptions": string;
44
44
  "sorteroptions": string;
45
45
  }
46
+ interface TttxDialog {
47
+ "allowOverflow": boolean;
48
+ "closeEnabled": boolean;
49
+ "header": string;
50
+ "open": boolean;
51
+ "size": 'regular' | 'mobile' | 'large' | 'small';
52
+ "type": 'info' | 'success' | 'warning' | 'critical' | undefined;
53
+ }
46
54
  interface TttxDialogBox {
47
55
  "allowOverflow": boolean;
48
56
  "data": string | DialogItems;
@@ -219,6 +227,10 @@ export interface TttxCheckboxCustomEvent<T> extends CustomEvent<T> {
219
227
  detail: T;
220
228
  target: HTMLTttxCheckboxElement;
221
229
  }
230
+ export interface TttxDialogCustomEvent<T> extends CustomEvent<T> {
231
+ detail: T;
232
+ target: HTMLTttxDialogElement;
233
+ }
222
234
  export interface TttxDialogBoxCustomEvent<T> extends CustomEvent<T> {
223
235
  detail: T;
224
236
  target: HTMLTttxDialogBoxElement;
@@ -304,6 +316,12 @@ declare global {
304
316
  prototype: HTMLTttxDataPatternElement;
305
317
  new (): HTMLTttxDataPatternElement;
306
318
  };
319
+ interface HTMLTttxDialogElement extends Components.TttxDialog, HTMLStencilElement {
320
+ }
321
+ var HTMLTttxDialogElement: {
322
+ prototype: HTMLTttxDialogElement;
323
+ new (): HTMLTttxDialogElement;
324
+ };
307
325
  interface HTMLTttxDialogBoxElement extends Components.TttxDialogBox, HTMLStencilElement {
308
326
  }
309
327
  var HTMLTttxDialogBoxElement: {
@@ -425,6 +443,7 @@ declare global {
425
443
  "tttx-checkbox-group-caption": HTMLTttxCheckboxGroupCaptionElement;
426
444
  "tttx-checkbox-group-heading": HTMLTttxCheckboxGroupHeadingElement;
427
445
  "tttx-data-pattern": HTMLTttxDataPatternElement;
446
+ "tttx-dialog": HTMLTttxDialogElement;
428
447
  "tttx-dialog-box": HTMLTttxDialogBoxElement;
429
448
  "tttx-expander": HTMLTttxExpanderElement;
430
449
  "tttx-filter": HTMLTttxFilterElement;
@@ -474,6 +493,15 @@ declare namespace LocalJSX {
474
493
  "filteroptions"?: string;
475
494
  "sorteroptions"?: string;
476
495
  }
496
+ interface TttxDialog {
497
+ "allowOverflow"?: boolean;
498
+ "closeEnabled"?: boolean;
499
+ "header"?: string;
500
+ "onCloseButtonClick"?: (event: TttxDialogCustomEvent<any>) => void;
501
+ "open"?: boolean;
502
+ "size"?: 'regular' | 'mobile' | 'large' | 'small';
503
+ "type"?: 'info' | 'success' | 'warning' | 'critical' | undefined;
504
+ }
477
505
  interface TttxDialogBox {
478
506
  "allowOverflow"?: boolean;
479
507
  "data"?: string | DialogItems;
@@ -683,6 +711,7 @@ declare namespace LocalJSX {
683
711
  "tttx-checkbox-group-caption": TttxCheckboxGroupCaption;
684
712
  "tttx-checkbox-group-heading": TttxCheckboxGroupHeading;
685
713
  "tttx-data-pattern": TttxDataPattern;
714
+ "tttx-dialog": TttxDialog;
686
715
  "tttx-dialog-box": TttxDialogBox;
687
716
  "tttx-expander": TttxExpander;
688
717
  "tttx-filter": TttxFilter;
@@ -714,6 +743,7 @@ declare module "@stencil/core" {
714
743
  "tttx-checkbox-group-caption": LocalJSX.TttxCheckboxGroupCaption & JSXBase.HTMLAttributes<HTMLTttxCheckboxGroupCaptionElement>;
715
744
  "tttx-checkbox-group-heading": LocalJSX.TttxCheckboxGroupHeading & JSXBase.HTMLAttributes<HTMLTttxCheckboxGroupHeadingElement>;
716
745
  "tttx-data-pattern": LocalJSX.TttxDataPattern & JSXBase.HTMLAttributes<HTMLTttxDataPatternElement>;
746
+ "tttx-dialog": LocalJSX.TttxDialog & JSXBase.HTMLAttributes<HTMLTttxDialogElement>;
717
747
  "tttx-dialog-box": LocalJSX.TttxDialogBox & JSXBase.HTMLAttributes<HTMLTttxDialogBoxElement>;
718
748
  "tttx-expander": LocalJSX.TttxExpander & JSXBase.HTMLAttributes<HTMLTttxExpanderElement>;
719
749
  "tttx-filter": LocalJSX.TttxFilter & JSXBase.HTMLAttributes<HTMLTttxFilterElement>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3t-transform/threeteeui",
3
- "version": "0.2.92",
3
+ "version": "0.2.94",
4
4
  "description": "3t Design System",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -1 +0,0 @@
1
- import{r as t,c as s,h as a,H as i}from"./p-65bb4035.js";import{p as o,d as r}from"./p-88ee2406.js";import"./p-112455b1.js";const e=class{constructor(a){t(this,a),this.tabClick=s(this,"tabClick",7),this.leftNavigation=s(this,"leftNavigation",7),this.rightNavigation=s(this,"rightNavigation",7),this.tabFocus=0,this.tabsName=void 0,this.navigation=void 0,this.wide=void 0,this.tabs=void 0,this._tabs=void 0}onDataChange(){this.tabs&&(this._tabs="string"==typeof this.tabs?JSON.parse(this.tabs):[...this.tabs],this.tabFocus=this._tabs.findIndex((t=>-1!==t.tabIndex)))}componentWillLoad(){this.onDataChange()}handleTabClick(t){this.tabClick.emit({tabId:t.id})}handleLeftNavigation(){this.leftNavigation.emit()}handleRightNavigation(){this.rightNavigation.emit()}handleKeyDown(t){const s=this.tabList.getAttribute("aria-orientation"),a=s&&"vertical"===s?"ArrowUp":"ArrowLeft",i=s&&"vertical"===s?"ArrowDown":"ArrowRight";t.key===a||t.key===i?(this._tabs[this.tabFocus].tabIndex=-1,t.key===a?(this.tabFocus--,this.tabFocus<0&&(this.tabFocus=this._tabs.length-1)):t.key===i&&(this.tabFocus++,this.tabFocus>=this._tabs.length&&(this.tabFocus=0)),this._tabs[this.tabFocus].tabIndex=0,this.tabList.querySelectorAll('[role="tab"]')[this.tabFocus].focus(),this._tabs=[...this._tabs]):"Space"!==t.code&&"Enter"!==t.code||this.tabClick.emit({tabId:this._tabs[this.tabFocus].id})}render(){if(this.tabs&&0!=this.tabs.length)return a(i,null,a("div",null,a("div",{class:"tab-bar",role:"tablist","aria-label":this.tabsName,ref:t=>this.tabList=t},this.navigation&&a("div",{class:"left-navigation",tabindex:"0",onClick:this.handleLeftNavigation.bind(this)},a("tttx-icon",{icon:"navigate_before",color:"black"})),a("div",{class:"tabs-container"+(this.wide?" wide":"")},this._tabs.map((t=>a("a",{key:t.id,id:t.id,role:"tab","aria-controls":t.controls,tabindex:t.tabIndex,"aria-selected":t.selected,onClick:()=>{this.handleTabClick(t)}},t.tabName)))),this.navigation&&a("div",{class:"right-navigation",tabindex:"0",onClick:this.handleRightNavigation.bind(this)},a("tttx-icon",{icon:"navigate_next",color:"black"}))),this._tabs.map((t=>a("article",{key:t.id,id:t.controls,role:"tabpanel",tabindex:"0","aria-labelledby":t.id,"aria-expanded":t.selected,innerHTML:o.sanitize(t.pageContent,r),hidden:!t.selected})))))}static get watchers(){return{tabs:["onDataChange"]}}};e.style='.material-symbols-rounded.sc-tttx-tabs{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}.sc-tttx-tabs-h{display:block}.tab-bar.sc-tttx-tabs{display:flex;height:52px}.tab-bar.sc-tttx-tabs>.left-navigation.sc-tttx-tabs,.tab-bar.sc-tttx-tabs>.right-navigation.sc-tttx-tabs{padding:14px 8px;cursor:pointer}.tab-bar.sc-tttx-tabs>.left-navigation.sc-tttx-tabs>*.sc-tttx-tabs,.tab-bar.sc-tttx-tabs>.right-navigation.sc-tttx-tabs>*.sc-tttx-tabs{height:24px;width:24px;cursor:pointer}.tab-bar.sc-tttx-tabs>.tabs-container.sc-tttx-tabs{display:flex;border-bottom:1px solid #d5d5d5}.tab-bar.sc-tttx-tabs>.tabs-container.wide.sc-tttx-tabs{flex-grow:1}.tab-bar.sc-tttx-tabs>.tabs-container.sc-tttx-tabs>*[role=tab].sc-tttx-tabs{padding:18px 16px;line-height:16px;font-size:14px;font-weight:500;text-transform:uppercase;user-select:none;color:#757575;cursor:pointer}.tab-bar.sc-tttx-tabs>.tabs-container.sc-tttx-tabs>*[role=tab].sc-tttx-tabs:hover{background-color:rgba(17, 17, 17, 0.05)}.tab-bar.sc-tttx-tabs>.tabs-container.sc-tttx-tabs>*[role=tab][aria-selected].sc-tttx-tabs{color:#212121;cursor:default;border-bottom:3px solid #1579c6}';export{e as tttx_tabs}
@@ -1 +0,0 @@
1
- import{r as e,c as t,h as o,H as i}from"./p-65bb4035.js";import{p as n,d as r}from"./p-88ee2406.js";import"./p-112455b1.js";function a(e,t,o,i){let n;if(n=void 0!==i?i.querySelector(".errorBubble"):"label"===e.parentElement.nodeName.toLowerCase()?e.parentElement.querySelector(".errorBubble"):e.parentElement.parentElement.querySelector(".errorBubble"),t){e.classList.add("invalid"),n.classList.add("visible");const t=document.createElement("span");t.className="material-symbols-rounded",t.textContent="warning",n.innerHTML="",n.append(t),n.append(o)}else n.classList.remove("visible"),e.classList.remove("invalid"),n.innerHTML=""}const l=class{constructor(o){e(this,o),this.dataSubmitted=t(this,"dataSubmitted",7),this.dataChanged=t(this,"dataChanged",7),this.template=document.createElement("template"),this.formschema=void 0,this.data=void 0}onFormSchemaChange(e){if(!this.data&&this.form&&this._formSchema){const e=new FormData(this.form);this._data=Object.fromEntries(Object.keys(this._formSchema.properties).map((t=>[t,e.get(t)])))}this._formSchema="string"==typeof e?JSON.parse(e):e}onDataChange(e){this._data="string"==typeof e?JSON.parse(e):e}fieldChanged(e){this.dataChanged.emit({name:e.target.name,value:e.target.value})}async submit(){this.submitButton.click()}doSubmit(e){e.preventDefault();const t=new FormData(e.target);this.dataSubmitted.emit(t)}componentWillLoad(){this.onFormSchemaChange(this.formschema),this.data&&this.onDataChange(this.data)}componentWillRender(){this.template=document.createElement("template"),this.populateFormFromSchema()}createSelect(e,t){var o;const i=document.createElement("select");return i.setAttribute("name",e),t.options.forEach((e=>{this.appendOption(i,e)})),(null===(o=this._data)||void 0===o?void 0:o[e])&&i.classList.remove("placeholder"),i}appendOption(e,t){const o=document.createElement("option");o.setAttribute("value",t.value),t.placeholder&&(o.setAttribute("disabled",""),o.setAttribute("selected",""),o.setAttribute("hidden",""),e.classList.add("placeholder")),t.label&&(o.innerHTML=n.sanitize(t.label,r)),e.appendChild(o)}createInput(e,t){var o;const i=document.createElement("input");return i.name=e,i.type=t.type,i.placeholder=null!==(o=t.placeholder)&&void 0!==o?o:"",i.autocomplete="off",i.autocapitalize="off",t.readonly&&(i.readOnly=!0),i}applyValidation(e,t){var o,i;t.required&&(e.setAttribute("required",""),e.setAttribute("data-required",null!==(o=t.required.message)&&void 0!==o?o:"")),t.pattern&&(e.setAttribute("pattern",t.pattern.pattern),e.setAttribute("data-pattern",null!==(i=t.pattern.message)&&void 0!==i?i:"")),t.badInput&&e.setAttribute("data-badinput",t.badInput.message),t.minmax&&(e.setAttribute("min",t.minmax.min),e.setAttribute("max",t.minmax.max),e.setAttribute("data-range",t.minmax.message)),t.maxlength&&e.setAttribute("maxlength",t.maxlength)}createErrorBubble(){const e=document.createElement("div");return e.className="errorBubble",e}appendCheckboxInput(e,t,o){if(e.label){const e=document.createElement("br");o.appendChild(e)}if(o.appendChild(t),!e.inlineLabel)return;const i=document.createElement("span");i.className="inlineLabel",i.textContent=e.inlineLabel,o.appendChild(i)}createLabel(e,t,o){const i=document.createElement("div");i.className="outer-container inputBlock";const n=document.createElement("label");if(n.innerText=e.label,!e.validation){const e=document.createElement("span");e.className="optional",e.innerHTML="&nbsp;(optional)",n.appendChild(e)}return e.readonly&&n.classList.add("readonly"),"checkbox"===e.type?this.appendCheckboxInput(e,t,n):i.appendChild(t),"checkbox"!==e.type&&n.appendChild(i),n.appendChild(o),n}populateFormFromSchema(){if(!this._formSchema)return;const e=this._formSchema.properties;Object.keys(e).forEach((t=>{const o=e[t].form,i="select"===o.type?this.createSelect(t,o):this.createInput(t,o);o.validation&&this.applyValidation(i,o.validation);const n=this.createErrorBubble(),r=this.createLabel(o,i,n);this.template.content.append(r)}))}componentDidRender(){if(!this._formSchema)return;const e=this.template.content.cloneNode(!0),t=this._formSchema.properties;Object.keys(t).forEach((o=>{var i,n;const r=e.querySelector(`[name=${o}]`);if(r.oninvalid=this.validityCheckWrapper.bind(this),r.onblur=this.validityCheckWrapper.bind(this),r.onkeyup=this.fieldChanged.bind(this),r.onchange=this.fieldChanged.bind(this),void 0!==(null===(i=this._data)||void 0===i?void 0:i[o])&&null!==this._data[o]&&(r.value=this._data[o]),null===(n=t[o].form.validation)||void 0===n?void 0:n.invalid){const e=t[o].form.validation.invalid.message;r.setCustomValidity(e),a(r,!0,e)}"select"===t[o].form.type&&r.classList.contains("placeholder")&&r.addEventListener("change",(()=>{r.classList.remove("placeholder")}))})),this.fieldset.replaceChildren(e)}validityCheckWrapper(e){const{target:t,hasError:o,errorMessage:i}=function(e){var t,o,i,n;e.preventDefault();const r=e.target;let a=!0,l="";switch(!0){case r.validity.valueMissing:l=null!==(t=r.dataset.required)&&void 0!==t?t:"This field is required";break;case r.validity.patternMismatch:l=null!==(o=r.dataset.pattern)&&void 0!==o?o:"Incorrect format";break;case r.validity.badInput:l=null!==(i=r.dataset.badinput)&&void 0!==i?i:"Wrong input type";break;case r.validity.rangeOverflow||r.validity.rangeUnderflow:l=null!==(n=r.dataset.range)&&void 0!==n?n:"Invalid value";break;case r.validity.customError:l=r.validationMessage;break;default:a=!1}return{target:r,hasError:a,errorMessage:l}}(e);a(t,o,i)}render(){return o(i,null,o("form",{ref:e=>this.form=e,onSubmit:this.doSubmit.bind(this)},o("fieldset",{ref:e=>this.fieldset=e}),o("input",{type:"submit",ref:e=>this.submitButton=e,style:{display:"none"}})))}static get watchers(){return{formschema:["onFormSchemaChange"],data:["onDataChange"]}}};l.style='.material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}.material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24}label{font-weight:500;font-size:16px;line-height:19px;color:#212121}label .optional{color:#757575;font-weight:normal}label .outer-container{position:relative}label .outer-container .left-icons,label .outer-container .right-icons{display:flex;position:absolute;height:24px;gap:8px}label .outer-container .left-icons tttx-icon,label .outer-container .right-icons tttx-icon{height:24px;width:24px}label .outer-container .left-icons{left:8px}label .outer-container .right-icons{right:8px}label .outer-container input{color:#212121;box-sizing:border-box;border:1px solid #d5d5d5;border-radius:4px;padding:0;padding-left:16px;padding-right:16px;margin-top:4px;}label .outer-container input.has-input-icon{padding-left:40px}label .outer-container input.has-input-icon.has-left-icon{padding-left:72px}label .outer-container input.has-left-icon{padding-left:40px}label .outer-container input.has-right-icon{padding-right:40px}label .outer-container input.invalid{border:1px solid #dc0000}label .outer-container input:not([type=submit]){font-family:"Roboto", serif;width:100%;height:36px;font-size:16px;line-height:19px}label .outer-container input[type=date]{background:white;display:block;min-width:calc(100% - 18px);line-height:37px}label .outer-container input[readonly]{cursor:default;pointer-events:none;user-select:none;color:gray}label .outer-container input:focus{border-color:#1479c6}label .outer-container input:focus-visible{outline:none}label .outer-container.inputBlock{display:flex;align-items:center;line-height:21px}label .outer-container.inputBlock .left-icons,label .outer-container.inputBlock .right-icons{margin-top:4px}label .outer-container.inputBlock.readonly{pointer-events:none;user-select:none;color:gray}label .outer-container.inputInline{display:flex;white-space:nowrap;align-items:center;margin:0}label .outer-container.inputInline input{margin-top:0}label .secondarylabel{color:#757575;font-size:14px;line-height:16px;font-weight:normal;display:flex;margin-top:4px}label .errorBubble{position:relative;font-size:14px;line-height:16px;font-weight:normal;width:100%;font-family:"Roboto", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center;margin-top:4px}label .errorBubble:not(.visible){display:none}label .errorBubble span{color:#dc0000;font-size:16px;margin-right:4px}.material-symbols-rounded{font-family:"Material Symbols Rounded", sans-serif;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#9e9e9e}button{cursor:pointer}.button{font-family:Roboto, serif;box-sizing:border-box;height:36px;min-width:36px;padding:0;margin:0;background:transparent;color:#212121;border:1px solid #c8c8c8;border-radius:4px;text-transform:uppercase;display:flex;justify-content:left;align-items:center;font-size:14px;font-weight:500}.button-content{display:block;padding:0 16px}.icon-left,.icon-right{margin-top:4px}.iconleft{padding-left:8px}.iconleft .button-content{padding-left:4px}.iconright{padding-right:8px}.iconright .button-content{padding-right:4px}.notext{padding:0 6px}.button:active{background:rgba(17, 17, 17, 0.2);border:1px solid #d5d5d5}.primary{background:#1479c6;border:1px solid #1479c6;color:white}.primary:active{background:#1464a2;border:1px solid #1464a2}.borderless{background:transparent;border:none;color:#212121}.borderless:active{background:rgba(17, 17, 17, 0.2);border:none}.borderless-circle{background:transparent;border:none;color:#212121;border-radius:50%}.borderless-circle:active{border:none}.borderless-circle:focus{border-color:transparent}.danger{background:#dc0000;border:1px solid #dc0000;color:white}.danger:active{background:#b00000;border:1px solid #b00000}.disabled{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}.disabled:active{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}@media (hover: hover){.button:hover{background:rgba(17, 17, 17, 0.1);border:1px solid #d5d5d5}.primary:hover{background:#146eb3;border:1px solid #146eb3}.borderless:hover{background:rgba(17, 17, 17, 0.1);border:none}.borderless-circle:hover{background:rgba(17, 17, 17, 0.1);border:none}.danger:hover{background:#c60000;border:1px solid #c60000}.disabled:hover{background:#aeaeae;border:none;color:#4c4c4c;cursor:not-allowed}}:host{display:block}fieldset{margin:0;padding:0;border:none}label{display:block;position:relative;margin-bottom:16px}.inlineLabel{font-weight:400;display:inline-block;vertical-align:top;padding-top:4px}input[type=checkbox]{width:18px;height:18px}input~label{font-weight:400}select{font-family:"Roboto", serif;box-sizing:border-box;width:100%;height:36px;padding:0 16px;font-size:16px;border:1px solid #d5d5d5;border-radius:4px;margin-top:4px}.placeholder{color:#9e9e9e}.placeholder option{color:initial}select.invalid:invalid{border:1px solid #dc0000}select~.errorBubble{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:"Roboto", sans-serif;color:#dc0000;display:flex;align-content:center;align-items:center;justify-items:center}select~.errorBubble:not(.visible){visibility:hidden}select~.errorBubble span{color:#dc0000;font-size:16px;margin-right:4px;height:16px}select.invalid:invalid~.errorBubble{position:relative;font-size:14px;font-weight:normal;width:100%;font-family:"Roboto", sans-serif;color:#dc0000;visibility:visible}select:focus{border-color:#1479c6}select:focus-visible{outline:none}.button{padding:0 16px}.footer{display:flex;gap:16px;flex-direction:row-reverse}';export{l as tttx_form}