@avenue-ticketing/ui 0.11.0 → 0.12.0-beta.2
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.
- package/README.md +47 -0
- package/dist/badge-types-B67wcd4m.d.ts +22 -0
- package/dist/react/app-store-buttons-outline.d.ts +17 -0
- package/dist/react/app-store-buttons-outline.js +582 -0
- package/dist/react/app-store-buttons-outline.js.map +1 -0
- package/dist/react/app-store-buttons.d.ts +20 -0
- package/dist/react/app-store-buttons.js +817 -0
- package/dist/react/app-store-buttons.js.map +1 -0
- package/dist/react/avatar-label-group.d.ts +14 -0
- package/dist/react/avatar-label-group.js +183 -0
- package/dist/react/avatar-label-group.js.map +1 -0
- package/dist/react/avatar-profile-photo.d.ts +9 -0
- package/dist/react/avatar-profile-photo.js +202 -0
- package/dist/react/avatar-profile-photo.js.map +1 -0
- package/dist/react/avatar.d.ts +66 -40
- package/dist/react/avatar.js +159 -149
- package/dist/react/avatar.js.map +1 -1
- package/dist/react/badge-groups.d.ts +25 -0
- package/dist/react/badge-groups.js +162 -0
- package/dist/react/badge-groups.js.map +1 -0
- package/dist/react/badge.d.ts +123 -59
- package/dist/react/badge.js +314 -86
- package/dist/react/badge.js.map +1 -1
- package/dist/react/button-group.d.ts +43 -0
- package/dist/react/button-group.js +108 -0
- package/dist/react/button-group.js.map +1 -0
- package/dist/react/button-utility.d.ts +47 -0
- package/dist/react/button-utility.js +158 -0
- package/dist/react/button-utility.js.map +1 -0
- package/dist/react/button.d.ts +112 -37
- package/dist/react/button.js +270 -55
- package/dist/react/button.js.map +1 -1
- package/dist/react/checkbox.d.ts +25 -8
- package/dist/react/checkbox.js +115 -110
- package/dist/react/checkbox.js.map +1 -1
- package/dist/react/close-button.d.ts +25 -0
- package/dist/react/close-button.js +54 -0
- package/dist/react/close-button.js.map +1 -0
- package/dist/react/combobox.d.ts +18 -0
- package/dist/react/combobox.js +574 -0
- package/dist/react/combobox.js.map +1 -0
- package/dist/react/dialog.d.ts +15 -15
- package/dist/react/dialog.js +43 -108
- package/dist/react/dialog.js.map +1 -1
- package/dist/react/dropdown-account-breadcrumb.d.ts +5 -0
- package/dist/react/dropdown-account-breadcrumb.js +481 -0
- package/dist/react/dropdown-account-breadcrumb.js.map +1 -0
- package/dist/react/dropdown-account-button.d.ts +5 -0
- package/dist/react/dropdown-account-button.js +938 -0
- package/dist/react/dropdown-account-button.js.map +1 -0
- package/dist/react/dropdown-account-card-md.d.ts +5 -0
- package/dist/react/dropdown-account-card-md.js +714 -0
- package/dist/react/dropdown-account-card-md.js.map +1 -0
- package/dist/react/dropdown-account-card-sm.d.ts +5 -0
- package/dist/react/dropdown-account-card-sm.js +692 -0
- package/dist/react/dropdown-account-card-sm.js.map +1 -0
- package/dist/react/dropdown-account-card-xs.d.ts +5 -0
- package/dist/react/dropdown-account-card-xs.js +672 -0
- package/dist/react/dropdown-account-card-xs.js.map +1 -0
- package/dist/react/dropdown-avatar.d.ts +5 -0
- package/dist/react/dropdown-avatar.js +955 -0
- package/dist/react/dropdown-avatar.js.map +1 -0
- package/dist/react/dropdown-button-advanced.d.ts +5 -0
- package/dist/react/dropdown-button-advanced.js +964 -0
- package/dist/react/dropdown-button-advanced.js.map +1 -0
- package/dist/react/dropdown-button-link.d.ts +5 -0
- package/dist/react/dropdown-button-link.js +666 -0
- package/dist/react/dropdown-button-link.js.map +1 -0
- package/dist/react/dropdown-button-simple.d.ts +5 -0
- package/dist/react/dropdown-button-simple.js +919 -0
- package/dist/react/dropdown-button-simple.js.map +1 -0
- package/dist/react/dropdown-icon-advanced.d.ts +5 -0
- package/dist/react/dropdown-icon-advanced.js +708 -0
- package/dist/react/dropdown-icon-advanced.js.map +1 -0
- package/dist/react/dropdown-icon-simple.d.ts +5 -0
- package/dist/react/dropdown-icon-simple.js +670 -0
- package/dist/react/dropdown-icon-simple.js.map +1 -0
- package/dist/react/dropdown-integration.d.ts +5 -0
- package/dist/react/dropdown-integration.js +1490 -0
- package/dist/react/dropdown-integration.js.map +1 -0
- package/dist/react/dropdown-search-advanced.d.ts +5 -0
- package/dist/react/dropdown-search-advanced.js +1163 -0
- package/dist/react/dropdown-search-advanced.js.map +1 -0
- package/dist/react/dropdown-search-simple.d.ts +5 -0
- package/dist/react/dropdown-search-simple.js +1125 -0
- package/dist/react/dropdown-search-simple.js.map +1 -0
- package/dist/react/dropdown.d.ts +35 -133
- package/dist/react/dropdown.js +536 -1318
- package/dist/react/dropdown.js.map +1 -1
- package/dist/react/file-upload-trigger.d.ts +34 -0
- package/dist/react/file-upload-trigger.js +39 -0
- package/dist/react/file-upload-trigger.js.map +1 -0
- package/dist/react/form.d.ts +10 -0
- package/dist/react/form.js +11 -0
- package/dist/react/form.js.map +1 -0
- package/dist/react/hint-text.d.ts +17 -0
- package/dist/react/hint-text.js +36 -0
- package/dist/react/hint-text.js.map +1 -0
- package/dist/react/hook-form.d.ts +35 -0
- package/dist/react/hook-form.js +50 -0
- package/dist/react/hook-form.js.map +1 -0
- package/dist/react/input-date.d.ts +43 -0
- package/dist/react/input-date.js +306 -0
- package/dist/react/input-date.js.map +1 -0
- package/dist/react/input-file.d.ts +45 -0
- package/dist/react/input-file.js +748 -0
- package/dist/react/input-file.js.map +1 -0
- package/dist/react/input-group.d.ts +37 -0
- package/dist/react/input-group.js +251 -0
- package/dist/react/input-group.js.map +1 -0
- package/dist/react/input-number.d.ts +32 -0
- package/dist/react/input-number.js +553 -0
- package/dist/react/input-number.js.map +1 -0
- package/dist/react/input-payment.d.ts +16 -0
- package/dist/react/input-payment.js +593 -0
- package/dist/react/input-payment.js.map +1 -0
- package/dist/react/input-tags-outer.d.ts +53 -0
- package/dist/react/input-tags-outer.js +607 -0
- package/dist/react/input-tags-outer.js.map +1 -0
- package/dist/react/input-tags.d.ts +53 -0
- package/dist/react/input-tags.js +565 -0
- package/dist/react/input-tags.js.map +1 -0
- package/dist/react/input.d.ts +71 -22
- package/dist/react/input.js +332 -45
- package/dist/react/input.js.map +1 -1
- package/dist/react/label.d.ts +18 -0
- package/dist/react/label.js +112 -0
- package/dist/react/label.js.map +1 -0
- package/dist/react/multi-select.d.ts +90 -0
- package/dist/react/multi-select.js +1237 -0
- package/dist/react/multi-select.js.map +1 -0
- package/dist/react/pin-input.d.ts +59 -0
- package/dist/react/pin-input.js +229 -0
- package/dist/react/pin-input.js.map +1 -0
- package/dist/react/popover.d.ts +14 -71
- package/dist/react/popover.js +171 -540
- package/dist/react/popover.js.map +1 -1
- package/dist/react/progress-circle.d.ts +9 -0
- package/dist/react/progress-circle.js +36 -0
- package/dist/react/progress-circle.js.map +1 -0
- package/dist/react/progress-circles.d.ts +14 -0
- package/dist/react/progress-circles.js +160 -0
- package/dist/react/progress-circles.js.map +1 -0
- package/dist/react/progress-indicators.d.ts +52 -0
- package/dist/react/progress-indicators.js +78 -0
- package/dist/react/progress-indicators.js.map +1 -0
- package/dist/react/radio-buttons.d.ts +35 -0
- package/dist/react/radio-buttons.js +117 -0
- package/dist/react/radio-buttons.js.map +1 -0
- package/dist/react/scroll-header.d.ts +6 -0
- package/dist/react/scroll-header.js +42 -61
- package/dist/react/scroll-header.js.map +1 -1
- package/dist/react/scroll-wheel.d.ts +4 -5
- package/dist/react/scroll-wheel.js +19 -15
- package/dist/react/scroll-wheel.js.map +1 -1
- package/dist/react/select-item.d.ts +14 -0
- package/dist/react/select-item.js +340 -0
- package/dist/react/select-item.js.map +1 -0
- package/dist/react/select-native.d.ts +17 -0
- package/dist/react/select-native.js +203 -0
- package/dist/react/select-native.js.map +1 -0
- package/dist/react/select.d.ts +19 -61
- package/dist/react/select.js +866 -908
- package/dist/react/select.js.map +1 -1
- package/dist/react/sheet.d.ts +19 -19
- package/dist/react/sheet.js +97 -219
- package/dist/react/sheet.js.map +1 -1
- package/dist/react/slider.d.ts +15 -0
- package/dist/react/slider.js +66 -0
- package/dist/react/slider.js.map +1 -0
- package/dist/react/social-button.d.ts +55 -0
- package/dist/react/social-button.js +263 -0
- package/dist/react/social-button.js.map +1 -0
- package/dist/react/social-logos.d.ts +20 -0
- package/dist/react/social-logos.js +131 -0
- package/dist/react/social-logos.js.map +1 -0
- package/dist/react/switch.d.ts +21 -36
- package/dist/react/switch.js +121 -109
- package/dist/react/switch.js.map +1 -1
- package/dist/react/tag-select.d.ts +47 -0
- package/dist/react/tag-select.js +1252 -0
- package/dist/react/tag-select.js.map +1 -0
- package/dist/react/tags.d.ts +30 -0
- package/dist/react/tags.js +228 -0
- package/dist/react/tags.js.map +1 -0
- package/dist/react/textarea.d.ts +40 -4
- package/dist/react/textarea.js +193 -27
- package/dist/react/textarea.js.map +1 -1
- package/dist/react/tooltip.d.ts +30 -43
- package/dist/react/tooltip.js +65 -521
- package/dist/react/tooltip.js.map +1 -1
- package/dist/select-mobile-sheet-CB2ptDTJ.d.ts +12 -0
- package/dist/select-shared-oJEeJxeB.d.ts +68 -0
- package/package.json +28 -21
- package/source.css +2 -13
- package/theme.css +883 -79
- package/dist/react/calendar.d.ts +0 -13
- package/dist/react/calendar.js +0 -4639
- package/dist/react/calendar.js.map +0 -1
- package/dist/react/card.d.ts +0 -11
- package/dist/react/card.js +0 -113
- package/dist/react/card.js.map +0 -1
- package/dist/react/datetime-picker.d.ts +0 -21
- package/dist/react/datetime-picker.js +0 -6142
- package/dist/react/datetime-picker.js.map +0 -1
- package/dist/react/pagination.d.ts +0 -28
- package/dist/react/pagination.js +0 -262
- package/dist/react/pagination.js.map +0 -1
- package/dist/react/table-pagination.d.ts +0 -15
- package/dist/react/table-pagination.js +0 -1247
- package/dist/react/table-pagination.js.map +0 -1
- package/dist/react/table-view/column-menu.d.ts +0 -15
- package/dist/react/table-view/column-menu.js +0 -1049
- package/dist/react/table-view/column-menu.js.map +0 -1
- package/dist/react/table-view/index.d.ts +0 -70
- package/dist/react/table-view/index.js +0 -2284
- package/dist/react/table-view/index.js.map +0 -1
- package/dist/react/table.d.ts +0 -86
- package/dist/react/table.js +0 -414
- package/dist/react/table.js.map +0 -1
- package/dist/react/tabs.d.ts +0 -34
- package/dist/react/tabs.js +0 -423
- package/dist/react/tabs.js.map +0 -1
- package/dist/react/time-picker.d.ts +0 -22
- package/dist/react/time-picker.js +0 -856
- package/dist/react/time-picker.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../utils/cx.ts","../../../../components/base/input/hint-text.tsx","../../../../components/base/tooltip/tooltip.tsx","../../../../components/base/input/label.tsx","../../../../components/base/input/input.tsx","../../../../components/foundations/dot-icon.tsx","../../../../components/base/tags/base-components/tag-checkbox.tsx","../../../../components/base/tags/base-components/tag-close-x.tsx","../../../../components/base/tags/tags.tsx","../../../../components/base/input/input-tags-outer.tsx"],"names":["AriaText","AriaTooltipTrigger","jsx","AriaTooltip","AriaOverlayArrow","AriaButton","jsxs","AriaLabel","HelpCircle","sizes","AriaGroup","isDisabled","isInvalid","AriaInput","InfoCircle","EyeOff","Eye","XClose","focusShadowPlain","useState","User01","createContext","AriaTagGroup","AriaTagList","styles","useContext","AriaTag","Fragment","useRef","label"],"mappings":";;;;;;;;;;;AAEA,IAAM,UAAU,mBAAA,CAAoB;AAAA,EAChC,MAAA,EAAQ;AAAA,IACJ,KAAA,EAAO;AAAA,MACH,MAAM,CAAC,YAAA,EAAc,cAAc,YAAA,EAAc,YAAA,EAAc,cAAc,aAAa;AAAA;AAC9F;AAER,CAAC,CAAA;AAMM,IAAM,EAAA,GAAK,OAAA;AAOX,SAAS,OAAsH,OAAA,EAAe;AACjJ,EAAA,OAAO,OAAA;AACX;ACRO,IAAM,QAAA,GAAW,CAAC,EAAE,SAAA,EAAW,WAAW,IAAA,GAAO,IAAA,EAAM,GAAG,KAAA,EAAM,KAAqB;AACxF,EAAA,uBACI,GAAA;AAAA,IAACA,IAAA;AAAA,IAAA;AAAA,MACI,GAAG,KAAA;AAAA,MACJ,IAAA,EAAM,YAAY,cAAA,GAAiB,aAAA;AAAA,MACnC,SAAA,EAAW,EAAA;AAAA,QACP,uBAAA;AAAA;AAAA,QAGA,SAAS,IAAA,IAAQ,SAAA;AAAA,QACjB,iCAAA;AAAA;AAAA,QAGA,SAAA,IAAa,oBAAA;AAAA,QACb,kCAAA;AAAA,QAEA;AAAA;AACJ;AAAA,GACJ;AAER,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;ACDhB,IAAM,UAAU,CAAC;AAAA,EACpB,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,KAAA,GAAQ,GAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb,OAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA,GAAS,CAAA;AAAA,EACT,WAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,YAAA;AAAA,EACA,GAAG;AACP,CAAA,KAAoB;AAChB,EAAA,MAAM,iBAAA,GAAoB,CAAC,UAAA,EAAY,SAAA,EAAW,eAAe,YAAY,CAAA,CAAE,SAAS,SAAS,CAAA;AACjG,EAAA,MAAM,kBAAA,GAAqB,CAAC,WAAA,EAAa,WAAA,EAAa,gBAAgB,cAAc,CAAA,CAAE,SAAS,SAAS,CAAA;AAExG,EAAA,MAAM,qBAAA,GAAwB,iBAAA,GAAoB,GAAA,GAAM,kBAAA,GAAqB,EAAA,GAAK,CAAA;AAElF,EAAA,uBACI,IAAA,CAACC,gBAAA,EAAA,EAAoB,GAAG,EAAE,OAAA,EAAS,KAAA,EAAO,UAAA,EAAY,UAAA,EAAY,MAAA,EAAQ,WAAA,EAAa,YAAA,EAAa,EAC/F,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,oBAEDC,GAAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACI,GAAG,YAAA;AAAA,QACJ,MAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAa,WAAA,IAAe,qBAAA;AAAA,QAC5B,SAAA,EAAW,CAAC,EAAE,UAAA,EAAY,SAAA,OAAgB,EAAA,CAAG,UAAA,IAAc,qBAAA,EAAuB,SAAA,IAAa,qBAAqB,CAAA;AAAA,QAEnH,QAAA,EAAA,CAAC,EAAE,UAAA,EAAY,SAAA,EAAU,qBACtB,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACG,SAAA,EAAW,EAAA;AAAA,cACP,gJAAA;AAAA,cACA,cAAc,MAAA,GAAS,MAAA;AAAA,cAEvB,UAAA,IACI,gNAAA;AAAA,cACJ,SAAA,IACI;AAAA,aACR;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,cAEzD,+BAAeA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oDAAoD,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,cAE/F,KAAA,oBACGA,GAAAA,CAACE,YAAA,EAAA,EACG,QAAA,kBAAAF,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACG,OAAA,EAAQ,aAAA;AAAA,kBACR,SAAA,EAAU,mJAAA;AAAA,kBAEV,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mDAAA,EAAoD;AAAA;AAAA,eAChE,EACJ;AAAA;AAAA;AAAA;AAER;AAAA;AAER,GAAA,EACJ,CAAA;AAER,CAAA;AAIO,IAAM,iBAAiB,CAAC,EAAE,UAAU,SAAA,EAAW,GAAG,aAAY,KAA2B;AAC5F,EAAA,uBACIA,GAAAA,CAACG,MAAA,EAAA,EAAY,GAAG,WAAA,EAAa,SAAA,EAAW,CAAC,MAAA,KAAW,EAAA,CAAG,4BAAA,EAA8B,OAAO,cAAc,UAAA,GAAa,SAAA,CAAU,MAAM,CAAA,GAAI,SAAS,GAC/I,QAAA,EACL,CAAA;AAER,CAAA;AC5FO,IAAM,KAAA,GAAQ,CAAC,EAAE,SAAA,EAAW,UAAA,EAAY,SAAS,kBAAA,EAAoB,SAAA,EAAW,GAAG,KAAA,EAAM,KAAkB;AAC9G,EAAA,uBACIC,IAAAA;AAAA,IAACC,OAAA;AAAA,IAAA;AAAA,MAKG,YAAA,EAAW,MAAA;AAAA,MACV,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,EAAA,CAAG,6EAAA,EAA+E,SAAS,CAAA;AAAA,MAErG,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,QAAA;AAAA,wBAEPL,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACG,SAAA,EAAW,EAAA;AAAA,cACP,4BAAA;AAAA,cACA,UAAA,IAAc,OAAA;AAAA,cACd,OAAO,eAAe,WAAA,IAAe,sBAAA;AAAA,cAErC,SAAA,IAAa,oBAAA;AAAA,cACb,OAAO,cAAc,WAAA,IAAe;AAAA,aACxC;AAAA,YACH,QAAA,EAAA;AAAA;AAAA,SAED;AAAA,QAEC,OAAA,oBACGA,GAAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,SAAS,WAAA,EAAa,kBAAA,EAAoB,SAAA,EAAU,KAAA,EAChE,QAAA,kBAAAA,GAAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YAIG,UAAA,EAAY,KAAA;AAAA,YACZ,SAAA,EAAU,yHAAA;AAAA,YAEV,QAAA,kBAAAA,GAAAA,CAACM,YAAA,EAAA,EAAW,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC,EACJ;AAAA;AAAA;AAAA,GAER;AAER,CAAA;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;ACxCb,IAAM,oBAAA,GAAuB,2CAAA;AAC7B,IAAM,yBAAA,GAA4B,2CAAA;AA6ClC,IAAM,YAAY,CAAC;AAAA,EACtB,GAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,IAAA,EAAM,IAAA;AAAA,EACN,WAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,IAAA,GAAO,MAAA;AAAA,EACP,GAAG;AACP,CAAA,KAAsB;AAClB,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,KAAK,CAAA;AAGhE,EAAA,MAAM,kBAAkB,OAAA,IAAW,SAAA;AACnC,EAAA,MAAM,cAAA,GAAiB,IAAA;AAGvB,EAAA,MAAM,OAAA,GAAU,WAAW,gBAAgB,CAAA;AAE3C,EAAA,MAAM,SAAA,GAAY,SAAS,IAAA,IAAQ,IAAA;AAEnC,EAAA,MAAMC,SAAQ,MAAA,CAAO;AAAA,IACjB,EAAA,EAAI;AAAA,MACA,MAAM,EAAA,CAAG,mBAAA,EAAqB,cAAA,IAAkB,MAAA,EAAQ,mBAAmB,MAAM,CAAA;AAAA,MACjF,WAAA,EAAa,+BAAA;AAAA,MACb,YAAA,EAAc,SAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACd;AAAA,IACA,EAAA,EAAI;AAAA,MACA,MAAM,EAAA,CAAG,mBAAA,EAAqB,cAAA,IAAkB,OAAA,EAAS,mBAAmB,MAAM,CAAA;AAAA,MAClF,WAAA,EAAa,eAAA;AAAA,MACb,YAAA,EAAc,SAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACd;AAAA,IACA,EAAA,EAAI;AAAA,MACA,MAAM,EAAA,CAAG,uBAAA,EAAyB,cAAA,IAAkB,SAAA,EAAW,mBAAmB,QAAQ,CAAA;AAAA,MAC1F,WAAA,EAAa,iBAAA;AAAA,MACb,YAAA,EAAc,WAAA;AAAA,MACd,QAAA,EAAU;AAAA;AACd,GACH,CAAA;AAED,EAAA,uBACIH,IAAAA;AAAA,IAACI,KAAA;AAAA,IAAA;AAAA,MACI,GAAG,EAAE,UAAA,EAAY,SAAA,EAAU;AAAA,MAC5B,GAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,CAAC,EAAE,aAAA,EAAe,YAAAC,WAAAA,EAAY,SAAA,EAAAC,YAAU,KAC/C,EAAA;AAAA,QACI,oNAAA;AAAA,QAEA,aAAA,IAAiB,CAACD,WAAAA,IAAc,CAACC,UAAAA,IAAa,oBAAA;AAAA;AAAA,QAG9CD,WAAAA,IAAc,+BAAA;AAAA,QACd,6DAAA;AAAA;AAAA,QAGAC,UAAAA,IAAa,CAAC,aAAA,IAAiB,qBAAA;AAAA,QAC/B,mCAAA;AAAA,QACA,uJAAA;AAAA;AAAA,QAGAA,cAAa,aAAA,IAAiB,yBAAA;AAAA,QAE9B,OAAA,EAAS,gBAAA;AAAA,QACT;AAAA,OACJ;AAAA,MAIH,QAAA,EAAA;AAAA,QAAA,IAAA,oBACGV,GAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,iDAAA,EAAmDO,MAAAA,CAAM,SAAS,CAAA,CAAE,WAAA,EAAa,OAAA,EAAS,aAAA,EAAe,aAAa,CAAA,EAAG,CAAA;AAAA,wBAIjJP,GAAAA;AAAA,UAACW,KAAA;AAAA,UAAA;AAAA,YACI,GAAI,UAAA;AAAA,YACL,GAAA;AAAA,YACA,QAAA,EAAU,UAAA;AAAA,YACV,IAAA,EAAM,IAAA,KAAS,UAAA,IAAc,iBAAA,GAAoB,MAAA,GAAS,IAAA;AAAA,YAC1D,WAAA;AAAA,YACA,SAAA,EAAW,EAAA;AAAA,cACP,iKAAA;AAAA,cACAJ,MAAAA,CAAM,SAAS,CAAA,CAAE,IAAA;AAAA,cACjB,OAAA,EAAS,cAAA;AAAA,cACT;AAAA;AACJ;AAAA,SACJ;AAAA,QAGC,OAAA,IAAW,IAAA,KAAS,UAAA,oBACjBP,GAAAA,CAAC,WAAQ,KAAA,EAAO,OAAA,EAAS,SAAA,EAAU,KAAA,EAC/B,QAAA,kBAAAA,GAAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACG,SAAA,EAAW,EAAA;AAAA,cACP,yKAAA;AAAA,cACAO,MAAAA,CAAM,SAAS,CAAA,CAAE,YAAA;AAAA,cACjB,OAAA,EAAS,gBAAA;AAAA,cACT;AAAA,aACJ;AAAA,YAEA,QAAA,kBAAAP,GAAAA,CAACM,YAAAA,EAAA,EAAW,WAAU,wBAAA,EAAyB;AAAA;AAAA,SACnD,EACJ,CAAA;AAAA,QAIH,IAAA,KAAS,8BACNN,GAAAA;AAAA,UAACY,QAAA;AAAA,UAAA;AAAA,YACG,SAAA,EAAW,EAAA;AAAA,cACP,8GAAA;AAAA,cACAL,MAAAA,CAAM,SAAS,CAAA,CAAE,YAAA;AAAA,cACjB,OAAA,EAAS,gBAAA;AAAA,cACT;AAAA;AACJ;AAAA,SACJ;AAAA,QAIH,IAAA,KAAS,8BACNP,GAAAA;AAAA,UAACG,MAAAA;AAAA,UAAA;AAAA,YACG,YAAA,EAAW,4BAAA;AAAA,YACX,OAAA,EAAS,MAAM,oBAAA,CAAqB,CAAC,iBAAiB,CAAA;AAAA,YACtD,SAAA,EAAW,EAAA;AAAA,cACP,oMAAA;AAAA,cACAI,MAAAA,CAAM,SAAS,CAAA,CAAE;AAAA,aACrB;AAAA,YAEC,QAAA,EAAA,iBAAA,mBAAoBP,GAAAA,CAACa,YAAA,EAAA,EAAO,SAAA,EAAU,wBAAA,EAAyB,CAAA,mBAAKb,GAAAA,CAACc,OAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EAAyB;AAAA;AAAA,SACjH;AAAA,QAIH,4BACGd,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACG,SAAA,EAAW,EAAA;AAAA,cACP,mKAAA;AAAA,cACAO,MAAAA,CAAM,SAAS,CAAA,CAAE;AAAA,aACrB;AAAA,YAEA,QAAA,kBAAAP,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACG,aAAA,EAAY,MAAA;AAAA,gBACZ,SAAA,EAAU,yHAAA;AAAA,gBAET,QAAA,EAAA,OAAO,QAAA,KAAa,QAAA,GAAW,QAAA,GAAW;AAAA;AAAA;AAC/C;AAAA;AACJ;AAAA;AAAA,GAER;AAER,CAAA;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;AAIxB,IAAM,gBAAA,GAAmB,aAAA,CAAqC,EAAE,CAAA;AClOhE,IAAM,KAAA,GAAQ;AAAA,EACV,EAAA,EAAI;AAAA,IACA,EAAA,EAAI,CAAA;AAAA,IACJ,CAAA,EAAG,CAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACP;AAAA,EACA,EAAA,EAAI;AAAA,IACA,EAAA,EAAI,EAAA;AAAA,IACJ,CAAA,EAAG,CAAA;AAAA,IACH,CAAA,EAAG;AAAA;AAEX,CAAA;AAEO,IAAM,MAAM,CAAC,EAAE,OAAO,IAAA,EAAM,GAAG,OAAM,KAAiE;AACzG,EAAA,uBACIA,IAAC,KAAA,EAAA,EAAI,KAAA,EAAO,MAAM,IAAI,CAAA,CAAE,EAAA,EAAI,MAAA,EAAQ,KAAA,CAAM,IAAI,EAAE,EAAA,EAAI,OAAA,EAAS,CAAA,IAAA,EAAO,KAAA,CAAM,IAAI,CAAA,CAAE,EAAE,CAAA,CAAA,EAAI,KAAA,CAAM,IAAI,CAAA,CAAE,EAAE,CAAA,CAAA,EAAI,MAAK,MAAA,EAAQ,GAAG,KAAA,EACpH,QAAA,kBAAAA,GAAAA,CAAC,QAAA,EAAA,EAAO,IAAI,KAAA,CAAM,IAAI,CAAA,CAAE,CAAA,EAAG,EAAA,EAAI,KAAA,CAAM,IAAI,CAAA,CAAE,CAAA,EAAG,CAAA,EAAG,KAAA,CAAM,IAAI,CAAA,CAAE,GAAG,IAAA,EAAK,cAAA,EAAe,MAAA,EAAO,cAAA,EAAe,CAAA,EAC9G,CAAA;AAER,CAAA;AClBA,IAAM,sBAAA,GAAyB,EAAA;AAC/B,IAAM,qBAAA,GAAwB,GAAA;AAG9B,IAAM,eAAA,GACF,2GAAA;AAEJ,IAAMO,MAAAA,GAAQ;AAAA,EACV,EAAA,EAAI,EAAE,GAAA,EAAK,qBAAA,EAAuB,eAAe,EAAA,EAAG;AAAA,EACpD,EAAA,EAAI,EAAE,GAAA,EAAK,mBAAA,EAAqB,eAAe,EAAA,EAAG;AAAA,EAClD,EAAA,EAAI,EAAE,GAAA,EAAK,qBAAA,EAAuB,eAAe,EAAA;AACrD,CAAA;AAGA,SAAS,4BAAA,CAA6B,EAAE,SAAA,EAAW,SAAA,EAAU,EAA8C;AACvG,EAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAE3C,EAAA,eAAA,CAAgB,MAAM;AAClB,IAAA,MAAM,OAAO,OAAA,CAAQ,OAAA;AACrB,IAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,CAAK,mBAAmB,UAAA,EAAY;AACxD,IAAA,MAAM,GAAA,GAAM,KAAK,cAAA,EAAe;AAChC,IAAA,IAAI,OAAO,CAAA,EAAG;AAEd,IAAA,IAAA,CAAK,KAAA,CAAM,eAAA,GAAkB,CAAA,EAAG,GAAG,CAAA,CAAA;AACnC,IAAA,IAAA,CAAK,KAAA,CAAM,gBAAA,GAAmB,CAAA,EAAG,GAAG,CAAA,CAAA;AAEpC,IAAA,IAAI,OAAO,IAAA,CAAK,OAAA,KAAY,UAAA,EAAY;AACpC,MAAA,IAAA,CAAK,MAAM,gBAAA,GAAmB,GAAA;AAC9B,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,OAAA,CAAQ,CAAC,EAAE,gBAAA,EAAkB,GAAA,EAAI,EAAG,EAAE,gBAAA,EAAkB,CAAA,EAAG,CAAA,EAAG;AAAA,MAC5E,QAAA,EAAU,qBAAA;AAAA,MACV,KAAA,EAAO,sBAAA;AAAA,MACP,MAAA,EAAQ,+BAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACT,CAAA;AACD,IAAA,OAAO,MAAM,KAAK,MAAA,EAAO;AAAA,EAC7B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACIP,GAAAA,CAAC,KAAA,EAAA,EAAI,eAAY,MAAA,EAAO,KAAA,EAAO,WAAW,MAAA,EAAQ,SAAA,EAAW,OAAA,EAAQ,WAAA,EAAY,MAAK,MAAA,EAAO,SAAA,EAAW,GAAG,OAAA,EAAS,SAAS,GACzH,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACG,GAAA,EAAK,OAAA;AAAA,MACL,CAAA,EAAE,wCAAA;AAAA,MACF,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe;AAAA;AAAA,GACnB,EACJ,CAAA;AAER;AAWO,IAAM,WAAA,GAAc,CAAC,EAAE,SAAA,EAAW,WAAW,UAAA,EAAY,UAAA,EAAY,IAAA,GAAO,IAAA,EAAK,KAAwB;AAC5G,EAAA,MAAM,EAAE,GAAA,EAAK,aAAA,EAAc,GAAIO,OAAM,IAAI,CAAA;AAEzC,EAAA,uBACIP,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACG,SAAA,EAAW,EAAA;AAAA,QACP,oIAAA;AAAA,QACA,GAAA;AAAA,QACA,aAAa,mCAAA,GAAsC,YAAA;AAAA,QACnD,UAAA,IAAc,+BAAA;AAAA,QACd,UAAA,IAAc,CAAC,UAAA,IAAc,aAAA;AAAA,QAC7B,SAAA,IAAa,CAAC,UAAA,IAAc,eAAA;AAAA,QAC5B;AAAA,OACJ;AAAA,MAEC,wCAAcA,GAAAA,CAAC,gCAA6B,SAAA,EAAW,aAAA,EAAe,WAAU,mCAAA,EAAoC;AAAA;AAAA,GACzH;AAER,CAAA;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AC3E1B,IAAM,gBAAA,GACF,uIAAA;AAOJ,IAAM,MAAA,GAAS;AAAA,EACX,EAAA,EAAI,EAAE,IAAA,EAAM,OAAA,EAAS,MAAM,UAAA,EAAW;AAAA,EACtC,EAAA,EAAI,EAAE,IAAA,EAAM,OAAA,EAAS,MAAM,QAAA,EAAS;AAAA,EACpC,EAAA,EAAI,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,UAAA;AACjC,CAAA;AAEO,IAAM,SAAA,GAAY,CAAC,EAAE,IAAA,GAAO,MAAM,SAAA,EAAW,GAAG,YAAW,KAAsB;AACpF,EAAA,uBACIA,GAAAA;AAAA,IAACG,MAAAA;AAAA,IAAA;AAAA,MACG,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,iBAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA,QACP,iNAAA;AAAA,QACA,gBAAA;AAAA,QACA,MAAA,CAAO,IAAI,CAAA,CAAE,IAAA;AAAA,QACb;AAAA,OACJ;AAAA,MACC,GAAG,UAAA;AAAA,MAEJ,QAAA,kBAAAH,GAAAA,CAACe,KAAA,EAAA,EAAO,SAAA,EAAW,EAAA,CAAG,mCAAmC,MAAA,CAAO,IAAI,CAAA,CAAE,IAAI,CAAA,EAAG;AAAA;AAAA,GACjF;AAER,CAAA;ACxBA,IAAMC,iBAAAA,GACF,uIAAA;AAEG,IAAM,SAAA,GAAY,CAAC,EAAE,GAAA,EAAK,KAAK,cAAA,GAAiB,IAAA,EAAM,WAAU,KAA0E;AAC7I,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,SAAS,KAAK,CAAA;AAE9C,EAAA,uBACIjB,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACG,SAAA,EAAW,EAAA;AAAA,QACP,2GAAA;AAAA,QACA,cAAA,IAAkB,0DAAA;AAAA,QAClB;AAAA,OACJ;AAAA,MAEC,QAAA,EAAA,GAAA,IAAO,CAAC,QAAA,mBACLA,IAAC,KAAA,EAAA,EAAI,iBAAA,EAAe,IAAA,EAAC,SAAA,EAAU,wBAAA,EAAyB,GAAA,EAAU,KAAU,OAAA,EAAS,MAAM,YAAY,IAAI,CAAA,EAAG,oBAE9GA,GAAAA,CAACkB,QAAA,EAAA,EAAO,SAAA,EAAU,2CAAA,EAA4C;AAAA;AAAA,GAEtE;AAER,CAAA;AAcA,IAAM,kBAAkBC,aAAAA,CAGrB;AAAA,EACC,aAAA,EAAe,MAAA;AAAA,EACf,IAAA,EAAM;AACV,CAAC,CAAA;AAOM,IAAM,QAAA,GAAW,CAAC,EAAE,KAAA,EAAO,aAAA,GAAgB,MAAA,EAAQ,IAAA,GAAO,IAAA,EAAM,QAAA,EAAU,GAAG,UAAA,EAAW,KAAqB;AAChH,EAAA,uBACInB,IAAC,eAAA,CAAgB,QAAA,EAAhB,EAAyB,KAAA,EAAO,EAAE,aAAA,EAAe,IAAA,EAAK,EACnD,QAAA,kBAAAA,IAACoB,UAAA,EAAA,EAAa,YAAA,EAAY,OAAO,aAAA,EAA8B,sBAAA,EAAwB,kBAAkB,QAAA,EAAW,GAAG,UAAA,EAClH,QAAA,EACL,CAAA,EACJ,CAAA;AAER,CAAA;AAEO,IAAM,OAAA,GAAUC,SAAA;AAEvB,IAAMC,OAAAA,GAAS;AAAA,EACX,EAAA,EAAI;AAAA,IACA,IAAA,EAAM;AAAA,MACF,IAAA,EAAM,kCAAA;AAAA,MACN,YAAA,EAAc,SAAA;AAAA,MACd,UAAA,EAAY,MAAA;AAAA,MACZ,OAAA,EAAS,QAAA;AAAA,MACT,SAAA,EAAW,MAAA;AAAA,MACX,SAAA,EAAW;AAAA,KACf;AAAA,IACA,OAAA,EAAS,OAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACX;AAAA,EACA,EAAA,EAAI;AAAA,IACA,IAAA,EAAM;AAAA,MACF,IAAA,EAAM,oCAAA;AAAA,MACN,YAAA,EAAc,MAAA;AAAA,MACd,UAAA,EAAY,SAAA;AAAA,MACZ,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,SAAA;AAAA,MACX,SAAA,EAAW;AAAA,KACf;AAAA,IACA,OAAA,EAAS,UAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACX;AAAA,EACA,EAAA,EAAI;AAAA,IACA,IAAA,EAAM;AAAA,MACF,IAAA,EAAM,iCAAA;AAAA,MACN,YAAA,EAAc,SAAA;AAAA,MACd,UAAA,EAAY,SAAA;AAAA,MACZ,OAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,MAAA;AAAA,MACX,SAAA,EAAW;AAAA,KACf;AAAA,IACA,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO;AAAA;AAEf,CAAA;AAIO,IAAM,MAAM,CAAC;AAAA,EAChB,EAAA;AAAA,EACA,SAAA;AAAA,EACA,oBAAA,GAAuB,IAAA;AAAA,EACvB,GAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACJ,CAAA,KAAmC;AAC/B,EAAA,MAAM,OAAA,GAAUC,WAAW,eAAe,CAAA;AAE1C,EAAA,MAAM,cAAA,GAAiB,4BACnBvB,GAAAA,CAAC,aAAU,GAAA,EAAK,SAAA,EAAW,GAAA,EAAI,QAAA,EAAS,cAAA,EAAgB,oBAAA,EAAsB,IAC9E,GAAA,mBACAA,GAAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,6BAA6B,YAAY,CAAA,EAAG,IAAA,EAAK,IAAA,EAAK,CAAA,GACzE,IAAA;AAEJ,EAAA,uBACIA,GAAAA;AAAA,IAACwB,KAAA;AAAA,IAAA;AAAA,MACG,EAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,OAAO,QAAA,KAAa,QAAA,GAAW,QAAA,GAAW,MAAA;AAAA,MACrD,SAAA,EAAW,CAAC,KAAA,KACR,EAAA;AAAA,QACI,sJAAA;AAAA,QACAR,iBAAAA;AAAA,QACAM,OAAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,CAAE,IAAA,CAAK,IAAA;AAAA;AAAA,QAG1B,SAAA,IAAaA,OAAAA,CAAO,OAAA,CAAQ,IAAI,EAAE,IAAA,CAAK,UAAA;AAAA;AAAA,QAAA,CAEtC,WAAW,KAAA,CAAM,cAAA,KAAmBA,QAAO,OAAA,CAAQ,IAAI,EAAE,IAAA,CAAK,SAAA;AAAA;AAAA,QAE/D,GAAA,IAAOA,OAAAA,CAAO,OAAA,CAAQ,IAAI,EAAE,IAAA,CAAK,OAAA;AAAA;AAAA,QAEjC,OAAO,KAAA,KAAU,QAAA,IAAYA,QAAO,OAAA,CAAQ,IAAI,EAAE,IAAA,CAAK,SAAA;AAAA;AAAA,QAEvD,OAAA,CAAQ,aAAA,KAAkB,MAAA,IAAU,EAAA,CAAG,gBAAA,EAAkBA,QAAO,OAAA,CAAQ,IAAI,CAAA,CAAE,IAAA,CAAK,YAAY,CAAA;AAAA;AAAA,QAE/F,UAAA,IAAc,oBAAA;AAAA,QAEd,OAAO,SAAA,KAAc,UAAA,GAAa,SAAA,CAAU,KAAK,CAAA,GAAI;AAAA,OACzD;AAAA,MAGH,QAAA,EAAA,CAAC,EAAE,UAAA,EAAY,UAAA,EAAAb,WAAAA,EAAY,gBAAe,qBACvCL,IAAAA,CAAAqB,QAAAA,EAAA,EACI,QAAA,EAAA;AAAA,wBAAArB,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2BkB,QAAO,OAAA,CAAQ,IAAI,CAAA,CAAE,OAAO,CAAA,EACrE,QAAA,EAAA;AAAA,UAAA,OAAA,CAAQ,aAAA,KAAkB,MAAA,oBAAUtB,GAAAA,CAAC,WAAA,EAAA,EAAY,MAAM,OAAA,CAAQ,IAAA,EAAM,UAAA,EAAwB,UAAA,EAAYS,WAAAA,EAAY,CAAA;AAAA,UAErH,cAAA;AAAA,UAEA,QAAA;AAAA,UAEA,OAAO,KAAA,KAAU,QAAA,oBACdT,IAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,wEAAA,EAA0EsB,QAAO,OAAA,CAAQ,IAAI,CAAA,CAAE,KAAK,GACnH,QAAA,EAAA,KAAA,EACL;AAAA,SAAA,EAER,CAAA;AAAA,QAAA,CAEE,WAAW,cAAA,qBACTtB,GAAAA,CAAC,SAAA,EAAA,EAAU,MAAM,OAAA,CAAQ,IAAA,EAAM,mBAAA,EAAqB,cAAA,EAAgB,SAAS,MAAM,EAAA,IAAM,UAAU,EAAA,CAAG,QAAA,EAAU,CAAA,EAAG;AAAA,OAAA,EAE3H;AAAA;AAAA,GAER;AAER,CAAA;AC/HO,IAAM,iBAAiB,CAAC;AAAA,EAC3B,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA,EAClB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA;AACJ,CAAA,KAA2B;AACvB,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,SAAA,GAAY0B,OAAO,CAAC,CAAA;AAC1B,EAAA,MAAM,MAAA,GAAS,MAAM,CAAA,IAAA,EAAO,SAAA,CAAU,OAAA,EAAS,CAAA,CAAA;AAE/C,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIT,SAAS,EAAE,CAAA;AAE/C,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,IAAIA,QAAAA,CAAqB,MAAA,CAAO,gBAAgB,EAAC,EAAG,IAAI,CAACU,MAAAA,MAAW,EAAE,EAAA,EAAI,MAAA,IAAU,KAAA,EAAAA,MAAAA,GAAQ,CAAC,CAAA;AAEvI,EAAA,MAAM,mBAAA,GAAsBD,MAAAA,CAAiB,EAAE,CAAA;AAC/C,EAAA,MAAM,iBAAA,GAAoBA,MAAAA,CAAmB,EAAE,CAAA;AAE/C,EAAA,MAAM,WAAW,MAAM;AACnB,IAAA,IAAI,CAAC,cAAc,OAAO,eAAA;AAE1B,IAAA,MAAM,OAAO,mBAAA,CAAoB,OAAA;AACjC,IAAA,IAAI,IAAA,KAAS,KAAA,EAAO,OAAO,iBAAA,CAAkB,OAAA;AAE7C,IAAA,MAAM,aAAa,iBAAA,CAAkB,OAAA;AACrC,IAAA,MAAM,aAAyB,EAAC;AAChC,IAAA,MAAM,cAAA,uBAAqB,GAAA,EAAY;AAEvC,IAAA,KAAA,MAAWC,UAAS,KAAA,EAAO;AACvB,MAAA,MAAM,QAAA,GAAW,UAAA,CAAW,SAAA,CAAU,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,KAAA,KAAUA,MAAAA,IAAS,CAAC,cAAA,CAAe,GAAA,CAAI,CAAC,CAAC,CAAA;AAC3F,MAAA,IAAI,aAAa,EAAA,EAAI;AACjB,QAAA,cAAA,CAAe,IAAI,QAAQ,CAAA;AAC3B,QAAA,UAAA,CAAW,IAAA,CAAK,UAAA,CAAW,QAAQ,CAAC,CAAA;AAAA,MACxC,CAAA,MAAO;AACH,QAAA,UAAA,CAAW,KAAK,EAAE,EAAA,EAAI,QAAO,EAAG,KAAA,EAAAA,QAAO,CAAA;AAAA,MAC3C;AAAA,IACJ;AAEA,IAAA,mBAAA,CAAoB,OAAA,GAAU,KAAA;AAC9B,IAAA,iBAAA,CAAkB,OAAA,GAAU,UAAA;AAC5B,IAAA,OAAO,UAAA;AAAA,EACX,CAAA,GAAG;AAEH,EAAA,MAAM,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK,CAAA;AAEvC,EAAA,MAAM,MAAA,GAAS,WAAA;AAAA,IACX,CAAC,IAAA,KAAiB;AACd,MAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAC1B,MAAA,IAAI,CAAC,SAAS,OAAO,KAAA;AACrB,MAAA,IAAI,CAAC,eAAA,IAAmB,IAAA,CAAK,QAAA,CAAS,OAAO,GAAG,OAAO,KAAA;AACvD,MAAA,IAAI,OAAA,IAAW,IAAA,CAAK,MAAA,IAAU,OAAA,EAAS,OAAO,KAAA;AAC9C,MAAA,IAAI,QAAA,IAAY,CAAC,QAAA,CAAS,OAAO,GAAG,OAAO,KAAA;AAE3C,MAAA,MAAM,WAAqB,EAAE,EAAA,EAAI,MAAA,EAAO,EAAG,OAAO,OAAA,EAAQ;AAC1D,MAAA,MAAM,UAAA,GAAa,CAAC,GAAG,OAAA,EAAS,QAAQ,CAAA;AAExC,MAAA,IAAI,CAAC,YAAA,EAAc;AACf,QAAA,kBAAA,CAAmB,UAAU,CAAA;AAAA,MACjC;AACA,MAAA,QAAA,GAAW,WAAW,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,KAAK,CAAC,CAAA;AACzC,MAAA,UAAA,GAAa,OAAO,CAAA;AACpB,MAAA,OAAO,IAAA;AAAA,IACX,CAAA;AAAA,IACA,CAAC,MAAM,OAAA,EAAS,YAAA,EAAc,iBAAiB,OAAA,EAAS,QAAA,EAAU,UAAU,UAAU;AAAA,GAC1F;AAEA,EAAA,MAAM,SAAA,GAAY,WAAA;AAAA,IACd,CAAC,EAAA,KAAe;AACZ,MAAA,MAAM,QAAQ,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC7C,MAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,MAAA,MAAM,aAAa,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAEpD,MAAA,IAAI,CAAC,YAAA,EAAc;AACf,QAAA,kBAAA,CAAmB,UAAU,CAAA;AAAA,MACjC;AACA,MAAA,QAAA,GAAW,WAAW,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,KAAK,CAAC,CAAA;AACzC,MAAA,YAAA,GAAe,MAAM,KAAK,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,CAAC,OAAA,EAAS,YAAA,EAAc,QAAA,EAAU,YAAY;AAAA,GAClD;AAEA,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACjB,CAAC,IAAA,KAAmB;AAChB,MAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACpB,QAAA,SAAA,CAAU,GAAA,CAAI,UAAU,CAAA;AAAA,MAC5B;AAAA,IACJ,CAAA;AAAA,IACA,CAAC,SAAS;AAAA,GACd;AAEA,EAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAA2C;AACnE,IAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACvB,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,IAAI,MAAA,CAAO,UAAU,CAAA,EAAG;AACpB,QAAA,aAAA,CAAc,EAAE,CAAA;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ,CAAA;AAEA,EAAA,uBACIvB,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,IAAA,KAAS,IAAA,GAAO,SAAA,GAAY,OAAA,EAAS,SAAS,CAAA,EAC9E,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACV,QAAA,EAAA;AAAA,MAAA,KAAA,oBAASJ,GAAAA,CAAC,KAAA,EAAA,EAAM,YAAY,qBAAA,GAAwB,KAAA,GAAQ,YAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBAEhFA,GAAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACG,IAAA;AAAA,UACA,OAAA;AAAA,UACA,WAAA;AAAA,UACA,SAAA;AAAA,UACA,UAAA;AAAA,UACA,KAAA,EAAO,UAAA;AAAA,UACP,UAAU,CAAC,CAAA,KAAM,aAAA,CAAc,CAAA,CAAE,cAAc,KAAK,CAAA;AAAA,UACpD,SAAA,EAAW;AAAA;AAAA;AACf,KAAA,EACJ,CAAA;AAAA,IAEC,OAAA,CAAQ,MAAA,GAAS,CAAA,oBACdA,IAAC,QAAA,EAAA,EAAS,KAAA,EAAO,KAAA,IAAS,MAAA,EAAQ,MAAM,IAAA,KAAS,IAAA,GAAO,IAAA,GAAO,IAAA,EAAM,UAAU,YAAA,EAC3E,QAAA,kBAAAA,GAAAA,CAAC,OAAA,EAAA,EAAQ,WAAU,6CAAA,EAA8C,KAAA,EAAO,OAAA,EACnE,QAAA,EAAA,CAAC,yBACEA,GAAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,UAAA,EACb,QAAA,EAAA,IAAA,CAAK,KAAA,EACV,GAER,CAAA,EACJ,CAAA;AAAA,IAGH,IAAA,IAAQ,IAAA,CAAK,MAAA,KAAW,CAAA,oBACrBA,GAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAsB,SAAA,EAAW,EAAA,CAAG,IAAA,KAAS,IAAA,IAAQ,SAAS,GACnE,QAAA,EAAA,IAAA,EACL;AAAA,GAAA,EAER,CAAA;AAER","file":"input-tags-outer.js","sourcesContent":["import { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n extend: {\n theme: {\n text: [\"display-xs\", \"display-sm\", \"display-md\", \"display-lg\", \"display-xl\", \"display-2xl\"],\n },\n },\n});\n\n/**\n * This function is a wrapper around the twMerge function.\n * It is used to merge the classes inside style objects.\n */\nexport const cx = twMerge;\n\n/**\n * This function does nothing besides helping us to be able to\n * sort the classes inside style objects which is not supported\n * by the Tailwind IntelliSense by default.\n */\nexport function sortCx<T extends Record<string, string | number | Record<string, string | number | Record<string, string | number>>>>(classes: T): T {\n return classes;\n}\n","\"use client\";\n\nimport type { ReactNode, Ref } from \"react\";\nimport type { TextProps as AriaTextProps } from \"react-aria-components\";\nimport { Text as AriaText } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\ninterface HintTextProps extends AriaTextProps {\n /** Indicates that the hint text is an error message. */\n isInvalid?: boolean;\n ref?: Ref<HTMLElement>;\n size?: \"sm\" | \"md\";\n children: ReactNode;\n}\n\nexport const HintText = ({ isInvalid, className, size = \"md\", ...props }: HintTextProps) => {\n return (\n <AriaText\n {...props}\n slot={isInvalid ? \"errorMessage\" : \"description\"}\n className={cx(\n \"text-sm text-tertiary\",\n\n // Size\n size === \"sm\" && \"text-xs\",\n \"in-data-[input-size=sm]:text-xs\",\n\n // Invalid state\n isInvalid && \"text-error-primary\",\n \"group-invalid:text-error-primary\",\n\n className,\n )}\n />\n );\n};\n\nHintText.displayName = \"HintText\";\n","\"use client\";\n\n/** Figma: Tooltip (1052:485) */\n\nimport type { ReactNode } from \"react\";\nimport type {\n ButtonProps as AriaButtonProps,\n TooltipProps as AriaTooltipProps,\n TooltipTriggerComponentProps as AriaTooltipTriggerComponentProps,\n} from \"react-aria-components\";\nimport { Button as AriaButton, OverlayArrow as AriaOverlayArrow, Tooltip as AriaTooltip, TooltipTrigger as AriaTooltipTrigger } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\ninterface TooltipProps extends AriaTooltipTriggerComponentProps, Omit<AriaTooltipProps, \"children\"> {\n /**\n * The title of the tooltip.\n */\n title: ReactNode;\n /**\n * The description of the tooltip.\n */\n description?: ReactNode;\n /**\n * Whether to show the arrow on the tooltip.\n *\n * @default false\n */\n arrow?: boolean;\n /**\n * Delay in milliseconds before the tooltip is shown on first hover.\n *\n * @default 100\n */\n delay?: number;\n}\n\nexport const Tooltip = ({\n title,\n description,\n children,\n arrow = false,\n delay = 100,\n closeDelay = 0,\n trigger,\n isDisabled,\n isOpen,\n defaultOpen,\n offset = 6,\n crossOffset,\n placement = \"top\",\n onOpenChange,\n ...tooltipProps\n}: TooltipProps) => {\n const isTopOrBottomLeft = [\"top left\", \"top end\", \"bottom left\", \"bottom end\"].includes(placement);\n const isTopOrBottomRight = [\"top right\", \"top start\", \"bottom right\", \"bottom start\"].includes(placement);\n // Set negative cross offset for left and right placement to visually balance the tooltip.\n const calculatedCrossOffset = isTopOrBottomLeft ? -12 : isTopOrBottomRight ? 12 : 0;\n\n return (\n <AriaTooltipTrigger {...{ trigger, delay, closeDelay, isDisabled, isOpen, defaultOpen, onOpenChange }}>\n {children}\n\n <AriaTooltip\n {...tooltipProps}\n offset={offset}\n placement={placement}\n crossOffset={crossOffset ?? calculatedCrossOffset}\n className={({ isEntering, isExiting }) => cx(isEntering && \"ease-out animate-in\", isExiting && \"ease-in animate-out\")}\n >\n {({ isEntering, isExiting }) => (\n <div\n className={cx(\n \"z-50 flex max-w-xs origin-(--trigger-anchor-point) flex-col items-start gap-1 rounded-lg bg-primary-solid px-3 shadow-lg will-change-transform\",\n description ? \"py-3\" : \"py-2\",\n\n isEntering &&\n \"ease-out animate-in fade-in zoom-in-95 in-placement-left:slide-in-from-right-0.5 in-placement-right:slide-in-from-left-0.5 in-placement-top:slide-in-from-bottom-0.5 in-placement-bottom:slide-in-from-top-0.5\",\n isExiting &&\n \"ease-in animate-out fade-out zoom-out-95 in-placement-left:slide-out-to-right-0.5 in-placement-right:slide-out-to-left-0.5 in-placement-top:slide-out-to-bottom-0.5 in-placement-bottom:slide-out-to-top-0.5\",\n )}\n >\n <span className=\"text-xs font-semibold text-white\">{title}</span>\n\n {description && <span className=\"text-xs font-medium text-tooltip-supporting-text\">{description}</span>}\n\n {arrow && (\n <AriaOverlayArrow>\n <svg\n viewBox=\"0 0 100 100\"\n className=\"size-2.5 fill-bg-primary-solid in-placement-left:-rotate-90 in-placement-right:rotate-90 in-placement-top:rotate-0 in-placement-bottom:rotate-180\"\n >\n <path d=\"M0,0 L35.858,35.858 Q50,50 64.142,35.858 L100,0 Z\" />\n </svg>\n </AriaOverlayArrow>\n )}\n </div>\n )}\n </AriaTooltip>\n </AriaTooltipTrigger>\n );\n};\n\ninterface TooltipTriggerProps extends AriaButtonProps {}\n\nexport const TooltipTrigger = ({ children, className, ...buttonProps }: TooltipTriggerProps) => {\n return (\n <AriaButton {...buttonProps} className={(values) => cx(\"h-max w-max outline-hidden\", typeof className === \"function\" ? className(values) : className)}>\n {children}\n </AriaButton>\n );\n};\n","\"use client\";\n\nimport type { ReactNode, Ref } from \"react\";\nimport { QuestionIcon as HelpCircle } from \"@phosphor-icons/react/dist/csr/Question\";\nimport type { LabelProps as AriaLabelProps } from \"react-aria-components\";\nimport { Label as AriaLabel } from \"react-aria-components\";\nimport { Tooltip, TooltipTrigger } from \"@/components/base/tooltip/tooltip\";\nimport { cx } from \"@/utils/cx\";\n\ninterface LabelProps extends AriaLabelProps {\n children: ReactNode;\n isInvalid?: boolean;\n isRequired?: boolean;\n tooltip?: string;\n tooltipDescription?: string;\n ref?: Ref<HTMLLabelElement>;\n}\n\nexport const Label = ({ isInvalid, isRequired, tooltip, tooltipDescription, className, ...props }: LabelProps) => {\n return (\n <AriaLabel\n // Used for conditionally hiding/showing the label element via CSS:\n // <Input label=\"Visible only on mobile\" className=\"lg:**:data-label:hidden\" />\n // or\n // <Input label=\"Visible only on mobile\" className=\"lg:label:hidden\" />\n data-label=\"true\"\n {...props}\n className={cx(\"flex cursor-default items-center gap-0.5 text-sm font-medium text-secondary\", className)}\n >\n {props.children}\n\n <span\n className={cx(\n \"hidden text-brand-tertiary\",\n isRequired && \"block\",\n typeof isRequired === \"undefined\" && \"group-required:block\",\n\n isInvalid && \"text-error-primary\",\n typeof isInvalid === \"undefined\" && \"group-invalid:text-error-primary\",\n )}\n >\n *\n </span>\n\n {tooltip && (\n <Tooltip title={tooltip} description={tooltipDescription} placement=\"top\">\n <TooltipTrigger\n // `TooltipTrigger` inherits the disabled state from the parent form field\n // but we don't that. We want the tooltip be enabled even if the parent\n // field is disabled.\n isDisabled={false}\n className=\"cursor-pointer text-fg-quaternary transition duration-200 hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover\"\n >\n <HelpCircle className=\"size-4\" />\n </TooltipTrigger>\n </Tooltip>\n )}\n </AriaLabel>\n );\n};\n\nLabel.displayName = \"Label\";\n","\"use client\";\n\nimport { type ComponentType, type HTMLAttributes, type ReactNode, type Ref, createContext, useContext, useState } from \"react\";\nimport { EyeIcon as Eye } from \"@phosphor-icons/react/dist/csr/Eye\";\nimport { EyeSlashIcon as EyeOff } from \"@phosphor-icons/react/dist/csr/EyeSlash\";\nimport { QuestionIcon as HelpCircle } from \"@phosphor-icons/react/dist/csr/Question\";\nimport { InfoIcon as InfoCircle } from \"@phosphor-icons/react/dist/csr/Info\";\nimport type { InputProps as AriaInputProps, TextFieldProps as AriaTextFieldProps } from \"react-aria-components\";\nimport { Button as AriaButton, Group as AriaGroup, Input as AriaInput, TextField as AriaTextField } from \"react-aria-components\";\nimport { HintText } from \"@/components/base/input/hint-text\";\nimport { Label } from \"@/components/base/input/label\";\nimport { Tooltip, TooltipTrigger } from \"@/components/base/tooltip/tooltip\";\nimport { cx, sortCx } from \"@/utils/cx\";\n\n/**\n * Figma: Inputs (85:1269)\n *\n * Default: border (1px) border-primary + shadow-xs.\n * Focus: 1px border-brand + inset ring-brand (2px visual, no layout shift from border-2).\n * Error default: border-error_subtle; error focus: border-error + inset ring-error.\n */\nexport const inputFocusRingShadow = \"border-brand ring-1 ring-inset ring-brand\";\nexport const inputErrorFocusRingShadow = \"border-error ring-1 ring-inset ring-error\";\n/** Shell focus overlay — border + inset ring on one ::after above children (no host border-brand; avoids double-ring gap). */\nexport const inputFocusRingShellOverlay =\n \"after:pointer-events-none after:absolute after:-inset-px after:z-10 after:rounded-lg after:border after:border-solid after:border-brand after:ring-1 after:ring-inset after:ring-brand after:content-['']\";\nexport const inputErrorFocusRingShellOverlay =\n \"after:pointer-events-none after:absolute after:-inset-px after:z-10 after:rounded-lg after:border after:border-solid after:border-error after:ring-1 after:ring-inset after:ring-error after:content-['']\";\nexport const inputErrorFocusRingGroupInvalidShellOverlay =\n \"group-invalid:focus-within:after:pointer-events-none group-invalid:focus-within:after:absolute group-invalid:focus-within:after:-inset-px group-invalid:focus-within:after:z-10 group-invalid:focus-within:after:rounded-lg group-invalid:focus-within:after:border group-invalid:focus-within:after:border-solid group-invalid:focus-within:after:border-error group-invalid:focus-within:after:ring-1 group-invalid:focus-within:after:ring-inset group-invalid:focus-within:after:ring-error group-invalid:focus-within:after:content-['']\";\nexport const inputFocusVisibleRingShadow =\n \"focus-visible:outline-none focus-visible:border-brand focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-brand\";\nexport const inputErrorFocusVisibleRingShadow =\n \"focus-visible:outline-none focus-visible:border-error focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-error\";\n\nexport interface InputBaseProps extends Omit<AriaInputProps, \"size\"> {\n /** Tooltip message on hover. */\n tooltip?: string;\n /** Whether the input is invalid. */\n isInvalid?: boolean;\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n /** Whether the input is required. */\n isRequired?: boolean;\n /**\n * Input size.\n * @default \"sm\"\n */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Placeholder text. */\n placeholder?: string;\n /** Class name for the icon. */\n iconClassName?: string;\n /** Class name for the input. */\n inputClassName?: string;\n /** Class name for the input wrapper. */\n wrapperClassName?: string;\n /** Class name for the tooltip. */\n tooltipClassName?: string;\n /** Keyboard shortcut to display. */\n shortcut?: string | boolean;\n ref?: Ref<HTMLInputElement>;\n groupRef?: Ref<HTMLDivElement>;\n /** Icon component to display on the left side of the input. */\n icon?: ComponentType<HTMLAttributes<HTMLOrSVGElement>>;\n}\n\nexport const InputBase = ({\n ref,\n tooltip,\n shortcut,\n groupRef,\n size = \"md\",\n isInvalid,\n isDisabled,\n isRequired,\n icon: Icon,\n placeholder,\n wrapperClassName,\n tooltipClassName,\n inputClassName,\n iconClassName,\n type = \"text\",\n ...inputProps\n}: InputBaseProps) => {\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n\n // Check if the input has a leading icon or tooltip\n const hasTrailingIcon = tooltip || isInvalid;\n const hasLeadingIcon = Icon;\n\n // If the input is inside a `TextFieldContext`, use its context to simplify applying styles\n const context = useContext(TextFieldContext);\n\n const inputSize = context?.size || size;\n\n const sizes = sortCx({\n sm: {\n root: cx(\"px-3 py-2 text-sm\", hasLeadingIcon && \"pl-9\", hasTrailingIcon && \"pr-9\"),\n iconLeading: \"left-3 size-4 stroke-[2.25px]\",\n iconTrailing: \"right-3\",\n shortcut: \"pr-1.5\",\n },\n md: {\n root: cx(\"px-3 py-2 text-md\", hasLeadingIcon && \"pl-10\", hasTrailingIcon && \"pr-9\"),\n iconLeading: \"left-3 size-5\",\n iconTrailing: \"right-3\",\n shortcut: \"pr-2\",\n },\n lg: {\n root: cx(\"px-3.5 py-2.5 text-md\", hasLeadingIcon && \"pl-10.5\", hasTrailingIcon && \"pr-9.5\"),\n iconLeading: \"left-3.5 size-5\",\n iconTrailing: \"right-3.5\",\n shortcut: \"pr-2.5\",\n },\n });\n\n return (\n <AriaGroup\n {...{ isDisabled, isInvalid }}\n ref={groupRef}\n className={({ isFocusWithin, isDisabled, isInvalid }) =>\n cx(\n \"group/input relative flex w-full flex-row place-content-center place-items-center rounded-lg border border-solid border-primary bg-primary shadow-xs transition-[border-color,box-shadow] duration-100 ease-linear\",\n\n isFocusWithin && !isDisabled && !isInvalid && inputFocusRingShadow,\n\n // Disabled state styles\n isDisabled && \"cursor-not-allowed opacity-50\",\n \"group-disabled:cursor-not-allowed group-disabled:opacity-50\",\n\n // Invalid state styles\n isInvalid && !isFocusWithin && \"border-error_subtle\",\n \"group-invalid:border-error_subtle\",\n \"group-invalid:focus-within:border-error group-invalid:focus-within:ring-1 group-invalid:focus-within:ring-inset group-invalid:focus-within:ring-error\",\n\n // Invalid + focus — darker error stroke (not brand)\n isInvalid && isFocusWithin && inputErrorFocusRingShadow,\n\n context?.wrapperClassName,\n wrapperClassName,\n )\n }\n >\n {/* Leading icon and Payment icon */}\n {Icon && (\n <Icon className={cx(\"pointer-events-none absolute text-fg-quaternary\", sizes[inputSize].iconLeading, context?.iconClassName, iconClassName)} />\n )}\n\n {/* Input field */}\n <AriaInput\n {...(inputProps as AriaInputProps)}\n ref={ref}\n required={isRequired}\n type={type === \"password\" && isPasswordVisible ? \"text\" : type}\n placeholder={placeholder}\n className={cx(\n \"m-0 w-full bg-transparent text-primary ring-0 outline-hidden placeholder:text-placeholder autofill:rounded-lg autofill:text-primary disabled:cursor-not-allowed\",\n sizes[inputSize].root,\n context?.inputClassName,\n inputClassName,\n )}\n />\n\n {/* Tooltip and help icon */}\n {tooltip && type !== \"password\" && (\n <Tooltip title={tooltip} placement=\"top\">\n <TooltipTrigger\n className={cx(\n \"absolute cursor-pointer text-fg-quaternary transition duration-100 ease-linear group-invalid/input:hidden hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover\",\n sizes[inputSize].iconTrailing,\n context?.tooltipClassName,\n tooltipClassName,\n )}\n >\n <HelpCircle className=\"size-4 stroke-[2.25px]\" />\n </TooltipTrigger>\n </Tooltip>\n )}\n\n {/* Invalid icon */}\n {type !== \"password\" && (\n <InfoCircle\n className={cx(\n \"pointer-events-none absolute hidden size-4 stroke-[2.25px] text-fg-error-secondary group-invalid/input:block\",\n sizes[inputSize].iconTrailing,\n context?.tooltipClassName,\n tooltipClassName,\n )}\n />\n )}\n\n {/* Password visibility toggle */}\n {type === \"password\" && (\n <AriaButton\n aria-label=\"Toggle password visibility\"\n onClick={() => setIsPasswordVisible(!isPasswordVisible)}\n className={cx(\n \"absolute flex cursor-pointer items-center justify-center text-fg-quaternary transition duration-100 ease-linear hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover focus:outline-hidden\",\n sizes[inputSize].iconTrailing,\n )}\n >\n {isPasswordVisible ? <EyeOff className=\"size-4 stroke-[2.25px]\" /> : <Eye className=\"size-4 stroke-[2.25px]\" />}\n </AriaButton>\n )}\n\n {/* Shortcut */}\n {shortcut && (\n <div\n className={cx(\n \"pointer-events-none absolute inset-y-0.5 right-0.5 z-10 hidden items-center rounded-r-[inherit] bg-linear-to-r from-transparent to-bg-primary to-40% pl-8 md:flex\",\n sizes[inputSize].shortcut,\n )}\n >\n <span\n aria-hidden=\"true\"\n className=\"pointer-events-none rounded px-1 py-px text-xs font-medium text-quaternary ring-1 ring-secondary select-none ring-inset\"\n >\n {typeof shortcut === \"string\" ? shortcut : \"⌘K\"}\n </span>\n </div>\n )}\n </AriaGroup>\n );\n};\n\nInputBase.displayName = \"InputBase\";\n\ninterface TextFieldContextProps extends Partial<Pick<InputBaseProps, \"size\" | \"wrapperClassName\" | \"inputClassName\" | \"iconClassName\" | \"tooltipClassName\">> {}\n\nconst TextFieldContext = createContext<TextFieldContextProps>({});\n\nexport interface TextFieldProps extends AriaTextFieldProps, TextFieldContextProps {}\n\nexport const TextField = ({ className, size = \"md\", inputClassName, wrapperClassName, iconClassName, tooltipClassName, ...props }: TextFieldProps) => {\n return (\n <TextFieldContext.Provider value={{ inputClassName, wrapperClassName, iconClassName, tooltipClassName, size }}>\n <AriaTextField\n {...props}\n data-input-wrapper\n data-input-size={size}\n className={(state) =>\n cx(\"group flex h-max w-full flex-col items-start justify-start gap-1.5\", typeof className === \"function\" ? className(state) : className)\n }\n />\n </TextFieldContext.Provider>\n );\n};\n\nTextField.displayName = \"TextField\";\n\nexport interface InputProps\n extends\n AriaTextFieldProps,\n Pick<\n InputBaseProps,\n | \"ref\"\n | \"placeholder\"\n | \"icon\"\n | \"shortcut\"\n | \"tooltip\"\n | \"groupRef\"\n | \"size\"\n | \"wrapperClassName\"\n | \"inputClassName\"\n | \"iconClassName\"\n | \"tooltipClassName\"\n > {\n /** Label text for the input */\n label?: string;\n /** Helper text displayed below the input */\n hint?: ReactNode;\n /** Whether to hide required indicator from label */\n hideRequiredIndicator?: boolean;\n}\n\nexport const Input = ({\n size = \"md\",\n placeholder,\n icon: Icon,\n label,\n hint,\n shortcut,\n hideRequiredIndicator,\n className,\n ref,\n groupRef,\n tooltip,\n iconClassName,\n inputClassName,\n wrapperClassName,\n tooltipClassName,\n type = \"text\",\n ...props\n}: InputProps) => {\n return (\n <TextField aria-label={!label ? placeholder : undefined} {...props} size={size} className={className}>\n {({ isRequired, isInvalid }) => (\n <>\n {label && (\n <Label isRequired={hideRequiredIndicator ? !hideRequiredIndicator : isRequired} isInvalid={isInvalid}>\n {label}\n </Label>\n )}\n\n <InputBase\n {...{\n ref,\n groupRef,\n size,\n placeholder,\n icon: Icon,\n shortcut,\n iconClassName,\n inputClassName,\n wrapperClassName,\n tooltipClassName,\n tooltip,\n type,\n isInvalid,\n }}\n />\n\n {hint && <HintText isInvalid={isInvalid}>{hint}</HintText>}\n </>\n )}\n </TextField>\n );\n};\n\nInput.displayName = \"Input\";\n","\"use client\";\n\nimport type { HTMLAttributes } from \"react\";\n\nconst sizes = {\n sm: {\n wh: 8,\n c: 4,\n r: 2.5,\n },\n md: {\n wh: 10,\n c: 5,\n r: 4,\n },\n};\n\nexport const Dot = ({ size = \"md\", ...props }: HTMLAttributes<HTMLOrSVGElement> & { size?: \"sm\" | \"md\" }) => {\n return (\n <svg width={sizes[size].wh} height={sizes[size].wh} viewBox={`0 0 ${sizes[size].wh} ${sizes[size].wh}`} fill=\"none\" {...props}>\n <circle cx={sizes[size].c} cy={sizes[size].c} r={sizes[size].r} fill=\"currentColor\" stroke=\"currentColor\" />\n </svg>\n );\n};\n","\"use client\";\n\nimport { useLayoutEffect, useRef } from \"react\";\nimport { cx } from \"@/utils/cx\";\n\nconst CHECKBOX_TICK_DELAY_MS = 60;\nconst CHECKBOX_TICK_DRAW_MS = 100;\n\n/** Figma Focus rings/focus-ring — 2px surface gap + 4px brand ring (matches Checkbox). */\nconst focusRingShadow =\n \"outline-none [box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]\";\n\nconst sizes = {\n sm: { box: \"size-3.5 rounded-xs\", iconPixelSize: 10 },\n md: { box: \"size-4 rounded-xs\", iconPixelSize: 12 },\n lg: { box: \"size-4.5 rounded-xs\", iconPixelSize: 13 },\n} as const;\n\n/** Draw-on-check tick animation — remounts when checked so it replays each time. */\nfunction TagCheckboxAnimatedCheckMark({ pixelSize, className }: { pixelSize: number; className?: string }) {\n const pathRef = useRef<SVGPathElement>(null);\n\n useLayoutEffect(() => {\n const path = pathRef.current;\n if (!path || typeof path.getTotalLength !== \"function\") return;\n const len = path.getTotalLength();\n if (len <= 0) return;\n\n path.style.strokeDasharray = `${len}`;\n path.style.strokeDashoffset = `${len}`;\n\n if (typeof path.animate !== \"function\") {\n path.style.strokeDashoffset = \"0\";\n return;\n }\n\n const anim = path.animate([{ strokeDashoffset: len }, { strokeDashoffset: 0 }], {\n duration: CHECKBOX_TICK_DRAW_MS,\n delay: CHECKBOX_TICK_DELAY_MS,\n easing: \"cubic-bezier(0.45, 0, 0.2, 1)\",\n fill: \"forwards\",\n });\n return () => anim.cancel();\n }, []);\n\n return (\n <svg aria-hidden=\"true\" width={pixelSize} height={pixelSize} viewBox=\"0 0 14 14\" fill=\"none\" className={cx(\"block\", className)}>\n <path\n ref={pathRef}\n d=\"M2.33325 7L5.24992 9.91667L11.6666 3.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\ninterface TagCheckboxProps {\n size?: keyof typeof sizes;\n className?: string;\n isFocused?: boolean;\n isSelected?: boolean;\n isDisabled?: boolean;\n}\n\n/** Figma: _Tag checkbox (3308:406033) */\nexport const TagCheckbox = ({ className, isFocused, isSelected, isDisabled, size = \"sm\" }: TagCheckboxProps) => {\n const { box, iconPixelSize } = sizes[size];\n\n return (\n <div\n className={cx(\n \"relative flex shrink-0 cursor-pointer appearance-none items-center justify-center overflow-clip border border-solid border-primary\",\n box,\n isSelected ? \"border-transparent bg-brand-solid\" : \"bg-primary\",\n isDisabled && \"cursor-not-allowed opacity-50\",\n isDisabled && !isSelected && \"bg-tertiary\",\n isFocused && !isDisabled && focusRingShadow,\n className,\n )}\n >\n {isSelected && <TagCheckboxAnimatedCheckMark pixelSize={iconPixelSize} className=\"pointer-events-none text-fg-white\" />}\n </div>\n );\n};\nTagCheckbox.displayName = \"TagCheckbox\";\n","\"use client\";\n\nimport type { RefAttributes } from \"react\";\nimport { XIcon as XClose } from \"@phosphor-icons/react/dist/csr/X\";\nimport { Button as AriaButton, type ButtonProps as AriaButtonProps } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\n/**\n * Figma: _Tag close X (3307:417672)\n * Total hit target: sm 14px, md 16px, lg 20px (padding + icon).\n */\n\nconst focusShadowPlain =\n \"focus-visible:outline-none focus-visible:[box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]\";\n\ninterface TagCloseXProps extends AriaButtonProps, RefAttributes<HTMLButtonElement> {\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst styles = {\n sm: { root: \"p-0.5\", icon: \"size-2.5\" },\n md: { root: \"p-0.5\", icon: \"size-3\" },\n lg: { root: \"p-[3px]\", icon: \"size-3.5\" },\n};\n\nexport const TagCloseX = ({ size = \"md\", className, ...otherProps }: TagCloseXProps) => {\n return (\n <AriaButton\n slot=\"remove\"\n aria-label=\"Remove this tag\"\n className={cx(\n \"flex cursor-pointer rounded-[3px] text-fg-quaternary outline-transparent transition duration-100 ease-linear hover:bg-primary_hover focus-visible:rounded-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n focusShadowPlain,\n styles[size].root,\n className,\n )}\n {...otherProps}\n >\n <XClose className={cx(\"shrink-0 transition-inherit-all\", styles[size].icon)} />\n </AriaButton>\n );\n};\n","\"use client\";\n\n/** Figma: Tags (3306:403749) — shell uses border-primary + spread focus ring. */\n\nimport { type ImgHTMLAttributes, type PropsWithChildren, type RefAttributes, createContext, useContext, useState } from \"react\";\nimport { UserIcon as User01 } from \"@phosphor-icons/react/dist/csr/User\";\nimport {\n Tag as AriaTag,\n TagGroup as AriaTagGroup,\n type TagGroupProps as AriaTagGroupProps,\n TagList as AriaTagList,\n type TagProps as AriaTagProps,\n} from \"react-aria-components\";\nimport { Dot } from \"@/components/foundations/dot-icon\";\nimport { cx } from \"@/utils/cx\";\nimport { TagCheckbox } from \"./base-components/tag-checkbox\";\nimport { TagCloseX } from \"./base-components/tag-close-x\";\n\nconst focusShadowPlain =\n \"focus-visible:outline-none focus-visible:[box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]\";\n\nexport const TagAvatar = ({ src, alt, contrastBorder = true, className }: ImgHTMLAttributes<HTMLImageElement> & { contrastBorder?: boolean }) => {\n const [isFailed, setIsFailed] = useState(false);\n\n return (\n <div\n className={cx(\n \"relative inline-flex size-4 shrink-0 items-center justify-center overflow-hidden rounded-full bg-tertiary\",\n contrastBorder && \"outline-[0.5px] -outline-offset-[0.5px] outline-black/16\",\n className,\n )}\n >\n {src && !isFailed ? (\n <img data-avatar-img className=\"size-full object-cover\" src={src} alt={alt} onError={() => setIsFailed(true)} />\n ) : (\n <User01 className=\"size-3 stroke-[2.25px] text-fg-quaternary\" />\n )}\n </div>\n );\n};\n\nexport interface TagItem {\n id: string;\n label: string;\n count?: number;\n avatarSrc?: string;\n avatarContrastBorder?: boolean;\n dot?: boolean;\n dotClassName?: string;\n isDisabled?: boolean;\n onClose?: (id: string) => void;\n}\n\nconst TagGroupContext = createContext<{\n selectionMode: \"none\" | \"single\" | \"multiple\";\n size: \"sm\" | \"md\" | \"lg\";\n}>({\n selectionMode: \"none\",\n size: \"sm\",\n});\n\ninterface TagGroupProps extends AriaTagGroupProps, RefAttributes<HTMLDivElement> {\n label: string;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport const TagGroup = ({ label, selectionMode = \"none\", size = \"sm\", children, ...otherProps }: TagGroupProps) => {\n return (\n <TagGroupContext.Provider value={{ selectionMode, size }}>\n <AriaTagGroup aria-label={label} selectionMode={selectionMode} disallowEmptySelection={selectionMode === \"single\"} {...otherProps}>\n {children}\n </AriaTagGroup>\n </TagGroupContext.Provider>\n );\n};\n\nexport const TagList = AriaTagList;\n\nconst styles = {\n sm: {\n root: {\n base: \"px-2 py-0.75 text-xs font-medium\",\n withCheckbox: \"pl-1.25\",\n withAvatar: \"pl-1\",\n withDot: \"pl-1.5\",\n withCount: \"pr-1\",\n withClose: \"pr-1\",\n },\n content: \"gap-1\",\n count: \"px-1 text-xs font-medium\",\n },\n md: {\n root: {\n base: \"px-2.25 py-0.5 text-sm font-medium\",\n withCheckbox: \"pl-1\",\n withAvatar: \"pl-1.25\",\n withDot: \"pl-1.75\",\n withCount: \"pr-0.75\",\n withClose: \"pr-1\",\n },\n content: \"gap-1.25\",\n count: \"px-1.25 text-xs font-medium\",\n },\n lg: {\n root: {\n base: \"px-2.5 py-1 text-sm font-medium\",\n withCheckbox: \"pl-1.25\",\n withAvatar: \"pl-1.75\",\n withDot: \"pl-2.25\",\n withCount: \"pr-1\",\n withClose: \"pr-1\",\n },\n content: \"gap-1.5\",\n count: \"px-1.5 text-sm font-medium\",\n },\n};\n\ninterface TagProps extends AriaTagProps, RefAttributes<object>, Omit<TagItem, \"label\" | \"id\"> {}\n\nexport const Tag = ({\n id,\n avatarSrc,\n avatarContrastBorder = true,\n dot,\n dotClassName,\n isDisabled,\n count,\n className,\n children,\n onClose,\n}: PropsWithChildren<TagProps>) => {\n const context = useContext(TagGroupContext);\n\n const leadingContent = avatarSrc ? (\n <TagAvatar src={avatarSrc} alt=\"Avatar\" contrastBorder={avatarContrastBorder} />\n ) : dot ? (\n <Dot className={cx(\"text-fg-success-secondary\", dotClassName)} size=\"sm\" />\n ) : null;\n\n return (\n <AriaTag\n id={id}\n isDisabled={isDisabled}\n textValue={typeof children === \"string\" ? children : undefined}\n className={(state) =>\n cx(\n \"flex cursor-default items-center gap-0.75 rounded-md border border-solid border-primary bg-primary text-secondary transition duration-50 ease-linear\",\n focusShadowPlain,\n styles[context.size].root.base,\n\n // With avatar\n avatarSrc && styles[context.size].root.withAvatar,\n // With X button\n (onClose || state.allowsRemoving) && styles[context.size].root.withClose,\n // With dot\n dot && styles[context.size].root.withDot,\n // With count\n typeof count === \"number\" && styles[context.size].root.withCount,\n // With checkbox\n context.selectionMode !== \"none\" && cx(\"cursor-pointer\", styles[context.size].root.withCheckbox),\n // Disabled\n isDisabled && \"cursor-not-allowed\",\n\n typeof className === \"function\" ? className(state) : className,\n )\n }\n >\n {({ isSelected, isDisabled, allowsRemoving }) => (\n <>\n <div className={cx(\"flex items-center gap-1\", styles[context.size].content)}>\n {context.selectionMode !== \"none\" && <TagCheckbox size={context.size} isSelected={isSelected} isDisabled={isDisabled} />}\n\n {leadingContent}\n\n {children}\n\n {typeof count === \"number\" && (\n <span className={cx(\"flex items-center justify-center rounded-[3px] bg-tertiary text-center\", styles[context.size].count)}>\n {count}\n </span>\n )}\n </div>\n\n {(onClose || allowsRemoving) && (\n <TagCloseX size={context.size} excludeFromTabOrder={allowsRemoving} onPress={() => id && onClose?.(id.toString())} />\n )}\n </>\n )}\n </AriaTag>\n );\n};\n","\"use client\";\n\nimport type { Key, KeyboardEvent, ReactNode } from \"react\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { HintText } from \"@/components/base/input/hint-text\";\nimport { InputBase } from \"@/components/base/input/input\";\nimport { Label } from \"@/components/base/input/label\";\nimport { Tag, TagGroup, TagList } from \"@/components/base/tags/tags\";\nimport { cx } from \"@/utils/cx\";\n\ninterface TagEntry {\n id: string;\n label: string;\n}\n\nexport interface InputTagsOuterProps {\n /** Label text displayed above the input. */\n label?: string;\n /** Helper text displayed below the tags. */\n hint?: ReactNode;\n /** Tooltip message displayed via a help icon inside the input. */\n tooltip?: string;\n /**\n * Input size variant.\n * @default \"sm\"\n */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Placeholder text for the input field. */\n placeholder?: string;\n /** Whether the field is required. */\n isRequired?: boolean;\n /** Whether the field is disabled. */\n isDisabled?: boolean;\n /** Whether the field is in an invalid/error state. */\n isInvalid?: boolean;\n /**\n * Whether to allow duplicate tag values.\n * @default false\n */\n allowDuplicates?: boolean;\n /** Maximum number of tags allowed. */\n maxTags?: number;\n /** Controlled value: array of tag strings. */\n value?: string[];\n /** Default tags for uncontrolled mode. */\n defaultValue?: string[];\n /** Called when the tags array changes. */\n onChange?: (tags: string[]) => void;\n /** Called when a tag is added. */\n onTagAdded?: (tag: string) => void;\n /** Called when a tag is removed. */\n onTagRemoved?: (tag: string) => void;\n /**\n * Validation function for new tags.\n * Return `true` to accept, `false` to reject.\n */\n validate?: (value: string) => boolean;\n /** Optional className for the outer container. */\n className?: string;\n /** Whether to hide the required indicator from the label. */\n hideRequiredIndicator?: boolean;\n}\n\nexport const InputTagsOuter = ({\n size = \"md\",\n label,\n hint,\n tooltip,\n placeholder,\n isRequired,\n isDisabled,\n isInvalid,\n allowDuplicates = false,\n maxTags,\n value,\n defaultValue,\n onChange,\n onTagAdded,\n onTagRemoved,\n validate,\n className,\n hideRequiredIndicator,\n}: InputTagsOuterProps) => {\n const isControlled = value !== undefined;\n const idCounter = useRef(0);\n const nextId = () => `tag-${idCounter.current++}`;\n\n const [inputValue, setInputValue] = useState(\"\");\n\n const [internalEntries, setInternalEntries] = useState<TagEntry[]>(() => (defaultValue ?? []).map((label) => ({ id: nextId(), label })));\n\n const prevControlledValue = useRef<string[]>([]);\n const controlledEntries = useRef<TagEntry[]>([]);\n\n const entries = (() => {\n if (!isControlled) return internalEntries;\n\n const prev = prevControlledValue.current;\n if (prev === value) return controlledEntries.current;\n\n const oldEntries = controlledEntries.current;\n const newEntries: TagEntry[] = [];\n const usedOldIndices = new Set<number>();\n\n for (const label of value) {\n const oldIndex = oldEntries.findIndex((e, i) => e.label === label && !usedOldIndices.has(i));\n if (oldIndex !== -1) {\n usedOldIndices.add(oldIndex);\n newEntries.push(oldEntries[oldIndex]);\n } else {\n newEntries.push({ id: nextId(), label });\n }\n }\n\n prevControlledValue.current = value;\n controlledEntries.current = newEntries;\n return newEntries;\n })();\n\n const tags = entries.map((e) => e.label);\n\n const addTag = useCallback(\n (text: string) => {\n const trimmed = text.trim();\n if (!trimmed) return false;\n if (!allowDuplicates && tags.includes(trimmed)) return false;\n if (maxTags && tags.length >= maxTags) return false;\n if (validate && !validate(trimmed)) return false;\n\n const newEntry: TagEntry = { id: nextId(), label: trimmed };\n const newEntries = [...entries, newEntry];\n\n if (!isControlled) {\n setInternalEntries(newEntries);\n }\n onChange?.(newEntries.map((e) => e.label));\n onTagAdded?.(trimmed);\n return true;\n },\n [tags, entries, isControlled, allowDuplicates, maxTags, validate, onChange, onTagAdded],\n );\n\n const removeTag = useCallback(\n (id: string) => {\n const entry = entries.find((e) => e.id === id);\n if (!entry) return;\n\n const newEntries = entries.filter((e) => e.id !== id);\n\n if (!isControlled) {\n setInternalEntries(newEntries);\n }\n onChange?.(newEntries.map((e) => e.label));\n onTagRemoved?.(entry.label);\n },\n [entries, isControlled, onChange, onTagRemoved],\n );\n\n const handleRemove = useCallback(\n (keys: Set<Key>) => {\n for (const key of keys) {\n removeTag(key.toString());\n }\n },\n [removeTag],\n );\n\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (addTag(inputValue)) {\n setInputValue(\"\");\n }\n }\n };\n\n return (\n <div className={cx(\"flex flex-col\", size === \"sm\" ? \"gap-1.5\" : \"gap-2\", className)}>\n <div className=\"flex flex-col gap-1.5\">\n {label && <Label isRequired={hideRequiredIndicator ? false : isRequired}>{label}</Label>}\n\n <InputBase\n size={size}\n tooltip={tooltip}\n placeholder={placeholder}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n value={inputValue}\n onChange={(e) => setInputValue(e.currentTarget.value)}\n onKeyDown={handleInputKeyDown}\n />\n </div>\n\n {entries.length > 0 && (\n <TagGroup label={label || \"Tags\"} size={size === \"lg\" ? \"md\" : size} onRemove={handleRemove}>\n <TagList className=\"flex flex-wrap gap-1.5 focus:outline-hidden\" items={entries}>\n {(item) => (\n <Tag id={item.id} isDisabled={isDisabled}>\n {item.label}\n </Tag>\n )}\n </TagList>\n </TagGroup>\n )}\n\n {hint && tags.length === 0 && (\n <HintText isInvalid={isInvalid} className={cx(size === \"sm\" && \"text-xs\")}>\n {hint}\n </HintText>\n )}\n </div>\n );\n};\n"]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
interface InputTagsProps {
|
|
5
|
+
/** Label text displayed above the input. */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Helper text displayed below the input. */
|
|
8
|
+
hint?: ReactNode;
|
|
9
|
+
/** Tooltip message displayed via a help icon inside the input. */
|
|
10
|
+
tooltip?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Input size variant.
|
|
13
|
+
* @default "sm"
|
|
14
|
+
*/
|
|
15
|
+
size?: "sm" | "md" | "lg";
|
|
16
|
+
/** Placeholder text for the input field. */
|
|
17
|
+
placeholder?: string;
|
|
18
|
+
/** Whether the field is required. */
|
|
19
|
+
isRequired?: boolean;
|
|
20
|
+
/** Whether the field is disabled. */
|
|
21
|
+
isDisabled?: boolean;
|
|
22
|
+
/** Whether the field is in an invalid/error state. */
|
|
23
|
+
isInvalid?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether to allow duplicate tag values.
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
allowDuplicates?: boolean;
|
|
29
|
+
/** Maximum number of tags allowed. */
|
|
30
|
+
maxTags?: number;
|
|
31
|
+
/** Controlled value: array of tag strings. */
|
|
32
|
+
value?: string[];
|
|
33
|
+
/** Default tags for uncontrolled mode. */
|
|
34
|
+
defaultValue?: string[];
|
|
35
|
+
/** Called when the tags array changes. */
|
|
36
|
+
onChange?: (tags: string[]) => void;
|
|
37
|
+
/** Called when a tag is added. */
|
|
38
|
+
onTagAdded?: (tag: string) => void;
|
|
39
|
+
/** Called when a tag is removed. */
|
|
40
|
+
onTagRemoved?: (tag: string) => void;
|
|
41
|
+
/**
|
|
42
|
+
* Validation function for new tags.
|
|
43
|
+
* Return `true` to accept, `false` to reject.
|
|
44
|
+
*/
|
|
45
|
+
validate?: (value: string) => boolean;
|
|
46
|
+
/** Optional className for the outer container. */
|
|
47
|
+
className?: string;
|
|
48
|
+
/** Whether to hide the required indicator from the label. */
|
|
49
|
+
hideRequiredIndicator?: boolean;
|
|
50
|
+
}
|
|
51
|
+
declare const InputTags: ({ size, label, hint, tooltip, placeholder, isRequired, isDisabled, isInvalid, allowDuplicates, maxTags, value, defaultValue, onChange, onTagAdded, onTagRemoved, validate, className, hideRequiredIndicator, }: InputTagsProps) => react.JSX.Element;
|
|
52
|
+
|
|
53
|
+
export { InputTags, type InputTagsProps };
|